diff --git a/client/galaxy/scripts/layout/scratchbook.js b/client/galaxy/scripts/layout/scratchbook.js index d55d9735765..b8096bbfda2 100644 --- a/client/galaxy/scripts/layout/scratchbook.js +++ b/client/galaxy/scripts/layout/scratchbook.js @@ -4,9 +4,10 @@ define( "mvc/ui/ui-frames", "mvc/dataset/data", "viz/visualization", - "viz/trackster" + "viz/trackster", + "utils/localization" ], - function(Frames, DATA, visualization, trackster) { + function(Frames, DATA, visualization, trackster, _l) { return Backbone.View.extend({ initialize: function(options) { var self = this; diff --git a/static/maps/layout/scratchbook.js.map b/static/maps/layout/scratchbook.js.map index 4c951fdefd2..54a2f5c48f4 100644 --- a/static/maps/layout/scratchbook.js.map +++ b/static/maps/layout/scratchbook.js.map @@ -1 +1 @@ -{"version":3,"sources":["layout/scratchbook.js"],"names":["define","initialize","options","trackster","Backbone","frames","extend","setElement","self","buttonActive","id","icon","Frames","View","visible","tooltip","this","$el","onclick","collection","add","toggle","show_note","note_cls","active","set","onbeforeunload","length","buttonLoad","note","hide","show","on","history_cache","current_dataset","Galaxy","currHistoryPanel","history_id","addDataset","dataset_id","_findDataset","history_details","dataset_list","name","pos","offset","get","dataset_ids","each","model","_loadDatasetOffset","dataset","new_dataset_id","frame","config","_loadDataset","indexOf","disabled","new_dataset","trigger","is_tabular","createTabularDatasetChunkedView","TabularDataset","viz_id","TracksterUI","stand_alone","callback","latest_revision","viz","$","when","fetch","drawables","_","find","data_type","d","hda_ldda","title","view","frame_config","DATA","noscratchbook","window","toJSON","location","$galaxy_main","root","content","addTrackster","visualization","Visualization","then","ui","type","parent_elt","view_config","container","dbkey","create_visualization","viewport","bookmarks","target","open","url","parent","document","attr"],"mappings":"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","file":"../../scripts/layout/scratchbook.js","sourcesContent":["/** Frame manager uses the ui-frames to create the scratch book masthead icon and functionality **/\ndefine(\n [\n \"mvc/ui/ui-frames\",\n \"mvc/dataset/data\",\n \"viz/visualization\",\n \"viz/trackster\"\n ],\n function(Frames, DATA, visualization, trackster) {\n return Backbone.View.extend({\n initialize: function(options) {\n var self = this;\n options = options || {};\n this.frames = new Frames.View({ visible: false });\n this.setElement(this.frames.$el);\n this.buttonActive = options.collection.add({\n id: \"enable-scratchbook\",\n icon: \"fa-th\",\n tooltip: _l(\"Enable/Disable Scratchbook\"),\n onclick: function() {\n self.active = !self.active;\n self.buttonActive.set({\n toggle: self.active,\n show_note: self.active,\n note_cls: self.active && \"fa fa-check\"\n });\n !self.active && self.frames.hide();\n },\n onbeforeunload: function() {\n if (self.frames.length() > 0) {\n return (\n \"You opened \" +\n self.frames.length() +\n \" frame(s) which will be lost.\"\n );\n }\n }\n });\n this.buttonLoad = options.collection.add({\n id: \"show-scratchbook\",\n icon: \"fa-eye\",\n tooltip: _l(\"Show/Hide Scratchbook\"),\n show_note: true,\n visible: false,\n onclick: function(e) {\n self.frames.visible\n ? self.frames.hide()\n : self.frames.show();\n }\n });\n this.frames\n .on(\"add remove\", function() {\n this.visible && this.length() == 0 && this.hide();\n self.buttonLoad.set({\n note: this.length(),\n visible: this.length() > 0\n });\n })\n .on(\"show hide \", function() {\n self.buttonLoad.set({\n toggle: this.visible,\n icon: (this.visible && \"fa-eye\") || \"fa-eye-slash\"\n });\n });\n this.history_cache = {};\n },\n\n /** Add a dataset to the frames */\n addDataset: function(dataset_id) {\n var self = this;\n var current_dataset = null;\n if (Galaxy && Galaxy.currHistoryPanel) {\n var history_id =\n Galaxy.currHistoryPanel.collection.historyId;\n this.history_cache[history_id] = {\n name: Galaxy.currHistoryPanel.model.get(\"name\"),\n dataset_ids: []\n };\n Galaxy.currHistoryPanel.collection.each(function(model) {\n !model.get(\"deleted\") &&\n model.get(\"visible\") &&\n self.history_cache[history_id].dataset_ids.push(\n model.get(\"id\")\n );\n });\n }\n var _findDataset = function(dataset, offset) {\n if (dataset) {\n var history_details =\n self.history_cache[dataset.get(\"history_id\")];\n if (history_details && history_details.dataset_ids) {\n var dataset_list = history_details.dataset_ids;\n var pos = dataset_list.indexOf(dataset.get(\"id\"));\n if (\n pos !== -1 &&\n pos + offset >= 0 &&\n pos + offset < dataset_list.length\n ) {\n return dataset_list[pos + offset];\n }\n }\n }\n };\n var _loadDatasetOffset = function(dataset, offset, frame) {\n var new_dataset_id = _findDataset(dataset, offset);\n if (new_dataset_id) {\n self._loadDataset(new_dataset_id, function(\n new_dataset,\n config\n ) {\n current_dataset = new_dataset;\n frame.model.set(config);\n });\n } else {\n frame.model.trigger(\"change\");\n }\n };\n this._loadDataset(dataset_id, function(dataset, config) {\n current_dataset = dataset;\n self.add(\n _.extend(\n {\n menu: [\n {\n icon: \"fa fa-chevron-circle-left\",\n tooltip: \"Previous in History\",\n onclick: function(frame) {\n _loadDatasetOffset(\n current_dataset,\n -1,\n frame\n );\n },\n disabled: function() {\n return !_findDataset(\n current_dataset,\n -1\n );\n }\n },\n {\n icon: \"fa fa-chevron-circle-right\",\n tooltip: \"Next in History\",\n onclick: function(frame) {\n _loadDatasetOffset(\n current_dataset,\n 1,\n frame\n );\n },\n disabled: function() {\n return !_findDataset(\n current_dataset,\n 1\n );\n }\n }\n ]\n },\n config\n )\n );\n });\n },\n\n _loadDataset: function(dataset_id, callback) {\n var self = this;\n var dataset = new DATA.Dataset({ id: dataset_id });\n $.when(dataset.fetch()).then(function() {\n var is_tabular = _.find([\"tabular\", \"interval\"], function(\n data_type\n ) {\n return (\n dataset.get(\"data_type\").indexOf(data_type) !== -1\n );\n });\n var title = dataset.get(\"name\");\n var history_details =\n self.history_cache[dataset.get(\"history_id\")];\n if (history_details) {\n title = history_details.name + \": \" + title;\n }\n callback(\n dataset,\n is_tabular\n ? {\n title: title,\n url: null,\n content: DATA.createTabularDatasetChunkedView(\n {\n model: new DATA.TabularDataset(\n dataset.toJSON()\n ),\n embedded: true,\n height: \"100%\"\n }\n ).$el\n }\n : {\n title: title,\n url:\n Galaxy.root +\n \"datasets/\" +\n dataset_id +\n \"/display/?preview=True\",\n content: null\n }\n );\n });\n },\n\n /** Add a trackster visualization to the frames. */\n addTrackster: function(viz_id) {\n var self = this;\n var viz = new visualization.Visualization({ id: viz_id });\n $.when(viz.fetch()).then(function() {\n var ui = new trackster.TracksterUI(Galaxy.root);\n\n // Construct frame config based on dataset's type.\n var frame_config = {\n title: viz.get(\"name\"),\n type: \"other\",\n content: function(parent_elt) {\n // Create view config.\n var view_config = {\n container: parent_elt,\n name: viz.get(\"title\"),\n id: viz.id,\n // FIXME: this will not work with custom builds b/c the dbkey needed to be encoded.\n dbkey: viz.get(\"dbkey\"),\n stand_alone: false\n },\n latest_revision = viz.get(\"latest_revision\"),\n drawables =\n latest_revision.config.view.drawables;\n\n // Set up datasets in drawables.\n _.each(drawables, function(d) {\n d.dataset = {\n hda_ldda: d.hda_ldda,\n id: d.dataset_id\n };\n });\n view = ui.create_visualization(\n view_config,\n latest_revision.config.viewport,\n latest_revision.config.view.drawables,\n latest_revision.config.bookmarks,\n false\n );\n }\n };\n self.add(frame_config);\n });\n },\n\n /** Add and display a new frame/window based on options. */\n add: function(options) {\n if (options.target == \"_blank\") {\n window.open(options.url);\n } else if (\n options.target == \"_top\" ||\n options.target == \"_parent\" ||\n options.target == \"_self\"\n ) {\n window.location = options.url;\n } else if (!this.active || options.noscratchbook) {\n var $galaxy_main = $(window.parent.document).find(\n \"#galaxy_main\"\n );\n if (\n options.target == \"galaxy_main\" ||\n options.target == \"center\"\n ) {\n if ($galaxy_main.length === 0) {\n window.location =\n options.url +\n (options.url.indexOf(\"?\") == -1 ? \"?\" : \"&\") +\n \"use_panels=True\";\n } else {\n $galaxy_main.attr(\"src\", options.url);\n }\n } else window.location = options.url;\n } else {\n this.frames.add(options);\n }\n }\n });\n }\n);\n"]} \ No newline at end of file +{"version":3,"sources":["layout/scratchbook.js"],"names":["define","initialize","Frames","frames","visualization","View","visible","Backbone","setElement","buttonActive","options","id","this","icon","tooltip","_l","onclick","$el","self","active","add","toggle","show_note","note_cls","onbeforeunload","length","hide","buttonLoad","collection","note","e","history_cache","set","dataset_id","Galaxy","currHistoryPanel","history_id","name","addDataset","_findDataset","dataset","current_dataset","history_details","dataset_list","pos","offset","dataset_ids","each","model","get","_loadDatasetOffset","new_dataset_id","push","frame","_loadDataset","indexOf","config","trigger","callback","is_tabular","DATA","TabularDataset","viz_id","trackster","TracksterUI","container","drawables","latest_revision","$","when","fetch","then","_","find","hda_ldda","d","view","create_visualization","title","url","target","location","window","parent","document","toJSON","height","root","content","addTrackster","viz","Visualization","ui","frame_config","type","parent_elt","view_config","dbkey","stand_alone","viewport","bookmarks","open","noscratchbook","$galaxy_main","attr"],"mappings":"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","file":"../../scripts/layout/scratchbook.js","sourcesContent":["/** Frame manager uses the ui-frames to create the scratch book masthead icon and functionality **/\ndefine(\n [\n \"mvc/ui/ui-frames\",\n \"mvc/dataset/data\",\n \"viz/visualization\",\n \"viz/trackster\",\n \"utils/localization\"\n ],\n function(Frames, DATA, visualization, trackster, _l) {\n return Backbone.View.extend({\n initialize: function(options) {\n var self = this;\n options = options || {};\n this.frames = new Frames.View({ visible: false });\n this.setElement(this.frames.$el);\n this.buttonActive = options.collection.add({\n id: \"enable-scratchbook\",\n icon: \"fa-th\",\n tooltip: _l(\"Enable/Disable Scratchbook\"),\n onclick: function() {\n self.active = !self.active;\n self.buttonActive.set({\n toggle: self.active,\n show_note: self.active,\n note_cls: self.active && \"fa fa-check\"\n });\n !self.active && self.frames.hide();\n },\n onbeforeunload: function() {\n if (self.frames.length() > 0) {\n return (\n \"You opened \" +\n self.frames.length() +\n \" frame(s) which will be lost.\"\n );\n }\n }\n });\n this.buttonLoad = options.collection.add({\n id: \"show-scratchbook\",\n icon: \"fa-eye\",\n tooltip: _l(\"Show/Hide Scratchbook\"),\n show_note: true,\n visible: false,\n onclick: function(e) {\n self.frames.visible\n ? self.frames.hide()\n : self.frames.show();\n }\n });\n this.frames\n .on(\"add remove\", function() {\n this.visible && this.length() == 0 && this.hide();\n self.buttonLoad.set({\n note: this.length(),\n visible: this.length() > 0\n });\n })\n .on(\"show hide \", function() {\n self.buttonLoad.set({\n toggle: this.visible,\n icon: (this.visible && \"fa-eye\") || \"fa-eye-slash\"\n });\n });\n this.history_cache = {};\n },\n\n /** Add a dataset to the frames */\n addDataset: function(dataset_id) {\n var self = this;\n var current_dataset = null;\n if (Galaxy && Galaxy.currHistoryPanel) {\n var history_id =\n Galaxy.currHistoryPanel.collection.historyId;\n this.history_cache[history_id] = {\n name: Galaxy.currHistoryPanel.model.get(\"name\"),\n dataset_ids: []\n };\n Galaxy.currHistoryPanel.collection.each(function(model) {\n !model.get(\"deleted\") &&\n model.get(\"visible\") &&\n self.history_cache[history_id].dataset_ids.push(\n model.get(\"id\")\n );\n });\n }\n var _findDataset = function(dataset, offset) {\n if (dataset) {\n var history_details =\n self.history_cache[dataset.get(\"history_id\")];\n if (history_details && history_details.dataset_ids) {\n var dataset_list = history_details.dataset_ids;\n var pos = dataset_list.indexOf(dataset.get(\"id\"));\n if (\n pos !== -1 &&\n pos + offset >= 0 &&\n pos + offset < dataset_list.length\n ) {\n return dataset_list[pos + offset];\n }\n }\n }\n };\n var _loadDatasetOffset = function(dataset, offset, frame) {\n var new_dataset_id = _findDataset(dataset, offset);\n if (new_dataset_id) {\n self._loadDataset(new_dataset_id, function(\n new_dataset,\n config\n ) {\n current_dataset = new_dataset;\n frame.model.set(config);\n });\n } else {\n frame.model.trigger(\"change\");\n }\n };\n this._loadDataset(dataset_id, function(dataset, config) {\n current_dataset = dataset;\n self.add(\n _.extend(\n {\n menu: [\n {\n icon: \"fa fa-chevron-circle-left\",\n tooltip: \"Previous in History\",\n onclick: function(frame) {\n _loadDatasetOffset(\n current_dataset,\n -1,\n frame\n );\n },\n disabled: function() {\n return !_findDataset(\n current_dataset,\n -1\n );\n }\n },\n {\n icon: \"fa fa-chevron-circle-right\",\n tooltip: \"Next in History\",\n onclick: function(frame) {\n _loadDatasetOffset(\n current_dataset,\n 1,\n frame\n );\n },\n disabled: function() {\n return !_findDataset(\n current_dataset,\n 1\n );\n }\n }\n ]\n },\n config\n )\n );\n });\n },\n\n _loadDataset: function(dataset_id, callback) {\n var self = this;\n var dataset = new DATA.Dataset({ id: dataset_id });\n $.when(dataset.fetch()).then(function() {\n var is_tabular = _.find([\"tabular\", \"interval\"], function(\n data_type\n ) {\n return (\n dataset.get(\"data_type\").indexOf(data_type) !== -1\n );\n });\n var title = dataset.get(\"name\");\n var history_details =\n self.history_cache[dataset.get(\"history_id\")];\n if (history_details) {\n title = history_details.name + \": \" + title;\n }\n callback(\n dataset,\n is_tabular\n ? {\n title: title,\n url: null,\n content: DATA.createTabularDatasetChunkedView(\n {\n model: new DATA.TabularDataset(\n dataset.toJSON()\n ),\n embedded: true,\n height: \"100%\"\n }\n ).$el\n }\n : {\n title: title,\n url:\n Galaxy.root +\n \"datasets/\" +\n dataset_id +\n \"/display/?preview=True\",\n content: null\n }\n );\n });\n },\n\n /** Add a trackster visualization to the frames. */\n addTrackster: function(viz_id) {\n var self = this;\n var viz = new visualization.Visualization({ id: viz_id });\n $.when(viz.fetch()).then(function() {\n var ui = new trackster.TracksterUI(Galaxy.root);\n\n // Construct frame config based on dataset's type.\n var frame_config = {\n title: viz.get(\"name\"),\n type: \"other\",\n content: function(parent_elt) {\n // Create view config.\n var view_config = {\n container: parent_elt,\n name: viz.get(\"title\"),\n id: viz.id,\n // FIXME: this will not work with custom builds b/c the dbkey needed to be encoded.\n dbkey: viz.get(\"dbkey\"),\n stand_alone: false\n },\n latest_revision = viz.get(\"latest_revision\"),\n drawables =\n latest_revision.config.view.drawables;\n\n // Set up datasets in drawables.\n _.each(drawables, function(d) {\n d.dataset = {\n hda_ldda: d.hda_ldda,\n id: d.dataset_id\n };\n });\n view = ui.create_visualization(\n view_config,\n latest_revision.config.viewport,\n latest_revision.config.view.drawables,\n latest_revision.config.bookmarks,\n false\n );\n }\n };\n self.add(frame_config);\n });\n },\n\n /** Add and display a new frame/window based on options. */\n add: function(options) {\n if (options.target == \"_blank\") {\n window.open(options.url);\n } else if (\n options.target == \"_top\" ||\n options.target == \"_parent\" ||\n options.target == \"_self\"\n ) {\n window.location = options.url;\n } else if (!this.active || options.noscratchbook) {\n var $galaxy_main = $(window.parent.document).find(\n \"#galaxy_main\"\n );\n if (\n options.target == \"galaxy_main\" ||\n options.target == \"center\"\n ) {\n if ($galaxy_main.length === 0) {\n window.location =\n options.url +\n (options.url.indexOf(\"?\") == -1 ? \"?\" : \"&\") +\n \"use_panels=True\";\n } else {\n $galaxy_main.attr(\"src\", options.url);\n }\n } else window.location = options.url;\n } else {\n this.frames.add(options);\n }\n }\n });\n }\n);\n"]} \ No newline at end of file diff --git a/static/scripts/bundled/libs.bundled.js b/static/scripts/bundled/libs.bundled.js index 07e93dcc57b..99f699e9ee5 100644 --- a/static/scripts/bundled/libs.bundled.js +++ b/static/scripts/bundled/libs.bundled.js @@ -48,5 +48,5 @@ return s&&(r.length<4&&n("jQuery.fn.attr( props, pass ) is deprecated"),e&&!u.te * @license MIT | GPL | Apache 2.0, see LICENSE.txt * @see https://github.com/dyve/jquery-autocomplete */ -!function(t){"use strict";t.fn.autocomplete_verheul=function(e){var i;arguments.length>1?(i=e,e=arguments[1],e.url=i):"string"==typeof e&&(i=e,e={url:i});var n=t.extend({},t.fn.autocomplete_verheul.defaults,e);return this.each(function(){var e=t(this);e.data("autocompleter",new t.Autocompleter(e,t.meta?t.extend({},n,e.data()):n))})},t.fn.autocomplete_verheul.defaults={inputClass:"acInput",loadingClass:"acLoading",resultsClass:"acResults",selectClass:"acSelect",queryParamName:"q",extraParams:{},remoteDataType:!1,lineSeparator:"\n",cellSeparator:"|",minChars:2,maxItemsToShow:10,delay:400,useCache:!0,maxCacheLength:10,matchSubset:!0,matchCase:!1,matchInside:!0,mustMatch:!1,selectFirst:!1,selectOnly:!1,showResult:null,preventDefaultReturn:1,preventDefaultTab:0,autoFill:!1,filterResults:!0,filter:!0,sortResults:!0,sortFunction:null,onItemSelect:null,onNoMatch:null,onFinish:null,matchStringConverter:null,beforeUseConverter:null,autoWidth:"min-width",useDelimiter:!1,delimiterChar:",",delimiterKeyCode:188,processData:null,onError:null,enabled:!0};var e=function(e){var i,n,a=typeof e;return"string"===a?(i=e,n={}):t.isArray(e)?(i=e[0],n=e.slice(1)):"object"===a&&(i=e.value,n=e.data),i=String(i),"object"!=typeof n&&(n={}),{value:i,data:n}},i=function(t,e,i){var n=parseInt(t,10);return i=i||{},(isNaN(n)||i.min&&ne?1:t").hide().addClass(this.options.resultsClass).css({position:"absolute"}),t("body").append(this.dom.$results),e.keydown(function(t){switch(a.lastKeyPressed_=t.keyCode,a.lastKeyPressed_){case a.options.delimiterKeyCode:a.options.useDelimiter&&a.active_&&a.selectCurrent();break;case 35:case 36:case 16:case 17:case 18:case 37:case 39:break;case 38:return t.preventDefault(),a.active_?a.focusPrev():a.activate(),!1;case 40:return t.preventDefault(),a.active_?a.focusNext():a.activate(),!1;case 9:if(a.active_&&(a.selectCurrent(),a.options.preventDefaultTab))return t.preventDefault(),!1;if(2===a.options.preventDefaultTab)return t.preventDefault(),!1;break;case 13:if(a.active_&&(a.selectCurrent(),a.options.preventDefaultReturn))return t.preventDefault(),!1;if(2===a.options.preventDefaultReturn)return t.preventDefault(),!1;break;case 27:if(a.active_)return t.preventDefault(),a.deactivate(!0),!1;break;default:a.activate()}}),e.on("paste",function(){a.activate()});var s=function(){a.deactivate(!0)};e.blur(function(){a.finishOnBlur_&&(a.finishTimeout_=setTimeout(s,200))}),e.parents("form").on("submit",s)},t.Autocompleter.prototype.position=function(){var e=this.dom.$elem.offset(),i=this.dom.$results.outerHeight(),n=t(window).outerHeight(),a=e.top+this.dom.$elem.outerHeight(),s=a+i,o={top:a,left:e.left};if(s>n){var r=e.top-i;r>=0&&(o.top=r)}this.dom.$results.css(o)},t.Autocompleter.prototype.cacheRead=function(t){var e,i,n,a,s;if(this.options.useCache)for(t=String(t),e=t.length,i=this.options.matchSubset?1:e;i<=e;){for(a=this.options.matchInside?e-i:0,s=0;s<=a;){if(n=t.substr(0,i),void 0!==this.cacheData_[n])return this.cacheData_[n];s++}i++}return!1},t.Autocompleter.prototype.cacheWrite=function(t,e){return!!this.options.useCache&&(this.cacheLength_>=this.options.maxCacheLength&&this.cacheFlush(),t=String(t),void 0!==this.cacheData_[t]&&this.cacheLength_++,this.cacheData_[t]=e,this.cacheData_[t])},t.Autocompleter.prototype.cacheFlush=function(){this.cacheData_={},this.cacheLength_=0},t.Autocompleter.prototype.callHook=function(e,i){var n=this.options[e];return!(!n||!t.isFunction(n))&&n(i,this)},t.Autocompleter.prototype.activate=function(){if(this.options.enabled){var t=this;this.keyTimeout_&&clearTimeout(this.keyTimeout_),this.keyTimeout_=setTimeout(function(){t.activateNow()},this.options.delay)}},t.Autocompleter.prototype.activateNow=function(){var t=this.beforeUseConverter(this.dom.$elem.val());t!==this.lastProcessedValue_&&t!==this.lastSelectedValue_&&this.fetchData(t)},t.Autocompleter.prototype.fetchData=function(t){var e=this,i=function(t,i){e.options.processData&&(t=e.options.processData(t)),e.showResults(e.filterResults(t,i),i)};this.lastProcessedValue_=t,t.length-1:0===a}return!0},t.Autocompleter.prototype.filterResult=function(e,i){return!1===this.options.filter||(t.isFunction(this.options.filter)?this.options.filter(e,i):this.defaultFilter(e,i))},t.Autocompleter.prototype.filterResults=function(t,i){var n,a,s=[];for(n=0;n0&&this.options.maxItemsToShow");return n.html(this.showResult(e.value,e.data)),n.data({value:e.value,data:e.data}).click(function(){i.selectItem(n)}).mousedown(i.disableFinishOnBlur).mouseup(i.enableFinishOnBlur),n},t.Autocompleter.prototype.getItems=function(){return t(">ul>li",this.dom.$results)},t.Autocompleter.prototype.showResults=function(e,i){var n,a,s,o,r=e.length,l=this,h=t("
    "),c=!1,u=!1;if(r){for(n=0;n

    ").text(e).html()},t.Autocompleter.prototype.autoFill=function(t,e){var i,n,a,s;if(this.options.autoFill&&8!==this.lastKeyPressed_&&(i=String(t).toLowerCase(),n=String(e).toLowerCase(),a=t.length,s=e.length,i.substr(0,s)===n)){var o=this.getDelimiterOffsets(),r=o.start?" ":"";this.setValue(r+t);var l=s+o.start+r.length,h=a+o.start+r.length;return this.selectRange(l,h),!0}return!1},t.Autocompleter.prototype.focusNext=function(){this.focusMove(1)},t.Autocompleter.prototype.focusPrev=function(){this.focusMove(-1)},t.Autocompleter.prototype.focusMove=function(e){var n=this.getItems();if(e=i(e,0))for(var a=0;a=n.length&&(e=n.length-1),i=t(n[e])):i=t(e),i&&i.addClass(this.selectClass_).addClass(this.options.selectClass))},t.Autocompleter.prototype.selectCurrent=function(){var e=t("li."+this.selectClass_,this.dom.$results);1===e.length?this.selectItem(e):this.deactivate(!1)},t.Autocompleter.prototype.selectItem=function(t){var e=t.data("value"),i=t.data("data"),n=this.displayValue(e,i),a=this.beforeUseConverter(n);this.lastProcessedValue_=a,this.lastSelectedValue_=a;var s=this.getDelimiterOffsets(),o=this.options.delimiterChar,r=this.dom.$elem,l=0;this.options.useDelimiter&&(r.val().substring(s.start-1,s.start)==o&&" "!=o&&(n=" "+n),r.val().substring(s.end,s.end+1)!=o&&this.lastKeyPressed_!=this.options.delimiterKeyCode?n+=o:l=1),this.setValue(n),this.setCaret(s.start+n.length+l),this.callHook("onItemSelect",{value:e,data:i}),this.deactivate(!0),r.focus()},t.Autocompleter.prototype.displayValue=function(e,i){return t.isFunction(this.options.displayValue)?this.options.displayValue(e,i):e},t.Autocompleter.prototype.hideResults=function(){this.dom.$results.hide()},t.Autocompleter.prototype.deactivate=function(t){this.finishTimeout_&&clearTimeout(this.finishTimeout_),this.keyTimeout_&&clearTimeout(this.keyTimeout_),t&&(this.lastProcessedValue_!==this.lastSelectedValue_&&(this.options.mustMatch&&this.setValue(""),this.callHook("onNoMatch")),this.active_&&this.callHook("onFinish"),this.lastKeyPressed_=null,this.lastProcessedValue_=null,this.lastSelectedValue_=null,this.active_=!1),this.hideResults()},t.Autocompleter.prototype.selectRange=function(t,e){var i=this.dom.$elem.get(0);if(i.setSelectionRange)i.focus(),i.setSelectionRange(t,e);else if(i.createTextRange){var n=i.createTextRange();n.collapse(!0),n.moveEnd("character",e),n.moveStart("character",t),n.select()}},t.Autocompleter.prototype.setCaret=function(t){this.selectRange(t,t)},t.Autocompleter.prototype.getCaret=function(){var t,e,i,n,a,s,o=this.dom.$elem,r=o[0];return r.createTextRange?(e=document.selection,"textarea"!=r.tagName.toLowerCase()?(t=o.val(),i=e.createRange().duplicate(),i.moveEnd("character",t.length),n=""===i.text?t.length:t.lastIndexOf(i.text),i=e.createRange().duplicate(),i.moveStart("character",-t.length),a=i.text.length):(i=e.createRange(),s=i.duplicate(),s.moveToElementText(r),s.setEndPoint("EndToEnd",i),n=s.text.length-i.text.length,a=n+i.text.length)):(n=o[0].selectionStart,a=o[0].selectionEnd),{start:n,end:a}},t.Autocompleter.prototype.setValue=function(t){if(this.options.useDelimiter){var e=this.dom.$elem.val(),i=this.getDelimiterOffsets();t=e.substring(0,i.start)+t+e.substring(i.end)}this.dom.$elem.val(t)},t.Autocompleter.prototype.getValue=function(t){if(this.options.useDelimiter){var e=this.getDelimiterOffsets();return t.substring(e.start,e.end).trim()}return t},t.Autocompleter.prototype.getDelimiterOffsets=function(){var t=this.dom.$elem.val();if(this.options.useDelimiter){var e=t.substring(0,this.getCaret().start),i=e.lastIndexOf(this.options.delimiterChar)+1,n=t.substring(this.getCaret().start),a=n.indexOf(this.options.delimiterChar);-1==a&&(a=t.length),a+=this.getCaret().start}else i=0,a=t.length;return{start:i,end:a}}}(t)}).call(e,i(0))},function(t,e,i){var n,a,s;!function(o,r,l){!function(o){a=[i(0)],n=o,void 0!==(s="function"==typeof n?n.apply(e,a):n)&&(t.exports=s)}(function(t){"use strict";var e,i,n,a,s,l,h,c,u,d,f,p,g,m,v,_,y,b,w,x,k,C,S,T,E,A,M,R,$,D,O,P={},I=0;e=function(){return{common:{type:"line",lineColor:"#00f",fillColor:"#cdf",defaultPixelsPerValue:3,width:"auto",height:"auto",composite:!1,tagValuesAttribute:"values",tagOptionsPrefix:"spark",enableTagOptions:!1,enableHighlight:!0,highlightLighten:1.4,tooltipSkipNull:!0,tooltipPrefix:"",tooltipSuffix:"",disableHiddenCheck:!1,numberFormatter:!1,numberDigitGroupCount:3,numberDigitGroupSep:",",numberDecimalMark:".",disableTooltips:!1,disableInteraction:!1},line:{spotColor:"#f80",highlightSpotColor:"#5f5",highlightLineColor:"#f22",spotRadius:1.5,minSpotColor:"#f80",maxSpotColor:"#f80",lineWidth:1,normalRangeMin:void 0,normalRangeMax:void 0,normalRangeColor:"#ccc",drawNormalOnTop:!1,chartRangeMin:void 0,chartRangeMax:void 0,chartRangeMinX:void 0,chartRangeMaxX:void 0,tooltipFormat:new n('● {{prefix}}{{y}}{{suffix}}')},bar:{barColor:"#3366cc",negBarColor:"#f44",stackedBarColor:["#3366cc","#dc3912","#ff9900","#109618","#66aa00","#dd4477","#0099c6","#990099"],zeroColor:void 0,nullColor:void 0,zeroAxis:!0,barWidth:4,barSpacing:1,chartRangeMax:void 0,chartRangeMin:void 0,chartRangeClip:!1,colorMap:void 0,tooltipFormat:new n('● {{prefix}}{{value}}{{suffix}}')},tristate:{barWidth:4,barSpacing:1,posBarColor:"#6f6",negBarColor:"#f44",zeroBarColor:"#999",colorMap:{},tooltipFormat:new n('● {{value:map}}'),tooltipValueLookups:{map:{"-1":"Loss",0:"Draw",1:"Win"}}},discrete:{lineHeight:"auto",thresholdColor:void 0,thresholdValue:0,chartRangeMax:void 0,chartRangeMin:void 0,chartRangeClip:!1,tooltipFormat:new n("{{prefix}}{{value}}{{suffix}}")},bullet:{targetColor:"#f33",targetWidth:3,performanceColor:"#33f",rangeColors:["#d3dafe","#a8b6ff","#7f94ff"],base:void 0,tooltipFormat:new n("{{fieldkey:fields}} - {{value}}"),tooltipValueLookups:{fields:{r:"Range",p:"Performance",t:"Target"}}},pie:{offset:0,sliceColors:["#3366cc","#dc3912","#ff9900","#109618","#66aa00","#dd4477","#0099c6","#990099"],borderWidth:0,borderColor:"#000",tooltipFormat:new n('● {{value}} ({{percent.1}}%)')},box:{raw:!1,boxLineColor:"#000",boxFillColor:"#cdf",whiskerColor:"#000",outlierLineColor:"#333",outlierFillColor:"#fff",medianColor:"#f00",showOutliers:!0,outlierIQR:1.5,spotRadius:1.5,target:void 0,targetColor:"#4a2",chartRangeMax:void 0,chartRangeMin:void 0,tooltipFormat:new n("{{field:fields}}: {{value}}"),tooltipFormatFieldlistKey:"field",tooltipValueLookups:{fields:{lq:"Lower Quartile",med:"Median",uq:"Upper Quartile",lo:"Left Outlier",ro:"Right Outlier",lw:"Left Whisker",rw:"Right Whisker"}}}}},E='.jqstooltip { position: absolute;left: 0px;top: 0px;visibility: hidden;background: rgb(0, 0, 0) transparent;background-color: rgba(0,0,0,0.6);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000);-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000)";color: white;font: 10px arial, san serif;text-align: left;white-space: nowrap;padding: 5px;border: 1px solid white;z-index: 10000;}.jqsfield { color: white;font: 10px arial, san serif;text-align: left;}',i=function(){var e,i;return e=function(){this.init.apply(this,arguments)},arguments.length>1?(arguments[0]?(e.prototype=t.extend(new arguments[0],arguments[arguments.length-1]),e._super=arguments[0].prototype):e.prototype=arguments[arguments.length-1],arguments.length>2&&(i=Array.prototype.slice.call(arguments,1,-1),i.unshift(e.prototype),t.extend.apply(t,i))):e.prototype=arguments[0],e.prototype.cls=e,e},t.SPFormatClass=n=i({fre:/\{\{([\w.]+?)(:(.+?))?\}\}/g,precre:/(\w+)\.(\d+)/,init:function(t,e){this.format=t,this.fclass=e},render:function(t,e,i){var n,a,s,o,r,l=this,h=t;return this.format.replace(this.fre,function(){var t;return a=arguments[1],s=arguments[3],n=l.precre.exec(a),n?(r=n[2],a=n[1]):r=!1,void 0===(o=h[a])?"":s&&e&&e[s]?(t=e[s],t.get?e[s].get(o)||o:e[s][o]||o):(u(o)&&(o=i.get("numberFormatter")?i.get("numberFormatter")(o):g(o,r,i.get("numberDigitGroupCount"),i.get("numberDigitGroupSep"),i.get("numberDecimalMark"))),o)})}}),t.spformat=function(t,e){return new n(t,e)},a=function(t,e,i){return ti?i:t},s=function(t,e){var i;return 2===e?(i=r.floor(t.length/2),t.length%2?t[i]:(t[i-1]+t[i])/2):t.length%2?(i=(t.length*e+e)/4,i%1?(t[r.floor(i)]+t[r.floor(i)-1])/2:t[i-1]):(i=(t.length*e+2)/4,i%1?(t[r.floor(i)]+t[r.floor(i)-1])/2:t[i-1])},l=function(t){var e;switch(t){case"undefined":t=void 0;break;case"null":t=null;break;case"true":t=!0;break;case"false":t=!1;break;default:e=parseFloat(t),t==e&&(t=e)}return t},h=function(t){var e,i=[];for(e=t.length;e--;)i[e]=l(t[e]);return i},c=function(t,e){var i,n,a=[];for(i=0,n=t.length;i0;r-=n)e.splice(r,0,a);return e.join("")},d=function(t,e,i){var n;for(n=e.length;n--;)if((!i||null!==e[n])&&e[n]!==t)return!1;return!0},p=function(e){return t.isArray(e)?e:[e]},f=function(t){var e;o.createStyleSheet?o.createStyleSheet().cssText=t:(e=o.createElement("style"),e.type="text/css",o.getElementsByTagName("head")[0].appendChild(e),e["string"==typeof o.body.style.WebkitAppearance?"innerText":"innerHTML"]=t)},t.fn.simpledraw=function(e,i,n,a){var s,r;if(n&&(s=this.data("_jqs_vcanvas")))return s;if(!1===t.fn.sparkline.canvas)return!1;if(void 0===t.fn.sparkline.canvas){var l=o.createElement("canvas");if(l.getContext&&l.getContext("2d"))t.fn.sparkline.canvas=function(t,e,i,n){return new $(t,e,i,n)};else{if(!o.namespaces||o.namespaces.v)return t.fn.sparkline.canvas=!1,!1;o.namespaces.add("v","urn:schemas-microsoft-com:vml","#default#VML"),t.fn.sparkline.canvas=function(t,e,i,n){return new D(t,e,i)}}}return void 0===e&&(e=t(this).innerWidth()),void 0===i&&(i=t(this).innerHeight()),s=t.fn.sparkline.canvas(e,i,this,a),r=t(this).data("_jqs_mhandler"),r&&r.registerCanvas(s),s},t.fn.cleardraw=function(){var t=this.data("_jqs_vcanvas");t&&t.reset()},t.RangeMapClass=m=i({init:function(t){var e,i,n=[];for(e in t)t.hasOwnProperty(e)&&"string"==typeof e&&e.indexOf(":")>-1&&(i=e.split(":"),i[0]=0===i[0].length?-1/0:parseFloat(i[0]),i[1]=0===i[1].length?1/0:parseFloat(i[1]),i[2]=t[e],n.push(i));this.map=t,this.rangelist=n||!1},get:function(t){var e,i,n,a=this.rangelist;if(void 0!==(n=this.map[t]))return n;if(a)for(e=a.length;e--;)if(i=a[e],i[0]<=t&&i[1]>=t)return i[2]}}),t.range_map=function(t){return new m(t)},v=i({init:function(e,i){var n=t(e);this.$el=n,this.options=i,this.currentPageX=0,this.currentPageY=0,this.el=e,this.splist=[],this.tooltip=null,this.over=!1,this.displayTooltips=!i.get("disableTooltips"),this.highlightEnabled=!i.get("disableHighlight")},registerSparkline:function(t){this.splist.push(t),this.over&&this.updateDisplay()},registerCanvas:function(e){var i=t(e.canvas);this.canvas=e,this.$canvas=i,i.mouseenter(t.proxy(this.mouseenter,this)),i.mouseleave(t.proxy(this.mouseleave,this)),i.click(t.proxy(this.mouseclick,this))},reset:function(t){this.splist=[],this.tooltip&&t&&(this.tooltip.remove(),this.tooltip=void 0)},mouseclick:function(e){var i=t.Event("sparklineClick");i.originalEvent=e,i.sparklines=this.splist,this.$el.trigger(i)},mouseenter:function(e){t(o.body).unbind("mousemove.jqs"),t(o.body).bind("mousemove.jqs",t.proxy(this.mousemove,this)),this.over=!0,this.currentPageX=e.pageX,this.currentPageY=e.pageY,this.currentEl=e.target,!this.tooltip&&this.displayTooltips&&(this.tooltip=new _(this.options),this.tooltip.updatePosition(e.pageX,e.pageY)),this.updateDisplay()},mouseleave:function(){t(o.body).unbind("mousemove.jqs");var e,i,n=this.splist,a=n.length,s=!1;for(this.over=!1,this.currentEl=null,this.tooltip&&(this.tooltip.remove(),this.tooltip=null),i=0;i