From db45cad01cc5beb20052b0df603ba0f3260cf01b Mon Sep 17 00:00:00 2001 From: Nicklas Lindgren Date: Wed, 4 Mar 2015 16:36:37 +0100 Subject: [PATCH] Fix bug with not using calculated value of indicator texts --- js/freeboard+plugins.js | 16 +++++++++++++--- js/freeboard+plugins.min.js | 4 ++-- js/freeboard+plugins.min.js.map | 8 +++++++- js/freeboard.min.js | 4 ++-- js/freeboard.plugins.js | 16 +++++++++++++--- js/freeboard.plugins.min.js | 2 +- js/freeboard.plugins.min.js.map | 8 +++++++- plugins/freeboard/freeboard.widgets.js | 16 +++++++++++++--- 8 files changed, 58 insertions(+), 16 deletions(-) diff --git a/js/freeboard+plugins.js b/js/freeboard+plugins.js index 8b4b1e62..8f342a0c 100644 --- a/js/freeboard+plugins.js +++ b/js/freeboard+plugins.js @@ -4201,15 +4201,17 @@ $.extend(freeboard, jQuery.eventEmitter); var indicatorElement = $('
'); var currentSettings = settings; var isOn = false; + var onText = ""; + var offText = ""; function updateState() { indicatorElement.toggleClass("on", isOn); if (isOn) { - stateElement.text((_.isUndefined(currentSettings.on_text) ? "" : currentSettings.on_text)); + stateElement.text(onText); } else { - stateElement.text((_.isUndefined(currentSettings.off_text) ? "" : currentSettings.off_text)); + stateElement.text(offText); } } @@ -4224,8 +4226,16 @@ $.extend(freeboard, jQuery.eventEmitter); } this.onCalculatedValueChanged = function (settingName, newValue) { - if (settingName == "value") { + switch (settingName) { + case "value": isOn = Boolean(newValue); + break; + case "on_text": + onText = newValue; + break; + case "off_text": + offText = newValue; + break; } updateState(); diff --git a/js/freeboard+plugins.min.js b/js/freeboard+plugins.min.js index 25beb522..8e61c8ff 100644 --- a/js/freeboard+plugins.min.js +++ b/js/freeboard+plugins.min.js @@ -1,2 +1,2 @@ -function DialogBox(e,t,n,i,a){function s(){o.fadeOut(200,function(){$(this).remove()})}var o=$(''),r=$('');r.append('

'+t+"

"),$("
").appendTo(r).append(e);var l=$("").appendTo(r);n&&$(''+n+"").appendTo(l).click(function(){var e=!1;_.isFunction(a)&&(e=a()),e||s()}),i&&$(''+i+"").appendTo(l).click(function(){s()}),o.append(r),$("body").append(o),o.fadeIn(200)}function FreeboardModel(e,t,n){var i=this,a=1;this.version=0,this.isEditing=ko.observable(!1),this.allow_edit=ko.observable(!1),this.allow_edit.subscribe(function(e){e?$("#main-header").show():$("#main-header").hide()}),this.header_image=ko.observable(),this.plugins=ko.observableArray(),this.datasources=ko.observableArray(),this.panes=ko.observableArray(),this.datasourceData={},this.processDatasourceUpdate=function(e,t){var n=e.name();i.datasourceData[n]=t,_.each(i.panes(),function(e){_.each(e.widgets(),function(e){e.processDatasourceUpdate(n)})})},this._datasourceTypes=ko.observable(),this.datasourceTypes=ko.computed({read:function(){i._datasourceTypes();var t=[];return _.each(e,function(e){var n=e.type_name,i=n;_.isUndefined(e.display_name)||(i=e.display_name),t.push({name:n,display_name:i})}),t}}),this._widgetTypes=ko.observable(),this.widgetTypes=ko.computed({read:function(){i._widgetTypes();var e=[];return _.each(t,function(t){var n=t.type_name,i=n;_.isUndefined(t.display_name)||(i=t.display_name),e.push({name:n,display_name:i})}),e}}),this.addPluginSource=function(e){e&&-1==i.plugins.indexOf(e)&&i.plugins.push(e)},this.serialize=function(){var e=[];_.each(i.panes(),function(t){e.push(t.serialize())});var t=[];return _.each(i.datasources(),function(e){t.push(e.serialize())}),{version:a,header_image:i.header_image(),allow_edit:i.allow_edit(),plugins:i.plugins(),panes:e,datasources:t,columns:n.getUserColumns()}},this.deserialize=function(a,s){function o(){n.setUserColumns(a.columns),_.isUndefined(a.allow_edit)?i.allow_edit(!0):i.allow_edit(a.allow_edit),i.version=a.version||0,i.header_image(a.header_image),_.each(a.datasources,function(t){var n=new DatasourceModel(i,e);n.deserialize(t),i.addDatasource(n)});var o=_.sortBy(a.panes,function(e){return n.getPositionForScreenSize(e).row});_.each(o,function(e){var n=new PaneModel(i,t);n.deserialize(e),i.panes.push(n)}),i.allow_edit()&&0==i.panes().length&&i.setEditing(!0),_.isFunction(s)&&s(),n.processResize(!0)}i.clearDashboard(),_.each(a.plugins,function(e){i.addPluginSource(e)}),_.isArray(a.plugins)&&a.plugins.length>0?head.js(a.plugins,function(){o()}):o()},this.clearDashboard=function(){n.removeAllPanes(),_.each(i.datasources(),function(e){e.dispose()}),_.each(i.panes(),function(e){e.dispose()}),i.plugins.removeAll(),i.datasources.removeAll(),i.panes.removeAll()},this.loadDashboard=function(e,t){n.showLoadingIndicator(!0),i.deserialize(e,function(){n.showLoadingIndicator(!1),_.isFunction(t)&&t(),freeboard.emit("dashboard_loaded")})},this.loadDashboardFromLocalFile=function(){if(window.File&&window.FileReader&&window.FileList&&window.Blob){var e=document.createElement("input");e.type="file",$(e).on("change",function(e){var t=e.target.files;if(t&&t.length>0){var n=t[0],a=new FileReader;a.addEventListener("load",function(e){var t=e.target,n=JSON.parse(t.result);i.loadDashboard(n),i.setEditing(!1)}),a.readAsText(n)}}),$(e).trigger("click")}else alert("Unable to load a file in this browser.")},this.saveDashboard=function(){var e="application/octet-stream",t=document.createElement("a"),n=new Blob([JSON.stringify(i.serialize())],{type:e});document.body.appendChild(t),t.href=window.URL.createObjectURL(n),t.download="dashboard.json",t.target="_self",t.click()},this.addDatasource=function(e){i.datasources.push(e)},this.deleteDatasource=function(e){delete i.datasourceData[e.name()],e.dispose(),i.datasources.remove(e)},this.createPane=function(){var e=new PaneModel(i,t);i.addPane(e)},this.addGridColumnLeft=function(){n.addGridColumnLeft()},this.addGridColumnRight=function(){n.addGridColumnRight()},this.subGridColumnLeft=function(){n.subGridColumnLeft()},this.subGridColumnRight=function(){n.subGridColumnRight()},this.addPane=function(e){i.panes.push(e)},this.deletePane=function(e){e.dispose(),i.panes.remove(e)},this.deleteWidget=function(e){ko.utils.arrayForEach(i.panes(),function(t){t.widgets.remove(e)}),e.dispose()},this.setEditing=function(e,t){if(i.allow_edit()||!e){i.isEditing(e),_.isUndefined(t)&&(t=!0);var a=t?250:0,s=$("#admin-bar").outerHeight();e?($("#toggle-header-icon").addClass("icon-chevron-up").removeClass("icon-wrench"),$(".gridster .gs_w").css({cursor:"pointer"}),$("#main-header").animate({top:"0px"},a),$("#board-content").animate({top:s+20+"px"},a),$("#main-header").data().shown=!0,n.attachWidgetEditIcons($(".sub-section")),n.enableGrid()):($("#toggle-header-icon").addClass("icon-wrench").removeClass("icon-chevron-up"),$(".gridster .gs_w").css({cursor:"default"}),$("#main-header").animate({top:"-"+s+"px"},a),$("#board-content").animate({top:"20"},a),$("#main-header").data().shown=!1,$(".sub-section").unbind(),n.disableGrid()),n.showPaneEditIcons(e,t)}},this.toggleEditing=function(){var e=!i.isEditing();i.setEditing(e)}}function FreeboardUI(){function e(e){var t=a(),n=function(){};e&&(n=function(){var e=this,n=ko.dataFor(e),i=m(n);$(e).attr("data-sizex",Math.min(n.col_width(),t,v.cols)).attr("data-row",i.row).attr("data-col",i.col),n.processSizeChange()}),s(Math.min(t,C)),o(n),i()}function t(e){var t=v.cols+1;s(t)&&o(function(){var t,n=this,i=ko.dataFor(n),a=v.cols>1?v.cols-1:1,s=i.col[a],o=i.row[a];if(e){leftPreviewCol=!0;var r=v.cols>s?s+1:v.cols;t={row:o,col:r}}else rightPreviewCol=!0,t={row:o,col:s};$(n).attr("data-sizex",Math.min(i.col_width(),v.cols)).attr("data-row",t.row).attr("data-col",t.col)}),i(),C=v.cols}function n(e){var t=v.cols-1;s(t)&&o(function(){var t,n=this,i=ko.dataFor(n),a=v.cols+1,s=i.col[a],o=i.row[a];if(e){var r=s>1?s-1:1;t={row:o,col:r}}else{var r=v.cols>=s?s:v.cols;t={row:o,col:r}}$(n).attr("data-sizex",Math.min(i.col_width(),v.cols)).attr("data-row",t.row).attr("data-col",t.col)}),i(),C=v.cols}function i(){var e=$(".column-tool"),t=$("#board-content").width(),n=Math.floor(t/x);b>=v.cols?e.addClass("min"):e.removeClass("min"),v.cols>=n?e.addClass("max"):e.removeClass("max")}function a(){var e=$("#board-content").width();return Math.floor(e/x)}function s(e){(void 0===e||b>e)&&(e=b);var t=a();e>t&&(e=t);var n=x*e+e;return $(".responsive-column-width").css("max-width",n),e===v.cols?!1:!0}function o(e){var t=v.$el;t.find("> li").unbind().removeData(),$(".responsive-column-width").css("width",""),v.generate_grid_and_stylesheet(),t.find("> li").each(e),v.init(),$(".responsive-column-width").css("width",v.cols*w+2*v.cols*y)}function r(){return C}function l(e){C=Math.max(b,e)}function d(e,t,n){var i=m(t),a=i.col,s=i.row,o=Number(t.width()),r=Number(t.getCalculatedHeight());v.add_widget(e,o,r,a,s),n&&f(!0),u(t,s,a),$(e).attrchange({trackValues:!0,callback:function(e){"data-row"==e.attributeName?u(t,Number(e.newValue),void 0):"data-col"==e.attributeName&&u(t,void 0,Number(e.newValue))}})}function c(e,t){var n=t.getCalculatedHeight(),i=Number($(e).attr("data-sizey")),a=Number($(e).attr("data-sizex"));(n!=i||t.col_width()!=a)&&v.resize_widget($(e),t.col_width(),n,function(){v.set_dom_grid_height()})}function u(e,t,n){var i=v.cols;_.isUndefined(t)||(e.row[i]=t),_.isUndefined(n)||(e.col[i]=n)}function p(e){e?S.fadeOut(0).appendTo("body").fadeIn(500):S.fadeOut(500).remove()}function f(e,t){_.isUndefined(t)&&(t=!0);var n=t?250:0;e?($(".pane-tools").fadeIn(n),$("#column-tools").fadeIn(n)):($(".pane-tools").fadeOut(n),$("#column-tools").fadeOut(n))}function h(e){$(e).hover(function(){g(this,!0)},function(){g(this,!1)})}function g(e,t){t?$(e).find(".sub-section-tools").fadeIn(250):$(e).find(".sub-section-tools").fadeOut(250)}function m(e){var t=v.cols;if(_.isNumber(e.row)&&_.isNumber(e.col)){var n={};n[t]=e.row,e.row=n,n={},n[t]=e.col,e.col=n}var i=1,a=1e3;for(var s in e.col){if(s==t)return{row:e.row[s],col:e.col[s]};if(e.col[s]>t)i=t;else{var o=t-s;a>o&&(i=s,a=o)}}return i in e.col&&i in e.row?{row:e.row[i],col:e.col[i]}:{row:1,col:i}}var v,y=10,w=300,b=3,x=y+w+y,C=b,S=$('
');return ko.bindingHandlers.grid={init:function(t){v=$(t).gridster({widget_margins:[y,y],widget_base_dimensions:[w,10],resize:{enabled:!1,axes:"x"}}).data("gridster"),e(!1),v.disable()}},{showLoadingIndicator:function(e){p(e)},showPaneEditIcons:function(e,t){f(e,t)},attachWidgetEditIcons:function(e){h(e)},getPositionForScreenSize:function(e){return m(e)},processResize:function(t){e(t)},disableGrid:function(){v.disable()},enableGrid:function(){v.enable()},addPane:function(e,t,n){d(e,t,n)},updatePane:function(e,t){c(e,t)},removePane:function(e){v.remove_widget(e)},removeAllPanes:function(){v.remove_all_widgets()},addGridColumnLeft:function(){t(!0)},addGridColumnRight:function(){t(!1)},subGridColumnLeft:function(){n(!0)},subGridColumnRight:function(){n(!1)},getUserColumns:function(){return r()},setUserColumns:function(e){l(e)}}}function PaneModel(e,t){var n=this;this.title=ko.observable(),this.width=ko.observable(1),this.row={},this.col={},this.col_width=ko.observable(1),this.col_width.subscribe(function(){n.processSizeChange()}),this.widgets=ko.observableArray(),this.addWidget=function(e){this.widgets.push(e)},this.widgetCanMoveUp=function(e){return n.widgets.indexOf(e)>=1},this.widgetCanMoveDown=function(e){var t=n.widgets.indexOf(e);return n.widgets().length-1>t},this.moveWidgetUp=function(e){if(n.widgetCanMoveUp(e)){var t=n.widgets.indexOf(e),i=n.widgets();n.widgets.splice(t-1,2,i[t],i[t-1])}},this.moveWidgetDown=function(e){if(n.widgetCanMoveDown(e)){var t=n.widgets.indexOf(e),i=n.widgets();n.widgets.splice(t,2,i[t+1],i[t])}},this.processSizeChange=function(){setTimeout(function(){_.each(n.widgets(),function(e){e.processSizeChange()})},1e3)},this.getCalculatedHeight=function(){var e=_.reduce(n.widgets(),function(e,t){return e+t.height()},0);e*=6,e+=3,e*=10;var t=Math.ceil((e+20)/30);return Math.max(4,t)},this.serialize=function(){var e=[];return _.each(n.widgets(),function(t){e.push(t.serialize())}),{title:n.title(),width:n.width(),row:n.row,col:n.col,col_width:n.col_width(),widgets:e}},this.deserialize=function(i){n.title(i.title),n.width(i.width),n.row=i.row,n.col=i.col,n.col_width(i.col_width||1),_.each(i.widgets,function(i){var a=new WidgetModel(e,t);a.deserialize(i),n.widgets.push(a)})},this.dispose=function(){_.each(n.widgets(),function(e){e.dispose()})}}function WidgetModel(e,t){function n(){_.isUndefined(i.widgetInstance)||(_.isFunction(i.widgetInstance.onDispose)&&i.widgetInstance.onDispose(),i.widgetInstance=void 0)}var i=this;this.datasourceRefreshNotifications={},this.calculatedSettingScripts={},this.title=ko.observable(),this.fillSize=ko.observable(!1),this.type=ko.observable(),this.type.subscribe(function(e){function a(){s.newInstance(i.settings(),function(e){i.fillSize(s.fill_size===!0),i.widgetInstance=e,i.shouldRender(!0),i._heightUpdate.valueHasMutated()})}if(n(),e in t&&_.isFunction(t[e].newInstance)){var s=t[e];s.external_scripts?head.js(s.external_scripts.slice(0),a):a()}}),this.settings=ko.observable({}),this.settings.subscribe(function(e){!_.isUndefined(i.widgetInstance)&&_.isFunction(i.widgetInstance.onSettingsChanged)&&i.widgetInstance.onSettingsChanged(e),i.updateCalculatedSettings(),i._heightUpdate.valueHasMutated()}),this.processDatasourceUpdate=function(e){var t=i.datasourceRefreshNotifications[e];_.isArray(t)&&_.each(t,function(e){i.processCalculatedSetting(e)})},this.callValueFunction=function(t){return t.call(void 0,e.datasourceData)},this.processSizeChange=function(){!_.isUndefined(i.widgetInstance)&&_.isFunction(i.widgetInstance.onSizeChanged)&&i.widgetInstance.onSizeChanged()},this.processCalculatedSetting=function(e){if(_.isFunction(i.calculatedSettingScripts[e])){var t=void 0;try{t=i.callValueFunction(i.calculatedSettingScripts[e])}catch(n){var a=i.settings()[e];n instanceof ReferenceError&&/^\w+$/.test(a)&&(t=a)}if(!_.isUndefined(i.widgetInstance)&&_.isFunction(i.widgetInstance.onCalculatedValueChanged)&&!_.isUndefined(t))try{i.widgetInstance.onCalculatedValueChanged(e,t)}catch(n){console.log(""+n)}}},this.updateCalculatedSettings=function(){if(i.datasourceRefreshNotifications={},i.calculatedSettingScripts={},!_.isUndefined(i.type())){var e=t[i.type()].settings,n=RegExp("datasources.([\\w_-]+)|datasources\\[['\"]([^'\"]+)","g"),a=i.settings();_.each(e,function(e){if("calculated"==e.type){var t=a[e.name];if(!_.isUndefined(t)){_.isArray(t)&&(t="["+t.join(",")+"]"),1>=(t.match(/;/g)||[]).length&&-1==t.indexOf("return")&&(t="return "+t);var s;try{s=Function("datasources",t)}catch(o){var r=a[e.name].replace(/"/g,'\\"').replace(/[\r\n]/g," \\\n");s=Function("datasources",'return "'+r+'";')}i.calculatedSettingScripts[e.name]=s,i.processCalculatedSetting(e.name);for(var l;l=n.exec(t);){var d=l[1]||l[2],c=i.datasourceRefreshNotifications[d];_.isUndefined(c)&&(c=[],i.datasourceRefreshNotifications[d]=c),-1==_.indexOf(c,e.name)&&c.push(e.name)}}}})}},this._heightUpdate=ko.observable(),this.height=ko.computed({read:function(){return i._heightUpdate(),!_.isUndefined(i.widgetInstance)&&_.isFunction(i.widgetInstance.getHeight)?i.widgetInstance.getHeight():1}}),this.shouldRender=ko.observable(!1),this.render=function(e){i.shouldRender(!1),!_.isUndefined(i.widgetInstance)&&_.isFunction(i.widgetInstance.render)&&(i.widgetInstance.render(e),i.updateCalculatedSettings())},this.dispose=function(){},this.serialize=function(){return{title:i.title(),type:i.type(),settings:i.settings()}},this.deserialize=function(e){i.title(e.title),i.settings(e.settings),i.type(e.type)}}DatasourceModel=function(e,t){function n(){_.isUndefined(i.datasourceInstance)||(_.isFunction(i.datasourceInstance.onDispose)&&i.datasourceInstance.onDispose(),i.datasourceInstance=void 0)}var i=this;this.name=ko.observable(),this.latestData=ko.observable(),this.settings=ko.observable({}),this.settings.subscribe(function(e){!_.isUndefined(i.datasourceInstance)&&_.isFunction(i.datasourceInstance.onSettingsChanged)&&i.datasourceInstance.onSettingsChanged(e)}),this.updateCallback=function(t){e.processDatasourceUpdate(i,t),i.latestData(t);var n=new Date;i.last_updated(n.toLocaleTimeString())},this.type=ko.observable(),this.type.subscribe(function(e){function a(){s.newInstance(i.settings(),function(e){i.datasourceInstance=e,e.updateNow()},i.updateCallback)}if(n(),e in t&&_.isFunction(t[e].newInstance)){var s=t[e];s.external_scripts?head.js(s.external_scripts.slice(0),a):a()}}),this.last_updated=ko.observable("never"),this.last_error=ko.observable(),this.serialize=function(){return{name:i.name(),type:i.type(),settings:i.settings()}},this.deserialize=function(e){i.settings(e.settings),i.name(e.name),i.type(e.type)},this.getDataRepresentation=function(e){var t=Function("data","return "+e+";");return t.call(void 0,i.latestData())},this.updateNow=function(){!_.isUndefined(i.datasourceInstance)&&_.isFunction(i.datasourceInstance.updateNow)&&i.datasourceInstance.updateNow()},this.dispose=function(){n()}},DeveloperConsole=function(e){function t(){function t(e){var t=$(""),i=$(''),a=$(''),s=$('
  • ').click(function(){n=_.without(n,a),t.remove()});n.push(a),e&&a.val(e),i.append(s),o.append(t.append($("").append(a)).append($('').append(i)))}var n=[],i=$("
    "),a=$('
    ADD
    '),s=$('
    ');s.append($('Plugin Script URL'));var o=$("");s.append(o),i.append($("

    Here you can add references to other scripts to load datasource or widget plugins.

    ")).append(s).append(a).append('

    To learn how to build plugins for freeboard, please visit http://freeboard.github.io/freeboard/docs/plugin_example.html

    '),_.each(e.plugins(),function(e){t(e)}),a.click(function(){t()}),new DialogBox(i,"Developer Console","OK",null,function(){_.each(e.plugins(),function(e){$('script[src^="'+e+'"]').remove()}),e.plugins.removeAll(),_.each(n,function(t){var n=t.val();n&&n.length>0&&(e.addPluginSource(n),head.js(n+"?"+Date.now()))})})}return{showDeveloperConsole:function(){t()}}},JSEditor=function(){function e(e){n=e}function t(e,t){var n='// Example: Convert temp from C to F and truncate to 2 decimal places.\n// return (datasources["MyDatasource"].sensor.tempInF * 1.8 + 32).toFixed(2);';e||(e=n);var i=$('
    '),a=$('
    '),s=$(''),o=$('
    This javascript will be re-evaluated any time a datasource referenced here is updated, and the value you return will be displayed in the widget. You can assume this javascript is wrapped in a function of the form function(datasources) where datasources is a collection of javascript objects (keyed by their name) corresponding to the most current data in a datasource.
    ');i.append([o,a,s]),$("body").append(i);var r=CodeMirror(a.get(0),{value:e,mode:"javascript",theme:"ambiance",indentUnit:4,lineNumbers:!0,matchBrackets:!0,autoCloseBrackets:!0}),l=$('Close').click(function(){if(t){var e=r.getValue();e===n&&(e=""),t(e),i.remove()}});s.append(l)}var n="";return{displayJSEditor:function(e,n){t(e,n)},setAssetRoot:function(t){e(t)}}},PluginEditor=function(e,t){function n(e,t){var n=$('
    ').html(t);$("#setting-value-container-"+e).append(n)}function i(){$("#setting-row-instance-name").length?$("#setting-row-instance-name").nextAll().remove():$("#setting-row-plugin-types").nextAll().remove()}function a(e){return!isNaN(parseFloat(e))&&isFinite(e)}function s(n,i,a,s,o){var r=$("");a.multi_input?r.change(function(){var e=[];$(n).find("textarea").each(function(){var t=$(this).val();t&&(e=e.concat(t))}),i.settings[a.name]=e}):r.change(function(){i.settings[a.name]=$(this).val()}),s&&r.val(s),t.createValueEditor(r);var l=$(''),d=$('
    ');d.append(r).append(l);var c=$('
  • ').mousedown(function(e){e.preventDefault(),$(r).val("").focus().insertAtCaret('datasources["').trigger("freeboard-eval")});l.append(c);var u=$('
  • ').mousedown(function(t){t.preventDefault(),e.displayJSEditor(r.val(),function(e){r.val(e),r.change()})});if(l.append(u),o){var p=$('
  • ').mousedown(function(e){e.preventDefault(),d.remove(),$(n).find("textarea:first").change()});l.prepend(p)}$(n).append(d)}function o(e,t,o,r,l){function d(e,t){var n=$('
    ').appendTo(f);return n.append('
    "),$('
    ').appendTo(n)}function c(e){_.each(e,function(e){function t(){p.settings[e.name].length>0?c.show():c.hide()}function n(n){var i=$("").appendTo(f),a={};_.isArray(p.settings[e.name])||(p.settings[e.name]=[]),p.settings[e.name].push(a),_.each(e.settings,function(e){var t=$("").appendTo(i),s="";_.isUndefined(n[e.name])||(s=n[e.name]),a[e.name]=s,$('').appendTo(t).val(s).change(function(){a[e.name]=$(this).val()})}),i.append($('').append($('').append($("
  • ").append($('').click(function(){var n=p.settings[e.name].indexOf(a);-1!=n&&(p.settings[e.name].splice(n,1),i.remove(),t())}))))),o.scrollTop(o[0].scrollHeight),t()}!_.isUndefined(e.default_value)&&_.isUndefined(r[e.name])&&(r[e.name]=e.default_value);var i=e.name;_.isUndefined(e.display_name)||(i=e.display_name);var a=d(e.name,i);switch(e.type){case"array":var o=$('
    ').appendTo(a),l=$('
    ').appendTo(o),c=$("").hide().appendTo(l),u=$("").appendTo(c),f=$("").appendTo(l),h=[];_.each(e.settings,function(e){var t=e.name;_.isUndefined(e.display_name)||(t=e.display_name),$(""+t+"").appendTo(u)}),e.name in r&&(h=r[e.name]),$('
    ADD
    ').appendTo(a).click(function(){var t={};_.each(e.settings,function(e){t[e.name]=""}),n(t)}),_.each(h,function(e){n(e)});break;case"boolean":p.settings[e.name]=r[e.name];var g=$('
    ').appendTo(a),m=$('').prependTo(g).change(function(){p.settings[e.name]=this.checked});e.name in r&&m.prop("checked",r[e.name]);break;case"option":var v=r[e.name],m=$("").appendTo($('
    ').appendTo(a)).change(function(){p.settings[e.name]=$(this).val()});_.each(e.options,function(e){var t,n;_.isObject(e)?(t=e.name,n=e.value):t=e,_.isUndefined(n)&&(n=t),_.isUndefined(v)&&(v=n),$("").text(t).attr("value",n).appendTo(m)}),p.settings[e.name]=v,e.name in r&&m.val(r[e.name]);break;default:if(p.settings[e.name]=r[e.name],"calculated"==e.type){if(e.name in r){var y=r[e.name];if(e.multi_input&&_.isArray(y))for(var w=!1,b=0;y.length>b;b++)s(a,p,e,y[b],w),w=!0;else s(a,p,e,y,!1)}else s(a,p,e,null,!1);if(e.multi_input){var x=$('').mousedown(function(t){t.preventDefault(),s(a,p,e,null,!0)});$(a).siblings(".form-label").append(x)}}else{var m=$('').appendTo(a).change(function(){p.settings[e.name]="number"==e.type?Number($(this).val()):$(this).val()});e.name in r&&m.val(r[e.name])}}_.isUndefined(e.suffix)||a.append($('
    '+e.suffix+"
    ")),_.isUndefined(e.description)||a.append($('
    '+e.description+"
    "))})}var u,p={type:o,settings:{}},f=$("
    "),h=$('
    ').hide();f.append(h),new DialogBox(f,e,"Save","Cancel",function(){$(".validation-error").remove();for(var e=0;u.settings.length>e;e++){var t=u.settings[e];if(t.required&&(_.isUndefined(p.settings[t.name])||""==p.settings[t.name]))return n(t.name,"This is required."),!0;if("number"==t.type&&!a(p.settings[t.name]))return n(t.name,"Must be a number."),!0}_.isFunction(l)&&l(p)});var g,m=_.keys(t);if(m.length>1){var v=d("plugin-types","Type");g=$("").appendTo($('
    ').appendTo(v)),g.append($("").attr("value","undefined")),_.each(t,function(e){g.append($("").text(e.display_name).attr("value",e.type_name))}),g.change(function(){p.type=$(this).val(),p.settings={},i(),u=t[g.val()],_.isUndefined(u)?($("#setting-row-instance-name").hide(),$("#dialog-ok").hide()):($("#setting-row-instance-name").show(),u.description&&u.description.length>0?h.html(u.description).show():h.hide(),$("#dialog-ok").show(),c(u.settings))})}else 1==m.length&&(u=t[m[0]],p.type=u.type_name,p.settings={},c(u.settings));g&&(_.isUndefined(o)?($("#setting-row-instance-name").hide(),$("#dialog-ok").hide()):($("#dialog-ok").show(),g.val(o).trigger("change")))}return{createPluginEditor:function(e,t,n,i,a,s){o(e,t,n,i,a,s)}}},ValueEditor=function(e){function t(e,t){return _.isArray(e)||_.isObject(e)?!0:n(e,t)}function n(e,t){switch(t){case h.ANY:return!0;case h.ARRAY:return _.isArray(e);case h.OBJECT:return _.isObject(e);case h.STRING:return _.isString(e);case h.NUMBER:return _.isNumber(e);case h.BOOLEAN:return _.isBoolean(e)}}function i(e,t){$(e).parent().find(".validation-error").remove(),n(f,t)||$(e).parent().append("
    This field expects an expression that evaluates to type "+t+".
    ")}function a(e){var t=($(e).val().match(/\n/g)||[]).length,n=Math.min(200,20*(t+1));$(e).css({height:n+"px"})}function s(e,n,i){var a=d.exec(e),s=[];if(a)if(""==a[1])_.each(n,function(e){s.push({value:e.name(),entity:void 0,precede_char:"",follow_char:'"]'})});else if(""!=a[1]&&_.isUndefined(a[2])){var o=a[1];_.each(n,function(e){var t=e.name();t!=o&&0==t.indexOf(o)&&s.push({value:t,entity:void 0,precede_char:"",follow_char:'"]'})})}else{var r=_.find(n,function(e){return e.name()===a[1]});if(!_.isUndefined(r)){var l="data",c="";if(!_.isUndefined(a[2])){var u=a[3].lastIndexOf("]")+1;l+=a[3].substring(0,u),c=a[3].substring(u,a[3].length),c=c.replace(/^[\[\"]*/,""),c=c.replace(/[\"\]]*$/,"")}var h=r.getDataRepresentation(l);if(f=h,_.isArray(h)){for(var g=0;h.length>g;g++)if(0==(""+g).indexOf(c)){var m=h[g];t(m,i)&&s.push({value:g,entity:m,precede_char:"[",follow_char:"]",preview:""+m})}}else _.isObject(h)&&_.each(h,function(e,n){0==n.indexOf(c)&&t(e,i)&&s.push({value:n,entity:e,precede_char:'["',follow_char:'"]'})})}}p=s}function o(t,n){var a=$(t).val().substring(0,$(t).getCaretPosition());if(a=a.replace(String.fromCharCode(160)," "),s(a,e.datasources(),n),p.length>0){c||(c=$('').insertAfter(t).width($(t).outerWidth()-2).css("left",$(t).position().left).css("top",$(t).position().top+$(t).outerHeight()-1)),c.empty(),c.scrollTop(0);var o=!0;u=0,_.each(p,function(e,n){var i=r(t,a,e,n);o&&($(i).addClass("selected"),o=!1)})}else i(t,n),$(t).next("ul#value-selector").remove(),c=null,u=-1}function r(e,t,n,i){var a=n.value;n.preview&&(a=a+""+n.preview+"");var s=$("
  • "+a+"
  • ").appendTo(c).mouseenter(function(){$(this).trigger("freeboard-select")}).mousedown(function(e){$(this).trigger("freeboard-insertValue"),e.preventDefault()}).data("freeboard-optionIndex",i).data("freeboard-optionValue",n.value).bind("freeboard-insertValue",function(){var i=n.value;i=n.precede_char+i+n.follow_char;var a=t.lastIndexOf("]");-1!=a?$(e).replaceTextAt(a+1,$(e).val().length,i):$(e).insertAtCaret(i),f=n.entity,$(e).triggerHandler("mouseup")}).bind("freeboard-select",function(){$(this).parent().find("li.selected").removeClass("selected"),$(this).addClass("selected"),u=$(this).data("freeboard-optionIndex")});return s}function l(e,t){$(e).addClass("calculated-value-input").bind("keyup mouseup freeboard-eval",function(n){return!c||"keyup"!=n.type||38!=n.keyCode&&40!=n.keyCode&&13!=n.keyCode?(o(e,t),void 0):(n.preventDefault(),void 0)}).focus(function(){$(e).css({"z-index":3001}),a(e)}).focusout(function(){i(e,t),$(e).css({height:"","z-index":3e3}),$(e).next("ul#value-selector").remove(),c=null,u=-1}).bind("keydown",function(e){if(c)if(38==e.keyCode||40==e.keyCode){e.preventDefault();var t=$(c).find("li");38==e.keyCode?u--:40==e.keyCode&&u++,0>u?u=t.size()-1:u>=t.size()&&(u=0);var n=$(t).eq(u);n.trigger("freeboard-select"),$(c).scrollTop($(n).position().top)}else 13==e.keyCode&&(e.preventDefault(),-1!=u&&$(c).find("li").eq(u).trigger("freeboard-insertValue"))})}var d=RegExp('.*datasources\\["([^"]*)("\\])?(.*)$'),c=null,u=0,p=[],f=null,h={ANY:"any",ARRAY:"array",OBJECT:"object",STRING:"string",NUMBER:"number",BOOLEAN:"boolean"};return{createValueEditor:function(e,t){t?l(e,t):l(e,h.ANY)},EXPECTED_TYPE:h}},function(e){function t(){var e=document.createElement("p"),t=!1;if(e.addEventListener)e.addEventListener("DOMAttrModified",function(){t=!0},!1);else{if(!e.attachEvent)return!1;e.attachEvent("onDOMAttrModified",function(){t=!0})}return e.setAttribute("id","target"),t}function n(t,n){if(t){var i=this.data("attr-old-value");if(n.attributeName.indexOf("style")>=0){i.style||(i.style={});var a=n.attributeName.split(".");n.attributeName=a[0],n.oldValue=i.style[a[1]],n.newValue=a[1]+":"+this.prop("style")[e.camelCase(a[1])],i.style[a[1]]=n.newValue}else n.oldValue=i[n.attributeName],n.newValue=this.attr(n.attributeName),i[n.attributeName]=n.newValue;this.data("attr-old-value",i)}}var i=window.MutationObserver||window.WebKitMutationObserver;e.fn.attrchange=function(a){var s={trackValues:!1,callback:e.noop};if("function"==typeof a?s.callback=a:e.extend(s,a),s.trackValues&&e(this).each(function(t,n){for(var i,a={},t=0,s=n.attributes,o=s.length;o>t;t++)i=s.item(t),a[i.nodeName]=i.value;e(this).data("attr-old-value",a)}),i){var o={subtree:!1,attributes:!0,attributeOldValue:s.trackValues},r=new i(function(t){t.forEach(function(t){var n=t.target;s.trackValues&&(t.newValue=e(n).attr(t.attributeName)),s.callback.call(n,t)})});return this.each(function(){r.observe(this,o)})}return t()?this.on("DOMAttrModified",function(e){e.originalEvent&&(e=e.originalEvent),e.attributeName=e.attrName,e.oldValue=e.prevValue,s.callback.call(this,e)}):"onpropertychange"in document.body?this.on("propertychange",function(t){t.attributeName=window.event.propertyName,n.call(e(this),s.trackValues,t),s.callback.call(this,t)}):this}}(jQuery),function(e){e.eventEmitter={_JQInit:function(){this._JQ=e(this)},emit:function(e,t){!this._JQ&&this._JQInit(),this._JQ.trigger(e,t)},once:function(e,t){!this._JQ&&this._JQInit(),this._JQ.one(e,t)},on:function(e,t){!this._JQ&&this._JQInit(),this._JQ.bind(e,t)},off:function(e,t){!this._JQ&&this._JQInit(),this._JQ.unbind(e,t)}}}(jQuery);var freeboard=function(){function e(e){e=e.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var t=RegExp("[\\?&]"+e+"=([^&#]*)"),n=t.exec(location.search);return null==n?"":decodeURIComponent(n[1].replace(/\+/g," "))}var t={},n={},i=new FreeboardUI,a=new FreeboardModel(t,n,i),s=new JSEditor,o=new ValueEditor(a),r=new PluginEditor(s,o),l=new DeveloperConsole(a),d={values:{"font-family":'"HelveticaNeue-UltraLight", "Helvetica Neue Ultra Light", "Helvetica Neue", sans-serif',color:"#d3d4d4","font-weight":100}};return ko.bindingHandlers.pluginEditor={init:function(e,s,o,l){var d=ko.unwrap(s()),c={},u=void 0,p="";"datasource"==d.type?(c=t,p="Datasource"):"widget"==d.type?(c=n,p="Widget"):"pane"==d.type&&(p="Pane"),$(e).click(function(){if("delete"==d.operation){var s=$("

    Are you sure you want to delete this "+p+"?

    ");new DialogBox(s,"Confirm Delete","Yes","No",function(){"datasource"==d.type?a.deleteDatasource(l):"widget"==d.type?a.deleteWidget(l):"pane"==d.type&&a.deletePane(l)})}else{var o=void 0;"datasource"==d.type?"add"==d.operation?u={}:(o=l.type(),u=l.settings(),u.name=l.name()):"widget"==d.type?"add"==d.operation?u={}:(o=l.type(),u=l.settings()):"pane"==d.type&&(u={},"edit"==d.operation&&(u.title=l.title(),u.col_width=l.col_width()),c={settings:{settings:[{name:"title",display_name:"Title",type:"text"},{name:"col_width",display_name:"Columns",type:"number",default_value:1,required:!0}]}}),r.createPluginEditor(p,c,o,u,function(s){if("add"==d.operation){if("datasource"==d.type){var o=new DatasourceModel(a,t);a.addDatasource(o),o.name(s.settings.name),delete s.settings.name,o.settings(s.settings),o.type(s.type)}else if("widget"==d.type){var o=new WidgetModel(a,n);o.settings(s.settings),o.type(s.type),l.widgets.push(o),i.attachWidgetEditIcons(e) -}}else"edit"==d.operation&&("pane"==d.type?(l.title(s.settings.title),l.col_width(s.settings.col_width),i.processResize(!1)):("datasource"==d.type&&(l.name(s.settings.name),delete s.settings.name),l.type(s.type),l.settings(s.settings)))})}})}},ko.virtualElements.allowedBindings.datasourceTypeSettings=!0,ko.bindingHandlers.datasourceTypeSettings={update:function(e,t,n,i,a){processPluginSettings(e,t,n,i,a)}},ko.bindingHandlers.pane={init:function(e,t,n,s,o){a.isEditing()&&$(e).css({cursor:"pointer"}),i.addPane(e,s,o.$root.isEditing())},update:function(e,t,n,s){-1==a.panes.indexOf(s)&&i.removePane(e),i.updatePane(e,s)}},ko.bindingHandlers.widget={init:function(e){a.isEditing()&&i.attachWidgetEditIcons($(e).parent())},update:function(e,t,n,i){i.shouldRender()&&($(e).empty(),i.render(e))}},$(function(){function e(){i.processResize(!0)}i.showLoadingIndicator(!0);var t;$(window).resize(function(){clearTimeout(t),t=setTimeout(e,500)})}),{initialize:function(t,n){ko.applyBindings(a);var s=e("load");""!=s?$.ajax({url:s,success:function(e){a.loadDashboard(e),_.isFunction(n)&&n()}}):(a.allow_edit(t),a.setEditing(t),i.showLoadingIndicator(!1),_.isFunction(n)&&n(),freeboard.emit("initialized"))},newDashboard:function(){a.loadDashboard({allow_edit:!0})},loadDashboard:function(e,t){a.loadDashboard(e,t)},serialize:function(){return a.serialize()},setEditing:function(e,t){a.setEditing(e,t)},isEditing:function(){return a.isEditing()},loadDatasourcePlugin:function(e){_.isUndefined(e.display_name)&&(e.display_name=e.type_name),e.settings.unshift({name:"name",display_name:"Name",type:"text",required:!0}),a.addPluginSource(e.source),t[e.type_name]=e,a._datasourceTypes.valueHasMutated()},resize:function(){i.processResize(!0)},loadWidgetPlugin:function(e){_.isUndefined(e.display_name)&&(e.display_name=e.type_name),a.addPluginSource(e.source),n[e.type_name]=e,a._widgetTypes.valueHasMutated()},setAssetRoot:function(e){s.setAssetRoot(e)},addStyle:function(e,t){var n=e+"{"+t+"}",i=$("style#fb-styles");0==i.length&&(i=$(''),$("head").append(i)),i[0].styleSheet?i[0].styleSheet.cssText+=n:i.text(i.text()+n)},showLoadingIndicator:function(e){i.showLoadingIndicator(e)},showDialog:function(e,t,n,i,a){new DialogBox(e,t,n,i,a)},getDatasourceSettings:function(e){var t=a.datasources(),n=_.find(t,function(t){return t.name()===e});return n?n.settings():null},setDatasourceSettings:function(e,t){var n=a.datasources(),i=_.find(n,function(t){return t.name()===e});if(!i)return console.log("Datasource not found"),void 0;var s=_.defaults(t,i.settings());i.settings(s)},getStyleString:function(e){var t="";return _.each(d[e],function(e,n){t=t+n+":"+e+";"}),t},getStyleObject:function(e){return d[e]},showDeveloperConsole:function(){l.showDeveloperConsole()}}}();$.extend(freeboard,jQuery.eventEmitter),function(){var e=function(e,t){function n(e){a&&clearInterval(a),a=setInterval(function(){i.updateNow()},e)}var i=this,a=null,s=e,o=0,r=!1;n(1e3*s.refresh),this.updateNow=function(){if(!(o>1&&!s.use_thingproxy||o>2)){var e=s.url;2==o&&s.use_thingproxy&&(e=("https:"==location.protocol?"https:":"http:")+"//thingproxy.freeboard.io/fetch/"+encodeURI(s.url));var n=s.body;if(n)try{n=JSON.parse(n)}catch(a){}$.ajax({url:e,dataType:1==o?"JSONP":"JSON",type:s.method||"GET",data:n,beforeSend:function(e){try{_.each(s.headers,function(t){var n=t.name,i=t.value;_.isUndefined(n)||_.isUndefined(i)||e.setRequestHeader(n,i)})}catch(t){}},success:function(e){r=!0,t(e)},error:function(){r||(o++,i.updateNow())}})}},this.onDispose=function(){clearInterval(a),a=null},this.onSettingsChanged=function(e){r=!1,o=0,s=e,n(1e3*s.refresh),i.updateNow()}};freeboard.loadDatasourcePlugin({type_name:"JSON",settings:[{name:"url",display_name:"URL",type:"text"},{name:"use_thingproxy",display_name:"Try thingproxy",description:'A direct JSON connection will be tried first, if that fails, a JSONP connection will be tried. If that fails, you can use thingproxy, which can solve many connection problems to APIs. More information.',type:"boolean",default_value:!0},{name:"refresh",display_name:"Refresh Every",type:"number",suffix:"seconds",default_value:5},{name:"method",display_name:"Method",type:"option",options:[{name:"GET",value:"GET"},{name:"POST",value:"POST"},{name:"PUT",value:"PUT"},{name:"DELETE",value:"DELETE"}]},{name:"body",display_name:"Body",type:"text",description:"The body of the request. Normally only used if method is POST"},{name:"headers",display_name:"Headers",type:"array",settings:[{name:"name",display_name:"Name",type:"text"},{name:"value",display_name:"Value",type:"text"}]}],newInstance:function(t,n,i){n(new e(t,i))}});var t=function(e,t){function n(e){s&&clearInterval(s),s=setInterval(function(){a.updateNow()},e)}function i(e){return e.replace(/\w\S*/g,function(e){return e.charAt(0).toUpperCase()+e.substr(1).toLowerCase()})}var a=this,s=null,o=e;n(1e3*o.refresh),this.updateNow=function(){$.ajax({url:"http://api.openweathermap.org/data/2.5/weather?q="+encodeURIComponent(o.location)+"&units="+o.units,dataType:"JSONP",success:function(e){var n={place_name:e.name,sunrise:new Date(1e3*e.sys.sunrise).toLocaleTimeString(),sunset:new Date(1e3*e.sys.sunset).toLocaleTimeString(),conditions:i(e.weather[0].description),current_temp:e.main.temp,high_temp:e.main.temp_max,low_temp:e.main.temp_min,pressure:e.main.pressure,humidity:e.main.humidity,wind_speed:e.wind.speed,wind_direction:e.wind.deg};t(n)},error:function(){}})},this.onDispose=function(){clearInterval(s),s=null},this.onSettingsChanged=function(e){o=e,a.updateNow(),n(1e3*o.refresh)}};freeboard.loadDatasourcePlugin({type_name:"openweathermap",display_name:"Open Weather Map API",settings:[{name:"location",display_name:"Location",type:"text",description:"Example: London, UK"},{name:"units",display_name:"Units",type:"option","default":"imperial",options:[{name:"Imperial",value:"imperial"},{name:"Metric",value:"metric"}]},{name:"refresh",display_name:"Refresh Every",type:"number",suffix:"seconds",default_value:5}],newInstance:function(e,n,i){n(new t(e,i))}});var n=function(e,t){function n(e){t(e)}var i=this,a=e;this.updateNow=function(){dweetio.get_latest_dweet_for(a.thing_id,function(e,t){e||n(t[0].content)})},this.onDispose=function(){},this.onSettingsChanged=function(e){dweetio.stop_listening(),a=e,dweetio.listen_for(a.thing_id,function(e){n(e.content)})},i.onSettingsChanged(e)};freeboard.loadDatasourcePlugin({type_name:"dweet_io",display_name:"Dweet.io",external_scripts:["http://dweet.io/client/dweet.io.min.js"],settings:[{name:"thing_id",display_name:"Thing Name",description:"Example: salty-dog-1",type:"text"}],newInstance:function(e,t,i){t(new n(e,i))}});var i=function(e,t){function n(){r.length>0?(r.length>l&&(t(r[l]),l++),l>=r.length&&o.loop&&(l=0),r.length>l&&(a=setTimeout(n,1e3*o.refresh))):t({})}function i(){r=[],l=0,a&&(clearTimeout(a),a=null)}var a,s=this,o=e,r=[],l=0;this.updateNow=function(){i(),$.ajax({url:o.datafile,dataType:o.is_jsonp?"JSONP":"JSON",success:function(e){r=_.isArray(e)?e:[],l=0,n()},error:function(){}})},this.onDispose=function(){i()},this.onSettingsChanged=function(e){o=e,s.updateNow()}};freeboard.loadDatasourcePlugin({type_name:"playback",display_name:"Playback",settings:[{name:"datafile",display_name:"Data File URL",type:"text",description:"A link to a JSON array of data."},{name:"is_jsonp",display_name:"Is JSONP",type:"boolean"},{name:"loop",display_name:"Loop",type:"boolean",description:"Rewind and loop when finished"},{name:"refresh",display_name:"Refresh Every",type:"number",suffix:"seconds",default_value:5}],newInstance:function(e,t,n){t(new i(e,n))}});var a=function(e,t){function n(){a&&(clearTimeout(a),a=null)}function i(){n(),a=setInterval(s.updateNow,1e3*o.refresh)}var a,s=this,o=e;this.updateNow=function(){var e=new Date,n={numeric_value:e.getTime(),full_string_value:e.toLocaleString(),date_string_value:e.toLocaleDateString(),time_string_value:e.toLocaleTimeString(),date_object:e};t(n)},this.onDispose=function(){n()},this.onSettingsChanged=function(e){o=e,i()},i()};freeboard.loadDatasourcePlugin({type_name:"clock",display_name:"Clock",settings:[{name:"refresh",display_name:"Refresh Every",type:"number",suffix:"seconds",default_value:1}],newInstance:function(e,t,n){t(new a(e,n))}})}(),function(){function e(e,t,n){var i=$(t).text();if(i!=e)if($.isNumeric(e)&&$.isNumeric(i)){var a=(""+e).split("."),s=0;a.length>1&&(s=a[1].length),a=(""+i).split(".");var o=0;a.length>1&&(o=a[1].length),jQuery({transitionValue:Number(i),precisionValue:o}).animate({transitionValue:Number(e),precisionValue:s},{duration:n,step:function(){$(t).text(this.transitionValue.toFixed(this.precisionValue))},done:function(){$(t).text(e)}})}else $(t).text(e)}function t(e,t){for(var n=$("
    "),i=0;t.length>i;i++){var s=a[i%a.length],o=t[i];n.append("
    "+o+"
    ")}e.empty().append(n),freeboard.addStyle(".sparkline-legend","margin:5px;"),freeboard.addStyle(".sparkline-legend-value","color:white; font:10px arial,san serif; float:left; overflow:hidden; width:50%;"),freeboard.addStyle(".sparkline-legend-value span","font-weight:bold; padding-right:5px;")}function n(e,t,n){var s=$(e).data().values,o=$(e).data().valueMin,r=$(e).data().valueMax;s||(s=[],o=void 0,r=void 0);var l=function(e,t){s[t]||(s[t]=[]),s[t].length>=i&&s[t].shift(),s[t].push(Number(e)),(void 0===o||o>e)&&(o=e),(void 0===r||e>r)&&(r=e)};_.isArray(t)?_.each(t,l):l(t,0),$(e).data().values=s,$(e).data().valueMin=o,$(e).data().valueMax=r;var d=' {{y}}',c=!1;_.each(s,function(t,i){$(e).sparkline(t,{type:"line",composite:c,height:"100%",width:"100%",fillColor:!1,lineColor:a[i%a.length],lineWidth:2,spotRadius:3,spotColor:!1,minSpotColor:"#78AB49",maxSpotColor:"#78AB49",highlightSpotColor:"#9D3926",highlightLineColor:"#9D3926",chartRangeMin:o,chartRangeMax:r,tooltipFormat:n&&n[i]?d+" ("+n[i]+")":d}),c=!0})}var i=100,a=["#FF9900","#FFFFFF","#B3B4B4","#6B6B6B","#28DE28","#13F7F9","#E6EE18","#C41204","#CA3CB8","#0B1CFB"],s=freeboard.getStyleString("values");freeboard.addStyle(".widget-big-text",s+"font-size:75px;"),freeboard.addStyle(".tw-display","width: 100%; height:100%; display:table; table-layout:fixed;"),freeboard.addStyle(".tw-tr","display:table-row;"),freeboard.addStyle(".tw-tg","display:table-row-group;"),freeboard.addStyle(".tw-tc","display:table-caption;"),freeboard.addStyle(".tw-td","display:table-cell;"),freeboard.addStyle(".tw-value",s+"overflow: hidden;"+"display: inline-block;"+"text-overflow: ellipsis;"),freeboard.addStyle(".tw-unit","display: inline-block;padding-left: 10px;padding-bottom: 1.1em;vertical-align: bottom;"),freeboard.addStyle(".tw-value-wrapper","position: relative;vertical-align: middle;height:100%;"),freeboard.addStyle(".tw-sparkline","height:20px;");var o=function(t){function i(){_.isUndefined(a.units)||""==a.units?r.css("max-width","100%"):r.css("max-width",s.innerWidth()-l.outerWidth(!0)+"px")}var a=t,s=$('
    '),o=$('

    '),r=$('
    '),l=$('
    '),d=$('
    ');this.render=function(e){$(e).empty(),$(s).append($('
    ').append(o)).append($('
    ').append($('
    ').append(r).append(l))).append($('
    ').append(d)),$(e).append(s),i()},this.onSettingsChanged=function(e){a=e;var t=!_.isUndefined(e.title)&&""!=e.title,n=!_.isUndefined(e.units)&&""!=e.units;e.sparkline?d.attr("style",null):(delete d.data().values,d.empty(),d.hide()),t?(o.html(_.isUndefined(e.title)?"":e.title),o.attr("style",null)):(o.empty(),o.hide()),n?(l.html(_.isUndefined(e.units)?"":e.units),l.attr("style",null)):(l.empty(),l.hide());var s=30;"big"==e.size&&(s=75,e.sparkline&&(s=60)),r.css({"font-size":s+"px"}),i()},this.onSizeChanged=function(){i()},this.onCalculatedValueChanged=function(t,i){"value"==t&&(a.animate?e(i,r,500):r.text(i),a.sparkline&&n(d,i))},this.onDispose=function(){},this.getHeight=function(){return"big"==a.size||a.sparkline?2:1},this.onSettingsChanged(t)};freeboard.loadWidgetPlugin({type_name:"text_widget",display_name:"Text",external_scripts:["plugins/thirdparty/jquery.sparkline.min.js"],settings:[{name:"title",display_name:"Title",type:"text"},{name:"size",display_name:"Size",type:"option",options:[{name:"Regular",value:"regular"},{name:"Big",value:"big"}]},{name:"value",display_name:"Value",type:"calculated"},{name:"sparkline",display_name:"Include Sparkline",type:"boolean"},{name:"animate",display_name:"Animate Value Changes",type:"boolean",default_value:!0},{name:"units",display_name:"Units",type:"text"}],newInstance:function(e,t){t(new o(e))}});var r=0;freeboard.addStyle(".gauge-widget-wrapper","width: 100%;text-align: center;"),freeboard.addStyle(".gauge-widget","width:200px;height:160px;display:inline-block;");var l=function(e){function t(){o&&(s.empty(),n=new JustGage({id:i,value:_.isUndefined(l.min_value)?0:l.min_value,min:_.isUndefined(l.min_value)?0:l.min_value,max:_.isUndefined(l.max_value)?0:l.max_value,label:l.units,showInnerShadow:!1,valueFontColor:"#d3d4d4"}))}var n,i="gauge-"+r++,a=$('

    '),s=$('
    '),o=!1,l=e;this.render=function(e){o=!0,$(e).append(a).append($('
    ').append(s)),t()},this.onSettingsChanged=function(e){e.min_value!=l.min_value||e.max_value!=l.max_value||e.units!=l.units?(l=e,t()):l=e,a.html(e.title)},this.onCalculatedValueChanged=function(e,t){_.isUndefined(n)||n.refresh(Number(t))},this.onDispose=function(){},this.getHeight=function(){return 3},this.onSettingsChanged(e)};freeboard.loadWidgetPlugin({type_name:"gauge",display_name:"Gauge",external_scripts:["plugins/thirdparty/raphael.2.1.0.min.js","plugins/thirdparty/justgage.1.0.1.js"],settings:[{name:"title",display_name:"Title",type:"text"},{name:"value",display_name:"Value",type:"calculated"},{name:"units",display_name:"Units",type:"text"},{name:"min_value",display_name:"Minimum",type:"text",default_value:0},{name:"max_value",display_name:"Maximum",type:"text",default_value:100}],newInstance:function(e,t){t(new l(e))}}),freeboard.addStyle(".sparkline","width:100%;height: 75px;");var d=function(e){var i=$('

    '),a=$('
    '),s=$("
    "),o=e;this.render=function(e){$(e).append(i).append(a).append(s)},this.onSettingsChanged=function(e){o=e,i.html(_.isUndefined(e.title)?"":e.title),e.include_legend&&t(s,e.legend.split(","))},this.onCalculatedValueChanged=function(e,t){o.legend?n(a,t,o.legend.split(",")):n(a,t)},this.onDispose=function(){},this.getHeight=function(){var e=0;if(o.include_legend&&o.legend){var t=o.legend.split(",").length;t>4?e=.5*Math.floor((t-1)/4):t&&(e=.5)}return 2+e},this.onSettingsChanged(e)};freeboard.loadWidgetPlugin({type_name:"sparkline",display_name:"Sparkline",external_scripts:["plugins/thirdparty/jquery.sparkline.min.js"],settings:[{name:"title",display_name:"Title",type:"text"},{name:"value",display_name:"Value",type:"calculated",multi_input:"true"},{name:"include_legend",display_name:"Include Legend",type:"boolean"},{name:"legend",display_name:"Legend",type:"text",description:"Comma-separated for multiple sparklines"}],newInstance:function(e,t){t(new d(e))}}),freeboard.addStyle("div.pointer-value","position:absolute;height:95px;margin: auto;top: 0px;bottom: 0px;width: 100%;text-align:center;");var c=function(e){function t(e){if(!e||2>e.length)return[];var t=[];t.push(["m",e[0],e[1]]);for(var n=2;e.length>n;n+=2)t.push(["l",e[n],e[n+1]]);return t.push(["z"]),t}var n,i,a,s,o=3,r=0,l=$('
    '),d=$("
    ");this.render=function(e){a=$(e).width(),s=$(e).height();var r=Math.min(a,s)/2-2*o;n=Raphael($(e).get()[0],a,s);var c=n.circle(a/2,s/2,r);c.attr("stroke","#FF9900"),c.attr("stroke-width",o),i=n.path(t([a/2,s/2-r+o,15,20,-30,0])),i.attr("stroke-width",0),i.attr("fill","#fff"),$(e).append($('
    ').append(l).append(d))},this.onSettingsChanged=function(e){d.html(e.units)},this.onCalculatedValueChanged=function(e,t){if("direction"==e){if(!_.isUndefined(i)){i.animate({transform:"r"+t+","+a/2+","+s/2},250,"bounce")}r=t}else"value_text"==e&&l.html(t)},this.onDispose=function(){},this.getHeight=function(){return 4},this.onSettingsChanged(e)};freeboard.loadWidgetPlugin({type_name:"pointer",display_name:"Pointer",external_scripts:["plugins/thirdparty/raphael.2.1.0.min.js"],settings:[{name:"direction",display_name:"Direction",type:"calculated",description:"In degrees"},{name:"value_text",display_name:"Value Text",type:"calculated"},{name:"units",display_name:"Units",type:"text"}],newInstance:function(e,t){t(new c(e))}});var u=function(e){function t(){a&&(clearInterval(a),a=null)}function n(){if(i&&s){var e=s+(-1==s.indexOf("?")?"?":"&")+Date.now();$(i).css({"background-image":"url("+e+")"})}}var i,a,s;this.render=function(e){$(e).css({width:"100%",height:"100%","background-size":"cover","background-position":"center"}),i=e},this.onSettingsChanged=function(e){t(),e.refresh&&e.refresh>0&&(a=setInterval(n,1e3*Number(e.refresh)))},this.onCalculatedValueChanged=function(e,t){"src"==e&&(s=t),n()},this.onDispose=function(){t()},this.getHeight=function(){return 4},this.onSettingsChanged(e)};freeboard.loadWidgetPlugin({type_name:"picture",display_name:"Picture",fill_size:!0,settings:[{name:"src",display_name:"Image URL",type:"calculated"},{type:"number",display_name:"Refresh every",name:"refresh",suffix:"seconds",description:"Leave blank if the image doesn't need to be refreshed"}],newInstance:function(e,t){t(new u(e))}}),freeboard.addStyle(".indicator-light","border-radius:50%;width:22px;height:22px;border:2px solid #3d3d3d;margin-top:5px;float:left;background-color:#222;margin-right:10px;"),freeboard.addStyle(".indicator-light.on","background-color:#FFC773;box-shadow: 0px 0px 15px #FF9900;border-color:#FDF1DF;"),freeboard.addStyle(".indicator-text","margin-top:10px;");var p=function(e){function t(){a.toggleClass("on",o),o?i.text(_.isUndefined(s.on_text)?"":s.on_text):i.text(_.isUndefined(s.off_text)?"":s.off_text)}var n=$('

    '),i=$('
    '),a=$('
    '),s=e,o=!1;this.render=function(e){$(e).append(n).append(a).append(i)},this.onSettingsChanged=function(e){s=e,n.html(_.isUndefined(e.title)?"":e.title),t()},this.onCalculatedValueChanged=function(e,n){"value"==e&&(o=Boolean(n)),t()},this.onDispose=function(){},this.getHeight=function(){return 1},this.onSettingsChanged(e)};freeboard.loadWidgetPlugin({type_name:"indicator",display_name:"Indicator Light",settings:[{name:"title",display_name:"Title",type:"text"},{name:"value",display_name:"Value",type:"calculated"},{name:"on_text",display_name:"On Text",type:"calculated"},{name:"off_text",display_name:"Off Text",type:"calculated"}],newInstance:function(e,t){t(new p(e))}}),freeboard.addStyle(".gm-style-cc a","text-shadow:none;");var f=function(e){function t(){if(n&&i&&s.lat&&s.lon){var e=new google.maps.LatLng(s.lat,s.lon);i.setPosition(e),n.panTo(e)}}var n,i,a=e,s={};this.render=function(e){function a(){var a={zoom:13,center:new google.maps.LatLng(37.235,-115.811111),disableDefaultUI:!0,draggable:!1,styles:[{featureType:"water",elementType:"geometry",stylers:[{color:"#2a2a2a"}]},{featureType:"landscape",elementType:"geometry",stylers:[{color:"#000000"},{lightness:20}]},{featureType:"road.highway",elementType:"geometry.fill",stylers:[{color:"#000000"},{lightness:17}]},{featureType:"road.highway",elementType:"geometry.stroke",stylers:[{color:"#000000"},{lightness:29},{weight:.2}]},{featureType:"road.arterial",elementType:"geometry",stylers:[{color:"#000000"},{lightness:18}]},{featureType:"road.local",elementType:"geometry",stylers:[{color:"#000000"},{lightness:16}]},{featureType:"poi",elementType:"geometry",stylers:[{color:"#000000"},{lightness:21}]},{elementType:"labels.text.stroke",stylers:[{visibility:"on"},{color:"#000000"},{lightness:16}]},{elementType:"labels.text.fill",stylers:[{saturation:36},{color:"#000000"},{lightness:40}]},{elementType:"labels.icon",stylers:[{visibility:"off"}]},{featureType:"transit",elementType:"geometry",stylers:[{color:"#000000"},{lightness:19}]},{featureType:"administrative",elementType:"geometry.fill",stylers:[{color:"#000000"},{lightness:20}]},{featureType:"administrative",elementType:"geometry.stroke",stylers:[{color:"#000000"},{lightness:17},{weight:1.2}]}]};n=new google.maps.Map(e,a),google.maps.event.addDomListener(e,"mouseenter",function(e){e.cancelBubble=!0,n.hover||(n.hover=!0,n.setOptions({zoomControl:!0}))}),google.maps.event.addDomListener(e,"mouseleave",function(){n.hover&&(n.setOptions({zoomControl:!1}),n.hover=!1)}),i=new google.maps.Marker({map:n}),t()}window.google&&window.google.maps?a():(window.gmap_initialize=a,head.js("https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&callback=gmap_initialize"))},this.onSettingsChanged=function(e){a=e},this.onCalculatedValueChanged=function(e,n){"lat"==e?s.lat=n:"lon"==e&&(s.lon=n),t()},this.onDispose=function(){},this.getHeight=function(){return 4},this.onSettingsChanged(e)};freeboard.loadWidgetPlugin({type_name:"google_map",display_name:"Google Map",fill_size:!0,settings:[{name:"lat",display_name:"Latitude",type:"calculated"},{name:"lon",display_name:"Longitude",type:"calculated"}],newInstance:function(e,t){t(new f(e))}}),freeboard.addStyle(".html-widget","white-space:normal;width:100%;height:100%");var h=function(e){var t=$('
    '),n=e;this.render=function(e){$(e).append(t)},this.onSettingsChanged=function(e){n=e},this.onCalculatedValueChanged=function(e,n){"html"==e&&t.html(n)},this.onDispose=function(){},this.getHeight=function(){return Number(n.height)},this.onSettingsChanged(e)};freeboard.loadWidgetPlugin({type_name:"html",display_name:"HTML",fill_size:!0,settings:[{name:"html",display_name:"HTML",type:"calculated",description:"Can be literal HTML, or javascript that outputs HTML."},{name:"height",display_name:"Height Blocks",type:"number",default_value:4,description:"A height block is around 60 pixels"}],newInstance:function(e,t){t(new h(e))}})}(); \ No newline at end of file +function DialogBox(a,b,c,d,e){function f(){g.fadeOut(200,function(){$(this).remove()})}var g=$(''),h=$('');h.append('

    '+b+"

    "),$("
    ").appendTo(h).append(a);var i=$("").appendTo(h);c&&$(''+c+"").appendTo(i).click(function(){var a=!1;_.isFunction(e)&&(a=e()),a||f()}),d&&$(''+d+"").appendTo(i).click(function(){f()}),g.append(h),$("body").append(g),g.fadeIn(200)}function FreeboardModel(a,b,c){var d=this,e=1;this.version=0,this.isEditing=ko.observable(!1),this.allow_edit=ko.observable(!1),this.allow_edit.subscribe(function(a){a?$("#main-header").show():$("#main-header").hide()}),this.header_image=ko.observable(),this.plugins=ko.observableArray(),this.datasources=ko.observableArray(),this.panes=ko.observableArray(),this.datasourceData={},this.processDatasourceUpdate=function(a,b){var c=a.name();d.datasourceData[c]=b,_.each(d.panes(),function(a){_.each(a.widgets(),function(a){a.processDatasourceUpdate(c)})})},this._datasourceTypes=ko.observable(),this.datasourceTypes=ko.computed({read:function(){d._datasourceTypes();var b=[];return _.each(a,function(a){var c=a.type_name,d=c;_.isUndefined(a.display_name)||(d=a.display_name),b.push({name:c,display_name:d})}),b}}),this._widgetTypes=ko.observable(),this.widgetTypes=ko.computed({read:function(){d._widgetTypes();var a=[];return _.each(b,function(b){var c=b.type_name,d=c;_.isUndefined(b.display_name)||(d=b.display_name),a.push({name:c,display_name:d})}),a}}),this.addPluginSource=function(a){a&&-1==d.plugins.indexOf(a)&&d.plugins.push(a)},this.serialize=function(){var a=[];_.each(d.panes(),function(b){a.push(b.serialize())});var b=[];return _.each(d.datasources(),function(a){b.push(a.serialize())}),{version:e,header_image:d.header_image(),allow_edit:d.allow_edit(),plugins:d.plugins(),panes:a,datasources:b,columns:c.getUserColumns()}},this.deserialize=function(e,f){function g(){c.setUserColumns(e.columns),d.allow_edit(_.isUndefined(e.allow_edit)?!0:e.allow_edit),d.version=e.version||0,d.header_image(e.header_image),_.each(e.datasources,function(b){var c=new DatasourceModel(d,a);c.deserialize(b),d.addDatasource(c)});var g=_.sortBy(e.panes,function(a){return c.getPositionForScreenSize(a).row});_.each(g,function(a){var c=new PaneModel(d,b);c.deserialize(a),d.panes.push(c)}),d.allow_edit()&&0==d.panes().length&&d.setEditing(!0),_.isFunction(f)&&f(),c.processResize(!0)}d.clearDashboard(),_.each(e.plugins,function(a){d.addPluginSource(a)}),_.isArray(e.plugins)&&e.plugins.length>0?head.js(e.plugins,function(){g()}):g()},this.clearDashboard=function(){c.removeAllPanes(),_.each(d.datasources(),function(a){a.dispose()}),_.each(d.panes(),function(a){a.dispose()}),d.plugins.removeAll(),d.datasources.removeAll(),d.panes.removeAll()},this.loadDashboard=function(a,b){c.showLoadingIndicator(!0),d.deserialize(a,function(){c.showLoadingIndicator(!1),_.isFunction(b)&&b(),freeboard.emit("dashboard_loaded")})},this.loadDashboardFromLocalFile=function(){if(window.File&&window.FileReader&&window.FileList&&window.Blob){var a=document.createElement("input");a.type="file",$(a).on("change",function(a){var b=a.target.files;if(b&&b.length>0){var c=b[0],e=new FileReader;e.addEventListener("load",function(a){var b=a.target,c=JSON.parse(b.result);d.loadDashboard(c),d.setEditing(!1)}),e.readAsText(c)}}),$(a).trigger("click")}else alert("Unable to load a file in this browser.")},this.saveDashboard=function(){var a="application/octet-stream",b=document.createElement("a"),c=new Blob([JSON.stringify(d.serialize())],{type:a});document.body.appendChild(b),b.href=window.URL.createObjectURL(c),b.download="dashboard.json",b.target="_self",b.click()},this.addDatasource=function(a){d.datasources.push(a)},this.deleteDatasource=function(a){delete d.datasourceData[a.name()],a.dispose(),d.datasources.remove(a)},this.createPane=function(){var a=new PaneModel(d,b);d.addPane(a)},this.addGridColumnLeft=function(){c.addGridColumnLeft()},this.addGridColumnRight=function(){c.addGridColumnRight()},this.subGridColumnLeft=function(){c.subGridColumnLeft()},this.subGridColumnRight=function(){c.subGridColumnRight()},this.addPane=function(a){d.panes.push(a)},this.deletePane=function(a){a.dispose(),d.panes.remove(a)},this.deleteWidget=function(a){ko.utils.arrayForEach(d.panes(),function(b){b.widgets.remove(a)}),a.dispose()},this.setEditing=function(a,b){if(d.allow_edit()||!a){d.isEditing(a),_.isUndefined(b)&&(b=!0);var e=b?250:0,f=$("#admin-bar").outerHeight();a?($("#toggle-header-icon").addClass("icon-chevron-up").removeClass("icon-wrench"),$(".gridster .gs_w").css({cursor:"pointer"}),$("#main-header").animate({top:"0px"},e),$("#board-content").animate({top:f+20+"px"},e),$("#main-header").data().shown=!0,c.attachWidgetEditIcons($(".sub-section")),c.enableGrid()):($("#toggle-header-icon").addClass("icon-wrench").removeClass("icon-chevron-up"),$(".gridster .gs_w").css({cursor:"default"}),$("#main-header").animate({top:"-"+f+"px"},e),$("#board-content").animate({top:"20"},e),$("#main-header").data().shown=!1,$(".sub-section").unbind(),c.disableGrid()),c.showPaneEditIcons(a,b)}},this.toggleEditing=function(){var a=!d.isEditing();d.setEditing(a)}}function FreeboardUI(){function a(a){var b=e(),c=function(){};a&&(c=function(){var a=this,c=ko.dataFor(a),d=q(c);$(a).attr("data-sizex",Math.min(c.col_width(),b,r.cols)).attr("data-row",d.row).attr("data-col",d.col),c.processSizeChange()}),f(Math.min(b,w)),g(c),d()}function b(a){var b=r.cols+1;f(b)&&g(function(){var b,c=this,d=ko.dataFor(c),e=r.cols>1?r.cols-1:1,f=d.col[e],g=d.row[e];if(a){leftPreviewCol=!0;var h=f1?f-1:1;b={row:g,col:h}}else{var h=f<=r.cols?f:r.cols;b={row:g,col:h}}$(c).attr("data-sizex",Math.min(d.col_width(),r.cols)).attr("data-row",b.row).attr("data-col",b.col)}),d(),w=r.cols}function d(){var a=$(".column-tool"),b=$("#board-content").width(),c=Math.floor(b/v);r.cols<=u?a.addClass("min"):a.removeClass("min"),r.cols>=c?a.addClass("max"):a.removeClass("max")}function e(){var a=$("#board-content").width();return Math.floor(a/v)}function f(a){(void 0===a||u>a)&&(a=u);var b=e();a>b&&(a=b);var c=v*a+a;return $(".responsive-column-width").css("max-width",c),a===r.cols?!1:!0}function g(a){var b=r.$el;b.find("> li").unbind().removeData(),$(".responsive-column-width").css("width",""),r.generate_grid_and_stylesheet(),b.find("> li").each(a),r.init(),$(".responsive-column-width").css("width",r.cols*t+r.cols*s*2)}function h(){return w}function i(a){w=Math.max(u,a)}function j(a,b,c){var d=q(b),e=d.col,f=d.row,g=Number(b.width()),h=Number(b.getCalculatedHeight());r.add_widget(a,g,h,e,f),c&&n(!0),l(b,f,e),$(a).attrchange({trackValues:!0,callback:function(a){"data-row"==a.attributeName?l(b,Number(a.newValue),void 0):"data-col"==a.attributeName&&l(b,void 0,Number(a.newValue))}})}function k(a,b){var c=b.getCalculatedHeight(),d=Number($(a).attr("data-sizey")),e=Number($(a).attr("data-sizex"));(c!=d||b.col_width()!=e)&&r.resize_widget($(a),b.col_width(),c,function(){r.set_dom_grid_height()})}function l(a,b,c){var d=r.cols;_.isUndefined(b)||(a.row[d]=b),_.isUndefined(c)||(a.col[d]=c)}function m(a){a?x.fadeOut(0).appendTo("body").fadeIn(500):x.fadeOut(500).remove()}function n(a,b){_.isUndefined(b)&&(b=!0);var c=b?250:0;a?($(".pane-tools").fadeIn(c),$("#column-tools").fadeIn(c)):($(".pane-tools").fadeOut(c),$("#column-tools").fadeOut(c))}function o(a){$(a).hover(function(){p(this,!0)},function(){p(this,!1)})}function p(a,b){b?$(a).find(".sub-section-tools").fadeIn(250):$(a).find(".sub-section-tools").fadeOut(250)}function q(a){var b=r.cols;if(_.isNumber(a.row)&&_.isNumber(a.col)){var c={};c[b]=a.row,a.row=c,c={},c[b]=a.col,a.col=c}var d=1,e=1e3;for(var f in a.col){if(f==b)return{row:a.row[f],col:a.col[f]};if(a.col[f]>b)d=b;else{var g=b-f;e>g&&(d=f,e=g)}}return d in a.col&&d in a.row?{row:a.row[d],col:a.col[d]}:{row:1,col:d}}var r,s=10,t=300,u=3,v=s+t+s,w=u,x=$('
    ');return ko.bindingHandlers.grid={init:function(b){r=$(b).gridster({widget_margins:[s,s],widget_base_dimensions:[t,10],resize:{enabled:!1,axes:"x"}}).data("gridster"),a(!1),r.disable()}},{showLoadingIndicator:function(a){m(a)},showPaneEditIcons:function(a,b){n(a,b)},attachWidgetEditIcons:function(a){o(a)},getPositionForScreenSize:function(a){return q(a)},processResize:function(b){a(b)},disableGrid:function(){r.disable()},enableGrid:function(){r.enable()},addPane:function(a,b,c){j(a,b,c)},updatePane:function(a,b){k(a,b)},removePane:function(a){r.remove_widget(a)},removeAllPanes:function(){r.remove_all_widgets()},addGridColumnLeft:function(){b(!0)},addGridColumnRight:function(){b(!1)},subGridColumnLeft:function(){c(!0)},subGridColumnRight:function(){c(!1)},getUserColumns:function(){return h()},setUserColumns:function(a){i(a)}}}function PaneModel(a,b){var c=this;this.title=ko.observable(),this.width=ko.observable(1),this.row={},this.col={},this.col_width=ko.observable(1),this.col_width.subscribe(function(){c.processSizeChange()}),this.widgets=ko.observableArray(),this.addWidget=function(a){this.widgets.push(a)},this.widgetCanMoveUp=function(a){return c.widgets.indexOf(a)>=1},this.widgetCanMoveDown=function(a){var b=c.widgets.indexOf(a);return b"),d=$('
      '),e=$(''),f=$('
    • ').click(function(){c=_.without(c,e),b.remove()});c.push(e),a&&e.val(a),d.append(f),g.append(b.append($("").append(e)).append($('').append(d)))}var c=[],d=$("
      "),e=$('
      ADD
      '),f=$('
      ');f.append($('Plugin Script URL'));var g=$("");f.append(g),d.append($("

      Here you can add references to other scripts to load datasource or widget plugins.

      ")).append(f).append(e).append('

      To learn how to build plugins for freeboard, please visit http://freeboard.github.io/freeboard/docs/plugin_example.html

      '),_.each(a.plugins(),function(a){b(a)}),e.click(function(){b()}),new DialogBox(d,"Developer Console","OK",null,function(){_.each(a.plugins(),function(a){$('script[src^="'+a+'"]').remove()}),a.plugins.removeAll(),_.each(c,function(b){var c=b.val();c&&c.length>0&&(a.addPluginSource(c),head.js(c+"?"+Date.now()))})})}return{showDeveloperConsole:function(){b()}}},JSEditor=function(){function a(a){c=a}function b(a,b){var c='// Example: Convert temp from C to F and truncate to 2 decimal places.\n// return (datasources["MyDatasource"].sensor.tempInF * 1.8 + 32).toFixed(2);';a||(a=c);var d=$('
      '),e=$('
      '),f=$(''),g=$('
      This javascript will be re-evaluated any time a datasource referenced here is updated, and the value you return will be displayed in the widget. You can assume this javascript is wrapped in a function of the form function(datasources) where datasources is a collection of javascript objects (keyed by their name) corresponding to the most current data in a datasource.
      ');d.append([g,e,f]),$("body").append(d);var h=CodeMirror(e.get(0),{value:a,mode:"javascript",theme:"ambiance",indentUnit:4,lineNumbers:!0,matchBrackets:!0,autoCloseBrackets:!0}),i=$('Close').click(function(){if(b){var a=h.getValue();a===c&&(a=""),b(a),d.remove()}});f.append(i)}var c="";return{displayJSEditor:function(a,c){b(a,c)},setAssetRoot:function(b){a(b)}}},PluginEditor=function(a,b){function c(a,b){var c=$('
      ').html(b);$("#setting-value-container-"+a).append(c)}function d(){$("#setting-row-instance-name").length?$("#setting-row-instance-name").nextAll().remove():$("#setting-row-plugin-types").nextAll().remove()}function e(a){return!isNaN(parseFloat(a))&&isFinite(a)}function f(c,d,e,f,g){var h=$("");h.change(e.multi_input?function(){var a=[];$(c).find("textarea").each(function(){var b=$(this).val();b&&(a=a.concat(b))}),d.settings[e.name]=a}:function(){d.settings[e.name]=$(this).val()}),f&&h.val(f),b.createValueEditor(h);var i=$('
        '),j=$('
        ');j.append(h).append(i);var k=$('
      • ').mousedown(function(a){a.preventDefault(),$(h).val("").focus().insertAtCaret('datasources["').trigger("freeboard-eval")});i.append(k);var l=$('
      • ').mousedown(function(b){b.preventDefault(),a.displayJSEditor(h.val(),function(a){h.val(a),h.change()})});if(i.append(l),g){var m=$('
      • ').mousedown(function(a){a.preventDefault(),j.remove(),$(c).find("textarea:first").change()});i.prepend(m)}$(c).append(j)}function g(a,b,g,h,i){function j(a,b){var c=$('
        ').appendTo(n);return c.append('
        "),$('
        ').appendTo(c)}function k(a){_.each(a,function(a){function b(){m.settings[a.name].length>0?k.show():k.hide()}function c(c){var d=$("").appendTo(n),e={};_.isArray(m.settings[a.name])||(m.settings[a.name]=[]),m.settings[a.name].push(e),_.each(a.settings,function(a){var b=$("").appendTo(d),f="";_.isUndefined(c[a.name])||(f=c[a.name]),e[a.name]=f,$('').appendTo(b).val(f).change(function(){e[a.name]=$(this).val()})}),d.append($('').append($('
          ').append($("
        • ").append($('').click(function(){var c=m.settings[a.name].indexOf(e);-1!=c&&(m.settings[a.name].splice(c,1),d.remove(),b())}))))),g.scrollTop(g[0].scrollHeight),b()}!_.isUndefined(a.default_value)&&_.isUndefined(h[a.name])&&(h[a.name]=a.default_value);var d=a.name;_.isUndefined(a.display_name)||(d=a.display_name);var e=j(a.name,d);switch(a.type){case"array":var g=$('
          ').appendTo(e),i=$('
          ').appendTo(g),k=$("").hide().appendTo(i),l=$("").appendTo(k),n=$("").appendTo(i),o=[];_.each(a.settings,function(a){var b=a.name;_.isUndefined(a.display_name)||(b=a.display_name),$(""+b+"").appendTo(l)}),a.name in h&&(o=h[a.name]),$('
          ADD
          ').appendTo(e).click(function(){var b={};_.each(a.settings,function(a){b[a.name]=""}),c(b)}),_.each(o,function(a){c(a)});break;case"boolean":m.settings[a.name]=h[a.name];var p=$('
          ').appendTo(e),q=$('').prependTo(p).change(function(){m.settings[a.name]=this.checked});a.name in h&&q.prop("checked",h[a.name]);break;case"option":var r=h[a.name],q=$("").appendTo($('
          ').appendTo(e)).change(function(){m.settings[a.name]=$(this).val()});_.each(a.options,function(a){var b,c;_.isObject(a)?(b=a.name,c=a.value):b=a,_.isUndefined(c)&&(c=b),_.isUndefined(r)&&(r=c),$("").text(b).attr("value",c).appendTo(q)}),m.settings[a.name]=r,a.name in h&&q.val(h[a.name]);break;default:if(m.settings[a.name]=h[a.name],"calculated"==a.type){if(a.name in h){var s=h[a.name];if(a.multi_input&&_.isArray(s))for(var t=!1,u=0;u
        • ').mousedown(function(b){b.preventDefault(),f(e,m,a,null,!0)});$(e).siblings(".form-label").append(v)}}else{var q=$('').appendTo(e).change(function(){m.settings[a.name]="number"==a.type?Number($(this).val()):$(this).val()});a.name in h&&q.val(h[a.name])}}_.isUndefined(a.suffix)||e.append($('
          '+a.suffix+"
          ")),_.isUndefined(a.description)||e.append($('
          '+a.description+"
          "))})}var l,m={type:g,settings:{}},n=$("
          "),o=$('
          ').hide();n.append(o),new DialogBox(n,a,"Save","Cancel",function(){$(".validation-error").remove();for(var a=0;a1){var r=j("plugin-types","Type");p=$("").appendTo($('
          ').appendTo(r)),p.append($("").attr("value","undefined")),_.each(b,function(a){p.append($("").text(a.display_name).attr("value",a.type_name))}),p.change(function(){m.type=$(this).val(),m.settings={},d(),l=b[p.val()],_.isUndefined(l)?($("#setting-row-instance-name").hide(),$("#dialog-ok").hide()):($("#setting-row-instance-name").show(),l.description&&l.description.length>0?o.html(l.description).show():o.hide(),$("#dialog-ok").show(),k(l.settings))})}else 1==q.length&&(l=b[q[0]],m.type=l.type_name,m.settings={},k(l.settings));p&&(_.isUndefined(g)?($("#setting-row-instance-name").hide(),$("#dialog-ok").hide()):($("#dialog-ok").show(),p.val(g).trigger("change")))}return{createPluginEditor:function(a,b,c,d,e,f){g(a,b,c,d,e,f)}}},ValueEditor=function(a){function b(a,b){return _.isArray(a)||_.isObject(a)?!0:c(a,b)}function c(a,b){switch(b){case o.ANY:return!0;case o.ARRAY:return _.isArray(a);case o.OBJECT:return _.isObject(a);case o.STRING:return _.isString(a);case o.NUMBER:return _.isNumber(a);case o.BOOLEAN:return _.isBoolean(a)}}function d(a,b){$(a).parent().find(".validation-error").remove(),c(n,b)||$(a).parent().append("
          This field expects an expression that evaluates to type "+b+".
          ")}function e(a){var b=($(a).val().match(/\n/g)||[]).length,c=Math.min(200,20*(b+1));$(a).css({height:c+"px"})}function f(a,c,d){var e=j.exec(a),f=[];if(e)if(""==e[1])_.each(c,function(a){f.push({value:a.name(),entity:void 0,precede_char:"",follow_char:'"]'})});else if(""!=e[1]&&_.isUndefined(e[2])){var g=e[1];_.each(c,function(a){var b=a.name();b!=g&&0==b.indexOf(g)&&f.push({value:b,entity:void 0,precede_char:"",follow_char:'"]'})})}else{var h=_.find(c,function(a){return a.name()===e[1]});if(!_.isUndefined(h)){var i="data",k="";if(!_.isUndefined(e[2])){var l=e[3].lastIndexOf("]")+1;i+=e[3].substring(0,l),k=e[3].substring(l,e[3].length),k=k.replace(/^[\[\"]*/,""),k=k.replace(/[\"\]]*$/,"")}var o=h.getDataRepresentation(i);if(n=o,_.isArray(o)){for(var p=0;p0){k||(k=$('
            ').insertAfter(b).width($(b).outerWidth()-2).css("left",$(b).position().left).css("top",$(b).position().top+$(b).outerHeight()-1)),k.empty(),k.scrollTop(0);var g=!0;l=0,_.each(m,function(a,c){var d=h(b,e,a,c);g&&($(d).addClass("selected"),g=!1)})}else d(b,c),$(b).next("ul#value-selector").remove(),k=null,l=-1}function h(a,b,c,d){var e=c.value;c.preview&&(e=e+""+c.preview+"");var f=$("
          • "+e+"
          • ").appendTo(k).mouseenter(function(){$(this).trigger("freeboard-select")}).mousedown(function(a){$(this).trigger("freeboard-insertValue"),a.preventDefault()}).data("freeboard-optionIndex",d).data("freeboard-optionValue",c.value).bind("freeboard-insertValue",function(){var d=c.value;d=c.precede_char+d+c.follow_char;var e=b.lastIndexOf("]");-1!=e?$(a).replaceTextAt(e+1,$(a).val().length,d):$(a).insertAtCaret(d),n=c.entity,$(a).triggerHandler("mouseup")}).bind("freeboard-select",function(){$(this).parent().find("li.selected").removeClass("selected"),$(this).addClass("selected"),l=$(this).data("freeboard-optionIndex")});return f}function i(a,b){$(a).addClass("calculated-value-input").bind("keyup mouseup freeboard-eval",function(c){return!k||"keyup"!=c.type||38!=c.keyCode&&40!=c.keyCode&&13!=c.keyCode?void g(a,b):void c.preventDefault()}).focus(function(){$(a).css({"z-index":3001}),e(a)}).focusout(function(){d(a,b),$(a).css({height:"","z-index":3e3}),$(a).next("ul#value-selector").remove(),k=null,l=-1}).bind("keydown",function(a){if(k)if(38==a.keyCode||40==a.keyCode){a.preventDefault();var b=$(k).find("li");38==a.keyCode?l--:40==a.keyCode&&l++,0>l?l=b.size()-1:l>=b.size()&&(l=0);var c=$(b).eq(l);c.trigger("freeboard-select"),$(k).scrollTop($(c).position().top)}else 13==a.keyCode&&(a.preventDefault(),-1!=l&&$(k).find("li").eq(l).trigger("freeboard-insertValue"))})}var j=new RegExp('.*datasources\\["([^"]*)("\\])?(.*)$'),k=null,l=0,m=[],n=null,o={ANY:"any",ARRAY:"array",OBJECT:"object",STRING:"string",NUMBER:"number",BOOLEAN:"boolean"};return{createValueEditor:function(a,b){b?i(a,b):i(a,o.ANY)},EXPECTED_TYPE:o}},function(a){function b(){var a=document.createElement("p"),b=!1;if(a.addEventListener)a.addEventListener("DOMAttrModified",function(){b=!0},!1);else{if(!a.attachEvent)return!1;a.attachEvent("onDOMAttrModified",function(){b=!0})}return a.setAttribute("id","target"),b}function c(b,c){if(b){var d=this.data("attr-old-value");if(c.attributeName.indexOf("style")>=0){d.style||(d.style={});var e=c.attributeName.split(".");c.attributeName=e[0],c.oldValue=d.style[e[1]],c.newValue=e[1]+":"+this.prop("style")[a.camelCase(e[1])],d.style[e[1]]=c.newValue}else c.oldValue=d[c.attributeName],c.newValue=this.attr(c.attributeName),d[c.attributeName]=c.newValue;this.data("attr-old-value",d)}}var d=window.MutationObserver||window.WebKitMutationObserver;a.fn.attrchange=function(e){var f={trackValues:!1,callback:a.noop};if("function"==typeof e?f.callback=e:a.extend(f,e),f.trackValues&&a(this).each(function(b,c){for(var d,e={},b=0,f=c.attributes,g=f.length;g>b;b++)d=f.item(b),e[d.nodeName]=d.value;a(this).data("attr-old-value",e)}),d){var g={subtree:!1,attributes:!0,attributeOldValue:f.trackValues},h=new d(function(b){b.forEach(function(b){var c=b.target;f.trackValues&&(b.newValue=a(c).attr(b.attributeName)),f.callback.call(c,b)})});return this.each(function(){h.observe(this,g)})}return b()?this.on("DOMAttrModified",function(a){a.originalEvent&&(a=a.originalEvent),a.attributeName=a.attrName,a.oldValue=a.prevValue,f.callback.call(this,a)}):"onpropertychange"in document.body?this.on("propertychange",function(b){b.attributeName=window.event.propertyName,c.call(a(this),f.trackValues,b),f.callback.call(this,b)}):this}}(jQuery),function(a){a.eventEmitter={_JQInit:function(){this._JQ=a(this)},emit:function(a,b){!this._JQ&&this._JQInit(),this._JQ.trigger(a,b)},once:function(a,b){!this._JQ&&this._JQInit(),this._JQ.one(a,b)},on:function(a,b){!this._JQ&&this._JQInit(),this._JQ.bind(a,b)},off:function(a,b){!this._JQ&&this._JQInit(),this._JQ.unbind(a,b)}}}(jQuery);var freeboard=function(){function a(a){a=a.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var b=new RegExp("[\\?&]"+a+"=([^&#]*)"),c=b.exec(location.search);return null==c?"":decodeURIComponent(c[1].replace(/\+/g," "))}var b={},c={},d=new FreeboardUI,e=new FreeboardModel(b,c,d),f=new JSEditor,g=new ValueEditor(e),h=new PluginEditor(f,g),i=new DeveloperConsole(e),j={values:{"font-family":'"HelveticaNeue-UltraLight", "Helvetica Neue Ultra Light", "Helvetica Neue", sans-serif',color:"#d3d4d4","font-weight":100}};return ko.bindingHandlers.pluginEditor={init:function(a,f,g,i){var j=ko.unwrap(f()),k={},l=void 0,m="";"datasource"==j.type?(k=b,m="Datasource"):"widget"==j.type?(k=c,m="Widget"):"pane"==j.type&&(m="Pane"),$(a).click(function(){if("delete"==j.operation){var f=$("

            Are you sure you want to delete this "+m+"?

            ");new DialogBox(f,"Confirm Delete","Yes","No",function(){"datasource"==j.type?e.deleteDatasource(i):"widget"==j.type?e.deleteWidget(i):"pane"==j.type&&e.deletePane(i)})}else{var g=void 0;"datasource"==j.type?"add"==j.operation?l={}:(g=i.type(),l=i.settings(),l.name=i.name()):"widget"==j.type?"add"==j.operation?l={}:(g=i.type(),l=i.settings()):"pane"==j.type&&(l={},"edit"==j.operation&&(l.title=i.title(),l.col_width=i.col_width()),k={settings:{settings:[{name:"title",display_name:"Title",type:"text"},{name:"col_width",display_name:"Columns",type:"number",default_value:1,required:!0}]}}),h.createPluginEditor(m,k,g,l,function(f){if("add"==j.operation){if("datasource"==j.type){var g=new DatasourceModel(e,b);e.addDatasource(g),g.name(f.settings.name),delete f.settings.name,g.settings(f.settings),g.type(f.type)}else if("widget"==j.type){var g=new WidgetModel(e,c);g.settings(f.settings),g.type(f.type),i.widgets.push(g),d.attachWidgetEditIcons(a) +}}else"edit"==j.operation&&("pane"==j.type?(i.title(f.settings.title),i.col_width(f.settings.col_width),d.processResize(!1)):("datasource"==j.type&&(i.name(f.settings.name),delete f.settings.name),i.type(f.type),i.settings(f.settings)))})}})}},ko.virtualElements.allowedBindings.datasourceTypeSettings=!0,ko.bindingHandlers.datasourceTypeSettings={update:function(a,b,c,d,e){processPluginSettings(a,b,c,d,e)}},ko.bindingHandlers.pane={init:function(a,b,c,f,g){e.isEditing()&&$(a).css({cursor:"pointer"}),d.addPane(a,f,g.$root.isEditing())},update:function(a,b,c,f){-1==e.panes.indexOf(f)&&d.removePane(a),d.updatePane(a,f)}},ko.bindingHandlers.widget={init:function(a){e.isEditing()&&d.attachWidgetEditIcons($(a).parent())},update:function(a,b,c,d){d.shouldRender()&&($(a).empty(),d.render(a))}},$(function(){function a(){d.processResize(!0)}d.showLoadingIndicator(!0);var b;$(window).resize(function(){clearTimeout(b),b=setTimeout(a,500)})}),{initialize:function(b,c){ko.applyBindings(e);var f=a("load");""!=f?$.ajax({url:f,success:function(a){e.loadDashboard(a),_.isFunction(c)&&c()}}):(e.allow_edit(b),e.setEditing(b),d.showLoadingIndicator(!1),_.isFunction(c)&&c(),freeboard.emit("initialized"))},newDashboard:function(){e.loadDashboard({allow_edit:!0})},loadDashboard:function(a,b){e.loadDashboard(a,b)},serialize:function(){return e.serialize()},setEditing:function(a,b){e.setEditing(a,b)},isEditing:function(){return e.isEditing()},loadDatasourcePlugin:function(a){_.isUndefined(a.display_name)&&(a.display_name=a.type_name),a.settings.unshift({name:"name",display_name:"Name",type:"text",required:!0}),e.addPluginSource(a.source),b[a.type_name]=a,e._datasourceTypes.valueHasMutated()},resize:function(){d.processResize(!0)},loadWidgetPlugin:function(a){_.isUndefined(a.display_name)&&(a.display_name=a.type_name),e.addPluginSource(a.source),c[a.type_name]=a,e._widgetTypes.valueHasMutated()},setAssetRoot:function(a){f.setAssetRoot(a)},addStyle:function(a,b){var c=a+"{"+b+"}",d=$("style#fb-styles");0==d.length&&(d=$(''),$("head").append(d)),d[0].styleSheet?d[0].styleSheet.cssText+=c:d.text(d.text()+c)},showLoadingIndicator:function(a){d.showLoadingIndicator(a)},showDialog:function(a,b,c,d,e){new DialogBox(a,b,c,d,e)},getDatasourceSettings:function(a){var b=e.datasources(),c=_.find(b,function(b){return b.name()===a});return c?c.settings():null},setDatasourceSettings:function(a,b){var c=e.datasources(),d=_.find(c,function(b){return b.name()===a});if(!d)return void console.log("Datasource not found");var f=_.defaults(b,d.settings());d.settings(f)},getStyleString:function(a){var b="";return _.each(j[a],function(a,c){b=b+c+":"+a+";"}),b},getStyleObject:function(a){return j[a]},showDeveloperConsole:function(){i.showDeveloperConsole()}}}();$.extend(freeboard,jQuery.eventEmitter),function(){var a=function(a,b){function c(a){e&&clearInterval(e),e=setInterval(function(){d.updateNow()},a)}var d=this,e=null,f=a,g=0,h=!1;c(1e3*f.refresh),this.updateNow=function(){if(!(g>1&&!f.use_thingproxy||g>2)){var a=f.url;2==g&&f.use_thingproxy&&(a=("https:"==location.protocol?"https:":"http:")+"//thingproxy.freeboard.io/fetch/"+encodeURI(f.url));var c=f.body;if(c)try{c=JSON.parse(c)}catch(e){}$.ajax({url:a,dataType:1==g?"JSONP":"JSON",type:f.method||"GET",data:c,beforeSend:function(a){try{_.each(f.headers,function(b){var c=b.name,d=b.value;_.isUndefined(c)||_.isUndefined(d)||a.setRequestHeader(c,d)})}catch(b){}},success:function(a){h=!0,b(a)},error:function(){h||(g++,d.updateNow())}})}},this.onDispose=function(){clearInterval(e),e=null},this.onSettingsChanged=function(a){h=!1,g=0,f=a,c(1e3*f.refresh),d.updateNow()}};freeboard.loadDatasourcePlugin({type_name:"JSON",settings:[{name:"url",display_name:"URL",type:"text"},{name:"use_thingproxy",display_name:"Try thingproxy",description:'A direct JSON connection will be tried first, if that fails, a JSONP connection will be tried. If that fails, you can use thingproxy, which can solve many connection problems to APIs. More information.',type:"boolean",default_value:!0},{name:"refresh",display_name:"Refresh Every",type:"number",suffix:"seconds",default_value:5},{name:"method",display_name:"Method",type:"option",options:[{name:"GET",value:"GET"},{name:"POST",value:"POST"},{name:"PUT",value:"PUT"},{name:"DELETE",value:"DELETE"}]},{name:"body",display_name:"Body",type:"text",description:"The body of the request. Normally only used if method is POST"},{name:"headers",display_name:"Headers",type:"array",settings:[{name:"name",display_name:"Name",type:"text"},{name:"value",display_name:"Value",type:"text"}]}],newInstance:function(b,c,d){c(new a(b,d))}});var b=function(a,b){function c(a){f&&clearInterval(f),f=setInterval(function(){e.updateNow()},a)}function d(a){return a.replace(/\w\S*/g,function(a){return a.charAt(0).toUpperCase()+a.substr(1).toLowerCase()})}var e=this,f=null,g=a;c(1e3*g.refresh),this.updateNow=function(){$.ajax({url:"http://api.openweathermap.org/data/2.5/weather?q="+encodeURIComponent(g.location)+"&units="+g.units,dataType:"JSONP",success:function(a){var c={place_name:a.name,sunrise:new Date(1e3*a.sys.sunrise).toLocaleTimeString(),sunset:new Date(1e3*a.sys.sunset).toLocaleTimeString(),conditions:d(a.weather[0].description),current_temp:a.main.temp,high_temp:a.main.temp_max,low_temp:a.main.temp_min,pressure:a.main.pressure,humidity:a.main.humidity,wind_speed:a.wind.speed,wind_direction:a.wind.deg};b(c)},error:function(){}})},this.onDispose=function(){clearInterval(f),f=null},this.onSettingsChanged=function(a){g=a,e.updateNow(),c(1e3*g.refresh)}};freeboard.loadDatasourcePlugin({type_name:"openweathermap",display_name:"Open Weather Map API",settings:[{name:"location",display_name:"Location",type:"text",description:"Example: London, UK"},{name:"units",display_name:"Units",type:"option","default":"imperial",options:[{name:"Imperial",value:"imperial"},{name:"Metric",value:"metric"}]},{name:"refresh",display_name:"Refresh Every",type:"number",suffix:"seconds",default_value:5}],newInstance:function(a,c,d){c(new b(a,d))}});var c=function(a,b){function c(a){b(a)}var d=this,e=a;this.updateNow=function(){dweetio.get_latest_dweet_for(e.thing_id,function(a,b){a||c(b[0].content)})},this.onDispose=function(){},this.onSettingsChanged=function(a){dweetio.stop_listening(),e=a,dweetio.listen_for(e.thing_id,function(a){c(a.content)})},d.onSettingsChanged(a)};freeboard.loadDatasourcePlugin({type_name:"dweet_io",display_name:"Dweet.io",external_scripts:["http://dweet.io/client/dweet.io.min.js"],settings:[{name:"thing_id",display_name:"Thing Name",description:"Example: salty-dog-1",type:"text"}],newInstance:function(a,b,d){b(new c(a,d))}});var d=function(a,b){function c(){h.length>0?(i=h.length&&g.loop&&(i=0),i1&&(f=e[1].length),e=d.toString().split(".");var g=0;e.length>1&&(g=e[1].length),jQuery({transitionValue:Number(d),precisionValue:g}).animate({transitionValue:Number(a),precisionValue:f},{duration:c,step:function(){$(b).text(this.transitionValue.toFixed(this.precisionValue))},done:function(){$(b).text(a)}})}else $(b).text(a)}function b(a,b){for(var c=$("
            "),d=0;d"+g+"")}a.empty().append(c),freeboard.addStyle(".sparkline-legend","margin:5px;"),freeboard.addStyle(".sparkline-legend-value","color:white; font:10px arial,san serif; float:left; overflow:hidden; width:50%;"),freeboard.addStyle(".sparkline-legend-value span","font-weight:bold; padding-right:5px;")}function c(a,b,c){var f=$(a).data().values,g=$(a).data().valueMin,h=$(a).data().valueMax;f||(f=[],g=void 0,h=void 0);var i=function(a,b){f[b]||(f[b]=[]),f[b].length>=d&&f[b].shift(),f[b].push(Number(a)),(void 0===g||g>a)&&(g=a),(void 0===h||a>h)&&(h=a)};_.isArray(b)?_.each(b,i):i(b,0),$(a).data().values=f,$(a).data().valueMin=g,$(a).data().valueMax=h;var j=' {{y}}',k=!1;_.each(f,function(b,d){$(a).sparkline(b,{type:"line",composite:k,height:"100%",width:"100%",fillColor:!1,lineColor:e[d%e.length],lineWidth:2,spotRadius:3,spotColor:!1,minSpotColor:"#78AB49",maxSpotColor:"#78AB49",highlightSpotColor:"#9D3926",highlightLineColor:"#9D3926",chartRangeMin:g,chartRangeMax:h,tooltipFormat:c&&c[d]?j+" ("+c[d]+")":j}),k=!0})}var d=100,e=["#FF9900","#FFFFFF","#B3B4B4","#6B6B6B","#28DE28","#13F7F9","#E6EE18","#C41204","#CA3CB8","#0B1CFB"],f=freeboard.getStyleString("values");freeboard.addStyle(".widget-big-text",f+"font-size:75px;"),freeboard.addStyle(".tw-display","width: 100%; height:100%; display:table; table-layout:fixed;"),freeboard.addStyle(".tw-tr","display:table-row;"),freeboard.addStyle(".tw-tg","display:table-row-group;"),freeboard.addStyle(".tw-tc","display:table-caption;"),freeboard.addStyle(".tw-td","display:table-cell;"),freeboard.addStyle(".tw-value",f+"overflow: hidden;display: inline-block;text-overflow: ellipsis;"),freeboard.addStyle(".tw-unit","display: inline-block;padding-left: 10px;padding-bottom: 1.1em;vertical-align: bottom;"),freeboard.addStyle(".tw-value-wrapper","position: relative;vertical-align: middle;height:100%;"),freeboard.addStyle(".tw-sparkline","height:20px;");var g=function(b){function d(){_.isUndefined(e.units)||""==e.units?h.css("max-width","100%"):h.css("max-width",f.innerWidth()-i.outerWidth(!0)+"px")}var e=b,f=$('
            '),g=$('

            '),h=$('
            '),i=$('
            '),j=$('
            ');this.render=function(a){$(a).empty(),$(f).append($('
            ').append(g)).append($('
            ').append($('
            ').append(h).append(i))).append($('
            ').append(j)),$(a).append(f),d()},this.onSettingsChanged=function(a){e=a;var b=!_.isUndefined(a.title)&&""!=a.title,c=!_.isUndefined(a.units)&&""!=a.units;a.sparkline?j.attr("style",null):(delete j.data().values,j.empty(),j.hide()),b?(g.html(_.isUndefined(a.title)?"":a.title),g.attr("style",null)):(g.empty(),g.hide()),c?(i.html(_.isUndefined(a.units)?"":a.units),i.attr("style",null)):(i.empty(),i.hide());var f=30;"big"==a.size&&(f=75,a.sparkline&&(f=60)),h.css({"font-size":f+"px"}),d()},this.onSizeChanged=function(){d()},this.onCalculatedValueChanged=function(b,d){"value"==b&&(e.animate?a(d,h,500):h.text(d),e.sparkline&&c(j,d))},this.onDispose=function(){},this.getHeight=function(){return"big"==e.size||e.sparkline?2:1},this.onSettingsChanged(b)};freeboard.loadWidgetPlugin({type_name:"text_widget",display_name:"Text",external_scripts:["plugins/thirdparty/jquery.sparkline.min.js"],settings:[{name:"title",display_name:"Title",type:"text"},{name:"size",display_name:"Size",type:"option",options:[{name:"Regular",value:"regular"},{name:"Big",value:"big"}]},{name:"value",display_name:"Value",type:"calculated"},{name:"sparkline",display_name:"Include Sparkline",type:"boolean"},{name:"animate",display_name:"Animate Value Changes",type:"boolean",default_value:!0},{name:"units",display_name:"Units",type:"text"}],newInstance:function(a,b){b(new g(a))}});var h=0;freeboard.addStyle(".gauge-widget-wrapper","width: 100%;text-align: center;"),freeboard.addStyle(".gauge-widget","width:200px;height:160px;display:inline-block;");var i=function(a){function b(){g&&(f.empty(),c=new JustGage({id:d,value:_.isUndefined(i.min_value)?0:i.min_value,min:_.isUndefined(i.min_value)?0:i.min_value,max:_.isUndefined(i.max_value)?0:i.max_value,label:i.units,showInnerShadow:!1,valueFontColor:"#d3d4d4"}))}var c,d="gauge-"+h++,e=$('

            '),f=$('
            '),g=!1,i=a;this.render=function(a){g=!0,$(a).append(e).append($('
            ').append(f)),b()},this.onSettingsChanged=function(a){a.min_value!=i.min_value||a.max_value!=i.max_value||a.units!=i.units?(i=a,b()):i=a,e.html(a.title)},this.onCalculatedValueChanged=function(a,b){_.isUndefined(c)||c.refresh(Number(b))},this.onDispose=function(){},this.getHeight=function(){return 3},this.onSettingsChanged(a)};freeboard.loadWidgetPlugin({type_name:"gauge",display_name:"Gauge",external_scripts:["plugins/thirdparty/raphael.2.1.0.min.js","plugins/thirdparty/justgage.1.0.1.js"],settings:[{name:"title",display_name:"Title",type:"text"},{name:"value",display_name:"Value",type:"calculated"},{name:"units",display_name:"Units",type:"text"},{name:"min_value",display_name:"Minimum",type:"text",default_value:0},{name:"max_value",display_name:"Maximum",type:"text",default_value:100}],newInstance:function(a,b){b(new i(a))}}),freeboard.addStyle(".sparkline","width:100%;height: 75px;");var j=function(a){var d=$('

            '),e=$('
            '),f=$("
            "),g=a;this.render=function(a){$(a).append(d).append(e).append(f)},this.onSettingsChanged=function(a){g=a,d.html(_.isUndefined(a.title)?"":a.title),a.include_legend&&b(f,a.legend.split(","))},this.onCalculatedValueChanged=function(a,b){g.legend?c(e,b,g.legend.split(",")):c(e,b)},this.onDispose=function(){},this.getHeight=function(){var a=0;if(g.include_legend&&g.legend){var b=g.legend.split(",").length;b>4?a=.5*Math.floor((b-1)/4):b&&(a=.5)}return 2+a},this.onSettingsChanged(a)};freeboard.loadWidgetPlugin({type_name:"sparkline",display_name:"Sparkline",external_scripts:["plugins/thirdparty/jquery.sparkline.min.js"],settings:[{name:"title",display_name:"Title",type:"text"},{name:"value",display_name:"Value",type:"calculated",multi_input:"true"},{name:"include_legend",display_name:"Include Legend",type:"boolean"},{name:"legend",display_name:"Legend",type:"text",description:"Comma-separated for multiple sparklines"}],newInstance:function(a,b){b(new j(a))}}),freeboard.addStyle("div.pointer-value","position:absolute;height:95px;margin: auto;top: 0px;bottom: 0px;width: 100%;text-align:center;");var k=function(a){function b(a){if(!a||a.length<2)return[];var b=[];b.push(["m",a[0],a[1]]);for(var c=2;c'),j=$("
            ");this.render=function(a){e=$(a).width(),f=$(a).height();var h=Math.min(e,f)/2-2*g;c=Raphael($(a).get()[0],e,f);var k=c.circle(e/2,f/2,h);k.attr("stroke","#FF9900"),k.attr("stroke-width",g),d=c.path(b([e/2,f/2-h+g,15,20,-30,0])),d.attr("stroke-width",0),d.attr("fill","#fff"),$(a).append($('
            ').append(i).append(j))},this.onSettingsChanged=function(a){j.html(a.units)},this.onCalculatedValueChanged=function(a,b){if("direction"==a){if(!_.isUndefined(d)){d.animate({transform:"r"+b+","+e/2+","+f/2},250,"bounce")}h=b}else"value_text"==a&&i.html(b)},this.onDispose=function(){},this.getHeight=function(){return 4},this.onSettingsChanged(a)};freeboard.loadWidgetPlugin({type_name:"pointer",display_name:"Pointer",external_scripts:["plugins/thirdparty/raphael.2.1.0.min.js"],settings:[{name:"direction",display_name:"Direction",type:"calculated",description:"In degrees"},{name:"value_text",display_name:"Value Text",type:"calculated"},{name:"units",display_name:"Units",type:"text"}],newInstance:function(a,b){b(new k(a))}});var l=function(a){function b(){e&&(clearInterval(e),e=null)}function c(){if(d&&f){var a=f+(-1==f.indexOf("?")?"?":"&")+Date.now();$(d).css({"background-image":"url("+a+")"})}}var d,e,f;this.render=function(a){$(a).css({width:"100%",height:"100%","background-size":"cover","background-position":"center"}),d=a},this.onSettingsChanged=function(a){b(),a.refresh&&a.refresh>0&&(e=setInterval(c,1e3*Number(a.refresh)))},this.onCalculatedValueChanged=function(a,b){"src"==a&&(f=b),c()},this.onDispose=function(){b()},this.getHeight=function(){return 4},this.onSettingsChanged(a)};freeboard.loadWidgetPlugin({type_name:"picture",display_name:"Picture",fill_size:!0,settings:[{name:"src",display_name:"Image URL",type:"calculated"},{type:"number",display_name:"Refresh every",name:"refresh",suffix:"seconds",description:"Leave blank if the image doesn't need to be refreshed"}],newInstance:function(a,b){b(new l(a))}}),freeboard.addStyle(".indicator-light","border-radius:50%;width:22px;height:22px;border:2px solid #3d3d3d;margin-top:5px;float:left;background-color:#222;margin-right:10px;"),freeboard.addStyle(".indicator-light.on","background-color:#FFC773;box-shadow: 0px 0px 15px #FF9900;border-color:#FDF1DF;"),freeboard.addStyle(".indicator-text","margin-top:10px;");var m=function(a){function b(){e.toggleClass("on",g),d.text(g?h:i)}var c=$('

            '),d=$('
            '),e=$('
            '),f=a,g=!1,h="",i="";this.render=function(a){$(a).append(c).append(e).append(d)},this.onSettingsChanged=function(a){f=a,c.html(_.isUndefined(a.title)?"":a.title),b()},this.onCalculatedValueChanged=function(a,c){switch(a){case"value":g=Boolean(c);break;case"on_text":h=c;break;case"off_text":i=c}b()},this.onDispose=function(){},this.getHeight=function(){return 1},this.onSettingsChanged(a)};freeboard.loadWidgetPlugin({type_name:"indicator",display_name:"Indicator Light",settings:[{name:"title",display_name:"Title",type:"text"},{name:"value",display_name:"Value",type:"calculated"},{name:"on_text",display_name:"On Text",type:"calculated"},{name:"off_text",display_name:"Off Text",type:"calculated"}],newInstance:function(a,b){b(new m(a))}}),freeboard.addStyle(".gm-style-cc a","text-shadow:none;");var n=function(a){function b(){if(c&&d&&f.lat&&f.lon){var a=new google.maps.LatLng(f.lat,f.lon);d.setPosition(a),c.panTo(a)}}var c,d,e=a,f={};this.render=function(a){function e(){var e={zoom:13,center:new google.maps.LatLng(37.235,-115.811111),disableDefaultUI:!0,draggable:!1,styles:[{featureType:"water",elementType:"geometry",stylers:[{color:"#2a2a2a"}]},{featureType:"landscape",elementType:"geometry",stylers:[{color:"#000000"},{lightness:20}]},{featureType:"road.highway",elementType:"geometry.fill",stylers:[{color:"#000000"},{lightness:17}]},{featureType:"road.highway",elementType:"geometry.stroke",stylers:[{color:"#000000"},{lightness:29},{weight:.2}]},{featureType:"road.arterial",elementType:"geometry",stylers:[{color:"#000000"},{lightness:18}]},{featureType:"road.local",elementType:"geometry",stylers:[{color:"#000000"},{lightness:16}]},{featureType:"poi",elementType:"geometry",stylers:[{color:"#000000"},{lightness:21}]},{elementType:"labels.text.stroke",stylers:[{visibility:"on"},{color:"#000000"},{lightness:16}]},{elementType:"labels.text.fill",stylers:[{saturation:36},{color:"#000000"},{lightness:40}]},{elementType:"labels.icon",stylers:[{visibility:"off"}]},{featureType:"transit",elementType:"geometry",stylers:[{color:"#000000"},{lightness:19}]},{featureType:"administrative",elementType:"geometry.fill",stylers:[{color:"#000000"},{lightness:20}]},{featureType:"administrative",elementType:"geometry.stroke",stylers:[{color:"#000000"},{lightness:17},{weight:1.2}]}]};c=new google.maps.Map(a,e),google.maps.event.addDomListener(a,"mouseenter",function(a){a.cancelBubble=!0,c.hover||(c.hover=!0,c.setOptions({zoomControl:!0}))}),google.maps.event.addDomListener(a,"mouseleave",function(){c.hover&&(c.setOptions({zoomControl:!1}),c.hover=!1)}),d=new google.maps.Marker({map:c}),b()}window.google&&window.google.maps?e():(window.gmap_initialize=e,head.js("https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&callback=gmap_initialize"))},this.onSettingsChanged=function(a){e=a},this.onCalculatedValueChanged=function(a,c){"lat"==a?f.lat=c:"lon"==a&&(f.lon=c),b()},this.onDispose=function(){},this.getHeight=function(){return 4},this.onSettingsChanged(a)};freeboard.loadWidgetPlugin({type_name:"google_map",display_name:"Google Map",fill_size:!0,settings:[{name:"lat",display_name:"Latitude",type:"calculated"},{name:"lon",display_name:"Longitude",type:"calculated"}],newInstance:function(a,b){b(new n(a))}}),freeboard.addStyle(".html-widget","white-space:normal;width:100%;height:100%");var o=function(a){var b=$('
            '),c=a;this.render=function(a){$(a).append(b)},this.onSettingsChanged=function(a){c=a},this.onCalculatedValueChanged=function(a,c){"html"==a&&b.html(c)},this.onDispose=function(){},this.getHeight=function(){return Number(c.height)},this.onSettingsChanged(a)};freeboard.loadWidgetPlugin({type_name:"html",display_name:"HTML",fill_size:!0,settings:[{name:"html",display_name:"HTML",type:"calculated",description:"Can be literal HTML, or javascript that outputs HTML."},{name:"height",display_name:"Height Blocks",type:"number",default_value:4,description:"A height block is around 60 pixels"}],newInstance:function(a,b){b(new o(a))}})}(); \ No newline at end of file diff --git a/js/freeboard+plugins.min.js.map b/js/freeboard+plugins.min.js.map index 4fd8675d..0bdbf842 100644 --- a/js/freeboard+plugins.min.js.map +++ b/js/freeboard+plugins.min.js.map @@ -1 +1,7 @@ -{"version":3,"file":"freeboard+plugins.min.js","sources":["freeboard%2Bplugins.js"],"names":["DialogBox","contentElement","title","okTitle","cancelTitle","okCallback","closeModal","overlay","fadeOut","$","this","remove","modalDialog","append","appendTo","footer","click","hold","_","isFunction","fadeIn","FreeboardModel","datasourcePlugins","widgetPlugins","freeboardUI","self","SERIALIZATION_VERSION","version","isEditing","ko","observable","allow_edit","subscribe","newValue","show","hide","header_image","plugins","observableArray","datasources","panes","datasourceData","processDatasourceUpdate","datasourceModel","newData","datasourceName","name","each","pane","widgets","widget","_datasourceTypes","datasourceTypes","computed","read","returnTypes","datasourcePluginType","typeName","type_name","displayName","isUndefined","display_name","push","_widgetTypes","widgetTypes","widgetPluginType","addPluginSource","pluginSource","indexOf","serialize","datasource","columns","getUserColumns","deserialize","object","finishedCallback","finishLoad","setUserColumns","datasourceConfig","DatasourceModel","addDatasource","sortedPanes","sortBy","getPositionForScreenSize","row","paneConfig","PaneModel","length","setEditing","processResize","clearDashboard","plugin","isArray","head","js","removeAllPanes","dispose","removeAll","loadDashboard","dashboardData","callback","showLoadingIndicator","freeboard","emit","loadDashboardFromLocalFile","window","File","FileReader","FileList","Blob","input","document","createElement","type","on","event","files","target","file","reader","addEventListener","fileReaderEvent","textFile","jsonObject","JSON","parse","result","readAsText","trigger","alert","saveDashboard","contentType","a","blob","stringify","body","appendChild","href","URL","createObjectURL","download","deleteDatasource","createPane","newPane","addPane","addGridColumnLeft","addGridColumnRight","subGridColumnLeft","subGridColumnRight","deletePane","deleteWidget","utils","arrayForEach","editing","animate","animateLength","barHeight","outerHeight","addClass","removeClass","css","cursor","top","data","shown","attachWidgetEditIcons","enableGrid","unbind","disableGrid","showPaneEditIcons","toggleEditing","FreeboardUI","layoutWidgets","maxDisplayableColumns","getMaxDisplayableColumnCount","repositionFunction","paneElement","paneModel","dataFor","newPosition","attr","Math","min","col_width","grid","cols","col","processSizeChange","updateGridWidth","userColumns","repositionGrid","updateGridColumnControls","addGridColumn","shift","num_cols","prevColumnIndex","prevCol","prevRow","leftPreviewCol","newCol","rightPreviewCol","subtractGridColumn","col_controls","available_width","width","max_columns","floor","COLUMN_WIDTH","MIN_COLUMNS","newCols","undefined","new_width","rootElement","$el","find","removeData","generate_grid_and_stylesheet","init","PANE_WIDTH","PANE_MARGIN","numCols","max","element","viewModel","position","Number","height","getCalculatedHeight","add_widget","updatePositionForScreenSize","attrchange","trackValues","attributeName","updatePane","calculatedHeight","elementHeight","elementWidth","resize_widget","set_dom_grid_height","displayCols","loadingIndicator","hover","showWidgetEditIcons","isNumber","obj","newColumnIndex","columnDiff","columnIndex","delta","bindingHandlers","gridster","widget_margins","widget_base_dimensions","resize","enabled","axes","disable","enable","removePane","remove_widget","remove_all_widgets","theFreeboardModel","addWidget","widgetCanMoveUp","widgetCanMoveDown","i","moveWidgetUp","array","splice","moveWidgetDown","setTimeout","sumHeights","reduce","memo","rows","ceil","widgetConfig","WidgetModel","disposeWidgetInstance","widgetInstance","onDispose","datasourceRefreshNotifications","calculatedSettingScripts","fillSize","widgetType","newInstance","settings","fill_size","shouldRender","_heightUpdate","valueHasMutated","external_scripts","slice","onSettingsChanged","updateCalculatedSettings","refreshSettingNames","settingName","processCalculatedSetting","callValueFunction","theFunction","call","onSizeChanged","returnValue","e","rawValue","ReferenceError","test","onCalculatedValueChanged","console","log","toString","settingsDefs","datasourceRegex","RegExp","currentSettings","settingDef","script","match","valueFunction","Function","literalText","replace","matches","exec","dsName","getHeight","render","disposeDatasourceInstance","datasourceInstance","latestData","updateCallback","now","Date","last_updated","toLocaleTimeString","datasourceType","updateNow","last_error","getDataRepresentation","dataPath","DeveloperConsole","showDeveloperConsole","addNewScriptRow","scriptURL","tableRow","tableOperations","scriptInput","deleteOperation","pluginScriptsInputs","without","val","tableBody","container","addScript","table","JSEditor","setAssetRoot","_assetRoot","assetRoot","displayJSEditor","value","exampleText","codeWindow","codeMirrorWrapper","codeWindowFooter","codeWindowHeader","codeMirrorEditor","CodeMirror","get","mode","theme","indentUnit","lineNumbers","matchBrackets","autoCloseBrackets","closeButton","getValue","PluginEditor","jsEditor","valueEditor","_displayValidationError","errorMessage","errorElement","html","_removeSettingsRows","nextAll","_isNumerical","n","isNaN","parseFloat","isFinite","createPluginEditor","pluginTypes","currentTypeName","currentSettingsValues","settingsSavedCallback","createSettingRow","tr","form","createSettingsFromDefinition","processHeaderVisibility","newSettings","subTableHead","createSubsettingRow","subsettingValue","subsettingRow","subTableBody","newSetting","subSettingDef","subsettingCol","subsettingValueString","change","subSettingIndex","subTableDiv","scrollTop","scrollHeight","default_value","valueCell","subTable","subTableHeadRow","currentSubSettingValues","subsettingDisplayName","newSubsettingValue","currentSubSettingValue","onOffSwitch","prependTo","checked","prop","defaultValue","options","option","optionName","optionValue","isObject","text","createValueEditor","datasourceToolbox","datasourceTool","mousedown","preventDefault","focus","insertAtCaret","jsEditorTool","suffix","description","selectedType","pluginDescriptionElement","index","required","typeSelect","pluginTypeNames","keys","typeRow","pluginType","currentInstanceName","ValueEditor","_resizeValueEditor","lineBreakCount","newHeight","_autocompleteFromDatasource","inputString","replacementString","_veDatasourceRegex","follow_char","dataPathItems","split","dataPathItem","lastPathObject","last","charAt","dataValue","followChar","_autocompleteOptions","_autocompleteReplacementString","dropdown","selectedOptionIndex","bind","keyCode","substring","getCaretPosition","String","fromCharCode","insertAfter","outerWidth","left","empty","selected","currentIndex","li","mouseenter","replacementIndex","lastIndexOf","replaceTextAt","triggerHandler","parent","next","z-index","focusout","optionItems","size","optionElement","eq","isDOMAttrModifiedSupported","p","flag","attachEvent","setAttribute","checkAttributes","chkAttr","attributes","oldValue","camelCase","MutationObserver","WebKitMutationObserver","fn","o","cfg","noop","extend","el","attrs","l","item","nodeName","mOptions","subtree","attributeOldValue","observer","mutations","forEach","_this","observe","originalEvent","attrName","prevValue","propertyName","jQuery","eventEmitter","_JQInit","_JQ","evt","once","handler","one","off","getParameterByName","regex","results","location","search","decodeURIComponent","pluginEditor","developerConsole","currentStyle","values","font-family","color","font-weight","valueAccessor","allBindingsAccessor","unwrap","types","operation","phraseElement","instanceType","newViewModel","virtualElements","allowedBindings","datasourceTypeSettings","update","bindingContext","processPluginSettings","$root","resizeEnd","resizeTimer","clearTimeout","initialize","allowEdit","applyBindings","freeboardLocation","ajax","url","success","newDashboard","configuration","loadDatasourcePlugin","unshift","source","loadWidgetPlugin","addStyle","selector","rules","styleString","styleElement","styleSheet","cssText","showDialog","getDatasourceSettings","setDatasourceSettings","combinedSettings","defaults","getStyleString","returnString","getStyleObject","jsonDatasource","updateRefresh","refreshTime","updateTimer","clearInterval","setInterval","errorStage","lockErrorStage","refresh","use_thingproxy","requestURL","protocol","encodeURI","dataType","method","beforeSend","xhr","headers","header","setRequestHeader","error","newInstanceCallback","openWeatherMapDatasource","toTitleCase","str","txt","toUpperCase","substr","toLowerCase","encodeURIComponent","units","place_name","sunrise","sys","sunset","conditions","weather","current_temp","main","temp","high_temp","temp_max","low_temp","temp_min","pressure","humidity","wind_speed","wind","speed","wind_direction","deg","default","dweetioDatasource","onNewDweet","dweet","dweetio","get_latest_dweet_for","thing_id","err","content","stop_listening","listen_for","playbackDatasource","moveNext","currentDataset","loop","currentTimeout","stopTimeout","datafile","clockDatasource","stopTimer","timer","date","numeric_value","getTime","full_string_value","toLocaleString","date_string_value","toLocaleDateString","time_string_value","date_object","easeTransitionText","textElement","duration","currentValue","isNumeric","numParts","endingPrecision","startingPrecision","transitionValue","precisionValue","step","toFixed","done","addValueToSparkline","SPARKLINE_HISTORY_LENGTH","sparkline","fillColor","lineColor","lineWidth","spotRadius","spotColor","minSpotColor","maxSpotColor","highlightSpotColor","highlightLineColor","valueStyle","textWidget","updateValueSizing","valueElement","displayElement","innerWidth","unitsElement","titleElement","sparklineElement","shouldDisplayTitle","shouldDisplayUnits","valueFontSize","font-size","gaugeID","gaugeWidget","createGauge","rendered","gaugeElement","gaugeObject","JustGage","id","thisGaugeID","min_value","max_value","label","showInnerShadow","valueFontColor","sparklineWidget","pointerWidget","polygonPath","points","path","paper","triangle","strokeWidth","valueDiv","unitsDiv","radius","Raphael","circle","transform","pictureWidget","updateImage","widgetElement","imageURL","cacheBreakerURL","background-image","background-size","background-position","indicatorWidget","updateState","indicatorElement","toggleClass","isOn","stateElement","on_text","off_text","Boolean","googleMapWidget","updatePosition","map","marker","currentPosition","lat","lon","newLatLon","google","maps","LatLng","setPosition","panTo","initializeMap","mapOptions","zoom","center","disableDefaultUI","draggable","styles","featureType","elementType","stylers","lightness","weight","visibility","saturation","Map","addDomListener","cancelBubble","setOptions","zoomControl","Marker","gmap_initialize","htmlWidget","htmlElement"],"mappings":"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"} \ No newline at end of file +<<<<<<< HEAD +{"version":3,"file":"freeboard+plugins.min.js","sources":["freeboard%2Bplugins.js"],"names":["DialogBox","contentElement","title","okTitle","cancelTitle","okCallback","closeModal","overlay","fadeOut","$","this","remove","modalDialog","append","appendTo","footer","click","hold","_","isFunction","fadeIn","FreeboardModel","datasourcePlugins","widgetPlugins","freeboardUI","self","SERIALIZATION_VERSION","version","isEditing","ko","observable","allow_edit","subscribe","newValue","show","hide","header_image","plugins","observableArray","datasources","panes","datasourceData","processDatasourceUpdate","datasourceModel","newData","datasourceName","name","each","pane","widgets","widget","_datasourceTypes","datasourceTypes","computed","read","returnTypes","datasourcePluginType","typeName","type_name","displayName","isUndefined","display_name","push","_widgetTypes","widgetTypes","widgetPluginType","addPluginSource","pluginSource","indexOf","serialize","datasource","columns","getUserColumns","deserialize","object","finishedCallback","finishLoad","setUserColumns","datasourceConfig","DatasourceModel","addDatasource","sortedPanes","sortBy","getPositionForScreenSize","row","paneConfig","PaneModel","length","setEditing","processResize","clearDashboard","plugin","isArray","head","js","removeAllPanes","dispose","removeAll","loadDashboard","dashboardData","callback","showLoadingIndicator","freeboard","emit","loadDashboardFromLocalFile","window","File","FileReader","FileList","Blob","input","document","createElement","type","on","event","files","target","file","reader","addEventListener","fileReaderEvent","textFile","jsonObject","JSON","parse","result","readAsText","trigger","alert","saveDashboard","contentType","a","blob","stringify","body","appendChild","href","URL","createObjectURL","download","deleteDatasource","createPane","newPane","addPane","addGridColumnLeft","addGridColumnRight","subGridColumnLeft","subGridColumnRight","deletePane","deleteWidget","utils","arrayForEach","editing","animate","animateLength","barHeight","outerHeight","addClass","removeClass","css","cursor","top","data","shown","attachWidgetEditIcons","enableGrid","unbind","disableGrid","showPaneEditIcons","toggleEditing","FreeboardUI","layoutWidgets","maxDisplayableColumns","getMaxDisplayableColumnCount","repositionFunction","paneElement","paneModel","dataFor","newPosition","attr","Math","min","col_width","grid","cols","col","processSizeChange","updateGridWidth","userColumns","repositionGrid","updateGridColumnControls","addGridColumn","shift","num_cols","prevColumnIndex","prevCol","prevRow","leftPreviewCol","newCol","rightPreviewCol","subtractGridColumn","col_controls","available_width","width","max_columns","floor","COLUMN_WIDTH","MIN_COLUMNS","newCols","undefined","new_width","rootElement","$el","find","removeData","generate_grid_and_stylesheet","init","PANE_WIDTH","PANE_MARGIN","numCols","max","element","viewModel","position","Number","height","getCalculatedHeight","add_widget","updatePositionForScreenSize","attrchange","trackValues","attributeName","updatePane","calculatedHeight","elementHeight","elementWidth","resize_widget","set_dom_grid_height","displayCols","loadingIndicator","hover","showWidgetEditIcons","isNumber","obj","newColumnIndex","columnDiff","columnIndex","delta","bindingHandlers","gridster","widget_margins","widget_base_dimensions","resize","enabled","axes","disable","enable","removePane","remove_widget","remove_all_widgets","theFreeboardModel","addWidget","widgetCanMoveUp","widgetCanMoveDown","i","moveWidgetUp","array","splice","moveWidgetDown","setTimeout","sumHeights","reduce","memo","rows","ceil","widgetConfig","WidgetModel","disposeWidgetInstance","widgetInstance","onDispose","datasourceRefreshNotifications","calculatedSettingScripts","fillSize","widgetType","newInstance","settings","fill_size","shouldRender","_heightUpdate","valueHasMutated","external_scripts","slice","onSettingsChanged","updateCalculatedSettings","refreshSettingNames","settingName","processCalculatedSetting","callValueFunction","theFunction","call","onSizeChanged","returnValue","e","rawValue","ReferenceError","test","onCalculatedValueChanged","console","log","toString","settingsDefs","datasourceRegex","RegExp","currentSettings","settingDef","script","match","valueFunction","Function","literalText","replace","matches","exec","dsName","getHeight","render","disposeDatasourceInstance","datasourceInstance","latestData","updateCallback","now","Date","last_updated","toLocaleTimeString","datasourceType","updateNow","last_error","getDataRepresentation","dataPath","DeveloperConsole","showDeveloperConsole","addNewScriptRow","scriptURL","tableRow","tableOperations","scriptInput","deleteOperation","pluginScriptsInputs","without","val","tableBody","container","addScript","table","JSEditor","setAssetRoot","_assetRoot","assetRoot","displayJSEditor","value","exampleText","codeWindow","codeMirrorWrapper","codeWindowFooter","codeWindowHeader","codeMirrorEditor","CodeMirror","get","mode","theme","indentUnit","lineNumbers","matchBrackets","autoCloseBrackets","closeButton","getValue","PluginEditor","jsEditor","valueEditor","_displayValidationError","errorMessage","errorElement","html","_removeSettingsRows","nextAll","_isNumerical","n","isNaN","parseFloat","isFinite","createPluginEditor","pluginTypes","currentTypeName","currentSettingsValues","settingsSavedCallback","createSettingRow","tr","form","createSettingsFromDefinition","processHeaderVisibility","newSettings","subTableHead","createSubsettingRow","subsettingValue","subsettingRow","subTableBody","newSetting","subSettingDef","subsettingCol","subsettingValueString","change","subSettingIndex","subTableDiv","scrollTop","scrollHeight","default_value","valueCell","subTable","subTableHeadRow","currentSubSettingValues","subsettingDisplayName","newSubsettingValue","currentSubSettingValue","onOffSwitch","prependTo","checked","prop","defaultValue","options","option","optionName","optionValue","isObject","text","createValueEditor","datasourceToolbox","datasourceTool","mousedown","preventDefault","focus","insertAtCaret","jsEditorTool","suffix","description","selectedType","pluginDescriptionElement","index","required","typeSelect","pluginTypeNames","keys","typeRow","pluginType","currentInstanceName","ValueEditor","_resizeValueEditor","lineBreakCount","newHeight","_autocompleteFromDatasource","inputString","replacementString","_veDatasourceRegex","follow_char","dataPathItems","split","dataPathItem","lastPathObject","last","charAt","dataValue","followChar","_autocompleteOptions","_autocompleteReplacementString","dropdown","selectedOptionIndex","bind","keyCode","substring","getCaretPosition","String","fromCharCode","insertAfter","outerWidth","left","empty","selected","currentIndex","li","mouseenter","replacementIndex","lastIndexOf","replaceTextAt","triggerHandler","parent","next","z-index","focusout","optionItems","size","optionElement","eq","isDOMAttrModifiedSupported","p","flag","attachEvent","setAttribute","checkAttributes","chkAttr","attributes","oldValue","camelCase","MutationObserver","WebKitMutationObserver","fn","o","cfg","noop","extend","el","attrs","l","item","nodeName","mOptions","subtree","attributeOldValue","observer","mutations","forEach","_this","observe","originalEvent","attrName","prevValue","propertyName","jQuery","eventEmitter","_JQInit","_JQ","evt","once","handler","one","off","getParameterByName","regex","results","location","search","decodeURIComponent","pluginEditor","developerConsole","currentStyle","values","font-family","color","font-weight","valueAccessor","allBindingsAccessor","unwrap","types","operation","phraseElement","instanceType","newViewModel","virtualElements","allowedBindings","datasourceTypeSettings","update","bindingContext","processPluginSettings","$root","resizeEnd","resizeTimer","clearTimeout","initialize","allowEdit","applyBindings","freeboardLocation","ajax","url","success","newDashboard","configuration","loadDatasourcePlugin","unshift","source","loadWidgetPlugin","addStyle","selector","rules","styleString","styleElement","styleSheet","cssText","showDialog","getDatasourceSettings","setDatasourceSettings","combinedSettings","defaults","getStyleString","returnString","getStyleObject","jsonDatasource","updateRefresh","refreshTime","updateTimer","clearInterval","setInterval","errorStage","lockErrorStage","refresh","use_thingproxy","requestURL","protocol","encodeURI","dataType","method","beforeSend","xhr","headers","header","setRequestHeader","error","newInstanceCallback","openWeatherMapDatasource","toTitleCase","str","txt","toUpperCase","substr","toLowerCase","encodeURIComponent","units","place_name","sunrise","sys","sunset","conditions","weather","current_temp","main","temp","high_temp","temp_max","low_temp","temp_min","pressure","humidity","wind_speed","wind","speed","wind_direction","deg","default","dweetioDatasource","onNewDweet","dweet","dweetio","get_latest_dweet_for","thing_id","err","content","stop_listening","listen_for","playbackDatasource","moveNext","currentDataset","loop","currentTimeout","stopTimeout","datafile","clockDatasource","stopTimer","timer","date","numeric_value","getTime","full_string_value","toLocaleString","date_string_value","toLocaleDateString","time_string_value","date_object","easeTransitionText","textElement","duration","currentValue","isNumeric","numParts","endingPrecision","startingPrecision","transitionValue","precisionValue","step","toFixed","done","addValueToSparkline","SPARKLINE_HISTORY_LENGTH","sparkline","fillColor","lineColor","lineWidth","spotRadius","spotColor","minSpotColor","maxSpotColor","highlightSpotColor","highlightLineColor","valueStyle","textWidget","updateValueSizing","valueElement","displayElement","innerWidth","unitsElement","titleElement","sparklineElement","shouldDisplayTitle","shouldDisplayUnits","valueFontSize","font-size","gaugeID","gaugeWidget","createGauge","rendered","gaugeElement","gaugeObject","JustGage","id","thisGaugeID","min_value","max_value","label","showInnerShadow","valueFontColor","sparklineWidget","pointerWidget","polygonPath","points","path","paper","triangle","strokeWidth","valueDiv","unitsDiv","radius","Raphael","circle","transform","pictureWidget","updateImage","widgetElement","imageURL","cacheBreakerURL","background-image","background-size","background-position","indicatorWidget","updateState","indicatorElement","toggleClass","isOn","stateElement","on_text","off_text","Boolean","googleMapWidget","updatePosition","map","marker","currentPosition","lat","lon","newLatLon","google","maps","LatLng","setPosition","panTo","initializeMap","mapOptions","zoom","center","disableDefaultUI","draggable","styles","featureType","elementType","stylers","lightness","weight","visibility","saturation","Map","addDomListener","cancelBubble","setOptions","zoomControl","Marker","gmap_initialize","htmlWidget","htmlElement"],"mappings":"AA4MA,QAASA,WAAUC,EAAgBC,EAAOC,EAASC,EAAaC,GAS/D,QAASC,KAERC,EAAQC,QAAQ,IAAK,WAEpBC,EAAEC,MAAMC,WAXV,GAGIJ,GAAUE,EAAE,wDAEZG,EAAcH,EAAE,4BAWpBG,GAAYC,OAAO,6BAA+BX,EAAQ,kBAE1DO,EAAE,uBAAuBK,SAASF,GAAaC,OAAOZ,EAGtD,IAAIc,GAASN,EAAE,qBAAqBK,SAASF,EAE1CT,IAEFM,EAAE,4CAA8CN,EAAU,WAAWW,SAASC,GAAQC,MAAM,WAE3F,GAAIC,IAAO,CAERC,GAAEC,WAAWd,KAEfY,EAAOZ,KAGJY,GAEHX,MAKAF,GAEFK,EAAE,gDAAkDL,EAAc,WAAWU,SAASC,GAAQC,MAAM,WAEnGV,MAIFC,EAAQM,OAAOD,GACfH,EAAE,QAAQI,OAAON,GACjBA,EAAQa,OAAO,KAGhB,QAASC,gBAAeC,EAAmBC,EAAeC,GAEzD,GAAIC,GAAOf,KAEPgB,EAAwB,CAE5BhB,MAAKiB,QAAU,EACfjB,KAAKkB,UAAYC,GAAGC,YAAW,GAC/BpB,KAAKqB,WAAaF,GAAGC,YAAW,GAChCpB,KAAKqB,WAAWC,UAAU,SAASC,GAE/BA,EAEFxB,EAAE,gBAAgByB,OAIlBzB,EAAE,gBAAgB0B,SAIpBzB,KAAK0B,aAAeP,GAAGC,aACvBpB,KAAK2B,QAAUR,GAAGS,kBAClB5B,KAAK6B,YAAcV,GAAGS,kBACtB5B,KAAK8B,MAAQX,GAAGS,kBAChB5B,KAAK+B,kBACL/B,KAAKgC,wBAA0B,SAASC,EAAiBC,GAExD,GAAIC,GAAiBF,EAAgBG,MAErCrB,GAAKgB,eAAeI,GAAkBD,EAEtC1B,EAAE6B,KAAKtB,EAAKe,QAAS,SAASQ,GAE7B9B,EAAE6B,KAAKC,EAAKC,UAAW,SAASC,GAE/BA,EAAOR,wBAAwBG,QAKlCnC,KAAKyC,iBAAmBtB,GAAGC,aAC3BpB,KAAK0C,gBAAkBvB,GAAGwB,UACzBC,KAAM,WAEL7B,EAAK0B,kBAEL,IAAII,KAkBJ,OAhBArC,GAAE6B,KAAKzB,EAAmB,SAASkC,GAElC,GAAIC,GAAWD,EAAqBE,UAChCC,EAAcF,CAEdvC,GAAE0C,YAAYJ,EAAqBK,gBAEtCF,EAAcH,EAAqBK,cAGpCN,EAAYO,MACXhB,KAAcW,EACdI,aAAcF,MAITJ,KAIT7C,KAAKqD,aAAelC,GAAGC,aACvBpB,KAAKsD,YAAcnC,GAAGwB,UACrBC,KAAM,WAEL7B,EAAKsC,cAEL,IAAIR,KAkBJ,OAhBArC,GAAE6B,KAAKxB,EAAe,SAAS0C,GAE9B,GAAIR,GAAWQ,EAAiBP,UAC5BC,EAAcF,CAEdvC,GAAE0C,YAAYK,EAAiBJ,gBAElCF,EAAcM,EAAiBJ,cAGhCN,EAAYO,MACXhB,KAAcW,EACdI,aAAcF,MAITJ,KAIT7C,KAAKwD,gBAAkB,SAASC,GAE5BA,GAAsD,IAAtC1C,EAAKY,QAAQ+B,QAAQD,IAEvC1C,EAAKY,QAAQyB,KAAKK,IAIpBzD,KAAK2D,UAAY,WAEhB,GAAI7B,KAEJtB,GAAE6B,KAAKtB,EAAKe,QAAS,SAASQ,GAE7BR,EAAMsB,KAAKd,EAAKqB,cAGjB,IAAI9B,KAOJ,OALArB,GAAE6B,KAAKtB,EAAKc,cAAe,SAAS+B,GAEnC/B,EAAYuB,KAAKQ,EAAWD,gBAI5B1C,QAAcD,EACdU,aAAcX,EAAKW,eACnBL,WAAcN,EAAKM,aACnBM,QAAcZ,EAAKY,UACnBG,MAAcA,EACdD,YAAcA,EACdgC,QAAc/C,EAAYgD,mBAI5B9D,KAAK+D,YAAc,SAASC,EAAQC,GAInC,QAASC,KAERpD,EAAYqD,eAAeH,EAAOH,SAQjC9C,EAAKM,WANFb,EAAE0C,YAAYc,EAAO3C,aAMR,EAJA2C,EAAO3C,YAMxBN,EAAKE,QAAU+C,EAAO/C,SAAW,EACjCF,EAAKW,aAAasC,EAAOtC,cAEzBlB,EAAE6B,KAAK2B,EAAOnC,YAAa,SAASuC,GAEnC,GAAIR,GAAa,GAAIS,iBAAgBtD,EAAMH,EAC3CgD,GAAWG,YAAYK,GACvBrD,EAAKuD,cAAcV,IAGpB,IAAIW,GAAc/D,EAAEgE,OAAOR,EAAOlC,MAAO,SAASQ,GACjD,MAAOxB,GAAY2D,yBAAyBnC,GAAMoC,KAGnDlE,GAAE6B,KAAKkC,EAAa,SAASI,GAE5B,GAAIrC,GAAO,GAAIsC,WAAU7D,EAAMF,EAC/ByB,GAAKyB,YAAYY,GACjB5D,EAAKe,MAAMsB,KAAKd,KAGdvB,EAAKM,cAAuC,GAAvBN,EAAKe,QAAQ+C,QAEpC9D,EAAK+D,YAAW,GAGdtE,EAAEC,WAAWwD,IAEfA,IAGDnD,EAAYiE,eAAc,GA7C3BhE,EAAKiE,iBAiDLxE,EAAE6B,KAAK2B,EAAOrC,QAAS,SAASsD,GAE/BlE,EAAKyC,gBAAgByB,KAInBzE,EAAE0E,QAAQlB,EAAOrC,UAAYqC,EAAOrC,QAAQkD,OAAS,EAEvDM,KAAKC,GAAGpB,EAAOrC,QAAS,WAEvBuC,MAKDA,KAIFlE,KAAKgF,eAAiB,WAErBlE,EAAYuE,iBAEZ7E,EAAE6B,KAAKtB,EAAKc,cAAe,SAAS+B,GAEnCA,EAAW0B,YAGZ9E,EAAE6B,KAAKtB,EAAKe,QAAS,SAASQ,GAE7BA,EAAKgD,YAGNvE,EAAKY,QAAQ4D,YACbxE,EAAKc,YAAY0D,YACjBxE,EAAKe,MAAMyD,aAGZvF,KAAKwF,cAAgB,SAASC,EAAeC,GAE5C5E,EAAY6E,sBAAqB,GACjC5E,EAAKgD,YAAY0B,EAAe,WAE/B3E,EAAY6E,sBAAqB,GAE9BnF,EAAEC,WAAWiF,IAEfA,IAGIE,UAAUC,KAAK,uBAItB7F,KAAK8F,2BAA6B,WAGjC,GAAGC,OAAOC,MAAQD,OAAOE,YAAcF,OAAOG,UAAYH,OAAOI,KACjE,CACC,GAAIC,GAAQC,SAASC,cAAc,QACnCF,GAAMG,KAAO,OACbxG,EAAEqG,GAAOI,GAAG,SAAU,SAASC,GAE9B,GAAIC,GAAQD,EAAME,OAAOD,KAEzB,IAAGA,GAASA,EAAM7B,OAAS,EAC3B,CACC,GAAI+B,GAAOF,EAAM,GACbG,EAAS,GAAIZ,WAEjBY,GAAOC,iBAAiB,OAAQ,SAASC,GAGxC,GAAIC,GAAWD,EAAgBJ,OAC3BM,EAAaC,KAAKC,MAAMH,EAASI,OAGrCrG,GAAKyE,cAAcyB,GACnBlG,EAAK+D,YAAW,KAGjB+B,EAAOQ,WAAWT,MAIpB7G,EAAEqG,GAAOkB,QAAQ,aAIjBC,OAAM,2CAIRvH,KAAKwH,cAAgB,WAEpB,GAAIC,GAAc,2BACdC,EAAIrB,SAASC,cAAc,KAC3BqB,EAAO,GAAIxB,OAAMe,KAAKU,UAAU7G,EAAK4C,eAAgB4C,KAAQkB,GACjEpB,UAASwB,KAAKC,YAAYJ,GAC1BA,EAAEK,KAAOhC,OAAOiC,IAAIC,gBAAgBN,GACpCD,EAAEQ,SAAW,iBACbR,EAAEf,OAAO,QACTe,EAAEpH,SAGHN,KAAKsE,cAAgB,SAASV,GAE7B7C,EAAKc,YAAYuB,KAAKQ,IAGvB5D,KAAKmI,iBAAmB,SAASvE,SAEzB7C,GAAKgB,eAAe6B,EAAWxB,QACtCwB,EAAW0B,UACXvE,EAAKc,YAAY5B,OAAO2D,IAGzB5D,KAAKoI,WAAa,WAEjB,GAAIC,GAAU,GAAIzD,WAAU7D,EAAMF,EAClCE,GAAKuH,QAAQD,IAGdrI,KAAKuI,kBAAoB,WAExBzH,EAAYyH,qBAGbvI,KAAKwI,mBAAqB,WAEzB1H,EAAY0H,sBAGbxI,KAAKyI,kBAAoB,WAExB3H,EAAY2H,qBAGbzI,KAAK0I,mBAAqB,WAEzB5H,EAAY4H,sBAGb1I,KAAKsI,QAAU,SAAShG,GAEvBvB,EAAKe,MAAMsB,KAAKd,IAGjBtC,KAAK2I,WAAa,SAASrG,GAE1BA,EAAKgD,UACLvE,EAAKe,MAAM7B,OAAOqC,IAGnBtC,KAAK4I,aAAe,SAASpG,GAE5BrB,GAAG0H,MAAMC,aAAa/H,EAAKe,QAAS,SAASQ,GAE5CA,EAAKC,QAAQtC,OAAOuC,KAGrBA,EAAO8C,WAGRtF,KAAK8E,WAAa,SAASiE,EAASC,GAGnC,GAAIjI,EAAKM,eAAgB0H,EAAzB,CAKAhI,EAAKG,UAAU6H,GAEZvI,EAAE0C,YAAY8F,KAEhBA,GAAU,EAGX,IAAIC,GAAgB,EAAY,IAAM,EAClCC,EAAYnJ,EAAE,cAAcoJ,aAE5BJ,IAYHhJ,EAAE,uBAAuBqJ,SAAS,mBAAmBC,YAAY,eACjEtJ,EAAE,mBAAmBuJ,KAAKC,OAAQ,YAClCxJ,EAAE,gBAAgBiJ,SAASQ,IAAO,OAAQP,GAC1ClJ,EAAE,kBAAkBiJ,SAASQ,IAAQN,EAAY,GAAM,MAAOD,GAC9DlJ,EAAE,gBAAgB0J,OAAOC,OAAQ,EACjC5I,EAAY6I,sBAAsB5J,EAAE,iBACpCe,EAAY8I,eAhBZ7J,EAAE,uBAAuBqJ,SAAS,eAAeC,YAAY,mBAC7DtJ,EAAE,mBAAmBuJ,KAAKC,OAAQ,YAClCxJ,EAAE,gBAAgBiJ,SAASQ,IAAO,IAAMN,EAAY,MAAOD,GAC3DlJ,EAAE,kBAAkBiJ,SAASQ,IAAO,MAAOP,GAC3ClJ,EAAE,gBAAgB0J,OAAOC,OAAQ,EACjC3J,EAAE,gBAAgB8J,SAClB/I,EAAYgJ,eAabhJ,EAAYiJ,kBAAkBhB,EAASC,KAGxChJ,KAAKgK,cAAgB,WAEpB,GAAIjB,IAAWhI,EAAKG,WACpBH,GAAK+D,WAAWiE,IAIlB,QAASkB,eAYR,QAASlF,GAAcmF,GAEtB,GAAIC,GAAwBC,IACxBC,EAAqB,YACtBH,KAEFG,EAAqB,WAEpB,GAAIC,GAActK,KACduK,EAAYpJ,GAAGqJ,QAAQF,GAEvBG,EAAchG,EAAyB8F,EAC3CxK,GAAEuK,GAAaI,KAAK,aAAcC,KAAKC,IAAIL,EAAUM,YACpDV,EAAuBW,EAAKC,OAC3BL,KAAK,WAAYD,EAAY/F,KAC7BgG,KAAK,WAAYD,EAAYO,KAE/BT,EAAUU,sBAIZC,EAAgBP,KAAKC,IAAIT,EAAuBgB,IAEhDC,EAAef,GACfgB,IAGD,QAASC,GAAcC,GAEtB,GAAIC,GAAWV,EAAKC,KAAO,CACxBG,GAAgBM,IAElBJ,EAAe,WACd,GAMIX,GANAH,EAActK,KACduK,EAAYpJ,GAAGqJ,QAAQF,GAEvBmB,EAAkBX,EAAKC,KAAO,EAAID,EAAKC,KAAO,EAAI,EAClDW,EAAUnB,EAAUS,IAAIS,GACxBE,EAAUpB,EAAU7F,IAAI+G,EAE5B,IAAGF,EACH,CACCK,gBAAiB,CACjB,IAAIC,GAASH,EAAUZ,EAAKC,KAAOW,EAAU,EAAIZ,EAAKC,IACtDN,IAAe/F,IAAKiH,EAASX,IAAKa,OAIlCC,kBAAkB,EAClBrB,GAAe/F,IAAKiH,EAASX,IAAKU,EAEnC3L,GAAEuK,GAAaI,KAAK,aAAcC,KAAKC,IAAIL,EAAUM,YAAaC,EAAKC,OACrEL,KAAK,WAAYD,EAAY/F,KAC7BgG,KAAK,WAAYD,EAAYO,OAGjCK,IACAF,EAAcL,EAAKC,KAGpB,QAASgB,GAAmBR,GAE3B,GAAIC,GAAWV,EAAKC,KAAO,CACxBG,GAAgBM,IAElBJ,EAAe,WACd,GAMIX,GANAH,EAActK,KACduK,EAAYpJ,GAAGqJ,QAAQF,GAEvBmB,EAAkBX,EAAKC,KAAO,EAC9BW,EAAUnB,EAAUS,IAAIS,GACxBE,EAAUpB,EAAU7F,IAAI+G,EAE5B,IAAGF,EACH,CACC,GAAIM,GAASH,EAAU,EAAIA,EAAU,EAAI,CACzCjB,IAAe/F,IAAKiH,EAASX,IAAKa,OAGnC,CACC,GAAIA,GAASH,GAAWZ,EAAKC,KAAOW,EAAUZ,EAAKC,IACnDN,IAAe/F,IAAKiH,EAASX,IAAKa,GAEnC9L,EAAEuK,GAAaI,KAAK,aAAcC,KAAKC,IAAIL,EAAUM,YAAaC,EAAKC,OACrEL,KAAK,WAAYD,EAAY/F,KAC7BgG,KAAK,WAAYD,EAAYO,OAGjCK,IACAF,EAAcL,EAAKC,KAGpB,QAASM,KAER,GAAIW,GAAejM,EAAE,gBACjBkM,EAAkBlM,EAAE,kBAAkBmM,QACtCC,EAAcxB,KAAKyB,MAAMH,EAAkBI,EAE5CvB,GAAKC,MAAQuB,EAEfN,EAAa5C,SAAS,OAItB4C,EAAa3C,YAAY,OAGvByB,EAAKC,MAAQoB,EAEfH,EAAa5C,SAAS,OAItB4C,EAAa3C,YAAY,OAI3B,QAASe,KAER,GAAI6B,GAAkBlM,EAAE,kBAAkBmM,OAC1C,OAAOvB,MAAKyB,MAAMH,EAAkBI,GAGrC,QAASnB,GAAgBqB,IAETC,SAAZD,GAAmCD,EAAVC,KAE3BA,EAAUD,EAGX,IAAIH,GAAc/B,GACfmC,GAAUJ,IAEZI,EAAUJ,EAIX,IAAIM,GAAaJ,EAAeE,EAAWA,CAG3C,OAFAxM,GAAE,4BAA4BuJ,IAAI,YAAamD,GAE5CF,IAAYzB,EAAKC,MAEZ,GAIA,EAIT,QAASK,GAAef,GAEvB,GAAIqC,GAAc5B,EAAK6B,GAEvBD,GAAYE,KAAK,QAAQ/C,SAASgD,aAClC9M,EAAE,4BAA4BuJ,IAAI,QAAS,IAC3CwB,EAAKgC,+BAELJ,EAAYE,KAAK,QAAQvK,KAAKgI,GAE9BS,EAAKiC,OACLhN,EAAE,4BAA4BuJ,IAAI,QAASwB,EAAKC,KAAOiC,EAAclC,EAAKC,KAAOkC,EAAc,GAGhG,QAASnJ,KAER,MAAOqH,GAGR,QAAShH,GAAe+I,GAEvB/B,EAAcR,KAAKwC,IAAIb,EAAaY,GAsBrC,QAAS5E,GAAQ8E,EAASC,EAAWnM,GAEpC,GAAIoM,GAAW7I,EAAyB4I,GACpCrC,EAAMsC,EAAStC,IACftG,EAAM4I,EAAS5I,IACfwH,EAAQqB,OAAOF,EAAUnB,SACzBsB,EAASD,OAAOF,EAAUI,sBAE9B3C,GAAK4C,WAAWN,EAASlB,EAAOsB,EAAQxC,EAAKtG,GAE1CxD,GAEF6I,GAAkB,GAGnB4D,EAA4BN,EAAW3I,EAAKsG,GAE5CjL,EAAEqN,GAASQ,YACVC,aAAa,EACbnI,SAAa,SAASe,GAEK,YAAvBA,EAAMqH,cAEOH,EAA4BN,EAAWE,OAAO9G,EAAMlF,UAAWiL,QAEhD,YAAvB/F,EAAMqH,eAEEH,EAA4BN,EAAWb,OAAWe,OAAO9G,EAAMlF,cAMlF,QAASwM,GAAWX,EAASC,GAG5B,GAAIW,GAAmBX,EAAUI,sBAE7BQ,EAAgBV,OAAOxN,EAAEqN,GAAS1C,KAAK,eACvCwD,EAAeX,OAAOxN,EAAEqN,GAAS1C,KAAK,gBAEvCsD,GAAoBC,GAAiBZ,EAAUxC,aAAgBqD,IAEjEpD,EAAKqD,cAAcpO,EAAEqN,GAAUC,EAAUxC,YAAamD,EAAkB,WACvElD,EAAKsD,wBAKR,QAAST,GAA4BpD,EAAW7F,EAAKsG,GAEpD,GAAIqD,GAAcvD,EAAKC,IAEnBvK,GAAE0C,YAAYwB,KAAM6F,EAAU7F,IAAI2J,GAAe3J,GACjDlE,EAAE0C,YAAY8H,KAAMT,EAAUS,IAAIqD,GAAerD,GAGtD,QAASrF,GAAqBnE,GAE1BA,EAEF8M,EAAiBxO,QAAQ,GAAGM,SAAS,QAAQM,OAAO,KAIhD4N,EAAiBxO,QAAQ,KAAKG,SAIpC,QAAS8J,GAAkBvI,EAAMwH,GAE7BxI,EAAE0C,YAAY8F,KAEhBA,GAAU,EAGX,IAAIC,GAAgB,EAAY,IAAM,CAEnCzH,IAEFzB,EAAE,eAAeW,OAAOuI,GACxBlJ,EAAE,iBAAiBW,OAAOuI,KAI1BlJ,EAAE,eAAeD,QAAQmJ,GACzBlJ,EAAE,iBAAiBD,QAAQmJ,IAI7B,QAASU,GAAsByD,GAE9BrN,EAAEqN,GAASmB,MAAM,WAEhBC,EAAoBxO,MAAM,IACxB,WAEFwO,EAAoBxO,MAAM,KAI5B,QAASwO,GAAoBpB,EAAS5L,GAElCA,EAEFzB,EAAEqN,GAASR,KAAK,sBAAsBlM,OAAO,KAI7CX,EAAEqN,GAASR,KAAK,sBAAsB9M,QAAQ,KAIhD,QAAS2E,GAAyB8F,GAEjC,GAAIQ,GAAOD,EAAKC,IAEhB,IAAGvK,EAAEiO,SAASlE,EAAU7F,MAAQlE,EAAEiO,SAASlE,EAAUS,KACrD,CACC,GAAI0D,KACJA,GAAI3D,GAAQR,EAAU7F,IACtB6F,EAAU7F,IAAMgK,EAGhBA,KACAA,EAAI3D,GAAQR,EAAUS,IACtBT,EAAUS,IAAM0D,EAGjB,GAAIC,GAAiB,EACjBC,EAAa,GAEjB,KAAI,GAAIC,KAAetE,GAAUS,IACjC,CACC,GAAG6D,GAAe9D,EAEjB,OAAQrG,IAAK6F,EAAU7F,IAAImK,GAAc7D,IAAKT,EAAUS,IAAI6D,GAExD,IAAGtE,EAAUS,IAAI6D,GAAe9D,EAEpC4D,EAAiB5D,MAGlB,CACC,GAAI+D,GAAQ/D,EAAO8D,CAERD,GAARE,IAEFH,EAAiBE,EACjBD,EAAaE,IAKhB,MAAGH,KAAkBpE,GAAUS,KAAO2D,IAAkBpE,GAAU7F,KAEzDA,IAAK6F,EAAU7F,IAAIiK,GAAiB3D,IAAKT,EAAUS,IAAI2D,KAGxDjK,IAAI,EAAEsG,IAAI2D,GA1WnB,GAQI7D,GARAmC,EAAc,GACdD,EAAa,IACbV,EAAc,EACdD,EAAeY,EAAcD,EAAaC,EAE1C9B,EAAcmB,EAEdgC,EAAmBvO,EAAE,oGAwWzB,OAvLAoB,IAAG4N,gBAAgBjE,MAClBiC,KAAM,SAASK,GAGdtC,EAAO/K,EAAEqN,GAAS4B,UACjBC,gBAAyBhC,EAAaA,GACtCiC,wBAAyBlC,EAAY,IACrCmC,QACCC,SAAU,EACVC,KAAO,OAEN5F,KAAK,YAER1E,GAAc,GAEd+F,EAAKwE,aAyKN3J,qBAAuB,SAASnE,GAE/BmE,EAAqBnE,IAEtBuI,kBAAoB,SAASvI,EAAMwH,GAElCe,EAAkBvI,EAAMwH,IAEzBW,sBAAwB,SAASyD,GAEhCzD,EAAsByD,IAEvB3I,yBAA2B,SAAS8F,GAEnC,MAAO9F,GAAyB8F,IAEjCxF,cAAgB,SAASmF,GAExBnF,EAAcmF,IAEfJ,YAAc,WAEbgB,EAAKwE,WAEN1F,WAAa,WAEZkB,EAAKyE,UAENjH,QAAU,SAAS8E,EAASC,EAAWnM,GAEtCoH,EAAQ8E,EAASC,EAAWnM,IAE7B6M,WAAa,SAASX,EAASC,GAE9BU,EAAWX,EAASC,IAErBmC,WAAa,SAASpC,GAErBtC,EAAK2E,cAAcrC,IAEpB/H,eAAiB,WAEhByF,EAAK4E,sBAENnH,kBAAoB,WAEnB+C,GAAc,IAEf9C,mBAAqB,WAEpB8C,GAAc,IAEf7C,kBAAoB,WAEnBsD,GAAmB,IAEpBrD,mBAAqB,WAEpBqD,GAAmB,IAEpBjI,eAAiB,WAEhB,MAAOA,MAERK,eAAiB,SAAS+I,GAEzB/I,EAAe+I,KAqElB,QAAStI,WAAU+K,EAAmB9O,GACrC,GAAIE,GAAOf,IAEXA,MAAKR,MAAQ2B,GAAGC,aAChBpB,KAAKkM,MAAQ/K,GAAGC,WAAW,GAC3BpB,KAAK0E,OACL1E,KAAKgL,OAELhL,KAAK6K,UAAY1J,GAAGC,WAAW,GAC/BpB,KAAK6K,UAAUvJ,UAAU,WAExBP,EAAKkK,sBAGNjL,KAAKuC,QAAUpB,GAAGS,kBAElB5B,KAAK4P,UAAY,SAAUpN,GAC1BxC,KAAKuC,QAAQa,KAAKZ,IAGnBxC,KAAK6P,gBAAkB,SAAUrN,GAChC,MAAQzB,GAAKwB,QAAQmB,QAAQlB,IAAW,GAGzCxC,KAAK8P,kBAAoB,SAAUtN,GAClC,GAAIuN,GAAIhP,EAAKwB,QAAQmB,QAAQlB,EAE7B,OAAQuN,GAAIhP,EAAKwB,UAAUsC,OAAS,GAGrC7E,KAAKgQ,aAAe,SAAUxN,GAC7B,GAAIzB,EAAK8O,gBAAgBrN,GAAS,CACjC,GAAIuN,GAAIhP,EAAKwB,QAAQmB,QAAQlB,GACzByN,EAAQlP,EAAKwB,SACjBxB,GAAKwB,QAAQ2N,OAAOH,EAAI,EAAG,EAAGE,EAAMF,GAAIE,EAAMF,EAAI,MAIpD/P,KAAKmQ,eAAiB,SAAU3N,GAC/B,GAAIzB,EAAK+O,kBAAkBtN,GAAS,CACnC,GAAIuN,GAAIhP,EAAKwB,QAAQmB,QAAQlB,GACzByN,EAAQlP,EAAKwB,SACjBxB,GAAKwB,QAAQ2N,OAAOH,EAAG,EAAGE,EAAMF,EAAI,GAAIE,EAAMF,MAIhD/P,KAAKiL,kBAAoB,WAIxBmF,WAAW,WACV5P,EAAE6B,KAAKtB,EAAKwB,UAAW,SAAUC,GAChCA,EAAOyI,uBAEN,MAGJjL,KAAKyN,oBAAsB,WAC1B,GAAI4C,GAAa7P,EAAE8P,OAAOvP,EAAKwB,UAAW,SAAUgO,EAAM/N,GACzD,MAAO+N,GAAO/N,EAAOgL,UACnB,EAEH6C,IAAc,EACdA,GAAc,EAEdA,GAAc,EAEd,IAAIG,GAAO7F,KAAK8F,MAAMJ,EAAa,IAAM,GAEzC,OAAO1F,MAAKwC,IAAI,EAAGqD,IAGpBxQ,KAAK2D,UAAY,WAChB,GAAIpB,KAMJ,OAJA/B,GAAE6B,KAAKtB,EAAKwB,UAAW,SAAUC,GAChCD,EAAQa,KAAKZ,EAAOmB,gBAIpBnE,MAAOuB,EAAKvB,QACZ0M,MAAOnL,EAAKmL,QACZxH,IAAK3D,EAAK2D,IACVsG,IAAKjK,EAAKiK,IACVH,UAAW9J,EAAK8J,YAChBtI,QAASA,IAIXvC,KAAK+D,YAAc,SAAUC,GAC5BjD,EAAKvB,MAAMwE,EAAOxE,OAClBuB,EAAKmL,MAAMlI,EAAOkI,OAElBnL,EAAK2D,IAAMV,EAAOU,IAClB3D,EAAKiK,IAAMhH,EAAOgH,IAClBjK,EAAK8J,UAAU7G,EAAO6G,WAAa,GAEnCrK,EAAE6B,KAAK2B,EAAOzB,QAAS,SAAUmO,GAChC,GAAIlO,GAAS,GAAImO,aAAYhB,EAAmB9O,EAChD2B,GAAOuB,YAAY2M,GACnB3P,EAAKwB,QAAQa,KAAKZ,MAIpBxC,KAAKsF,QAAU,WACd9E,EAAE6B,KAAKtB,EAAKwB,UAAW,SAAUC,GAChCA,EAAO8C,aA6tBV,QAASqL,aAAYhB,EAAmB9O,GACvC,QAAS+P,KACHpQ,EAAE0C,YAAYnC,EAAK8P,kBACnBrQ,EAAEC,WAAWM,EAAK8P,eAAeC,YACpC/P,EAAK8P,eAAeC,YAGrB/P,EAAK8P,eAAiBrE,QAIxB,GAAIzL,GAAOf,IAEXA,MAAK+Q,kCACL/Q,KAAKgR,4BAELhR,KAAKR,MAAQ2B,GAAGC,aAChBpB,KAAKiR,SAAW9P,GAAGC,YAAW,GAE9BpB,KAAKuG,KAAOpF,GAAGC,aACfpB,KAAKuG,KAAKjF,UAAU,SAAUC,GAM5B,QAAS2C,KACRgN,EAAWC,YAAYpQ,EAAKqQ,WAAY,SAAUP,GAEjD9P,EAAKkQ,SAAUC,EAAWG,aAAc,GACxCtQ,EAAK8P,eAAiBA,EACtB9P,EAAKuQ,cAAa,GAClBvQ,EAAKwQ,cAAcC,oBATtB,GAFAZ,IAEKrP,IAAYV,IAAkBL,EAAEC,WAAWI,EAAcU,GAAU4P,aAAc,CACrF,GAAID,GAAarQ,EAAcU,EAc3B2P,GAAWO,iBACdtM,KAAKC,GAAG8L,EAAWO,iBAAiBC,MAAM,GAAIxN,GAG9CA,OAKHlE,KAAKoR,SAAWjQ,GAAGC,eACnBpB,KAAKoR,SAAS9P,UAAU,SAAUC,IAC5Bf,EAAE0C,YAAYnC,EAAK8P,iBAAmBrQ,EAAEC,WAAWM,EAAK8P,eAAec,oBAC3E5Q,EAAK8P,eAAec,kBAAkBpQ,GAGvCR,EAAK6Q,2BACL7Q,EAAKwQ,cAAcC,oBAGpBxR,KAAKgC,wBAA0B,SAAUG,GACxC,GAAI0P,GAAsB9Q,EAAKgQ,+BAA+B5O,EAE1D3B,GAAE0E,QAAQ2M,IACbrR,EAAE6B,KAAKwP,EAAqB,SAAUC,GACrC/Q,EAAKgR,yBAAyBD,MAKjC9R,KAAKgS,kBAAoB,SAAUC,GAClC,MAAOA,GAAYC,KAAK1F,OAAWmD,EAAkB5N,iBAGtD/B,KAAKiL,kBAAoB,YACnBzK,EAAE0C,YAAYnC,EAAK8P,iBAAmBrQ,EAAEC,WAAWM,EAAK8P,eAAesB,gBAC3EpR,EAAK8P,eAAesB,iBAItBnS,KAAK+R,yBAA2B,SAAUD,GACzC,GAAItR,EAAEC,WAAWM,EAAKiQ,yBAAyBc,IAAe,CAC7D,GAAIM,GAAc5F,MAElB,KACC4F,EAAcrR,EAAKiR,kBAAkBjR,EAAKiQ,yBAAyBc,IAEpE,MAAOO,GACN,GAAIC,GAAWvR,EAAKqQ,WAAWU,EAG3BO,aAAaE,iBAAkB,QAAUC,KAAKF,KACjDF,EAAcE,GAIhB,IAAK9R,EAAE0C,YAAYnC,EAAK8P,iBAAmBrQ,EAAEC,WAAWM,EAAK8P,eAAe4B,4BAA8BjS,EAAE0C,YAAYkP,GACvH,IACCrR,EAAK8P,eAAe4B,yBAAyBX,EAAaM,GAE3D,MAAOC,GACNK,QAAQC,IAAIN,EAAEO,eAMlB5S,KAAK4R,yBAA2B,WAI/B,GAHA7Q,EAAKgQ,kCACLhQ,EAAKiQ,6BAEDxQ,EAAE0C,YAAYnC,EAAKwF,QAAvB,CAKA,GAAIsM,GAAehS,EAAcE,EAAKwF,QAAQ6K,SAC1C0B,EAAkB,GAAIC,QAAO,sDAAuD,KACpFC,EAAkBjS,EAAKqQ,UAE3B5Q,GAAE6B,KAAKwQ,EAAc,SAAUI,GAC9B,GAAuB,cAAnBA,EAAW1M,KAAsB,CACpC,GAAI2M,GAASF,EAAgBC,EAAW7Q,KAExC,KAAK5B,EAAE0C,YAAYgQ,GAAS,EAEtBA,EAAOC,MAAM,WAAatO,QAAU,GAAiC,IAA5BqO,EAAOxP,QAAQ,YAC5DwP,EAAS,UAAYA,EAGtB,IAAIE,EAEJ,KACCA,EAAgB,GAAIC,UAAS,cAAeH,GAE7C,MAAOb,GACN,GAAIiB,GAAcN,EAAgBC,EAAW7Q,MAAMmR,QAAQ,KAAM,OAAOA,QAAQ,UAAW,QAG3FH,GAAgB,GAAIC,UAAS,cAAe,WAAcC,EAAc,MAGzEvS,EAAKiQ,yBAAyBiC,EAAW7Q,MAAQgR,EACjDrS,EAAKgR,yBAAyBkB,EAAW7Q,KAKzC,KAFA,GAAIoR,GAEGA,EAAUV,EAAgBW,KAAKP,IAAS,CAC9C,GAAIQ,GAAUF,EAAQ,IAAMA,EAAQ,GAChC3B,EAAsB9Q,EAAKgQ,+BAA+B2C,EAE1DlT,GAAE0C,YAAY2O,KACjBA,KACA9Q,EAAKgQ,+BAA+B2C,GAAU7B,GAGO,IAAnDrR,EAAEkD,QAAQmO,EAAqBoB,EAAW7Q,OAE5CyP,EAAoBzO,KAAK6P,EAAW7Q,aAQ1CpC,KAAKuR,cAAgBpQ,GAAGC,aACxBpB,KAAKwN,OAASrM,GAAGwB,UAChBC,KAAM,WAGL,MAFA7B,GAAKwQ,iBAEA/Q,EAAE0C,YAAYnC,EAAK8P,iBAAmBrQ,EAAEC,WAAWM,EAAK8P,eAAe8C,WACpE5S,EAAK8P,eAAe8C,YAGrB,KAIT3T,KAAKsR,aAAenQ,GAAGC,YAAW,GAClCpB,KAAK4T,OAAS,SAAUxG,GACvBrM,EAAKuQ,cAAa,IACb9Q,EAAE0C,YAAYnC,EAAK8P,iBAAmBrQ,EAAEC,WAAWM,EAAK8P,eAAe+C,UAC3E7S,EAAK8P,eAAe+C,OAAOxG,GAC3BrM,EAAK6Q,6BAIP5R,KAAKsF,QAAU,aAIftF,KAAK2D,UAAY,WAChB,OACCnE,MAAOuB,EAAKvB,QACZ+G,KAAMxF,EAAKwF,OACX6K,SAAUrQ,EAAKqQ,aAIjBpR,KAAK+D,YAAc,SAAUC,GAC5BjD,EAAKvB,MAAMwE,EAAOxE,OAClBuB,EAAKqQ,SAASpN,EAAOoN,UACrBrQ,EAAKwF,KAAKvC,EAAOuC,OAzpEnBlC,gBAAkB,SAASsL,EAAmB/O,GAG7C,QAASiT,KAEJrT,EAAE0C,YAAYnC,EAAK+S,sBAEnBtT,EAAEC,WAAWM,EAAK+S,mBAAmBhD,YAEvC/P,EAAK+S,mBAAmBhD,YAGzB/P,EAAK+S,mBAAqBtH,QAX5B,GAAIzL,GAAOf,IAeXA,MAAKoC,KAAOjB,GAAGC,aACfpB,KAAK+T,WAAa5S,GAAGC,aACrBpB,KAAKoR,SAAWjQ,GAAGC,eACnBpB,KAAKoR,SAAS9P,UAAU,SAASC,IAE5Bf,EAAE0C,YAAYnC,EAAK+S,qBAAuBtT,EAAEC,WAAWM,EAAK+S,mBAAmBnC,oBAElF5Q,EAAK+S,mBAAmBnC,kBAAkBpQ,KAI5CvB,KAAKgU,eAAiB,SAAS9R,GAE9ByN,EAAkB3N,wBAAwBjB,EAAMmB,GAEhDnB,EAAKgT,WAAW7R,EAEhB,IAAI+R,GAAM,GAAIC,KACdnT,GAAKoT,aAAaF,EAAIG,uBAGvBpU,KAAKuG,KAAOpF,GAAGC,aACfpB,KAAKuG,KAAKjF,UAAU,SAASC,GAQ3B,QAAS2C,KAERmQ,EAAelD,YAAYpQ,EAAKqQ,WAAY,SAAS0C,GAGpD/S,EAAK+S,mBAAqBA,EAC1BA,EAAmBQ,aAEjBvT,EAAKiT,gBAZV,GAFAH,IAEItS,IAAYX,IAAsBJ,EAAEC,WAAWG,EAAkBW,GAAU4P,aAC/E,CACC,GAAIkD,GAAiBzT,EAAkBW,EAcpC8S,GAAe5C,iBAEjBtM,KAAKC,GAAGiP,EAAe5C,iBAAiBC,MAAM,GAAIxN,GAIlDA,OAKHlE,KAAKmU,aAAehT,GAAGC,WAAW,SAClCpB,KAAKuU,WAAapT,GAAGC,aAErBpB,KAAK2D,UAAY,WAEhB,OACCvB,KAAUrB,EAAKqB,OACfmE,KAAUxF,EAAKwF,OACf6K,SAAUrQ,EAAKqQ,aAIjBpR,KAAK+D,YAAc,SAASC,GAE3BjD,EAAKqQ,SAASpN,EAAOoN,UACrBrQ,EAAKqB,KAAK4B,EAAO5B,MACjBrB,EAAKwF,KAAKvC,EAAOuC,OAGlBvG,KAAKwU,sBAAwB,SAASC,GAErC,GAAIrB,GAAgB,GAAIC,UAAS,OAAQ,UAAYoB,EAAW,IAChE,OAAOrB,GAAclB,KAAK1F,OAAWzL,EAAKgT,eAG3C/T,KAAKsU,UAAY,YAEZ9T,EAAE0C,YAAYnC,EAAK+S,qBAAuBtT,EAAEC,WAAWM,EAAK+S,mBAAmBQ,YAElFvT,EAAK+S,mBAAmBQ,aAI1BtU,KAAKsF,QAAU,WAEduO,MAIFa,iBAAmB,SAAS/E,GAE3B,QAASgF,KAuBR,QAASC,GAAgBC,GAExB,GAAIC,GAAW/U,EAAE,aACbgV,EAAkBhV,EAAE,mCACpBiV,EAAcjV,EAAE,mEAChBkV,EAAkBlV,EAAE,kDAAkDO,MAAM,WAC/E4U,EAAsB1U,EAAE2U,QAAQD,EAAqBF,GACrDF,EAAS7U,UAGViV,GAAoB9R,KAAK4R,GAEtBH,GAEFG,EAAYI,IAAIP,GAGjBE,EAAgB5U,OAAO8U,GACvBI,EACElV,OAAO2U,EACP3U,OAAOJ,EAAE,aAAaI,OAAO6U,IAC5B7U,OAAOJ,EAAE,oCAAoCI,OAAO4U,KA1CxD,GAAIG,MACAI,EAAYvV,EAAE,eACdwV,EAAYxV,EAAE,sDACdyV,EAAQzV,EAAE,0DAEdyV,GAAMrV,OAAOJ,EAAE,+DAEf,IAAIsV,GAAYtV,EAAE,kBAElByV,GAAMrV,OAAOkV,GAEbC,EAAUnV,OAAOJ,EAAE,8FACjBI,OAAOqV,GACPrV,OAAOoV,GACEpV,OAAO,8NA+BlBK,EAAE6B,KAAKsN,EAAkBhO,UAAW,SAAS8B,GAE5CmR,EAAgBnR,KAIjB8R,EAAUjV,MAAM,WAEfsU,MAGD,GAAItV,WAAUgW,EAAW,oBAAqB,KAAM,KAAM,WAGzD9U,EAAE6B,KAAKsN,EAAkBhO,UAAW,SAAS8B,GAE5C1D,EAAE,gBAAkB0D,EAAe,MAAMxD,WAI1C0P,EAAkBhO,QAAQ4D,YAE1B/E,EAAE6B,KAAK6S,EAAqB,SAASF,GAEpC,GAAIH,GAAYG,EAAYI,KAEzBP,IAAaA,EAAUhQ,OAAS,IAElC8K,EAAkBnM,gBAAgBqR,GAGlC1P,KAAKC,GAAGyP,EAAY,IAAMX,KAAKD,YAQnC,OACCU,qBAAuB,WAEtBA,OAk4BHc,SAAW,WAGV,QAASC,GAAaC,GACrBC,EAAYD,EAGb,QAASE,GAAgBC,EAAOpQ,GAE/B,GAAIqQ,GAAc,uJAGbD,KACJA,EAAQC,EAGT,IAAIC,GAAajW,EAAE,mCACfkW,EAAoBlW,EAAE,2CACtBmW,EAAmBnW,EAAE,0CACrBoW,EAAmBpW,EAAE,6hBAEzBiW,GAAW7V,QAAQgW,EAAkBF,EAAmBC,IAExDnW,EAAE,QAAQI,OAAO6V,EAEjB,IAAII,GAAmBC,WAAWJ,EAAkBK,IAAI,IAEtDR,MAAOA,EACPS,KAAM,aACNC,MAAO,WACPC,WAAY,EACZC,aAAa,EACbC,eAAe,EACfC,mBAAmB,IAIjBC,EAAc9W,EAAE,6DAA6DO,MAAM,WACtF,GAAIoF,EAAU,CACb,GAAInE,GAAW6U,EAAiBU,UAE5BvV,KAAawU,IAChBxU,EAAW,IAGZmE,EAASnE,GACTyU,EAAW/V,WAIbiW,GAAiB/V,OAAO0W,GAjDzB,GAAIjB,GAAY,EAqDhB,QACCC,gBAAiB,SAAUC,EAAOpQ,GACjCmQ,EAAgBC,EAAOpQ,IAExBgQ,aAAc,SAAUE,GACvBF,EAAaE,MAoHhBmB,aAAe,SAASC,EAAUC,GAEjC,QAASC,GAAwBpF,EAAaqF,GAE7C,GAAIC,GAAerX,EAAE,wCAAwCsX,KAAKF,EAClEpX,GAAE,4BAA8B+R,GAAa3R,OAAOiX,GAGrD,QAASE,KAELvX,EAAE,8BAA8B8E,OAElC9E,EAAE,8BAA8BwX,UAAUtX,SAI1CF,EAAE,6BAA6BwX,UAAUtX,SAI3C,QAASuX,GAAaC,GAErB,OAAQC,MAAMC,WAAWF,KAAOG,SAASH,GAG1C,QAASI,GAAmBrY,EAAOsY,EAAaC,EAAiBC,EAAuBC,GAOvF,QAASC,GAAiB9V,EAAMa,GAE/B,GAAIkV,GAAKpY,EAAE,wBAA0BqC,EAAO,6BAA6BhC,SAASgY,EAGlF,OADAD,GAAGhY,OAAO,wDAA0D8C,EAAc,kBAC3ElD,EAAE,oCAAsCqC,EAAO,+BAA+BhC,SAAS+X,GAS/F,QAASE,GAA6BxF,GAErCrS,EAAE6B,KAAKwQ,EAAc,SAASI,GAgD3B,QAASqF,KAELC,EAAYnH,SAAS6B,EAAW7Q,MAAMyC,OAAS,EAEjD2T,EAAahX,OAIbgX,EAAa/W,OAIf,QAASgX,GAAoBC,GAE5B,GAAIC,GAAgB5Y,EAAE,aAAaK,SAASwY,GAExCC,IAEArY,GAAE0E,QAAQqT,EAAYnH,SAAS6B,EAAW7Q,SAE7CmW,EAAYnH,SAAS6B,EAAW7Q,UAGjCmW,EAAYnH,SAAS6B,EAAW7Q,MAAMgB,KAAKyV,GAE3CrY,EAAE6B,KAAK4Q,EAAW7B,SAAU,SAAS0H,GAEpC,GAAIC,GAAgBhZ,EAAE,aAAaK,SAASuY,GACxCK,EAAwB,EAExBxY,GAAE0C,YAAYwV,EAAgBI,EAAc1W,SAE/C4W,EAAwBN,EAAgBI,EAAc1W,OAGvDyW,EAAWC,EAAc1W,MAAQ4W,EAEjCjZ,EAAE,+CAA+CK,SAAS2Y,GAAe3D,IAAI4D,GAAuBC,OAAO,WAE1GJ,EAAWC,EAAc1W,MAAQrC,EAAEC,MAAMoV,UAI3CuD,EAAcxY,OAAOJ,EAAE,yCAAyCI,OAAOJ,EAAE,mCAAmCI,OAAOJ,EAAE,aAAaI,OAAOJ,EAAE,yCAAyCO,MAAM,WAEpL,GAAI4Y,GAAkBX,EAAYnH,SAAS6B,EAAW7Q,MAAMsB,QAAQmV,EAE9C,KAAnBK,IAEFX,EAAYnH,SAAS6B,EAAW7Q,MAAM8N,OAAOgJ,EAAiB,GAC9DP,EAAc1Y,SACdqY,WAIPa,EAAYC,UAAUD,EAAY,GAAGE,cAErCf,KAtGC9X,EAAE0C,YAAY+P,EAAWqG,gBAAkB9Y,EAAE0C,YAAY8U,EAAsB/E,EAAW7Q,SAE7F4V,EAAsB/E,EAAW7Q,MAAQ6Q,EAAWqG,cAGrD,IAAIrW,GAAcgQ,EAAW7Q,IAEzB5B,GAAE0C,YAAY+P,EAAW9P,gBAE5BF,EAAcgQ,EAAW9P,aAG1B,IAAIoW,GAAYrB,EAAiBjF,EAAW7Q,KAAMa,EAElD,QAAQgQ,EAAW1M,MAElB,IAAK,QAEJ,GAAI4S,GAAcpZ,EAAE,iDAAiDK,SAASmZ,GAE1EC,EAAWzZ,EAAE,2DAA2DK,SAAS+Y,GACjFX,EAAezY,EAAE,mBAAmB0B,OAAOrB,SAASoZ,GACpDC,EAAkB1Z,EAAE,aAAaK,SAASoY,GAC1CI,EAAe7Y,EAAE,mBAAmBK,SAASoZ,GAE7CE,IAGJlZ,GAAE6B,KAAK4Q,EAAW7B,SAAU,SAAS0H,GAEpC,GAAIa,GAAwBb,EAAc1W,IAEtC5B,GAAE0C,YAAY4V,EAAc3V,gBAE/BwW,EAAwBb,EAAc3V,cAGvCpD,EAAE,OAAS4Z,EAAwB,SAASvZ,SAASqZ,KAGnDxG,EAAW7Q,OAAQ4V,KAErB0B,EAA0B1B,EAAsB/E,EAAW7Q,OA+D5DrC,EAAE,sDAAsDK,SAASmZ,GAAWjZ,MAAM,WAEjF,GAAIsZ,KAEJpZ,GAAE6B,KAAK4Q,EAAW7B,SAAU,SAAS0H,GAEpCc,EAAmBd,EAAc1W,MAAQ,KAG1CqW,EAAoBmB,KAIrBpZ,EAAE6B,KAAKqX,EAAyB,SAASG,GAExCpB,EAAoBoB,IAGrB,MAED,KAAK,UAEJtB,EAAYnH,SAAS6B,EAAW7Q,MAAQ4V,EAAsB/E,EAAW7Q,KAEvD,IAAI0X,GAAc/Z,EAAE,kEAAoEkT,EAAW7Q,KAAO,2JAA2JhC,SAASmZ,GAE5RnT,EAAQrG,EAAE,8EAAgFkT,EAAW7Q,KAAO,YAAY2X,UAAUD,GAAab,OAAO,WAEzJV,EAAYnH,SAAS6B,EAAW7Q,MAAQpC,KAAKga,SAG3C/G,GAAW7Q,OAAQ4V,IAErB5R,EAAM6T,KAAK,UAAWjC,EAAsB/E,EAAW7Q,MAGxD,MAED,KAAK,SAEJ,GAAI8X,GAAelC,EAAsB/E,EAAW7Q,MAEhDgE,EAAQrG,EAAE,qBAAqBK,SAASL,EAAE,qCAAqCK,SAASmZ,IAAYN,OAAO,WAE9GV,EAAYnH,SAAS6B,EAAW7Q,MAAQrC,EAAEC,MAAMoV,OAGjD5U,GAAE6B,KAAK4Q,EAAWkH,QAAS,SAASC,GAGnC,GAAIC,GACAC,CAED9Z,GAAE+Z,SAASH,IAEbC,EAAaD,EAAOhY,KACpBkY,EAAcF,EAAOtE,OAIrBuE,EAAaD,EAGX5Z,EAAE0C,YAAYoX,KAEhBA,EAAcD,GAGZ7Z,EAAE0C,YAAYgX,KAEhBA,EAAeI,GAGhBva,EAAE,qBAAqBya,KAAKH,GAAY3P,KAAK,QAAS4P,GAAala,SAASgG,KAG7EmS,EAAYnH,SAAS6B,EAAW7Q,MAAQ8X,EAErCjH,EAAW7Q,OAAQ4V,IAErB5R,EAAMgP,IAAI4C,EAAsB/E,EAAW7Q,MAG5C,MAED,SAKC,GAHAmW,EAAYnH,SAAS6B,EAAW7Q,MAAQ4V,EAAsB/E,EAAW7Q,MAGnD,cAAnB6Q,EAAW1M,KACd,CACC,GAAIH,GAAQrG,EAAE,yBAAyBK,SAASmZ,GAAWN,OAAO,WAEjEV,EAAYnH,SAAS6B,EAAW7Q,MAAQrC,EAAEC,MAAMoV,OAG9CnC,GAAW7Q,OAAQ4V,IAErB5R,EAAMgP,IAAI4C,EAAsB/E,EAAW7Q,OAG5C6U,EAAYwD,kBAAkBrU,EAET,IAAIsU,GAAoB3a,EAAE,2DAEtB4a,EAAiB5a,EAAE,0EAA0E6a,UAAU,SAASvI,GAEhHA,EAAEwI,iBACF9a,EAAEqG,GAAO0U,QACT/a,EAAEqG,GAAO2U,cAAc,iBACvBhb,EAAEqG,GAAOkB,QAAQ,oBAGjB0T,EAAejb,EAAE,gFAAgF6a,UAAU,SAASvI,GAEpHA,EAAEwI,iBAEF7D,EAASnB,gBAAgBzP,EAAMgP,MAAO,SAAShO,GAC3ChB,EAAMgP,IAAIhO,GACVhB,EAAM6S,YAIdlZ,GAAEwZ,GAAWpZ,OAAOua,EAAkBva,QAAQwa,EAAgBK,SAGpF,CACC,GAAI5U,GAAQrG,EAAE,uBAAuBK,SAASmZ,GAAWN,OAAO,WAInCV,EAAYnH,SAAS6B,EAAW7Q,MAFd,UAAnB6Q,EAAW1M,KAE8BgH,OAAOxN,EAAEC,MAAMoV,OAIvCrV,EAAEC,MAAMoV,OAIlDnC,GAAW7Q,OAAQ4V,IAErB5R,EAAMgP,IAAI4C,EAAsB/E,EAAW7Q,QAQ/B5B,EAAE0C,YAAY+P,EAAWgI,SAEzB1B,EAAUpZ,OAAOJ,EAAE,6BAA+BkT,EAAWgI,OAAS,WAGlFza,EAAE0C,YAAY+P,EAAWiI,cAE5B3B,EAAUpZ,OAAOJ,EAAE,oCAAsCkT,EAAWiI,YAAc,aA9RrF,GAaIC,GAbA5C,GACHhS,KAAUwR,EACV3G,aAYGgH,EAAOrY,EAAE,eAETqb,EAA2Brb,EAAE,uCAAuC0B,MACxE2W,GAAKjY,OAAOib,GAmRZ,GAAI9b,WAAU8Y,EAAM5Y,EAAO,OAAQ,SAAU,WAE5CO,EAAE,qBAAqBE,QAGvB,KAAI,GAAIob,GAAQ,EAAGA,EAAQF,EAAa/J,SAASvM,OAAQwW,IACzD,CACC,GAAIpI,GAAakI,EAAa/J,SAASiK,EAEvC,IAAGpI,EAAWqI,WAAa9a,EAAE0C,YAAYqV,EAAYnH,SAAS6B,EAAW7Q,QAAmD,IAAzCmW,EAAYnH,SAAS6B,EAAW7Q,OAGlH,MADe8U,GAAwBjE,EAAW7Q,KAAM,sBACjD,CAEH,IAAsB,UAAnB6Q,EAAW1M,OAAqBiR,EAAae,EAAYnH,SAAS6B,EAAW7Q,OAGpF,MADe8U,GAAwBjE,EAAW7Q,KAAM,sBACjD,EAIN5B,EAAEC,WAAWwX,IAEfA,EAAsBM,IAKxB,IACIgD,GADAC,EAAkBhb,EAAEib,KAAK3D,EAG7B,IAAG0D,EAAgB3W,OAAS,EAC5B,CACC,GAAI6W,GAAUxD,EAAiB,eAAgB,OAC/CqD,GAAaxb,EAAE,qBAAqBK,SAASL,EAAE,qCAAqCK,SAASsb,IAE7FH,EAAWpb,OAAOJ,EAAE,qCAAqC2K,KAAK,QAAS,cAEvElK,EAAE6B,KAAKyV,EAAa,SAAS6D,GAE5BJ,EAAWpb,OAAOJ,EAAE,qBAAqBya,KAAKmB,EAAWxY,cAAcuH,KAAK,QAASiR,EAAW3Y,cAGjGuY,EAAWtC,OAAO,WAEjBV,EAAYhS,KAAOxG,EAAEC,MAAMoV,MAC3BmD,EAAYnH,YAGZkG,IAEA6D,EAAerD,EAAYyD,EAAWnG,OAEnC5U,EAAE0C,YAAYiY,IAEhBpb,EAAE,8BAA8B0B,OAChC1B,EAAE,cAAc0B,SAID1B,EAAE,8BAA8ByB,OAE7B2Z,EAAaD,aAAeC,EAAaD,YAAYrW,OAAS,EAE7DuW,EAAyB/D,KAAK8D,EAAaD,aAAa1Z,OAIxD4Z,EAAyB3Z,OAG5C1B,EAAE,cAAcyB,OAChB6W,EAA6B8C,EAAa/J,iBAIX,IAA1BoK,EAAgB3W,SAEvBsW,EAAerD,EAAY0D,EAAgB,IAC3CjD,EAAYhS,KAAO4U,EAAanY,UAChCuV,EAAYnH,YACZiH,EAA6B8C,EAAa/J,UAGlCmK,KAEI/a,EAAE0C,YAAY6U,IAEbhY,EAAE,8BAA8B0B,OAChC1B,EAAE,cAAc0B,SAIhB1B,EAAE,cAAcyB,OAChB+Z,EAAWnG,IAAI2C,GAAiBzQ,QAAQ,YAMvD,OACCuQ,mBAAqB,SAClBrY,EACAsY,EACA8D,EACA7D,EACAC,EACAC,GAEFJ,EAAmBrY,EAAOsY,EAAa8D,EAAqB7D,EAAiBC,EAAuBC,MAKvG4D,YAAc,SAASlM,GAOtB,QAASmM,GAAmB1O,GAE3B,GAAI2O,IAAkBhc,EAAEqN,GAASgI,MAAMjC,MAAM,YAActO,OAEvDmX,EAAYrR,KAAKC,IAAI,IAAK,IAAMmR,EAAiB,GAErDhc,GAAEqN,GAAS9D,KAAKkE,OAAQwO,EAAY,OAGrC,QAASC,GAA4BC,EAAara,GAEjD,GAGIsa,GAHAhJ,EAAQiJ,EAAmB3I,KAAKyI,GAEhC/B,IAGJ,IAAGhH,EAEF,GAAe,IAAZA,EAAM,GAER3S,EAAE6B,KAAKR,EAAa,SAAS+B,GAE5BuW,EAAQ/W,MAAM0S,MAAOlS,EAAWxB,OAAQia,YAAa,eAGlD,IAAe,IAAZlJ,EAAM,IAAY3S,EAAE0C,YAAYiQ,EAAM,IAE7CgJ,EAAoBhJ,EAAM,GAE1B3S,EAAE6B,KAAKR,EAAa,SAAS+B,GAE5B,GAAI8P,GAAS9P,EAAWxB,MAErBsR,IAAUyI,GAA0D,GAArCzI,EAAOhQ,QAAQyY,IAEhDhC,EAAQ/W,MAAM0S,MAAOpC,EAAQ2I,YAAa,eAK7C,CACC,GAAIzY,GAAapD,EAAEoM,KAAK/K,EAAa,SAAS+B,GAE7C,MAAQA,GAAWxB,SAAW+Q,EAAM,IAGrC,KAAI3S,EAAE0C,YAAYU,GAClB,CACC,GAAI6Q,GAAW,EAEXjU,GAAE0C,YAAYiQ,EAAM,MAEvBsB,EAAWtB,EAAM,GAAKA,EAAM,GAG7B,IAAImJ,GAAgB7H,EAAS8H,MAAM,OACnC9H,GAAW,MAEX,KAAI,GAAI4G,GAAQ,EAAGA,EAAQiB,EAAczX,OAAS,EAAGwW,IAEzB,IAAxBiB,EAAcjB,KAEhBmB,aAAe,KAAQF,EAAcjB,GAAS,KAC9C5G,GAAsB+H,aAIxB,IAAIC,GAAiBjc,EAAEkc,KAAKJ,EAG2B,MAApDG,EAAeE,OAAOF,EAAe5X,OAAS,KAEhD4X,EAAiBA,EAAelJ,QAAQ,SAAU,IAClDkB,EAAWA,EAAW,KAAQgI,EAAiB,KAGhD,IAAIG,GAAYhZ,EAAW4Q,sBAAsBC,EAEjD,IAAGjU,EAAE0E,QAAQ0X,GAEZ,IAAI,GAAIvB,GAAQ,EAAGA,EAAQuB,EAAU/X,OAAQwW,IAC7C,CACC,GAAIwB,GAAa,IAEdrc,GAAE+Z,SAASqC,EAAUvB,IAEvBwB,GAA0B,OAEnBrc,EAAE0E,QAAQ0X,EAAUvB,MAE3BwB,GAA0B,OAG3B1C,EAAQ/W,MAAM0S,MAAOuF,EAAOgB,YAAaQ,QAGnCrc,GAAE+Z,SAASqC,KAElBT,EAAoBM,EAE+B,IAAhDjc,EAAEib,KAAKmB,GAAWlZ,QAAQyY,IAE5B3b,EAAE6B,KAAKua,EAAW,SAAS9G,EAAO1T,GAEjC,GAAGA,GAAQqa,GAAkD,GAAhCra,EAAKsB,QAAQ+Y,GAC1C,CACC,GAAII,GAAa,IAEdrc,GAAE0E,QAAQ4Q,GAEZ+G,EAAa,MAENrc,EAAE+Z,SAASzE,KAElB+G,EAAa,QAGd1C,EAAQ/W,MAAM0S,MAAO1T,EAAMia,YAAaQ,SAQ/CC,EAAuB3C,EACvB4C,EAAiCZ,EAGlC,QAAS1B,GAAkBrN,GAE1B,GAAI4P,GAAW,KACXC,EAAsB,CAE1Bld,GAAEqN,GAAShE,SAAS,0BAA0B8T,KAAK,+BAA+B,SAASzW,GAG1F,GAAGuW,GAA0B,SAAdvW,EAAMF,OAAqC,IAAjBE,EAAM0W,SAAkC,IAAjB1W,EAAM0W,SAAkC,IAAjB1W,EAAM0W,SAG5F,WADA1W,GAAMoU,gBAIP,IAAIqB,GAAcnc,EAAEqN,GAASgI,MAAMgI,UAAU,EAAGrd,EAAEqN,GAASiQ,mBAK3D,IAJAnB,EAAcA,EAAY3I,QAAQ+J,OAAOC,aAAa,KAAM,KAE5DtB,EAA4BC,EAAavM,EAAkB9N,eAExDib,EAAqBjY,OAAS,EACjC,CACKmY,IAEHA,EAAWjd,EAAE,wDAAwDyd,YAAYpQ,GAASlB,MAAMnM,EAAEqN,GAASqQ,aAAe,GAAGnU,IAAI,OAAQvJ,EAAEqN,GAASE,WAAWoQ,MAAMpU,IAAI,MAAOvJ,EAAEqN,GAASE,WAAW9D,IAAMzJ,EAAEqN,GAASjE,cAAgB,IAGxO6T,EAASW,QACTX,EAAS5D,UAAU,EAEnB,IAAIwE,IAAW,CACfX,GAAsB,CAEtB,IAAIY,GAAe,CAEnBrd,GAAE6B,KAAKya,EAAsB,SAAS1C,GAErC,GAAI0D,GAAK/d,EAAE,OAASqa,EAAOtE,MAAQ,SAAS1V,SAAS4c,GAAUe,WAAW,WAEzEhe,EAAEC,MAAMsH,QAAQ,sBACdsT,UAAU,SAASnU,GAEpB1G,EAAEC,MAAMsH,QAAQ,yBAChBb,EAAMoU,mBACJpR,KAAK,wBAAyBoU,GAAcpU,KAAK,wBAAyB2Q,EAAOtE,OAAOoH,KAAK,wBAAwB,WAEvH,GAAI5C,GAAcF,EAAOtE,KAOzB,IALItV,EAAE0C,YAAYkX,EAAOiC,eAExB/B,GAA4BF,EAAOiC,aAGhC7b,EAAE0C,YAAY6Z,GAWjBhd,EAAEqN,GAAS2N,cAAcT,OAV1B,CACC,GAAI0D,GAAmB9B,EAAY+B,YAAYlB,EAExB,KAApBiB,GAEFje,EAAEqN,GAAS8Q,cAAcF,EAAkBA,EAAmBjB,EAA+BlY,OAAQyV,GAQvGva,EAAEqN,GAAS+Q,eAAe,aACxBjB,KAAK,mBAAoB,WAE3Bnd,EAAEC,MAAMoe,SAASxR,KAAK,eAAevD,YAAY,YACjDtJ,EAAEC,MAAMoJ,SAAS,YACjB6T,EAAsBld,EAAEC,MAAMyJ,KAAK,0BAGlCmU,KAEF7d,EAAE+d,GAAI1U,SAAS,YACfwU,GAAW,GAGZC,UAKD9d,GAAEqN,GAASiR,KAAK,qBAAqBpe,SACrC+c,EAAW,KACXC,EAAsB,KAErBnC,MAAM,WAEP/a,EAAEqN,GAAS9D,KAAKgV,UAAY,OAC5BxC,EAAmB1O,KACjBmR,SAAS,WAEXxe,EAAEqN,GAAS9D,KACVkE,OAAU,GACV8Q,UAAY,MAGbve,EAAEqN,GAASiR,KAAK,qBAAqBpe,SACrC+c,EAAW,KACXC,EAAsB,KACpBC,KAAK,UAAW,SAASzW,GAG3B,GAAGuW,EAEF,GAAoB,IAAjBvW,EAAM0W,SAAkC,IAAjB1W,EAAM0W,QAChC,CACC1W,EAAMoU,gBAEN,IAAI2D,GAAcze,EAAEid,GAAUpQ,KAAK,KAEf,KAAjBnG,EAAM0W,QAERF,IAEwB,IAAjBxW,EAAM0W,SAEbF,IAGwB,EAAtBA,EAEFA,EAAsBuB,EAAYC,OAAS,EAEpCxB,GAAuBuB,EAAYC,SAE1CxB,EAAsB,EAGvB,IAAIyB,GAAgB3e,EAAEye,GAAaG,GAAG1B,EAEtCyB,GAAcpX,QAAQ,oBACtBvH,EAAEid,GAAU5D,UAAUrZ,EAAE2e,GAAepR,WAAW9D,SAE1B,KAAjB/C,EAAM0W,UAEb1W,EAAMoU,iBAEoB,IAAvBoC,GAEFld,EAAEid,GAAUpQ,KAAK,MAAM+R,GAAG1B,GAAqB3V,QAAQ,4BArR7D,GAGIyV,GAHAX,EAAqB,GAAIrJ,QAAO,4CAEhC+J,IA2RJ,QACCrC,kBAAoB,SAASrN,GAE5BqN,EAAkBrN,MA4NrB,SAAUrN,GAET,QAAS6e,KAER,GAAIC,GAAIxY,SAASC,cAAc,KAC3BwY,GAAO,CAEX,IAAGD,EAAE/X,iBAEJ+X,EAAE/X,iBAAiB,kBAAmB,WAErCgY,GAAO,IACL,OAEC,CAAA,IAAGD,EAAEE,YAST,OAAO,CAPPF,GAAEE,YAAY,oBAAqB,WAElCD,GAAO,IAUT,MAFAD,GAAEG,aAAa,KAAM,UAEdF,EAGR,QAASG,GAAgBC,EAAS7M,GAEjC,GAAG6M,EACH,CACC,GAAIC,GAAanf,KAAKyJ,KAAK,iBAE3B,IAAG4I,EAAEvE,cAAcpK,QAAQ,UAAY,EACvC,CACKyb,EAAkB,QAErBA,EAAkB,SAEnB,IAAI1D,GAAOpJ,EAAEvE,cAAcyO,MAAM,IACjClK,GAAEvE,cAAgB2N,EAAK,GACvBpJ,EAAE+M,SAAWD,EAAkB,MAAE1D,EAAK,IACtCpJ,EAAE9Q,SAAWka,EAAK,GAAK,IAAMzb,KAAKia,KAAK,SAASla,EAAEsf,UAAU5D,EAAK,KACjE0D,EAAkB,MAAE1D,EAAK,IAAMpJ,EAAE9Q,aAIjC8Q,GAAE+M,SAAWD,EAAW9M,EAAEvE,eAC1BuE,EAAE9Q,SAAWvB,KAAK0K,KAAK2H,EAAEvE,eACzBqR,EAAW9M,EAAEvE,eAAiBuE,EAAE9Q,QAGjCvB,MAAKyJ,KAAK,iBAAkB0V,IAK9B,GAAIG,GAAmBvZ,OAAOuZ,kBAAoBvZ,OAAOwZ,sBAEzDxf,GAAEyf,GAAG5R,WAAa,SAAS6R,GAG1B,GAAIC,IACH7R,aAAa,EACbnI,SAAa3F,EAAE4f,KA4BhB,IAxBgB,kBAANF,GAETC,EAAIha,SAAW+Z,EAIf1f,EAAE6f,OAAOF,EAAKD,GAGZC,EAAI7R,aAEN9N,EAAEC,MAAMqC,KAAK,SAAS0N,EAAG8P,GAGxB,IAAI,GAAInV,GADJyU,KACUpP,EAAI,EAAG+P,EAAQD,EAAGV,WAAYY,EAAID,EAAMjb,OAAYkb,EAAJhQ,EAAOA,IAEpErF,EAAOoV,EAAME,KAAKjQ,GAClBoP,EAAWzU,EAAKuV,UAAYvV,EAAKoL,KAGlC/V,GAAEC,MAAMyJ,KAAK,iBAAkB0V,KAI9BG,EACH,CAKC,GAAIY,IACHC,SAAmB,EACnBhB,YAAmB,EACnBiB,kBAAmBV,EAAI7R,aAGpBwS,EAAW,GAAIf,GAAiB,SAASgB,GAE5CA,EAAUC,QAAQ,SAASlO,GAE1B,GAAImO,GAAQnO,EAAE1L,MAGX+Y,GAAI7R,cAMNwE,EAAE9Q,SAAWxB,EAAEygB,GAAO9V,KAAK2H,EAAEvE,gBAG9B4R,EAAIha,SAASwM,KAAKsO,EAAOnO,MAI3B,OAAOrS,MAAKqC,KAAK,WAEhBge,EAASI,QAAQzgB,KAAMkgB,KAGpB,MAAGtB,KAIA5e,KAAKwG,GAAG,kBAAmB,SAASC,GAEvCA,EAAMia,gBAERja,EAAQA,EAAMia,eAEfja,EAAMqH,cAAgBrH,EAAMka,SAC5Bla,EAAM2Y,SAAW3Y,EAAMma,UACvBlB,EAAIha,SAASwM,KAAKlS,KAAMyG,KAGlB,oBAAsBJ,UAASwB,KAE/B7H,KAAKwG,GAAG,iBAAkB,SAAS6L,GAEzCA,EAAEvE,cAAgB/H,OAAOU,MAAMoa,aAE/B5B,EAAgB/M,KAAKnS,EAAEC,MAAO0f,EAAI7R,YAAawE,GAC/CqN,EAAIha,SAASwM,KAAKlS,KAAMqS,KAInBrS,OAEN8gB,QAEF,SAASA,GAENA,EAAOC,cACHC,QAAS,WACLhhB,KAAKihB,IAAMH,EAAO9gB,OAEtB6F,KAAM,SAASqb,EAAKzX,IACfzJ,KAAKihB,KAAOjhB,KAAKghB,UAClBhhB,KAAKihB,IAAI3Z,QAAQ4Z,EAAKzX,IAE1B0X,KAAM,SAASD,EAAKE,IACfphB,KAAKihB,KAAOjhB,KAAKghB,UAClBhhB,KAAKihB,IAAII,IAAIH,EAAKE,IAEtB5a,GAAI,SAAS0a,EAAKE,IACbphB,KAAKihB,KAAOjhB,KAAKghB,UAClBhhB,KAAKihB,IAAI/D,KAAKgE,EAAKE,IAEvBE,IAAK,SAASJ,EAAKE,IACdphB,KAAKihB,KAAOjhB,KAAKghB,UAClBhhB,KAAKihB,IAAIpX,OAAOqX,EAAKE,MAI/BN,OAEF,IAAIlb,WAAa,WAmOhB,QAAS2b,GAAmBnf,GAE3BA,EAAOA,EAAKmR,QAAQ,OAAQ,OAAQA,QAAQ,OAAQ,MACpD,IAAIiO,GAAQ,GAAIzO,QAAO,SAAW3Q,EAAO,aAAcqf,EAAUD,EAAM/N,KAAKiO,SAASC,OACrF,OAAkB,OAAXF,EAAkB,GAAKG,mBAAmBH,EAAQ,GAAGlO,QAAQ,MAAO,MArO5E,GAAI3S,MACAC,KAEAC,EAAc,GAAImJ,aAClB0F,EAAoB,GAAIhP,gBAAeC,EAAmBC,EAAeC,GAEzEkW,EAAW,GAAIvB,UACfwB,EAAc,GAAI4E,aAAYlM,GAC9BkS,EAAe,GAAI9K,cAAaC,EAAUC,GAE1C6K,EAAmB,GAAIpN,kBAAiB/E,GAExCoS,GACHC,QACCC,cAAe,yFACfC,MAAe,UACfC,cAAe,KA4OjB,OAxOAhhB,IAAG4N,gBAAgB8S,cAClB9U,KAAM,SAASK,EAASgV,EAAeC,EAAqBhV,GAE3D,GAAI8M,GAAUhZ,GAAGmhB,OAAOF,KAEpBG,KACAnR,EAAW5E,OACXhN,EAAQ,EAEO,eAAhB2a,EAAQ5T,MAEVgc,EAAQ3hB,EACRpB,EAAQ,cAEe,UAAhB2a,EAAQ5T,MAEfgc,EAAQ1hB,EACRrB,EAAQ,UAEe,QAAhB2a,EAAQ5T,OAEf/G,EAAQ,QAGTO,EAAEqN,GAAS9M,MAAM,WAEhB,GAAwB,UAArB6Z,EAAQqI,UACX,CACC,GAAIC,GAAgB1iB,EAAE,2CAA6CP,EAAQ,QAC3E,IAAIF,WAAUmjB,EAAe,iBAAkB,MAAO,KAAM,WAGxC,cAAhBtI,EAAQ5T,KAEVoJ,EAAkBxH,iBAAiBkF,GAEZ,UAAhB8M,EAAQ5T,KAEfoJ,EAAkB/G,aAAayE,GAER,QAAhB8M,EAAQ5T,MAEfoJ,EAAkBhH,WAAW0E,SAMhC,CACC,GAAIqV,GAAelW,MAEA,eAAhB2N,EAAQ5T,KAEc,OAArB4T,EAAQqI,UAEVpR,MAIAsR,EAAerV,EAAU9G,OACzB6K,EAAW/D,EAAU+D,WACrBA,EAAShP,KAAOiL,EAAUjL,QAGJ,UAAhB+X,EAAQ5T,KAES,OAArB4T,EAAQqI,UAEVpR,MAIAsR,EAAerV,EAAU9G,OACzB6K,EAAW/D,EAAU+D,YAGC,QAAhB+I,EAAQ5T,OAEf6K,KAEwB,QAArB+I,EAAQqI,YAEVpR,EAAS5R,MAAQ6N,EAAU7N,QAC3B4R,EAASvG,UAAYwC,EAAUxC,aAGhC0X,GACCnR,UACCA,WAEEhP,KAAc,QACde,aAAc,QACdoD,KAAc,SAGdnE,KAAO,YACPe,aAAe,UACfoD,KAAO,SACP+S,cAAgB,EAChBgC,UAAW,OAOhBuG,EAAahK,mBAAmBrY,EAAO+iB,EAAOG,EAActR,EAAU,SAASmH,GAE9E,GAAwB,OAArB4B,EAAQqI,WAEV,GAAmB,cAAhBrI,EAAQ5T,KACX,CACC,GAAIoc,GAAe,GAAIte,iBAAgBsL,EAAmB/O,EAC1D+O,GAAkBrL,cAAcqe,GAEhCA,EAAavgB,KAAKmW,EAAYnH,SAAShP,YAChCmW,GAAYnH,SAAShP,KAE5BugB,EAAavR,SAASmH,EAAYnH,UAClCuR,EAAapc,KAAKgS,EAAYhS,UAE1B,IAAmB,UAAhB4T,EAAQ5T,KAChB,CACC,GAAIoc,GAAe,GAAIhS,aAAYhB,EAAmB9O,EACtD8hB,GAAavR,SAASmH,EAAYnH,UAClCuR,EAAapc,KAAKgS,EAAYhS,MAE9B8G,EAAU9K,QAAQa,KAAKuf,GAEvB7hB,EAAY6I,sBAAsByD,QAGP,QAArB+M,EAAQqI,YAEI,QAAhBrI,EAAQ5T,MAEV8G,EAAU7N,MAAM+Y,EAAYnH,SAAS5R,OACrC6N,EAAUxC,UAAU0N,EAAYnH,SAASvG,WACzC/J,EAAYiE,eAAc,KAIP,cAAhBoV,EAAQ5T,OAEV8G,EAAUjL,KAAKmW,EAAYnH,SAAShP,YAC7BmW,GAAYnH,SAAShP,MAG7BiL,EAAU9G,KAAKgS,EAAYhS,MAC3B8G,EAAU+D,SAASmH,EAAYnH,mBAStCjQ,GAAGyhB,gBAAgBC,gBAAgBC,wBAAyB,EAC5D3hB,GAAG4N,gBAAgB+T,wBAClBC,OAAQ,SAAS3V,EAASgV,EAAeC,EAAqBhV,EAAW2V,GAExEC,sBAAsB7V,EAASgV,EAAeC,EAAqBhV,EAAW2V,KAIhF7hB,GAAG4N,gBAAgBzM,MAClByK,KAAQ,SAASK,EAASgV,EAAeC,EAAqBhV,EAAW2V,GAErErT,EAAkBzO,aAEpBnB,EAAEqN,GAAS9D,KAAKC,OAAQ,YAGzBzI,EAAYwH,QAAQ8E,EAASC,EAAW2V,EAAeE,MAAMhiB,cAE9D6hB,OAAQ,SAAS3V,EAASgV,EAAeC,EAAqBhV,GAGZ,IAA9CsC,EAAkB7N,MAAM4B,QAAQ2J,IAElCvM,EAAY0O,WAAWpC,GAExBtM,EAAYiN,WAAWX,EAASC,KAIlClM,GAAG4N,gBAAgBvM,QAClBuK,KAAQ,SAASK,GAEbuC,EAAkBzO,aAEpBJ,EAAY6I,sBAAsB5J,EAAEqN,GAASgR,WAG/C2E,OAAQ,SAAS3V,EAASgV,EAAeC,EAAqBhV,GAE1DA,EAAUiE,iBAEZvR,EAAEqN,GAASuQ,QACXtQ,EAAUuG,OAAOxG,MAYpBrN,EAAE,WAOK,QAASojB,KAELriB,EAAYiE,eAAc,GANpCjE,EAAY6E,sBAAqB,EAE3B,IAAIyd,EAOJrjB,GAAEgG,QAAQoJ,OAAO,WACbkU,aAAaD,GACbA,EAAchT,WAAW+S,EAAW,UAO9CG,WAAsB,SAASC,EAAWtf,GAEzC9C,GAAGqiB,cAAc7T,EAGjB,IAAI8T,GAAoBlC,EAAmB,OAEnB,KAArBkC,EAEF1jB,EAAE2jB,MACDC,IAASF,EACTG,QAAS,SAASna,GAEjBkG,EAAkBnK,cAAciE,GAE7BjJ,EAAEC,WAAWwD,IAEfA,QAOH0L,EAAkBtO,WAAWkiB,GAC7B5T,EAAkB7K,WAAWye,GAE7BziB,EAAY6E,sBAAqB,GAC9BnF,EAAEC,WAAWwD,IAEfA,IAGW2B,UAAUC,KAAK,iBAG7Bge,aAAsB,WAErBlU,EAAkBnK,eAAenE,YAAY,KAE9CmE,cAAsB,SAASse,EAAepe,GAE7CiK,EAAkBnK,cAAcse,EAAepe,IAEhD/B,UAAsB,WAErB,MAAOgM,GAAkBhM,aAE1BmB,WAAsB,SAASiE,EAASC,GAEvC2G,EAAkB7K,WAAWiE,EAASC,IAEvC9H,UAAsB,WAErB,MAAOyO,GAAkBzO,aAE1B6iB,qBAAsB,SAAS9e,GAE3BzE,EAAE0C,YAAY+B,EAAO9B,gBAEvB8B,EAAO9B,aAAe8B,EAAOjC,WAIrBiC,EAAOmM,SAAS4S,SACZ5hB,KAAO,OACPe,aAAe,OACfoD,KAAO,OACP+U,UAAW,IAIxB3L,EAAkBnM,gBAAgByB,EAAOgf,QACzCrjB,EAAkBqE,EAAOjC,WAAaiC,EACtC0K,EAAkBlN,iBAAiB+O;EAE9BrC,OAAS,WAELrO,EAAYiE,eAAc,IAEpCmf,iBAAsB,SAASjf,GAE3BzE,EAAE0C,YAAY+B,EAAO9B,gBAEvB8B,EAAO9B,aAAe8B,EAAOjC,WAG9B2M,EAAkBnM,gBAAgByB,EAAOgf,QACzCpjB,EAAcoE,EAAOjC,WAAaiC,EAClC0K,EAAkBtM,aAAamO,mBAGhCkE,aAAsB,SAASE,GAE9BoB,EAAStB,aAAaE,IAEvBuO,SAAsB,SAASC,EAAUC,GAExC,GAAIC,GAAcF,EAAW,IAAMC,EAAQ,IAEvCE,EAAexkB,EAAE,kBAEK,IAAvBwkB,EAAa1f,SAEf0f,EAAexkB,EAAE,kDACjBA,EAAE,QAAQI,OAAOokB,IAGfA,EAAa,GAAGC,WAElBD,EAAa,GAAGC,WAAWC,SAAWH,EAItCC,EAAa/J,KAAK+J,EAAa/J,OAAS8J,IAG1C3e,qBAAsB,SAASnE,GAE9BV,EAAY6E,qBAAqBnE,IAElCkjB,WAAsB,SAASnlB,EAAgBC,EAAOC,EAASC,EAAaC,GAE3E,GAAIL,WAAUC,EAAgBC,EAAOC,EAASC,EAAaC,IAEtDglB,sBAAwB,SAASxiB,GAE7B,GAAIN,GAAc8N,EAAkB9N,cAGhC+B,EAAapD,EAAEoM,KAAK/K,EAAa,SAASI,GAC1C,MAAQA,GAAgBG,SAAWD,GAGvC,OAAGyB,GAEQA,EAAWwN,WAIX,MAGfwT,sBAAwB,SAASziB,EAAgBiP,GAE7C,GAAIvP,GAAc8N,EAAkB9N,cAGhC+B,EAAapD,EAAEoM,KAAK/K,EAAa,SAASI,GAC1C,MAAQA,GAAgBG,SAAWD,GAGvC,KAAIyB,EAGA,WADA8O,SAAQC,IAAI,uBAIhB,IAAIkS,GAAmBrkB,EAAEskB,SAAS1T,EAAUxN,EAAWwN,WACvDxN,GAAWwN,SAASyT,IAE9BE,eAAsB,SAAS3iB,GAE9B,GAAI4iB,GAAe,EAOnB,OALAxkB,GAAE6B,KAAK0f,EAAa3f,GAAO,SAAS0T,EAAO1T,GAE1C4iB,EAAeA,EAAe5iB,EAAO,IAAM0T,EAAQ,MAG7CkP,GAERC,eAAsB,SAAS7iB,GAE9B,MAAO2f,GAAa3f,IAErBuS,qBAAuB,WAEtBmN,EAAiBnN,2BAKpB5U,GAAE6f,OAAOha,UAAWkb,OAAOC,cAW1B,WACA,GAAImE,GAAiB,SAAU9T,EAAU4C,GASxC,QAASmR,GAAcC,GAClBC,GACHC,cAAcD,GAGfA,EAAcE,YAAY,WACzBxkB,EAAKuT,aACH8Q,GAfJ,GAAIrkB,GAAOf,KACPqlB,EAAc,KACdrS,EAAkB5B,EAClBoU,EAAa,EAGbC,GAAiB,CAYrBN,GAAwC,IAA1BnS,EAAgB0S,SAE9B1lB,KAAKsU,UAAY,WAChB,KAAKkR,EAAa,IAAMxS,EAAgB2S,gBAAmBH,EAAa,GAAxE,CAKA,GAAII,GAAa5S,EAAgB2Q,GAEf,IAAd6B,GAAmBxS,EAAgB2S,iBACtCC,GAAmC,UAArBlE,SAASmE,SAAuB,SAAW,SAAW,mCAAqCC,UAAU9S,EAAgB2Q,KAGpI,IAAI9b,GAAOmL,EAAgBnL,IAG3B,IAAIA,EACH,IACCA,EAAOX,KAAKC,MAAMU,GAEnB,MAAOwK,IAIRtS,EAAE2jB,MACDC,IAAKiC,EACLG,SAAyB,GAAdP,EAAmB,QAAU,OACxCjf,KAAMyM,EAAgBgT,QAAU,MAChCvc,KAAM5B,EACNoe,WAAY,SAAUC,GACrB,IACC1lB,EAAE6B,KAAK2Q,EAAgBmT,QAAS,SAAUC,GACzC,GAAIhkB,GAAOgkB,EAAOhkB,KACd0T,EAAQsQ,EAAOtQ,KAEdtV,GAAE0C,YAAYd,IAAU5B,EAAE0C,YAAY4S,IAC1CoQ,EAAIG,iBAAiBjkB,EAAM0T,KAI9B,MAAOzD,MAGRuR,QAAS,SAAUna,GAClBgc,GAAiB,EACjBzR,EAAevK,IAEhB6c,MAAO,WACDb,IAEJD,IACAzkB,EAAKuT,kBAMTtU,KAAK8Q,UAAY,WAChBwU,cAAcD,GACdA,EAAc,MAGfrlB,KAAK2R,kBAAoB,SAAU4G,GAClCkN,GAAiB,EACjBD,EAAa,EAEbxS,EAAkBuF,EAClB4M,EAAwC,IAA1BnS,EAAgB0S,SAC9B3kB,EAAKuT,aAIP1O,WAAUme,sBACT/gB,UAAW,OACXoO,WAEEhP,KAAM,MACNe,aAAc,MACdoD,KAAM,SAGNnE,KAAM,iBACNe,aAAc,iBACd+X,YAAa,kRACb3U,KAAM,UACN+S,eAAe,IAGflX,KAAM,UACNe,aAAc,gBACdoD,KAAM,SACN0U,OAAQ,UACR3B,cAAe,IAGflX,KAAM,SACNe,aAAc,SACdoD,KAAM,SACN4T,UAEE/X,KAAM,MACN0T,MAAO,QAGP1T,KAAM,OACN0T,MAAO,SAGP1T,KAAM,MACN0T,MAAO,QAGP1T,KAAM,SACN0T,MAAO,aAKT1T,KAAM,OACNe,aAAc,OACdoD,KAAM,OACN2U,YAAa,kEAGb9Y,KAAM,UACNe,aAAc,UACdoD,KAAM,QACN6K,WAEEhP,KAAM,OACNe,aAAc,OACdoD,KAAM,SAGNnE,KAAM,QACNe,aAAc,QACdoD,KAAM,WAKV4K,YAAa,SAAUC,EAAUmV,EAAqBvS,GACrDuS,EAAoB,GAAIrB,GAAe9T,EAAU4C,MAInD,IAAIwS,GAA2B,SAAUpV,EAAU4C,GAKlD,QAASmR,GAAcC,GAClBC,GACHC,cAAcD,GAGfA,EAAcE,YAAY,WACzBxkB,EAAKuT,aACH8Q,GAGJ,QAASqB,GAAYC,GACpB,MAAOA,GAAInT,QAAQ,SAAU,SAAUoT,GACtC,MAAOA,GAAIhK,OAAO,GAAGiK,cAAgBD,EAAIE,OAAO,GAAGC,gBAhBrD,GAAI/lB,GAAOf,KACPqlB,EAAc,KACdrS,EAAkB5B,CAkBtB+T,GAAwC,IAA1BnS,EAAgB0S,SAE9B1lB,KAAKsU,UAAY,WAChBvU,EAAE2jB,MACDC,IAAK,oDAAsDoD,mBAAmB/T,EAAgB0O,UAAY,UAAY1O,EAAgBgU,MACtIjB,SAAU,QACVnC,QAAS,SAAUna,GAElB,GAAIvH,IACH+kB,WAAYxd,EAAKrH,KACjB8kB,QAAS,GAAKhT,MAAwB,IAAnBzK,EAAK0d,IAAID,SAAiB9S,qBAC7CgT,OAAQ,GAAKlT,MAAuB,IAAlBzK,EAAK0d,IAAIC,QAAgBhT,qBAC3CiT,WAAYZ,EAAYhd,EAAK6d,QAAQ,GAAGpM,aACxCqM,aAAc9d,EAAK+d,KAAKC,KACxBC,UAAWje,EAAK+d,KAAKG,SACrBC,SAAUne,EAAK+d,KAAKK,SACpBC,SAAUre,EAAK+d,KAAKM,SACpBC,SAAUte,EAAK+d,KAAKO,SACpBC,WAAYve,EAAKwe,KAAKC,MACtBC,eAAgB1e,EAAKwe,KAAKG,IAG3BpU,GAAe9R,IAEhBokB,MAAO,gBAKTtmB,KAAK8Q,UAAY,WAChBwU,cAAcD,GACdA,EAAc,MAGfrlB,KAAK2R,kBAAoB,SAAU4G,GAClCvF,EAAkBuF,EAClBxX,EAAKuT,YACL6Q,EAAwC,IAA1BnS,EAAgB0S,UAIhC9f,WAAUme,sBACT/gB,UAAW,iBACXG,aAAc,uBACdiO,WAEEhP,KAAM,WACNe,aAAc,WACdoD,KAAM,OACN2U,YAAa,wBAGb9Y,KAAM,QACNe,aAAc,QACdoD,KAAM,SACN8hB,UAAS,WACTlO,UAEE/X,KAAM,WACN0T,MAAO,aAGP1T,KAAM,SACN0T,MAAO,aAKT1T,KAAM,UACNe,aAAc,gBACdoD,KAAM,SACN0U,OAAQ,UACR3B,cAAe,IAGjBnI,YAAa,SAAUC,EAAUmV,EAAqBvS,GACrDuS,EAAoB,GAAIC,GAAyBpV,EAAU4C,MAI7D,IAAIsU,GAAoB,SAAUlX,EAAU4C,GAI3C,QAASuU,GAAWC,GACnBxU,EAAewU,GAJhB,GAAIznB,GAAOf,KACPgT,EAAkB5B,CAMtBpR,MAAKsU,UAAY,WAChBmU,QAAQC,qBAAqB1V,EAAgB2V,SAAU,SAAUC,EAAKJ,GACjEI,GAIHL,EAAWC,EAAM,GAAGK,YAKvB7oB,KAAK8Q,UAAY,aAIjB9Q,KAAK2R,kBAAoB,SAAU4G,GAClCkQ,QAAQK,iBAER9V,EAAkBuF,EAElBkQ,QAAQM,WAAW/V,EAAgB2V,SAAU,SAAUH,GACtDD,EAAWC,EAAMK,YAInB9nB,EAAK4Q,kBAAkBP,GAGxBxL,WAAUme,sBACT/gB,UAAa,WACbG,aAAgB,WAChBsO,kBACC,0CAEDL,WAEEhP,KAAM,WACNe,aAAc,aACd+X,YAAe,uBACf3U,KAAM,SAGR4K,YAAa,SAAUC,EAAUmV,EAAqBvS,GACrDuS,EAAoB,GAAI+B,GAAkBlX,EAAU4C,MAItD,IAAIgV,GAAqB,SAAU5X,EAAU4C,GAO5C,QAASiV,KACJC,EAAerkB,OAAS,GACvBgZ,EAAeqL,EAAerkB,SACjCmP,EAAekV,EAAerL,IAC9BA,KAGGA,GAAgBqL,EAAerkB,QAAUmO,EAAgBmW,OAC5DtL,EAAe,GAGZA,EAAeqL,EAAerkB,SACjCukB,EAAiBhZ,WAAW6Y,EAAoC,IAA1BjW,EAAgB0S,WAIvD1R,MAIF,QAASqV,KACRH,KACArL,EAAe,EAEXuL,IACH/F,aAAa+F,GACbA,EAAiB,MAhCnB,GAIIA,GAJAroB,EAAOf,KACPgT,EAAkB5B,EAClB8X,KACArL,EAAe,CAiCnB7d,MAAKsU,UAAY,WAChB+U,IAEAtpB,EAAE2jB,MACDC,IAAK3Q,EAAgBsW,SACrBvD,SAAW/S,EAAwB,SAAI,QAAU,OACjD4Q,QAAS,SAAUna,GAEjByf,EADG1oB,EAAE0E,QAAQuE,GACIA,KAMlBoU,EAAe,EAEfoL,KAED3C,MAAO,gBAKTtmB,KAAK8Q,UAAY,WAChBuY,KAGDrpB,KAAK2R,kBAAoB,SAAU4G,GAClCvF,EAAkBuF,EAClBxX,EAAKuT,aAIP1O,WAAUme,sBACT/gB,UAAa,WACbG,aAAgB,WAChBiO,WAEEhP,KAAQ,WACRe,aAAgB,gBAChBoD,KAAQ,OACR2U,YAAe,oCAGf9Y,KAAM,WACNe,aAAc,WACdoD,KAAM,YAGNnE,KAAQ,OACRe,aAAgB,OAChBoD,KAAQ,UACR2U,YAAe,kCAGf9Y,KAAQ,UACRe,aAAgB,gBAChBoD,KAAQ,SACR0U,OAAU,UACV3B,cAAiB,IAGnBnI,YAAa,SAAUC,EAAUmV,EAAqBvS,GACrDuS,EAAoB,GAAIyC,GAAmB5X,EAAU4C,MAIvD,IAAIuV,GAAkB,SAAUnY,EAAU4C,GAKzC,QAASwV,KACJC,IACHpG,aAAaoG,GACbA,EAAQ,MAIV,QAASpE,KACRmE,IACAC,EAAQlE,YAAYxkB,EAAKuT,UAAqC,IAA1BtB,EAAgB0S,SAbrD,GAEI+D,GAFA1oB,EAAOf,KACPgT,EAAkB5B,CAetBpR,MAAKsU,UAAY,WAChB,GAAIoV,GAAO,GAAIxV,MAEXzK,GACHkgB,cAAeD,EAAKE,UACpBC,kBAAmBH,EAAKI,iBACxBC,kBAAmBL,EAAKM,qBACxBC,kBAAmBP,EAAKtV,qBACxB8V,YAAaR,EAGd1V,GAAevK,IAGhBzJ,KAAK8Q,UAAY,WAChB0Y,KAGDxpB,KAAK2R,kBAAoB,SAAU4G,GAClCvF,EAAkBuF,EAClB8M,KAGDA,IAGDzf,WAAUme,sBACT/gB,UAAa,QACbG,aAAgB,QAChBiO,WAEEhP,KAAQ,UACRe,aAAgB,gBAChBoD,KAAQ,SACR0U,OAAU,UACV3B,cAAiB,IAGnBnI,YAAa,SAAUC,EAAUmV,EAAqBvS,GACrDuS,EAAoB,GAAIgD,GAAgBnY,EAAU4C,UAcpD,WAGG,QAASmW,GAAmB5oB,EAAU6oB,EAAaC,GAErD,GAAIC,GAAevqB,EAAEqqB,GAAa5P,MAE5B,IAAI8P,GAAgB/oB,EAGpB,GAAIxB,EAAEwqB,UAAUhpB,IAAaxB,EAAEwqB,UAAUD,GAAe,CACpD,GAAIE,GAAWjpB,EAASqR,WAAW2J,MAAM,KACrCkO,EAAkB,CAElBD,GAAS3lB,OAAS,IAClB4lB,EAAkBD,EAAS,GAAG3lB,QAGlC2lB,EAAWF,EAAa1X,WAAW2J,MAAM,IACzC,IAAImO,GAAoB,CAEpBF,GAAS3lB,OAAS,IAClB6lB,EAAoBF,EAAS,GAAG3lB,QAGpCic,QAAQ6J,gBAAiBpd,OAAO+c,GAAeM,eAAgBF,IAAoB1hB,SAAS2hB,gBAAiBpd,OAAOhM,GAAWqpB,eAAgBH,IAC3IJ,SAAUA,EACVQ,KAAM,WACF9qB,EAAEqqB,GAAa5P,KAAKxa,KAAK2qB,gBAAgBG,QAAQ9qB,KAAK4qB,kBAE1DG,KAAM,WACFhrB,EAAEqqB,GAAa5P,KAAKjZ,UAK5BxB,GAAEqqB,GAAa5P,KAAKjZ,GAI5B,QAASypB,GAAoB5d,EAAS0I,GAClC,GAAIkM,GAASjiB,EAAEqN,GAAS3D,OAAOuY,MAE1BA,KACDA,MAGAA,EAAOnd,QAAUomB,GACjBjJ,EAAOzW,QAGXyW,EAAO5e,KAAKmK,OAAOuI,IAEnB/V,EAAEqN,GAAS3D,OAAOuY,OAASA,EAE3BjiB,EAAEqN,GAAS8d,UAAUlJ,GACjBzb,KAAM,OACNiH,OAAQ,OACRtB,MAAO,OACPif,WAAW,EACXC,UAAW,UACXC,UAAW,EACXC,WAAY,EACZC,WAAW,EACXC,aAAc,UACdC,aAAc,UACdC,mBAAoB,UACpBC,mBAAoB,YAlE5B,GAAIV,GAA2B,IAsE9BW,EAAahmB,UAAUmf,eAAe,SAE1Cnf,WAAUue,SAAS,mBAAoByH,EAAa,mBAEpDhmB,UAAUue,SAAS,cAAe,gEAElCve,UAAUue,SAAS,SAClB,sBAEDve,UAAUue,SAAS,SAClB,4BAEDve,UAAUue,SAAS,SAClB,0BAEDve,UAAUue,SAAS,SAClB,uBAEDve,UAAUue,SAAS,YAClByH,EACA,mEAIDhmB,UAAUue,SAAS,WAClB,0FAKDve,UAAUue,SAAS,oBAClB,0DAIDve,UAAUue,SAAS,gBAClB,eAEE,IAAI0H,GAAa,SAAUza,GAW7B,QAAS0a,KAEJtrB,EAAE0C,YAAY8P,EAAgBgU,QAAmC,IAAzBhU,EAAgBgU,MAM3D+E,EAAaziB,IAAI,YAAa,QAJ9ByiB,EAAaziB,IAAI,YAAc0iB,EAAeC,aAAeC,EAAazO,YAAW,GAAS,MAb1F,GAEIzK,GAAkB5B,EACxB4a,EAAiBjsB,EAAE,kCACnBosB,EAAepsB,EAAE,kDACXgsB,EAAehsB,EAAE,gCACjBmsB,EAAensB,EAAE,+BACjBqsB,EAAmBrsB,EAAE,yCAczBC,MAAK4T,OAAS,SAAUxG,GAC7BrN,EAAEqN,GAASuQ,QAEX5d,EAAEisB,GACA7rB,OAAOJ,EAAE,6BAA6BI,OAAOgsB,IAC7ChsB,OAAOJ,EAAE,6BAA6BI,OAAOJ,EAAE,8CAA8CI,OAAO4rB,GAAc5rB,OAAO+rB,KACzH/rB,OAAOJ,EAAE,6BAA6BI,OAAOisB,IAE/CrsB,EAAEqN,GAASjN,OAAO6rB,GAElBF,KAGK9rB,KAAK2R,kBAAoB,SAAU4G,GAC/BvF,EAAkBuF,CAE3B,IAAI8T,IAAuB7rB,EAAE0C,YAAYqV,EAAY/Y,QAA+B,IAArB+Y,EAAY/Y,MACvE8sB,GAAuB9rB,EAAE0C,YAAYqV,EAAYyO,QAA+B,IAArBzO,EAAYyO,KAExEzO,GAAY2S,UAEdkB,EAAiB1hB,KAAK,QAAS,aAIxB0hB,GAAiB3iB,OAAOuY,OAC/BoK,EAAiBzO,QACjByO,EAAiB3qB,QAGf4qB,GAEFF,EAAa9U,KAAM7W,EAAE0C,YAAYqV,EAAY/Y,OAAS,GAAK+Y,EAAY/Y,OACvE2sB,EAAazhB,KAAK,QAAS,QAI3ByhB,EAAaxO,QACbwO,EAAa1qB,QAGX6qB,GAEFJ,EAAa7U,KAAM7W,EAAE0C,YAAYqV,EAAYyO,OAAS,GAAKzO,EAAYyO,OACvEkF,EAAaxhB,KAAK,QAAS,QAI3BwhB,EAAavO,QACbuO,EAAazqB,OAGd,IAAI8qB,GAAgB,EAEG,QAApBhU,EAAYkG,OAEd8N,EAAgB,GAEbhU,EAAY2S,YAEdqB,EAAgB,KAIlBR,EAAaziB,KAAKkjB,YAAcD,EAAgB,OAEhDT,KAGD9rB,KAAKmS,cAAgB,WAEpB2Z,KAGK9rB,KAAKyS,yBAA2B,SAAUX,EAAavQ,GAChC,SAAfuQ,IAEIkB,EAAgBhK,QAChBmhB,EAAmB5oB,EAAUwqB,EAAc,KAG3CA,EAAavR,KAAKjZ,GAGlByR,EAAgBkY,WAChBF,EAAoBoB,EAAkB7qB,KAKlDvB,KAAK8Q,UAAY,aAIjB9Q,KAAK2T,UAAY,WACb,MAA4B,OAAxBX,EAAgByL,MAAiBzL,EAAgBkY,UAC1C,EAGA,GAIflrB,KAAK2R,kBAAkBP,GAG3BxL,WAAUse,kBACNlhB,UAAW,cACXG,aAAc,OACdsO,kBACI,8CAEJL,WAEQhP,KAAM,QACNe,aAAc,QACdoD,KAAM,SAGNnE,KAAM,OACNe,aAAc,OACdoD,KAAM,SACN4T,UAEQ/X,KAAM,UACN0T,MAAO,YAGP1T,KAAM,MACN0T,MAAO,UAKf1T,KAAM,QACNe,aAAc,QACdoD,KAAM,eAGNnE,KAAM,YACNe,aAAc,oBACdoD,KAAM,YAGNnE,KAAM,UACNe,aAAc,wBACdoD,KAAM,UACN+S,eAAe,IAGflX,KAAM,QACNe,aAAc,QACdoD,KAAM,SAGd4K,YAAa,SAAUC,EAAUmV,GAC7BA,EAAoB,GAAIsF,GAAWza,MAI3C,IAAIqb,GAAU,CACjB7mB,WAAUue,SAAS,wBAAyB,mCAC5Cve,UAAUue,SAAS,gBAAiB,iDAEjC,IAAIuI,GAAc,SAAUtb,GAYxB,QAASub,KACAC,IAILC,EAAalP,QAEbmP,EAAc,GAAIC,WACdC,GAAIC,EACJnX,MAAQtV,EAAE0C,YAAY8P,EAAgBka,WAAa,EAAIla,EAAgBka,UACvEtiB,IAAMpK,EAAE0C,YAAY8P,EAAgBka,WAAa,EAAIla,EAAgBka,UACrE/f,IAAM3M,EAAE0C,YAAY8P,EAAgBma,WAAa,EAAIna,EAAgBma,UACrEC,MAAOpa,EAAgBgU,MACvBqG,iBAAiB,EACjBC,eAAgB,aAzBxB,GAMIR,GAJAG,EAAc,SAAWR,IACzBN,EAAepsB,EAAE,mCACjB8sB,EAAe9sB,EAAE,iCAAmCktB,EAAc,YAGlEL,GAAW,EAEX5Z,EAAkB5B,CAoBtBpR,MAAK4T,OAAS,SAAUxG,GACpBwf,GAAW,EACX7sB,EAAEqN,GAASjN,OAAOgsB,GAAchsB,OAAOJ,EAAE,4CAA4CI,OAAO0sB,IAC5FF,KAGJ3sB,KAAK2R,kBAAoB,SAAU4G,GAC3BA,EAAY2U,WAAala,EAAgBka,WAAa3U,EAAY4U,WAAana,EAAgBma,WAAa5U,EAAYyO,OAAShU,EAAgBgU,OACjJhU,EAAkBuF,EAClBoU,KAGA3Z,EAAkBuF,EAGtB4T,EAAa9U,KAAKkB,EAAY/Y,QAGlCQ,KAAKyS,yBAA2B,SAAUX,EAAavQ,GAC9Cf,EAAE0C,YAAY4pB,IACfA,EAAYpH,QAAQnY,OAAOhM,KAInCvB,KAAK8Q,UAAY,aAGjB9Q,KAAK2T,UAAY,WACb,MAAO,IAGX3T,KAAK2R,kBAAkBP,GAG3BxL,WAAUse,kBACNlhB,UAAW,QACXG,aAAc,QACdsO,kBACI,0CACA,wCAEJL,WAEQhP,KAAM,QACNe,aAAc,QACdoD,KAAM,SAGNnE,KAAM,QACNe,aAAc,QACdoD,KAAM,eAGNnE,KAAM,QACNe,aAAc,QACdoD,KAAM,SAGNnE,KAAM,YACNe,aAAc,UACdoD,KAAM,OACN+S,cAAe,IAGflX,KAAM,YACNe,aAAc,UACdoD,KAAM,OACN+S,cAAe,MAGvBnI,YAAa,SAAUC,EAAUmV,GAC7BA,EAAoB,GAAImG,GAAYtb,OAK/CxL,UAAUue,SAAS,aAAc,2BAC9B,IAAIoJ,GAAkB,SAAUnc,GAC5B,GAEI+a,GAAepsB,EAAE,mCACjBqsB,EAAmBrsB,EAAE,gCAEzBC,MAAK4T,OAAS,SAAUxG,GACpBrN,EAAEqN,GAASjN,OAAOgsB,GAAchsB,OAAOisB,IAG3CpsB,KAAK2R,kBAAoB,SAAU4G,GAC/B4T,EAAa9U,KAAM7W,EAAE0C,YAAYqV,EAAY/Y,OAAS,GAAK+Y,EAAY/Y,QAG3EQ,KAAKyS,yBAA2B,SAAUX,EAAavQ,GACnDypB,EAAoBoB,EAAkB7qB,IAG1CvB,KAAK8Q,UAAY,aAGjB9Q,KAAK2T,UAAY,WACb,MAAO,IAGX3T,KAAK2R,kBAAkBP,GAG3BxL,WAAUse,kBACNlhB,UAAW,YACXG,aAAc,YACdsO,kBACI,8CAEJL,WAEQhP,KAAM,QACNe,aAAc,QACdoD,KAAM,SAGNnE,KAAM,QACNe,aAAc,QACdoD,KAAM,eAGd4K,YAAa,SAAUC,EAAUmV,GAC7BA,EAAoB,GAAIgH,GAAgBnc,OAInDxL,UAAUue,SAAS,oBAAqB,iGACrC,IAAIqJ,GAAgB,SAAUpc,GAU1B,QAASqc,GAAYC,GACjB,IAAKA,GAAUA,EAAO7oB,OAAS,EAC3B,QACJ,IAAI8oB,KACJA,GAAKvqB,MAAM,IAAKsqB,EAAO,GAAIA,EAAO,IAClC,KAAK,GAAI3d,GAAI,EAAGA,EAAI2d,EAAO7oB,OAAQkL,GAAK,EACpC4d,EAAKvqB,MAAM,IAAKsqB,EAAO3d,GAAI2d,EAAO3d,EAAI,IAG1C,OADA4d,GAAKvqB,MAAM,MACJuqB,EAlBX,GACIC,GAEAC,EACA3hB,EAAOsB,EAFPsgB,EAAc,EAGdxD,EAAe,EACfyD,EAAWhuB,EAAE,uCACbiuB,EAAWjuB,EAAE,cAcjBC,MAAK4T,OAAS,SAAUxG,GACpBlB,EAAQnM,EAAEqN,GAASlB,QACnBsB,EAASzN,EAAEqN,GAASI,QAEpB,IAAIygB,GAAStjB,KAAKC,IAAIsB,EAAOsB,GAAU,EAAkB,EAAdsgB,CAE3CF,GAAQM,QAAQnuB,EAAEqN,GAASkJ,MAAM,GAAIpK,EAAOsB,EAC5C,IAAI2gB,GAASP,EAAMO,OAAOjiB,EAAQ,EAAGsB,EAAS,EAAGygB,EACjDE,GAAOzjB,KAAK,SAAU,WACtByjB,EAAOzjB,KAAK,eAAgBojB,GAE5BD,EAAWD,EAAMD,KAAKF,GAAavhB,EAAQ,EAAIsB,EAAS,EAAKygB,EAASH,EAAa,GAAI,GAAI,IAAK,KAChGD,EAASnjB,KAAK,eAAgB,GAC9BmjB,EAASnjB,KAAK,OAAQ,QAEtB3K,EAAEqN,GAASjN,OAAOJ,EAAE,qCAAqCI,OAAO4tB,GAAU5tB,OAAO6tB,KAGrFhuB,KAAK2R,kBAAoB,SAAU4G,GAC/ByV,EAAS3W,KAAKkB,EAAYyO,QAG9BhnB,KAAKyS,yBAA2B,SAAUX,EAAavQ,GACnD,GAAmB,aAAfuQ,EAA4B,CAC5B,IAAKtR,EAAE0C,YAAY2qB,GAAW,CAS1BA,EAAS7kB,SAASolB,UAAW,IAAM7sB,EAAW,IAAO2K,EAAQ,EAAK,IAAOsB,EAAS,GAAK,IAAK,UAGhG8c,EAAe/oB,MAEK,cAAfuQ,GACLic,EAAS1W,KAAK9V,IAItBvB,KAAK8Q,UAAY,aAGjB9Q,KAAK2T,UAAY,WACb,MAAO,IAGX3T,KAAK2R,kBAAkBP,GAG3BxL,WAAUse,kBACNlhB,UAAW,UACXG,aAAc,UACdsO,kBACI,2CAEJL,WAEQhP,KAAM,YACNe,aAAc,YACdoD,KAAM,aACN2U,YAAa,eAGb9Y,KAAM,aACNe,aAAc,aACdoD,KAAM,eAGNnE,KAAM,QACNe,aAAc,QACdoD,KAAM,SAGd4K,YAAa,SAAUC,EAAUmV,GAC7BA,EAAoB,GAAIiH,GAAcpc,MAI9C,IAAIid,GAAgB,SAASjd,GAOzB,QAASoY,KAEFC,IAECnE,cAAcmE,GACdA,EAAQ,MAIhB,QAAS6E,KAEL,GAAGC,GAAiBC,EACpB,CACI,GAAIC,GAAkBD,GAAqC,IAAzBA,EAAS9qB,QAAQ,KAAa,IAAM,KAAOwQ,KAAKD,KAElFlU,GAAEwuB,GAAejlB,KACbolB,mBAAsB,OAASD,EAAkB,OArB7D,GACIF,GACA9E,EACA+E,CAuBJxuB,MAAK4T,OAAS,SAASxG,GAEnBrN,EAAEqN,GAAS9D,KACP4C,MAAQ,OACRsB,OAAQ,OACRmhB,kBAAoB,QACpBC,sBAAwB,WAG5BL,EAAgBnhB,GAGpBpN,KAAK2R,kBAAoB,SAAS4G,GAE9BiR,IAEGjR,EAAYmN,SAAWnN,EAAYmN,QAAU,IAE5C+D,EAAQlE,YAAY+I,EAA2C,IAA9B/gB,OAAOgL,EAAYmN,YAI5D1lB,KAAKyS,yBAA2B,SAASX,EAAavQ,GAEhC,OAAfuQ,IAEC0c,EAAWjtB,GAGf+sB,KAGJtuB,KAAK8Q,UAAY,WAEb0Y,KAGJxpB,KAAK2T,UAAY,WAEb,MAAO,IAGX3T,KAAK2R,kBAAkBP,GAG3BxL,WAAUse,kBACNlhB,UAAW,UACXG,aAAc,UACdkO,WAAW,EACXD,WAEQhP,KAAM,MACNe,aAAc,YACdoD,KAAM,eAGNA,KAAQ,SACRpD,aAAgB,gBAChBf,KAAQ,UACR6Y,OAAU,UACVC,YAAc,0DAGtB/J,YAAa,SAAUC,EAAUmV,GAC7BA,EAAoB,GAAI8H,GAAcjd,OAIjDxL,UAAUue,SAAS,mBAAoB,wIACvCve,UAAUue,SAAS,sBAAuB,mFAC1Cve,UAAUue,SAAS,kBAAmB,mBACnC,IAAI0K,GAAkB,SAAUzd,GAQ5B,QAAS0d,KACLC,EAAiBC,YAAY,KAAMC,GAG/BC,EAAa1U,KADbyU,EACmBzuB,EAAE0C,YAAY8P,EAAgBmc,SAAW,GAAKnc,EAAgBmc,QAG9D3uB,EAAE0C,YAAY8P,EAAgBoc,UAAY,GAAKpc,EAAgBoc,UAd1F,GACIjD,GAAepsB,EAAE,mCACjBmvB,EAAenvB,EAAE,sCACjBgvB,EAAmBhvB,EAAE,uCACrBiT,EAAkB5B,EAClB6d,GAAO,CAaXjvB,MAAK4T,OAAS,SAAUxG,GACpBrN,EAAEqN,GAASjN,OAAOgsB,GAAchsB,OAAO4uB,GAAkB5uB,OAAO+uB,IAGpElvB,KAAK2R,kBAAoB,SAAU4G,GAC/BvF,EAAkBuF,EAClB4T,EAAa9U,KAAM7W,EAAE0C,YAAYqV,EAAY/Y,OAAS,GAAK+Y,EAAY/Y,OACvEsvB,KAGJ9uB,KAAKyS,yBAA2B,SAAUX,EAAavQ,GAChC,SAAfuQ,IACAmd,EAAOI,QAAQ9tB,IAGnButB,KAGJ9uB,KAAK8Q,UAAY,aAGjB9Q,KAAK2T,UAAY,WACb,MAAO,IAGX3T,KAAK2R,kBAAkBP,GAG3BxL,WAAUse,kBACNlhB,UAAW,YACXG,aAAc,kBACdiO,WAEQhP,KAAM,QACNe,aAAc,QACdoD,KAAM,SAGNnE,KAAM,QACNe,aAAc,QACdoD,KAAM,eAGNnE,KAAM,UACNe,aAAc,UACdoD,KAAM,eAGNnE,KAAM,WACNe,aAAc,WACdoD,KAAM,eAGd4K,YAAa,SAAUC,EAAUmV,GAC7BA,EAAoB,GAAIsI,GAAgBzd,OAIhDxL,UAAUue,SAAS,iBAAkB,oBAErC,IAAImL,GAAkB,SAAUle,GAO5B,QAASme,KACL,GAAIC,GAAOC,GAAUC,EAAgBC,KAAOD,EAAgBE,IAAK,CAC7D,GAAIC,GAAY,GAAIC,QAAOC,KAAKC,OAAON,EAAgBC,IAAKD,EAAgBE,IAC5EH,GAAOQ,YAAYJ,GACnBL,EAAIU,MAAML,IAVlB,GAEIL,GACAC,EAFAzc,EAAkB5B,EAGlBse,IAUJ1vB,MAAK4T,OAAS,SAAUxG,GACpB,QAAS+iB,KACL,GAAIC,IACAC,KAAM,GACNC,OAAQ,GAAIR,QAAOC,KAAKC,OAAO,OAAQ,aACvCO,kBAAkB,EAClBC,WAAW,EACXC,SACKC,YAAe,QAASC,YAAe,WAAYC,UAC/C1O,MAAS,cAEbwO,YAAe,YAAaC,YAAe,WAAYC,UACnD1O,MAAS,YACT2O,UAAa,OAEjBH,YAAe,eAAgBC,YAAe,gBAAiBC,UAC3D1O,MAAS,YACT2O,UAAa,OAEjBH,YAAe,eAAgBC,YAAe,kBAAmBC,UAC7D1O,MAAS,YACT2O,UAAa,KACbC,OAAU,OAEdJ,YAAe,gBAAiBC,YAAe,WAAYC,UACvD1O,MAAS,YACT2O,UAAa,OAEjBH,YAAe,aAAcC,YAAe,WAAYC,UACpD1O,MAAS,YACT2O,UAAa,OAEjBH,YAAe,MAAOC,YAAe,WAAYC,UAC7C1O,MAAS,YACT2O,UAAa,OAEjBF,YAAe,qBAAsBC,UACjCG,WAAc,OACd7O,MAAS,YACT2O,UAAa,OAEjBF,YAAe,mBAAoBC,UAC/BI,WAAc,KACd9O,MAAS,YACT2O,UAAa,OAEjBF,YAAe,cAAeC,UAC1BG,WAAc,UAElBL,YAAe,UAAWC,YAAe,WAAYC,UACjD1O,MAAS,YACT2O,UAAa,OAEjBH,YAAe,iBAAkBC,YAAe,gBAAiBC,UAC7D1O,MAAS,YACT2O,UAAa,OAEjBH,YAAe,iBAAkBC,YAAe,kBAAmBC,UAC/D1O,MAAS,YACT2O,UAAa,KACbC,OAAU,QAKvBtB,GAAM,GAAIM,QAAOC,KAAKkB,IAAI7jB,EAASgjB,GAEnCN,OAAOC,KAAKtpB,MAAMyqB,eAAe9jB,EAAS,aAAc,SAAUiF,GAC9DA,EAAE8e,cAAe,EACZ3B,EAAIjhB,QACLihB,EAAIjhB,OAAQ,EACZihB,EAAI4B,YAAYC,aAAa,OAIrCvB,OAAOC,KAAKtpB,MAAMyqB,eAAe9jB,EAAS,aAAc,WAChDoiB,EAAIjhB,QACJihB,EAAI4B,YAAYC,aAAa,IAC7B7B,EAAIjhB,OAAQ,KAIpBkhB,EAAS,GAAIK,QAAOC,KAAKuB,QAAQ9B,IAAKA,IAEtCD,IAGAxpB,OAAO+pB,QAAU/pB,OAAO+pB,OAAOC,KAC/BI,KAGApqB,OAAOwrB,gBAAkBpB,EACzBhrB,KAAKC,GAAG,2FAIhBpF,KAAK2R,kBAAoB,SAAU4G,GAC/BvF,EAAkBuF,GAGtBvY,KAAKyS,yBAA2B,SAAUX,EAAavQ,GAChC,OAAfuQ,EACA4d,EAAgBC,IAAMpuB,EAEF,OAAfuQ,IACL4d,EAAgBE,IAAMruB,GAG1BguB,KAGJvvB,KAAK8Q,UAAY,aAGjB9Q,KAAK2T,UAAY,WACb,MAAO,IAGX3T,KAAK2R,kBAAkBP,GAG3BxL,WAAUse,kBACNlhB,UAAW,aACXG,aAAc,aACdkO,WAAW,EACXD,WAEQhP,KAAM,MACNe,aAAc,WACdoD,KAAM,eAGNnE,KAAM,MACNe,aAAc,YACdoD,KAAM,eAGd4K,YAAa,SAAUC,EAAUmV,GAC7BA,EAAoB,GAAI+I,GAAgBle,OAIhDxL,UAAUue,SAAS,eAAgB,4CAEnC,IAAIqN,GAAa,SAAUpgB,GACvB,GACIqgB,GAAc1xB,EAAE,mCAChBiT,EAAkB5B,CAEtBpR,MAAK4T,OAAS,SAAUxG,GACpBrN,EAAEqN,GAASjN,OAAOsxB,IAGtBzxB,KAAK2R,kBAAoB,SAAU4G,GAC/BvF,EAAkBuF,GAGtBvY,KAAKyS,yBAA2B,SAAUX,EAAavQ,GAChC,QAAfuQ,GACA2f,EAAYpa,KAAK9V,IAIzBvB,KAAK8Q,UAAY,aAGjB9Q,KAAK2T,UAAY,WACb,MAAOpG,QAAOyF,EAAgBxF,SAGlCxN,KAAK2R,kBAAkBP,GAG3BxL,WAAUse,kBACNlhB,UAAa,OACbG,aAAgB,OAChBkO,WAAa,EACbD,WAEQhP,KAAQ,OACRe,aAAgB,OAChBoD,KAAQ,aACR2U,YAAe,0DAGf9Y,KAAQ,SACRe,aAAgB,gBAChBoD,KAAQ,SACR+S,cAAiB,EACjB4B,YAAe,uCAGvB/J,YAAa,SAAUC,EAAUmV,GAC7BA,EAAoB,GAAIiL,GAAWpgB"} +||||||| parent of 7a99440... Fix bug with not using calculated value of indicator texts +{"version":3,"file":"freeboard+plugins.min.js","sources":["freeboard%2Bplugins.js"],"names":["DialogBox","contentElement","title","okTitle","cancelTitle","okCallback","closeModal","overlay","fadeOut","$","this","remove","modalDialog","append","appendTo","footer","click","hold","_","isFunction","fadeIn","FreeboardModel","datasourcePlugins","widgetPlugins","freeboardUI","self","SERIALIZATION_VERSION","version","isEditing","ko","observable","allow_edit","subscribe","newValue","show","hide","header_image","plugins","observableArray","datasources","panes","datasourceData","processDatasourceUpdate","datasourceModel","newData","datasourceName","name","each","pane","widgets","widget","_datasourceTypes","datasourceTypes","computed","read","returnTypes","datasourcePluginType","typeName","type_name","displayName","isUndefined","display_name","push","_widgetTypes","widgetTypes","widgetPluginType","addPluginSource","pluginSource","indexOf","serialize","datasource","columns","getUserColumns","deserialize","object","finishedCallback","finishLoad","setUserColumns","datasourceConfig","DatasourceModel","addDatasource","sortedPanes","sortBy","getPositionForScreenSize","row","paneConfig","PaneModel","length","setEditing","processResize","clearDashboard","plugin","isArray","head","js","removeAllPanes","dispose","removeAll","loadDashboard","dashboardData","callback","showLoadingIndicator","freeboard","emit","loadDashboardFromLocalFile","window","File","FileReader","FileList","Blob","input","document","createElement","type","on","event","files","target","file","reader","addEventListener","fileReaderEvent","textFile","jsonObject","JSON","parse","result","readAsText","trigger","alert","saveDashboard","contentType","a","blob","stringify","body","appendChild","href","URL","createObjectURL","download","deleteDatasource","createPane","newPane","addPane","addGridColumnLeft","addGridColumnRight","subGridColumnLeft","subGridColumnRight","deletePane","deleteWidget","utils","arrayForEach","editing","animate","animateLength","barHeight","outerHeight","addClass","removeClass","css","cursor","top","data","shown","attachWidgetEditIcons","enableGrid","unbind","disableGrid","showPaneEditIcons","toggleEditing","FreeboardUI","layoutWidgets","maxDisplayableColumns","getMaxDisplayableColumnCount","repositionFunction","paneElement","paneModel","dataFor","newPosition","attr","Math","min","col_width","grid","cols","col","processSizeChange","updateGridWidth","userColumns","repositionGrid","updateGridColumnControls","addGridColumn","shift","num_cols","prevColumnIndex","prevCol","prevRow","leftPreviewCol","newCol","rightPreviewCol","subtractGridColumn","col_controls","available_width","width","max_columns","floor","COLUMN_WIDTH","MIN_COLUMNS","newCols","undefined","new_width","rootElement","$el","find","removeData","generate_grid_and_stylesheet","init","PANE_WIDTH","PANE_MARGIN","numCols","max","element","viewModel","position","Number","height","getCalculatedHeight","add_widget","updatePositionForScreenSize","attrchange","trackValues","attributeName","updatePane","calculatedHeight","elementHeight","elementWidth","resize_widget","set_dom_grid_height","displayCols","loadingIndicator","hover","showWidgetEditIcons","isNumber","obj","newColumnIndex","columnDiff","columnIndex","delta","bindingHandlers","gridster","widget_margins","widget_base_dimensions","resize","enabled","axes","disable","enable","removePane","remove_widget","remove_all_widgets","theFreeboardModel","addWidget","widgetCanMoveUp","widgetCanMoveDown","i","moveWidgetUp","array","splice","moveWidgetDown","setTimeout","sumHeights","reduce","memo","rows","ceil","widgetConfig","WidgetModel","disposeWidgetInstance","widgetInstance","onDispose","datasourceRefreshNotifications","calculatedSettingScripts","fillSize","widgetType","newInstance","settings","fill_size","shouldRender","_heightUpdate","valueHasMutated","external_scripts","slice","onSettingsChanged","updateCalculatedSettings","refreshSettingNames","settingName","processCalculatedSetting","callValueFunction","theFunction","call","onSizeChanged","returnValue","e","rawValue","ReferenceError","test","onCalculatedValueChanged","console","log","toString","settingsDefs","datasourceRegex","RegExp","currentSettings","settingDef","script","match","valueFunction","Function","literalText","replace","matches","exec","dsName","getHeight","render","disposeDatasourceInstance","datasourceInstance","latestData","updateCallback","now","Date","last_updated","toLocaleTimeString","datasourceType","updateNow","last_error","getDataRepresentation","dataPath","DeveloperConsole","showDeveloperConsole","addNewScriptRow","scriptURL","tableRow","tableOperations","scriptInput","deleteOperation","pluginScriptsInputs","without","val","tableBody","container","addScript","table","JSEditor","setAssetRoot","_assetRoot","assetRoot","displayJSEditor","value","exampleText","codeWindow","codeMirrorWrapper","codeWindowFooter","codeWindowHeader","codeMirrorEditor","CodeMirror","get","mode","theme","indentUnit","lineNumbers","matchBrackets","autoCloseBrackets","closeButton","getValue","PluginEditor","jsEditor","valueEditor","_displayValidationError","errorMessage","errorElement","html","_removeSettingsRows","nextAll","_isNumerical","n","isNaN","parseFloat","isFinite","createPluginEditor","pluginTypes","currentTypeName","currentSettingsValues","settingsSavedCallback","createSettingRow","tr","form","createSettingsFromDefinition","processHeaderVisibility","newSettings","subTableHead","createSubsettingRow","subsettingValue","subsettingRow","subTableBody","newSetting","subSettingDef","subsettingCol","subsettingValueString","change","subSettingIndex","subTableDiv","scrollTop","scrollHeight","default_value","valueCell","subTable","subTableHeadRow","currentSubSettingValues","subsettingDisplayName","newSubsettingValue","currentSubSettingValue","onOffSwitch","prependTo","checked","prop","defaultValue","options","option","optionName","optionValue","isObject","text","createValueEditor","datasourceToolbox","datasourceTool","mousedown","preventDefault","focus","insertAtCaret","jsEditorTool","suffix","description","selectedType","pluginDescriptionElement","index","required","typeSelect","pluginTypeNames","keys","typeRow","pluginType","currentInstanceName","ValueEditor","_resizeValueEditor","lineBreakCount","newHeight","_autocompleteFromDatasource","inputString","replacementString","_veDatasourceRegex","follow_char","dataPathItems","split","dataPathItem","lastPathObject","last","charAt","dataValue","followChar","_autocompleteOptions","_autocompleteReplacementString","dropdown","selectedOptionIndex","bind","keyCode","substring","getCaretPosition","String","fromCharCode","insertAfter","outerWidth","left","empty","selected","currentIndex","li","mouseenter","replacementIndex","lastIndexOf","replaceTextAt","triggerHandler","parent","next","z-index","focusout","optionItems","size","optionElement","eq","isDOMAttrModifiedSupported","p","flag","attachEvent","setAttribute","checkAttributes","chkAttr","attributes","oldValue","camelCase","MutationObserver","WebKitMutationObserver","fn","o","cfg","noop","extend","el","attrs","l","item","nodeName","mOptions","subtree","attributeOldValue","observer","mutations","forEach","_this","observe","originalEvent","attrName","prevValue","propertyName","jQuery","eventEmitter","_JQInit","_JQ","evt","once","handler","one","off","getParameterByName","regex","results","location","search","decodeURIComponent","pluginEditor","developerConsole","currentStyle","values","font-family","color","font-weight","valueAccessor","allBindingsAccessor","unwrap","types","operation","phraseElement","instanceType","newViewModel","virtualElements","allowedBindings","datasourceTypeSettings","update","bindingContext","processPluginSettings","$root","resizeEnd","resizeTimer","clearTimeout","initialize","allowEdit","applyBindings","freeboardLocation","ajax","url","success","newDashboard","configuration","loadDatasourcePlugin","unshift","source","loadWidgetPlugin","addStyle","selector","rules","styleString","styleElement","styleSheet","cssText","showDialog","getDatasourceSettings","setDatasourceSettings","combinedSettings","defaults","getStyleString","returnString","getStyleObject","jsonDatasource","updateRefresh","refreshTime","updateTimer","clearInterval","setInterval","errorStage","lockErrorStage","refresh","use_thingproxy","requestURL","protocol","encodeURI","dataType","method","beforeSend","xhr","headers","header","setRequestHeader","error","newInstanceCallback","clockDatasource","stopTimer","timer","date","numeric_value","getTime","full_string_value","toLocaleString","date_string_value","toLocaleDateString","time_string_value","date_object","easeTransitionText","textElement","duration","currentValue","isNumeric","numParts","endingPrecision","startingPrecision","transitionValue","precisionValue","step","toFixed","done","addValueToSparkline","SPARKLINE_HISTORY_LENGTH","sparkline","fillColor","lineColor","lineWidth","spotRadius","spotColor","minSpotColor","maxSpotColor","highlightSpotColor","highlightLineColor","valueStyle","textWidget","updateValueSizing","units","valueElement","displayElement","innerWidth","unitsElement","titleElement","sparklineElement","shouldDisplayTitle","shouldDisplayUnits","valueFontSize","font-size","gaugeID","gaugeWidget","createGauge","rendered","gaugeElement","gaugeObject","JustGage","id","thisGaugeID","min_value","max_value","label","showInnerShadow","valueFontColor","sparklineWidget","pictureWidget","updateImage","widgetElement","imageURL","cacheBreakerURL","background-image","background-size","background-position","indicatorWidget","updateState","indicatorElement","toggleClass","isOn","stateElement","on_text","off_text","Boolean"],"mappings":"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"} +======= +{"version":3,"file":"freeboard+plugins.min.js","sources":["freeboard%2Bplugins.js"],"names":["DialogBox","contentElement","title","okTitle","cancelTitle","okCallback","closeModal","overlay","fadeOut","$","this","remove","modalDialog","append","appendTo","footer","click","hold","_","isFunction","fadeIn","FreeboardModel","datasourcePlugins","widgetPlugins","freeboardUI","self","SERIALIZATION_VERSION","version","isEditing","ko","observable","allow_edit","subscribe","newValue","show","hide","header_image","plugins","observableArray","datasources","panes","datasourceData","processDatasourceUpdate","datasourceModel","newData","datasourceName","name","each","pane","widgets","widget","_datasourceTypes","datasourceTypes","computed","read","returnTypes","datasourcePluginType","typeName","type_name","displayName","isUndefined","display_name","push","_widgetTypes","widgetTypes","widgetPluginType","addPluginSource","pluginSource","indexOf","serialize","datasource","columns","getUserColumns","deserialize","object","finishedCallback","finishLoad","setUserColumns","datasourceConfig","DatasourceModel","addDatasource","sortedPanes","sortBy","getPositionForScreenSize","row","paneConfig","PaneModel","length","setEditing","processResize","clearDashboard","plugin","isArray","head","js","removeAllPanes","dispose","removeAll","loadDashboard","dashboardData","callback","showLoadingIndicator","freeboard","emit","loadDashboardFromLocalFile","window","File","FileReader","FileList","Blob","input","document","createElement","type","on","event","files","target","file","reader","addEventListener","fileReaderEvent","textFile","jsonObject","JSON","parse","result","readAsText","trigger","alert","saveDashboard","contentType","a","blob","stringify","body","appendChild","href","URL","createObjectURL","download","deleteDatasource","createPane","newPane","addPane","addGridColumnLeft","addGridColumnRight","subGridColumnLeft","subGridColumnRight","deletePane","deleteWidget","utils","arrayForEach","editing","animate","animateLength","barHeight","outerHeight","addClass","removeClass","css","cursor","top","data","shown","attachWidgetEditIcons","enableGrid","unbind","disableGrid","showPaneEditIcons","toggleEditing","FreeboardUI","layoutWidgets","maxDisplayableColumns","getMaxDisplayableColumnCount","repositionFunction","paneElement","paneModel","dataFor","newPosition","attr","Math","min","col_width","grid","cols","col","processSizeChange","updateGridWidth","userColumns","repositionGrid","updateGridColumnControls","addGridColumn","shift","num_cols","prevColumnIndex","prevCol","prevRow","leftPreviewCol","newCol","rightPreviewCol","subtractGridColumn","col_controls","available_width","width","max_columns","floor","COLUMN_WIDTH","MIN_COLUMNS","newCols","undefined","new_width","rootElement","$el","find","removeData","generate_grid_and_stylesheet","init","PANE_WIDTH","PANE_MARGIN","numCols","max","element","viewModel","position","Number","height","getCalculatedHeight","add_widget","updatePositionForScreenSize","attrchange","trackValues","attributeName","updatePane","calculatedHeight","elementHeight","elementWidth","resize_widget","set_dom_grid_height","displayCols","loadingIndicator","hover","showWidgetEditIcons","isNumber","obj","newColumnIndex","columnDiff","columnIndex","delta","bindingHandlers","gridster","widget_margins","widget_base_dimensions","resize","enabled","axes","disable","enable","removePane","remove_widget","remove_all_widgets","theFreeboardModel","addWidget","widgetCanMoveUp","widgetCanMoveDown","i","moveWidgetUp","array","splice","moveWidgetDown","setTimeout","sumHeights","reduce","memo","rows","ceil","widgetConfig","WidgetModel","disposeWidgetInstance","widgetInstance","onDispose","datasourceRefreshNotifications","calculatedSettingScripts","fillSize","widgetType","newInstance","settings","fill_size","shouldRender","_heightUpdate","valueHasMutated","external_scripts","slice","onSettingsChanged","updateCalculatedSettings","refreshSettingNames","settingName","processCalculatedSetting","callValueFunction","theFunction","call","onSizeChanged","returnValue","e","rawValue","ReferenceError","test","onCalculatedValueChanged","console","log","toString","settingsDefs","datasourceRegex","RegExp","currentSettings","settingDef","script","match","valueFunction","Function","literalText","replace","matches","exec","dsName","getHeight","render","disposeDatasourceInstance","datasourceInstance","latestData","updateCallback","now","Date","last_updated","toLocaleTimeString","datasourceType","updateNow","last_error","getDataRepresentation","dataPath","DeveloperConsole","showDeveloperConsole","addNewScriptRow","scriptURL","tableRow","tableOperations","scriptInput","deleteOperation","pluginScriptsInputs","without","val","tableBody","container","addScript","table","JSEditor","setAssetRoot","_assetRoot","assetRoot","displayJSEditor","value","exampleText","codeWindow","codeMirrorWrapper","codeWindowFooter","codeWindowHeader","codeMirrorEditor","CodeMirror","get","mode","theme","indentUnit","lineNumbers","matchBrackets","autoCloseBrackets","closeButton","getValue","PluginEditor","jsEditor","valueEditor","_displayValidationError","errorMessage","errorElement","html","_removeSettingsRows","nextAll","_isNumerical","n","isNaN","parseFloat","isFinite","createPluginEditor","pluginTypes","currentTypeName","currentSettingsValues","settingsSavedCallback","createSettingRow","tr","form","createSettingsFromDefinition","processHeaderVisibility","newSettings","subTableHead","createSubsettingRow","subsettingValue","subsettingRow","subTableBody","newSetting","subSettingDef","subsettingCol","subsettingValueString","change","subSettingIndex","subTableDiv","scrollTop","scrollHeight","default_value","valueCell","subTable","subTableHeadRow","currentSubSettingValues","subsettingDisplayName","newSubsettingValue","currentSubSettingValue","onOffSwitch","prependTo","checked","prop","defaultValue","options","option","optionName","optionValue","isObject","text","createValueEditor","datasourceToolbox","datasourceTool","mousedown","preventDefault","focus","insertAtCaret","jsEditorTool","suffix","description","selectedType","pluginDescriptionElement","index","required","typeSelect","pluginTypeNames","keys","typeRow","pluginType","currentInstanceName","ValueEditor","_resizeValueEditor","lineBreakCount","newHeight","_autocompleteFromDatasource","inputString","replacementString","_veDatasourceRegex","follow_char","dataPathItems","split","dataPathItem","lastPathObject","last","charAt","dataValue","followChar","_autocompleteOptions","_autocompleteReplacementString","dropdown","selectedOptionIndex","bind","keyCode","substring","getCaretPosition","String","fromCharCode","insertAfter","outerWidth","left","empty","selected","currentIndex","li","mouseenter","replacementIndex","lastIndexOf","replaceTextAt","triggerHandler","parent","next","z-index","focusout","optionItems","size","optionElement","eq","isDOMAttrModifiedSupported","p","flag","attachEvent","setAttribute","checkAttributes","chkAttr","attributes","oldValue","camelCase","MutationObserver","WebKitMutationObserver","fn","o","cfg","noop","extend","el","attrs","l","item","nodeName","mOptions","subtree","attributeOldValue","observer","mutations","forEach","_this","observe","originalEvent","attrName","prevValue","propertyName","jQuery","eventEmitter","_JQInit","_JQ","evt","once","handler","one","off","getParameterByName","regex","results","location","search","decodeURIComponent","pluginEditor","developerConsole","currentStyle","values","font-family","color","font-weight","valueAccessor","allBindingsAccessor","unwrap","types","operation","phraseElement","instanceType","newViewModel","virtualElements","allowedBindings","datasourceTypeSettings","update","bindingContext","processPluginSettings","$root","resizeEnd","resizeTimer","clearTimeout","initialize","allowEdit","applyBindings","freeboardLocation","ajax","url","success","newDashboard","configuration","loadDatasourcePlugin","unshift","source","loadWidgetPlugin","addStyle","selector","rules","styleString","styleElement","styleSheet","cssText","showDialog","getDatasourceSettings","setDatasourceSettings","combinedSettings","defaults","getStyleString","returnString","getStyleObject","jsonDatasource","updateRefresh","refreshTime","updateTimer","clearInterval","setInterval","errorStage","lockErrorStage","refresh","use_thingproxy","requestURL","protocol","encodeURI","dataType","method","beforeSend","xhr","headers","header","setRequestHeader","error","newInstanceCallback","clockDatasource","stopTimer","timer","date","numeric_value","getTime","full_string_value","toLocaleString","date_string_value","toLocaleDateString","time_string_value","date_object","easeTransitionText","textElement","duration","currentValue","isNumeric","numParts","endingPrecision","startingPrecision","transitionValue","precisionValue","step","toFixed","done","addValueToSparkline","SPARKLINE_HISTORY_LENGTH","sparkline","fillColor","lineColor","lineWidth","spotRadius","spotColor","minSpotColor","maxSpotColor","highlightSpotColor","highlightLineColor","valueStyle","textWidget","updateValueSizing","units","valueElement","displayElement","innerWidth","unitsElement","titleElement","sparklineElement","shouldDisplayTitle","shouldDisplayUnits","valueFontSize","font-size","gaugeID","gaugeWidget","createGauge","rendered","gaugeElement","gaugeObject","JustGage","id","thisGaugeID","min_value","max_value","label","showInnerShadow","valueFontColor","sparklineWidget","pictureWidget","updateImage","widgetElement","imageURL","cacheBreakerURL","background-image","background-size","background-position","indicatorWidget","updateState","indicatorElement","toggleClass","isOn","stateElement","onText","offText","Boolean"],"mappings":"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"} +>>>>>>> 7a99440... Fix bug with not using calculated value of indicator texts diff --git a/js/freeboard.min.js b/js/freeboard.min.js index 34e0174f..a99cd48e 100644 --- a/js/freeboard.min.js +++ b/js/freeboard.min.js @@ -1,2 +1,2 @@ -function DialogBox(e,t,n,i,a){function s(){o.fadeOut(200,function(){$(this).remove()})}var o=$(''),r=$('');r.append('

            '+t+"

            "),$("
            ").appendTo(r).append(e);var d=$("
            ").appendTo(r);n&&$(''+n+"").appendTo(d).click(function(){var e=!1;_.isFunction(a)&&(e=a()),e||s()}),i&&$(''+i+"").appendTo(d).click(function(){s()}),o.append(r),$("body").append(o),o.fadeIn(200)}function FreeboardModel(e,t,n){var i=this,a=1;this.version=0,this.isEditing=ko.observable(!1),this.allow_edit=ko.observable(!1),this.allow_edit.subscribe(function(e){e?$("#main-header").show():$("#main-header").hide()}),this.header_image=ko.observable(),this.plugins=ko.observableArray(),this.datasources=ko.observableArray(),this.panes=ko.observableArray(),this.datasourceData={},this.processDatasourceUpdate=function(e,t){var n=e.name();i.datasourceData[n]=t,_.each(i.panes(),function(e){_.each(e.widgets(),function(e){e.processDatasourceUpdate(n)})})},this._datasourceTypes=ko.observable(),this.datasourceTypes=ko.computed({read:function(){i._datasourceTypes();var t=[];return _.each(e,function(e){var n=e.type_name,i=n;_.isUndefined(e.display_name)||(i=e.display_name),t.push({name:n,display_name:i})}),t}}),this._widgetTypes=ko.observable(),this.widgetTypes=ko.computed({read:function(){i._widgetTypes();var e=[];return _.each(t,function(t){var n=t.type_name,i=n;_.isUndefined(t.display_name)||(i=t.display_name),e.push({name:n,display_name:i})}),e}}),this.addPluginSource=function(e){e&&-1==i.plugins.indexOf(e)&&i.plugins.push(e)},this.serialize=function(){var e=[];_.each(i.panes(),function(t){e.push(t.serialize())});var t=[];return _.each(i.datasources(),function(e){t.push(e.serialize())}),{version:a,header_image:i.header_image(),allow_edit:i.allow_edit(),plugins:i.plugins(),panes:e,datasources:t,columns:n.getUserColumns()}},this.deserialize=function(a,s){function o(){n.setUserColumns(a.columns),_.isUndefined(a.allow_edit)?i.allow_edit(!0):i.allow_edit(a.allow_edit),i.version=a.version||0,i.header_image(a.header_image),_.each(a.datasources,function(t){var n=new DatasourceModel(i,e);n.deserialize(t),i.addDatasource(n)});var o=_.sortBy(a.panes,function(e){return n.getPositionForScreenSize(e).row});_.each(o,function(e){var n=new PaneModel(i,t);n.deserialize(e),i.panes.push(n)}),i.allow_edit()&&0==i.panes().length&&i.setEditing(!0),_.isFunction(s)&&s(),n.processResize(!0)}i.clearDashboard(),_.each(a.plugins,function(e){i.addPluginSource(e)}),_.isArray(a.plugins)&&a.plugins.length>0?head.js(a.plugins,function(){o()}):o()},this.clearDashboard=function(){n.removeAllPanes(),_.each(i.datasources(),function(e){e.dispose()}),_.each(i.panes(),function(e){e.dispose()}),i.plugins.removeAll(),i.datasources.removeAll(),i.panes.removeAll()},this.loadDashboard=function(e,t){n.showLoadingIndicator(!0),i.deserialize(e,function(){n.showLoadingIndicator(!1),_.isFunction(t)&&t(),freeboard.emit("dashboard_loaded")})},this.loadDashboardFromLocalFile=function(){if(window.File&&window.FileReader&&window.FileList&&window.Blob){var e=document.createElement("input");e.type="file",$(e).on("change",function(e){var t=e.target.files;if(t&&t.length>0){var n=t[0],a=new FileReader;a.addEventListener("load",function(e){var t=e.target,n=JSON.parse(t.result);i.loadDashboard(n),i.setEditing(!1)}),a.readAsText(n)}}),$(e).trigger("click")}else alert("Unable to load a file in this browser.")},this.saveDashboard=function(){var e="application/octet-stream",t=document.createElement("a"),n=new Blob([JSON.stringify(i.serialize())],{type:e});document.body.appendChild(t),t.href=window.URL.createObjectURL(n),t.download="dashboard.json",t.target="_self",t.click()},this.addDatasource=function(e){i.datasources.push(e)},this.deleteDatasource=function(e){delete i.datasourceData[e.name()],e.dispose(),i.datasources.remove(e)},this.createPane=function(){var e=new PaneModel(i,t);i.addPane(e)},this.addGridColumnLeft=function(){n.addGridColumnLeft()},this.addGridColumnRight=function(){n.addGridColumnRight()},this.subGridColumnLeft=function(){n.subGridColumnLeft()},this.subGridColumnRight=function(){n.subGridColumnRight()},this.addPane=function(e){i.panes.push(e)},this.deletePane=function(e){e.dispose(),i.panes.remove(e)},this.deleteWidget=function(e){ko.utils.arrayForEach(i.panes(),function(t){t.widgets.remove(e)}),e.dispose()},this.setEditing=function(e,t){if(i.allow_edit()||!e){i.isEditing(e),_.isUndefined(t)&&(t=!0);var a=t?250:0,s=$("#admin-bar").outerHeight();e?($("#toggle-header-icon").addClass("icon-chevron-up").removeClass("icon-wrench"),$(".gridster .gs_w").css({cursor:"pointer"}),$("#main-header").animate({top:"0px"},a),$("#board-content").animate({top:s+20+"px"},a),$("#main-header").data().shown=!0,n.attachWidgetEditIcons($(".sub-section")),n.enableGrid()):($("#toggle-header-icon").addClass("icon-wrench").removeClass("icon-chevron-up"),$(".gridster .gs_w").css({cursor:"default"}),$("#main-header").animate({top:"-"+s+"px"},a),$("#board-content").animate({top:"20"},a),$("#main-header").data().shown=!1,$(".sub-section").unbind(),n.disableGrid()),n.showPaneEditIcons(e,t)}},this.toggleEditing=function(){var e=!i.isEditing();i.setEditing(e)}}function FreeboardUI(){function e(e){var t=a(),n=function(){};e&&(n=function(){var e=this,n=ko.dataFor(e),i=v(n);$(e).attr("data-sizex",Math.min(n.col_width(),t,m.cols)).attr("data-row",i.row).attr("data-col",i.col),n.processSizeChange()}),s(Math.min(t,k)),o(n),i()}function t(e){var t=m.cols+1;s(t)&&o(function(){var t,n=this,i=ko.dataFor(n),a=m.cols>1?m.cols-1:1,s=i.col[a],o=i.row[a];if(e){leftPreviewCol=!0;var r=m.cols>s?s+1:m.cols;t={row:o,col:r}}else rightPreviewCol=!0,t={row:o,col:s};$(n).attr("data-sizex",Math.min(i.col_width(),m.cols)).attr("data-row",t.row).attr("data-col",t.col)}),i(),k=m.cols}function n(e){var t=m.cols-1;s(t)&&o(function(){var t,n=this,i=ko.dataFor(n),a=m.cols+1,s=i.col[a],o=i.row[a];if(e){var r=s>1?s-1:1;t={row:o,col:r}}else{var r=m.cols>=s?s:m.cols;t={row:o,col:r}}$(n).attr("data-sizex",Math.min(i.col_width(),m.cols)).attr("data-row",t.row).attr("data-col",t.col)}),i(),k=m.cols}function i(){var e=$(".column-tool"),t=$("#board-content").width(),n=Math.floor(t/C);y>=m.cols?e.addClass("min"):e.removeClass("min"),m.cols>=n?e.addClass("max"):e.removeClass("max")}function a(){var e=$("#board-content").width();return Math.floor(e/C)}function s(e){(void 0===e||y>e)&&(e=y);var t=a();e>t&&(e=t);var n=C*e+e;return $(".responsive-column-width").css("max-width",n),e===m.cols?!1:!0}function o(e){var t=m.$el;t.find("> li").unbind().removeData(),$(".responsive-column-width").css("width",""),m.generate_grid_and_stylesheet(),t.find("> li").each(e),m.init(),$(".responsive-column-width").css("width",m.cols*b+2*m.cols*w)}function r(){return k}function d(e){k=Math.max(y,e)}function c(e,t,n){var i=v(t),a=i.col,s=i.row,o=Number(t.width()),r=Number(t.getCalculatedHeight());m.add_widget(e,o,r,a,s),n&&f(!0),u(t,s,a),$(e).attrchange({trackValues:!0,callback:function(e){"data-row"==e.attributeName?u(t,Number(e.newValue),void 0):"data-col"==e.attributeName&&u(t,void 0,Number(e.newValue))}})}function l(e,t){var n=t.getCalculatedHeight(),i=Number($(e).attr("data-sizey")),a=Number($(e).attr("data-sizex"));(n!=i||t.col_width()!=a)&&m.resize_widget($(e),t.col_width(),n,function(){m.set_dom_grid_height()})}function u(e,t,n){var i=m.cols;_.isUndefined(t)||(e.row[i]=t),_.isUndefined(n)||(e.col[i]=n)}function p(e){e?x.fadeOut(0).appendTo("body").fadeIn(500):x.fadeOut(500).remove()}function f(e,t){_.isUndefined(t)&&(t=!0);var n=t?250:0;e?($(".pane-tools").fadeIn(n),$("#column-tools").fadeIn(n)):($(".pane-tools").fadeOut(n),$("#column-tools").fadeOut(n))}function h(e){$(e).hover(function(){g(this,!0)},function(){g(this,!1)})}function g(e,t){t?$(e).find(".sub-section-tools").fadeIn(250):$(e).find(".sub-section-tools").fadeOut(250)}function v(e){var t=m.cols;if(_.isNumber(e.row)&&_.isNumber(e.col)){var n={};n[t]=e.row,e.row=n,n={},n[t]=e.col,e.col=n}var i=1,a=1e3;for(var s in e.col){if(s==t)return{row:e.row[s],col:e.col[s]};if(e.col[s]>t)i=t;else{var o=t-s;a>o&&(i=s,a=o)}}return i in e.col&&i in e.row?{row:e.row[i],col:e.col[i]}:{row:1,col:i}}var m,w=10,b=300,y=3,C=w+b+w,k=y,x=$('
            ');return ko.bindingHandlers.grid={init:function(t){m=$(t).gridster({widget_margins:[w,w],widget_base_dimensions:[b,10],resize:{enabled:!1,axes:"x"}}).data("gridster"),e(!1),m.disable()}},{showLoadingIndicator:function(e){p(e)},showPaneEditIcons:function(e,t){f(e,t)},attachWidgetEditIcons:function(e){h(e)},getPositionForScreenSize:function(e){return v(e)},processResize:function(t){e(t)},disableGrid:function(){m.disable()},enableGrid:function(){m.enable()},addPane:function(e,t,n){c(e,t,n)},updatePane:function(e,t){l(e,t)},removePane:function(e){m.remove_widget(e)},removeAllPanes:function(){m.remove_all_widgets()},addGridColumnLeft:function(){t(!0)},addGridColumnRight:function(){t(!1)},subGridColumnLeft:function(){n(!0)},subGridColumnRight:function(){n(!1)},getUserColumns:function(){return r()},setUserColumns:function(e){d(e)}}}function PaneModel(e,t){var n=this;this.title=ko.observable(),this.width=ko.observable(1),this.row={},this.col={},this.col_width=ko.observable(1),this.col_width.subscribe(function(){n.processSizeChange()}),this.widgets=ko.observableArray(),this.addWidget=function(e){this.widgets.push(e)},this.widgetCanMoveUp=function(e){return n.widgets.indexOf(e)>=1},this.widgetCanMoveDown=function(e){var t=n.widgets.indexOf(e);return n.widgets().length-1>t},this.moveWidgetUp=function(e){if(n.widgetCanMoveUp(e)){var t=n.widgets.indexOf(e),i=n.widgets();n.widgets.splice(t-1,2,i[t],i[t-1])}},this.moveWidgetDown=function(e){if(n.widgetCanMoveDown(e)){var t=n.widgets.indexOf(e),i=n.widgets();n.widgets.splice(t,2,i[t+1],i[t])}},this.processSizeChange=function(){setTimeout(function(){_.each(n.widgets(),function(e){e.processSizeChange()})},1e3)},this.getCalculatedHeight=function(){var e=_.reduce(n.widgets(),function(e,t){return e+t.height()},0);e*=6,e+=3,e*=10;var t=Math.ceil((e+20)/30);return Math.max(4,t)},this.serialize=function(){var e=[];return _.each(n.widgets(),function(t){e.push(t.serialize())}),{title:n.title(),width:n.width(),row:n.row,col:n.col,col_width:n.col_width(),widgets:e}},this.deserialize=function(i){n.title(i.title),n.width(i.width),n.row=i.row,n.col=i.col,n.col_width(i.col_width||1),_.each(i.widgets,function(i){var a=new WidgetModel(e,t);a.deserialize(i),n.widgets.push(a)})},this.dispose=function(){_.each(n.widgets(),function(e){e.dispose()})}}function WidgetModel(e,t){function n(){_.isUndefined(i.widgetInstance)||(_.isFunction(i.widgetInstance.onDispose)&&i.widgetInstance.onDispose(),i.widgetInstance=void 0)}var i=this;this.datasourceRefreshNotifications={},this.calculatedSettingScripts={},this.title=ko.observable(),this.fillSize=ko.observable(!1),this.type=ko.observable(),this.type.subscribe(function(e){function a(){s.newInstance(i.settings(),function(e){i.fillSize(s.fill_size===!0),i.widgetInstance=e,i.shouldRender(!0),i._heightUpdate.valueHasMutated()})}if(n(),e in t&&_.isFunction(t[e].newInstance)){var s=t[e];s.external_scripts?head.js(s.external_scripts.slice(0),a):a()}}),this.settings=ko.observable({}),this.settings.subscribe(function(e){!_.isUndefined(i.widgetInstance)&&_.isFunction(i.widgetInstance.onSettingsChanged)&&i.widgetInstance.onSettingsChanged(e),i.updateCalculatedSettings(),i._heightUpdate.valueHasMutated()}),this.processDatasourceUpdate=function(e){var t=i.datasourceRefreshNotifications[e];_.isArray(t)&&_.each(t,function(e){i.processCalculatedSetting(e)})},this.callValueFunction=function(t){return t.call(void 0,e.datasourceData)},this.processSizeChange=function(){!_.isUndefined(i.widgetInstance)&&_.isFunction(i.widgetInstance.onSizeChanged)&&i.widgetInstance.onSizeChanged()},this.processCalculatedSetting=function(e){if(_.isFunction(i.calculatedSettingScripts[e])){var t=void 0;try{t=i.callValueFunction(i.calculatedSettingScripts[e])}catch(n){var a=i.settings()[e];n instanceof ReferenceError&&/^\w+$/.test(a)&&(t=a)}if(!_.isUndefined(i.widgetInstance)&&_.isFunction(i.widgetInstance.onCalculatedValueChanged)&&!_.isUndefined(t))try{i.widgetInstance.onCalculatedValueChanged(e,t)}catch(n){console.log(""+n)}}},this.updateCalculatedSettings=function(){if(i.datasourceRefreshNotifications={},i.calculatedSettingScripts={},!_.isUndefined(i.type())){var e=t[i.type()].settings,n=RegExp("datasources.([\\w_-]+)|datasources\\[['\"]([^'\"]+)","g"),a=i.settings();_.each(e,function(e){if("calculated"==e.type){var t=a[e.name];if(!_.isUndefined(t)){_.isArray(t)&&(t="["+t.join(",")+"]"),1>=(t.match(/;/g)||[]).length&&-1==t.indexOf("return")&&(t="return "+t);var s;try{s=Function("datasources",t)}catch(o){var r=a[e.name].replace(/"/g,'\\"').replace(/[\r\n]/g," \\\n");s=Function("datasources",'return "'+r+'";')}i.calculatedSettingScripts[e.name]=s,i.processCalculatedSetting(e.name);for(var d;d=n.exec(t);){var c=d[1]||d[2],l=i.datasourceRefreshNotifications[c];_.isUndefined(l)&&(l=[],i.datasourceRefreshNotifications[c]=l),-1==_.indexOf(l,e.name)&&l.push(e.name)}}}})}},this._heightUpdate=ko.observable(),this.height=ko.computed({read:function(){return i._heightUpdate(),!_.isUndefined(i.widgetInstance)&&_.isFunction(i.widgetInstance.getHeight)?i.widgetInstance.getHeight():1}}),this.shouldRender=ko.observable(!1),this.render=function(e){i.shouldRender(!1),!_.isUndefined(i.widgetInstance)&&_.isFunction(i.widgetInstance.render)&&(i.widgetInstance.render(e),i.updateCalculatedSettings())},this.dispose=function(){},this.serialize=function(){return{title:i.title(),type:i.type(),settings:i.settings()}},this.deserialize=function(e){i.title(e.title),i.settings(e.settings),i.type(e.type)}}DatasourceModel=function(e,t){function n(){_.isUndefined(i.datasourceInstance)||(_.isFunction(i.datasourceInstance.onDispose)&&i.datasourceInstance.onDispose(),i.datasourceInstance=void 0)}var i=this;this.name=ko.observable(),this.latestData=ko.observable(),this.settings=ko.observable({}),this.settings.subscribe(function(e){!_.isUndefined(i.datasourceInstance)&&_.isFunction(i.datasourceInstance.onSettingsChanged)&&i.datasourceInstance.onSettingsChanged(e)}),this.updateCallback=function(t){e.processDatasourceUpdate(i,t),i.latestData(t);var n=new Date;i.last_updated(n.toLocaleTimeString())},this.type=ko.observable(),this.type.subscribe(function(e){function a(){s.newInstance(i.settings(),function(e){i.datasourceInstance=e,e.updateNow()},i.updateCallback)}if(n(),e in t&&_.isFunction(t[e].newInstance)){var s=t[e];s.external_scripts?head.js(s.external_scripts.slice(0),a):a()}}),this.last_updated=ko.observable("never"),this.last_error=ko.observable(),this.serialize=function(){return{name:i.name(),type:i.type(),settings:i.settings()}},this.deserialize=function(e){i.settings(e.settings),i.name(e.name),i.type(e.type)},this.getDataRepresentation=function(e){var t=Function("data","return "+e+";");return t.call(void 0,i.latestData())},this.updateNow=function(){!_.isUndefined(i.datasourceInstance)&&_.isFunction(i.datasourceInstance.updateNow)&&i.datasourceInstance.updateNow()},this.dispose=function(){n()}},DeveloperConsole=function(e){function t(){function t(e){var t=$(""),i=$('
              '),a=$(''),s=$('
            • ').click(function(){n=_.without(n,a),t.remove()});n.push(a),e&&a.val(e),i.append(s),o.append(t.append($("").append(a)).append($('').append(i)))}var n=[],i=$("
              "),a=$('
              ADD
              '),s=$('
              ');s.append($('Plugin Script URL'));var o=$("");s.append(o),i.append($("

              Here you can add references to other scripts to load datasource or widget plugins.

              ")).append(s).append(a).append('

              To learn how to build plugins for freeboard, please visit http://freeboard.github.io/freeboard/docs/plugin_example.html

              '),_.each(e.plugins(),function(e){t(e)}),a.click(function(){t()}),new DialogBox(i,"Developer Console","OK",null,function(){_.each(e.plugins(),function(e){$('script[src^="'+e+'"]').remove()}),e.plugins.removeAll(),_.each(n,function(t){var n=t.val();n&&n.length>0&&(e.addPluginSource(n),head.js(n+"?"+Date.now()))})})}return{showDeveloperConsole:function(){t()}}},JSEditor=function(){function e(e){n=e}function t(e,t){var n='// Example: Convert temp from C to F and truncate to 2 decimal places.\n// return (datasources["MyDatasource"].sensor.tempInF * 1.8 + 32).toFixed(2);';e||(e=n);var i=$('
              '),a=$('
              '),s=$(''),o=$('
              This javascript will be re-evaluated any time a datasource referenced here is updated, and the value you return will be displayed in the widget. You can assume this javascript is wrapped in a function of the form function(datasources) where datasources is a collection of javascript objects (keyed by their name) corresponding to the most current data in a datasource.
              ');i.append([o,a,s]),$("body").append(i);var r=CodeMirror(a.get(0),{value:e,mode:"javascript",theme:"ambiance",indentUnit:4,lineNumbers:!0,matchBrackets:!0,autoCloseBrackets:!0}),d=$('Close').click(function(){if(t){var e=r.getValue();e===n&&(e=""),t(e),i.remove()}});s.append(d)}var n="";return{displayJSEditor:function(e,n){t(e,n)},setAssetRoot:function(t){e(t)}}},PluginEditor=function(e,t){function n(e,t){var n=$('
              ').html(t);$("#setting-value-container-"+e).append(n)}function i(){$("#setting-row-instance-name").length?$("#setting-row-instance-name").nextAll().remove():$("#setting-row-plugin-types").nextAll().remove()}function a(e){return!isNaN(parseFloat(e))&&isFinite(e)}function s(n,i,a,s,o){var r=$("");a.multi_input?r.change(function(){var e=[];$(n).find("textarea").each(function(){var t=$(this).val();t&&(e=e.concat(t))}),i.settings[a.name]=e}):r.change(function(){i.settings[a.name]=$(this).val()}),s&&r.val(s),t.createValueEditor(r);var d=$('
                '),c=$('
                ');c.append(r).append(d);var l=$('
              • ').mousedown(function(e){e.preventDefault(),$(r).val("").focus().insertAtCaret('datasources["').trigger("freeboard-eval")});d.append(l);var u=$('
              • ').mousedown(function(t){t.preventDefault(),e.displayJSEditor(r.val(),function(e){r.val(e),r.change()})});if(d.append(u),o){var p=$('
              • ').mousedown(function(e){e.preventDefault(),c.remove(),$(n).find("textarea:first").change()});d.prepend(p)}$(n).append(c)}function o(e,t,o,r,d){function c(e,t){var n=$('
                ').appendTo(f);return n.append('
                "),$('
                ').appendTo(n)}function l(e){_.each(e,function(e){function t(){p.settings[e.name].length>0?l.show():l.hide()}function n(n){var i=$("").appendTo(f),a={};_.isArray(p.settings[e.name])||(p.settings[e.name]=[]),p.settings[e.name].push(a),_.each(e.settings,function(e){var t=$("").appendTo(i),s="";_.isUndefined(n[e.name])||(s=n[e.name]),a[e.name]=s,$('').appendTo(t).val(s).change(function(){a[e.name]=$(this).val()})}),i.append($('').append($('
                  ').append($("
                • ").append($('').click(function(){var n=p.settings[e.name].indexOf(a);-1!=n&&(p.settings[e.name].splice(n,1),i.remove(),t())}))))),o.scrollTop(o[0].scrollHeight),t()}!_.isUndefined(e.default_value)&&_.isUndefined(r[e.name])&&(r[e.name]=e.default_value);var i=e.name;_.isUndefined(e.display_name)||(i=e.display_name);var a=c(e.name,i);switch(e.type){case"array":var o=$('
                  ').appendTo(a),d=$('
                  ').appendTo(o),l=$("").hide().appendTo(d),u=$("").appendTo(l),f=$("").appendTo(d),h=[];_.each(e.settings,function(e){var t=e.name;_.isUndefined(e.display_name)||(t=e.display_name),$(""+t+"").appendTo(u)}),e.name in r&&(h=r[e.name]),$('
                  ADD
                  ').appendTo(a).click(function(){var t={};_.each(e.settings,function(e){t[e.name]=""}),n(t)}),_.each(h,function(e){n(e)});break;case"boolean":p.settings[e.name]=r[e.name];var g=$('
                  ').appendTo(a),v=$('').prependTo(g).change(function(){p.settings[e.name]=this.checked});e.name in r&&v.prop("checked",r[e.name]);break;case"option":var m=r[e.name],v=$("").appendTo($('
                  ').appendTo(a)).change(function(){p.settings[e.name]=$(this).val()});_.each(e.options,function(e){var t,n;_.isObject(e)?(t=e.name,n=e.value):t=e,_.isUndefined(n)&&(n=t),_.isUndefined(m)&&(m=n),$("").text(t).attr("value",n).appendTo(v)}),p.settings[e.name]=m,e.name in r&&v.val(r[e.name]);break;default:if(p.settings[e.name]=r[e.name],"calculated"==e.type){if(e.name in r){var w=r[e.name];if(e.multi_input&&_.isArray(w))for(var b=!1,y=0;w.length>y;y++)s(a,p,e,w[y],b),b=!0;else s(a,p,e,w,!1)}else s(a,p,e,null,!1);if(e.multi_input){var C=$('
                  ').mousedown(function(t){t.preventDefault(),s(a,p,e,null,!0)});$(a).siblings(".form-label").append(C)}}else{var v=$('').appendTo(a).change(function(){p.settings[e.name]="number"==e.type?Number($(this).val()):$(this).val()});e.name in r&&v.val(r[e.name])}}_.isUndefined(e.suffix)||a.append($('
                  '+e.suffix+"
                  ")),_.isUndefined(e.description)||a.append($('
                  '+e.description+"
                  "))})}var u,p={type:o,settings:{}},f=$("
                  "),h=$('
                  ').hide();f.append(h),new DialogBox(f,e,"Save","Cancel",function(){$(".validation-error").remove();for(var e=0;u.settings.length>e;e++){var t=u.settings[e];if(t.required&&(_.isUndefined(p.settings[t.name])||""==p.settings[t.name]))return n(t.name,"This is required."),!0;if("number"==t.type&&!a(p.settings[t.name]))return n(t.name,"Must be a number."),!0}_.isFunction(d)&&d(p)});var g,v=_.keys(t);if(v.length>1){var m=c("plugin-types","Type");g=$("").appendTo($('
                  ').appendTo(m)),g.append($("").attr("value","undefined")),_.each(t,function(e){g.append($("").text(e.display_name).attr("value",e.type_name))}),g.change(function(){p.type=$(this).val(),p.settings={},i(),u=t[g.val()],_.isUndefined(u)?($("#setting-row-instance-name").hide(),$("#dialog-ok").hide()):($("#setting-row-instance-name").show(),u.description&&u.description.length>0?h.html(u.description).show():h.hide(),$("#dialog-ok").show(),l(u.settings))})}else 1==v.length&&(u=t[v[0]],p.type=u.type_name,p.settings={},l(u.settings));g&&(_.isUndefined(o)?($("#setting-row-instance-name").hide(),$("#dialog-ok").hide()):($("#dialog-ok").show(),g.val(o).trigger("change")))}return{createPluginEditor:function(e,t,n,i,a,s){o(e,t,n,i,a,s)}}},ValueEditor=function(e){function t(e,t){return _.isArray(e)||_.isObject(e)?!0:n(e,t)}function n(e,t){switch(t){case h.ANY:return!0;case h.ARRAY:return _.isArray(e);case h.OBJECT:return _.isObject(e);case h.STRING:return _.isString(e);case h.NUMBER:return _.isNumber(e);case h.BOOLEAN:return _.isBoolean(e)}}function i(e,t){$(e).parent().find(".validation-error").remove(),n(f,t)||$(e).parent().append("
                  This field expects an expression that evaluates to type "+t+".
                  ")}function a(e){var t=($(e).val().match(/\n/g)||[]).length,n=Math.min(200,20*(t+1));$(e).css({height:n+"px"})}function s(e,n,i){var a=c.exec(e),s=[];if(a)if(""==a[1])_.each(n,function(e){s.push({value:e.name(),entity:void 0,precede_char:"",follow_char:'"]'})});else if(""!=a[1]&&_.isUndefined(a[2])){var o=a[1];_.each(n,function(e){var t=e.name();t!=o&&0==t.indexOf(o)&&s.push({value:t,entity:void 0,precede_char:"",follow_char:'"]'})})}else{var r=_.find(n,function(e){return e.name()===a[1]});if(!_.isUndefined(r)){var d="data",l="";if(!_.isUndefined(a[2])){var u=a[3].lastIndexOf("]")+1;d+=a[3].substring(0,u),l=a[3].substring(u,a[3].length),l=l.replace(/^[\[\"]*/,""),l=l.replace(/[\"\]]*$/,"")}var h=r.getDataRepresentation(d);if(f=h,_.isArray(h)){for(var g=0;h.length>g;g++)if(0==(""+g).indexOf(l)){var v=h[g];t(v,i)&&s.push({value:g,entity:v,precede_char:"[",follow_char:"]",preview:""+v})}}else _.isObject(h)&&_.each(h,function(e,n){0==n.indexOf(l)&&t(e,i)&&s.push({value:n,entity:e,precede_char:'["',follow_char:'"]'})})}}p=s}function o(t,n){var a=$(t).val().substring(0,$(t).getCaretPosition());if(a=a.replace(String.fromCharCode(160)," "),s(a,e.datasources(),n),p.length>0){l||(l=$('
                    ').insertAfter(t).width($(t).outerWidth()-2).css("left",$(t).position().left).css("top",$(t).position().top+$(t).outerHeight()-1)),l.empty(),l.scrollTop(0);var o=!0;u=0,_.each(p,function(e,n){var i=r(t,a,e,n);o&&($(i).addClass("selected"),o=!1)})}else i(t,n),$(t).next("ul#value-selector").remove(),l=null,u=-1}function r(e,t,n,i){var a=n.value;n.preview&&(a=a+""+n.preview+"");var s=$("
                  • "+a+"
                  • ").appendTo(l).mouseenter(function(){$(this).trigger("freeboard-select")}).mousedown(function(e){$(this).trigger("freeboard-insertValue"),e.preventDefault()}).data("freeboard-optionIndex",i).data("freeboard-optionValue",n.value).bind("freeboard-insertValue",function(){var i=n.value;i=n.precede_char+i+n.follow_char;var a=t.lastIndexOf("]");-1!=a?$(e).replaceTextAt(a+1,$(e).val().length,i):$(e).insertAtCaret(i),f=n.entity,$(e).triggerHandler("mouseup")}).bind("freeboard-select",function(){$(this).parent().find("li.selected").removeClass("selected"),$(this).addClass("selected"),u=$(this).data("freeboard-optionIndex")});return s}function d(e,t){$(e).addClass("calculated-value-input").bind("keyup mouseup freeboard-eval",function(n){return!l||"keyup"!=n.type||38!=n.keyCode&&40!=n.keyCode&&13!=n.keyCode?(o(e,t),void 0):(n.preventDefault(),void 0)}).focus(function(){$(e).css({"z-index":3001}),a(e)}).focusout(function(){i(e,t),$(e).css({height:"","z-index":3e3}),$(e).next("ul#value-selector").remove(),l=null,u=-1}).bind("keydown",function(e){if(l)if(38==e.keyCode||40==e.keyCode){e.preventDefault();var t=$(l).find("li");38==e.keyCode?u--:40==e.keyCode&&u++,0>u?u=t.size()-1:u>=t.size()&&(u=0);var n=$(t).eq(u);n.trigger("freeboard-select"),$(l).scrollTop($(n).position().top)}else 13==e.keyCode&&(e.preventDefault(),-1!=u&&$(l).find("li").eq(u).trigger("freeboard-insertValue"))})}var c=RegExp('.*datasources\\["([^"]*)("\\])?(.*)$'),l=null,u=0,p=[],f=null,h={ANY:"any",ARRAY:"array",OBJECT:"object",STRING:"string",NUMBER:"number",BOOLEAN:"boolean"};return{createValueEditor:function(e,t){t?d(e,t):d(e,h.ANY)},EXPECTED_TYPE:h}},function(e){function t(){var e=document.createElement("p"),t=!1;if(e.addEventListener)e.addEventListener("DOMAttrModified",function(){t=!0},!1);else{if(!e.attachEvent)return!1;e.attachEvent("onDOMAttrModified",function(){t=!0})}return e.setAttribute("id","target"),t}function n(t,n){if(t){var i=this.data("attr-old-value");if(n.attributeName.indexOf("style")>=0){i.style||(i.style={});var a=n.attributeName.split(".");n.attributeName=a[0],n.oldValue=i.style[a[1]],n.newValue=a[1]+":"+this.prop("style")[e.camelCase(a[1])],i.style[a[1]]=n.newValue}else n.oldValue=i[n.attributeName],n.newValue=this.attr(n.attributeName),i[n.attributeName]=n.newValue;this.data("attr-old-value",i)}}var i=window.MutationObserver||window.WebKitMutationObserver;e.fn.attrchange=function(a){var s={trackValues:!1,callback:e.noop};if("function"==typeof a?s.callback=a:e.extend(s,a),s.trackValues&&e(this).each(function(t,n){for(var i,a={},t=0,s=n.attributes,o=s.length;o>t;t++)i=s.item(t),a[i.nodeName]=i.value;e(this).data("attr-old-value",a)}),i){var o={subtree:!1,attributes:!0,attributeOldValue:s.trackValues},r=new i(function(t){t.forEach(function(t){var n=t.target;s.trackValues&&(t.newValue=e(n).attr(t.attributeName)),s.callback.call(n,t)})});return this.each(function(){r.observe(this,o)})}return t()?this.on("DOMAttrModified",function(e){e.originalEvent&&(e=e.originalEvent),e.attributeName=e.attrName,e.oldValue=e.prevValue,s.callback.call(this,e)}):"onpropertychange"in document.body?this.on("propertychange",function(t){t.attributeName=window.event.propertyName,n.call(e(this),s.trackValues,t),s.callback.call(this,t)}):this}}(jQuery),function(e){e.eventEmitter={_JQInit:function(){this._JQ=e(this)},emit:function(e,t){!this._JQ&&this._JQInit(),this._JQ.trigger(e,t)},once:function(e,t){!this._JQ&&this._JQInit(),this._JQ.one(e,t)},on:function(e,t){!this._JQ&&this._JQInit(),this._JQ.bind(e,t)},off:function(e,t){!this._JQ&&this._JQInit(),this._JQ.unbind(e,t)}}}(jQuery);var freeboard=function(){function e(e){e=e.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var t=RegExp("[\\?&]"+e+"=([^&#]*)"),n=t.exec(location.search);return null==n?"":decodeURIComponent(n[1].replace(/\+/g," "))}var t={},n={},i=new FreeboardUI,a=new FreeboardModel(t,n,i),s=new JSEditor,o=new ValueEditor(a),r=new PluginEditor(s,o),d=new DeveloperConsole(a),c={values:{"font-family":'"HelveticaNeue-UltraLight", "Helvetica Neue Ultra Light", "Helvetica Neue", sans-serif',color:"#d3d4d4","font-weight":100}};return ko.bindingHandlers.pluginEditor={init:function(e,s,o,d){var c=ko.unwrap(s()),l={},u=void 0,p="";"datasource"==c.type?(l=t,p="Datasource"):"widget"==c.type?(l=n,p="Widget"):"pane"==c.type&&(p="Pane"),$(e).click(function(){if("delete"==c.operation){var s=$("

                    Are you sure you want to delete this "+p+"?

                    ");new DialogBox(s,"Confirm Delete","Yes","No",function(){"datasource"==c.type?a.deleteDatasource(d):"widget"==c.type?a.deleteWidget(d):"pane"==c.type&&a.deletePane(d)})}else{var o=void 0;"datasource"==c.type?"add"==c.operation?u={}:(o=d.type(),u=d.settings(),u.name=d.name()):"widget"==c.type?"add"==c.operation?u={}:(o=d.type(),u=d.settings()):"pane"==c.type&&(u={},"edit"==c.operation&&(u.title=d.title(),u.col_width=d.col_width()),l={settings:{settings:[{name:"title",display_name:"Title",type:"text"},{name:"col_width",display_name:"Columns",type:"number",default_value:1,required:!0}]}}),r.createPluginEditor(p,l,o,u,function(s){if("add"==c.operation){if("datasource"==c.type){var o=new DatasourceModel(a,t);a.addDatasource(o),o.name(s.settings.name),delete s.settings.name,o.settings(s.settings),o.type(s.type)}else if("widget"==c.type){var o=new WidgetModel(a,n);o.settings(s.settings),o.type(s.type),d.widgets.push(o),i.attachWidgetEditIcons(e) -}}else"edit"==c.operation&&("pane"==c.type?(d.title(s.settings.title),d.col_width(s.settings.col_width),i.processResize(!1)):("datasource"==c.type&&(d.name(s.settings.name),delete s.settings.name),d.type(s.type),d.settings(s.settings)))})}})}},ko.virtualElements.allowedBindings.datasourceTypeSettings=!0,ko.bindingHandlers.datasourceTypeSettings={update:function(e,t,n,i,a){processPluginSettings(e,t,n,i,a)}},ko.bindingHandlers.pane={init:function(e,t,n,s,o){a.isEditing()&&$(e).css({cursor:"pointer"}),i.addPane(e,s,o.$root.isEditing())},update:function(e,t,n,s){-1==a.panes.indexOf(s)&&i.removePane(e),i.updatePane(e,s)}},ko.bindingHandlers.widget={init:function(e){a.isEditing()&&i.attachWidgetEditIcons($(e).parent())},update:function(e,t,n,i){i.shouldRender()&&($(e).empty(),i.render(e))}},$(function(){function e(){i.processResize(!0)}i.showLoadingIndicator(!0);var t;$(window).resize(function(){clearTimeout(t),t=setTimeout(e,500)})}),{initialize:function(t,n){ko.applyBindings(a);var s=e("load");""!=s?$.ajax({url:s,success:function(e){a.loadDashboard(e),_.isFunction(n)&&n()}}):(a.allow_edit(t),a.setEditing(t),i.showLoadingIndicator(!1),_.isFunction(n)&&n(),freeboard.emit("initialized"))},newDashboard:function(){a.loadDashboard({allow_edit:!0})},loadDashboard:function(e,t){a.loadDashboard(e,t)},serialize:function(){return a.serialize()},setEditing:function(e,t){a.setEditing(e,t)},isEditing:function(){return a.isEditing()},loadDatasourcePlugin:function(e){_.isUndefined(e.display_name)&&(e.display_name=e.type_name),e.settings.unshift({name:"name",display_name:"Name",type:"text",required:!0}),a.addPluginSource(e.source),t[e.type_name]=e,a._datasourceTypes.valueHasMutated()},resize:function(){i.processResize(!0)},loadWidgetPlugin:function(e){_.isUndefined(e.display_name)&&(e.display_name=e.type_name),a.addPluginSource(e.source),n[e.type_name]=e,a._widgetTypes.valueHasMutated()},setAssetRoot:function(e){s.setAssetRoot(e)},addStyle:function(e,t){var n=e+"{"+t+"}",i=$("style#fb-styles");0==i.length&&(i=$(''),$("head").append(i)),i[0].styleSheet?i[0].styleSheet.cssText+=n:i.text(i.text()+n)},showLoadingIndicator:function(e){i.showLoadingIndicator(e)},showDialog:function(e,t,n,i,a){new DialogBox(e,t,n,i,a)},getDatasourceSettings:function(e){var t=a.datasources(),n=_.find(t,function(t){return t.name()===e});return n?n.settings():null},setDatasourceSettings:function(e,t){var n=a.datasources(),i=_.find(n,function(t){return t.name()===e});if(!i)return console.log("Datasource not found"),void 0;var s=_.defaults(t,i.settings());i.settings(s)},getStyleString:function(e){var t="";return _.each(c[e],function(e,n){t=t+n+":"+e+";"}),t},getStyleObject:function(e){return c[e]},showDeveloperConsole:function(){d.showDeveloperConsole()}}}();$.extend(freeboard,jQuery.eventEmitter); \ No newline at end of file +function DialogBox(a,b,c,d,e){function f(){g.fadeOut(200,function(){$(this).remove()})}var g=$(''),h=$('');h.append('

                    '+b+"

                    "),$("
                    ").appendTo(h).append(a);var i=$("
                    ").appendTo(h);c&&$(''+c+"").appendTo(i).click(function(){var a=!1;_.isFunction(e)&&(a=e()),a||f()}),d&&$(''+d+"").appendTo(i).click(function(){f()}),g.append(h),$("body").append(g),g.fadeIn(200)}function FreeboardModel(a,b,c){var d=this,e=1;this.version=0,this.isEditing=ko.observable(!1),this.allow_edit=ko.observable(!1),this.allow_edit.subscribe(function(a){a?$("#main-header").show():$("#main-header").hide()}),this.header_image=ko.observable(),this.plugins=ko.observableArray(),this.datasources=ko.observableArray(),this.panes=ko.observableArray(),this.datasourceData={},this.processDatasourceUpdate=function(a,b){var c=a.name();d.datasourceData[c]=b,_.each(d.panes(),function(a){_.each(a.widgets(),function(a){a.processDatasourceUpdate(c)})})},this._datasourceTypes=ko.observable(),this.datasourceTypes=ko.computed({read:function(){d._datasourceTypes();var b=[];return _.each(a,function(a){var c=a.type_name,d=c;_.isUndefined(a.display_name)||(d=a.display_name),b.push({name:c,display_name:d})}),b}}),this._widgetTypes=ko.observable(),this.widgetTypes=ko.computed({read:function(){d._widgetTypes();var a=[];return _.each(b,function(b){var c=b.type_name,d=c;_.isUndefined(b.display_name)||(d=b.display_name),a.push({name:c,display_name:d})}),a}}),this.addPluginSource=function(a){a&&-1==d.plugins.indexOf(a)&&d.plugins.push(a)},this.serialize=function(){var a=[];_.each(d.panes(),function(b){a.push(b.serialize())});var b=[];return _.each(d.datasources(),function(a){b.push(a.serialize())}),{version:e,header_image:d.header_image(),allow_edit:d.allow_edit(),plugins:d.plugins(),panes:a,datasources:b,columns:c.getUserColumns()}},this.deserialize=function(e,f){function g(){c.setUserColumns(e.columns),d.allow_edit(_.isUndefined(e.allow_edit)?!0:e.allow_edit),d.version=e.version||0,d.header_image(e.header_image),_.each(e.datasources,function(b){var c=new DatasourceModel(d,a);c.deserialize(b),d.addDatasource(c)});var g=_.sortBy(e.panes,function(a){return c.getPositionForScreenSize(a).row});_.each(g,function(a){var c=new PaneModel(d,b);c.deserialize(a),d.panes.push(c)}),d.allow_edit()&&0==d.panes().length&&d.setEditing(!0),_.isFunction(f)&&f(),c.processResize(!0)}d.clearDashboard(),_.each(e.plugins,function(a){d.addPluginSource(a)}),_.isArray(e.plugins)&&e.plugins.length>0?head.js(e.plugins,function(){g()}):g()},this.clearDashboard=function(){c.removeAllPanes(),_.each(d.datasources(),function(a){a.dispose()}),_.each(d.panes(),function(a){a.dispose()}),d.plugins.removeAll(),d.datasources.removeAll(),d.panes.removeAll()},this.loadDashboard=function(a,b){c.showLoadingIndicator(!0),d.deserialize(a,function(){c.showLoadingIndicator(!1),_.isFunction(b)&&b(),freeboard.emit("dashboard_loaded")})},this.loadDashboardFromLocalFile=function(){if(window.File&&window.FileReader&&window.FileList&&window.Blob){var a=document.createElement("input");a.type="file",$(a).on("change",function(a){var b=a.target.files;if(b&&b.length>0){var c=b[0],e=new FileReader;e.addEventListener("load",function(a){var b=a.target,c=JSON.parse(b.result);d.loadDashboard(c),d.setEditing(!1)}),e.readAsText(c)}}),$(a).trigger("click")}else alert("Unable to load a file in this browser.")},this.saveDashboard=function(){var a="application/octet-stream",b=document.createElement("a"),c=new Blob([JSON.stringify(d.serialize())],{type:a});document.body.appendChild(b),b.href=window.URL.createObjectURL(c),b.download="dashboard.json",b.target="_self",b.click()},this.addDatasource=function(a){d.datasources.push(a)},this.deleteDatasource=function(a){delete d.datasourceData[a.name()],a.dispose(),d.datasources.remove(a)},this.createPane=function(){var a=new PaneModel(d,b);d.addPane(a)},this.addGridColumnLeft=function(){c.addGridColumnLeft()},this.addGridColumnRight=function(){c.addGridColumnRight()},this.subGridColumnLeft=function(){c.subGridColumnLeft()},this.subGridColumnRight=function(){c.subGridColumnRight()},this.addPane=function(a){d.panes.push(a)},this.deletePane=function(a){a.dispose(),d.panes.remove(a)},this.deleteWidget=function(a){ko.utils.arrayForEach(d.panes(),function(b){b.widgets.remove(a)}),a.dispose()},this.setEditing=function(a,b){if(d.allow_edit()||!a){d.isEditing(a),_.isUndefined(b)&&(b=!0);var e=b?250:0,f=$("#admin-bar").outerHeight();a?($("#toggle-header-icon").addClass("icon-chevron-up").removeClass("icon-wrench"),$(".gridster .gs_w").css({cursor:"pointer"}),$("#main-header").animate({top:"0px"},e),$("#board-content").animate({top:f+20+"px"},e),$("#main-header").data().shown=!0,c.attachWidgetEditIcons($(".sub-section")),c.enableGrid()):($("#toggle-header-icon").addClass("icon-wrench").removeClass("icon-chevron-up"),$(".gridster .gs_w").css({cursor:"default"}),$("#main-header").animate({top:"-"+f+"px"},e),$("#board-content").animate({top:"20"},e),$("#main-header").data().shown=!1,$(".sub-section").unbind(),c.disableGrid()),c.showPaneEditIcons(a,b)}},this.toggleEditing=function(){var a=!d.isEditing();d.setEditing(a)}}function FreeboardUI(){function a(a){var b=e(),c=function(){};a&&(c=function(){var a=this,c=ko.dataFor(a),d=q(c);$(a).attr("data-sizex",Math.min(c.col_width(),b,r.cols)).attr("data-row",d.row).attr("data-col",d.col),c.processSizeChange()}),f(Math.min(b,w)),g(c),d()}function b(a){var b=r.cols+1;f(b)&&g(function(){var b,c=this,d=ko.dataFor(c),e=r.cols>1?r.cols-1:1,f=d.col[e],g=d.row[e];if(a){leftPreviewCol=!0;var h=f1?f-1:1;b={row:g,col:h}}else{var h=f<=r.cols?f:r.cols;b={row:g,col:h}}$(c).attr("data-sizex",Math.min(d.col_width(),r.cols)).attr("data-row",b.row).attr("data-col",b.col)}),d(),w=r.cols}function d(){var a=$(".column-tool"),b=$("#board-content").width(),c=Math.floor(b/v);r.cols<=u?a.addClass("min"):a.removeClass("min"),r.cols>=c?a.addClass("max"):a.removeClass("max")}function e(){var a=$("#board-content").width();return Math.floor(a/v)}function f(a){(void 0===a||u>a)&&(a=u);var b=e();a>b&&(a=b);var c=v*a+a;return $(".responsive-column-width").css("max-width",c),a===r.cols?!1:!0}function g(a){var b=r.$el;b.find("> li").unbind().removeData(),$(".responsive-column-width").css("width",""),r.generate_grid_and_stylesheet(),b.find("> li").each(a),r.init(),$(".responsive-column-width").css("width",r.cols*t+r.cols*s*2)}function h(){return w}function i(a){w=Math.max(u,a)}function j(a,b,c){var d=q(b),e=d.col,f=d.row,g=Number(b.width()),h=Number(b.getCalculatedHeight());r.add_widget(a,g,h,e,f),c&&n(!0),l(b,f,e),$(a).attrchange({trackValues:!0,callback:function(a){"data-row"==a.attributeName?l(b,Number(a.newValue),void 0):"data-col"==a.attributeName&&l(b,void 0,Number(a.newValue))}})}function k(a,b){var c=b.getCalculatedHeight(),d=Number($(a).attr("data-sizey")),e=Number($(a).attr("data-sizex"));(c!=d||b.col_width()!=e)&&r.resize_widget($(a),b.col_width(),c,function(){r.set_dom_grid_height()})}function l(a,b,c){var d=r.cols;_.isUndefined(b)||(a.row[d]=b),_.isUndefined(c)||(a.col[d]=c)}function m(a){a?x.fadeOut(0).appendTo("body").fadeIn(500):x.fadeOut(500).remove()}function n(a,b){_.isUndefined(b)&&(b=!0);var c=b?250:0;a?($(".pane-tools").fadeIn(c),$("#column-tools").fadeIn(c)):($(".pane-tools").fadeOut(c),$("#column-tools").fadeOut(c))}function o(a){$(a).hover(function(){p(this,!0)},function(){p(this,!1)})}function p(a,b){b?$(a).find(".sub-section-tools").fadeIn(250):$(a).find(".sub-section-tools").fadeOut(250)}function q(a){var b=r.cols;if(_.isNumber(a.row)&&_.isNumber(a.col)){var c={};c[b]=a.row,a.row=c,c={},c[b]=a.col,a.col=c}var d=1,e=1e3;for(var f in a.col){if(f==b)return{row:a.row[f],col:a.col[f]};if(a.col[f]>b)d=b;else{var g=b-f;e>g&&(d=f,e=g)}}return d in a.col&&d in a.row?{row:a.row[d],col:a.col[d]}:{row:1,col:d}}var r,s=10,t=300,u=3,v=s+t+s,w=u,x=$('
                    ');return ko.bindingHandlers.grid={init:function(b){r=$(b).gridster({widget_margins:[s,s],widget_base_dimensions:[t,10],resize:{enabled:!1,axes:"x"}}).data("gridster"),a(!1),r.disable()}},{showLoadingIndicator:function(a){m(a)},showPaneEditIcons:function(a,b){n(a,b)},attachWidgetEditIcons:function(a){o(a)},getPositionForScreenSize:function(a){return q(a)},processResize:function(b){a(b)},disableGrid:function(){r.disable()},enableGrid:function(){r.enable()},addPane:function(a,b,c){j(a,b,c)},updatePane:function(a,b){k(a,b)},removePane:function(a){r.remove_widget(a)},removeAllPanes:function(){r.remove_all_widgets()},addGridColumnLeft:function(){b(!0)},addGridColumnRight:function(){b(!1)},subGridColumnLeft:function(){c(!0)},subGridColumnRight:function(){c(!1)},getUserColumns:function(){return h()},setUserColumns:function(a){i(a)}}}function PaneModel(a,b){var c=this;this.title=ko.observable(),this.width=ko.observable(1),this.row={},this.col={},this.col_width=ko.observable(1),this.col_width.subscribe(function(){c.processSizeChange()}),this.widgets=ko.observableArray(),this.addWidget=function(a){this.widgets.push(a)},this.widgetCanMoveUp=function(a){return c.widgets.indexOf(a)>=1},this.widgetCanMoveDown=function(a){var b=c.widgets.indexOf(a);return b"),d=$('
                      '),e=$(''),f=$('
                    • ').click(function(){c=_.without(c,e),b.remove()});c.push(e),a&&e.val(a),d.append(f),g.append(b.append($("").append(e)).append($('').append(d)))}var c=[],d=$("
                      "),e=$('
                      ADD
                      '),f=$('
                      ');f.append($('Plugin Script URL'));var g=$("");f.append(g),d.append($("

                      Here you can add references to other scripts to load datasource or widget plugins.

                      ")).append(f).append(e).append('

                      To learn how to build plugins for freeboard, please visit http://freeboard.github.io/freeboard/docs/plugin_example.html

                      '),_.each(a.plugins(),function(a){b(a)}),e.click(function(){b()}),new DialogBox(d,"Developer Console","OK",null,function(){_.each(a.plugins(),function(a){$('script[src^="'+a+'"]').remove()}),a.plugins.removeAll(),_.each(c,function(b){var c=b.val();c&&c.length>0&&(a.addPluginSource(c),head.js(c+"?"+Date.now()))})})}return{showDeveloperConsole:function(){b()}}},JSEditor=function(){function a(a){c=a}function b(a,b){var c='// Example: Convert temp from C to F and truncate to 2 decimal places.\n// return (datasources["MyDatasource"].sensor.tempInF * 1.8 + 32).toFixed(2);';a||(a=c);var d=$('
                      '),e=$('
                      '),f=$(''),g=$('
                      This javascript will be re-evaluated any time a datasource referenced here is updated, and the value you return will be displayed in the widget. You can assume this javascript is wrapped in a function of the form function(datasources) where datasources is a collection of javascript objects (keyed by their name) corresponding to the most current data in a datasource.
                      ');d.append([g,e,f]),$("body").append(d);var h=CodeMirror(e.get(0),{value:a,mode:"javascript",theme:"ambiance",indentUnit:4,lineNumbers:!0,matchBrackets:!0,autoCloseBrackets:!0}),i=$('Close').click(function(){if(b){var a=h.getValue();a===c&&(a=""),b(a),d.remove()}});f.append(i)}var c="";return{displayJSEditor:function(a,c){b(a,c)},setAssetRoot:function(b){a(b)}}},PluginEditor=function(a,b){function c(a,b){var c=$('
                      ').html(b);$("#setting-value-container-"+a).append(c)}function d(){$("#setting-row-instance-name").length?$("#setting-row-instance-name").nextAll().remove():$("#setting-row-plugin-types").nextAll().remove()}function e(a){return!isNaN(parseFloat(a))&&isFinite(a)}function f(c,d,e,f,g){var h=$("");h.change(e.multi_input?function(){var a=[];$(c).find("textarea").each(function(){var b=$(this).val();b&&(a=a.concat(b))}),d.settings[e.name]=a}:function(){d.settings[e.name]=$(this).val()}),f&&h.val(f),b.createValueEditor(h);var i=$('
                        '),j=$('
                        ');j.append(h).append(i);var k=$('
                      • ').mousedown(function(a){a.preventDefault(),$(h).val("").focus().insertAtCaret('datasources["').trigger("freeboard-eval")});i.append(k);var l=$('
                      • ').mousedown(function(b){b.preventDefault(),a.displayJSEditor(h.val(),function(a){h.val(a),h.change()})});if(i.append(l),g){var m=$('
                      • ').mousedown(function(a){a.preventDefault(),j.remove(),$(c).find("textarea:first").change()});i.prepend(m)}$(c).append(j)}function g(a,b,g,h,i){function j(a,b){var c=$('
                        ').appendTo(n);return c.append('
                        "),$('
                        ').appendTo(c)}function k(a){_.each(a,function(a){function b(){m.settings[a.name].length>0?k.show():k.hide()}function c(c){var d=$("").appendTo(n),e={};_.isArray(m.settings[a.name])||(m.settings[a.name]=[]),m.settings[a.name].push(e),_.each(a.settings,function(a){var b=$("").appendTo(d),f="";_.isUndefined(c[a.name])||(f=c[a.name]),e[a.name]=f,$('').appendTo(b).val(f).change(function(){e[a.name]=$(this).val()})}),d.append($('').append($('
                          ').append($("
                        • ").append($('').click(function(){var c=m.settings[a.name].indexOf(e);-1!=c&&(m.settings[a.name].splice(c,1),d.remove(),b())}))))),g.scrollTop(g[0].scrollHeight),b()}!_.isUndefined(a.default_value)&&_.isUndefined(h[a.name])&&(h[a.name]=a.default_value);var d=a.name;_.isUndefined(a.display_name)||(d=a.display_name);var e=j(a.name,d);switch(a.type){case"array":var g=$('
                          ').appendTo(e),i=$('
                          ').appendTo(g),k=$("").hide().appendTo(i),l=$("").appendTo(k),n=$("").appendTo(i),o=[];_.each(a.settings,function(a){var b=a.name;_.isUndefined(a.display_name)||(b=a.display_name),$(""+b+"").appendTo(l)}),a.name in h&&(o=h[a.name]),$('
                          ADD
                          ').appendTo(e).click(function(){var b={};_.each(a.settings,function(a){b[a.name]=""}),c(b)}),_.each(o,function(a){c(a)});break;case"boolean":m.settings[a.name]=h[a.name];var p=$('
                          ').appendTo(e),q=$('').prependTo(p).change(function(){m.settings[a.name]=this.checked});a.name in h&&q.prop("checked",h[a.name]);break;case"option":var r=h[a.name],q=$("").appendTo($('
                          ').appendTo(e)).change(function(){m.settings[a.name]=$(this).val()});_.each(a.options,function(a){var b,c;_.isObject(a)?(b=a.name,c=a.value):b=a,_.isUndefined(c)&&(c=b),_.isUndefined(r)&&(r=c),$("").text(b).attr("value",c).appendTo(q)}),m.settings[a.name]=r,a.name in h&&q.val(h[a.name]);break;default:if(m.settings[a.name]=h[a.name],"calculated"==a.type){if(a.name in h){var s=h[a.name];if(a.multi_input&&_.isArray(s))for(var t=!1,u=0;u
                        • ').mousedown(function(b){b.preventDefault(),f(e,m,a,null,!0)});$(e).siblings(".form-label").append(v)}}else{var q=$('').appendTo(e).change(function(){m.settings[a.name]="number"==a.type?Number($(this).val()):$(this).val()});a.name in h&&q.val(h[a.name])}}_.isUndefined(a.suffix)||e.append($('
                          '+a.suffix+"
                          ")),_.isUndefined(a.description)||e.append($('
                          '+a.description+"
                          "))})}var l,m={type:g,settings:{}},n=$("
                          "),o=$('
                          ').hide();n.append(o),new DialogBox(n,a,"Save","Cancel",function(){$(".validation-error").remove();for(var a=0;a1){var r=j("plugin-types","Type");p=$("").appendTo($('
                          ').appendTo(r)),p.append($("").attr("value","undefined")),_.each(b,function(a){p.append($("").text(a.display_name).attr("value",a.type_name))}),p.change(function(){m.type=$(this).val(),m.settings={},d(),l=b[p.val()],_.isUndefined(l)?($("#setting-row-instance-name").hide(),$("#dialog-ok").hide()):($("#setting-row-instance-name").show(),l.description&&l.description.length>0?o.html(l.description).show():o.hide(),$("#dialog-ok").show(),k(l.settings))})}else 1==q.length&&(l=b[q[0]],m.type=l.type_name,m.settings={},k(l.settings));p&&(_.isUndefined(g)?($("#setting-row-instance-name").hide(),$("#dialog-ok").hide()):($("#dialog-ok").show(),p.val(g).trigger("change")))}return{createPluginEditor:function(a,b,c,d,e,f){g(a,b,c,d,e,f)}}},ValueEditor=function(a){function b(a,b){return _.isArray(a)||_.isObject(a)?!0:c(a,b)}function c(a,b){switch(b){case o.ANY:return!0;case o.ARRAY:return _.isArray(a);case o.OBJECT:return _.isObject(a);case o.STRING:return _.isString(a);case o.NUMBER:return _.isNumber(a);case o.BOOLEAN:return _.isBoolean(a)}}function d(a,b){$(a).parent().find(".validation-error").remove(),c(n,b)||$(a).parent().append("
                          This field expects an expression that evaluates to type "+b+".
                          ")}function e(a){var b=($(a).val().match(/\n/g)||[]).length,c=Math.min(200,20*(b+1));$(a).css({height:c+"px"})}function f(a,c,d){var e=j.exec(a),f=[];if(e)if(""==e[1])_.each(c,function(a){f.push({value:a.name(),entity:void 0,precede_char:"",follow_char:'"]'})});else if(""!=e[1]&&_.isUndefined(e[2])){var g=e[1];_.each(c,function(a){var b=a.name();b!=g&&0==b.indexOf(g)&&f.push({value:b,entity:void 0,precede_char:"",follow_char:'"]'})})}else{var h=_.find(c,function(a){return a.name()===e[1]});if(!_.isUndefined(h)){var i="data",k="";if(!_.isUndefined(e[2])){var l=e[3].lastIndexOf("]")+1;i+=e[3].substring(0,l),k=e[3].substring(l,e[3].length),k=k.replace(/^[\[\"]*/,""),k=k.replace(/[\"\]]*$/,"")}var o=h.getDataRepresentation(i);if(n=o,_.isArray(o)){for(var p=0;p0){k||(k=$('
                            ').insertAfter(b).width($(b).outerWidth()-2).css("left",$(b).position().left).css("top",$(b).position().top+$(b).outerHeight()-1)),k.empty(),k.scrollTop(0);var g=!0;l=0,_.each(m,function(a,c){var d=h(b,e,a,c);g&&($(d).addClass("selected"),g=!1)})}else d(b,c),$(b).next("ul#value-selector").remove(),k=null,l=-1}function h(a,b,c,d){var e=c.value;c.preview&&(e=e+""+c.preview+"");var f=$("
                          • "+e+"
                          • ").appendTo(k).mouseenter(function(){$(this).trigger("freeboard-select")}).mousedown(function(a){$(this).trigger("freeboard-insertValue"),a.preventDefault()}).data("freeboard-optionIndex",d).data("freeboard-optionValue",c.value).bind("freeboard-insertValue",function(){var d=c.value;d=c.precede_char+d+c.follow_char;var e=b.lastIndexOf("]");-1!=e?$(a).replaceTextAt(e+1,$(a).val().length,d):$(a).insertAtCaret(d),n=c.entity,$(a).triggerHandler("mouseup")}).bind("freeboard-select",function(){$(this).parent().find("li.selected").removeClass("selected"),$(this).addClass("selected"),l=$(this).data("freeboard-optionIndex")});return f}function i(a,b){$(a).addClass("calculated-value-input").bind("keyup mouseup freeboard-eval",function(c){return!k||"keyup"!=c.type||38!=c.keyCode&&40!=c.keyCode&&13!=c.keyCode?void g(a,b):void c.preventDefault()}).focus(function(){$(a).css({"z-index":3001}),e(a)}).focusout(function(){d(a,b),$(a).css({height:"","z-index":3e3}),$(a).next("ul#value-selector").remove(),k=null,l=-1}).bind("keydown",function(a){if(k)if(38==a.keyCode||40==a.keyCode){a.preventDefault();var b=$(k).find("li");38==a.keyCode?l--:40==a.keyCode&&l++,0>l?l=b.size()-1:l>=b.size()&&(l=0);var c=$(b).eq(l);c.trigger("freeboard-select"),$(k).scrollTop($(c).position().top)}else 13==a.keyCode&&(a.preventDefault(),-1!=l&&$(k).find("li").eq(l).trigger("freeboard-insertValue"))})}var j=new RegExp('.*datasources\\["([^"]*)("\\])?(.*)$'),k=null,l=0,m=[],n=null,o={ANY:"any",ARRAY:"array",OBJECT:"object",STRING:"string",NUMBER:"number",BOOLEAN:"boolean"};return{createValueEditor:function(a,b){b?i(a,b):i(a,o.ANY)},EXPECTED_TYPE:o}},function(a){function b(){var a=document.createElement("p"),b=!1;if(a.addEventListener)a.addEventListener("DOMAttrModified",function(){b=!0},!1);else{if(!a.attachEvent)return!1;a.attachEvent("onDOMAttrModified",function(){b=!0})}return a.setAttribute("id","target"),b}function c(b,c){if(b){var d=this.data("attr-old-value");if(c.attributeName.indexOf("style")>=0){d.style||(d.style={});var e=c.attributeName.split(".");c.attributeName=e[0],c.oldValue=d.style[e[1]],c.newValue=e[1]+":"+this.prop("style")[a.camelCase(e[1])],d.style[e[1]]=c.newValue}else c.oldValue=d[c.attributeName],c.newValue=this.attr(c.attributeName),d[c.attributeName]=c.newValue;this.data("attr-old-value",d)}}var d=window.MutationObserver||window.WebKitMutationObserver;a.fn.attrchange=function(e){var f={trackValues:!1,callback:a.noop};if("function"==typeof e?f.callback=e:a.extend(f,e),f.trackValues&&a(this).each(function(b,c){for(var d,e={},b=0,f=c.attributes,g=f.length;g>b;b++)d=f.item(b),e[d.nodeName]=d.value;a(this).data("attr-old-value",e)}),d){var g={subtree:!1,attributes:!0,attributeOldValue:f.trackValues},h=new d(function(b){b.forEach(function(b){var c=b.target;f.trackValues&&(b.newValue=a(c).attr(b.attributeName)),f.callback.call(c,b)})});return this.each(function(){h.observe(this,g)})}return b()?this.on("DOMAttrModified",function(a){a.originalEvent&&(a=a.originalEvent),a.attributeName=a.attrName,a.oldValue=a.prevValue,f.callback.call(this,a)}):"onpropertychange"in document.body?this.on("propertychange",function(b){b.attributeName=window.event.propertyName,c.call(a(this),f.trackValues,b),f.callback.call(this,b)}):this}}(jQuery),function(a){a.eventEmitter={_JQInit:function(){this._JQ=a(this)},emit:function(a,b){!this._JQ&&this._JQInit(),this._JQ.trigger(a,b)},once:function(a,b){!this._JQ&&this._JQInit(),this._JQ.one(a,b)},on:function(a,b){!this._JQ&&this._JQInit(),this._JQ.bind(a,b)},off:function(a,b){!this._JQ&&this._JQInit(),this._JQ.unbind(a,b)}}}(jQuery);var freeboard=function(){function a(a){a=a.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var b=new RegExp("[\\?&]"+a+"=([^&#]*)"),c=b.exec(location.search);return null==c?"":decodeURIComponent(c[1].replace(/\+/g," "))}var b={},c={},d=new FreeboardUI,e=new FreeboardModel(b,c,d),f=new JSEditor,g=new ValueEditor(e),h=new PluginEditor(f,g),i=new DeveloperConsole(e),j={values:{"font-family":'"HelveticaNeue-UltraLight", "Helvetica Neue Ultra Light", "Helvetica Neue", sans-serif',color:"#d3d4d4","font-weight":100}};return ko.bindingHandlers.pluginEditor={init:function(a,f,g,i){var j=ko.unwrap(f()),k={},l=void 0,m="";"datasource"==j.type?(k=b,m="Datasource"):"widget"==j.type?(k=c,m="Widget"):"pane"==j.type&&(m="Pane"),$(a).click(function(){if("delete"==j.operation){var f=$("

                            Are you sure you want to delete this "+m+"?

                            ");new DialogBox(f,"Confirm Delete","Yes","No",function(){"datasource"==j.type?e.deleteDatasource(i):"widget"==j.type?e.deleteWidget(i):"pane"==j.type&&e.deletePane(i)})}else{var g=void 0;"datasource"==j.type?"add"==j.operation?l={}:(g=i.type(),l=i.settings(),l.name=i.name()):"widget"==j.type?"add"==j.operation?l={}:(g=i.type(),l=i.settings()):"pane"==j.type&&(l={},"edit"==j.operation&&(l.title=i.title(),l.col_width=i.col_width()),k={settings:{settings:[{name:"title",display_name:"Title",type:"text"},{name:"col_width",display_name:"Columns",type:"number",default_value:1,required:!0}]}}),h.createPluginEditor(m,k,g,l,function(f){if("add"==j.operation){if("datasource"==j.type){var g=new DatasourceModel(e,b);e.addDatasource(g),g.name(f.settings.name),delete f.settings.name,g.settings(f.settings),g.type(f.type)}else if("widget"==j.type){var g=new WidgetModel(e,c);g.settings(f.settings),g.type(f.type),i.widgets.push(g),d.attachWidgetEditIcons(a) +}}else"edit"==j.operation&&("pane"==j.type?(i.title(f.settings.title),i.col_width(f.settings.col_width),d.processResize(!1)):("datasource"==j.type&&(i.name(f.settings.name),delete f.settings.name),i.type(f.type),i.settings(f.settings)))})}})}},ko.virtualElements.allowedBindings.datasourceTypeSettings=!0,ko.bindingHandlers.datasourceTypeSettings={update:function(a,b,c,d,e){processPluginSettings(a,b,c,d,e)}},ko.bindingHandlers.pane={init:function(a,b,c,f,g){e.isEditing()&&$(a).css({cursor:"pointer"}),d.addPane(a,f,g.$root.isEditing())},update:function(a,b,c,f){-1==e.panes.indexOf(f)&&d.removePane(a),d.updatePane(a,f)}},ko.bindingHandlers.widget={init:function(a){e.isEditing()&&d.attachWidgetEditIcons($(a).parent())},update:function(a,b,c,d){d.shouldRender()&&($(a).empty(),d.render(a))}},$(function(){function a(){d.processResize(!0)}d.showLoadingIndicator(!0);var b;$(window).resize(function(){clearTimeout(b),b=setTimeout(a,500)})}),{initialize:function(b,c){ko.applyBindings(e);var f=a("load");""!=f?$.ajax({url:f,success:function(a){e.loadDashboard(a),_.isFunction(c)&&c()}}):(e.allow_edit(b),e.setEditing(b),d.showLoadingIndicator(!1),_.isFunction(c)&&c(),freeboard.emit("initialized"))},newDashboard:function(){e.loadDashboard({allow_edit:!0})},loadDashboard:function(a,b){e.loadDashboard(a,b)},serialize:function(){return e.serialize()},setEditing:function(a,b){e.setEditing(a,b)},isEditing:function(){return e.isEditing()},loadDatasourcePlugin:function(a){_.isUndefined(a.display_name)&&(a.display_name=a.type_name),a.settings.unshift({name:"name",display_name:"Name",type:"text",required:!0}),e.addPluginSource(a.source),b[a.type_name]=a,e._datasourceTypes.valueHasMutated()},resize:function(){d.processResize(!0)},loadWidgetPlugin:function(a){_.isUndefined(a.display_name)&&(a.display_name=a.type_name),e.addPluginSource(a.source),c[a.type_name]=a,e._widgetTypes.valueHasMutated()},setAssetRoot:function(a){f.setAssetRoot(a)},addStyle:function(a,b){var c=a+"{"+b+"}",d=$("style#fb-styles");0==d.length&&(d=$(''),$("head").append(d)),d[0].styleSheet?d[0].styleSheet.cssText+=c:d.text(d.text()+c)},showLoadingIndicator:function(a){d.showLoadingIndicator(a)},showDialog:function(a,b,c,d,e){new DialogBox(a,b,c,d,e)},getDatasourceSettings:function(a){var b=e.datasources(),c=_.find(b,function(b){return b.name()===a});return c?c.settings():null},setDatasourceSettings:function(a,b){var c=e.datasources(),d=_.find(c,function(b){return b.name()===a});if(!d)return void console.log("Datasource not found");var f=_.defaults(b,d.settings());d.settings(f)},getStyleString:function(a){var b="";return _.each(j[a],function(a,c){b=b+c+":"+a+";"}),b},getStyleObject:function(a){return j[a]},showDeveloperConsole:function(){i.showDeveloperConsole()}}}();$.extend(freeboard,jQuery.eventEmitter); \ No newline at end of file diff --git a/js/freeboard.plugins.js b/js/freeboard.plugins.js index 8bf9f882..21a0394b 100644 --- a/js/freeboard.plugins.js +++ b/js/freeboard.plugins.js @@ -1250,15 +1250,17 @@ var indicatorElement = $('
                            '); var currentSettings = settings; var isOn = false; + var onText = ""; + var offText = ""; function updateState() { indicatorElement.toggleClass("on", isOn); if (isOn) { - stateElement.text((_.isUndefined(currentSettings.on_text) ? "" : currentSettings.on_text)); + stateElement.text(onText); } else { - stateElement.text((_.isUndefined(currentSettings.off_text) ? "" : currentSettings.off_text)); + stateElement.text(offText); } } @@ -1273,8 +1275,16 @@ } this.onCalculatedValueChanged = function (settingName, newValue) { - if (settingName == "value") { + switch (settingName) { + case "value": isOn = Boolean(newValue); + break; + case "on_text": + onText = newValue; + break; + case "off_text": + offText = newValue; + break; } updateState(); diff --git a/js/freeboard.plugins.min.js b/js/freeboard.plugins.min.js index f9d9a44a..e82308cd 100644 --- a/js/freeboard.plugins.min.js +++ b/js/freeboard.plugins.min.js @@ -1 +1 @@ -(function(){var e=function(e,t){function n(e){a&&clearInterval(a),a=setInterval(function(){i.updateNow()},e)}var i=this,a=null,s=e,o=0,r=!1;n(1e3*s.refresh),this.updateNow=function(){if(!(o>1&&!s.use_thingproxy||o>2)){var e=s.url;2==o&&s.use_thingproxy&&(e=("https:"==location.protocol?"https:":"http:")+"//thingproxy.freeboard.io/fetch/"+encodeURI(s.url));var n=s.body;if(n)try{n=JSON.parse(n)}catch(a){}$.ajax({url:e,dataType:1==o?"JSONP":"JSON",type:s.method||"GET",data:n,beforeSend:function(e){try{_.each(s.headers,function(t){var n=t.name,i=t.value;_.isUndefined(n)||_.isUndefined(i)||e.setRequestHeader(n,i)})}catch(t){}},success:function(e){r=!0,t(e)},error:function(){r||(o++,i.updateNow())}})}},this.onDispose=function(){clearInterval(a),a=null},this.onSettingsChanged=function(e){r=!1,o=0,s=e,n(1e3*s.refresh),i.updateNow()}};freeboard.loadDatasourcePlugin({type_name:"JSON",settings:[{name:"url",display_name:"URL",type:"text"},{name:"use_thingproxy",display_name:"Try thingproxy",description:'A direct JSON connection will be tried first, if that fails, a JSONP connection will be tried. If that fails, you can use thingproxy, which can solve many connection problems to APIs. More information.',type:"boolean",default_value:!0},{name:"refresh",display_name:"Refresh Every",type:"number",suffix:"seconds",default_value:5},{name:"method",display_name:"Method",type:"option",options:[{name:"GET",value:"GET"},{name:"POST",value:"POST"},{name:"PUT",value:"PUT"},{name:"DELETE",value:"DELETE"}]},{name:"body",display_name:"Body",type:"text",description:"The body of the request. Normally only used if method is POST"},{name:"headers",display_name:"Headers",type:"array",settings:[{name:"name",display_name:"Name",type:"text"},{name:"value",display_name:"Value",type:"text"}]}],newInstance:function(t,n,i){n(new e(t,i))}});var t=function(e,t){function n(e){s&&clearInterval(s),s=setInterval(function(){a.updateNow()},e)}function i(e){return e.replace(/\w\S*/g,function(e){return e.charAt(0).toUpperCase()+e.substr(1).toLowerCase()})}var a=this,s=null,o=e;n(1e3*o.refresh),this.updateNow=function(){$.ajax({url:"http://api.openweathermap.org/data/2.5/weather?q="+encodeURIComponent(o.location)+"&units="+o.units,dataType:"JSONP",success:function(e){var n={place_name:e.name,sunrise:new Date(1e3*e.sys.sunrise).toLocaleTimeString(),sunset:new Date(1e3*e.sys.sunset).toLocaleTimeString(),conditions:i(e.weather[0].description),current_temp:e.main.temp,high_temp:e.main.temp_max,low_temp:e.main.temp_min,pressure:e.main.pressure,humidity:e.main.humidity,wind_speed:e.wind.speed,wind_direction:e.wind.deg};t(n)},error:function(){}})},this.onDispose=function(){clearInterval(s),s=null},this.onSettingsChanged=function(e){o=e,a.updateNow(),n(1e3*o.refresh)}};freeboard.loadDatasourcePlugin({type_name:"openweathermap",display_name:"Open Weather Map API",settings:[{name:"location",display_name:"Location",type:"text",description:"Example: London, UK"},{name:"units",display_name:"Units",type:"option","default":"imperial",options:[{name:"Imperial",value:"imperial"},{name:"Metric",value:"metric"}]},{name:"refresh",display_name:"Refresh Every",type:"number",suffix:"seconds",default_value:5}],newInstance:function(e,n,i){n(new t(e,i))}});var n=function(e,t){function n(e){t(e)}var i=this,a=e;this.updateNow=function(){dweetio.get_latest_dweet_for(a.thing_id,function(e,t){e||n(t[0].content)})},this.onDispose=function(){},this.onSettingsChanged=function(e){dweetio.stop_listening(),a=e,dweetio.listen_for(a.thing_id,function(e){n(e.content)})},i.onSettingsChanged(e)};freeboard.loadDatasourcePlugin({type_name:"dweet_io",display_name:"Dweet.io",external_scripts:["http://dweet.io/client/dweet.io.min.js"],settings:[{name:"thing_id",display_name:"Thing Name",description:"Example: salty-dog-1",type:"text"}],newInstance:function(e,t,i){t(new n(e,i))}});var i=function(e,t){function n(){r.length>0?(r.length>l&&(t(r[l]),l++),l>=r.length&&o.loop&&(l=0),r.length>l&&(a=setTimeout(n,1e3*o.refresh))):t({})}function i(){r=[],l=0,a&&(clearTimeout(a),a=null)}var a,s=this,o=e,r=[],l=0;this.updateNow=function(){i(),$.ajax({url:o.datafile,dataType:o.is_jsonp?"JSONP":"JSON",success:function(e){r=_.isArray(e)?e:[],l=0,n()},error:function(){}})},this.onDispose=function(){i()},this.onSettingsChanged=function(e){o=e,s.updateNow()}};freeboard.loadDatasourcePlugin({type_name:"playback",display_name:"Playback",settings:[{name:"datafile",display_name:"Data File URL",type:"text",description:"A link to a JSON array of data."},{name:"is_jsonp",display_name:"Is JSONP",type:"boolean"},{name:"loop",display_name:"Loop",type:"boolean",description:"Rewind and loop when finished"},{name:"refresh",display_name:"Refresh Every",type:"number",suffix:"seconds",default_value:5}],newInstance:function(e,t,n){t(new i(e,n))}});var a=function(e,t){function n(){a&&(clearTimeout(a),a=null)}function i(){n(),a=setInterval(s.updateNow,1e3*o.refresh)}var a,s=this,o=e;this.updateNow=function(){var e=new Date,n={numeric_value:e.getTime(),full_string_value:e.toLocaleString(),date_string_value:e.toLocaleDateString(),time_string_value:e.toLocaleTimeString(),date_object:e};t(n)},this.onDispose=function(){n()},this.onSettingsChanged=function(e){o=e,i()},i()};freeboard.loadDatasourcePlugin({type_name:"clock",display_name:"Clock",settings:[{name:"refresh",display_name:"Refresh Every",type:"number",suffix:"seconds",default_value:1}],newInstance:function(e,t,n){t(new a(e,n))}})})(),function(){function e(e,t,n){var i=$(t).text();if(i!=e)if($.isNumeric(e)&&$.isNumeric(i)){var a=(""+e).split("."),s=0;a.length>1&&(s=a[1].length),a=(""+i).split(".");var o=0;a.length>1&&(o=a[1].length),jQuery({transitionValue:Number(i),precisionValue:o}).animate({transitionValue:Number(e),precisionValue:s},{duration:n,step:function(){$(t).text(this.transitionValue.toFixed(this.precisionValue))},done:function(){$(t).text(e)}})}else $(t).text(e)}function t(e,t){for(var n=$("
                            "),i=0;t.length>i;i++){var s=a[i%a.length],o=t[i];n.append("
                            "+o+"
                            ")}e.empty().append(n),freeboard.addStyle(".sparkline-legend","margin:5px;"),freeboard.addStyle(".sparkline-legend-value","color:white; font:10px arial,san serif; float:left; overflow:hidden; width:50%;"),freeboard.addStyle(".sparkline-legend-value span","font-weight:bold; padding-right:5px;")}function n(e,t,n){var s=$(e).data().values,o=$(e).data().valueMin,r=$(e).data().valueMax;s||(s=[],o=void 0,r=void 0);var l=function(e,t){s[t]||(s[t]=[]),s[t].length>=i&&s[t].shift(),s[t].push(Number(e)),(void 0===o||o>e)&&(o=e),(void 0===r||e>r)&&(r=e)};_.isArray(t)?_.each(t,l):l(t,0),$(e).data().values=s,$(e).data().valueMin=o,$(e).data().valueMax=r;var d=' {{y}}',c=!1;_.each(s,function(t,i){$(e).sparkline(t,{type:"line",composite:c,height:"100%",width:"100%",fillColor:!1,lineColor:a[i%a.length],lineWidth:2,spotRadius:3,spotColor:!1,minSpotColor:"#78AB49",maxSpotColor:"#78AB49",highlightSpotColor:"#9D3926",highlightLineColor:"#9D3926",chartRangeMin:o,chartRangeMax:r,tooltipFormat:n&&n[i]?d+" ("+n[i]+")":d}),c=!0})}var i=100,a=["#FF9900","#FFFFFF","#B3B4B4","#6B6B6B","#28DE28","#13F7F9","#E6EE18","#C41204","#CA3CB8","#0B1CFB"],s=freeboard.getStyleString("values");freeboard.addStyle(".widget-big-text",s+"font-size:75px;"),freeboard.addStyle(".tw-display","width: 100%; height:100%; display:table; table-layout:fixed;"),freeboard.addStyle(".tw-tr","display:table-row;"),freeboard.addStyle(".tw-tg","display:table-row-group;"),freeboard.addStyle(".tw-tc","display:table-caption;"),freeboard.addStyle(".tw-td","display:table-cell;"),freeboard.addStyle(".tw-value",s+"overflow: hidden;"+"display: inline-block;"+"text-overflow: ellipsis;"),freeboard.addStyle(".tw-unit","display: inline-block;padding-left: 10px;padding-bottom: 1.1em;vertical-align: bottom;"),freeboard.addStyle(".tw-value-wrapper","position: relative;vertical-align: middle;height:100%;"),freeboard.addStyle(".tw-sparkline","height:20px;");var o=function(t){function i(){_.isUndefined(a.units)||""==a.units?r.css("max-width","100%"):r.css("max-width",s.innerWidth()-l.outerWidth(!0)+"px")}var a=t,s=$('
                            '),o=$('

                            '),r=$('
                            '),l=$('
                            '),d=$('
                            ');this.render=function(e){$(e).empty(),$(s).append($('
                            ').append(o)).append($('
                            ').append($('
                            ').append(r).append(l))).append($('
                            ').append(d)),$(e).append(s),i()},this.onSettingsChanged=function(e){a=e;var t=!_.isUndefined(e.title)&&""!=e.title,n=!_.isUndefined(e.units)&&""!=e.units;e.sparkline?d.attr("style",null):(delete d.data().values,d.empty(),d.hide()),t?(o.html(_.isUndefined(e.title)?"":e.title),o.attr("style",null)):(o.empty(),o.hide()),n?(l.html(_.isUndefined(e.units)?"":e.units),l.attr("style",null)):(l.empty(),l.hide());var s=30;"big"==e.size&&(s=75,e.sparkline&&(s=60)),r.css({"font-size":s+"px"}),i()},this.onSizeChanged=function(){i()},this.onCalculatedValueChanged=function(t,i){"value"==t&&(a.animate?e(i,r,500):r.text(i),a.sparkline&&n(d,i))},this.onDispose=function(){},this.getHeight=function(){return"big"==a.size||a.sparkline?2:1},this.onSettingsChanged(t)};freeboard.loadWidgetPlugin({type_name:"text_widget",display_name:"Text",external_scripts:["plugins/thirdparty/jquery.sparkline.min.js"],settings:[{name:"title",display_name:"Title",type:"text"},{name:"size",display_name:"Size",type:"option",options:[{name:"Regular",value:"regular"},{name:"Big",value:"big"}]},{name:"value",display_name:"Value",type:"calculated"},{name:"sparkline",display_name:"Include Sparkline",type:"boolean"},{name:"animate",display_name:"Animate Value Changes",type:"boolean",default_value:!0},{name:"units",display_name:"Units",type:"text"}],newInstance:function(e,t){t(new o(e))}});var r=0;freeboard.addStyle(".gauge-widget-wrapper","width: 100%;text-align: center;"),freeboard.addStyle(".gauge-widget","width:200px;height:160px;display:inline-block;");var l=function(e){function t(){o&&(s.empty(),n=new JustGage({id:i,value:_.isUndefined(l.min_value)?0:l.min_value,min:_.isUndefined(l.min_value)?0:l.min_value,max:_.isUndefined(l.max_value)?0:l.max_value,label:l.units,showInnerShadow:!1,valueFontColor:"#d3d4d4"}))}var n,i="gauge-"+r++,a=$('

                            '),s=$('
                            '),o=!1,l=e;this.render=function(e){o=!0,$(e).append(a).append($('
                            ').append(s)),t()},this.onSettingsChanged=function(e){e.min_value!=l.min_value||e.max_value!=l.max_value||e.units!=l.units?(l=e,t()):l=e,a.html(e.title)},this.onCalculatedValueChanged=function(e,t){_.isUndefined(n)||n.refresh(Number(t))},this.onDispose=function(){},this.getHeight=function(){return 3},this.onSettingsChanged(e)};freeboard.loadWidgetPlugin({type_name:"gauge",display_name:"Gauge",external_scripts:["plugins/thirdparty/raphael.2.1.0.min.js","plugins/thirdparty/justgage.1.0.1.js"],settings:[{name:"title",display_name:"Title",type:"text"},{name:"value",display_name:"Value",type:"calculated"},{name:"units",display_name:"Units",type:"text"},{name:"min_value",display_name:"Minimum",type:"text",default_value:0},{name:"max_value",display_name:"Maximum",type:"text",default_value:100}],newInstance:function(e,t){t(new l(e))}}),freeboard.addStyle(".sparkline","width:100%;height: 75px;");var d=function(e){var i=$('

                            '),a=$('
                            '),s=$("
                            "),o=e;this.render=function(e){$(e).append(i).append(a).append(s)},this.onSettingsChanged=function(e){o=e,i.html(_.isUndefined(e.title)?"":e.title),e.include_legend&&t(s,e.legend.split(","))},this.onCalculatedValueChanged=function(e,t){o.legend?n(a,t,o.legend.split(",")):n(a,t)},this.onDispose=function(){},this.getHeight=function(){var e=0;if(o.include_legend&&o.legend){var t=o.legend.split(",").length;t>4?e=.5*Math.floor((t-1)/4):t&&(e=.5)}return 2+e},this.onSettingsChanged(e)};freeboard.loadWidgetPlugin({type_name:"sparkline",display_name:"Sparkline",external_scripts:["plugins/thirdparty/jquery.sparkline.min.js"],settings:[{name:"title",display_name:"Title",type:"text"},{name:"value",display_name:"Value",type:"calculated",multi_input:"true"},{name:"include_legend",display_name:"Include Legend",type:"boolean"},{name:"legend",display_name:"Legend",type:"text",description:"Comma-separated for multiple sparklines"}],newInstance:function(e,t){t(new d(e))}}),freeboard.addStyle("div.pointer-value","position:absolute;height:95px;margin: auto;top: 0px;bottom: 0px;width: 100%;text-align:center;");var c=function(e){function t(e){if(!e||2>e.length)return[];var t=[];t.push(["m",e[0],e[1]]);for(var n=2;e.length>n;n+=2)t.push(["l",e[n],e[n+1]]);return t.push(["z"]),t}var n,i,a,s,o=3,r=0,l=$('
                            '),d=$("
                            ");this.render=function(e){a=$(e).width(),s=$(e).height();var r=Math.min(a,s)/2-2*o;n=Raphael($(e).get()[0],a,s);var c=n.circle(a/2,s/2,r);c.attr("stroke","#FF9900"),c.attr("stroke-width",o),i=n.path(t([a/2,s/2-r+o,15,20,-30,0])),i.attr("stroke-width",0),i.attr("fill","#fff"),$(e).append($('
                            ').append(l).append(d))},this.onSettingsChanged=function(e){d.html(e.units)},this.onCalculatedValueChanged=function(e,t){if("direction"==e){if(!_.isUndefined(i)){i.animate({transform:"r"+t+","+a/2+","+s/2},250,"bounce")}r=t}else"value_text"==e&&l.html(t)},this.onDispose=function(){},this.getHeight=function(){return 4},this.onSettingsChanged(e)};freeboard.loadWidgetPlugin({type_name:"pointer",display_name:"Pointer",external_scripts:["plugins/thirdparty/raphael.2.1.0.min.js"],settings:[{name:"direction",display_name:"Direction",type:"calculated",description:"In degrees"},{name:"value_text",display_name:"Value Text",type:"calculated"},{name:"units",display_name:"Units",type:"text"}],newInstance:function(e,t){t(new c(e))}});var u=function(e){function t(){a&&(clearInterval(a),a=null)}function n(){if(i&&s){var e=s+(-1==s.indexOf("?")?"?":"&")+Date.now();$(i).css({"background-image":"url("+e+")"})}}var i,a,s;this.render=function(e){$(e).css({width:"100%",height:"100%","background-size":"cover","background-position":"center"}),i=e},this.onSettingsChanged=function(e){t(),e.refresh&&e.refresh>0&&(a=setInterval(n,1e3*Number(e.refresh)))},this.onCalculatedValueChanged=function(e,t){"src"==e&&(s=t),n()},this.onDispose=function(){t()},this.getHeight=function(){return 4},this.onSettingsChanged(e)};freeboard.loadWidgetPlugin({type_name:"picture",display_name:"Picture",fill_size:!0,settings:[{name:"src",display_name:"Image URL",type:"calculated"},{type:"number",display_name:"Refresh every",name:"refresh",suffix:"seconds",description:"Leave blank if the image doesn't need to be refreshed"}],newInstance:function(e,t){t(new u(e))}}),freeboard.addStyle(".indicator-light","border-radius:50%;width:22px;height:22px;border:2px solid #3d3d3d;margin-top:5px;float:left;background-color:#222;margin-right:10px;"),freeboard.addStyle(".indicator-light.on","background-color:#FFC773;box-shadow: 0px 0px 15px #FF9900;border-color:#FDF1DF;"),freeboard.addStyle(".indicator-text","margin-top:10px;");var p=function(e){function t(){a.toggleClass("on",o),o?i.text(_.isUndefined(s.on_text)?"":s.on_text):i.text(_.isUndefined(s.off_text)?"":s.off_text)}var n=$('

                            '),i=$('
                            '),a=$('
                            '),s=e,o=!1;this.render=function(e){$(e).append(n).append(a).append(i)},this.onSettingsChanged=function(e){s=e,n.html(_.isUndefined(e.title)?"":e.title),t()},this.onCalculatedValueChanged=function(e,n){"value"==e&&(o=Boolean(n)),t()},this.onDispose=function(){},this.getHeight=function(){return 1},this.onSettingsChanged(e)};freeboard.loadWidgetPlugin({type_name:"indicator",display_name:"Indicator Light",settings:[{name:"title",display_name:"Title",type:"text"},{name:"value",display_name:"Value",type:"calculated"},{name:"on_text",display_name:"On Text",type:"calculated"},{name:"off_text",display_name:"Off Text",type:"calculated"}],newInstance:function(e,t){t(new p(e))}}),freeboard.addStyle(".gm-style-cc a","text-shadow:none;");var f=function(e){function t(){if(n&&i&&s.lat&&s.lon){var e=new google.maps.LatLng(s.lat,s.lon);i.setPosition(e),n.panTo(e)}}var n,i,a=e,s={};this.render=function(e){function a(){var a={zoom:13,center:new google.maps.LatLng(37.235,-115.811111),disableDefaultUI:!0,draggable:!1,styles:[{featureType:"water",elementType:"geometry",stylers:[{color:"#2a2a2a"}]},{featureType:"landscape",elementType:"geometry",stylers:[{color:"#000000"},{lightness:20}]},{featureType:"road.highway",elementType:"geometry.fill",stylers:[{color:"#000000"},{lightness:17}]},{featureType:"road.highway",elementType:"geometry.stroke",stylers:[{color:"#000000"},{lightness:29},{weight:.2}]},{featureType:"road.arterial",elementType:"geometry",stylers:[{color:"#000000"},{lightness:18}]},{featureType:"road.local",elementType:"geometry",stylers:[{color:"#000000"},{lightness:16}]},{featureType:"poi",elementType:"geometry",stylers:[{color:"#000000"},{lightness:21}]},{elementType:"labels.text.stroke",stylers:[{visibility:"on"},{color:"#000000"},{lightness:16}]},{elementType:"labels.text.fill",stylers:[{saturation:36},{color:"#000000"},{lightness:40}]},{elementType:"labels.icon",stylers:[{visibility:"off"}]},{featureType:"transit",elementType:"geometry",stylers:[{color:"#000000"},{lightness:19}]},{featureType:"administrative",elementType:"geometry.fill",stylers:[{color:"#000000"},{lightness:20}]},{featureType:"administrative",elementType:"geometry.stroke",stylers:[{color:"#000000"},{lightness:17},{weight:1.2}]}]};n=new google.maps.Map(e,a),google.maps.event.addDomListener(e,"mouseenter",function(e){e.cancelBubble=!0,n.hover||(n.hover=!0,n.setOptions({zoomControl:!0}))}),google.maps.event.addDomListener(e,"mouseleave",function(){n.hover&&(n.setOptions({zoomControl:!1}),n.hover=!1)}),i=new google.maps.Marker({map:n}),t()}window.google&&window.google.maps?a():(window.gmap_initialize=a,head.js("https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&callback=gmap_initialize"))},this.onSettingsChanged=function(e){a=e},this.onCalculatedValueChanged=function(e,n){"lat"==e?s.lat=n:"lon"==e&&(s.lon=n),t()},this.onDispose=function(){},this.getHeight=function(){return 4},this.onSettingsChanged(e)};freeboard.loadWidgetPlugin({type_name:"google_map",display_name:"Google Map",fill_size:!0,settings:[{name:"lat",display_name:"Latitude",type:"calculated"},{name:"lon",display_name:"Longitude",type:"calculated"}],newInstance:function(e,t){t(new f(e))}}),freeboard.addStyle(".html-widget","white-space:normal;width:100%;height:100%");var h=function(e){var t=$('
                            '),n=e;this.render=function(e){$(e).append(t)},this.onSettingsChanged=function(e){n=e},this.onCalculatedValueChanged=function(e,n){"html"==e&&t.html(n)},this.onDispose=function(){},this.getHeight=function(){return Number(n.height)},this.onSettingsChanged(e)};freeboard.loadWidgetPlugin({type_name:"html",display_name:"HTML",fill_size:!0,settings:[{name:"html",display_name:"HTML",type:"calculated",description:"Can be literal HTML, or javascript that outputs HTML."},{name:"height",display_name:"Height Blocks",type:"number",default_value:4,description:"A height block is around 60 pixels"}],newInstance:function(e,t){t(new h(e))}})}(); \ No newline at end of file +!function(){var a=function(a,b){function c(a){e&&clearInterval(e),e=setInterval(function(){d.updateNow()},a)}var d=this,e=null,f=a,g=0,h=!1;c(1e3*f.refresh),this.updateNow=function(){if(!(g>1&&!f.use_thingproxy||g>2)){var a=f.url;2==g&&f.use_thingproxy&&(a=("https:"==location.protocol?"https:":"http:")+"//thingproxy.freeboard.io/fetch/"+encodeURI(f.url));var c=f.body;if(c)try{c=JSON.parse(c)}catch(e){}$.ajax({url:a,dataType:1==g?"JSONP":"JSON",type:f.method||"GET",data:c,beforeSend:function(a){try{_.each(f.headers,function(b){var c=b.name,d=b.value;_.isUndefined(c)||_.isUndefined(d)||a.setRequestHeader(c,d)})}catch(b){}},success:function(a){h=!0,b(a)},error:function(){h||(g++,d.updateNow())}})}},this.onDispose=function(){clearInterval(e),e=null},this.onSettingsChanged=function(a){h=!1,g=0,f=a,c(1e3*f.refresh),d.updateNow()}};freeboard.loadDatasourcePlugin({type_name:"JSON",settings:[{name:"url",display_name:"URL",type:"text"},{name:"use_thingproxy",display_name:"Try thingproxy",description:'A direct JSON connection will be tried first, if that fails, a JSONP connection will be tried. If that fails, you can use thingproxy, which can solve many connection problems to APIs. More information.',type:"boolean",default_value:!0},{name:"refresh",display_name:"Refresh Every",type:"number",suffix:"seconds",default_value:5},{name:"method",display_name:"Method",type:"option",options:[{name:"GET",value:"GET"},{name:"POST",value:"POST"},{name:"PUT",value:"PUT"},{name:"DELETE",value:"DELETE"}]},{name:"body",display_name:"Body",type:"text",description:"The body of the request. Normally only used if method is POST"},{name:"headers",display_name:"Headers",type:"array",settings:[{name:"name",display_name:"Name",type:"text"},{name:"value",display_name:"Value",type:"text"}]}],newInstance:function(b,c,d){c(new a(b,d))}});var b=function(a,b){function c(a){f&&clearInterval(f),f=setInterval(function(){e.updateNow()},a)}function d(a){return a.replace(/\w\S*/g,function(a){return a.charAt(0).toUpperCase()+a.substr(1).toLowerCase()})}var e=this,f=null,g=a;c(1e3*g.refresh),this.updateNow=function(){$.ajax({url:"http://api.openweathermap.org/data/2.5/weather?q="+encodeURIComponent(g.location)+"&units="+g.units,dataType:"JSONP",success:function(a){var c={place_name:a.name,sunrise:new Date(1e3*a.sys.sunrise).toLocaleTimeString(),sunset:new Date(1e3*a.sys.sunset).toLocaleTimeString(),conditions:d(a.weather[0].description),current_temp:a.main.temp,high_temp:a.main.temp_max,low_temp:a.main.temp_min,pressure:a.main.pressure,humidity:a.main.humidity,wind_speed:a.wind.speed,wind_direction:a.wind.deg};b(c)},error:function(){}})},this.onDispose=function(){clearInterval(f),f=null},this.onSettingsChanged=function(a){g=a,e.updateNow(),c(1e3*g.refresh)}};freeboard.loadDatasourcePlugin({type_name:"openweathermap",display_name:"Open Weather Map API",settings:[{name:"location",display_name:"Location",type:"text",description:"Example: London, UK"},{name:"units",display_name:"Units",type:"option","default":"imperial",options:[{name:"Imperial",value:"imperial"},{name:"Metric",value:"metric"}]},{name:"refresh",display_name:"Refresh Every",type:"number",suffix:"seconds",default_value:5}],newInstance:function(a,c,d){c(new b(a,d))}});var c=function(a,b){function c(a){b(a)}var d=this,e=a;this.updateNow=function(){dweetio.get_latest_dweet_for(e.thing_id,function(a,b){a||c(b[0].content)})},this.onDispose=function(){},this.onSettingsChanged=function(a){dweetio.stop_listening(),e=a,dweetio.listen_for(e.thing_id,function(a){c(a.content)})},d.onSettingsChanged(a)};freeboard.loadDatasourcePlugin({type_name:"dweet_io",display_name:"Dweet.io",external_scripts:["http://dweet.io/client/dweet.io.min.js"],settings:[{name:"thing_id",display_name:"Thing Name",description:"Example: salty-dog-1",type:"text"}],newInstance:function(a,b,d){b(new c(a,d))}});var d=function(a,b){function c(){h.length>0?(i=h.length&&g.loop&&(i=0),i1&&(f=e[1].length),e=d.toString().split(".");var g=0;e.length>1&&(g=e[1].length),jQuery({transitionValue:Number(d),precisionValue:g}).animate({transitionValue:Number(a),precisionValue:f},{duration:c,step:function(){$(b).text(this.transitionValue.toFixed(this.precisionValue))},done:function(){$(b).text(a)}})}else $(b).text(a)}function b(a,b){for(var c=$("
                            "),d=0;d"+g+"")}a.empty().append(c),freeboard.addStyle(".sparkline-legend","margin:5px;"),freeboard.addStyle(".sparkline-legend-value","color:white; font:10px arial,san serif; float:left; overflow:hidden; width:50%;"),freeboard.addStyle(".sparkline-legend-value span","font-weight:bold; padding-right:5px;")}function c(a,b,c){var f=$(a).data().values,g=$(a).data().valueMin,h=$(a).data().valueMax;f||(f=[],g=void 0,h=void 0);var i=function(a,b){f[b]||(f[b]=[]),f[b].length>=d&&f[b].shift(),f[b].push(Number(a)),(void 0===g||g>a)&&(g=a),(void 0===h||a>h)&&(h=a)};_.isArray(b)?_.each(b,i):i(b,0),$(a).data().values=f,$(a).data().valueMin=g,$(a).data().valueMax=h;var j=' {{y}}',k=!1;_.each(f,function(b,d){$(a).sparkline(b,{type:"line",composite:k,height:"100%",width:"100%",fillColor:!1,lineColor:e[d%e.length],lineWidth:2,spotRadius:3,spotColor:!1,minSpotColor:"#78AB49",maxSpotColor:"#78AB49",highlightSpotColor:"#9D3926",highlightLineColor:"#9D3926",chartRangeMin:g,chartRangeMax:h,tooltipFormat:c&&c[d]?j+" ("+c[d]+")":j}),k=!0})}var d=100,e=["#FF9900","#FFFFFF","#B3B4B4","#6B6B6B","#28DE28","#13F7F9","#E6EE18","#C41204","#CA3CB8","#0B1CFB"],f=freeboard.getStyleString("values");freeboard.addStyle(".widget-big-text",f+"font-size:75px;"),freeboard.addStyle(".tw-display","width: 100%; height:100%; display:table; table-layout:fixed;"),freeboard.addStyle(".tw-tr","display:table-row;"),freeboard.addStyle(".tw-tg","display:table-row-group;"),freeboard.addStyle(".tw-tc","display:table-caption;"),freeboard.addStyle(".tw-td","display:table-cell;"),freeboard.addStyle(".tw-value",f+"overflow: hidden;display: inline-block;text-overflow: ellipsis;"),freeboard.addStyle(".tw-unit","display: inline-block;padding-left: 10px;padding-bottom: 1.1em;vertical-align: bottom;"),freeboard.addStyle(".tw-value-wrapper","position: relative;vertical-align: middle;height:100%;"),freeboard.addStyle(".tw-sparkline","height:20px;");var g=function(b){function d(){_.isUndefined(e.units)||""==e.units?h.css("max-width","100%"):h.css("max-width",f.innerWidth()-i.outerWidth(!0)+"px")}var e=b,f=$('
                            '),g=$('

                            '),h=$('
                            '),i=$('
                            '),j=$('
                            ');this.render=function(a){$(a).empty(),$(f).append($('
                            ').append(g)).append($('
                            ').append($('
                            ').append(h).append(i))).append($('
                            ').append(j)),$(a).append(f),d()},this.onSettingsChanged=function(a){e=a;var b=!_.isUndefined(a.title)&&""!=a.title,c=!_.isUndefined(a.units)&&""!=a.units;a.sparkline?j.attr("style",null):(delete j.data().values,j.empty(),j.hide()),b?(g.html(_.isUndefined(a.title)?"":a.title),g.attr("style",null)):(g.empty(),g.hide()),c?(i.html(_.isUndefined(a.units)?"":a.units),i.attr("style",null)):(i.empty(),i.hide());var f=30;"big"==a.size&&(f=75,a.sparkline&&(f=60)),h.css({"font-size":f+"px"}),d()},this.onSizeChanged=function(){d()},this.onCalculatedValueChanged=function(b,d){"value"==b&&(e.animate?a(d,h,500):h.text(d),e.sparkline&&c(j,d))},this.onDispose=function(){},this.getHeight=function(){return"big"==e.size||e.sparkline?2:1},this.onSettingsChanged(b)};freeboard.loadWidgetPlugin({type_name:"text_widget",display_name:"Text",external_scripts:["plugins/thirdparty/jquery.sparkline.min.js"],settings:[{name:"title",display_name:"Title",type:"text"},{name:"size",display_name:"Size",type:"option",options:[{name:"Regular",value:"regular"},{name:"Big",value:"big"}]},{name:"value",display_name:"Value",type:"calculated"},{name:"sparkline",display_name:"Include Sparkline",type:"boolean"},{name:"animate",display_name:"Animate Value Changes",type:"boolean",default_value:!0},{name:"units",display_name:"Units",type:"text"}],newInstance:function(a,b){b(new g(a))}});var h=0;freeboard.addStyle(".gauge-widget-wrapper","width: 100%;text-align: center;"),freeboard.addStyle(".gauge-widget","width:200px;height:160px;display:inline-block;");var i=function(a){function b(){g&&(f.empty(),c=new JustGage({id:d,value:_.isUndefined(i.min_value)?0:i.min_value,min:_.isUndefined(i.min_value)?0:i.min_value,max:_.isUndefined(i.max_value)?0:i.max_value,label:i.units,showInnerShadow:!1,valueFontColor:"#d3d4d4"}))}var c,d="gauge-"+h++,e=$('

                            '),f=$('
                            '),g=!1,i=a;this.render=function(a){g=!0,$(a).append(e).append($('
                            ').append(f)),b()},this.onSettingsChanged=function(a){a.min_value!=i.min_value||a.max_value!=i.max_value||a.units!=i.units?(i=a,b()):i=a,e.html(a.title)},this.onCalculatedValueChanged=function(a,b){_.isUndefined(c)||c.refresh(Number(b))},this.onDispose=function(){},this.getHeight=function(){return 3},this.onSettingsChanged(a)};freeboard.loadWidgetPlugin({type_name:"gauge",display_name:"Gauge",external_scripts:["plugins/thirdparty/raphael.2.1.0.min.js","plugins/thirdparty/justgage.1.0.1.js"],settings:[{name:"title",display_name:"Title",type:"text"},{name:"value",display_name:"Value",type:"calculated"},{name:"units",display_name:"Units",type:"text"},{name:"min_value",display_name:"Minimum",type:"text",default_value:0},{name:"max_value",display_name:"Maximum",type:"text",default_value:100}],newInstance:function(a,b){b(new i(a))}}),freeboard.addStyle(".sparkline","width:100%;height: 75px;");var j=function(a){var d=$('

                            '),e=$('
                            '),f=$("
                            "),g=a;this.render=function(a){$(a).append(d).append(e).append(f)},this.onSettingsChanged=function(a){g=a,d.html(_.isUndefined(a.title)?"":a.title),a.include_legend&&b(f,a.legend.split(","))},this.onCalculatedValueChanged=function(a,b){g.legend?c(e,b,g.legend.split(",")):c(e,b)},this.onDispose=function(){},this.getHeight=function(){var a=0;if(g.include_legend&&g.legend){var b=g.legend.split(",").length;b>4?a=.5*Math.floor((b-1)/4):b&&(a=.5)}return 2+a},this.onSettingsChanged(a)};freeboard.loadWidgetPlugin({type_name:"sparkline",display_name:"Sparkline",external_scripts:["plugins/thirdparty/jquery.sparkline.min.js"],settings:[{name:"title",display_name:"Title",type:"text"},{name:"value",display_name:"Value",type:"calculated",multi_input:"true"},{name:"include_legend",display_name:"Include Legend",type:"boolean"},{name:"legend",display_name:"Legend",type:"text",description:"Comma-separated for multiple sparklines"}],newInstance:function(a,b){b(new j(a))}}),freeboard.addStyle("div.pointer-value","position:absolute;height:95px;margin: auto;top: 0px;bottom: 0px;width: 100%;text-align:center;");var k=function(a){function b(a){if(!a||a.length<2)return[];var b=[];b.push(["m",a[0],a[1]]);for(var c=2;c'),j=$("
                            ");this.render=function(a){e=$(a).width(),f=$(a).height();var h=Math.min(e,f)/2-2*g;c=Raphael($(a).get()[0],e,f);var k=c.circle(e/2,f/2,h);k.attr("stroke","#FF9900"),k.attr("stroke-width",g),d=c.path(b([e/2,f/2-h+g,15,20,-30,0])),d.attr("stroke-width",0),d.attr("fill","#fff"),$(a).append($('
                            ').append(i).append(j))},this.onSettingsChanged=function(a){j.html(a.units)},this.onCalculatedValueChanged=function(a,b){if("direction"==a){if(!_.isUndefined(d)){d.animate({transform:"r"+b+","+e/2+","+f/2},250,"bounce")}h=b}else"value_text"==a&&i.html(b)},this.onDispose=function(){},this.getHeight=function(){return 4},this.onSettingsChanged(a)};freeboard.loadWidgetPlugin({type_name:"pointer",display_name:"Pointer",external_scripts:["plugins/thirdparty/raphael.2.1.0.min.js"],settings:[{name:"direction",display_name:"Direction",type:"calculated",description:"In degrees"},{name:"value_text",display_name:"Value Text",type:"calculated"},{name:"units",display_name:"Units",type:"text"}],newInstance:function(a,b){b(new k(a))}});var l=function(a){function b(){e&&(clearInterval(e),e=null)}function c(){if(d&&f){var a=f+(-1==f.indexOf("?")?"?":"&")+Date.now();$(d).css({"background-image":"url("+a+")"})}}var d,e,f;this.render=function(a){$(a).css({width:"100%",height:"100%","background-size":"cover","background-position":"center"}),d=a},this.onSettingsChanged=function(a){b(),a.refresh&&a.refresh>0&&(e=setInterval(c,1e3*Number(a.refresh)))},this.onCalculatedValueChanged=function(a,b){"src"==a&&(f=b),c()},this.onDispose=function(){b()},this.getHeight=function(){return 4},this.onSettingsChanged(a)};freeboard.loadWidgetPlugin({type_name:"picture",display_name:"Picture",fill_size:!0,settings:[{name:"src",display_name:"Image URL",type:"calculated"},{type:"number",display_name:"Refresh every",name:"refresh",suffix:"seconds",description:"Leave blank if the image doesn't need to be refreshed"}],newInstance:function(a,b){b(new l(a))}}),freeboard.addStyle(".indicator-light","border-radius:50%;width:22px;height:22px;border:2px solid #3d3d3d;margin-top:5px;float:left;background-color:#222;margin-right:10px;"),freeboard.addStyle(".indicator-light.on","background-color:#FFC773;box-shadow: 0px 0px 15px #FF9900;border-color:#FDF1DF;"),freeboard.addStyle(".indicator-text","margin-top:10px;");var m=function(a){function b(){e.toggleClass("on",g),d.text(g?h:i)}var c=$('

                            '),d=$('
                            '),e=$('
                            '),f=a,g=!1,h="",i="";this.render=function(a){$(a).append(c).append(e).append(d)},this.onSettingsChanged=function(a){f=a,c.html(_.isUndefined(a.title)?"":a.title),b()},this.onCalculatedValueChanged=function(a,c){switch(a){case"value":g=Boolean(c);break;case"on_text":h=c;break;case"off_text":i=c}b()},this.onDispose=function(){},this.getHeight=function(){return 1},this.onSettingsChanged(a)};freeboard.loadWidgetPlugin({type_name:"indicator",display_name:"Indicator Light",settings:[{name:"title",display_name:"Title",type:"text"},{name:"value",display_name:"Value",type:"calculated"},{name:"on_text",display_name:"On Text",type:"calculated"},{name:"off_text",display_name:"Off Text",type:"calculated"}],newInstance:function(a,b){b(new m(a))}}),freeboard.addStyle(".gm-style-cc a","text-shadow:none;");var n=function(a){function b(){if(c&&d&&f.lat&&f.lon){var a=new google.maps.LatLng(f.lat,f.lon);d.setPosition(a),c.panTo(a)}}var c,d,e=a,f={};this.render=function(a){function e(){var e={zoom:13,center:new google.maps.LatLng(37.235,-115.811111),disableDefaultUI:!0,draggable:!1,styles:[{featureType:"water",elementType:"geometry",stylers:[{color:"#2a2a2a"}]},{featureType:"landscape",elementType:"geometry",stylers:[{color:"#000000"},{lightness:20}]},{featureType:"road.highway",elementType:"geometry.fill",stylers:[{color:"#000000"},{lightness:17}]},{featureType:"road.highway",elementType:"geometry.stroke",stylers:[{color:"#000000"},{lightness:29},{weight:.2}]},{featureType:"road.arterial",elementType:"geometry",stylers:[{color:"#000000"},{lightness:18}]},{featureType:"road.local",elementType:"geometry",stylers:[{color:"#000000"},{lightness:16}]},{featureType:"poi",elementType:"geometry",stylers:[{color:"#000000"},{lightness:21}]},{elementType:"labels.text.stroke",stylers:[{visibility:"on"},{color:"#000000"},{lightness:16}]},{elementType:"labels.text.fill",stylers:[{saturation:36},{color:"#000000"},{lightness:40}]},{elementType:"labels.icon",stylers:[{visibility:"off"}]},{featureType:"transit",elementType:"geometry",stylers:[{color:"#000000"},{lightness:19}]},{featureType:"administrative",elementType:"geometry.fill",stylers:[{color:"#000000"},{lightness:20}]},{featureType:"administrative",elementType:"geometry.stroke",stylers:[{color:"#000000"},{lightness:17},{weight:1.2}]}]};c=new google.maps.Map(a,e),google.maps.event.addDomListener(a,"mouseenter",function(a){a.cancelBubble=!0,c.hover||(c.hover=!0,c.setOptions({zoomControl:!0}))}),google.maps.event.addDomListener(a,"mouseleave",function(){c.hover&&(c.setOptions({zoomControl:!1}),c.hover=!1)}),d=new google.maps.Marker({map:c}),b()}window.google&&window.google.maps?e():(window.gmap_initialize=e,head.js("https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&callback=gmap_initialize"))},this.onSettingsChanged=function(a){e=a},this.onCalculatedValueChanged=function(a,c){"lat"==a?f.lat=c:"lon"==a&&(f.lon=c),b()},this.onDispose=function(){},this.getHeight=function(){return 4},this.onSettingsChanged(a)};freeboard.loadWidgetPlugin({type_name:"google_map",display_name:"Google Map",fill_size:!0,settings:[{name:"lat",display_name:"Latitude",type:"calculated"},{name:"lon",display_name:"Longitude",type:"calculated"}],newInstance:function(a,b){b(new n(a))}}),freeboard.addStyle(".html-widget","white-space:normal;width:100%;height:100%");var o=function(a){var b=$('
                            '),c=a;this.render=function(a){$(a).append(b)},this.onSettingsChanged=function(a){c=a},this.onCalculatedValueChanged=function(a,c){"html"==a&&b.html(c)},this.onDispose=function(){},this.getHeight=function(){return Number(c.height)},this.onSettingsChanged(a)};freeboard.loadWidgetPlugin({type_name:"html",display_name:"HTML",fill_size:!0,settings:[{name:"html",display_name:"HTML",type:"calculated",description:"Can be literal HTML, or javascript that outputs HTML."},{name:"height",display_name:"Height Blocks",type:"number",default_value:4,description:"A height block is around 60 pixels"}],newInstance:function(a,b){b(new o(a))}})}(); \ No newline at end of file diff --git a/js/freeboard.plugins.min.js.map b/js/freeboard.plugins.min.js.map index 4a11dec2..b0bbcec9 100644 --- a/js/freeboard.plugins.min.js.map +++ b/js/freeboard.plugins.min.js.map @@ -1 +1,7 @@ -{"version":3,"file":"freeboard.plugins.min.js","sources":["freeboard.plugins.js"],"names":["jsonDatasource","settings","updateCallback","updateRefresh","refreshTime","updateTimer","clearInterval","setInterval","self","updateNow","this","currentSettings","errorStage","lockErrorStage","refresh","use_thingproxy","requestURL","url","location","protocol","encodeURI","body","JSON","parse","e","$","ajax","dataType","type","method","data","beforeSend","xhr","_","each","headers","header","name","value","isUndefined","setRequestHeader","success","error","onDispose","onSettingsChanged","newSettings","freeboard","loadDatasourcePlugin","type_name","display_name","description","default_value","suffix","options","newInstance","newInstanceCallback","openWeatherMapDatasource","toTitleCase","str","replace","txt","charAt","toUpperCase","substr","toLowerCase","encodeURIComponent","units","newData","place_name","sunrise","Date","sys","toLocaleTimeString","sunset","conditions","weather","current_temp","main","temp","high_temp","temp_max","low_temp","temp_min","pressure","humidity","wind_speed","wind","speed","wind_direction","deg","default","dweetioDatasource","onNewDweet","dweet","dweetio","get_latest_dweet_for","thing_id","err","content","stop_listening","listen_for","external_scripts","playbackDatasource","moveNext","currentDataset","length","currentIndex","loop","currentTimeout","setTimeout","stopTimeout","clearTimeout","datafile","isArray","clockDatasource","stopTimer","timer","date","numeric_value","getTime","full_string_value","toLocaleString","date_string_value","toLocaleDateString","time_string_value","date_object","easeTransitionText","newValue","textElement","duration","currentValue","text","isNumeric","numParts","toString","split","endingPrecision","startingPrecision","jQuery","transitionValue","Number","precisionValue","animate","step","toFixed","done","addValueToSparkline","element","values","SPARKLINE_HISTORY_LENGTH","shift","push","sparkline","height","width","fillColor","lineColor","lineWidth","spotRadius","spotColor","minSpotColor","maxSpotColor","highlightSpotColor","highlightLineColor","valueStyle","getStyleString","addStyle","textWidget","updateValueSizing","valueElement","css","displayElement","innerWidth","unitsElement","outerWidth","titleElement","sparklineElement","render","empty","append","shouldDisplayTitle","title","shouldDisplayUnits","attr","hide","html","valueFontSize","size","font-size","onSizeChanged","onCalculatedValueChanged","settingName","getHeight","loadWidgetPlugin","gaugeID","gaugeWidget","createGauge","rendered","gaugeElement","gaugeObject","JustGage","id","thisGaugeID","min_value","min","max","max_value","label","showInnerShadow","valueFontColor","sparklineWidget","pointerWidget","polygonPath","points","path","i","paper","triangle","strokeWidth","valueDiv","unitsDiv","radius","Math","Raphael","get","circle","transform","pictureWidget","updateImage","widgetElement","imageURL","cacheBreakerURL","indexOf","now","background-image","background-size","background-position","fill_size","indicatorWidget","updateState","indicatorElement","toggleClass","isOn","stateElement","on_text","off_text","Boolean","googleMapWidget","updatePosition","map","marker","currentPosition","lat","lon","newLatLon","google","maps","LatLng","setPosition","panTo","initializeMap","mapOptions","zoom","center","disableDefaultUI","draggable","styles","featureType","elementType","stylers","color","lightness","weight","visibility","saturation","Map","event","addDomListener","cancelBubble","hover","setOptions","zoomControl","Marker","window","gmap_initialize","head","js","htmlWidget","htmlElement"],"mappings":"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"} \ No newline at end of file +<<<<<<< HEAD +{"version":3,"file":"freeboard.plugins.min.js","sources":["freeboard.plugins.js"],"names":["jsonDatasource","settings","updateCallback","updateRefresh","refreshTime","updateTimer","clearInterval","setInterval","self","updateNow","this","currentSettings","errorStage","lockErrorStage","refresh","use_thingproxy","requestURL","url","location","protocol","encodeURI","body","JSON","parse","e","$","ajax","dataType","type","method","data","beforeSend","xhr","_","each","headers","header","name","value","isUndefined","setRequestHeader","success","error","onDispose","onSettingsChanged","newSettings","freeboard","loadDatasourcePlugin","type_name","display_name","description","default_value","suffix","options","newInstance","newInstanceCallback","openWeatherMapDatasource","toTitleCase","str","replace","txt","charAt","toUpperCase","substr","toLowerCase","encodeURIComponent","units","newData","place_name","sunrise","Date","sys","toLocaleTimeString","sunset","conditions","weather","current_temp","main","temp","high_temp","temp_max","low_temp","temp_min","pressure","humidity","wind_speed","wind","speed","wind_direction","deg","default","dweetioDatasource","onNewDweet","dweet","dweetio","get_latest_dweet_for","thing_id","err","content","stop_listening","listen_for","external_scripts","playbackDatasource","moveNext","currentDataset","length","currentIndex","loop","currentTimeout","setTimeout","stopTimeout","clearTimeout","datafile","isArray","clockDatasource","stopTimer","timer","date","numeric_value","getTime","full_string_value","toLocaleString","date_string_value","toLocaleDateString","time_string_value","date_object","easeTransitionText","newValue","textElement","duration","currentValue","text","isNumeric","numParts","toString","split","endingPrecision","startingPrecision","jQuery","transitionValue","Number","precisionValue","animate","step","toFixed","done","addValueToSparkline","element","values","SPARKLINE_HISTORY_LENGTH","shift","push","sparkline","height","width","fillColor","lineColor","lineWidth","spotRadius","spotColor","minSpotColor","maxSpotColor","highlightSpotColor","highlightLineColor","valueStyle","getStyleString","addStyle","textWidget","updateValueSizing","valueElement","css","displayElement","innerWidth","unitsElement","outerWidth","titleElement","sparklineElement","render","empty","append","shouldDisplayTitle","title","shouldDisplayUnits","attr","hide","html","valueFontSize","size","font-size","onSizeChanged","onCalculatedValueChanged","settingName","getHeight","loadWidgetPlugin","gaugeID","gaugeWidget","createGauge","rendered","gaugeElement","gaugeObject","JustGage","id","thisGaugeID","min_value","min","max","max_value","label","showInnerShadow","valueFontColor","sparklineWidget","pointerWidget","polygonPath","points","path","i","paper","triangle","strokeWidth","valueDiv","unitsDiv","radius","Math","Raphael","get","circle","transform","pictureWidget","updateImage","widgetElement","imageURL","cacheBreakerURL","indexOf","now","background-image","background-size","background-position","fill_size","indicatorWidget","updateState","indicatorElement","toggleClass","isOn","stateElement","on_text","off_text","Boolean","googleMapWidget","updatePosition","map","marker","currentPosition","lat","lon","newLatLon","google","maps","LatLng","setPosition","panTo","initializeMap","mapOptions","zoom","center","disableDefaultUI","draggable","styles","featureType","elementType","stylers","color","lightness","weight","visibility","saturation","Map","event","addDomListener","cancelBubble","hover","setOptions","zoomControl","Marker","window","gmap_initialize","head","js","htmlWidget","htmlElement"],"mappings":"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"} +||||||| parent of 7a99440... Fix bug with not using calculated value of indicator texts +{"version":3,"file":"freeboard.plugins.min.js","sources":["freeboard.plugins.js"],"names":["jsonDatasource","settings","updateCallback","updateRefresh","refreshTime","updateTimer","clearInterval","setInterval","self","updateNow","this","currentSettings","errorStage","lockErrorStage","refresh","use_thingproxy","requestURL","url","location","protocol","encodeURI","body","JSON","parse","e","$","ajax","dataType","type","method","data","beforeSend","xhr","_","each","headers","header","name","value","isUndefined","setRequestHeader","success","error","onDispose","onSettingsChanged","newSettings","freeboard","loadDatasourcePlugin","type_name","display_name","description","default_value","suffix","options","newInstance","newInstanceCallback","clockDatasource","stopTimer","timer","clearTimeout","date","Date","numeric_value","getTime","full_string_value","toLocaleString","date_string_value","toLocaleDateString","time_string_value","toLocaleTimeString","date_object","easeTransitionText","newValue","textElement","duration","currentValue","text","isNumeric","numParts","toString","split","endingPrecision","length","startingPrecision","jQuery","transitionValue","Number","precisionValue","animate","step","toFixed","done","addValueToSparkline","element","values","SPARKLINE_HISTORY_LENGTH","shift","push","sparkline","height","width","fillColor","lineColor","lineWidth","spotRadius","spotColor","minSpotColor","maxSpotColor","highlightSpotColor","highlightLineColor","valueStyle","getStyleString","addStyle","textWidget","updateValueSizing","units","valueElement","css","displayElement","innerWidth","unitsElement","outerWidth","titleElement","sparklineElement","render","empty","append","shouldDisplayTitle","title","shouldDisplayUnits","attr","hide","html","valueFontSize","size","font-size","onSizeChanged","onCalculatedValueChanged","settingName","getHeight","loadWidgetPlugin","external_scripts","gaugeID","gaugeWidget","createGauge","rendered","gaugeElement","gaugeObject","JustGage","id","thisGaugeID","min_value","min","max","max_value","label","showInnerShadow","valueFontColor","sparklineWidget","pictureWidget","updateImage","widgetElement","imageURL","cacheBreakerURL","indexOf","now","background-image","background-size","background-position","fill_size","indicatorWidget","updateState","indicatorElement","toggleClass","isOn","stateElement","on_text","off_text","Boolean"],"mappings":"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"} +======= +{"version":3,"file":"freeboard.plugins.min.js","sources":["freeboard.plugins.js"],"names":["jsonDatasource","settings","updateCallback","updateRefresh","refreshTime","updateTimer","clearInterval","setInterval","self","updateNow","this","currentSettings","errorStage","lockErrorStage","refresh","use_thingproxy","requestURL","url","location","protocol","encodeURI","body","JSON","parse","e","$","ajax","dataType","type","method","data","beforeSend","xhr","_","each","headers","header","name","value","isUndefined","setRequestHeader","success","error","onDispose","onSettingsChanged","newSettings","freeboard","loadDatasourcePlugin","type_name","display_name","description","default_value","suffix","options","newInstance","newInstanceCallback","clockDatasource","stopTimer","timer","clearTimeout","date","Date","numeric_value","getTime","full_string_value","toLocaleString","date_string_value","toLocaleDateString","time_string_value","toLocaleTimeString","date_object","easeTransitionText","newValue","textElement","duration","currentValue","text","isNumeric","numParts","toString","split","endingPrecision","length","startingPrecision","jQuery","transitionValue","Number","precisionValue","animate","step","toFixed","done","addValueToSparkline","element","values","SPARKLINE_HISTORY_LENGTH","shift","push","sparkline","height","width","fillColor","lineColor","lineWidth","spotRadius","spotColor","minSpotColor","maxSpotColor","highlightSpotColor","highlightLineColor","valueStyle","getStyleString","addStyle","textWidget","updateValueSizing","units","valueElement","css","displayElement","innerWidth","unitsElement","outerWidth","titleElement","sparklineElement","render","empty","append","shouldDisplayTitle","title","shouldDisplayUnits","attr","hide","html","valueFontSize","size","font-size","onSizeChanged","onCalculatedValueChanged","settingName","getHeight","loadWidgetPlugin","external_scripts","gaugeID","gaugeWidget","createGauge","rendered","gaugeElement","gaugeObject","JustGage","id","thisGaugeID","min_value","min","max","max_value","label","showInnerShadow","valueFontColor","sparklineWidget","pictureWidget","updateImage","widgetElement","imageURL","cacheBreakerURL","indexOf","now","background-image","background-size","background-position","fill_size","indicatorWidget","updateState","indicatorElement","toggleClass","isOn","stateElement","onText","offText","Boolean"],"mappings":"CASC,WACA,GAAIA,GAAiB,SAAUC,EAAUC,GASxC,QAASC,GAAcC,GAClBC,GACHC,cAAcD,GAGfA,EAAcE,YAAY,WACzBC,EAAKC,aACHL,GAfJ,GAAII,GAAOE,KACPL,EAAc,KACdM,EAAkBV,EAClBW,EAAa,EAGbC,GAAiB,CAYrBV,GAAwC,IAA1BQ,EAAgBG,SAE9BJ,KAAKD,UAAY,WAChB,KAAKG,EAAa,IAAMD,EAAgBI,gBAAmBH,EAAa,GAAxE,CAKA,GAAII,GAAaL,EAAgBM,GAEf,IAAdL,GAAmBD,EAAgBI,iBACtCC,GAAmC,UAArBE,SAASC,SAAuB,SAAW,SAAW,mCAAqCC,UAAUT,EAAgBM,KAGpI,IAAII,GAAOV,EAAgBU,IAG3B,IAAIA,EACH,IACCA,EAAOC,KAAKC,MAAMF,GAEnB,MAAOG,IAIRC,EAAEC,MACDT,IAAKD,EACLW,SAAyB,GAAdf,EAAmB,QAAU,OACxCgB,KAAMjB,EAAgBkB,QAAU,MAChCC,KAAMT,EACNU,WAAY,SAAUC,GACrB,IACCC,EAAEC,KAAKvB,EAAgBwB,QAAS,SAAUC,GACzC,GAAIC,GAAOD,EAAOC,KACdC,EAAQF,EAAOE,KAEdL,GAAEM,YAAYF,IAAUJ,EAAEM,YAAYD,IAC1CN,EAAIQ,iBAAiBH,EAAMC,KAI9B,MAAOd,MAGRiB,QAAS,SAAUX,GAClBjB,GAAiB,EACjBX,EAAe4B,IAEhBY,MAAO,WACD7B,IAEJD,IACAJ,EAAKC,kBAMTC,KAAKiC,UAAY,WAChBrC,cAAcD,GACdA,EAAc,MAGfK,KAAKkC,kBAAoB,SAAUC,GAClChC,GAAiB,EACjBD,EAAa,EAEbD,EAAkBkC,EAClB1C,EAAwC,IAA1BQ,EAAgBG,SAC9BN,EAAKC,aAIPqC,WAAUC,sBACTC,UAAW,OACX/C,WAEEoC,KAAM,MACNY,aAAc,MACdrB,KAAM,SAGNS,KAAM,iBACNY,aAAc,iBACdC,YAAa,kRACbtB,KAAM,UACNuB,eAAe,IAGfd,KAAM,UACNY,aAAc,gBACdrB,KAAM,SACNwB,OAAQ,UACRD,cAAe,IAGfd,KAAM,SACNY,aAAc,SACdrB,KAAM,SACNyB,UAEEhB,KAAM,MACNC,MAAO,QAGPD,KAAM,OACNC,MAAO,SAGPD,KAAM,MACNC,MAAO,QAGPD,KAAM,SACNC,MAAO,aAKTD,KAAM,OACNY,aAAc,OACdrB,KAAM,OACNsB,YAAa,kEAGbb,KAAM,UACNY,aAAc,UACdrB,KAAM,QACN3B,WAEEoC,KAAM,OACNY,aAAc,OACdrB,KAAM,SAGNS,KAAM,QACNY,aAAc,QACdrB,KAAM,WAKV0B,YAAa,SAAUrD,EAAUsD,EAAqBrD,GACrDqD,EAAoB,GAAIvD,GAAeC,EAAUC,MAInD,IAAIsD,GAAkB,SAAUvD,EAAUC,GAKzC,QAASuD,KACJC,IACHC,aAAaD,GACbA,EAAQ,MAIV,QAASrD,KACRoD,IACAC,EAAQnD,YAAYC,EAAKC,UAAqC,IAA1BE,EAAgBG,SAbrD,GAEI4C,GAFAlD,EAAOE,KACPC,EAAkBV,CAetBS,MAAKD,UAAY,WAChB,GAAImD,GAAO,GAAIC,MAEX/B,GACHgC,cAAeF,EAAKG,UACpBC,kBAAmBJ,EAAKK,iBACxBC,kBAAmBN,EAAKO,qBACxBC,kBAAmBR,EAAKS,qBACxBC,YAAaV,EAGd1D,GAAe4B,IAGhBpB,KAAKiC,UAAY,WAChBc,KAGD/C,KAAKkC,kBAAoB,SAAUC,GAClClC,EAAkBkC,EAClBxC,KAGDA,IAGDyC,WAAUC,sBACTC,UAAa,QACbC,aAAgB,QAChBhD,WAEEoC,KAAQ,UACRY,aAAgB,gBAChBrB,KAAQ,SACRwB,OAAU,UACVD,cAAiB,IAGnBG,YAAa,SAAUrD,EAAUsD,EAAqBrD,GACrDqD,EAAoB,GAAIC,GAAgBvD,EAAUC,UAcpD,WAGG,QAASqE,GAAmBC,EAAUC,EAAaC,GAErD,GAAIC,GAAelD,EAAEgD,GAAaG,MAE5B,IAAID,GAAgBH,EAGpB,GAAI/C,EAAEoD,UAAUL,IAAa/C,EAAEoD,UAAUF,GAAe,CACpD,GAAIG,GAAWN,EAASO,WAAWC,MAAM,KACrCC,EAAkB,CAElBH,GAASI,OAAS,IAClBD,EAAkBH,EAAS,GAAGI,QAGlCJ,EAAWH,EAAaI,WAAWC,MAAM,IACzC,IAAIG,GAAoB,CAEpBL,GAASI,OAAS,IAClBC,EAAoBL,EAAS,GAAGI,QAGpCE,QAAQC,gBAAiBC,OAAOX,GAAeY,eAAgBJ,IAAoBK,SAASH,gBAAiBC,OAAOd,GAAWe,eAAgBN,IAC3IP,SAAUA,EACVe,KAAM,WACFhE,EAAEgD,GAAaG,KAAKlE,KAAK2E,gBAAgBK,QAAQhF,KAAK6E,kBAE1DI,KAAM,WACFlE,EAAEgD,GAAaG,KAAKJ,UAK5B/C,GAAEgD,GAAaG,KAAKJ,GAI5B,QAASoB,GAAoBC,EAASvD,GAClC,GAAIwD,GAASrE,EAAEoE,GAAS/D,OAAOgE,MAE1BA,KACDA,MAGAA,EAAOZ,QAAUa,GACjBD,EAAOE,QAGXF,EAAOG,KAAKX,OAAOhD,IAEnBb,EAAEoE,GAAS/D,OAAOgE,OAASA,EAE3BrE,EAAEoE,GAASK,UAAUJ,GACjBlE,KAAM,OACNuE,OAAQ,OACRC,MAAO,OACPC,WAAW,EACXC,UAAW,UACXC,UAAW,EACXC,WAAY,EACZC,WAAW,EACXC,aAAc,UACdC,aAAc,UACdC,mBAAoB,UACpBC,mBAAoB,YAlE5B,GAAId,GAA2B,IAsE9Be,EAAahE,UAAUiE,eAAe,SAE1CjE,WAAUkE,SAAS,mBAAoBF,EAAa,mBAEpDhE,UAAUkE,SAAS,cAAe,gEAElClE,UAAUkE,SAAS,SAClB,sBAEDlE,UAAUkE,SAAS,SAClB,4BAEDlE,UAAUkE,SAAS,SAClB,0BAEDlE,UAAUkE,SAAS,SAClB,uBAEDlE,UAAUkE,SAAS,YACZ,oNAQPlE,UAAUkE,SAAS,WAClB,0FAKDlE,UAAUkE,SAAS,oBAClB,0DAIDlE,UAAUkE,SAAS,gBAClB,eAEE,IAAIC,GAAa,SAAUhH,GAW7B,QAASiH,KAEJjF,EAAEM,YAAY5B,EAAgBwG,QAAmC,IAAzBxG,EAAgBwG,MAM3DC,EAAaC,IAAI,YAAa,QAJ9BD,EAAaC,IAAI,YAAcC,EAAeC,aAAeC,EAAaC,YAAW,GAAS,MAb1F,GAEI9G,GAAkBV,EACxBqH,EAAiB7F,EAAE,kCACnBiG,EAAejG,EAAE,kDACX2F,EAAe3F,EAAE,gCACjB+F,EAAe/F,EAAE,+BACjBkG,EAAmBlG,EAAE,yCAczBf,MAAKkH,OAAS,SAAU/B,GAC7BpE,EAAEoE,GAASgC,QAEXpG,EAAE6F,GACAQ,OAAOrG,EAAE,6BAA6BqG,OAAOJ,IAC7CI,OAAOrG,EAAE,6BAA6BqG,OAAOrG,EAAE,8CAA8CqG,OAAOV,GAAcU,OAAON,KACzHM,OAAOrG,EAAE,6BAA6BqG,OAAOH,IAE/ClG,EAAEoE,GAASiC,OAAOR,GAElBJ,KAGKxG,KAAKkC,kBAAoB,SAAUC,GAC/BlC,EAAkBkC,CAE3B,IAAIkF,IAAuB9F,EAAEM,YAAYM,EAAYmF,QAA+B,IAArBnF,EAAYmF,MACvEC,GAAuBhG,EAAEM,YAAYM,EAAYsE,QAA+B,IAArBtE,EAAYsE,KAExEtE,GAAYqD,UAEdyB,EAAiBO,KAAK,QAAS,aAIxBP,GAAiB7F,OAAOgE,OAC/B6B,EAAiBE,QACjBF,EAAiBQ,QAGfJ,GAEFL,EAAaU,KAAMnG,EAAEM,YAAYM,EAAYmF,OAAS,GAAKnF,EAAYmF,OACvEN,EAAaQ,KAAK,QAAS,QAI3BR,EAAaG,QACbH,EAAaS,QAGXF,GAEFT,EAAaY,KAAMnG,EAAEM,YAAYM,EAAYsE,OAAS,GAAKtE,EAAYsE,OACvEK,EAAaU,KAAK,QAAS,QAI3BV,EAAaK,QACbL,EAAaW,OAGd,IAAIE,GAAgB,EAEG,QAApBxF,EAAYyF,OAEdD,EAAgB,GAEbxF,EAAYqD,YAEdmC,EAAgB,KAIlBjB,EAAaC,KAAKkB,YAAcF,EAAgB,OAEhDnB,KAGDxG,KAAK8H,cAAgB,WAEpBtB,KAGKxG,KAAK+H,yBAA2B,SAAUC,EAAalE,GAChC,SAAfkE,IAEI/H,EAAgB6E,QAChBjB,EAAmBC,EAAU4C,EAAc,KAG3CA,EAAaxC,KAAKJ,GAGlB7D,EAAgBuF,WAChBN,EAAoB+B,EAAkBnD,KAKlD9D,KAAKiC,UAAY,aAIjBjC,KAAKiI,UAAY,WACb,MAA4B,OAAxBhI,EAAgB2H,MAAiB3H,EAAgBuF,UAC1C,EAGA,GAIfxF,KAAKkC,kBAAkB3C,GAG3B6C,WAAU8F,kBACN5F,UAAW,cACXC,aAAc,OACd4F,kBACI,wDAEJ5I,WAEQoC,KAAM,QACNY,aAAc,QACdrB,KAAM,SAGNS,KAAM,OACNY,aAAc,OACdrB,KAAM,SACNyB,UAEQhB,KAAM,UACNC,MAAO,YAGPD,KAAM,MACNC,MAAO,UAKfD,KAAM,QACNY,aAAc,QACdrB,KAAM,eAGNS,KAAM,YACNY,aAAc,oBACdrB,KAAM,YAGNS,KAAM,UACNY,aAAc,wBACdrB,KAAM,UACNuB,eAAe,IAGfd,KAAM,QACNY,aAAc,QACdrB,KAAM,SAGd0B,YAAa,SAAUrD,EAAUsD,GAC7BA,EAAoB,GAAI0D,GAAWhH,MAI3C,IAAI6I,GAAU,CACjBhG,WAAUkE,SAAS,wBAAyB,mCAC5ClE,UAAUkE,SAAS,gBAAiB,iDAEjC,IAAI+B,GAAc,SAAU9I,GAYxB,QAAS+I,KACAC,IAILC,EAAarB,QAEbsB,EAAc,GAAIC,WACdC,GAAIC,EACJhH,MAAQL,EAAEM,YAAY5B,EAAgB4I,WAAa,EAAI5I,EAAgB4I,UACvEC,IAAMvH,EAAEM,YAAY5B,EAAgB4I,WAAa,EAAI5I,EAAgB4I,UACrEE,IAAMxH,EAAEM,YAAY5B,EAAgB+I,WAAa,EAAI/I,EAAgB+I,UACrEC,MAAOhJ,EAAgBwG,MACvByC,iBAAiB,EACjBC,eAAgB,aAzBxB,GAMIV,GAJAG,EAAc,SAAWR,IACzBpB,EAAejG,EAAE,mCACjByH,EAAezH,EAAE,iCAAmC6H,EAAc,YAGlEL,GAAW,EAEXtI,EAAkBV,CAoBtBS,MAAKkH,OAAS,SAAU/B,GACpBoD,GAAW,EACXxH,EAAEoE,GAASiC,OAAOJ,GAAcI,OAAOrG,EAAE,4CAA4CqG,OAAOoB,IAC5FF,KAGJtI,KAAKkC,kBAAoB,SAAUC,GAC3BA,EAAY0G,WAAa5I,EAAgB4I,WAAa1G,EAAY6G,WAAa/I,EAAgB+I,WAAa7G,EAAYsE,OAASxG,EAAgBwG,OACjJxG,EAAkBkC,EAClBmG,KAGArI,EAAkBkC,EAGtB6E,EAAaU,KAAKvF,EAAYmF,QAGlCtH,KAAK+H,yBAA2B,SAAUC,EAAalE,GAC9CvC,EAAEM,YAAY4G,IACfA,EAAYrI,QAAQwE,OAAOd,KAInC9D,KAAKiC,UAAY,aAGjBjC,KAAKiI,UAAY,WACb,MAAO,IAGXjI,KAAKkC,kBAAkB3C,GAG3B6C,WAAU8F,kBACN5F,UAAW,QACXC,aAAc,QACd4F,kBACI,oDACA,kDAEJ5I,WAEQoC,KAAM,QACNY,aAAc,QACdrB,KAAM,SAGNS,KAAM,QACNY,aAAc,QACdrB,KAAM,eAGNS,KAAM,QACNY,aAAc,QACdrB,KAAM,SAGNS,KAAM,YACNY,aAAc,UACdrB,KAAM,OACNuB,cAAe,IAGfd,KAAM,YACNY,aAAc,UACdrB,KAAM,OACNuB,cAAe,MAGvBG,YAAa,SAAUrD,EAAUsD,GAC7BA,EAAoB,GAAIwF,GAAY9I,OAK/C6C,UAAUkE,SAAS,aAAc,2BAC9B,IAAI8C,GAAkB,SAAU7J,GAC5B,GAEIyH,GAAejG,EAAE,mCACjBkG,EAAmBlG,EAAE,gCAEzBf,MAAKkH,OAAS,SAAU/B,GACpBpE,EAAEoE,GAASiC,OAAOJ,GAAcI,OAAOH,IAG3CjH,KAAKkC,kBAAoB,SAAUC,GAC/B6E,EAAaU,KAAMnG,EAAEM,YAAYM,EAAYmF,OAAS,GAAKnF,EAAYmF,QAG3EtH,KAAK+H,yBAA2B,SAAUC,EAAalE,GACnDoB,EAAoB+B,EAAkBnD,IAG1C9D,KAAKiC,UAAY,aAGjBjC,KAAKiI,UAAY,WACb,MAAO,IAGXjI,KAAKkC,kBAAkB3C,GAG3B6C,WAAU8F,kBACN5F,UAAW,YACXC,aAAc,YACd4F,kBACI,wDAEJ5I,WAEQoC,KAAM,QACNY,aAAc,QACdrB,KAAM,SAGNS,KAAM,QACNY,aAAc,QACdrB,KAAM,eAGd0B,YAAa,SAAUrD,EAAUsD,GAC7BA,EAAoB,GAAIuG,GAAgB7J,MAIhD,IAAI8J,GAAgB,SAAS9J,GAOzB,QAASwD,KAEFC,IAECpD,cAAcoD,GACdA,EAAQ,MAIhB,QAASsG,KAEL,GAAGC,GAAiBC,EACpB,CACI,GAAIC,GAAkBD,GAAqC,IAAzBA,EAASE,QAAQ,KAAa,IAAM,KAAOvG,KAAKwG,KAElF5I,GAAEwI,GAAe5C,KACbiD,mBAAsB,OAASH,EAAkB,OArB7D,GACIF,GACAvG,EACAwG,CAuBJxJ,MAAKkH,OAAS,SAAS/B,GAEnBpE,EAAEoE,GAASwB,KACPjB,MAAQ,OACRD,OAAQ,OACRoE,kBAAoB,QACpBC,sBAAwB,WAG5BP,EAAgBpE,GAGpBnF,KAAKkC,kBAAoB,SAASC,GAE9BY,IAEGZ,EAAY/B,SAAW+B,EAAY/B,QAAU,IAE5C4C,EAAQnD,YAAYyJ,EAA2C,IAA9B1E,OAAOzC,EAAY/B,YAI5DJ,KAAK+H,yBAA2B,SAASC,EAAalE,GAEhC,OAAfkE,IAECwB,EAAW1F,GAGfwF,KAGJtJ,KAAKiC,UAAY,WAEbc,KAGJ/C,KAAKiI,UAAY,WAEb,MAAO,IAGXjI,KAAKkC,kBAAkB3C,GAG3B6C,WAAU8F,kBACN5F,UAAW,UACXC,aAAc,UACdwH,WAAW,EACXxK,WAEQoC,KAAM,MACNY,aAAc,YACdrB,KAAM,eAGNA,KAAQ,SACRqB,aAAgB,gBAChBZ,KAAQ,UACRe,OAAU,UACVF,YAAc,0DAGtBI,YAAa,SAAUrD,EAAUsD,GAC7BA,EAAoB,GAAIwG,GAAc9J,OAIjD6C,UAAUkE,SAAS,mBAAoB,wIACvClE,UAAUkE,SAAS,sBAAuB,mFAC1ClE,UAAUkE,SAAS,kBAAmB,mBACnC,IAAI0D,GAAkB,SAAUzK,GAU5B,QAAS0K,KACLC,EAAiBC,YAAY,KAAMC,GAG/BC,EAAanG,KADbkG,EACkBE,EAGAC,GAhB1B,GACIvD,GAAejG,EAAE,mCACjBsJ,EAAetJ,EAAE,sCACjBmJ,EAAmBnJ,EAAE,uCACrBd,EAAkBV,EAClB6K,GAAO,EACVE,EAAS,GACTC,EAAU,EAaXvK,MAAKkH,OAAS,SAAU/B,GACpBpE,EAAEoE,GAASiC,OAAOJ,GAAcI,OAAO8C,GAAkB9C,OAAOiD,IAGpErK,KAAKkC,kBAAoB,SAAUC,GAC/BlC,EAAkBkC,EAClB6E,EAAaU,KAAMnG,EAAEM,YAAYM,EAAYmF,OAAS,GAAKnF,EAAYmF,OACvE2C,KAGJjK,KAAK+H,yBAA2B,SAAUC,EAAalE,GAC5D,OAAQkE,GACR,IAAK,QACJoC,EAAOI,QAAQ1G,EACf,MACD,KAAK,UACJwG,EAASxG,CACT,MACD,KAAK,WACJyG,EAAUzG,EAIFmG,KAGJjK,KAAKiC,UAAY,aAGjBjC,KAAKiI,UAAY,WACb,MAAO,IAGXjI,KAAKkC,kBAAkB3C,GAG3B6C,WAAU8F,kBACN5F,UAAW,YACXC,aAAc,kBACdhD,WAEQoC,KAAM,QACNY,aAAc,QACdrB,KAAM,SAGNS,KAAM,QACNY,aAAc,QACdrB,KAAM,eAGNS,KAAM,UACNY,aAAc,UACdrB,KAAM,eAGNS,KAAM,WACNY,aAAc,WACdrB,KAAM,eAGd0B,YAAa,SAAUrD,EAAUsD,GAC7BA,EAAoB,GAAImH,GAAgBzK"} +>>>>>>> 7a99440... Fix bug with not using calculated value of indicator texts diff --git a/plugins/freeboard/freeboard.widgets.js b/plugins/freeboard/freeboard.widgets.js index 9158bd3a..c96fa31c 100755 --- a/plugins/freeboard/freeboard.widgets.js +++ b/plugins/freeboard/freeboard.widgets.js @@ -753,15 +753,17 @@ var indicatorElement = $('
                            '); var currentSettings = settings; var isOn = false; + var onText = ""; + var offText = ""; function updateState() { indicatorElement.toggleClass("on", isOn); if (isOn) { - stateElement.text((_.isUndefined(currentSettings.on_text) ? "" : currentSettings.on_text)); + stateElement.text(onText); } else { - stateElement.text((_.isUndefined(currentSettings.off_text) ? "" : currentSettings.off_text)); + stateElement.text(offText); } } @@ -776,8 +778,16 @@ } this.onCalculatedValueChanged = function (settingName, newValue) { - if (settingName == "value") { + switch (settingName) { + case "value": isOn = Boolean(newValue); + break; + case "on_text": + onText = newValue; + break; + case "off_text": + offText = newValue; + break; } updateState();