' +
@@ -543,12 +517,10 @@ var TracksterView = Backbone.View.extend(
},
// create
- create_browser : function(name, dbkey)
- {
+ create_browser : function(name, dbkey) {
$(document).trigger("convert_to_values");
- view = ui.create_visualization (
- {
+ view = ui.create_visualization ({
container: $("#center .unified-panel-body"),
name: name,
dbkey: dbkey
@@ -562,8 +534,7 @@ var TracksterView = Backbone.View.extend(
},
// initialization for editor-specific functions.
- init_editor : function ()
- {
+ init_editor : function () {
// set title
$("#center .unified-panel-title").text(view.config.get_value('name') + " (" + view.dbkey + ")");
@@ -577,8 +548,7 @@ var TracksterView = Backbone.View.extend(
});
// initialize icons
- $("#add-bookmark-button").click(function()
- {
+ $("#add-bookmark-button").click(function() {
// add new bookmark.
var position = view.chrom + ":" + view.low + "-" + view.high,
annotation = "Bookmark description";
diff --git a/static/maps/viz/trackster.js.map b/static/maps/viz/trackster.js.map
index fb8866b39a3..57c103d149b 100644
--- a/static/maps/viz/trackster.js.map
+++ b/static/maps/viz/trackster.js.map
@@ -1 +1 @@
-{"version":3,"file":"trackster.js","sources":["../../src/viz/trackster.js"],"names":["ui","view","browser_router","require","mod_utils","cssLoadFile","define","_","tracks","visualization","mod_icon_btn","query_string","Base","this","initialize","apply","arguments","extend","Backbone","Model","TracksterUI","baseURL","save_viz","Galaxy","modal","show","title","body","bookmarks","$","each","push","position","children","text","annotation","overview_track_name","overview_drawable","config","get_value","viz_config","to_dict","viewport","chrom","start","low","end","high","overview","ajax","url","root","type","dataType","data","id","vis_id","dbkey","vis_json","JSON","stringify","success","vis_info","hide","has_changes","window","history","pushState","location","hash","error","buttons","Cancel","createButtonMenu","self","menu","create_icon_buttons_menu","icon_class","on_click","select_datasets","f-dbkey","new_tracks","track","add_drawable","object_from_template","DrawableGroup","name","force_right_panel","css","handle_unsaved_changes","tooltip_config","placement","buttonMenu","add_bookmark","editable","bookmarks_container","new_bookmark","addClass","appendTo","position_div","annotation_div","click","go_to","delete_icon_container","prependTo","slideUp","remove","make_text_editable","num_rows","use_textarea","help_text","create_visualization","view_config","viewport_config","drawables_config","bookmarks_config","TracksterView","header","editor","when","load_chroms_deferred","then","chrom_info","overview_drawable_name","undefined","change_chrom","i","length","drawables","set_overview","bookmark","set_up_router","options","TrackBrowserRouter","init_keyboard_nav","document","keyup","e","srcElement","is","which","move_fraction","Math","round","viewport_container","height","scrollTop","Leave without Saving","off","Save","View","$el","attr","append","resize_window","galaxy_config","app","view_existing","get","choose_existing_or_new","view_new","listTracksParams","dataset_params","dataset_id","hda_ldda","param","alert","table_html","view_in_saved","show_choice","Add to visualization","parent","find","val","View in saved visualization","View in new visualization","console","debug","container","init_editor","response","template_view_new","Create","create_browser","dbkeys_in_genomes","map","r","default_dbkey","contains","focus","select2","html","trigger","gene_region","add_dataset","data_type","track_data","on","GalaxyApp"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"trackster.js","sources":["../../src/viz/trackster.js"],"names":["ui","view","browser_router","require","mod_utils","cssLoadFile","define","_","tracks","visualization","mod_icon_btn","query_string","GridView","Base","this","initialize","apply","arguments","extend","Backbone","Model","TracksterUI","baseURL","save_viz","Galaxy","modal","show","title","body","bookmarks","$","each","push","position","children","text","annotation","overview_track_name","overview_drawable","config","get_value","viz_config","to_dict","viewport","chrom","start","low","end","high","overview","ajax","url","root","type","dataType","data","id","vis_id","dbkey","vis_json","JSON","stringify","success","vis_info","hide","has_changes","window","history","pushState","location","hash","error","buttons","Cancel","createButtonMenu","self","menu","create_icon_buttons_menu","icon_class","on_click","select_datasets","f-dbkey","new_tracks","track","add_drawable","object_from_template","DrawableGroup","name","force_right_panel","css","handle_unsaved_changes","tooltip_config","placement","buttonMenu","add_bookmark","editable","bookmarks_container","new_bookmark","addClass","appendTo","position_div","annotation_div","click","go_to","delete_icon_container","prependTo","slideUp","remove","make_text_editable","num_rows","use_textarea","help_text","create_visualization","view_config","viewport_config","drawables_config","bookmarks_config","TracksterView","header","editor","when","load_chroms_deferred","then","chrom_info","overview_drawable_name","undefined","change_chrom","i","length","drawables","set_overview","bookmark","set_up_router","options","TrackBrowserRouter","init_keyboard_nav","document","keyup","e","srcElement","is","which","move_fraction","Math","round","viewport_container","height","scrollTop","Leave without Saving","off","Save","View","$el","attr","append","resize_window","galaxy_config","app","view_existing","get","choose_existing_or_new","view_new","listTracksParams","dataset_params","dataset_id","hda_ldda","gene_region","View in saved visualization","view_in_saved","View in new visualization","tracks_grid","url_base","dict_format","embedded","Add to visualization","parent","find","val","param","container","init_editor","alert","response","template_view_new","Create","create_browser","dbkeys_in_genomes","map","r","default_dbkey","contains","focus","select2","html","trigger","add_dataset","data_type","track_data","on","GalaxyApp"],"mappings":"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"}
\ No newline at end of file
diff --git a/static/scripts/bundled/analysis.bundled.js b/static/scripts/bundled/analysis.bundled.js
index 0ce03fe5614..703a9e77a2f 100644
--- a/static/scripts/bundled/analysis.bundled.js
+++ b/static/scripts/bundled/analysis.bundled.js
@@ -1,16 +1,16 @@
-webpackJsonp([3,1],[function(e,t,i){(function(e,t){var n=i(1),s=n,a=i(35).GalaxyApp,o=i(67),r=i(100),l=i(99),c=i(36),d=i(30),h=i(138),u=i(137),p=i(89),f=i(21),g=i(128),m=i(142),v=i(123),_=i(140),y=i(88),w=i(4),b=i(7);window.app=function(i,n){window.Galaxy=new a(i,n),Galaxy.debug("analysis app"),Galaxy.params=Galaxy.config.params;var x=e.View.extend({initialize:function(e){this.message=e.message||"Undefined Message",this.msg_status=e.type||"info",this.render()},render:function(){this.$el.html(t.escape(this.message)).addClass(this.msg_status+"message")}}),C=e.Router.extend({initialize:function(e,t){this.page=e,this.options=t},push:function(e,t){t=t||{},t.__identifer=Math.random().toString(36).substr(2),s.isEmptyObject(t)||(e+=e.indexOf("?")==-1?"?":"&",e+=s.param(t,!0)),this.navigate(e,{trigger:!0})},execute:function(e,t,i){Galaxy.debug("router execute:",e,t,i);var n=o.parse(t.pop());t.push(n),e&&(this.authenticate(t,i)?e.apply(this,t):this.loginRequired())},routes:{"(/)":"home","(/)root*":"home","(/)tours(/)(:tour_id)":"show_tours","(/)user(/)":"show_user","(/)user(/)(:form_id)":"show_user_form","(/)workflow(/)":"show_workflows","(/)workflow/run(/)":"show_run","(/)pages(/)(:action_id)":"show_pages","(/)visualizations/list_published(/)":"show_visualizations","(/)workflows/list_published(/)":"show_workflows_published","(/)histories(/)(:action_id)":"show_histories","(/)datasets(/)list(/)":"show_datasets","(/)workflow/configure_menu(/)":"show_configure_menu","(/)workflow/import_workflow":"show_import_workflow","(/)custom_builds":"show_custom_builds"},require_login:["show_user","show_user_form","show_workflows","show_configure_menu"],loginRequired:function(){this.page.display(new x({type:"error",message:"You must be logged in to make this request."}))},authenticate:function(e,t){return Galaxy.user&&Galaxy.user.id||this.require_login.indexOf(t)==-1},show_tours:function(e){e?p.giveTour(e):this.page.display(new p.ToursView)},show_user:function(){this.page.display(new h.View)},show_user_form:function(e){this.page.display(new h.Forms({form_id:e,user_id:Galaxy.params.id}))},show_visualizations:function(){this.page.display(new f({url_base:Galaxy.root+"visualization/list_published",dict_format:!0}))},show_workflows_published:function(){this.page.display(new f({url_base:Galaxy.root+"workflow/list_published",dict_format:!0}))},show_histories:function(e){this.page.display(new v.View({action_id:e}))},show_datasets:function(){this.page.display(new f({url_base:Galaxy.root+"dataset/list",dict_format:!0}))},show_pages:function(e){"list"==e?this.page.display(new g.View):this.page.display(new f({url_base:Galaxy.root+"page/list_published",dict_format:!0}))},show_workflows:function(){this.page.display(new m.View)},show_run:function(){this._loadWorkflow()},show_import_workflow:function(){this.page.display(new m.ImportWorkflowView)},show_configure_menu:function(){this.page.display(new _.View)},show_custom_builds:function(){var e=this,t=this.page.historyPanel.historyView;return t&&t.model&&t.model.id?void this.page.display(new u.View):void window.setTimeout(function(){e.show_custom_builds()},500)},home:function(e){e.tool_id||e.job_id?"upload1"===e.tool_id?(this.page.toolPanel.upload.show(),this._loadCenterIframe("welcome")):this._loadToolForm(e):e.workflow_id?this._loadWorkflow():e.m_c?this._loadCenterIframe(e.m_c+"/"+e.m_a):this._loadCenterIframe("welcome")},_loadToolForm:function(e){e.id=e.tool_id,this.page.display(new d.View(e))},_loadCenterIframe:function(e,t){t=t||Galaxy.root,e=t+e,this.page.$("#galaxy_main").prop("src",e)},_loadWorkflow:function(){var e=this;w.get({url:Galaxy.root+"api/workflows/"+w.getQueryString("id")+"/download",data:{style:"run"},success:function(t){e.page.display(new y.View(t))},error:function(t){var i="Error occurred while loading the resource.",n={message:i,status:"error",persistent:!0,cls:"errormessage"};e.page.display(new b.Message(n))}})}});s(function(){Galaxy.page=new c.View(t.extend(i,{Left:r,Right:l,Router:C})),e.history.start({root:Galaxy.root,pushState:!0})})}}).call(t,i(3),i(2))},,,,,,,function(e,t,i){var n,s;(function(a,o,r){n=[i(4),i(25),i(62),i(24),i(58),i(12),i(8)],s=function(e,t,i,n,s,l,c){var d=a.View.extend({tagName:"label",initialize:function(e){this.model=e&&e.model||new a.Model(e),this.tagName=e.tagName||this.tagName,this.setElement(o("<"+this.tagName+"/>")),this.listenTo(this.model,"change",this.render,this),this.render()},title:function(e){this.model.set("title",e)},value:function(){return this.model.get("title")},render:function(){return this.$el.removeClass().addClass("ui-label").addClass(this.model.get("cls")).html(this.model.get("title")),this}}),h=a.View.extend({initialize:function(e){this.model=e&&e.model||new a.Model({message:null,status:"info",cls:"",persistent:!1,fade:!0}).set(e),this.listenTo(this.model,"change",this.render,this),this.render()},update:function(e){this.model.set(e)},render:function(){this.$el.removeClass().addClass("ui-message").addClass(this.model.get("cls"));var e=this.model.get("status");if(this.model.get("large")?this.$el.addClass(("success"==e&&"done"||"danger"==e&&"error"||e)+"messagelarge"):this.$el.addClass("alert").addClass("alert-"+e),this.model.get("message")){if(this.$el.html(this.messageForDisplay()),this.$el[this.model.get("fade")?"fadeIn":"show"](),this.timeout&&window.clearTimeout(this.timeout),!this.model.get("persistent")){var t=this;this.timeout=window.setTimeout(function(){t.model.set("message","")},3e3)}}else this.$el.fadeOut();return this},messageForDisplay:function(){return r.escape(this.model.get("message"))}}),u=h.extend({messageForDisplay:function(){return this.model.get("message")}}),p=a.View.extend({initialize:function(e){this.model=e&&e.model||new a.Model({type:"text",placeholder:"",disabled:!1,readonly:!1,visible:!0,cls:"",area:!1,color:null,style:null}).set(e),this.tagName=this.model.get("area")?"textarea":"input",this.setElement(o("<"+this.tagName+"/>")),this.listenTo(this.model,"change",this.render,this),this.render()},events:{input:"_onchange"},value:function(e){return void 0!==e&&this.model.set("value","string"==typeof e?e:""),this.model.get("value")},render:function(){var e=this;this.$el.removeClass().addClass("ui-"+this.tagName).addClass(this.model.get("cls")).addClass(this.model.get("style")).attr("id",this.model.id).attr("type",this.model.get("type")).attr("placeholder",this.model.get("placeholder")).css("color",this.model.get("color")||"").css("border-color",this.model.get("color")||"");var t=this.model.get("datalist");return o.isArray(t)&&t.length>0&&this.$el.autocomplete({source:function(t,i){i(e.model.get("datalist"))},change:function(){e._onchange()}}),this.model.get("value")!==this.$el.val()&&this.$el.val(this.model.get("value")),r.each(["readonly","disabled"],function(t){e.model.get(t)?e.$el.attr(t,!0):e.$el.removeAttr(t)}),this.$el[this.model.get("visible")?"show":"hide"](),this},_onchange:function(){this.value(this.$el.val()),this.model.get("onchange")&&this.model.get("onchange")(this.model.get("value"))}}),f=a.View.extend({initialize:function(e){this.model=e&&e.model||new a.Model(e),this.setElement(o("
"))),this.listenTo(this.model,"change",this.render,this),this.render()},value:function(e){return void 0!==e&&this.model.set("value",e),this.model.get("value")},render:function(){return this.$el.attr("id",this.model.id),this.$hidden.val(this.model.get("value")),this.model.get("info")?this.$info.show().text(this.model.get("info")):this.$info.hide(),this}}),g=a.View.extend({initialize:function(e){var t=this;this.model=e&&e.model||new a.Model(e),this.setElement(o("
").addClass("fa fa-spinner fa-spin"))),this.listenTo(this.model,"change",this.render,this),this.$file.on("change",function(e){t._readFile(e)}),this.render()},value:function(e){return void 0!==e&&this.model.set("value",e),this.model.get("value")},render:function(){return this.$el.attr("id",this.model.id),this.model.get("info")?this.$info.show().text(this.model.get("info")):this.$info.hide(),this.model.get("value")?this.$text.text(this.model.get("value")).show():this.$text.hide(),this.model.get("wait")?this.$wait.show():this.$wait.hide(),this},_readFile:function(e){var t=this,i=e.target.files&&e.target.files[0];if(i){var n=new FileReader;n.onload=function(){t.model.set({wait:!1,value:this.result})},this.model.set({wait:!0,value:null}),n.readAsText(i)}}});return{Button:l.ButtonDefault,ButtonIcon:l.ButtonIcon,ButtonCheck:l.ButtonCheck,ButtonMenu:l.ButtonMenu,ButtonLink:l.ButtonLink,Input:p,Label:d,Message:h,UnescapedMessage:u,Upload:g,Modal:c,RadioButton:n.RadioButton,Checkbox:n.Checkbox,Radio:n.Radio,Select:t,Hidden:f,Slider:i,Drilldown:s}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1),i(2))},,function(e,t,i){var n,s;(function(a,o,r){n=[i(4),i(7)],s=function(e,t){var i=a.View.extend({visible:!1,initialize:function(i){var n=this;this.model=i&&i.model||new a.Model({id:e.uid(),cls:"ui-portlet",title:"",icon:"",buttons:null,body:null,scrollable:!0,nopadding:!1,operations:null,collapsible:!1,collapsible_button:!1,collapsed:!1,onchange_title:null}).set(i),this.setElement(this._template()),this.$body=this.$(".portlet-body"),this.$title_text=this.$(".portlet-title-text"),this.$title_icon=this.$(".portlet-title-icon"),this.$header=this.$(".portlet-header"),this.$content=this.$(".portlet-content"),this.$backdrop=this.$(".portlet-backdrop"),this.$buttons=this.$(".portlet-buttons"),this.$operations=this.$(".portlet-operations"),this.model.get("body")&&this.append(this.model.get("body")),this.collapsible_button=new t.ButtonIcon({icon:"fa-eye",tooltip:"Collapse/Expand",cls:"ui-button-icon-plain",onclick:function(){n[n.collapsed?"expand":"collapse"]()}}),this.render()},render:function(){var e=this,t=this.model.attributes;return this.$el.removeClass().addClass(t.cls).attr("id",t.id),this.$header[t.title?"show":"hide"](),this.$title_text.html(t.title),o.each([this.$content,this.$body],function(e){e[t.nopadding?"addClass":"removeClass"]("no-padding")}),t.icon?this.$title_icon.removeClass().addClass("portlet-title-icon fa").addClass(t.icon).show():this.$title_icon.hide(),this.$title_text[t.collapsible?"addClass":"removeClass"]("no-highlight collapsible").off(),t.collapsible&&(this.$title_text.on("click",function(){e[e.collapsed?"expand":"collapse"]()}),t.collapsed?this.collapse():this.expand()),this.$title_text.prop("disabled",!t.onchange_title),t.onchange_title&&this.$title_text.make_text_editable({on_finish:function(e){t.onchange_title(e)}}),t.buttons?(this.$buttons.empty().show(),r.each(this.model.get("buttons"),function(t,i){i.$el.prop("id",t),e.$buttons.append(i.$el)})):this.$buttons.hide(),this.$operations.empty,t.collapsible_button&&this.$operations.append(this.collapsible_button.$el),t.operations&&r.each(t.operations,function(t,i){i.$el.prop("id",t),e.$operations.append(i.$el)}),this},append:function(e){this.$body.append(e)},empty:function(){this.$body.empty()},header:function(){return this.$header},body:function(){return this.$body},show:function(){this.visible=!0,this.$el.fadeIn("fast")},hide:function(){this.visible=!1,this.$el.hide()},enableButton:function(e){this.$buttons.find("#"+e).prop("disabled",!1)},disableButton:function(e){this.$buttons.find("#"+e).prop("disabled",!0)},hideOperation:function(e){this.$operations.find("#"+e).hide()},showOperation:function(e){this.$operations.find("#"+e).show()},setOperation:function(e,t){this.$operations.find("#"+e).off("click").on("click",t)},title:function(e){return e&&this.$title_text.html(e),this.$title_text.html()},collapse:function(){this.collapsed=!0,this.$content.height("0%"),this.$body.hide(),this.collapsible_button.setIcon("fa-eye-slash")},expand:function(){this.collapsed=!1,this.$content.height("100%"),this.$body.fadeIn("fast"),this.collapsible_button.setIcon("fa-eye")},disable:function(){this.$backdrop.show()},enable:function(){this.$backdrop.hide()},_template:function(){return r("
").addClass("portlet-backdrop"))}});return{View:i}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(2),i(1))},function(e,t,i){var n,s;(function(a,o,r){n=[i(8),i(31),i(14)],s=function(e,t,i){var n=a.Model.extend({}),s=a.Model.extend({defaults:{id:"",type:"",name:"",hda_ldda:"hda",metadata:null},initialize:function(){this.get("metadata")||this._set_metadata(),this.on("change",this._set_metadata,this)},_set_metadata:function(){var e=new n;o.each(o.keys(this.attributes),function(t){if(0===t.indexOf("metadata_")){var i=t.split("metadata_")[1];e.set(i,this.attributes[t]),delete this.attributes[t]}},this),this.set("metadata",e,{silent:!0})},get_metadata:function(e){return this.attributes.metadata.get(e)},urlRoot:Galaxy.root+"api/datasets"}),l=s.extend({defaults:o.extend({},s.prototype.defaults,{chunk_url:null,first_data_chunk:null,offset:0,at_eof:!1}),initialize:function(e){s.prototype.initialize.call(this),this.attributes.first_data_chunk&&(this.attributes.offset=this.attributes.first_data_chunk.offset),this.attributes.chunk_url=Galaxy.root+"dataset/display?dataset_id="+this.id,this.attributes.url_viz=Galaxy.root+"visualization"},get_next_chunk:function(){if(this.attributes.at_eof)return null;var e=this,t=r.Deferred();return r.getJSON(this.attributes.chunk_url,{offset:e.attributes.offset}).success(function(i){var n;""!==i.ck_data?(n=i,e.attributes.offset=i.offset):(e.attributes.at_eof=!0,n=null),t.resolve(n)}),t}}),c=a.Collection.extend({model:s}),d=a.View.extend({initialize:function(e){this.row_count=0,this.loading_chunk=!1,new p({model:e.model,$el:this.$el})},expand_to_container:function(){this.$el.height()
").attr("id","loading_indicator"),this.$el.append(this.loading_indicator);var e=r("").attr({id:"content_table",cellpadding:0});this.$el.append(e);var t=this.model.get_metadata("column_names"),i=r(" ").appendTo(e),n=r(" ").appendTo(i);if(t)n.append(""+t.join(" ")+" ");else for(var s=1;s<=this.model.get_metadata("columns");s++)n.append(""+s+" ");var a=this,o=this.model.get("first_data_chunk");o?this._renderChunk(o):r.when(a.model.get_next_chunk()).then(function(e){a._renderChunk(e)}),this.scroll_elt.scroll(function(){a.attempt_to_fetch()})},scrolled_to_bottom:function(){return!1},_renderCell:function(e,t,i){var n=r("").text(e),s=this.model.get_metadata("column_types");return void 0!==i?n.attr("colspan",i).addClass("stringalign"):s&&t"),n=this.model.get_metadata("columns");return this.row_count%2!==0&&i.addClass("dark_row"),t.length===n?o.each(t,function(e,t){i.append(this._renderCell(e,t))},this):t.length>n?(o.each(t.slice(0,n-1),function(e,t){i.append(this._renderCell(e,t))},this),i.append(this._renderCell(t.slice(n-1).join("\t"),n-1))):1===t.length?i.append(this._renderCell(e,0,n)):(o.each(t,function(e,t){i.append(this._renderCell(e,t))},this),o.each(o.range(n-t.length),function(){i.append(r(""))})),this.row_count++,i},_renderChunk:function(e){var t=this.$el.find("table");o.each(e.ck_data.split("\n"),function(e,i){""!==e&&t.append(this._renderRow(e))},this)}}),h=d.extend({initialize:function(e){d.prototype.initialize.call(this,e),scroll_elt=o.find(this.$el.parents(),function(e){return"auto"===r(e).css("overflow")}),scroll_elt||(scroll_elt=window),this.scroll_elt=r(scroll_elt)},scrolled_to_bottom:function(){return this.$el.height()-this.scroll_elt.scrollTop()-this.scroll_elt.height()<=0}}),u=d.extend({initialize:function(e){d.prototype.initialize.call(this,e),this.scroll_elt=this.$el.css({position:"relative",overflow:"scroll",height:e.height||"500px"})},scrolled_to_bottom:function(){return this.$el.scrollTop()+this.$el.innerHeight()>=this.el.scrollHeight}}),p=a.View.extend({col:{chrom:null,start:null,end:null},url_viz:null,dataset_id:null,genome_build:null,file_ext:null,initialize:function(e){function t(e,t){for(var i=0;i ").attr("type","button").append(this.$icon=o(" ")).append(this.$title=o(" ")).append(this.$progress=o("
").append(this.$progress_bar=o("
")))),this.listenTo(this.model,"change",this.render,this),this.render()},render:function(){var e=this,t=this.model.attributes;this.$el.removeClass().addClass("ui-button-default").addClass(t.disabled&&"disabled").attr("id",t.id).attr("disabled",t.disabled).css("float",t.floating).off("click").on("click",function(){o(".tooltip").hide(),t.onclick&&!e.disabled&&t.onclick()}).tooltip({title:t.tooltip,placement:"bottom"}),this.$progress.addClass("progress").css("display",t.percentage!==-1?"block":"none"),this.$progress_bar.addClass("progress-bar").css({width:t.percentage+"%"}),this.$icon.removeClass().addClass("icon fa"),this.$title.removeClass().addClass("title"),t.wait?(this.$el.addClass(t.wait_cls).prop("disabled",!0),this.$icon.addClass("fa-spinner fa-spin ui-margin-right"),this.$title.html(t.wait_text)):(this.$el.addClass(t.cls),this.$icon.addClass(t.icon),this.$title.html(t.title),t.icon&&t.title&&this.$icon.addClass("ui-margin-right"))},show:function(){this.$el.show()},hide:function(){this.$el.hide()},disable:function(){this.model.set("disabled",!0)},enable:function(){this.model.set("disabled",!1)},wait:function(){this.model.set("wait",!0)},unwait:function(){this.model.set("wait",!1)},setIcon:function(e){this.model.set("icon",e)}}),i=t.extend({initialize:function(t){this.model=t&&t.model||new a.Model({id:e.uid(),title:"",icon:"",cls:""}).set(t),this.setElement(o(" ").append(this.$icon=o(" "))),this.listenTo(this.model,"change",this.render,this),this.render()},render:function(){var e=this.model.attributes;this.$el.removeClass().addClass(e.cls).attr({id:e.id,href:e.href||"javascript:void(0)",title:e.title,target:e.target||"_top",disabled:e.disabled}).tooltip({placement:"bottom"}).off("click").on("click",function(){e.onclick&&!e.disabled&&e.onclick()}),this.$icon.removeClass().addClass(e.icon)}}),n=a.View.extend({initialize:function(t){this.model=t&&t.model||new a.Model({id:e.uid(),title:"Select/Unselect all",icons:["fa-square-o","fa-minus-square-o","fa-check-square-o"],value:0,onchange:function(){}}).set(t),this.setElement(o("
").append(this.$icon=o(" ")).append(this.$title=o(" "))),this.listenTo(this.model,"change",this.render,this),this.render()},render:function(e){var t=this,e=this.model.attributes;this.$el.addClass("ui-button-check").off("click").on("click",function(){t.model.set("value",0===t.model.get("value")&&2||0),e.onclick&&e.onclick()}),this.$title.html(e.title),this.$icon.removeClass().addClass("icon fa ui-margin-right").addClass(e.icons[e.value])},value:function(e,t){return void 0!==e&&(t&&0!==e&&(e=e!==t&&1||2),this.model.set("value",e),this.model.get("onchange")(this.model.get("value"))),this.model.get("value")}}),s=t.extend({initialize:function(t){this.model=t&&t.model||new a.Model({id:e.uid(),title:"",floating:"right",icon:"",cls:"ui-button-icon",disabled:!1}).set(t),this.setElement(o("
").append(this.$button=o("
").append(this.$icon=o(" ")).append(this.$title=o(" ")))),this.listenTo(this.model,"change",this.render,this),this.render()},render:function(e){var e=this.model.attributes;this.$el.removeClass().addClass(e.cls).addClass(e.disabled&&"disabled").attr("disabled",e.disabled).attr("id",e.id).css("float",e.floating).off("click").on("click",function(){o(".tooltip").hide(),!e.disabled&&e.onclick&&e.onclick()}),this.$button.addClass("button").tooltip({title:e.tooltip,placement:"bottom"}),this.$icon.removeClass().addClass("icon fa").addClass(e.icon),this.$title.addClass("title").html(e.title),e.icon&&e.title&&this.$icon.addClass("ui-margin-right")}}),r=t.extend({$menu:null,initialize:function(e){this.model=e&&e.model||new a.Model({id:"",title:"",floating:"right",pull:"right",icon:null,onclick:null,cls:"ui-button-icon ui-button-menu",tooltip:"",target:"",href:"",onunload:null,visible:!0,tag:""}).set(e),this.collection=new a.Collection,this.setElement(o("
").append(this.$root=o("
").append(this.$icon=o(" ")).append(this.$title=o(" ")))),this.listenTo(this.model,"change",this.render,this),this.listenTo(this.collection,"change add remove reset",this.render,this),this.render()},render:function(){var e=this,t=this.model.attributes;this.$el.removeClass().addClass("dropdown").addClass(t.cls).attr("id",t.id).css({float:t.floating,display:t.visible&&this.collection.where({visible:!0}).length>0?"block":"none"}),this.$root.addClass("root button dropdown-toggle").attr("data-toggle","dropdown").tooltip({title:t.tooltip,placement:"bottom"}).off("click").on("click",function(e){o(".tooltip").hide(),e.preventDefault(),t.onclick&&t.onclick()}),this.$icon.removeClass().addClass("icon fa").addClass(t.icon),this.$title.removeClass().addClass("title").html(t.title),t.icon&&t.title&&this.$icon.addClass("ui-margin-right"),this.$menu&&this.$menu.remove(),this.collection.length>0&&(this.$menu=o("").addClass("menu dropdown-menu").addClass("pull-"+e.model.get("pull")).attr("role","menu"),this.$el.append(this.$menu)),this.collection.each(function(t){var i=t.attributes;if(i.visible){var n=o(" ").addClass("dropdown-item").attr({href:i.href,target:i.target}).append(o(" ").addClass("fa").addClass(i.icon).css("display",i.icon?"inline-block":"none")).append(i.title).on("click",function(e){i.onclick&&(e.preventDefault(),i.onclick())});e.$menu.append(o(" ").append(n)),i.divider&&e.$menu.append(o(" ").addClass("divider"))}})},addMenu:function(t){this.collection.add(e.merge(t,{title:"",target:"",href:"",onclick:null,divider:!1,visible:!0,icon:null,cls:"button-menu btn-group"}))}});return{ButtonDefault:t,ButtonLink:i,ButtonIcon:s,ButtonCheck:n,ButtonMenu:r}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1))},function(e,t,i){var n,s;(function(a,o,r){n=[i(4),i(9),i(7),i(47),i(28)],s=function(e,t,i,n,s){return a.View.extend({initialize:function(e){this.model=new a.Model({initial_errors:!1,cls:"ui-portlet-limited",icon:null,always_refresh:!0,message_status:"warning"}).set(e),this.setElement("
"),this.render()},update:function(e){var t=this;this.data.matchModel(e,function(e,i){var n=t.input_list[i];if(n&&n.options&&!o.isEqual(n.options,e.options)){n.options=e.options;var s=t.field_list[i];if(s.update){var a=[];if(["data","data_collection","drill_down"].indexOf(n.type)!=-1)a=n.options;else for(var r in e.options){var l=e.options[r];l.length>2&&a.push({label:l[0],value:l[1]})}s.update(a),s.trigger("change"),Galaxy.emit.debug("form-view::update()","Updating options for "+i)}}})},wait:function(e){for(var t in this.input_list){var i=this.field_list[t],n=this.input_list[t];n.is_dynamic&&i.wait&&i.unwait&&i[e?"wait":"unwait"]()}},highlight:function(e,t,i){var n=this.element_list[e];if(n&&(n.error(t||"Please verify this parameter."),this.portlet.expand(),this.trigger("expand",e),!i)){var s=this.$el.parents().filter(function(){return["auto","scroll"].indexOf(r(this).css("overflow"))!=-1}).first();s.animate({scrollTop:s.scrollTop()+n.$el.offset().top-120},500)}},errors:function(e){if(this.trigger("reset"),e&&e.errors){var t=this.data.matchResponse(e.errors);for(var i in this.element_list){this.element_list[i];t[i]&&this.highlight(i,t[i],!0)}}},render:function(){var e=this;this.off("change"),this.off("reset"),this.field_list={},this.input_list={},this.element_list={},this.data=new s.Manager(this),this._renderForm(),this.data.create(),this.model.get("initial_errors")&&this.errors(this.model.attributes);var t=this.data.checksum();return this.on("change",function(i){var n=e.input_list[i];if(!n||n.refresh_on_change||e.model.get("always_refresh")){var s=e.data.checksum();s!=t&&(t=s,e.model.get("onchange")&&e.model.get("onchange")())}}),this.on("reset",function(){o.each(e.element_list,function(e){e.reset()})}),this},_renderForm:function(){r(".tooltip").remove();var e=this.model.attributes;this.message=new i.UnescapedMessage,this.section=new n.View(this,{inputs:e.inputs}),this.portlet=new t.View({icon:e.icon,title:e.title,cls:e.cls,operations:e.operations,buttons:e.buttons,collapsible:e.collapsible,collapsed:e.collapsed,onchange_title:e.onchange_title}),this.portlet.append(this.message.$el),this.portlet.append(this.section.$el),this.$el.empty(),e.inputs&&this.$el.append(this.portlet.$el),e.message&&this.message.update({persistent:!0,status:e.message_status,message:e.message}),Galaxy.emit.debug("form-view::initialize()","Completed")}})}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(2),i(1))},function(e,t,i){var n,s;(function(i,a,o){n=[],s=function(){var e=i.Model.extend({defaults:{title:"",icon_class:"",on_click:null,menu_options:null,is_menu_button:!0,id:null,href:null,target:null,enabled:!0,visible:!0,tooltip_config:{}}}),t=i.View.extend({initialize:function(){this.model.attributes.tooltip_config={placement:"bottom"},this.model.bind("change",this.render,this)},render:function(){this.$el.tooltip("hide");var e=this.template(this.model.toJSON());return e.tooltip(this.model.get("tooltip_config")),this.$el.replaceWith(e),this.setElement(e),this},events:{click:"click"},click:function(e){return!a.isFunction(this.model.get("on_click"))||(this.model.get("on_click")(e),!1)},template:function(e){var t='title="'+e.title+'" class="icon-button';return e.is_menu_button&&(t+=" menu-button"),t+=" "+e.icon_class,e.enabled||(t+="_disabled"),t+='"',e.id&&(t+=' id="'+e.id+'"'),t+=' href="'+e.href+'"',e.target&&(t+=' target="'+e.target+'"'),e.visible||(t+=' style="display: none;"'),t=e.enabled?" ":" ",o(t)}}),n=i.Collection.extend({model:e}),s=i.View.extend({tagName:"div",initialize:function(){this.render()},render:function(){var e=this;return this.collection.each(function(t){var i=o(" ").attr("href","javascript:void(0)").attr("title",t.attributes.title).addClass("icon-button menu-button").addClass(t.attributes.icon_class).appendTo(e.$el).click(t.attributes.on_click);t.attributes.tooltip_config&&i.tooltip(t.attributes.tooltip_config);var n=t.get("options");n&&make_popupmenu(i,n)}),this}}),r=function(t,i){i||(i={});var o=new n(a.map(t,function(t){return new e(a.extend(t,i))}));return new s({collection:o})};return{IconButton:e,IconButtonView:t,IconButtonCollection:n,IconButtonMenuView:s,create_icon_buttons_menu:r}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(2),i(1))},function(e,t,i){var n,s;(function(a,o,r){n=[i(4)],s=function(e){var t=a.View.extend({optionsDefault:{with_close:!0,title:null,placement:"top",container:"body",body:null},initialize:function(t){this.setElement(this._template()),this.uid=e.uid(),this.options=o.defaults(t||{},this.optionsDefault),this.options.container.parent().append(this.el),this.$title=this.$(".popover-title-label"),this.$close=this.$(".popover-close"),this.$body=this.$(".popover-content"),this.options.body&&this.append(this.options.body);var i=this;r("body").on("mousedown."+this.uid,function(e){i.visible&&!r(i.options.container).is(e.target)&&!r(i.el).is(e.target)&&0===r(i.el).has(e.target).length&&i.hide()})},render:function(){this.$title.html(this.options.title),this.$el.removeClass().addClass("ui-popover popover fade in").addClass(this.options.placement),this.$el.css(this._get_placement(this.options.placement));var e=this;this.options.with_close?this.$close.on("click",function(){e.hide()}).show():this.$close.off().hide()},title:function(e){void 0!==e&&(this.options.title=e,this.$title.html(e))},show:function(){this.render(),this.$el.show(),this.visible=!0},hide:function(){this.$el.hide(),this.visible=!1},append:function(e){this.$body.append(e)},empty:function(){this.$body.empty()},remove:function(){
-r("body").off("mousedown."+this.uid),this.$el.remove()},_get_placement:function(e){var t=this._get_width(this.$el),i=this.$el.height(),n=this.options.container,s=this._get_width(n),a=this._get_height(n),o=n.position(),r=left=0;if(["top","bottom"].indexOf(e)!=-1)switch(left=o.left-t+(s+t)/2,e){case"top":r=o.top-i-5;break;case"bottom":r=o.top+a+5}else switch(r=o.top-i+(a+i)/2,e){case"right":left=o.left+s}return{top:r,left:left}},_get_width:function(e){return e.width()+parseInt(e.css("padding-left"))+parseInt(e.css("margin-left"))+parseInt(e.css("padding-right"))+parseInt(e.css("margin-right"))},_get_height:function(e){return e.height()+parseInt(e.css("padding-top"))+parseInt(e.css("padding-bottom"))},_template:function(e){return''}});return{View:t}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(2),i(1))},function(e,t,i){var n,s;(function(a,o){n=[i(4)],s=function(e){var t=a.View.extend({optionsDefault:{css:"",placeholder:"No data available",data:[],value:null,multiple:!1,minimumInputLength:0,initialData:""},initialize:function(t){if(this.options=e.merge(t,this.optionsDefault),this.setElement(this._template(this.options)),!this.options.container)return void console.log("ui-select::initialize() : container not specified.");if(this.options.container.append(this.$el),this.select_data=this.options.data,this._refresh(),!this.options.multiple){this.options.value&&this._setValue(this.options.value);var i=this;this.options.onchange&&this.$el.on("change",function(){i.options.onchange(i.value())})}},value:function(e){var t=this._getValue();void 0!==e&&this._setValue(e);var i=this._getValue();return i!=t&&this.options.onchange&&this.options.onchange(i),i},text:function(){return this.$el.select2("data").text},disabled:function(){return!this.$el.select2("enable")},enable:function(){this.$el.select2("enable",!0)},disable:function(){this.$el.select2("enable",!1)},add:function(e){this.select_data.push({id:e.id,text:e.text}),this._refresh()},del:function(e){var t=this._getIndex(e);t!=-1&&(this.select_data.splice(t,1),this._refresh())},remove:function(){this.$el.select2("destroy")},update:function(e){this.select_data=[];for(var t in e.data)this.select_data.push(e.data[t]);this._refresh()},_refresh:function(){if(this.options.multiple){var e={multiple:this.options.multiple,containerCssClass:this.options.css,placeholder:this.options.placeholder,minimumInputLength:this.options.minimumInputLength,ajax:this.options.ajax,dropdownCssClass:this.options.dropdownCssClass,escapeMarkup:this.options.escapeMarkup,formatResult:this.options.formatResult,formatSelection:this.options.formatSelection,initSelection:this.options.initSelection,initialData:this.options.initialData};this.$el.select2(e)}else{var t=this._getValue(),e={data:this.select_data,containerCssClass:this.options.css,placeholder:this.options.placeholder,dropdownAutoWidth:!0};this.$el.select2(e),this._setValue(t)}},_getIndex:function(e){o.findIndex(this.select_data,{id:e})},_getValue:function(){return this.$el.select2("val")},_setValue:function(e){var t=this._getIndex(e);t==-1&&this.select_data.length>0&&(e=this.select_data[0].id),this.$el.select2("val",e)},_template:function(e){return' '}});return{View:t}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(2))},function(e,t,i){var n,s,a;!function(o){s=[i(1)],n=o,a="function"==typeof n?n.apply(t,s):n,!(void 0!==a&&(e.exports=a))}(function(e){"use_strict";var t=e;t.fn.make_text_editable=function(e){var i="num_cols"in e?e.num_cols:30,n="num_rows"in e?e.num_rows:4,s="use_textarea"in e&&e.use_textarea,a="on_finish"in e?e.on_finish:null,o="help_text"in e?e.help_text:null,r=t(this);return r.addClass("editable-text").click(function(o){if(!(t(this).children(":input").length>0)){r.removeClass("editable-text");var l,c,d=function(e){r.find(":input").remove(),""!==e?r.text(e):r.html(" "),r.addClass("editable-text"),a&&a(e)},h="cur_text"in e?e.cur_text:r.text();s?(l=t("").attr({rows:n,cols:i}).text(t.trim(h)).keyup(function(e){27===e.keyCode&&d(h)}),c=t(" ").text("Done").click(function(){return d(l.val()),!1})):l=t(" ").attr({value:t.trim(h),size:i}).blur(function(){d(h)}).keyup(function(e){27===e.keyCode?t(this).trigger("blur"):13===e.keyCode&&d(t(this).val()),e.stopPropagation()}),r.text(""),r.append(l),c&&r.append(c),l.focus(),l.select(),o.stopPropagation()}}),o&&r.attr("title",o).tooltip(),r}})},function(e,t,i){var n,s,a;(function(i,o){!function(i,o){s=[],n=o,a="function"==typeof n?n.apply(t,s):n,!(void 0!==a&&(e.exports=a))}(this,function(){var e=function(e){e=e||{},e.tooltipConfig=e.tooltipConfig||{placement:"bottom"},e.classes=["icon-btn"].concat(e.classes||[]),e.disabled&&e.classes.push("disabled");var t=['',' '," "].join(""),n=i(t).tooltip(e.tooltipConfig);return o.isFunction(e.onclick)&&n.click(e.onclick),n};return e})}).call(t,i(1),i(2))},function(e,t,i){var n;(function(s,a){n=function(){function e(e){e+="";for(var t=/(\d+)(\d{3})/;t.test(e);)e=e.replace(t,"$1,$2");return e}var t=function(e){return"promise"in e},i=s.Model.extend({defaults:{ajax_settings:{},interval:1e3,success_fn:function(e){return!0}},go:function(){var e=a.Deferred(),t=this,i=t.get("ajax_settings"),n=t.get("success_fn"),s=t.get("interval"),o=function(){a.ajax(i).success(function(t){n(t)?e.resolve(t):setTimeout(o,s)})};return o(),e}}),n=function(e){e||(e="#ffffff"),"string"==typeof e&&(e=[e]);for(var t=0;t>16,s=(65280&i)>>8,a=255&i,d=p(n,s,a),g=!0,t=0;t>16,l=(65280&o)>>8,c=255&o,h=p(r,l,c),u=f(n,s,a,r,l,c),Math.abs(d-h)<40||u<200){g=!1;break}m++}while(!g&&m<=10);return"#"+(16777216+i).toString(16).substr(1,6)};return{commatize:e,is_deferred:t,ServerStateDeferred:i,get_random_color:n}}.call(t,i,t,e),!(void 0!==n&&(e.exports=n))}).call(t,i(3),i(1))},function(e,t,i){var n,s;(function(a,o){n=[i(38),i(6),i(5)],s=function(e,t,i){e=e||window.BibtexParser;var n="citation",s=a.Model.extend(t.LoggableMixin).extend({_logNamespace:n,defaults:{content:""},initialize:function(){var t;try{t=e(this.attributes.content)}catch(e){return}if(t.errors.length){var i=t.errors.reduce(function(e,t){return e+"; "+t});this.log("Error parsing bibtex: "+i)}if(this._fields={},this.entry=o.first(t.entries),this.entry){var n=this.entry.Fields;for(var s in n){var a=n[s],r=s.toLowerCase();this._fields[r]=a}}},entryType:function(){return this.entry?this.entry.EntryType:void 0},fields:function(){return this._fields}}),r=a.Collection.extend(t.LoggableMixin).extend({_logNamespace:n,urlRoot:Galaxy.root+"api",partial:!0,model:s}),l=r.extend({url:function(){return this.urlRoot+"/histories/"+this.history_id+"/citations"}}),c=r.extend({url:function(){return this.urlRoot+"/tools/"+this.tool_id+"/citations"},partial:!1});return{Citation:s,HistoryCitationCollection:l,ToolCitationCollection:c}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(2))},function(e,t,i){var n,s;(function(a,o,r,l){a.ajaxSettings.traditional=!0,n=[i(4),i(48),i(49),i(22)],s=function(e,t,i,n){return o.View.extend({grid:null,initialize:function(t){this.dict_format=t.dict_format;var i=this;window.add_tag_to_grid_filter=function(e,t){var n=e+(void 0!==t&&""!==t?":"+t:""),s=r("#advanced-search").is(":visible");s||(r("#standard-search").slideToggle("fast"),r("#advanced-search").slideToggle("fast")),i.add_filter_condition("tags",n)},this.dict_format?(this.setElement("
"),t.url_base&&!t.items?e.get({url:t.url_base,success:function(e){e.embedded=t.embedded,i.init_grid(e)}}):this.init_grid(t)):(this.setElement("#grid-container"),this.init_grid(t)),t.use_panels&&r("#center").css({padding:"10px",overflow:"auto"})},handle_refresh:function(e){e&&r.inArray("history",e)>-1&&top.Galaxy&&top.Galaxy.currHistoryPanel&&top.Galaxy.currHistoryPanel.loadCurrentHistory()},init_grid:function(e){this.grid=new t(e);var n=this.grid.attributes;this.handle_refresh(n.refresh_frames);var s=this.grid.get("url_base");if(s=s.replace(/^.*\/\/[^\/]+/,""),this.grid.set("url_base",s),this.$el.html(i.grid(n)),this.$el.find("#grid-table-header").html(i.header(n)),this.$el.find("#grid-table-body").html(i.body(n)),this.$el.find("#grid-table-footer").html(i.footer(n)),n.message){this.$el.find("#grid-message").html(i.message(n));var a=this;n.use_hide_message&&setTimeout(function(){a.$el.find("#grid-message").html("")},5e3)}this.init_grid_elements(),this.init_grid_controls(),init_refresh_on_change()},init_grid_controls:function(){var e=this;this.$el.find(".operation-button").each(function(){r(this).off(),r(this).click(function(){return e.submit_operation(this),!1})}),this.$el.find("input[type=text]").each(function(){r(this).off(),r(this).click(function(){r(this).select()}).keyup(function(){r(this).css("font-style","normal")})}),this.$el.find(".sort-link").each(function(){r(this).off(),r(this).click(function(){return e.set_sort_condition(r(this).attr("sort_key")),!1})}),this.$el.find(".text-filter-form").each(function(){r(this).off(),r(this).submit(function(){var t=r(this).attr("column_key"),i=r("#input-"+t+"-filter"),n=i.val();return i.val(""),e.add_filter_condition(t,n),!1})}),this.$el.find(".text-filter-val > a").each(function(){r(this).off(),r(this).click(function(){return r(this).parent().remove(),e.remove_filter_condition(r(this).attr("filter_key"),r(this).attr("filter_val")),!1})}),this.$el.find(".categorical-filter > a").each(function(){r(this).off(),r(this).click(function(){return e.set_categorical_filter(r(this).attr("filter_key"),r(this).attr("filter_val")),!1})}),this.$el.find(".advanced-search-toggle").each(function(){r(this).off(),r(this).click(function(){return e.$el.find("#standard-search").slideToggle("fast"),e.$el.find("#advanced-search").slideToggle("fast"),!1})}),this.$el.find("#check_all").off(),this.$el.find("#check_all").on("click",function(){e.check_all_items()})},init_grid_elements:function(){this.$el.find(".grid").each(function(){var e=r(this).find("input.grid-row-select-checkbox"),t=r(this).find("span.grid-selected-count"),i=function(){t.text(r(e).filter(":checked").length)};r(e).each(function(){r(this).change(i)}),i()}),0!==this.$el.find(".community_rating_star").length&&this.$el.find(".community_rating_star").rating({});var e=this.grid.attributes,t=this;this.$el.find(".page-link > a").each(function(){r(this).click(function(){return t.set_page(r(this).attr("page_num")),!1})}),this.$el.find(".use-target").each(function(){r(this).click(function(e){return t.execute({href:r(this).attr("href"),target:r(this).attr("target")}),!1})});var i=e.items.length;0!=i&&l.each(e.items,function(i,s){var a=t.$("#grid-"+s+"-popup").off(),o=new n(a);l.each(e.operations,function(e){t._add_operation(o,e,i)})})},_add_operation:function(e,t,i){var n=this,s=i.operation_config[t.label];s.allowed&&t.allow_popup&&e.addItem({html:t.label,href:s.url_args,target:s.target,confirmation_text:t.confirm,func:function(e){e.preventDefault();var s=r(e.target).html();t.onclick?t.onclick(i.encode_id):n.execute(this.findItemByHtml(s))}})},add_filter_condition:function(e,t){if(""===t)return!1;this.grid.add_filter(e,t,!0);var n=r(i.filter_element(e,t)),s=this;n.click(function(){r(this).remove(),s.remove_filter_condition(e,t)});var a=this.$el.find("#"+e+"-filtering-criteria");a.append(n),this.go_page_one(),this.execute()},remove_filter_condition:function(e,t){this.grid.remove_filter(e,t),this.go_page_one(),this.execute()},set_sort_condition:function(e){var t=this.grid.get("sort_key"),i=e;t.indexOf(e)!==-1&&"-"!==t.substring(0,1)&&(i="-"+e),this.$el.find(".sort-arrow").remove();var n="-"==i.substring(0,1)?"↑":"↓",s=r(""+n+" ").addClass("sort-arrow");this.$el.find("#"+e+"-header").append(s),this.grid.set("sort_key",i),this.go_page_one(),this.execute()},set_categorical_filter:function(e,t){var i=this.grid.get("categorical_filters")[e],n=this.grid.get("filters")[e],s=this;this.$el.find("."+e+"-filter").each(function(){var a=r.trim(r(this).text()),o=i[a],l=o[e];if(l==t)r(this).empty(),r(this).addClass("current-filter"),r(this).append(a);else if(l==n){r(this).empty();var c=r(''+a+" ");c.click(function(){s.set_categorical_filter(e,l)}),r(this).removeClass("current-filter"),r(this).append(c)}}),this.grid.add_filter(e,t),this.go_page_one(),this.execute()},set_page:function(e){var t=this;this.$el.find(".page-link").each(function(){var i,n=r(this).attr("id"),s=parseInt(n.split("-")[2],10),a=t.grid.get("cur_page");if(s===e)i=r(this).children().text(),r(this).empty(),r(this).addClass("inactive-link"),r(this).text(i);else if(s===a){i=r(this).text(),r(this).empty(),r(this).removeClass("inactive-link");var o=r(''+i+" ");o.click(function(){t.set_page(s)}),r(this).append(o)}}),"all"===e?this.grid.set("cur_page",e):this.grid.set("cur_page",parseInt(e,10)),this.execute()},submit_operation:function(e,t){var i=r(e).val(),n=this.$el.find('input[name="id"]:checked').length;if(!n>0)return!1;var s=l.findWhere(this.grid.attributes.operations,{label:i});s&&!t&&(t=s.confirm||"");var a=[];return this.$el.find("input[name=id]:checked").each(function(){a.push(r(this).val())}),this.execute({operation:i,id:a,confirmation_text:t}),!0},check_all_items:function(){var e,t=document.getElementById("check_all"),i=document.getElementsByTagName("input"),n=0;if(t.checked===!0)for(e=0;e1)for(var r=o[1],l=r.split("&"),c=0;c")),this.options=t||[],this.$button.data("popupmenu",this);var i=this;this.$button.click(function(e){return a(".popmenu-wrapper").remove(),i._renderAndShow(e),!1})},_renderAndShow:function(e){this.render(),this.$el.appendTo("body").css(this._getShownPosition(e)).show(),this._setUpCloseBehavior()},render:function(){if(this.$el.addClass("popmenu-wrapper").hide().css({position:"absolute"}).html(this.template(this.$button.attr("id"),this.options)),this.options.length){var e=this;this.$el.find("li").each(function(t,i){var n=e.options[t];n.func&&a(this).children("a.popupmenu-option").click(function(t){n.func.call(e,t,n),t.preventDefault()})})}return this},template:function(e,t){return['"].join("")},_templateOptions:function(e){return e.length?o.map(e,function(e){if(e.divider)return' ';if(e.header)return['',e.html," "].join("");var t=e.href||"javascript:void(0);",i=e.target?' target="'+e.target+'"':"",n=e.checked?' ':"";return[' "].join("")}).join(""):"(no options) "},_getShownPosition:function(e){var t=this.$el.width(),i=e.pageX-t/2;return i=Math.min(i,a(document).scrollLeft()+a(window).width()-t-5),i=Math.max(i,a(document).scrollLeft()+5),{top:e.pageY,left:i}},_setUpCloseBehavior:function(){function e(e){if(a(document).off("click.close_popup"),window&&window.parent!==window)try{a(window.parent.document).off("click.close_popup")}catch(e){}else try{a("iframe#galaxy_main").contents().off("click.close_popup")}catch(e){}t.remove()}var t=this;if(a("html").one("click.close_popup",e),window&&window.parent!==window)try{a(window.parent.document).find("html").one("click.close_popup",e)}catch(e){}else try{a("iframe#galaxy_main").contents().one("click.close_popup",e)}catch(e){}},addItem:function(e,t){return t=t>=0?t:this.options.length,this.options.splice(t,0,e),this},removeItem:function(e){return e>=0&&this.options.splice(e,1),this},findIndexByHtml:function(e){for(var t=0;t0?(!this.multiple&&this.button.disable(),this.$(".ui-list-portlet").show()):(this.button.enable(),this.$(".ui-list-portlet").hide()),this.options.onchange&&this.options.onchange()},_template:function(e){return''},_templateRow:function(e){return''+e.name+"
"}});return{View:n}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1))},function(e,t,i){var n,s;(function(a,o,r){n=[i(4),i(12)],s=function(e,t){var i=a.View.extend({initialize:function(t){var i=this;this.model=t&&t.model||new a.Model({visible:!0,data:[],id:e.uid(),error_text:"No options available.",wait_text:"Please wait...",multiple:!1,optional:!1,onchange:function(){}}).set(t),this.listenTo(this.model,"change:value",this._changeValue,this),this.listenTo(this.model,"change:wait",this._changeWait,this),this.listenTo(this.model,"change:data",this._changeData,this),this.listenTo(this.model,"change:visible",this._changeVisible,this),this.on("change",function(){i.model.get("onchange")(i.value())}),this.render()},render:function(){var e=this;this.$el.empty().removeClass().addClass("ui-options").append(this.$message=o("
")).append(this.$menu=o("
").addClass("ui-options-menu")).append(this.$options=o(this._template())),this.all_button=null,this.model.get("multiple")&&(this.all_button=new t.ButtonCheck({onclick:function(){e.$("input").prop("checked",0!==e.all_button.value()),e.value(e._getValue()),e.trigger("change")}}),this.$menu.append(this.all_button.$el)),this._changeData(),this._changeWait(),this._changeVisible()},update:function(e){this.model.set("data",e)},_changeData:function(){var e=this;this.$options.empty(),this._templateOptions?this.$options.append(this._templateOptions(this.model.get("data"))):r.each(this.model.get("data"),function(t){e.$options.append(o(e._templateOption(t)).addClass("ui-option").tooltip({title:t.tooltip,placement:"bottom"}))});var e=this;this.$("input").on("change",function(){e.value(e._getValue()),e.trigger("change")}),this._changeValue(),this._changeWait()},_changeVisible:function(){this.$el[this.model.get("visible")?"show":"hide"]()},_changeWait:function(){this.model.get("wait")?0===this.length()&&(this._messageShow(this.model.get("wait_text"),"info"),this.$options.hide(),this.$menu.hide()):0===this.length()?(this._messageShow(this.model.get("error_text"),"danger"),this.$options.hide(),this.$menu.hide()):(this.$message.hide(),this.$options.css("display","inline-block"),this.$menu.show())},_changeValue:function(){this._setValue(this.model.get("value")),null!==this._getValue()||this.model.get("multiple")||this.model.get("optional")||this._setValue(this.first()),this.all_button&&this.all_button.value(o.isArray(this._getValue())?this._getValue().length:0,this.length())},value:function(e){return void 0!==e&&this.model.set("value",e),this._getValue()},first:function(){var e=this.$("input").first();return e.length>0?e.val():null},wait:function(){this.model.set("wait",!0)},unwait:function(){this.model.set("wait",!1)},length:function(){return this.$(".ui-option").length},_setValue:function(e){var t=this;if(void 0!==e&&(this.$("input").prop("checked",!1),null!==e)){var i=o.isArray(e)?e:[e];r.each(i,function(e){t.$('input[value="'+e+'"]').first().prop("checked",!0)})}},_getValue:function(){var t=[];return this.$(":checked").each(function(){t.push(o(this).val())}),e.isEmpty(t)?null:this.model.get("multiple")?t:t[0]},_messageShow:function(e,t){this.$message.show().removeClass().addClass("ui-message alert alert-"+t).html(e)},_template:function(){return o("
").addClass("ui-options-list")}}),n=i.extend({_templateOption:function(t){var i=e.uid();return o("
").addClass("ui-option").append(o(" ").attr({id:i,type:this.model.get("type"),name:this.model.id,value:t.value})).append(o(" ").addClass("ui-options-label").attr("for",i).html(t.label))}}),s={};s.View=n.extend({initialize:function(e){e.type="radio",n.prototype.initialize.call(this,e)}});var l={};l.View=n.extend({initialize:function(e){e.type="checkbox",e.multiple=!0,n.prototype.initialize.call(this,e)}});var c={};return c.View=i.extend({initialize:function(e){i.prototype.initialize.call(this,e)},_setValue:function(e){void 0!==e&&(this.$("input").prop("checked",!1),this.$("label").removeClass("active"),this.$('[value="'+e+'"]').prop("checked",!0).closest("label").addClass("active"))},_templateOption:function(e){var t=o(" ").addClass("btn btn-default");return e.icon&&t.append(o(" ").addClass("fa").addClass(e.icon).addClass(!e.label&&"no-padding")),t.append(o(" ").attr({type:"radio",name:this.model.id,value:e.value})),e.label&&t.append(e.label),t},_template:function(){return o("
").addClass("btn-group ui-radiobutton").attr("data-toggle","buttons")}}),{Base:i,BaseIcons:n,Radio:s,RadioButton:c,Checkbox:l}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1),i(2))},function(e,t,i){var n,s;(function(a,o,r){n=[i(4),i(12)],s=function(e,t){var i=a.View.extend({initialize:function(t){var i=this;this.data=[],this.data2=[],this.model=t&&t.model||new a.Model({id:e.uid(),cls:"ui-select",error_text:"No options available",empty_text:"Nothing selected",visible:!0,wait:!1,multiple:!1,searchable:!0,optional:!1,disabled:!1,onchange:function(){},value:null,selectall:!0,pagesize:20}).set(t),this.on("change",function(){i.model.get("onchange")&&i.model.get("onchange")(i.value())}),this.listenTo(this.model,"change:data",this._changeData,this),this.listenTo(this.model,"change:disabled",this._changeDisabled,this),this.listenTo(this.model,"change:wait",this._changeWait,this),this.listenTo(this.model,"change:visible",this._changeVisible,this),this.listenTo(this.model,"change:value",this._changeValue,this),this.listenTo(this.model,"change:multiple change:searchable change:cls change:id",this.render,this),this.render()},render:function(){var e=this;this.model.get("searchable")?this._renderSearchable():this._renderClassic(),this.$el.addClass(this.model.get("cls")).attr("id",this.model.get("id")),this.$select.empty().addClass("select").attr("id",this.model.get("id")+"_select").prop("multiple",this.model.get("multiple")).on("change",function(){e.value(e._getValue()),e.trigger("change")}),this._changeData(),this._changeWait(),this._changeVisible(),this._changeDisabled()},_renderClassic:function(){var e=this;this.$el.addClass(this.model.get("multiple")?"ui-select-multiple":"ui-select").append(this.$select=o(" ")).append(this.$dropdown=o("
")).append(this.$resize=o("
").append(this.$resize_icon=o(" "))),this.model.get("multiple")?(this.$dropdown.hide(),this.$resize_icon.addClass("fa fa-angle-double-right fa-rotate-45").show(),this.$resize.removeClass().addClass("icon-resize").show().off("mousedown").on("mousedown",function(t){var i=t.pageY,n=e.$select.height();e.minHeight=e.minHeight||n,o("#dd-helper").show().on("mousemove",function(t){e.$select.height(Math.max(n+(t.pageY-i),e.minHeight))}).on("mouseup mouseleave",function(){o("#dd-helper").hide().off()})})):(this.$dropdown.show(),this.$resize.hide(),this.$resize_icon.hide())},_renderSearchable:function(){var e=this;this.$el.append(this.$select=o("
")).append(this.$dropdown=o("
")),this.$dropdown.hide(),this.model.get("multiple")||this.$dropdown.show().on("click",function(){e.$select.select2&&e.$select.select2("open")}),this.all_button=null,this.model.get("multiple")&&this.model.get("selectall")&&(this.all_button=new t.ButtonCheck({onclick:function(){var t=[];0!==e.all_button.value()&&r.each(e.model.get("data"),function(e){t.push(e.value)}),e.value(t),e.trigger("change")}}),this.$el.prepend(this.all_button.$el))},_match:function(e,t){return!e||""==e||String(t).toUpperCase().indexOf(e.toUpperCase())>=0},_changeData:function(){var e=this;this.data=[],!this.model.get("multiple")&&this.model.get("optional")&&this.data.push({value:"__null__",label:e.model.get("empty_text")}),r.each(this.model.get("data"),function(t){e.data.push(t)}),0==this.length()&&this.data.push({value:"__null__",label:this.model.get("error_text")}),this.model.get("searchable")?(this.data2=[],r.each(this.data,function(t,i){e.data2.push({order:i,id:t.value,text:t.label,tags:t.tags})}),this.$select.data("select2")&&this.$select.select2("destroy"),this.matched_tags={},this.$select.select2({data:e.data2,closeOnSelect:!this.model.get("multiple"),multiple:this.model.get("multiple"),query:function(t){e.matched_tags={};var i=e.model.get("pagesize"),n=r.filter(e.data2,function(i){var n=!1;return r.each(i.tags,function(i){e._match(t.term,i)&&(n=e.matched_tags[i]=!0)}),n||e._match(t.term,i.text)});t.callback({results:n.slice((t.page-1)*i,t.page*i),more:n.length>=t.page*i})},formatResult:function(t){return r.escape(t.text)+'"}}),this.$(".select2-container .select2-search input").off("blur")):(this.$select.find("option").remove(),r.each(this.data,function(t){e.$select.append(o(" ").attr("value",t.value).html(r.escape(t.label)))})),this.model.set("disabled",0==this.length()),this._changeValue()},_changeDisabled:function(){this.model.get("searchable")?this.$select.select2(this.model.get("disabled")?"disable":"enable"):this.$select.prop("disabled",this.model.get("disabled"))},_changeWait:function(){this.$dropdown.removeClass().addClass("icon-dropdown fa").addClass(this.model.get("wait")?"fa-spinner fa-spin":"fa-caret-down")},_changeVisible:function(){this.$el[this.model.get("visible")?"show":"hide"](),this.$select[this.model.get("visible")?"show":"hide"]()},_changeValue:function(){if(this._setValue(this.model.get("value")),this.model.get("multiple")){if(this.all_button){var e=this._getValue();this.all_button.value(o.isArray(e)?e.length:0,this.length())}}else null!==this._getValue()||this.model.get("optional")||this._setValue(this.first())},value:function(e){return void 0!==e&&this.model.set("value",e),this._getValue()},first:function(){return this.data.length>0?this.data[0].value:null},exists:function(e){return r.findWhere(this.data,{value:e})},text:function(){var e=this._getValue(),t=this.exists(o.isArray(e)?e[0]:e);return t?t.label:""},show:function(){this.model.set("visible",!0)},hide:function(){this.model.set("visible",!1)},wait:function(){this.model.set("wait",!0)},unwait:function(){this.model.set("wait",!1);
-},disabled:function(){return this.model.get("disabled")},enable:function(){this.model.set("disabled",!1)},disable:function(){this.model.set("disabled",!0)},add:function(e,t){r.each(this.model.get("data"),function(t){t.keep&&!r.findWhere(e,{value:t.value})&&e.push(t)}),t&&e&&e.sort(t),this.model.set("data",e)},update:function(e){this.model.set("data",e)},setOnChange:function(e){this.model.set("onchange",e)},length:function(){return o.isArray(this.model.get("data"))?this.model.get("data").length:0},_setValue:function(e){var t=this;if(null!==e&&void 0!==e||(e="__null__"),this.model.get("multiple")?e=o.isArray(e)?e:[e]:o.isArray(e)&&(e=e.length>0?e[0]:"__null__"),this.model.get("searchable")){if(o.isArray(e))val=[],r.each(e,function(e){var i=r.findWhere(t.data2,{id:e});i&&val.push(i)}),e=val;else{var i=r.findWhere(this.data2,{id:e});e=i}this.$select.select2("data",e)}else this.$select.val(e)},_getValue:function(){var t=null;if(this.model.get("searchable")){var i=this.$select.select2("data");i&&(o.isArray(i)?(t=[],i.sort(function(e,t){return e.order-t.order}),r.each(i,function(e){t.push(e.id)})):t=i.id)}else t=this.$select.val();return e.isEmpty(t)?null:t}});return{View:i}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1),i(2))},function(e,t,i){var n,s;(function(i){n=[],s=function(){var e=i.Model.extend({defaults:{extension:"auto",genome:"?",url_paste:"",status:"init",info:null,file_name:"",file_mode:"",file_size:0,file_type:null,file_path:"",file_data:null,percentage:0,space_to_tab:!1,to_posix_lines:!0,enabled:!0},reset:function(e){this.clear().set(this.defaults).set(e)}}),t=i.Collection.extend({model:e});return{Model:e,Collection:t}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3))},,function(e,t,i){var n,s;(function(a,o,r){n=[i(4)],s=function(e){var t=a.Model.extend({initialize:function(e){this.app=e},checksum:function(){var e="",t=this;return this.app.section.$el.find(".section-row").each(function(){var i=o(this).attr("id"),n=t.app.field_list[i];n&&(e+=i+":"+JSON.stringify(n.value&&n.value())+":"+n.collapsed+";")}),e},create:function(){function e(e,t,i){n.flat_dict[e]=t,a[e]=i,n.app.element_list[t]&&n.app.element_list[t].$el.attr("tour_id",e)}function t(s,a){for(var o in a){var r=a[o];if(r.input){var l=r.input,c=s;switch(""!=s&&(c+="|"),c+=l.name,l.type){case"repeat":var d="section-",h=[],u=null;for(var p in r){var f=p.indexOf(d);f!=-1&&(f+=d.length,h.push(parseInt(p.substr(f))),u||(u=p.substr(0,f)))}h.sort(function(e,t){return e-t});var o=0;for(var g in h)t(c+"_"+o++,r[u+h[g]]);break;case"conditional":var m=n.app.field_list[l.id].value();e(c+"|"+l.test_param.name,l.id,m);var v=i(l,m);v!=-1&&t(c,a[l.id+"-section-"+v]);break;case"section":t(!l.flat&&c||"",r);break;default:var _=n.app.field_list[l.id];if(_&&_.value){var m=_.value();if((void 0===l.ignore||l.ignore!=m)&&(_.collapsed&&l.collapsible_value&&(m=l.collapsible_value),e(c,l.id,m),l.payload))for(var y in l.payload)e(y,l.id,l.payload[y])}}}}}var n=this,s={};this._iterate(this.app.section.$el,s);var a={};return this.flat_dict={},t("",s),a},match:function(e){return this.flat_dict&&this.flat_dict[e]},matchCase:function(e,t){return i(e,t)},matchModel:function(e,t){var i=this;n(e.inputs,function(e,n){i.flat_dict[n]&&t(e,i.flat_dict[n])})},matchResponse:function(e){function t(e,s){if("string"==typeof s){var a=n.flat_dict[e];a&&(i[a]=s)}else for(var o in s){var r=o;if(""!==e){var l="|";s instanceof Array&&(l="_"),r=e+l+r}t(r,s[o])}}var i={},n=this;return t("",e),i},_iterate:function(e,t){var i=this,n=o(e).children();n.each(function(){var e=this,n=o(e).attr("id");if(o(e).hasClass("section-row")){var s=i.app.input_list[n];t[n]=s&&{input:s}||{},i._iterate(e,t[n])}else i._iterate(e,t)})}}),i=function(e,t){"boolean"==e.test_param.type&&(t="true"==t?e.test_param.truevalue||"true":e.test_param.falsevalue||"false");for(var i in e.cases)if(e.cases[i].value==t)return i;return-1},n=function(e,t,s,a){a=o.extend(!0,{},a),r.each(e,function(e){e&&e.type&&e.name&&(a[e.name]=e)});for(var l in e){var c=e[l];c.name=c.name||l;var d=s?s+"|"+c.name:c.name;switch(c.type){case"repeat":r.each(c.cache,function(e,i){n(e,t,d+"_"+i,a)});break;case"conditional":if(c.test_param){t(c.test_param,d+"|"+c.test_param.name,a);var h=i(c,c.test_param.value);h!=-1?n(c.cases[h].inputs,t,d,a):Galaxy.emit.debug("form-data::visitInputs() - Invalid case for "+d+".")}else Galaxy.emit.debug("form-data::visitInputs() - Conditional test parameter missing for "+d+".");break;case"section":n(c.inputs,t,d,a);break;default:t(c,d,a)}}};return{Manager:t,visitInputs:n}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1),i(2))},function(e,t,i){var n,s;(function(a,o){n=[i(4),i(33),i(7),i(13),i(20),i(39)],s=function(e,t,i,n,s,r){return n.extend({initialize:function(e){var i=this;this.deferred=new t,n.prototype.initialize.call(this,e),this.model.get("inputs")?this._buildForm(this.model.attributes):this.deferred.execute(function(e){i._buildModel(e,i.model.attributes,!0)}),this.model.get("listen_to_history")&&parent.Galaxy&&parent.Galaxy.currHistoryPanel&&this.listenTo(parent.Galaxy.currHistoryPanel.collection,"change",function(){i.model.get("onchange")()}),this.$el.on("remove",function(){i._destroy()})},_destroy:function(){var e=this;this.$el.off().hide(),this.deferred.execute(function(){n.prototype.remove.call(e),Galaxy.emit.debug("tool-form-base::_destroy()","Destroy view.")})},_buildForm:function(e){var t=this;this.model.set(e),this.model.set({title:e.title||""+e.name+" "+e.description+" (Galaxy Version "+e.version+")",operations:!this.model.get("hide_operations")&&this._operations(),onchange:function(){t.deferred.reset(),t.deferred.execute(function(e){t.model.get("postchange")(e,t)})}}),this.model.get("customize")&&this.model.get("customize")(this),this.render(),this.model.get("collapsible")||this.$el.append(a("
").addClass("ui-margin-top-large").append(this._footer()))},_buildModel:function(t,n,s){var o=this,r=this.model.attributes;r.version=n.version,r.id=n.id;var l="",c={},d="";n.job_id?d=n.job_id:r.job_id&&(d=r.job_id),d?l=Galaxy.root+"api/jobs/"+d+"/build_for_rerun":(l=Galaxy.root+"api/tools/"+r.id+"/build",c=a.extend({},Galaxy.params),c.tool_id&&delete c.tool_id),r.version&&(c.tool_version=r.version),e.get({url:l,data:c,success:function(e){return e.display?(o._buildForm(e),!s&&o.message.update({status:"success",message:"Now you are using '"+r.name+"' version "+r.version+", id '"+r.id+"'.",persistent:!1}),Galaxy.emit.debug("tool-form-base::_buildModel()","Initial tool model ready.",e),void t.resolve()):void(window.location=Galaxy.root)},error:function(e,n){var s=e&&e.err_msg||"Uncaught error.";401==n?window.location=Galaxy.root+"user/login?"+a.param({redirect:Galaxy.root+"?tool_id="+r.id}):o.$el.is(":empty")?o.$el.prepend(new i.Message({message:s,status:"danger",persistent:!0,large:!0}).$el):Galaxy.modal&&Galaxy.modal.show({title:"Tool request failed",body:s,buttons:{Close:function(){Galaxy.modal.hide()}}}),Galaxy.emit.debug("tool-form-base::_buildModel()","Initial tool model request failed.",e),t.reject()}})},_operations:function(){var t=this,n=this.model.attributes,s=new i.ButtonMenu({icon:"fa-cubes",title:!n.narrow&&"Versions"||null,tooltip:"Select another tool version"});if(!n.sustain_version&&n.versions&&n.versions.length>1)for(var r in n.versions){var l=n.versions[r];l!=n.version&&s.addMenu({title:"Switch to "+l,version:l,icon:"fa-cube",onclick:function(){var e=n.id.replace(n.version,this.version),i=this.version;t.deferred.reset(),t.deferred.execute(function(n){t._buildModel(n,{id:e,version:i})})}})}else s.$el.hide();var c=new i.ButtonMenu({icon:"fa-caret-down",title:!n.narrow&&"Options"||null,tooltip:"View available options"});return n.biostar_url&&(c.addMenu({icon:"fa-question-circle",title:"Question?",onclick:function(){window.open(n.biostar_url+"/p/new/post/")}}),c.addMenu({icon:"fa-search",title:"Search",onclick:function(){window.open(n.biostar_url+"/local/search/page/?q="+n.name)}})),c.addMenu({icon:"fa-share",title:"Share",onclick:function(){prompt("Copy to clipboard: Ctrl+C, Enter",window.location.origin+Galaxy.root+"root?tool_id="+n.id)}}),Galaxy.user&&Galaxy.user.get("is_admin")&&(c.addMenu({icon:"fa-download",title:"Download",onclick:function(){window.location.href=Galaxy.root+"api/tools/"+n.id+"/download"}}),c.addMenu({icon:"fa-refresh",title:"Reload XML",onclick:function(){e.get({url:Galaxy.root+"api/tools/"+n.id+"/reload",success:function(e){t.message.update({persistent:!1,message:"Tool XML has been reloaded.",status:"success"})},error:function(e){t.message.update({persistent:!1,message:e.err_msg,status:"danger"})}})}})),n.requirements&&n.requirements.length>0&&c.addMenu({icon:"fa-info-circle",title:"Requirements",onclick:function(){!this.requirements_visible||t.portlet.collapsed?(this.requirements_visible=!0,t.portlet.expand(),t.message.update({persistent:!0,message:t._templateRequirements(n),status:"info"})):(this.requirements_visible=!1,t.message.update({message:""}))}}),n.sharable_url&&c.addMenu({icon:"fa-external-link",title:"See in Tool Shed",onclick:function(){window.open(n.sharable_url)}}),a.getJSON("/api/webhooks/tool-menu/all",function(e){o.each(e,function(e){e.activate&&e.config.function&&c.addMenu({icon:e.config.icon,title:e.config.title,onclick:function(){var t=new Function("options",e.config.function);t(n)}})})}),{menu:c,versions:s}},_footer:function(){var e=this.model.attributes,t=a("
").append(this._templateHelp(e));if(e.citations){var i=a("
"),n=new s.ToolCitationCollection;n.tool_id=e.id;var o=new r.CitationListView({el:i,collection:n});o.render(),n.fetch(),t.append(i)}return t},_templateHelp:function(e){var t=a("
").addClass("ui-form-help").append(e.help);return t.find("a").attr("target","_blank"),t},_templateRequirements:function(e){var t=e.requirements.length;if(t>0){var i="This tool requires ";o.each(e.requirements,function(e,n){i+=e.name+(e.version?" (Version "+e.version+")":"")+(n").attr("target","_blank").attr("href","https://galaxyproject.org/tools/requirements/").text("here");return a(" ").append(i+". Click ").append(n).append(" for more information.")}return"No requirements found."}})}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(1),i(2))},function(e,t,i){var n,s;(function(a,o,r){n=[i(4),i(7),i(8),i(29),i(27)],s=function(e,t,i,n,s){var l=a.View.extend({initialize:function(s){var a=this;this.modal=parent.Galaxy.modal||new i.View,this.form=new n(e.merge({listen_to_history:!0,always_refresh:!1,customize:function(e){var i=e.model.attributes;i.buttons={execute:execute_btn=new t.Button({icon:"fa-check",tooltip:"Execute: "+i.name+" ("+i.version+")",title:"Execute",cls:"ui-button btn btn-primary",floating:"clear",onclick:function(){execute_btn.wait(),e.portlet.disable(),a.submit(i,function(){execute_btn.unwait(),e.portlet.enable()})}})},i.job_id&&i.job_remap&&i.inputs.push({label:"Resume dependencies from this job",name:"rerun_remap_job_id",type:"select",display:"radio",ignore:"__ignore__",value:"__ignore__",options:[["Yes",i.job_id],["No","__ignore__"]],help:"The previous run of this tool failed and other tools were waiting for it to finish successfully. Use this option to resume those tools using the new output(s) of this tool run."})},postchange:function(t,i){var n={tool_id:i.model.get("id"),tool_version:i.model.get("version"),inputs:o.extend(!0,{},i.data.create())};i.wait(!0),Galaxy.emit.debug("tool-form::postchange()","Sending current state.",n),e.request({type:"POST",url:Galaxy.root+"api/tools/"+i.model.get("id")+"/build",data:n,success:function(e){i.update(e),i.wait(!1),Galaxy.emit.debug("tool-form::postchange()","Received new model.",e),t.resolve()},error:function(e){Galaxy.emit.debug("tool-form::postchange()","Refresh request failed.",e),t.reject()}})}},s)),this.deferred=this.form.deferred,this.setElement("
"),this.$el.append(this.form.$el)},submit:function(t,i){var n=this,a={tool_id:t.id,tool_version:t.version,inputs:this.form.data.create()};if(this.form.trigger("reset"),!n.validate(a))return Galaxy.emit.debug("tool-form::submit()","Submission canceled. Validation failed."),void(i&&i());if(t.action!==Galaxy.root+"tool_runner/index"){var l=o("").attr({action:t.action,method:t.method,enctype:t.enctype});return r.each(a.inputs,function(e,t){l.append(o(" ").attr({name:t,value:e}))}),l.hide().appendTo("body").submit().remove(),void(i&&i())}Galaxy.emit.debug("tool-form::submit()","Validation complete.",a),e.request({type:"POST",url:Galaxy.root+"api/tools",data:a,success:function(e){if(i&&i(),n.$el.children().hide(),n.$el.append(n._templateSuccess(e)),e.jobs&&e.jobs.length>0){n.$el.append(o("
",{id:"webhook-view"}));new s.WebhookView({urlRoot:Galaxy.root+"api/webhooks/tool",toolId:a.tool_id})}parent.Galaxy&&parent.Galaxy.currHistoryPanel&&parent.Galaxy.currHistoryPanel.refreshContents()},error:function(e){i&&i(),Galaxy.emit.debug("tool-form::submit","Submission failed.",e);var t=!1;if(e&&e.err_data){var s=n.form.data.matchResponse(e.err_data);for(var o in s){n.form.highlight(o,s[o]),t=!0;break}}t||n.modal.show({title:"Job submission failed",body:n._templateError(a,e&&e.err_msg),buttons:{Close:function(){n.modal.hide()}}})}})},validate:function(e){var t=e.inputs,i=-1,n=null;for(var s in t){var a=t[s],o=this.form.data.match(s),r=this.form.field_list[o],l=this.form.input_list[o];if(o&&l&&r){if(!l.optional&&null==a)return this.form.highlight(o),!1;if(a&&a.batch){var c=a.values.length,d=c>0&&a.values[0]&&a.values[0].src;if(d)if(null===n)n=d;else if(n!==d)return this.form.highlight(o,"Please select either dataset or dataset list fields for all batch mode fields."),!1;if(i===-1)i=c;else if(i!==c)return this.form.highlight(o,"Please make sure that you select the same number of inputs for all batch mode fields. This field contains "+c+" selection(s) while a previous field contains "+i+" ."),!1}}else Galaxy.emit.debug("tool-form::validate()","Retrieving input objects failed.")}return!0},_templateSuccess:function(e){if(e.jobs&&e.jobs.length>0){var t=e.jobs.length,i=1==t?"1 job has":t+" jobs have",n=o("
").addClass("donemessagelarge").append(o("
").text(i+" been successfully added to the queue - resulting in the following datasets:"));return r.each(e.outputs,function(e){n.append(o("
").addClass("messagerow").append(o(" ").text(e.hid+": "+e.name)))}),n.append(o("
").append(" ").text("You can check the status of queued jobs and view the resulting data by refreshing the History pane. When the job has been run the status will change from 'running' to 'finished' if completed successfully or 'error' if problems were encountered.")),n}return this._templateError(e,"Invalid success response. No jobs found.")},_templateError:function(e,t){return o("
").addClass("errormessagelarge").append(o("
").text("The server could not complete the request. Please contact the Galaxy Team if this error persists. "+(t||""))).append(o(" ").text(JSON.stringify(e,null,4)))}});return{View:l}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1),i(2))},,function(e,t,i){var n,s;(function(a,o){n=[i(4)],s=function(e){var t=a.View.extend({initialize:function(t){this.options=e.merge(t,{content:"No content available.",onchange:null,ondblclick:null,onconfirm:null,cls:"ui-table",selectable:!0,cls_tr:""}),this.setElement(this._template()),this.$thead=this.$("thead"),this.$tbody=this.$("tbody"),this.$tmessage=this.$("tmessage"),this.row=this._row(),this.row_count=0},events:{click:"_onclick",dblclick:"_ondblclick"},addHeader:function(e){this.row.append(o(" ").append(e))},appendHeader:function(){this.$thead.append(this.row),this.row=o(" ")},add:function(e,t,i){var n=o(" ");t&&n.css("width",t),i&&n.css("text-align",i),this.row.append(n.append(e))},append:function(e,t){this._commit(e,t,!1)},prepend:function(e,t){this._commit(e,t,!0)},get:function(e){return this.$("#"+e)},del:function(e){var t=this.$tbody.find("#"+e);t.length>0&&(t.remove(),this.row_count--,this._refresh())},delAll:function(){this.$tbody.empty(),this.row_count=0,this._refresh()},value:function(e){if(this.options.selectable){this.before=this.$tbody.find(".current").attr("id"),void 0!==e&&(this.$tbody.find("tr").removeClass("current"),e&&this.$tbody.find("#"+e).addClass("current"));var t=this.$tbody.find(".current").attr("id");return void 0===t?null:(t!=this.before&&this.options.onchange&&this.options.onchange(e),t)}},size:function(){return this.$tbody.find("tr").length},_commit:function(e,t,i){this.del(e),this.row.attr("id",e),i?this.$tbody.prepend(this.row):this.$tbody.append(this.row),t&&(this.row.hide(),this.row.fadeIn()),this.row=this._row(),this.row_count++,this._refresh()},_row:function(){return o(' ')},_onclick:function(e){var t=this.value(),i=o(e.target).closest("tr").attr("id");""!=i&&i&&t!=i&&(this.options.onconfirm?this.options.onconfirm(i):this.value(i))},_ondblclick:function(e){var t=this.value();t&&this.options.ondblclick&&this.options.ondblclick(t)},_refresh:function(){0==this.row_count?this.$tmessage.show():this.$tmessage.hide()},_template:function(){return''+this.options.content+" "}});return{View:t}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1))},function(e,t,i){var n,s;(function(a,o){n=[i(4)],s=function(e){return a.Model.extend({initialize:function(){this.active={},this.last=null},execute:function(t){var i=this,n=e.uid(),s=t.length>0;this.active[n]=!0;var a=o.Deferred();a.promise().always(function(){delete i.active[n],s&&Galaxy.emit.debug("deferred::execute()",this.state().charAt(0).toUpperCase()+this.state().slice(1)+" "+n)}),o.when(this.last).always(function(){i.active[n]?(s&&Galaxy.emit.debug("deferred::execute()","Running "+n),t(a),!s&&a.resolve()):a.reject()}),this.last=a.promise()},reset:function(){Galaxy.emit.debug("deferred::execute()","Reset");for(var e in this.active)this.active[e]=!1},ready:function(){return o.isEmptyObject(this.active)}})}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1))},,,,,function(e,t){function i(e){function t(e){s.push(e)}if("string"==typeof e){var n={},s=[],a=i.call(n,t);return a.parse(e),{entries:s,errors:a.getErrors()}}if("function"!=typeof e)throw"Invalid parser construction.";return this.STATES_={ENTRY_OR_JUNK:0,OBJECT_TYPE:1,ENTRY_KEY:2,KV_KEY:3,EQUALS:4,KV_VALUE:5},this.DATA_={},this.CALLBACK_=e,this.CHAR_=0,this.LINE_=1,this.CHAR_IN_LINE_=0,this.SKIPWS_=!0,this.SKIPCOMMENT_=!0,this.PARSETMP_={},this.SKIPTILLEOL_=!1,this.VALBRACES_=null,this.BRACETYPE_=null,this.BRACECOUNT_=0,this.STATE_=this.STATES_.ENTRY_OR_JUNK,this.ERRORS_=[],this.ENTRY_TYPES_={inproceedings:1,proceedings:2,article:3,techreport:4,misc:5,mastersthesis:6,book:7,phdthesis:8,incollection:9,unpublished:10,inbook:11,manual:12,periodical:13,booklet:14,masterthesis:15,conference:16,online:998,data:999},this.MACROS_={jan:"January",feb:"February",mar:"March",apr:"April",may:"May",jun:"June",jul:"July",aug:"August",sep:"September",oct:"October",nov:"November",dec:"December",Jan:"January",Feb:"February",Mar:"March",Apr:"April",May:"May",Jun:"June",Jul:"July",Aug:"August",Sep:"September",Oct:"October",Nov:"November",Dec:"December"},this.getErrors=function(){return this.ERRORS_},this.parse=function(e){for(var t=0;t
0&&(n["{"].splice(n["{"].length-1,1),0==n["{"].length+n['"'].length&&(a=!0))}a?(this.SKIPWS_=!0,this.SKIPCOMMENT_=!0,this.STATE_=this.STATES_.KV_KEY,this.DATA_.Fields[this.PARSETMP_.Key]=this.PARSETMP_.Value,this.PARSETMP_={Key:""},this.VALBRACES_=null):this.PARSETMP_.Value+=e}}},this.CHARCONV_=[[/\\space /g," "],[/\\textdollar /g,"$"],[/\\textquotesingle /g,"'"],[/\\ast /g,"*"],[/\\textbackslash /g,"\\"],[/\\\^\{\}/g,"^"],[/\\textasciigrave /g,"`"],[/\\lbrace /g,"{"],[/\\vert /g,"|"],[/\\rbrace /g,"}"],[/\\textasciitilde /g,"~"],[/\\textexclamdown /g,"¡"],[/\\textcent /g,"¢"],[/\\textsterling /g,"£"],[/\\textcurrency /g,"¤"],[/\\textyen /g,"¥"],[/\\textbrokenbar /g,"¦"],[/\\textsection /g,"§"],[/\\textasciidieresis /g,"¨"],[/\\textcopyright /g,"©"],[/\\textordfeminine /g,"ª"],[/\\guillemotleft /g,"«"],[/\\lnot /g,"¬"],[/\\textregistered /g,"®"],[/\\textasciimacron /g,"¯"],[/\\textdegree /g,"°"],[/\\pm /g,"±"],[/\\textasciiacute /g,"´"],[/\\mathrm\{\\mu\}/g,"µ"],[/\\textparagraph /g,"¶"],[/\\cdot /g,"·"],[/\\c\{\}/g,"¸"],[/\\textordmasculine /g,"º"],[/\\guillemotright /g,"»"],[/\\textonequarter /g,"¼"],[/\\textonehalf /g,"½"],[/\\textthreequarters /g,"¾"],[/\\textquestiondown /g,"¿"],[/\\`\{A\}/g,"À"],[/\\'\{A\}/g,"Á"],[/\\\^\{A\}/g,"Â"],[/\\~\{A\}/g,"Ã"],[/\\"\{A\}/g,"Ä"],[/\\AA /g,"Å"],[/\\AE /g,"Æ"],[/\\c\{C\}/g,"Ç"],[/\\`\{E\}/g,"È"],[/\\'\{E\}/g,"É"],[/\\\^\{E\}/g,"Ê"],[/\\"\{E\}/g,"Ë"],[/\\`\{I\}/g,"Ì"],[/\\'\{I\}/g,"Í"],[/\\\^\{I\}/g,"Î"],[/\\"\{I\}/g,"Ï"],[/\\DH /g,"Ð"],[/\\~\{N\}/g,"Ñ"],[/\\`\{O\}/g,"Ò"],[/\\'\{O\}/g,"Ó"],[/\\\^\{O\}/g,"Ô"],[/\\~\{O\}/g,"Õ"],[/\\"\{O\}/g,"Ö"],[/\\texttimes /g,"×"],[/\\O /g,"Ø"],[/\\`\{U\}/g,"Ù"],[/\\'\{U\}/g,"Ú"],[/\\\^\{U\}/g,"Û"],[/\\"\{U\}/g,"Ü"],[/\\'\{Y\}/g,"Ý"],[/\\TH /g,"Þ"],[/\\ss /g,"ß"],[/\\`\{a\}/g,"à"],[/\\'\{a\}/g,"á"],[/\\\^\{a\}/g,"â"],[/\\~\{a\}/g,"ã"],[/\\"\{a\}/g,"ä"],[/\\aa /g,"å"],[/\\ae /g,"æ"],[/\\c\{c\}/g,"ç"],[/\\`\{e\}/g,"è"],[/\\'\{e\}/g,"é"],[/\\\^\{e\}/g,"ê"],[/\\"\{e\}/g,"ë"],[/\\`\{\\i\}/g,"ì"],[/\\'\{\\i\}/g,"í"],[/\\\^\{\\i\}/g,"î"],[/\\"\{\\i\}/g,"ï"],[/\\dh /g,"ð"],[/\\~\{n\}/g,"ñ"],[/\\`\{o\}/g,"ò"],[/\\'\{o\}/g,"ó"],[/\\\^\{o\}/g,"ô"],[/\\~\{o\}/g,"õ"],[/\\"\{o\}/g,"ö"],[/\\div /g,"÷"],[/\\o /g,"ø"],[/\\`\{u\}/g,"ù"],[/\\'\{u\}/g,"ú"],[/\\\^\{u\}/g,"û"],[/\\"\{u\}/g,"ü"],[/\\'\{y\}/g,"ý"],[/\\th /g,"þ"],[/\\"\{y\}/g,"ÿ"],[/\\=\{A\}/g,"Ā"],[/\\=\{a\}/g,"ā"],[/\\u\{A\}/g,"Ă"],[/\\u\{a\}/g,"ă"],[/\\k\{A\}/g,"Ą"],[/\\k\{a\}/g,"ą"],[/\\'\{C\}/g,"Ć"],[/\\'\{c\}/g,"ć"],[/\\\^\{C\}/g,"Ĉ"],[/\\\^\{c\}/g,"ĉ"],[/\\.\{C\}/g,"Ċ"],[/\\.\{c\}/g,"ċ"],[/\\v\{C\}/g,"Č"],[/\\v\{c\}/g,"č"],[/\\v\{D\}/g,"Ď"],[/\\v\{d\}/g,"ď"],[/\\DJ /g,"Đ"],[/\\dj /g,"đ"],[/\\=\{E\}/g,"Ē"],[/\\=\{e\}/g,"ē"],[/\\u\{E\}/g,"Ĕ"],[/\\u\{e\}/g,"ĕ"],[/\\.\{E\}/g,"Ė"],[/\\.\{e\}/g,"ė"],[/\\k\{E\}/g,"Ę"],[/\\k\{e\}/g,"ę"],[/\\v\{E\}/g,"Ě"],[/\\v\{e\}/g,"ě"],[/\\\^\{G\}/g,"Ĝ"],[/\\\^\{g\}/g,"ĝ"],[/\\u\{G\}/g,"Ğ"],[/\\u\{g\}/g,"ğ"],[/\\.\{G\}/g,"Ġ"],[/\\.\{g\}/g,"ġ"],[/\\c\{G\}/g,"Ģ"],[/\\c\{g\}/g,"ģ"],[/\\\^\{H\}/g,"Ĥ"],[/\\\^\{h\}/g,"ĥ"],[/\\Elzxh /g,"ħ"],[/\\~\{I\}/g,"Ĩ"],[/\\~\{\\i\}/g,"ĩ"],[/\\=\{I\}/g,"Ī"],[/\\=\{\\i\}/g,"ī"],[/\\u\{I\}/g,"Ĭ"],[/\\u\{\\i\}/g,"ĭ"],[/\\k\{I\}/g,"Į"],[/\\k\{i\}/g,"į"],[/\\.\{I\}/g,"İ"],[/\\i /g,"ı"],[/\\\^\{J\}/g,"Ĵ"],[/\\\^\{\\j\}/g,"ĵ"],[/\\c\{K\}/g,"Ķ"],[/\\c\{k\}/g,"ķ"],[/\\'\{L\}/g,"Ĺ"],[/\\'\{l\}/g,"ĺ"],[/\\c\{L\}/g,"Ļ"],[/\\c\{l\}/g,"ļ"],[/\\v\{L\}/g,"Ľ"],[/\\v\{l\}/g,"ľ"],[/\\L /g,"Ł"],[/\\l /g,"ł"],[/\\'\{N\}/g,"Ń"],[/\\'\{n\}/g,"ń"],[/\\c\{N\}/g,"Ņ"],[/\\c\{n\}/g,"ņ"],[/\\v\{N\}/g,"Ň"],[/\\v\{n\}/g,"ň"],[/\\NG /g,"Ŋ"],[/\\ng /g,"ŋ"],[/\\=\{O\}/g,"Ō"],[/\\=\{o\}/g,"ō"],[/\\u\{O\}/g,"Ŏ"],[/\\u\{o\}/g,"ŏ"],[/\\H\{O\}/g,"Ő"],[/\\H\{o\}/g,"ő"],[/\\OE /g,"Œ"],[/\\oe /g,"œ"],[/\\'\{R\}/g,"Ŕ"],[/\\'\{r\}/g,"ŕ"],[/\\c\{R\}/g,"Ŗ"],[/\\c\{r\}/g,"ŗ"],[/\\v\{R\}/g,"Ř"],[/\\v\{r\}/g,"ř"],[/\\'\{S\}/g,"Ś"],[/\\'\{s\}/g,"ś"],[/\\\^\{S\}/g,"Ŝ"],[/\\\^\{s\}/g,"ŝ"],[/\\c\{S\}/g,"Ş"],[/\\c\{s\}/g,"ş"],[/\\v\{S\}/g,"Š"],[/\\v\{s\}/g,"š"],[/\\c\{T\}/g,"Ţ"],[/\\c\{t\}/g,"ţ"],[/\\v\{T\}/g,"Ť"],[/\\v\{t\}/g,"ť"],[/\\~\{U\}/g,"Ũ"],[/\\~\{u\}/g,"ũ"],[/\\=\{U\}/g,"Ū"],[/\\=\{u\}/g,"ū"],[/\\u\{U\}/g,"Ŭ"],[/\\u\{u\}/g,"ŭ"],[/\\r\{U\}/g,"Ů"],[/\\r\{u\}/g,"ů"],[/\\H\{U\}/g,"Ű"],[/\\H\{u\}/g,"ű"],[/\\k\{U\}/g,"Ų"],[/\\k\{u\}/g,"ų"],[/\\\^\{W\}/g,"Ŵ"],[/\\\^\{w\}/g,"ŵ"],[/\\\^\{Y\}/g,"Ŷ"],[/\\\^\{y\}/g,"ŷ"],[/\\"\{Y\}/g,"Ÿ"],[/\\'\{Z\}/g,"Ź"],[/\\'\{z\}/g,"ź"],[/\\.\{Z\}/g,"Ż"],[/\\.\{z\}/g,"ż"],[/\\v\{Z\}/g,"Ž"],[/\\v\{z\}/g,"ž"],[/\\texthvlig /g,"ƕ"],[/\\textnrleg /g,"ƞ"],[/\\eth /g,"ƪ"],[/\\textdoublepipe /g,"ǂ"],[/\\'\{g\}/g,"ǵ"],[/\\Elztrna /g,"ɐ"],[/\\Elztrnsa /g,"ɒ"],[/\\Elzopeno /g,"ɔ"],[/\\Elzrtld /g,"ɖ"],[/\\Elzschwa /g,"ə"],[/\\varepsilon /g,"ɛ"],[/\\Elzpgamma /g,"ɣ"],[/\\Elzpbgam /g,"ɤ"],[/\\Elztrnh /g,"ɥ"],[/\\Elzbtdl /g,"ɬ"],[/\\Elzrtll /g,"ɭ"],[/\\Elztrnm /g,"ɯ"],[/\\Elztrnmlr /g,"ɰ"],[/\\Elzltlmr /g,"ɱ"],[/\\Elzltln /g,"ɲ"],[/\\Elzrtln /g,"ɳ"],[/\\Elzclomeg /g,"ɷ"],[/\\textphi /g,"ɸ"],[/\\Elztrnr /g,"ɹ"],[/\\Elztrnrl /g,"ɺ"],[/\\Elzrttrnr /g,"ɻ"],[/\\Elzrl /g,"ɼ"],[/\\Elzrtlr /g,"ɽ"],[/\\Elzfhr /g,"ɾ"],[/\\Elzrtls /g,"ʂ"],[/\\Elzesh /g,"ʃ"],[/\\Elztrnt /g,"ʇ"],[/\\Elzrtlt /g,"ʈ"],[/\\Elzpupsil /g,"ʊ"],[/\\Elzpscrv /g,"ʋ"],[/\\Elzinvv /g,"ʌ"],[/\\Elzinvw /g,"ʍ"],[/\\Elztrny /g,"ʎ"],[/\\Elzrtlz /g,"ʐ"],[/\\Elzyogh /g,"ʒ"],[/\\Elzglst /g,"ʔ"],[/\\Elzreglst /g,"ʕ"],[/\\Elzinglst /g,"ʖ"],[/\\textturnk /g,"ʞ"],[/\\Elzdyogh /g,"ʤ"],[/\\Elztesh /g,"ʧ"],[/\\textasciicaron /g,"ˇ"],[/\\Elzverts /g,"ˈ"],[/\\Elzverti /g,"ˌ"],[/\\Elzlmrk /g,"ː"],[/\\Elzhlmrk /g,"ˑ"],[/\\Elzsbrhr /g,"˒"],[/\\Elzsblhr /g,"˓"],[/\\Elzrais /g,"˔"],[/\\Elzlow /g,"˕"],[/\\textasciibreve /g,"˘"],[/\\textperiodcentered /g,"˙"],[/\\r\{\}/g,"˚"],[/\\k\{\}/g,"˛"],[/\\texttildelow /g,"˜"],[/\\H\{\}/g,"˝"],[/\\tone\{55\}/g,"˥"],[/\\tone\{44\}/g,"˦"],[/\\tone\{33\}/g,"˧"],[/\\tone\{22\}/g,"˨"],[/\\tone\{11\}/g,"˩"],[/\\cyrchar\\C/g,"̏"],[/\\Elzpalh /g,"̡"],[/\\Elzrh /g,"̢"],[/\\Elzsbbrg /g,"̪"],[/\\Elzxl /g,"̵"],[/\\Elzbar /g,"̶"],[/\\'\{A\}/g,"Ά"],[/\\'\{E\}/g,"Έ"],[/\\'\{H\}/g,"Ή"],[/\\'\{\}\{I\}/g,"Ί"],[/\\'\{\}O/g,"Ό"],[/\\mathrm\{'Y\}/g,"Ύ"],[/\\mathrm\{'\\Omega\}/g,"Ώ"],[/\\acute\{\\ddot\{\\iota\}\}/g,"ΐ"],[/\\Alpha /g,"Α"],[/\\Beta /g,"Β"],[/\\Gamma /g,"Γ"],[/\\Delta /g,"Δ"],[/\\Epsilon /g,"Ε"],[/\\Zeta /g,"Ζ"],[/\\Eta /g,"Η"],[/\\Theta /g,"Θ"],[/\\Iota /g,"Ι"],[/\\Kappa /g,"Κ"],[/\\Lambda /g,"Λ"],[/\\Xi /g,"Ξ"],[/\\Pi /g,"Π"],[/\\Rho /g,"Ρ"],[/\\Sigma /g,"Σ"],[/\\Tau /g,"Τ"],[/\\Upsilon /g,"Υ"],[/\\Phi /g,"Φ"],[/\\Chi /g,"Χ"],[/\\Psi /g,"Ψ"],[/\\Omega /g,"Ω"],[/\\mathrm\{\\ddot\{I\}\}/g,"Ϊ"],[/\\mathrm\{\\ddot\{Y\}\}/g,"Ϋ"],[/\\'\{\$\\alpha\$\}/g,"ά"],[/\\acute\{\\epsilon\}/g,"έ"],[/\\acute\{\\eta\}/g,"ή"],[/\\acute\{\\iota\}/g,"ί"],[/\\acute\{\\ddot\{\\upsilon\}\}/g,"ΰ"],[/\\alpha /g,"α"],[/\\beta /g,"β"],[/\\gamma /g,"γ"],[/\\delta /g,"δ"],[/\\epsilon /g,"ε"],[/\\zeta /g,"ζ"],[/\\eta /g,"η"],[/\\texttheta /g,"θ"],[/\\iota /g,"ι"],[/\\kappa /g,"κ"],[/\\lambda /g,"λ"],[/\\mu /g,"μ"],[/\\nu /g,"ν"],[/\\xi /g,"ξ"],[/\\pi /g,"π"],[/\\rho /g,"ρ"],[/\\varsigma /g,"ς"],[/\\sigma /g,"σ"],[/\\tau /g,"τ"],[/\\upsilon /g,"υ"],[/\\varphi /g,"φ"],[/\\chi /g,"χ"],[/\\psi /g,"ψ"],[/\\omega /g,"ω"],[/\\ddot\{\\iota\}/g,"ϊ"],[/\\ddot\{\\upsilon\}/g,"ϋ"],[/\\'\{o\}/g,"ό"],[/\\acute\{\\upsilon\}/g,"ύ"],[/\\acute\{\\omega\}/g,"ώ"],[/\\Pisymbol\{ppi022\}\{87\}/g,"ϐ"],[/\\textvartheta /g,"ϑ"],[/\\Upsilon /g,"ϒ"],[/\\phi /g,"ϕ"],[/\\varpi /g,"ϖ"],[/\\Stigma /g,"Ϛ"],[/\\Digamma /g,"Ϝ"],[/\\digamma /g,"ϝ"],[/\\Koppa /g,"Ϟ"],[/\\Sampi /g,"Ϡ"],[/\\varkappa /g,"ϰ"],[/\\varrho /g,"ϱ"],[/\\textTheta /g,"ϴ"],[/\\backepsilon /g,"϶"],[/\\cyrchar\\CYRYO /g,"Ё"],[/\\cyrchar\\CYRDJE /g,"Ђ"],[/\\cyrchar\{\\'\\CYRG\}/g,"Ѓ"],[/\\cyrchar\\CYRIE /g,"Є"],[/\\cyrchar\\CYRDZE /g,"Ѕ"],[/\\cyrchar\\CYRII /g,"І"],[/\\cyrchar\\CYRYI /g,"Ї"],[/\\cyrchar\\CYRJE /g,"Ј"],[/\\cyrchar\\CYRLJE /g,"Љ"],[/\\cyrchar\\CYRNJE /g,"Њ"],[/\\cyrchar\\CYRTSHE /g,"Ћ"],[/\\cyrchar\{\\'\\CYRK\}/g,"Ќ"],[/\\cyrchar\\CYRUSHRT /g,"Ў"],[/\\cyrchar\\CYRDZHE /g,"Џ"],[/\\cyrchar\\CYRA /g,"А"],[/\\cyrchar\\CYRB /g,"Б"],[/\\cyrchar\\CYRV /g,"В"],[/\\cyrchar\\CYRG /g,"Г"],[/\\cyrchar\\CYRD /g,"Д"],[/\\cyrchar\\CYRE /g,"Е"],[/\\cyrchar\\CYRZH /g,"Ж"],[/\\cyrchar\\CYRZ /g,"З"],[/\\cyrchar\\CYRI /g,"И"],[/\\cyrchar\\CYRISHRT /g,"Й"],[/\\cyrchar\\CYRK /g,"К"],[/\\cyrchar\\CYRL /g,"Л"],[/\\cyrchar\\CYRM /g,"М"],[/\\cyrchar\\CYRN /g,"Н"],[/\\cyrchar\\CYRO /g,"О"],[/\\cyrchar\\CYRP /g,"П"],[/\\cyrchar\\CYRR /g,"Р"],[/\\cyrchar\\CYRS /g,"С"],[/\\cyrchar\\CYRT /g,"Т"],[/\\cyrchar\\CYRU /g,"У"],[/\\cyrchar\\CYRF /g,"Ф"],[/\\cyrchar\\CYRH /g,"Х"],[/\\cyrchar\\CYRC /g,"Ц"],[/\\cyrchar\\CYRCH /g,"Ч"],[/\\cyrchar\\CYRSH /g,"Ш"],[/\\cyrchar\\CYRSHCH /g,"Щ"],[/\\cyrchar\\CYRHRDSN /g,"Ъ"],[/\\cyrchar\\CYRERY /g,"Ы"],[/\\cyrchar\\CYRSFTSN /g,"Ь"],[/\\cyrchar\\CYREREV /g,"Э"],[/\\cyrchar\\CYRYU /g,"Ю"],[/\\cyrchar\\CYRYA /g,"Я"],[/\\cyrchar\\cyra /g,"а"],[/\\cyrchar\\cyrb /g,"б"],[/\\cyrchar\\cyrv /g,"в"],[/\\cyrchar\\cyrg /g,"г"],[/\\cyrchar\\cyrd /g,"д"],[/\\cyrchar\\cyre /g,"е"],[/\\cyrchar\\cyrzh /g,"ж"],[/\\cyrchar\\cyrz /g,"з"],[/\\cyrchar\\cyri /g,"и"],[/\\cyrchar\\cyrishrt /g,"й"],[/\\cyrchar\\cyrk /g,"к"],[/\\cyrchar\\cyrl /g,"л"],[/\\cyrchar\\cyrm /g,"м"],[/\\cyrchar\\cyrn /g,"н"],[/\\cyrchar\\cyro /g,"о"],[/\\cyrchar\\cyrp /g,"п"],[/\\cyrchar\\cyrr /g,"р"],[/\\cyrchar\\cyrs /g,"с"],[/\\cyrchar\\cyrt /g,"т"],[/\\cyrchar\\cyru /g,"у"],[/\\cyrchar\\cyrf /g,"ф"],[/\\cyrchar\\cyrh /g,"х"],[/\\cyrchar\\cyrc /g,"ц"],[/\\cyrchar\\cyrch /g,"ч"],[/\\cyrchar\\cyrsh /g,"ш"],[/\\cyrchar\\cyrshch /g,"щ"],[/\\cyrchar\\cyrhrdsn /g,"ъ"],[/\\cyrchar\\cyrery /g,"ы"],[/\\cyrchar\\cyrsftsn /g,"ь"],[/\\cyrchar\\cyrerev /g,"э"],[/\\cyrchar\\cyryu /g,"ю"],[/\\cyrchar\\cyrya /g,"я"],[/\\cyrchar\\cyryo /g,"ё"],[/\\cyrchar\\cyrdje /g,"ђ"],[/\\cyrchar\{\\'\\cyrg\}/g,"ѓ"],[/\\cyrchar\\cyrie /g,"є"],[/\\cyrchar\\cyrdze /g,"ѕ"],[/\\cyrchar\\cyrii /g,"і"],[/\\cyrchar\\cyryi /g,"ї"],[/\\cyrchar\\cyrje /g,"ј"],[/\\cyrchar\\cyrlje /g,"љ"],[/\\cyrchar\\cyrnje /g,"њ"],[/\\cyrchar\\cyrtshe /g,"ћ"],[/\\cyrchar\{\\'\\cyrk\}/g,"ќ"],[/\\cyrchar\\cyrushrt /g,"ў"],[/\\cyrchar\\cyrdzhe /g,"џ"],[/\\cyrchar\\CYROMEGA /g,"Ѡ"],[/\\cyrchar\\cyromega /g,"ѡ"],[/\\cyrchar\\CYRYAT /g,"Ѣ"],[/\\cyrchar\\CYRIOTE /g,"Ѥ"],[/\\cyrchar\\cyriote /g,"ѥ"],[/\\cyrchar\\CYRLYUS /g,"Ѧ"],[/\\cyrchar\\cyrlyus /g,"ѧ"],[/\\cyrchar\\CYRIOTLYUS /g,"Ѩ"],[/\\cyrchar\\cyriotlyus /g,"ѩ"],[/\\cyrchar\\CYRBYUS /g,"Ѫ"],[/\\cyrchar\\CYRIOTBYUS /g,"Ѭ"],[/\\cyrchar\\cyriotbyus /g,"ѭ"],[/\\cyrchar\\CYRKSI /g,"Ѯ"],[/\\cyrchar\\cyrksi /g,"ѯ"],[/\\cyrchar\\CYRPSI /g,"Ѱ"],[/\\cyrchar\\cyrpsi /g,"ѱ"],[/\\cyrchar\\CYRFITA /g,"Ѳ"],[/\\cyrchar\\CYRIZH /g,"Ѵ"],[/\\cyrchar\\CYRUK /g,"Ѹ"],[/\\cyrchar\\cyruk /g,"ѹ"],[/\\cyrchar\\CYROMEGARND /g,"Ѻ"],[/\\cyrchar\\cyromegarnd /g,"ѻ"],[/\\cyrchar\\CYROMEGATITLO /g,"Ѽ"],[/\\cyrchar\\cyromegatitlo /g,"ѽ"],[/\\cyrchar\\CYROT /g,"Ѿ"],[/\\cyrchar\\cyrot /g,"ѿ"],[/\\cyrchar\\CYRKOPPA /g,"Ҁ"],[/\\cyrchar\\cyrkoppa /g,"ҁ"],[/\\cyrchar\\cyrthousands /g,"҂"],[/\\cyrchar\\cyrhundredthousands /g,"҈"],[/\\cyrchar\\cyrmillions /g,"҉"],[/\\cyrchar\\CYRSEMISFTSN /g,"Ҍ"],[/\\cyrchar\\cyrsemisftsn /g,"ҍ"],[/\\cyrchar\\CYRRTICK /g,"Ҏ"],[/\\cyrchar\\cyrrtick /g,"ҏ"],[/\\cyrchar\\CYRGUP /g,"Ґ"],[/\\cyrchar\\cyrgup /g,"ґ"],[/\\cyrchar\\CYRGHCRS /g,"Ғ"],[/\\cyrchar\\cyrghcrs /g,"ғ"],[/\\cyrchar\\CYRGHK /g,"Ҕ"],[/\\cyrchar\\cyrghk /g,"ҕ"],[/\\cyrchar\\CYRZHDSC /g,"Җ"],[/\\cyrchar\\cyrzhdsc /g,"җ"],[/\\cyrchar\\CYRZDSC /g,"Ҙ"],[/\\cyrchar\\cyrzdsc /g,"ҙ"],[/\\cyrchar\\CYRKDSC /g,"Қ"],[/\\cyrchar\\cyrkdsc /g,"қ"],[/\\cyrchar\\CYRKVCRS /g,"Ҝ"],[/\\cyrchar\\cyrkvcrs /g,"ҝ"],[/\\cyrchar\\CYRKHCRS /g,"Ҟ"],[/\\cyrchar\\cyrkhcrs /g,"ҟ"],[/\\cyrchar\\CYRKBEAK /g,"Ҡ"],[/\\cyrchar\\cyrkbeak /g,"ҡ"],[/\\cyrchar\\CYRNDSC /g,"Ң"],[/\\cyrchar\\cyrndsc /g,"ң"],[/\\cyrchar\\CYRNG /g,"Ҥ"],[/\\cyrchar\\cyrng /g,"ҥ"],[/\\cyrchar\\CYRPHK /g,"Ҧ"],[/\\cyrchar\\cyrphk /g,"ҧ"],[/\\cyrchar\\CYRABHHA /g,"Ҩ"],[/\\cyrchar\\cyrabhha /g,"ҩ"],[/\\cyrchar\\CYRSDSC /g,"Ҫ"],[/\\cyrchar\\cyrsdsc /g,"ҫ"],[/\\cyrchar\\CYRTDSC /g,"Ҭ"],[/\\cyrchar\\cyrtdsc /g,"ҭ"],[/\\cyrchar\\CYRY /g,"Ү"],[/\\cyrchar\\cyry /g,"ү"],[/\\cyrchar\\CYRYHCRS /g,"Ұ"],[/\\cyrchar\\cyryhcrs /g,"ұ"],[/\\cyrchar\\CYRHDSC /g,"Ҳ"],[/\\cyrchar\\cyrhdsc /g,"ҳ"],[/\\cyrchar\\CYRTETSE /g,"Ҵ"],[/\\cyrchar\\cyrtetse /g,"ҵ"],[/\\cyrchar\\CYRCHRDSC /g,"Ҷ"],[/\\cyrchar\\cyrchrdsc /g,"ҷ"],[/\\cyrchar\\CYRCHVCRS /g,"Ҹ"],[/\\cyrchar\\cyrchvcrs /g,"ҹ"],[/\\cyrchar\\CYRSHHA /g,"Һ"],[/\\cyrchar\\cyrshha /g,"һ"],[/\\cyrchar\\CYRABHCH /g,"Ҽ"],[/\\cyrchar\\cyrabhch /g,"ҽ"],[/\\cyrchar\\CYRABHCHDSC /g,"Ҿ"],[/\\cyrchar\\cyrabhchdsc /g,"ҿ"],[/\\cyrchar\\CYRpalochka /g,"Ӏ"],[/\\cyrchar\\CYRKHK /g,"Ӄ"],[/\\cyrchar\\cyrkhk /g,"ӄ"],[/\\cyrchar\\CYRNHK /g,"Ӈ"],[/\\cyrchar\\cyrnhk /g,"ӈ"],[/\\cyrchar\\CYRCHLDSC /g,"Ӌ"],[/\\cyrchar\\cyrchldsc /g,"ӌ"],[/\\cyrchar\\CYRAE /g,"Ӕ"],[/\\cyrchar\\cyrae /g,"ӕ"],[/\\cyrchar\\CYRSCHWA /g,"Ә"],[/\\cyrchar\\cyrschwa /g,"ә"],[/\\cyrchar\\CYRABHDZE /g,"Ӡ"],[/\\cyrchar\\cyrabhdze /g,"ӡ"],[/\\cyrchar\\CYROTLD /g,"Ө"],[/\\cyrchar\\cyrotld /g,"ө"],[/\\hspace\{0.6em\}/g," "],[/\\hspace\{1em\}/g," "],[/\\hspace\{0.33em\}/g," "],[/\\hspace\{0.25em\}/g," "],[/\\hspace\{0.166em\}/g," "],[/\\hphantom\{0\}/g," "],[/\\hphantom\{,\}/g," "],[/\\hspace\{0.167em\}/g," "],[/\\mkern1mu /g," "],[/\\textendash /g,"–"],[/\\textemdash /g,"—"],[/\\rule\{1em\}\{1pt\}/g,"―"],[/\\Vert /g,"‖"],[/\\Elzreapos /g,"‛"],[/\\textquotedblleft /g,"“"],[/\\textquotedblright /g,"”"],[/\\textdagger /g,"†"],[/\\textdaggerdbl /g,"‡"],[/\\textbullet /g,"•"],[/\\ldots /g,"…"],[/\\textperthousand /g,"‰"],[/\\textpertenthousand /g,"‱"],[/\\backprime /g,"‵"],[/\\guilsinglleft /g,"‹"],[/\\guilsinglright /g,"›"],[/\\mkern4mu /g," "],[/\\nolinebreak /g,""],[/\\ensuremath\{\\Elzpes\}/g,"₧"],[/\\mbox\{\\texteuro\} /g,"€"],[/\\dddot /g,"⃛"],[/\\ddddot /g,"⃜"],[/\\mathbb\{C\}/g,"ℂ"],[/\\mathscr\{g\}/g,"ℊ"],[/\\mathscr\{H\}/g,"ℋ"],[/\\mathfrak\{H\}/g,"ℌ"],[/\\mathbb\{H\}/g,"ℍ"],[/\\hslash /g,"ℏ"],[/\\mathscr\{I\}/g,"ℐ"],[/\\mathfrak\{I\}/g,"ℑ"],[/\\mathscr\{L\}/g,"ℒ"],[/\\mathscr\{l\}/g,"ℓ"],[/\\mathbb\{N\}/g,"ℕ"],[/\\cyrchar\\textnumero /g,"№"],[/\\wp /g,"℘"],[/\\mathbb\{P\}/g,"ℙ"],[/\\mathbb\{Q\}/g,"ℚ"],[/\\mathscr\{R\}/g,"ℛ"],[/\\mathfrak\{R\}/g,"ℜ"],[/\\mathbb\{R\}/g,"ℝ"],[/\\Elzxrat /g,"℞"],[/\\texttrademark /g,"™"],[/\\mathbb\{Z\}/g,"ℤ"],[/\\Omega /g,"Ω"],[/\\mho /g,"℧"],[/\\mathfrak\{Z\}/g,"ℨ"],[/\\ElsevierGlyph\{2129\}/g,"℩"],[/\\AA /g,"Å"],[/\\mathscr\{B\}/g,"ℬ"],[/\\mathfrak\{C\}/g,"ℭ"],[/\\mathscr\{e\}/g,"ℯ"],[/\\mathscr\{E\}/g,"ℰ"],[/\\mathscr\{F\}/g,"ℱ"],[/\\mathscr\{M\}/g,"ℳ"],[/\\mathscr\{o\}/g,"ℴ"],[/\\aleph /g,"ℵ"],[/\\beth /g,"ℶ"],[/\\gimel /g,"ℷ"],[/\\daleth /g,"ℸ"],[/\\textfrac\{1\}\{3\}/g,"⅓"],[/\\textfrac\{2\}\{3\}/g,"⅔"],[/\\textfrac\{1\}\{5\}/g,"⅕"],[/\\textfrac\{2\}\{5\}/g,"⅖"],[/\\textfrac\{3\}\{5\}/g,"⅗"],[/\\textfrac\{4\}\{5\}/g,"⅘"],[/\\textfrac\{1\}\{6\}/g,"⅙"],[/\\textfrac\{5\}\{6\}/g,"⅚"],[/\\textfrac\{1\}\{8\}/g,"⅛"],[/\\textfrac\{3\}\{8\}/g,"⅜"],[/\\textfrac\{5\}\{8\}/g,"⅝"],[/\\textfrac\{7\}\{8\}/g,"⅞"],[/\\leftarrow /g,"←"],[/\\uparrow /g,"↑"],[/\\rightarrow /g,"→"],[/\\downarrow /g,"↓"],[/\\leftrightarrow /g,"↔"],[/\\updownarrow /g,"↕"],[/\\nwarrow /g,"↖"],[/\\nearrow /g,"↗"],[/\\searrow /g,"↘"],[/\\swarrow /g,"↙"],[/\\nleftarrow /g,"↚"],[/\\nrightarrow /g,"↛"],[/\\arrowwaveright /g,"↜"],[/\\arrowwaveright /g,"↝"],[/\\twoheadleftarrow /g,"↞"],[/\\twoheadrightarrow /g,"↠"],[/\\leftarrowtail /g,"↢"],[/\\rightarrowtail /g,"↣"],[/\\mapsto /g,"↦"],[/\\hookleftarrow /g,"↩"],[/\\hookrightarrow /g,"↪"],[/\\looparrowleft /g,"↫"],[/\\looparrowright /g,"↬"],[/\\leftrightsquigarrow /g,"↭"],[/\\nleftrightarrow /g,"↮"],[/\\Lsh /g,"↰"],[/\\Rsh /g,"↱"],[/\\ElsevierGlyph\{21B3\}/g,"↳"],[/\\curvearrowleft /g,"↶"],[/\\curvearrowright /g,"↷"],[/\\circlearrowleft /g,"↺"],[/\\circlearrowright /g,"↻"],[/\\leftharpoonup /g,"↼"],[/\\leftharpoondown /g,"↽"],[/\\upharpoonright /g,"↾"],[/\\upharpoonleft /g,"↿"],[/\\rightharpoonup /g,"⇀"],[/\\rightharpoondown /g,"⇁"],[/\\downharpoonright /g,"⇂"],[/\\downharpoonleft /g,"⇃"],[/\\rightleftarrows /g,"⇄"],[/\\dblarrowupdown /g,"⇅"],[/\\leftrightarrows /g,"⇆"],[/\\leftleftarrows /g,"⇇"],[/\\upuparrows /g,"⇈"],[/\\rightrightarrows /g,"⇉"],[/\\downdownarrows /g,"⇊"],[/\\leftrightharpoons /g,"⇋"],[/\\rightleftharpoons /g,"⇌"],[/\\nLeftarrow /g,"⇍"],[/\\nLeftrightarrow /g,"⇎"],[/\\nRightarrow /g,"⇏"],[/\\Leftarrow /g,"⇐"],[/\\Uparrow /g,"⇑"],[/\\Rightarrow /g,"⇒"],[/\\Downarrow /g,"⇓"],[/\\Leftrightarrow /g,"⇔"],[/\\Updownarrow /g,"⇕"],[/\\Lleftarrow /g,"⇚"],[/\\Rrightarrow /g,"⇛"],[/\\rightsquigarrow /g,"⇝"],[/\\DownArrowUpArrow /g,"⇵"],[/\\forall /g,"∀"],[/\\complement /g,"∁"],[/\\partial /g,"∂"],[/\\exists /g,"∃"],[/\\nexists /g,"∄"],[/\\varnothing /g,"∅"],[/\\nabla /g,"∇"],[/\\in /g,"∈"],[/\\not\\in /g,"∉"],[/\\ni /g,"∋"],[/\\not\\ni /g,"∌"],[/\\prod /g,"∏"],[/\\coprod /g,"∐"],[/\\sum /g,"∑"],[/\\mp /g,"∓"],[/\\dotplus /g,"∔"],[/\\setminus /g,"∖"],[/\\circ /g,"∘"],[/\\bullet /g,"∙"],[/\\surd /g,"√"],[/\\propto /g,"∝"],[/\\infty /g,"∞"],[/\\rightangle /g,"∟"],[/\\angle /g,"∠"],[/\\measuredangle /g,"∡"],[/\\sphericalangle /g,"∢"],[/\\mid /g,"∣"],[/\\nmid /g,"∤"],[/\\parallel /g,"∥"],[/\\nparallel /g,"∦"],[/\\wedge /g,"∧"],[/\\vee /g,"∨"],[/\\cap /g,"∩"],[/\\cup /g,"∪"],[/\\int /g,"∫"],[/\\int\\!\\int /g,"∬"],[/\\int\\!\\int\\!\\int /g,"∭"],[/\\oint /g,"∮"],[/\\surfintegral /g,"∯"],[/\\volintegral /g,"∰"],[/\\clwintegral /g,"∱"],[/\\ElsevierGlyph\{2232\}/g,"∲"],[/\\ElsevierGlyph\{2233\}/g,"∳"],[/\\therefore /g,"∴"],[/\\because /g,"∵"],[/\\Colon /g,"∷"],[/\\ElsevierGlyph\{2238\}/g,"∸"],[/\\mathbin\{\{:\}\\!\\!\{\-\}\\!\\!\{:\}\}/g,"∺"],[/\\homothetic /g,"∻"],[/\\sim /g,"∼"],[/\\backsim /g,"∽"],[/\\lazysinv /g,"∾"],[/\\wr /g,"≀"],[/\\not\\sim /g,"≁"],[/\\ElsevierGlyph\{2242\}/g,"≂"],[/\\NotEqualTilde /g,"≂-00338"],[/\\simeq /g,"≃"],[/\\not\\simeq /g,"≄"],[/\\cong /g,"≅"],[/\\approxnotequal /g,"≆"],[/\\not\\cong /g,"≇"],[/\\approx /g,"≈"],[/\\not\\approx /g,"≉"],[/\\approxeq /g,"≊"],[/\\tildetrpl /g,"≋"],[/\\not\\apid /g,"≋-00338"],[/\\allequal /g,"≌"],[/\\asymp /g,"≍"],[/\\Bumpeq /g,"≎"],[/\\NotHumpDownHump /g,"≎-00338"],[/\\bumpeq /g,"≏"],[/\\NotHumpEqual /g,"≏-00338"],[/\\doteq /g,"≐"],[/\\not\\doteq/g,"≐-00338"],[/\\doteqdot /g,"≑"],[/\\fallingdotseq /g,"≒"],[/\\risingdotseq /g,"≓"],[/\\eqcirc /g,"≖"],[/\\circeq /g,"≗"],[/\\estimates /g,"≙"],[/\\ElsevierGlyph\{225A\}/g,"≚"],[/\\starequal /g,"≛"],[/\\triangleq /g,"≜"],[/\\ElsevierGlyph\{225F\}/g,"≟"],[/\\not =/g,"≠"],[/\\equiv /g,"≡"],[/\\not\\equiv /g,"≢"],[/\\leq /g,"≤"],[/\\geq /g,"≥"],[/\\leqq /g,"≦"],[/\\geqq /g,"≧"],[/\\lneqq /g,"≨"],[/\\lvertneqq /g,"≨-0FE00"],[/\\gneqq /g,"≩"],[/\\gvertneqq /g,"≩-0FE00"],[/\\ll /g,"≪"],[/\\NotLessLess /g,"≪-00338"],[/\\gg /g,"≫"],[/\\NotGreaterGreater /g,"≫-00338"],[/\\between /g,"≬"],[/\\not\\kern\-0.3em\\times /g,"≭"],[/\\not/g,"≯"],[/\\not\\leq /g,"≰"],[/\\not\\geq /g,"≱"],[/\\lessequivlnt /g,"≲"],[/\\greaterequivlnt /g,"≳"],[/\\ElsevierGlyph\{2274\}/g,"≴"],[/\\ElsevierGlyph\{2275\}/g,"≵"],[/\\lessgtr /g,"≶"],[/\\gtrless /g,"≷"],[/\\notlessgreater /g,"≸"],[/\\notgreaterless /g,"≹"],[/\\prec /g,"≺"],[/\\succ /g,"≻"],[/\\preccurlyeq /g,"≼"],[/\\succcurlyeq /g,"≽"],[/\\precapprox /g,"≾"],[/\\NotPrecedesTilde /g,"≾-00338"],[/\\succapprox /g,"≿"],[/\\NotSucceedsTilde /g,"≿-00338"],[/\\not\\prec /g,"⊀"],[/\\not\\succ /g,"⊁"],[/\\subset /g,"⊂"],[/\\supset /g,"⊃"],[/\\not\\subset /g,"⊄"],[/\\not\\supset /g,"⊅"],[/\\subseteq /g,"⊆"],[/\\supseteq /g,"⊇"],[/\\not\\subseteq /g,"⊈"],[/\\not\\supseteq /g,"⊉"],[/\\subsetneq /g,"⊊"],[/\\varsubsetneqq /g,"⊊-0FE00"],[/\\supsetneq /g,"⊋"],[/\\varsupsetneq /g,"⊋-0FE00"],[/\\uplus /g,"⊎"],[/\\sqsubset /g,"⊏"],[/\\NotSquareSubset /g,"⊏-00338"],[/\\sqsupset /g,"⊐"],[/\\NotSquareSuperset /g,"⊐-00338"],[/\\sqsubseteq /g,"⊑"],[/\\sqsupseteq /g,"⊒"],[/\\sqcap /g,"⊓"],[/\\sqcup /g,"⊔"],[/\\oplus /g,"⊕"],[/\\ominus /g,"⊖"],[/\\otimes /g,"⊗"],[/\\oslash /g,"⊘"],[/\\odot /g,"⊙"],[/\\circledcirc /g,"⊚"],[/\\circledast /g,"⊛"],[/\\circleddash /g,"⊝"],[/\\boxplus /g,"⊞"],[/\\boxminus /g,"⊟"],[/\\boxtimes /g,"⊠"],[/\\boxdot /g,"⊡"],[/\\vdash /g,"⊢"],[/\\dashv /g,"⊣"],[/\\top /g,"⊤"],[/\\perp /g,"⊥"],[/\\truestate /g,"⊧"],[/\\forcesextra /g,"⊨"],[/\\Vdash /g,"⊩"],[/\\Vvdash /g,"⊪"],[/\\VDash /g,"⊫"],[/\\nvdash /g,"⊬"],[/\\nvDash /g,"⊭"],[/\\nVdash /g,"⊮"],[/\\nVDash /g,"⊯"],[/\\vartriangleleft /g,"⊲"],[/\\vartriangleright /g,"⊳"],[/\\trianglelefteq /g,"⊴"],[/\\trianglerighteq /g,"⊵"],[/\\original /g,"⊶"],[/\\image /g,"⊷"],[/\\multimap /g,"⊸"],[/\\hermitconjmatrix /g,"⊹"],[/\\intercal /g,"⊺"],[/\\veebar /g,"⊻"],[/\\rightanglearc /g,"⊾"],[/\\ElsevierGlyph\{22C0\}/g,"⋀"],[/\\ElsevierGlyph\{22C1\}/g,"⋁"],[/\\bigcap /g,"⋂"],[/\\bigcup /g,"⋃"],[/\\diamond /g,"⋄"],[/\\cdot /g,"⋅"],[/\\star /g,"⋆"],[/\\divideontimes /g,"⋇"],[/\\bowtie /g,"⋈"],[/\\ltimes /g,"⋉"],[/\\rtimes /g,"⋊"],[/\\leftthreetimes /g,"⋋"],[/\\rightthreetimes /g,"⋌"],[/\\backsimeq /g,"⋍"],[/\\curlyvee /g,"⋎"],[/\\curlywedge /g,"⋏"],[/\\Subset /g,"⋐"],[/\\Supset /g,"⋑"],[/\\Cap /g,"⋒"],[/\\Cup /g,"⋓"],[/\\pitchfork /g,"⋔"],[/\\lessdot /g,"⋖"],[/\\gtrdot /g,"⋗"],[/\\verymuchless /g,"⋘"],[/\\verymuchgreater /g,"⋙"],[/\\lesseqgtr /g,"⋚"],[/\\gtreqless /g,"⋛"],[/\\curlyeqprec /g,"⋞"],[/\\curlyeqsucc /g,"⋟"],[/\\not\\sqsubseteq /g,"⋢"],[/\\not\\sqsupseteq /g,"⋣"],[/\\Elzsqspne /g,"⋥"],[/\\lnsim /g,"⋦"],[/\\gnsim /g,"⋧"],[/\\precedesnotsimilar /g,"⋨"],[/\\succnsim /g,"⋩"],[/\\ntriangleleft /g,"⋪"],[/\\ntriangleright /g,"⋫"],[/\\ntrianglelefteq /g,"⋬"],[/\\ntrianglerighteq /g,"⋭"],[/\\vdots /g,"⋮"],[/\\cdots /g,"⋯"],[/\\upslopeellipsis /g,"⋰"],[/\\downslopeellipsis /g,"⋱"],[/\\barwedge /g,"⌅"],[/\\perspcorrespond /g,"⌆"],[/\\lceil /g,"⌈"],[/\\rceil /g,"⌉"],[/\\lfloor /g,"⌊"],[/\\rfloor /g,"⌋"],[/\\recorder /g,"⌕"],[/\\mathchar"2208/g,"⌖"],[/\\ulcorner /g,"⌜"],[/\\urcorner /g,"⌝"],[/\\llcorner /g,"⌞"],[/\\lrcorner /g,"⌟"],[/\\frown /g,"⌢"],[/\\smile /g,"⌣"],[/\\langle /g,"〈"],[/\\rangle /g,"〉"],[/\\ElsevierGlyph\{E838\}/g,"⌽"],[/\\Elzdlcorn /g,"⎣"],[/\\lmoustache /g,"⎰"],[/\\rmoustache /g,"⎱"],[/\\textvisiblespace /g,"␣"],[/\\ding\{172\}/g,"①"],[/\\ding\{173\}/g,"②"],[/\\ding\{174\}/g,"③"],[/\\ding\{175\}/g,"④"],[/\\ding\{176\}/g,"⑤"],[/\\ding\{177\}/g,"⑥"],[/\\ding\{178\}/g,"⑦"],[/\\ding\{179\}/g,"⑧"],[/\\ding\{180\}/g,"⑨"],[/\\ding\{181\}/g,"⑩"],[/\\circledS /g,"Ⓢ"],[/\\Elzdshfnc /g,"┆"],[/\\Elzsqfnw /g,"┙"],[/\\diagup /g,"╱"],[/\\ding\{110\}/g,"■"],[/\\square /g,"□"],[/\\blacksquare /g,"▪"],[/\\fbox\{~~\}/g,"▭"],[/\\Elzvrecto /g,"▯"],[/\\ElsevierGlyph\{E381\}/g,"▱"],[/\\ding\{115\}/g,"▲"],[/\\bigtriangleup /g,"△"],[/\\blacktriangle /g,"▴"],[/\\vartriangle /g,"▵"],[/\\blacktriangleright /g,"▸"],[/\\triangleright /g,"▹"],[/\\ding\{116\}/g,"▼"],[/\\bigtriangledown /g,"▽"],[/\\blacktriangledown /g,"▾"],[/\\triangledown /g,"▿"],[/\\blacktriangleleft /g,"◂"],[/\\triangleleft /g,"◃"],[/\\ding\{117\}/g,"◆"],[/\\lozenge /g,"◊"],[/\\bigcirc /g,"○"],[/\\ding\{108\}/g,"●"],[/\\Elzcirfl /g,"◐"],[/\\Elzcirfr /g,"◑"],[/\\Elzcirfb /g,"◒"],[/\\ding\{119\}/g,"◗"],[/\\Elzrvbull /g,"◘"],[/\\Elzsqfl /g,"◧"],[/\\Elzsqfr /g,"◨"],[/\\Elzsqfse /g,"◪"],[/\\bigcirc /g,"◯"],[/\\ding\{72\}/g,"★"],[/\\ding\{73\}/g,"☆"],[/\\ding\{37\}/g,"☎"],[/\\ding\{42\}/g,"☛"],[/\\ding\{43\}/g,"☞"],[/\\rightmoon /g,"☾"],[/\\mercury /g,"☿"],[/\\venus /g,"♀"],[/\\male /g,"♂"],[/\\jupiter /g,"♃"],[/\\saturn /g,"♄"],[/\\uranus /g,"♅"],[/\\neptune /g,"♆"],[/\\pluto /g,"♇"],[/\\aries /g,"♈"],[/\\taurus /g,"♉"],[/\\gemini /g,"♊"],[/\\cancer /g,"♋"],[/\\leo /g,"♌"],[/\\virgo /g,"♍"],[/\\libra /g,"♎"],[/\\scorpio /g,"♏"],[/\\sagittarius /g,"♐"],[/\\capricornus /g,"♑"],[/\\aquarius /g,"♒"],[/\\pisces /g,"♓"],[/\\ding\{171\}/g,"♠"],[/\\diamond /g,"♢"],[/\\ding\{168\}/g,"♣"],[/\\ding\{170\}/g,"♥"],[/\\ding\{169\}/g,"♦"],[/\\quarternote /g,"♩"],[/\\eighthnote /g,"♪"],[/\\flat /g,"♭"],[/\\natural /g,"♮"],[/\\sharp /g,"♯"],[/\\ding\{33\}/g,"✁"],[/\\ding\{34\}/g,"✂"],[/\\ding\{35\}/g,"✃"],[/\\ding\{36\}/g,"✄"],[/\\ding\{38\}/g,"✆"],[/\\ding\{39\}/g,"✇"],[/\\ding\{40\}/g,"✈"],[/\\ding\{41\}/g,"✉"],[/\\ding\{44\}/g,"✌"],[/\\ding\{45\}/g,"✍"],[/\\ding\{46\}/g,"✎"],[/\\ding\{47\}/g,"✏"],[/\\ding\{48\}/g,"✐"],[/\\ding\{49\}/g,"✑"],[/\\ding\{50\}/g,"✒"],[/\\ding\{51\}/g,"✓"],[/\\ding\{52\}/g,"✔"],[/\\ding\{53\}/g,"✕"],[/\\ding\{54\}/g,"✖"],[/\\ding\{55\}/g,"✗"],[/\\ding\{56\}/g,"✘"],[/\\ding\{57\}/g,"✙"],[/\\ding\{58\}/g,"✚"],[/\\ding\{59\}/g,"✛"],[/\\ding\{60\}/g,"✜"],[/\\ding\{61\}/g,"✝"],[/\\ding\{62\}/g,"✞"],[/\\ding\{63\}/g,"✟"],[/\\ding\{64\}/g,"✠"],[/\\ding\{65\}/g,"✡"],[/\\ding\{66\}/g,"✢"],[/\\ding\{67\}/g,"✣"],[/\\ding\{68\}/g,"✤"],[/\\ding\{69\}/g,"✥"],[/\\ding\{70\}/g,"✦"],[/\\ding\{71\}/g,"✧"],[/\\ding\{73\}/g,"✩"],[/\\ding\{74\}/g,"✪"],[/\\ding\{75\}/g,"✫"],[/\\ding\{76\}/g,"✬"],[/\\ding\{77\}/g,"✭"],[/\\ding\{78\}/g,"✮"],[/\\ding\{79\}/g,"✯"],[/\\ding\{80\}/g,"✰"],[/\\ding\{81\}/g,"✱"],[/\\ding\{82\}/g,"✲"],[/\\ding\{83\}/g,"✳"],[/\\ding\{84\}/g,"✴"],[/\\ding\{85\}/g,"✵"],[/\\ding\{86\}/g,"✶"],[/\\ding\{87\}/g,"✷"],[/\\ding\{88\}/g,"✸"],[/\\ding\{89\}/g,"✹"],[/\\ding\{90\}/g,"✺"],[/\\ding\{91\}/g,"✻"],[/\\ding\{92\}/g,"✼"],[/\\ding\{93\}/g,"✽"],[/\\ding\{94\}/g,"✾"],[/\\ding\{95\}/g,"✿"],[/\\ding\{96\}/g,"❀"],[/\\ding\{97\}/g,"❁"],[/\\ding\{98\}/g,"❂"],[/\\ding\{99\}/g,"❃"],[/\\ding\{100\}/g,"❄"],[/\\ding\{101\}/g,"❅"],[/\\ding\{102\}/g,"❆"],[/\\ding\{103\}/g,"❇"],[/\\ding\{104\}/g,"❈"],[/\\ding\{105\}/g,"❉"],[/\\ding\{106\}/g,"❊"],[/\\ding\{107\}/g,"❋"],[/\\ding\{109\}/g,"❍"],[/\\ding\{111\}/g,"❏"],[/\\ding\{112\}/g,"❐"],[/\\ding\{113\}/g,"❑"],[/\\ding\{114\}/g,"❒"],[/\\ding\{118\}/g,"❖"],[/\\ding\{120\}/g,"❘"],[/\\ding\{121\}/g,"❙"],[/\\ding\{122\}/g,"❚"],[/\\ding\{123\}/g,"❛"],[/\\ding\{124\}/g,"❜"],[/\\ding\{125\}/g,"❝"],[/\\ding\{126\}/g,"❞"],[/\\ding\{161\}/g,"❡"],[/\\ding\{162\}/g,"❢"],[/\\ding\{163\}/g,"❣"],[/\\ding\{164\}/g,"❤"],[/\\ding\{165\}/g,"❥"],[/\\ding\{166\}/g,"❦"],[/\\ding\{167\}/g,"❧"],[/\\ding\{182\}/g,"❶"],[/\\ding\{183\}/g,"❷"],[/\\ding\{184\}/g,"❸"],[/\\ding\{185\}/g,"❹"],[/\\ding\{186\}/g,"❺"],[/\\ding\{187\}/g,"❻"],[/\\ding\{188\}/g,"❼"],[/\\ding\{189\}/g,"❽"],[/\\ding\{190\}/g,"❾"],[/\\ding\{191\}/g,"❿"],[/\\ding\{192\}/g,"➀"],[/\\ding\{193\}/g,"➁"],[/\\ding\{194\}/g,"➂"],[/\\ding\{195\}/g,"➃"],[/\\ding\{196\}/g,"➄"],[/\\ding\{197\}/g,"➅"],[/\\ding\{198\}/g,"➆"],[/\\ding\{199\}/g,"➇"],[/\\ding\{200\}/g,"➈"],[/\\ding\{201\}/g,"➉"],[/\\ding\{202\}/g,"➊"],[/\\ding\{203\}/g,"➋"],[/\\ding\{204\}/g,"➌"],[/\\ding\{205\}/g,"➍"],[/\\ding\{206\}/g,"➎"],[/\\ding\{207\}/g,"➏"],[/\\ding\{208\}/g,"➐"],[/\\ding\{209\}/g,"➑"],[/\\ding\{210\}/g,"➒"],[/\\ding\{211\}/g,"➓"],[/\\ding\{212\}/g,"➔"],[/\\ding\{216\}/g,"➘"],[/\\ding\{217\}/g,"➙"],[/\\ding\{218\}/g,"➚"],[/\\ding\{219\}/g,"➛"],[/\\ding\{220\}/g,"➜"],[/\\ding\{221\}/g,"➝"],[/\\ding\{222\}/g,"➞"],[/\\ding\{223\}/g,"➟"],[/\\ding\{224\}/g,"➠"],[/\\ding\{225\}/g,"➡"],[/\\ding\{226\}/g,"➢"],[/\\ding\{227\}/g,"➣"],[/\\ding\{228\}/g,"➤"],[/\\ding\{229\}/g,"➥"],[/\\ding\{230\}/g,"➦"],[/\\ding\{231\}/g,"➧"],[/\\ding\{232\}/g,"➨"],[/\\ding\{233\}/g,"➩"],[/\\ding\{234\}/g,"➪"],[/\\ding\{235\}/g,"➫"],[/\\ding\{236\}/g,"➬"],[/\\ding\{237\}/g,"➭"],[/\\ding\{238\}/g,"➮"],[/\\ding\{239\}/g,"➯"],[/\\ding\{241\}/g,"➱"],[/\\ding\{242\}/g,"➲"],[/\\ding\{243\}/g,"➳"],[/\\ding\{244\}/g,"➴"],[/\\ding\{245\}/g,"➵"],[/\\ding\{246\}/g,"➶"],[/\\ding\{247\}/g,"➷"],[/\\ding\{248\}/g,"➸"],[/\\ding\{249\}/g,"➹"],[/\\ding\{250\}/g,"➺"],[/\\ding\{251\}/g,"➻"],[/\\ding\{252\}/g,"➼"],[/\\ding\{253\}/g,"➽"],[/\\ding\{254\}/g,"➾"],[/\\longleftarrow /g,"⟵"],[/\\longrightarrow /g,"⟶"],[/\\longleftrightarrow /g,"⟷"],[/\\Longleftarrow /g,"⟸"],[/\\Longrightarrow /g,"⟹"],[/\\Longleftrightarrow /g,"⟺"],[/\\longmapsto /g,"⟼"],[/\\sim\\joinrel\\leadsto/g,"⟿"],[/\\ElsevierGlyph\{E212\}/g,"⤅"],[/\\UpArrowBar /g,"⤒"],[/\\DownArrowBar /g,"⤓"],[/\\ElsevierGlyph\{E20C\}/g,"⤣"],[/\\ElsevierGlyph\{E20D\}/g,"⤤"],[/\\ElsevierGlyph\{E20B\}/g,"⤥"],[/\\ElsevierGlyph\{E20A\}/g,"⤦"],[/\\ElsevierGlyph\{E211\}/g,"⤧"],[/\\ElsevierGlyph\{E20E\}/g,"⤨"],[/\\ElsevierGlyph\{E20F\}/g,"⤩"],[/\\ElsevierGlyph\{E210\}/g,"⤪"],[/\\ElsevierGlyph\{E21C\}/g,"⤳"],[/\\ElsevierGlyph\{E21D\}/g,"⤳-00338"],[/\\ElsevierGlyph\{E21A\}/g,"⤶"],[/\\ElsevierGlyph\{E219\}/g,"⤷"],[/\\Elolarr /g,"⥀"],[/\\Elorarr /g,"⥁"],[/\\ElzRlarr /g,"⥂"],[/\\ElzrLarr /g,"⥄"],[/\\Elzrarrx /g,"⥇"],[/\\LeftRightVector /g,"⥎"],[/\\RightUpDownVector /g,"⥏"],[/\\DownLeftRightVector /g,"⥐"],[/\\LeftUpDownVector /g,"⥑"],[/\\LeftVectorBar /g,"⥒"],[/\\RightVectorBar /g,"⥓"],[/\\RightUpVectorBar /g,"⥔"],[/\\RightDownVectorBar /g,"⥕"],[/\\DownLeftVectorBar /g,"⥖"],[/\\DownRightVectorBar /g,"⥗"],[/\\LeftUpVectorBar /g,"⥘"],[/\\LeftDownVectorBar /g,"⥙"],[/\\LeftTeeVector /g,"⥚"],[/\\RightTeeVector /g,"⥛"],[/\\RightUpTeeVector /g,"⥜"],[/\\RightDownTeeVector /g,"⥝"],[/\\DownLeftTeeVector /g,"⥞"],[/\\DownRightTeeVector /g,"⥟"],[/\\LeftUpTeeVector /g,"⥠"],[/\\LeftDownTeeVector /g,"⥡"],[/\\UpEquilibrium /g,"⥮"],[/\\ReverseUpEquilibrium /g,"⥯"],[/\\RoundImplies /g,"⥰"],[/\\ElsevierGlyph\{E214\}/g,"⥼"],[/\\ElsevierGlyph\{E215\}/g,"⥽"],[/\\Elztfnc /g,"⦀"],[/\\ElsevierGlyph\{3018\}/g,"⦅"],[/\\Elroang /g,"⦆"],[/\\ElsevierGlyph\{E291\}/g,"⦔"],[/\\Elzddfnc /g,"⦙"],[/\\Angle /g,"⦜"],[/\\Elzlpargt /g,"⦠"],[/\\ElsevierGlyph\{E260\}/g,"⦵"],[/\\ElsevierGlyph\{E61B\}/g,"⦶"],[/\\ElzLap /g,"⧊"],[/\\Elzdefas /g,"⧋"],[/\\LeftTriangleBar /g,"⧏"],[/\\NotLeftTriangleBar /g,"⧏-00338"],[/\\RightTriangleBar /g,"⧐"],[/\\NotRightTriangleBar /g,"⧐-00338"],[/\\ElsevierGlyph\{E372\}/g,"⧜"],[/\\blacklozenge /g,"⧫"],[/\\RuleDelayed /g,"⧴"],[/\\Elxuplus /g,"⨄"],[/\\ElzThr /g,"⨅"],[/\\Elxsqcup /g,"⨆"],[/\\ElzInf /g,"⨇"],[/\\ElzSup /g,"⨈"],[/\\ElzCint /g,"⨍"],[/\\clockoint /g,"⨏"],[/\\ElsevierGlyph\{E395\}/g,"⨐"],[/\\sqrint /g,"⨖"],[/\\ElsevierGlyph\{E25A\}/g,"⨥"],[/\\ElsevierGlyph\{E25B\}/g,"⨪"],[/\\ElsevierGlyph\{E25C\}/g,"⨭"],[/\\ElsevierGlyph\{E25D\}/g,"⨮"],[/\\ElzTimes /g,"⨯"],[/\\ElsevierGlyph\{E25E\}/g,"⨴"],[/\\ElsevierGlyph\{E25E\}/g,"⨵"],[/\\ElsevierGlyph\{E259\}/g,"⨼"],[/\\amalg /g,"⨿"],[/\\ElzAnd /g,"⩓"],[/\\ElzOr /g,"⩔"],[/\\ElsevierGlyph\{E36E\}/g,"⩕"],[/\\ElOr /g,"⩖"],[/\\perspcorrespond /g,"⩞"],[/\\Elzminhat /g,"⩟"],[/\\ElsevierGlyph\{225A\}/g,"⩣"],[/\\stackrel\{*\}\{=\}/g,"⩮"],[/\\Equal /g,"⩵"],[/\\leqslant /g,"⩽"],[/\\nleqslant /g,"⩽-00338"],[/\\geqslant /g,"⩾"],[/\\ngeqslant /g,"⩾-00338"],[/\\lessapprox /g,"⪅"],[/\\gtrapprox /g,"⪆"],[/\\lneq /g,"⪇"],[/\\gneq /g,"⪈"],[/\\lnapprox /g,"⪉"],[/\\gnapprox /g,"⪊"],[/\\lesseqqgtr /g,"⪋"],[/\\gtreqqless /g,"⪌"],[/\\eqslantless /g,"⪕"],[/\\eqslantgtr /g,"⪖"],[/\\Pisymbol\{ppi020\}\{117\}/g,"⪝"],[/\\Pisymbol\{ppi020\}\{105\}/g,"⪞"],[/\\NestedLessLess /g,"⪡"],[/\\NotNestedLessLess /g,"⪡-00338"],[/\\NestedGreaterGreater /g,"⪢"],[/\\NotNestedGreaterGreater /g,"⪢-00338"],[/\\preceq /g,"⪯"],[/\\not\\preceq /g,"⪯-00338"],[/\\succeq /g,"⪰"],[/\\not\\succeq /g,"⪰-00338"],[/\\precneqq /g,"⪵"],[/\\succneqq /g,"⪶"],[/\\precapprox /g,"⪷"],[/\\succapprox /g,"⪸"],[/\\precnapprox /g,"⪹"],[/\\succnapprox /g,"⪺"],[/\\subseteqq /g,"⫅"],[/\\nsubseteqq /g,"⫅-00338"],[/\\supseteqq /g,"⫆"],[/\\nsupseteqq/g,"⫆-00338"],[/\\subsetneqq /g,"⫋"],[/\\supsetneqq /g,"⫌"],[/\\ElsevierGlyph\{E30D\}/g,"⫫"],[/\\Elztdcol /g,"⫶"],[/\\ElsevierGlyph\{300A\}/g,"《"],[/\\ElsevierGlyph\{300B\}/g,"》"],[/\\ElsevierGlyph\{3018\}/g,"〘"],[/\\ElsevierGlyph\{3019\}/g,"〙"],[/\\openbracketleft /g,"〚"],[/\\openbracketright /g,"〛"]],
-this}"undefined"!=typeof e&&e.exports&&(e.exports=i)},function(e,t,i){var n,s;(function(a){n=[i(6),i(20),i(5)],s=function(e,t,i){var n=a.View.extend({tagName:"div",className:"citations",render:function(){return this.$el.append(""+this.formattedReference()+"
"),this},formattedReference:function(){var e=this.model,t=e.entryType(),i=e.fields(),n="",s=this._asSentence((i.author?i.author:"")+(i.year?" ("+i.year+")":""))+" ",a=i.title||"",o=i.pages?"pp. "+i.pages:"",r=i.address;if("article"==t){var l=(i.volume?i.volume:"")+(i.number?" ("+i.number+")":"")+(o?", "+o:"");n=s+this._asSentence(a)+(i.journal?"In "+i.journal+", ":"")+this._asSentence(l)+this._asSentence(i.address)+" "}else n="inproceedings"==t||"proceedings"==t?s+this._asSentence(a)+(i.booktitle?"In "+i.booktitle+", ":"")+(o?o:"")+(r?", "+r:"")+". ":"mastersthesis"==t||"phdthesis"==t?s+this._asSentence(a)+(i.howpublished?i.howpublished+". ":"")+(i.note?i.note+".":""):"techreport"==t?s+this._asSentence(a)+this._asSentence(i.institution)+this._asSentence(i.number)+this._asSentence(i.type):"book"==t||"inbook"==t||"incollection"==t?s+" "+this._formatBookInfo(i):s+" "+this._asSentence(a)+this._asSentence(i.howpublished)+this._asSentence(i.note);var c="";i.doi&&(c="http://dx.doi.org/"+i.doi,n+='[doi:'+i.doi+" ]");var d=i.url||c;return d&&(n+='[Link ]'),n},_formatBookInfo:function(e){var t="";return e.chapter&&(t+=e.chapter+" in "),e.title&&(t+=""+e.title+" "),e.editor&&(t+=", Edited by "+e.editor+", "),e.publisher&&(t+=", "+e.publisher),e.pages&&(t+=", pp. "+e.pages),e.series&&(t+=", "+e.series+" "),e.volume&&(t+=", Vol."+e.volume),e.issn&&(t+=", ISBN: "+e.issn),t+"."},_asSentence:function(e){return e&&e.trim()?e+". ":""}}),s=a.View.extend({el:"#citations",initialize:function(){this.listenTo(this.collection,"add",this.renderCitation)},events:{"click .citations-to-bibtex":"showBibtex","click .citations-to-formatted":"showFormatted"},renderCitation:function(e){var t=new n({model:e});this.$(".citations-formatted").append(t.render().el);var i=this.$(".citations-bibtex-text");i.val(i.val()+"\n\r"+e.attributes.content)},render:function(){this.$el.html(this.citationsElement()),this.collection.each(function(e){this.renderCitation(e)},this),this.showFormatted()},showBibtex:function(){this.$(".citations-to-formatted").show(),this.$(".citations-to-bibtex").hide(),this.$(".citations-bibtex").show(),this.$(".citations-formatted").hide(),this.$(".citations-bibtex-text").select()},showFormatted:function(){this.$(".citations-to-formatted").hide(),this.$(".citations-to-bibtex").show(),this.$(".citations-bibtex").hide(),this.$(".citations-formatted").show()},partialWarningElement:function(){return this.collection.partial?['',"
Warning: This is a experimental feature. Most Galaxy tools will not annotate"," citations explicitly at this time. When writing up your analysis, please manually"," review your histories and find all references"," that should be cited in order to completely describe your work. Also, please remember to",'
cite Galaxy .',"
"].join(""):""},citationsElement:function(){return['"].join("")}});return{CitationView:n,CitationListView:s}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3))},function(e,t,i){var n,s;(function(a,o,r){n=[i(54),i(43),i(6),i(5)],s=function(e,t,i,n){"use strict";var s=e.FoldoutListItemView,l=e.ListItemView,c=s.extend({className:s.prototype.className+" dataset-collection",id:function(){return["dataset_collection",this.model.get("id")].join("-")},initialize:function(e){this.linkTarget=e.linkTarget||"_blank",this.hasUser=e.hasUser,s.prototype.initialize.call(this,e)},_setUpListeners:function(){s.prototype._setUpListeners.call(this),this.listenTo(this.model,"change",function(e,t){a.has(e.changed,"deleted")?this.render():a.has(e.changed,"element_count")&&this.$("> .title-bar .subtitle").replaceWith(this._renderSubtitle())})},_renderSubtitle:function(){return o(this.templates.subtitle(this.model.toJSON(),this))},_getFoldoutPanelOptions:function(){var e=s.prototype._getFoldoutPanelOptions.call(this);return a.extend(e,{linkTarget:this.linkTarget,hasUser:this.hasUser})},$selector:function(){return this.$("> .selector")},toString:function(){var e=this.model?this.model+"":"(no model)";return"DCListItemView("+e+")"}});c.prototype.templates=function(){var e=a.extend({},s.prototype.templates.warnings,{error:i.wrapTemplate(["<% if( model.error ){ %>",'',n("There was an error getting the data for this collection"),": <%- model.error %>","
","<% } %>"]),purged:i.wrapTemplate(["<% if( model.purged ){ %>",'',n("This collection has been deleted and removed from disk"),"
","<% } %>"]),deleted:i.wrapTemplate(["<% if( model.deleted && !model.purged ){ %>",'',n("This collection has been deleted"),"
","<% } %>"])}),t=i.wrapTemplate(['','
','<%- collection.element_identifier || collection.name %> ',"
",'
',"
"],"collection"),o=i.wrapTemplate(['','<% var countText = collection.element_count? ( collection.element_count + " " ) : ""; %>','<% if( collection.collection_type === "list" ){ %>',n("a list of <%- countText %>datasets"),'<% } else if( collection.collection_type === "paired" ){ %>',n("a pair of datasets"),'<% } else if( collection.collection_type === "list:paired" ){ %>',n("a list of <%- countText %>dataset pairs"),'<% } else if( collection.collection_type === "list:list" ){ %>',n("a list of <%- countText %>dataset lists"),"<% } %>","
"],"collection");return a.extend({},s.prototype.templates,{warnings:e,titleBar:t,subtitle:o})}();var d=l.extend({className:l.prototype.className+" dataset-collection-element",initialize:function(e){e.logger&&(this.logger=this.model.logger=e.logger),this.log("DCEListItemView.initialize:",e),l.prototype.initialize.call(this,e)},toString:function(){var e=this.model?this.model+"":"(no model)";return"DCEListItemView("+e+")"}});d.prototype.templates=function(){var e=i.wrapTemplate(['','
','<%- element.element_identifier %> ',"
",'
',"
"],"element");return a.extend({},l.prototype.templates,{titleBar:e})}();var h=t.DatasetListItemView.extend({className:t.DatasetListItemView.prototype.className+" dataset-collection-element",initialize:function(e){e.logger&&(this.logger=this.model.logger=e.logger),this.log("DatasetDCEListItemView.initialize:",e),t.DatasetListItemView.prototype.initialize.call(this,e)},_fetchModelDetails:function(){var e=this;return e.model.inReadyState()&&!e.model.hasDetails()?e.model.fetch({silent:!0}):r.when()},toString:function(){var e=this.model?this.model+"":"(no model)";return"DatasetDCEListItemView("+e+")"}});h.prototype.templates=function(){var e=i.wrapTemplate(['','
','
','<%- element.element_identifier %> ',"
","
"],"element");return a.extend({},t.DatasetListItemView.prototype.templates,{titleBar:e})}();var u=c.extend({className:c.prototype.className+" dataset-collection-element",_swapNewRender:function(e){c.prototype._swapNewRender.call(this,e);var t=this.model.get("state")||"ok";return this.$el.addClass("state-"+t),this.$el},toString:function(){var e=this.model?this.model+"":"(no model)";return"NestedDCDCEListItemView("+e+")"}});return{DCListItemView:c,DCEListItemView:d,DatasetDCEListItemView:h,NestedDCDCEListItemView:u}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(2),i(1),i(1))},function(e,t,i){var n,s;(function(a,o,r){n=[i(81),i(6),i(5)],s=function(e,t,i){"use strict";var n={defaults:{model_class:"DatasetCollectionElement",element_identifier:null,element_index:null,element_type:null},_mergeObject:function(e){return a.extend(e,e.object,{element_id:e.id}),delete e.object,e},constructor:function(e,t){e=this._mergeObject(e),this.idAttribute="element_id",o.Model.apply(this,arguments)},parse:function(e,t){var i=e;return i=this._mergeObject(i)}},s=o.Model.extend(t.LoggableMixin).extend(n).extend({_logNamespace:"collections"}),l=o.Collection.extend(t.LoggableMixin).extend({_logNamespace:"collections",model:s,toString:function(){return["DatasetCollectionElementCollection(",this.length,")"].join("")}}),c=e.DatasetAssociation.extend(t.mixin(n,{url:function(){return this.has("history_id")?Galaxy.root+"api/histories/"+this.get("history_id")+"/contents/"+this.get("id"):(console.warn("no endpoint for non-hdas within a collection yet"),Galaxy.root+"api/datasets")},defaults:a.extend({},e.DatasetAssociation.prototype.defaults,n.defaults),_downloadQueryParameters:function(){return"?to_ext="+this.get("file_ext")+"&hdca_id="+this.get("parent_hdca_id")+"&element_identifier="+this.get("element_identifier")},constructor:function(e,t){this.debug("\t DatasetDCE.constructor:",e,t),n.constructor.call(this,e,t)},hasDetails:function(){return this.elements&&this.elements.length},toString:function(){var e=this.get("element_identifier");return["DatasetDCE(",e,")"].join("")}})),d=l.extend({model:c,toString:function(){return["DatasetDCECollection(",this.length,")"].join("")}}),h=o.Model.extend(t.LoggableMixin).extend(t.SearchableModelMixin).extend({_logNamespace:"collections",defaults:{collection_type:null,deleted:!1},collectionClass:l,initialize:function(e,t){this.debug(this+"(DatasetCollection).initialize:",e,t,this),this.elements=this._createElementsModel(),this.on("change:elements",function(){this.log("change:elements"),this.elements=this._createElementsModel()})},_createElementsModel:function(){this.debug(this+"._createElementsModel",this.collectionClass,this.get("elements"),this.elements);var e=this.get("elements")||[];this.unset("elements",{silent:!0});var t=this;return a.each(e,function(e,i){a.extend(e,{parent_hdca_id:t.get("id")})}),this.elements=new this.collectionClass(e),this.elements},toJSON:function(){var e=o.Model.prototype.toJSON.call(this);return this.elements&&(e.elements=this.elements.toJSON()),e},inReadyState:function(){var e=this.get("populated");return this.isDeletedOrPurged()||e},hasDetails:function(){return 0!==this.elements.length},getVisibleContents:function(e){return this.elements},parse:function(e,t){var i=o.Model.prototype.parse.call(this,e,t);return i.create_time&&(i.create_time=new Date(i.create_time)),i.update_time&&(i.update_time=new Date(i.update_time)),i},delete:function(e){return this.get("deleted")?r.when():this.save({deleted:!0},e)},undelete:function(e){return!this.get("deleted")||this.get("purged")?r.when():this.save({deleted:!1},e)},isDeletedOrPurged:function(){return this.get("deleted")||this.get("purged")},searchAttributes:["name","tags"],toString:function(){var e=[this.get("id"),this.get("name")||this.get("element_identifier")];return"DatasetCollection("+e.join(",")+")"}}),u=h.extend({collectionClass:d,toString:function(){return"List"+h.prototype.toString.call(this)}}),p=u.extend({toString:function(){return"Pair"+h.prototype.toString.call(this)}}),f=h.extend(t.mixin(n,{constructor:function(e,t){this.debug("\t NestedDCDCE.constructor:",e,t),n.constructor.call(this,e,t)},toString:function(){var e=this.object?""+this.object:this.get("element_identifier");return["NestedDCDCE(",e,")"].join("")}})),g=l.extend({model:f,toString:function(){return["NestedDCDCECollection(",this.length,")"].join("")}}),m=p.extend(t.mixin(n,{constructor:function(e,t){this.debug("\t NestedPairDCDCE.constructor:",e,t),n.constructor.call(this,e,t)},toString:function(){var e=this.object?""+this.object:this.get("element_identifier");return["NestedPairDCDCE(",e,")"].join("")}})),v=g.extend({model:m,toString:function(){return["NestedPairDCDCECollection(",this.length,")"].join("")}}),_=h.extend({collectionClass:v,toString:function(){return["ListPairedDatasetCollection(",this.get("name"),")"].join("")}}),y=u.extend(t.mixin(n,{constructor:function(e,t){this.debug("\t NestedListDCDCE.constructor:",e,t),n.constructor.call(this,e,t)},toString:function(){var e=this.object?""+this.object:this.get("element_identifier");return["NestedListDCDCE(",e,")"].join("")}})),w=g.extend({model:y,toString:function(){return["NestedListDCDCECollection(",this.length,")"].join("")}}),b=h.extend({collectionClass:w,toString:function(){return["ListOfListsDatasetCollection(",this.get("name"),")"].join("")}});return{ListDatasetCollection:u,PairDatasetCollection:p,ListPairedDatasetCollection:_,ListOfListsDatasetCollection:b}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(2),i(3),i(1))},function(e,t,i){var n,s;(function(a,o,r,l){n=[i(50),i(11),i(6),i(78),i(8),i(96),i(5),i(93)],s=function(e,t,i,n,s,c,d){"use strict";function h(e,t){var i=e.toJSON(),n=m(i,{defaultHideSourceItems:t,creationFn:function(t,i,n){return t=t.map(function(e){return{id:e.id,name:e.name,src:"dataset"===e.history_content_type?"hda":"hdca"}}),e.createHDCA(t,"list",i,n)}});return n}var u="collections",p=a.View.extend(i.LoggableMixin).extend({_logNamespace:u,tagName:"li",className:"collection-element",initialize:function(e){this.element=e.element||{},this.selected=e.selected||!1},render:function(){return this.$el.attr("data-element-id",this.element.id).attr("draggable",!0).html(this.template({element:this.element})),this.selected&&this.$el.addClass("selected"),this},template:o.template(['',"<%- element.name %>"," ",'',d("Discard")," "].join("")),select:function(e){this.$el.toggleClass("selected",e),this.trigger("select",{source:this,selected:this.$el.hasClass("selected")})},discard:function(){var e=this,t=this.$el.parent().width();this.$el.animate({"margin-right":t},"fast",function(){e.trigger("discard",{source:e}),e.destroy()})},destroy:function(){this.off(),this.$el.remove()},events:{click:"_click","click .name":"_clickName","click .discard":"_clickDiscard",dragstart:"_dragstart",dragend:"_dragend",dragover:"_sendToParent",drop:"_sendToParent"},_click:function(e){e.stopPropagation(),this.select(e)},_clickName:function(e){e.stopPropagation(),e.preventDefault();var t=([d("Enter a new name for the element"),":\n(",d("Note that changing the name here will not rename the dataset"),")"].join(""),prompt(d("Enter a new name for the element")+":",this.element.name));t&&(this.element.name=t,this.render())},_clickDiscard:function(e){e.stopPropagation(),this.discard()},_dragstart:function(e){e.originalEvent&&(e=e.originalEvent),e.dataTransfer.effectAllowed="move",e.dataTransfer.setData("text/plain",JSON.stringify(this.element)),this.$el.addClass("dragging"),this.$el.parent().trigger("collection-element.dragstart",[this])},_dragend:function(e){this.$el.removeClass("dragging"),this.$el.parent().trigger("collection-element.dragend",[this])},_sendToParent:function(e){this.$el.parent().trigger(e)},toString:function(){return"DatasetCollectionElementView()"}}),f=a.View.extend(i.LoggableMixin).extend(n.CollectionCreatorMixin).extend({_logNamespace:u,elementViewClass:p,collectionClass:e.HistoryListDatasetCollection,className:"list-collection-creator collection-creator flex-row-container",minElements:1,defaultAttributes:{creationFn:function(){throw new TypeError("no creation fn for creator")},oncreate:function(){},oncancel:function(){},autoscrollDist:24,highlightClr:"rgba( 64, 255, 255, 1.0 )"},footerSettings:{".hide-originals":"hideOriginals"},initialize:function(e){this.metric("ListCollectionCreator.initialize",e);var t=this;o.each(this.defaultAttributes,function(i,n){i=e[n]||i,t[n]=i}),t.initialElements=e.elements||[],this._setUpCommonSettings(e),this._instanceSetUp(),this._elementsSetUp(),this._setUpBehaviors()},_instanceSetUp:function(){this.selectedIds={},this.$dragging=null,this.blocking=!1},_elementsSetUp:function(){this.invalidElements=[],this.workingElements=[],this.elementViews=[],this.workingElements=this.initialElements.slice(0),this._ensureElementIds(),this._validateElements(),this._mangleDuplicateNames(),this._sortElements()},_ensureElementIds:function(){return this.workingElements.forEach(function(e){e.hasOwnProperty("id")||(e.id=o.uniqueId())}),this.workingElements},_validateElements:function(){var e=this;return e.invalidElements=[],this.workingElements=this.workingElements.filter(function(t){var i=e._isElementInvalid(t);return i&&e.invalidElements.push({element:t,text:i}),!i}),this.workingElements},_isElementInvalid:function(e){if("dataset"!==e.history_content_type)return d("is not a dataset");var i=e.state===t.OK||o.contains(t.NOT_READY_STATES,e.state);return i?e.deleted||e.purged?d("has been deleted or purged"):null:d("has errored, is paused, or is not accessible")},_mangleDuplicateNames:function(){var e=900,t=1,i={};this.workingElements.forEach(function(n){for(var s=n.name;i.hasOwnProperty(s);)if(s=n.name+" ("+t+")",t+=1,t>=e)throw new Error("Safety hit in while loop - thats impressive");n.name=s,i[n.name]=!0})},_sortElements:function(e){},render:function(e,t){return this.workingElements.length .clear-selected").show():this.$(".collection-elements-controls > .clear-selected").hide()},_renderList:function(e,t){var i=this,n=l("
"),s=i.$list();o.each(this.elementViews,function(e){e.destroy(),i.removeElementView(e)}),i.workingElements.forEach(function(e){var t=i._createElementView(e);n.append(t.$el)}),i._renderClearSelected(),s.empty().append(n.children()),o.invoke(i.elementViews,"render"),s.height()>s.css("max-height")?s.css("border-width","1px 0px 1px 0px"):s.css("border-width","0px")},_createElementView:function(e){var t=new this.elementViewClass({element:e,selected:o.has(this.selectedIds,e.id)});return this.elementViews.push(t),this._listenToElementView(t),t},_listenToElementView:function(e){var t=this;t.listenTo(e,{select:function(e){var i=e.source.element;e.selected?t.selectedIds[i.id]=!0:delete t.selectedIds[i.id],t.trigger("elements:select",e)},discard:function(e){t.trigger("elements:discard",e)}})},addElementView:function(e){},removeElementView:function(e){delete this.selectedIds[e.element.id],this._renderClearSelected(),this.elementViews=o.without(this.elementViews,e),this.stopListening(e)},_renderNoElementsLeft:function(){this._disableNameAndCreate(!0),this.$(".collection-elements").append(this.templates.noElementsLeft())},_elementToJSON:function(e){return e},createList:function(e){if(!this.workingElements.length){var t=d("No valid elements for final list")+". ";return t+=''+d("Cancel")+" ",t+=d("or"),t+=' '+d("start over")+" .",void this._showAlert(t)}var i=this,n=this.workingElements.map(function(e){return i._elementToJSON(e)});return i.blocking=!0,i.creationFn(n,e,i.hideOriginals).always(function(){i.blocking=!1}).fail(function(e,t,n){i.trigger("error",{xhr:e,status:t,message:d("An error occurred while creating this collection")})}).done(function(e,t,n){i.trigger("collection:created",e,t,n),i.metric("collection:created",e),"function"==typeof i.oncreate&&i.oncreate.call(this,e,t,n)})},_setUpBehaviors:function(){return this.on("error",this._errorHandler),this.once("rendered",function(){this.trigger("rendered:initial",this)}),this.on("elements:select",function(e){this._renderClearSelected()}),this.on("elements:discard",function(e){var t=e.source.element;this.removeElementView(e.source),this.workingElements=o.without(this.workingElements,t),this.workingElements.length||this._renderNoElementsLeft()}),this},_errorHandler:function(e){this.error(e);var t=this;if(content=e.message||d("An error occurred"),e.xhr){var i=e.xhr,n=e.message;0===i.readyState&&0===i.status?content+=": "+d("Galaxy could not be reached and may be updating.")+d(" Try again in a few minutes."):i.responseJSON?content+=":"+JSON.stringify(i.responseJSON)+" ":content+=": "+n}t._showAlert(content,"alert-danger")},events:{"click .more-help":"_clickMoreHelp","click .less-help":"_clickLessHelp","click .main-help":"_toggleHelp","click .header .alert button":"_hideAlert","click .reset":"reset","click .clear-selected":"clearSelectedElements","click .collection-elements":"clearSelectedElements","dragover .collection-elements":"_dragoverElements","drop .collection-elements":"_dropElements","collection-element.dragstart .collection-elements":"_elementDragstart","collection-element.dragend .collection-elements":"_elementDragend","change .collection-name":"_changeName","keydown .collection-name":"_nameCheckForEnter","change .hide-originals":"_changeHideOriginals","click .cancel-create":"_cancelCreate","click .create-collection":"_clickCreate"},reset:function(){this._instanceSetUp(),this._elementsSetUp(),this.render()},clearSelectedElements:function(e){this.$(".collection-elements .collection-element").removeClass("selected"),this.$(".collection-elements-controls > .clear-selected").hide()},_dragoverElements:function(e){e.preventDefault();var t=this.$list();this._checkForAutoscroll(t,e.originalEvent.clientY);var i=this._getNearestElement(e.originalEvent.clientY);this.$(".element-drop-placeholder").remove();var n=r('
');i.length?i.before(n):t.append(n)},_checkForAutoscroll:function(e,t){var i=2,n=e.offset(),s=e.scrollTop(),a=t-n.top,o=n.top+e.outerHeight()-t;a>=0&&a=0&&oe&&a-o','',d("More help")," ",'"," ",'
','× ',' ',"
"].join("")),middle:o.template(['
",'
',"
"].join("")),footer:o.template(['
','
','',d("Hide original elements"),"?",' '," ","
",'
","
",'
','
','
',d("Cancel")," ",'
','',d("Create a different kind of collection"),' '," ",'","
","
",'
','',d("Create list")," ","
","
"].join("")),helpContent:o.template(["
",d(["Collections of datasets are permanent, ordered lists of datasets that can be passed to tools and ","workflows in order to have analyses done on each member of the entire group. This interface allows ","you to create a collection and re-order the final collection."].join("")),"
","
","",d(["Rename elements in the list by clicking on ",'the existing name .'].join(""))," ","",d(["Discard elements from the final created list by clicking on the ",'"Discard" button.'].join(""))," ","",d(["Reorder the list by clicking and dragging elements. Select multiple elements by clicking on ",'them and you can then move those selected by dragging the ',"entire group. Deselect them by clicking them again or by clicking the ",'the "Clear selected" link.'].join(""))," ","",d(['Click the "Start over" link to begin again as if you had just opened ',"the interface."].join(""))," ","",d(['Click the "Cancel" button to exit the interface.'].join(""))," "," ","
",d(['Once your collection is complete, enter a name and ','click "Create list" .'].join("")),"
"].join("")),invalidElements:o.template([d("The following selections could not be included due to problems:"),"
<% _.each( problems, function( problem ){ %>","<%- problem.element.name %> : <%- problem.text %> ","<% }); %> "].join("")),noElementsLeft:o.template(['
',d("No elements left! "),d("Would you like to "),'',d("start over")," ?"," "].join("")),invalidInitial:o.template(['",'"].join(""))}),toString:function(){return"ListCollectionCreator"}}),g=function(e,t,i){var n,a=l.Deferred(),r=Galaxy.modal||new s.View;return t=o.defaults(t||{},{elements:e,oncancel:function(){r.hide(),a.reject("cancelled")},oncreate:function(e,t){r.hide(),a.resolve(t)}}),n=new i(t),r.show({title:t.title||d("Create a collection"),body:n.$el,width:"80%",height:"100%",closing_events:!0}),n.render(),window._collectionCreator=n,a},m=function(e,t){return t=t||{},t.title=d("Create a collection from a list of datasets"),g(e,t,f)};return{DatasetCollectionElementView:p,ListCollectionCreator:f,collectionCreatorModal:g,listCollectionCreatorModal:m,createListCollection:h}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(2),i(1),i(1))},function(e,t,i){var n,s;(function(a,o,r,l){n=[i(54),i(11),i(18),i(6),i(5)],s=function(e,t,i,n,s){"use strict";var c="dataset",d=e.ListItemView,h=d.extend({_logNamespace:c,className:d.prototype.className+" dataset",id:function(){return["dataset",this.model.get("id")].join("-")},initialize:function(e){e.logger&&(this.logger=this.model.logger=e.logger),this.log(this+".initialize:",e),d.prototype.initialize.call(this,e),this.linkTarget=e.linkTarget||"_blank"},_setUpListeners:function(){d.prototype._setUpListeners.call(this);var e=this;return e.listenTo(e.model,{change:function(t){e.model.changedAttributes().state&&e.model.inReadyState()&&e.expanded&&!e.model.hasDetails()?e.model.fetch({silent:!0}).done(function(){e.render()}):a.has(t.changed,"tags")&&1===a.keys(t.changed).length?e.$(".nametags").html(e._renderNametags()):e.render()}})},_fetchModelDetails:function(){var e=this;return e.model.inReadyState()&&!e.model.hasDetails()?e.model.fetch({silent:!0}):o.when()},remove:function(e,t){var i=this;e=e||this.fxSpeed,this.$el.fadeOut(e,function(){r.View.prototype.remove.call(i),t&&t.call(i)})},_swapNewRender:function(e){return d.prototype._swapNewRender.call(this,e),this.model.has("state")&&this.$el.addClass("state-"+this.model.get("state")),
+webpackJsonp([3,1],[function(e,t,i){(function(e,t){var n=i(1),s=n,a=i(35).GalaxyApp,o=i(67),r=i(100),l=i(99),c=i(36),d=i(30),h=i(138),u=i(137),p=i(89),f=i(14),g=i(128),m=i(142),v=i(123),_=i(140),y=i(88),w=i(4),b=i(7);window.app=function(i,n){window.Galaxy=new a(i,n),Galaxy.debug("analysis app"),Galaxy.params=Galaxy.config.params;var x=e.View.extend({initialize:function(e){this.message=e.message||"Undefined Message",this.msg_status=e.type||"info",this.render()},render:function(){this.$el.html(t.escape(this.message)).addClass(this.msg_status+"message")}}),C=e.Router.extend({initialize:function(e,t){this.page=e,this.options=t},push:function(e,t){t=t||{},t.__identifer=Math.random().toString(36).substr(2),s.isEmptyObject(t)||(e+=e.indexOf("?")==-1?"?":"&",e+=s.param(t,!0)),this.navigate(e,{trigger:!0})},execute:function(e,t,i){Galaxy.debug("router execute:",e,t,i);var n=o.parse(t.pop());t.push(n),e&&(this.authenticate(t,i)?e.apply(this,t):this.loginRequired())},routes:{"(/)":"home","(/)root*":"home","(/)tours(/)(:tour_id)":"show_tours","(/)user(/)":"show_user","(/)user(/)(:form_id)":"show_user_form","(/)workflow(/)":"show_workflows","(/)workflow/run(/)":"show_run","(/)pages(/)(:action_id)":"show_pages","(/)visualizations/list_published(/)":"show_visualizations","(/)workflows/list_published(/)":"show_workflows_published","(/)histories(/)(:action_id)":"show_histories","(/)datasets(/)list(/)":"show_datasets","(/)workflow/configure_menu(/)":"show_configure_menu","(/)workflow/import_workflow":"show_import_workflow","(/)custom_builds":"show_custom_builds"},require_login:["show_user","show_user_form","show_workflows","show_configure_menu"],loginRequired:function(){this.page.display(new x({type:"error",message:"You must be logged in to make this request."}))},authenticate:function(e,t){return Galaxy.user&&Galaxy.user.id||this.require_login.indexOf(t)==-1},show_tours:function(e){e?p.giveTour(e):this.page.display(new p.ToursView)},show_user:function(){this.page.display(new h.View)},show_user_form:function(e){this.page.display(new h.Forms({form_id:e,user_id:Galaxy.params.id}))},show_visualizations:function(){this.page.display(new f({url_base:Galaxy.root+"visualization/list_published",dict_format:!0}))},show_workflows_published:function(){this.page.display(new f({url_base:Galaxy.root+"workflow/list_published",dict_format:!0}))},show_histories:function(e){this.page.display(new v.View({action_id:e}))},show_datasets:function(){this.page.display(new f({url_base:Galaxy.root+"dataset/list",dict_format:!0}))},show_pages:function(e){"list"==e?this.page.display(new g.View):this.page.display(new f({url_base:Galaxy.root+"page/list_published",dict_format:!0}))},show_workflows:function(){this.page.display(new m.View)},show_run:function(){this._loadWorkflow()},show_import_workflow:function(){this.page.display(new m.ImportWorkflowView)},show_configure_menu:function(){this.page.display(new _.View)},show_custom_builds:function(){var e=this,t=this.page.historyPanel.historyView;return t&&t.model&&t.model.id?void this.page.display(new u.View):void window.setTimeout(function(){e.show_custom_builds()},500)},home:function(e){e.tool_id||e.job_id?"upload1"===e.tool_id?(this.page.toolPanel.upload.show(),this._loadCenterIframe("welcome")):this._loadToolForm(e):e.workflow_id?this._loadWorkflow():e.m_c?this._loadCenterIframe(e.m_c+"/"+e.m_a):this._loadCenterIframe("welcome")},_loadToolForm:function(e){e.id=e.tool_id,this.page.display(new d.View(e))},_loadCenterIframe:function(e,t){t=t||Galaxy.root,e=t+e,this.page.$("#galaxy_main").prop("src",e)},_loadWorkflow:function(){var e=this;w.get({url:Galaxy.root+"api/workflows/"+w.getQueryString("id")+"/download",data:{style:"run"},success:function(t){e.page.display(new y.View(t))},error:function(t){var i="Error occurred while loading the resource.",n={message:i,status:"error",persistent:!0,cls:"errormessage"};e.page.display(new b.Message(n))}})}});s(function(){Galaxy.page=new c.View(t.extend(i,{Left:r,Right:l,Router:C})),e.history.start({root:Galaxy.root,pushState:!0})})}}).call(t,i(3),i(2))},,,,,,,function(e,t,i){var n,s;(function(a,o,r){n=[i(4),i(25),i(62),i(24),i(58),i(12),i(8)],s=function(e,t,i,n,s,l,c){var d=a.View.extend({tagName:"label",initialize:function(e){this.model=e&&e.model||new a.Model(e),this.tagName=e.tagName||this.tagName,this.setElement(o("<"+this.tagName+"/>")),this.listenTo(this.model,"change",this.render,this),this.render()},title:function(e){this.model.set("title",e)},value:function(){return this.model.get("title")},render:function(){return this.$el.removeClass().addClass("ui-label").addClass(this.model.get("cls")).html(this.model.get("title")),this}}),h=a.View.extend({initialize:function(e){this.model=e&&e.model||new a.Model({message:null,status:"info",cls:"",persistent:!1,fade:!0}).set(e),this.listenTo(this.model,"change",this.render,this),this.render()},update:function(e){this.model.set(e)},render:function(){this.$el.removeClass().addClass("ui-message").addClass(this.model.get("cls"));var e=this.model.get("status");if(this.model.get("large")?this.$el.addClass(("success"==e&&"done"||"danger"==e&&"error"||e)+"messagelarge"):this.$el.addClass("alert").addClass("alert-"+e),this.model.get("message")){if(this.$el.html(this.messageForDisplay()),this.$el[this.model.get("fade")?"fadeIn":"show"](),this.timeout&&window.clearTimeout(this.timeout),!this.model.get("persistent")){var t=this;this.timeout=window.setTimeout(function(){t.model.set("message","")},3e3)}}else this.$el.fadeOut();return this},messageForDisplay:function(){return r.escape(this.model.get("message"))}}),u=h.extend({messageForDisplay:function(){return this.model.get("message")}}),p=a.View.extend({initialize:function(e){this.model=e&&e.model||new a.Model({type:"text",placeholder:"",disabled:!1,readonly:!1,visible:!0,cls:"",area:!1,color:null,style:null}).set(e),this.tagName=this.model.get("area")?"textarea":"input",this.setElement(o("<"+this.tagName+"/>")),this.listenTo(this.model,"change",this.render,this),this.render()},events:{input:"_onchange"},value:function(e){return void 0!==e&&this.model.set("value","string"==typeof e?e:""),this.model.get("value")},render:function(){var e=this;this.$el.removeClass().addClass("ui-"+this.tagName).addClass(this.model.get("cls")).addClass(this.model.get("style")).attr("id",this.model.id).attr("type",this.model.get("type")).attr("placeholder",this.model.get("placeholder")).css("color",this.model.get("color")||"").css("border-color",this.model.get("color")||"");var t=this.model.get("datalist");return o.isArray(t)&&t.length>0&&this.$el.autocomplete({source:function(t,i){i(e.model.get("datalist"))},change:function(){e._onchange()}}),this.model.get("value")!==this.$el.val()&&this.$el.val(this.model.get("value")),r.each(["readonly","disabled"],function(t){e.model.get(t)?e.$el.attr(t,!0):e.$el.removeAttr(t)}),this.$el[this.model.get("visible")?"show":"hide"](),this},_onchange:function(){this.value(this.$el.val()),this.model.get("onchange")&&this.model.get("onchange")(this.model.get("value"))}}),f=a.View.extend({initialize:function(e){this.model=e&&e.model||new a.Model(e),this.setElement(o("
").append(this.$info=o("
")).append(this.$hidden=o("
"))),this.listenTo(this.model,"change",this.render,this),this.render()},value:function(e){return void 0!==e&&this.model.set("value",e),this.model.get("value")},render:function(){return this.$el.attr("id",this.model.id),this.$hidden.val(this.model.get("value")),this.model.get("info")?this.$info.show().text(this.model.get("info")):this.$info.hide(),this}}),g=a.View.extend({initialize:function(e){var t=this;this.model=e&&e.model||new a.Model(e),this.setElement(o("
").append(this.$info=o("
")).append(this.$file=o("
").attr("type","file").addClass("ui-margin-bottom")).append(this.$text=o("
").addClass("ui-textarea").attr("disabled",!0)).append(this.$wait=o("
").addClass("fa fa-spinner fa-spin"))),this.listenTo(this.model,"change",this.render,this),this.$file.on("change",function(e){t._readFile(e)}),this.render()},value:function(e){return void 0!==e&&this.model.set("value",e),this.model.get("value")},render:function(){return this.$el.attr("id",this.model.id),this.model.get("info")?this.$info.show().text(this.model.get("info")):this.$info.hide(),this.model.get("value")?this.$text.text(this.model.get("value")).show():this.$text.hide(),this.model.get("wait")?this.$wait.show():this.$wait.hide(),this},_readFile:function(e){var t=this,i=e.target.files&&e.target.files[0];if(i){var n=new FileReader;n.onload=function(){t.model.set({wait:!1,value:this.result})},this.model.set({wait:!0,value:null}),n.readAsText(i)}}});return{Button:l.ButtonDefault,ButtonIcon:l.ButtonIcon,ButtonCheck:l.ButtonCheck,ButtonMenu:l.ButtonMenu,ButtonLink:l.ButtonLink,Input:p,Label:d,Message:h,UnescapedMessage:u,Upload:g,Modal:c,RadioButton:n.RadioButton,Checkbox:n.Checkbox,Radio:n.Radio,Select:t,Hidden:f,Slider:i,Drilldown:s}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1),i(2))},,function(e,t,i){var n,s;(function(a,o,r){n=[i(4),i(7)],s=function(e,t){var i=a.View.extend({visible:!1,initialize:function(i){var n=this;this.model=i&&i.model||new a.Model({id:e.uid(),cls:"ui-portlet",title:"",icon:"",buttons:null,body:null,scrollable:!0,nopadding:!1,operations:null,collapsible:!1,collapsible_button:!1,collapsed:!1,onchange_title:null}).set(i),this.setElement(this._template()),this.$body=this.$(".portlet-body"),this.$title_text=this.$(".portlet-title-text"),this.$title_icon=this.$(".portlet-title-icon"),this.$header=this.$(".portlet-header"),this.$content=this.$(".portlet-content"),this.$backdrop=this.$(".portlet-backdrop"),this.$buttons=this.$(".portlet-buttons"),this.$operations=this.$(".portlet-operations"),this.model.get("body")&&this.append(this.model.get("body")),this.collapsible_button=new t.ButtonIcon({icon:"fa-eye",tooltip:"Collapse/Expand",cls:"ui-button-icon-plain",onclick:function(){n[n.collapsed?"expand":"collapse"]()}}),this.render()},render:function(){var e=this,t=this.model.attributes;return this.$el.removeClass().addClass(t.cls).attr("id",t.id),this.$header[t.title?"show":"hide"](),this.$title_text.html(t.title),o.each([this.$content,this.$body],function(e){e[t.nopadding?"addClass":"removeClass"]("no-padding")}),t.icon?this.$title_icon.removeClass().addClass("portlet-title-icon fa").addClass(t.icon).show():this.$title_icon.hide(),this.$title_text[t.collapsible?"addClass":"removeClass"]("no-highlight collapsible").off(),t.collapsible&&(this.$title_text.on("click",function(){e[e.collapsed?"expand":"collapse"]()}),t.collapsed?this.collapse():this.expand()),this.$title_text.prop("disabled",!t.onchange_title),t.onchange_title&&this.$title_text.make_text_editable({on_finish:function(e){t.onchange_title(e)}}),t.buttons?(this.$buttons.empty().show(),r.each(this.model.get("buttons"),function(t,i){i.$el.prop("id",t),e.$buttons.append(i.$el)})):this.$buttons.hide(),this.$operations.empty,t.collapsible_button&&this.$operations.append(this.collapsible_button.$el),t.operations&&r.each(t.operations,function(t,i){i.$el.prop("id",t),e.$operations.append(i.$el)}),this},append:function(e){this.$body.append(e)},empty:function(){this.$body.empty()},header:function(){return this.$header},body:function(){return this.$body},show:function(){this.visible=!0,this.$el.fadeIn("fast")},hide:function(){this.visible=!1,this.$el.hide()},enableButton:function(e){this.$buttons.find("#"+e).prop("disabled",!1)},disableButton:function(e){this.$buttons.find("#"+e).prop("disabled",!0)},hideOperation:function(e){this.$operations.find("#"+e).hide()},showOperation:function(e){this.$operations.find("#"+e).show()},setOperation:function(e,t){this.$operations.find("#"+e).off("click").on("click",t)},title:function(e){return e&&this.$title_text.html(e),this.$title_text.html()},collapse:function(){this.collapsed=!0,this.$content.height("0%"),this.$body.hide(),this.collapsible_button.setIcon("fa-eye-slash")},expand:function(){this.collapsed=!1,this.$content.height("100%"),this.$body.fadeIn("fast"),this.collapsible_button.setIcon("fa-eye")},disable:function(){this.$backdrop.show()},enable:function(){this.$backdrop.hide()},_template:function(){return r("
").append(r("
").addClass("portlet-header").append(r("
").addClass("portlet-operations")).append(r("
").addClass("portlet-title").append(r("
").addClass("portlet-title-icon")).append(r("
").addClass("portlet-title-text")))).append(r("
").addClass("portlet-content").append(r("
").addClass("portlet-body")).append(r("
").addClass("portlet-buttons"))).append(r("
").addClass("portlet-backdrop"))}});return{View:i}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(2),i(1))},function(e,t,i){var n,s;(function(a,o,r){n=[i(8),i(31),i(15)],s=function(e,t,i){var n=a.Model.extend({}),s=a.Model.extend({defaults:{id:"",type:"",name:"",hda_ldda:"hda",metadata:null},initialize:function(){this.get("metadata")||this._set_metadata(),this.on("change",this._set_metadata,this)},_set_metadata:function(){var e=new n;o.each(o.keys(this.attributes),function(t){if(0===t.indexOf("metadata_")){var i=t.split("metadata_")[1];e.set(i,this.attributes[t]),delete this.attributes[t]}},this),this.set("metadata",e,{silent:!0})},get_metadata:function(e){return this.attributes.metadata.get(e)},urlRoot:Galaxy.root+"api/datasets"}),l=s.extend({defaults:o.extend({},s.prototype.defaults,{chunk_url:null,first_data_chunk:null,offset:0,at_eof:!1}),initialize:function(e){s.prototype.initialize.call(this),this.attributes.first_data_chunk&&(this.attributes.offset=this.attributes.first_data_chunk.offset),this.attributes.chunk_url=Galaxy.root+"dataset/display?dataset_id="+this.id,this.attributes.url_viz=Galaxy.root+"visualization"},get_next_chunk:function(){if(this.attributes.at_eof)return null;var e=this,t=r.Deferred();return r.getJSON(this.attributes.chunk_url,{offset:e.attributes.offset}).success(function(i){var n;""!==i.ck_data?(n=i,e.attributes.offset=i.offset):(e.attributes.at_eof=!0,n=null),t.resolve(n)}),t}}),c=a.Collection.extend({model:s}),d=a.View.extend({initialize:function(e){this.row_count=0,this.loading_chunk=!1,new p({model:e.model,$el:this.$el})},expand_to_container:function(){this.$el.height()
").attr("id","loading_indicator"),this.$el.append(this.loading_indicator);var e=r("").attr({id:"content_table",cellpadding:0});this.$el.append(e);var t=this.model.get_metadata("column_names"),i=r(" ").appendTo(e),n=r(" ").appendTo(i);if(t)n.append(""+t.join(" ")+" ");else for(var s=1;s<=this.model.get_metadata("columns");s++)n.append(""+s+" ");var a=this,o=this.model.get("first_data_chunk");o?this._renderChunk(o):r.when(a.model.get_next_chunk()).then(function(e){a._renderChunk(e)}),this.scroll_elt.scroll(function(){a.attempt_to_fetch()})},scrolled_to_bottom:function(){return!1},_renderCell:function(e,t,i){var n=r("").text(e),s=this.model.get_metadata("column_types");return void 0!==i?n.attr("colspan",i).addClass("stringalign"):s&&t"),n=this.model.get_metadata("columns");return this.row_count%2!==0&&i.addClass("dark_row"),t.length===n?o.each(t,function(e,t){i.append(this._renderCell(e,t))},this):t.length>n?(o.each(t.slice(0,n-1),function(e,t){i.append(this._renderCell(e,t))},this),i.append(this._renderCell(t.slice(n-1).join("\t"),n-1))):1===t.length?i.append(this._renderCell(e,0,n)):(o.each(t,function(e,t){i.append(this._renderCell(e,t))},this),o.each(o.range(n-t.length),function(){i.append(r(""))})),this.row_count++,i},_renderChunk:function(e){var t=this.$el.find("table");o.each(e.ck_data.split("\n"),function(e,i){""!==e&&t.append(this._renderRow(e))},this)}}),h=d.extend({initialize:function(e){d.prototype.initialize.call(this,e),scroll_elt=o.find(this.$el.parents(),function(e){return"auto"===r(e).css("overflow")}),scroll_elt||(scroll_elt=window),this.scroll_elt=r(scroll_elt)},scrolled_to_bottom:function(){return this.$el.height()-this.scroll_elt.scrollTop()-this.scroll_elt.height()<=0}}),u=d.extend({initialize:function(e){d.prototype.initialize.call(this,e),this.scroll_elt=this.$el.css({position:"relative",overflow:"scroll",height:e.height||"500px"})},scrolled_to_bottom:function(){return this.$el.scrollTop()+this.$el.innerHeight()>=this.el.scrollHeight}}),p=a.View.extend({col:{chrom:null,start:null,end:null},url_viz:null,dataset_id:null,genome_build:null,file_ext:null,initialize:function(e){function t(e,t){for(var i=0;i ").attr("type","button").append(this.$icon=o(" ")).append(this.$title=o(" ")).append(this.$progress=o("
").append(this.$progress_bar=o("
")))),this.listenTo(this.model,"change",this.render,this),this.render()},render:function(){var e=this,t=this.model.attributes;this.$el.removeClass().addClass("ui-button-default").addClass(t.disabled&&"disabled").attr("id",t.id).attr("disabled",t.disabled).css("float",t.floating).off("click").on("click",function(){o(".tooltip").hide(),t.onclick&&!e.disabled&&t.onclick()}).tooltip({title:t.tooltip,placement:"bottom"}),this.$progress.addClass("progress").css("display",t.percentage!==-1?"block":"none"),this.$progress_bar.addClass("progress-bar").css({width:t.percentage+"%"}),this.$icon.removeClass().addClass("icon fa"),this.$title.removeClass().addClass("title"),t.wait?(this.$el.addClass(t.wait_cls).prop("disabled",!0),this.$icon.addClass("fa-spinner fa-spin ui-margin-right"),this.$title.html(t.wait_text)):(this.$el.addClass(t.cls),this.$icon.addClass(t.icon),this.$title.html(t.title),t.icon&&t.title&&this.$icon.addClass("ui-margin-right"))},show:function(){this.$el.show()},hide:function(){this.$el.hide()},disable:function(){this.model.set("disabled",!0)},enable:function(){this.model.set("disabled",!1)},wait:function(){this.model.set("wait",!0)},unwait:function(){this.model.set("wait",!1)},setIcon:function(e){this.model.set("icon",e)}}),i=t.extend({initialize:function(t){this.model=t&&t.model||new a.Model({id:e.uid(),title:"",icon:"",cls:""}).set(t),this.setElement(o(" ").append(this.$icon=o(" "))),this.listenTo(this.model,"change",this.render,this),this.render()},render:function(){var e=this.model.attributes;this.$el.removeClass().addClass(e.cls).attr({id:e.id,href:e.href||"javascript:void(0)",title:e.title,target:e.target||"_top",disabled:e.disabled}).tooltip({placement:"bottom"}).off("click").on("click",function(){e.onclick&&!e.disabled&&e.onclick()}),this.$icon.removeClass().addClass(e.icon)}}),n=a.View.extend({initialize:function(t){this.model=t&&t.model||new a.Model({id:e.uid(),title:"Select/Unselect all",icons:["fa-square-o","fa-minus-square-o","fa-check-square-o"],value:0,onchange:function(){}}).set(t),this.setElement(o("
").append(this.$icon=o(" ")).append(this.$title=o(" "))),this.listenTo(this.model,"change",this.render,this),this.render()},render:function(e){var t=this,e=this.model.attributes;this.$el.addClass("ui-button-check").off("click").on("click",function(){t.model.set("value",0===t.model.get("value")&&2||0),e.onclick&&e.onclick()}),this.$title.html(e.title),this.$icon.removeClass().addClass("icon fa ui-margin-right").addClass(e.icons[e.value])},value:function(e,t){return void 0!==e&&(t&&0!==e&&(e=e!==t&&1||2),this.model.set("value",e),this.model.get("onchange")(this.model.get("value"))),this.model.get("value")}}),s=t.extend({initialize:function(t){this.model=t&&t.model||new a.Model({id:e.uid(),title:"",floating:"right",icon:"",cls:"ui-button-icon",disabled:!1}).set(t),this.setElement(o("
").append(this.$button=o("
").append(this.$icon=o(" ")).append(this.$title=o(" ")))),this.listenTo(this.model,"change",this.render,this),this.render()},render:function(e){var e=this.model.attributes;this.$el.removeClass().addClass(e.cls).addClass(e.disabled&&"disabled").attr("disabled",e.disabled).attr("id",e.id).css("float",e.floating).off("click").on("click",function(){o(".tooltip").hide(),!e.disabled&&e.onclick&&e.onclick()}),this.$button.addClass("button").tooltip({title:e.tooltip,placement:"bottom"}),this.$icon.removeClass().addClass("icon fa").addClass(e.icon),this.$title.addClass("title").html(e.title),e.icon&&e.title&&this.$icon.addClass("ui-margin-right")}}),r=t.extend({$menu:null,initialize:function(e){this.model=e&&e.model||new a.Model({id:"",title:"",floating:"right",pull:"right",icon:null,onclick:null,cls:"ui-button-icon ui-button-menu",tooltip:"",target:"",href:"",onunload:null,visible:!0,tag:""}).set(e),this.collection=new a.Collection,this.setElement(o("
").append(this.$root=o("
").append(this.$icon=o(" ")).append(this.$title=o(" ")))),this.listenTo(this.model,"change",this.render,this),this.listenTo(this.collection,"change add remove reset",this.render,this),this.render()},render:function(){var e=this,t=this.model.attributes;this.$el.removeClass().addClass("dropdown").addClass(t.cls).attr("id",t.id).css({float:t.floating,display:t.visible&&this.collection.where({visible:!0}).length>0?"block":"none"}),this.$root.addClass("root button dropdown-toggle").attr("data-toggle","dropdown").tooltip({title:t.tooltip,placement:"bottom"}).off("click").on("click",function(e){o(".tooltip").hide(),e.preventDefault(),t.onclick&&t.onclick()}),this.$icon.removeClass().addClass("icon fa").addClass(t.icon),this.$title.removeClass().addClass("title").html(t.title),t.icon&&t.title&&this.$icon.addClass("ui-margin-right"),this.$menu&&this.$menu.remove(),this.collection.length>0&&(this.$menu=o("").addClass("menu dropdown-menu").addClass("pull-"+e.model.get("pull")).attr("role","menu"),this.$el.append(this.$menu)),this.collection.each(function(t){var i=t.attributes;if(i.visible){var n=o(" ").addClass("dropdown-item").attr({href:i.href,target:i.target}).append(o(" ").addClass("fa").addClass(i.icon).css("display",i.icon?"inline-block":"none")).append(i.title).on("click",function(e){i.onclick&&(e.preventDefault(),i.onclick())});e.$menu.append(o(" ").append(n)),i.divider&&e.$menu.append(o(" ").addClass("divider"))}})},addMenu:function(t){this.collection.add(e.merge(t,{title:"",target:"",href:"",onclick:null,divider:!1,visible:!0,icon:null,cls:"button-menu btn-group"}))}});return{ButtonDefault:t,ButtonLink:i,ButtonIcon:s,ButtonCheck:n,ButtonMenu:r}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1))},function(e,t,i){var n,s;(function(a,o,r){n=[i(4),i(9),i(7),i(47),i(28)],s=function(e,t,i,n,s){return a.View.extend({initialize:function(e){this.model=new a.Model({initial_errors:!1,cls:"ui-portlet-limited",icon:null,always_refresh:!0,message_status:"warning"}).set(e),this.setElement("
"),this.render()},update:function(e){var t=this;this.data.matchModel(e,function(e,i){var n=t.input_list[i];if(n&&n.options&&!o.isEqual(n.options,e.options)){n.options=e.options;var s=t.field_list[i];if(s.update){var a=[];if(["data","data_collection","drill_down"].indexOf(n.type)!=-1)a=n.options;else for(var r in e.options){var l=e.options[r];l.length>2&&a.push({label:l[0],value:l[1]})}s.update(a),s.trigger("change"),Galaxy.emit.debug("form-view::update()","Updating options for "+i)}}})},wait:function(e){for(var t in this.input_list){var i=this.field_list[t],n=this.input_list[t];n.is_dynamic&&i.wait&&i.unwait&&i[e?"wait":"unwait"]()}},highlight:function(e,t,i){var n=this.element_list[e];if(n&&(n.error(t||"Please verify this parameter."),this.portlet.expand(),this.trigger("expand",e),!i)){var s=this.$el.parents().filter(function(){return["auto","scroll"].indexOf(r(this).css("overflow"))!=-1}).first();s.animate({scrollTop:s.scrollTop()+n.$el.offset().top-120},500)}},errors:function(e){if(this.trigger("reset"),e&&e.errors){var t=this.data.matchResponse(e.errors);for(var i in this.element_list){this.element_list[i];t[i]&&this.highlight(i,t[i],!0)}}},render:function(){var e=this;this.off("change"),this.off("reset"),this.field_list={},this.input_list={},this.element_list={},this.data=new s.Manager(this),this._renderForm(),this.data.create(),this.model.get("initial_errors")&&this.errors(this.model.attributes);var t=this.data.checksum();return this.on("change",function(i){var n=e.input_list[i];if(!n||n.refresh_on_change||e.model.get("always_refresh")){var s=e.data.checksum();s!=t&&(t=s,e.model.get("onchange")&&e.model.get("onchange")())}}),this.on("reset",function(){o.each(e.element_list,function(e){e.reset()})}),this},_renderForm:function(){r(".tooltip").remove();var e=this.model.attributes;this.message=new i.UnescapedMessage,this.section=new n.View(this,{inputs:e.inputs}),this.portlet=new t.View({icon:e.icon,title:e.title,cls:e.cls,operations:e.operations,buttons:e.buttons,collapsible:e.collapsible,collapsed:e.collapsed,onchange_title:e.onchange_title}),this.portlet.append(this.message.$el),this.portlet.append(this.section.$el),this.$el.empty(),e.inputs&&this.$el.append(this.portlet.$el),e.message&&this.message.update({persistent:!0,status:e.message_status,message:e.message}),Galaxy.emit.debug("form-view::initialize()","Completed")}})}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(2),i(1))},function(e,t,i){var n,s;(function(a,o,r,l){a.ajaxSettings.traditional=!0,n=[i(4),i(48),i(49),i(22)],s=function(e,t,i,n){return o.View.extend({grid:null,initialize:function(t){this.dict_format=t.dict_format;var i=this;window.add_tag_to_grid_filter=function(e,t){var n=e+(void 0!==t&&""!==t?":"+t:""),s=r("#advanced-search").is(":visible");s||(r("#standard-search").slideToggle("fast"),r("#advanced-search").slideToggle("fast")),i.add_filter_condition("tags",n)},this.dict_format?(this.setElement("
"),t.url_base&&!t.items?e.get({url:t.url_base,success:function(e){e.embedded=t.embedded,i.init_grid(e)}}):this.init_grid(t)):(this.setElement("#grid-container"),this.init_grid(t)),t.use_panels&&r("#center").css({padding:"10px",overflow:"auto"})},handle_refresh:function(e){e&&r.inArray("history",e)>-1&&top.Galaxy&&top.Galaxy.currHistoryPanel&&top.Galaxy.currHistoryPanel.loadCurrentHistory()},init_grid:function(e){this.grid=new t(e);var n=this.grid.attributes;this.handle_refresh(n.refresh_frames);var s=this.grid.get("url_base");if(s=s.replace(/^.*\/\/[^\/]+/,""),this.grid.set("url_base",s),this.$el.html(i.grid(n)),this.$el.find("#grid-table-header").html(i.header(n)),this.$el.find("#grid-table-body").html(i.body(n)),this.$el.find("#grid-table-footer").html(i.footer(n)),n.message){this.$el.find("#grid-message").html(i.message(n));var a=this;n.use_hide_message&&setTimeout(function(){a.$el.find("#grid-message").html("")},5e3)}this.init_grid_elements(),this.init_grid_controls(),init_refresh_on_change()},init_grid_controls:function(){var e=this;this.$el.find(".operation-button").each(function(){r(this).off(),r(this).click(function(){return e.submit_operation(this),!1})}),this.$el.find("input[type=text]").each(function(){r(this).off(),r(this).click(function(){r(this).select()}).keyup(function(){r(this).css("font-style","normal")})}),this.$el.find(".sort-link").each(function(){r(this).off(),r(this).click(function(){return e.set_sort_condition(r(this).attr("sort_key")),!1})}),this.$el.find(".text-filter-form").each(function(){r(this).off(),r(this).submit(function(){var t=r(this).attr("column_key"),i=r("#input-"+t+"-filter"),n=i.val();return i.val(""),e.add_filter_condition(t,n),!1})}),this.$el.find(".text-filter-val > a").each(function(){r(this).off(),r(this).click(function(){return r(this).parent().remove(),e.remove_filter_condition(r(this).attr("filter_key"),r(this).attr("filter_val")),!1})}),this.$el.find(".categorical-filter > a").each(function(){r(this).off(),r(this).click(function(){return e.set_categorical_filter(r(this).attr("filter_key"),r(this).attr("filter_val")),!1})}),this.$el.find(".advanced-search-toggle").each(function(){r(this).off(),r(this).click(function(){return e.$el.find("#standard-search").slideToggle("fast"),e.$el.find("#advanced-search").slideToggle("fast"),!1})}),this.$el.find("#check_all").off(),this.$el.find("#check_all").on("click",function(){e.check_all_items()})},init_grid_elements:function(){this.$el.find(".grid").each(function(){var e=r(this).find("input.grid-row-select-checkbox"),t=r(this).find("span.grid-selected-count"),i=function(){t.text(r(e).filter(":checked").length);
+};r(e).each(function(){r(this).change(i)}),i()}),0!==this.$el.find(".community_rating_star").length&&this.$el.find(".community_rating_star").rating({});var e=this.grid.attributes,t=this;this.$el.find(".page-link > a").each(function(){r(this).click(function(){return t.set_page(r(this).attr("page_num")),!1})}),this.$el.find(".use-target").each(function(){r(this).click(function(e){return t.execute({href:r(this).attr("href"),target:r(this).attr("target")}),!1})});var i=e.items.length;0!=i&&l.each(e.items,function(i,s){var a=t.$("#grid-"+s+"-popup").off(),o=new n(a);l.each(e.operations,function(e){t._add_operation(o,e,i)})})},_add_operation:function(e,t,i){var n=this,s=i.operation_config[t.label];s.allowed&&t.allow_popup&&e.addItem({html:t.label,href:s.url_args,target:s.target,confirmation_text:t.confirm,func:function(e){e.preventDefault();var s=r(e.target).html();t.onclick?t.onclick(i.encode_id):n.execute(this.findItemByHtml(s))}})},add_filter_condition:function(e,t){if(""===t)return!1;this.grid.add_filter(e,t,!0);var n=r(i.filter_element(e,t)),s=this;n.click(function(){r(this).remove(),s.remove_filter_condition(e,t)});var a=this.$el.find("#"+e+"-filtering-criteria");a.append(n),this.go_page_one(),this.execute()},remove_filter_condition:function(e,t){this.grid.remove_filter(e,t),this.go_page_one(),this.execute()},set_sort_condition:function(e){var t=this.grid.get("sort_key"),i=e;t.indexOf(e)!==-1&&"-"!==t.substring(0,1)&&(i="-"+e),this.$el.find(".sort-arrow").remove();var n="-"==i.substring(0,1)?"↑":"↓",s=r(""+n+" ").addClass("sort-arrow");this.$el.find("#"+e+"-header").append(s),this.grid.set("sort_key",i),this.go_page_one(),this.execute()},set_categorical_filter:function(e,t){var i=this.grid.get("categorical_filters")[e],n=this.grid.get("filters")[e],s=this;this.$el.find("."+e+"-filter").each(function(){var a=r.trim(r(this).text()),o=i[a],l=o[e];if(l==t)r(this).empty(),r(this).addClass("current-filter"),r(this).append(a);else if(l==n){r(this).empty();var c=r(''+a+" ");c.click(function(){s.set_categorical_filter(e,l)}),r(this).removeClass("current-filter"),r(this).append(c)}}),this.grid.add_filter(e,t),this.go_page_one(),this.execute()},set_page:function(e){var t=this;this.$el.find(".page-link").each(function(){var i,n=r(this).attr("id"),s=parseInt(n.split("-")[2],10),a=t.grid.get("cur_page");if(s===e)i=r(this).children().text(),r(this).empty(),r(this).addClass("inactive-link"),r(this).text(i);else if(s===a){i=r(this).text(),r(this).empty(),r(this).removeClass("inactive-link");var o=r(''+i+" ");o.click(function(){t.set_page(s)}),r(this).append(o)}}),"all"===e?this.grid.set("cur_page",e):this.grid.set("cur_page",parseInt(e,10)),this.execute()},submit_operation:function(e,t){var i=r(e).val(),n=this.$el.find('input[name="id"]:checked').length;if(!n>0)return!1;var s=l.findWhere(this.grid.attributes.operations,{label:i});s&&!t&&(t=s.confirm||"");var a=[];return this.$el.find("input[name=id]:checked").each(function(){a.push(r(this).val())}),this.execute({operation:i,id:a,confirmation_text:t}),!0},check_all_items:function(){var e,t=document.getElementById("check_all"),i=document.getElementsByTagName("input"),n=0;if(t.checked===!0)for(e=0;e1)for(var r=o[1],l=r.split("&"),c=0;c":" ",o(t)}}),n=i.Collection.extend({model:e}),s=i.View.extend({tagName:"div",initialize:function(){this.render()},render:function(){var e=this;return this.collection.each(function(t){var i=o(" ").attr("href","javascript:void(0)").attr("title",t.attributes.title).addClass("icon-button menu-button").addClass(t.attributes.icon_class).appendTo(e.$el).click(t.attributes.on_click);t.attributes.tooltip_config&&i.tooltip(t.attributes.tooltip_config);var n=t.get("options");n&&make_popupmenu(i,n)}),this}}),r=function(t,i){i||(i={});var o=new n(a.map(t,function(t){return new e(a.extend(t,i))}));return new s({collection:o})};return{IconButton:e,IconButtonView:t,IconButtonCollection:n,IconButtonMenuView:s,create_icon_buttons_menu:r}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(2),i(1))},function(e,t,i){var n,s;(function(a,o,r){n=[i(4)],s=function(e){var t=a.View.extend({optionsDefault:{with_close:!0,title:null,placement:"top",container:"body",body:null},initialize:function(t){this.setElement(this._template()),this.uid=e.uid(),this.options=o.defaults(t||{},this.optionsDefault),this.options.container.parent().append(this.el),this.$title=this.$(".popover-title-label"),this.$close=this.$(".popover-close"),this.$body=this.$(".popover-content"),this.options.body&&this.append(this.options.body);var i=this;r("body").on("mousedown."+this.uid,function(e){i.visible&&!r(i.options.container).is(e.target)&&!r(i.el).is(e.target)&&0===r(i.el).has(e.target).length&&i.hide()})},render:function(){this.$title.html(this.options.title),this.$el.removeClass().addClass("ui-popover popover fade in").addClass(this.options.placement),this.$el.css(this._get_placement(this.options.placement));var e=this;this.options.with_close?this.$close.on("click",function(){e.hide()}).show():this.$close.off().hide()},title:function(e){void 0!==e&&(this.options.title=e,this.$title.html(e))},show:function(){this.render(),this.$el.show(),this.visible=!0},hide:function(){this.$el.hide(),this.visible=!1},append:function(e){this.$body.append(e)},empty:function(){this.$body.empty()},remove:function(){r("body").off("mousedown."+this.uid),this.$el.remove()},_get_placement:function(e){var t=this._get_width(this.$el),i=this.$el.height(),n=this.options.container,s=this._get_width(n),a=this._get_height(n),o=n.position(),r=left=0;if(["top","bottom"].indexOf(e)!=-1)switch(left=o.left-t+(s+t)/2,e){case"top":r=o.top-i-5;break;case"bottom":r=o.top+a+5}else switch(r=o.top-i+(a+i)/2,e){case"right":left=o.left+s}return{top:r,left:left}},_get_width:function(e){return e.width()+parseInt(e.css("padding-left"))+parseInt(e.css("margin-left"))+parseInt(e.css("padding-right"))+parseInt(e.css("margin-right"))},_get_height:function(e){return e.height()+parseInt(e.css("padding-top"))+parseInt(e.css("padding-bottom"))},_template:function(e){return''}});return{View:t}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(2),i(1))},function(e,t,i){var n,s;(function(a,o){n=[i(4)],s=function(e){var t=a.View.extend({optionsDefault:{css:"",placeholder:"No data available",data:[],value:null,multiple:!1,minimumInputLength:0,initialData:""},initialize:function(t){if(this.options=e.merge(t,this.optionsDefault),this.setElement(this._template(this.options)),!this.options.container)return void console.log("ui-select::initialize() : container not specified.");if(this.options.container.append(this.$el),this.select_data=this.options.data,this._refresh(),!this.options.multiple){this.options.value&&this._setValue(this.options.value);var i=this;this.options.onchange&&this.$el.on("change",function(){i.options.onchange(i.value())})}},value:function(e){var t=this._getValue();void 0!==e&&this._setValue(e);var i=this._getValue();return i!=t&&this.options.onchange&&this.options.onchange(i),i},text:function(){return this.$el.select2("data").text},disabled:function(){return!this.$el.select2("enable")},enable:function(){this.$el.select2("enable",!0)},disable:function(){this.$el.select2("enable",!1)},add:function(e){this.select_data.push({id:e.id,text:e.text}),this._refresh()},del:function(e){var t=this._getIndex(e);t!=-1&&(this.select_data.splice(t,1),this._refresh())},remove:function(){this.$el.select2("destroy")},update:function(e){this.select_data=[];for(var t in e.data)this.select_data.push(e.data[t]);this._refresh()},_refresh:function(){if(this.options.multiple){var e={multiple:this.options.multiple,containerCssClass:this.options.css,placeholder:this.options.placeholder,minimumInputLength:this.options.minimumInputLength,ajax:this.options.ajax,dropdownCssClass:this.options.dropdownCssClass,escapeMarkup:this.options.escapeMarkup,formatResult:this.options.formatResult,formatSelection:this.options.formatSelection,initSelection:this.options.initSelection,initialData:this.options.initialData};this.$el.select2(e)}else{var t=this._getValue(),e={data:this.select_data,containerCssClass:this.options.css,placeholder:this.options.placeholder,dropdownAutoWidth:!0};this.$el.select2(e),this._setValue(t)}},_getIndex:function(e){o.findIndex(this.select_data,{id:e})},_getValue:function(){return this.$el.select2("val")},_setValue:function(e){var t=this._getIndex(e);t==-1&&this.select_data.length>0&&(e=this.select_data[0].id),this.$el.select2("val",e)},_template:function(e){return' '}});return{View:t}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(2))},function(e,t,i){var n,s,a;!function(o){s=[i(1)],n=o,a="function"==typeof n?n.apply(t,s):n,!(void 0!==a&&(e.exports=a))}(function(e){"use_strict";var t=e;t.fn.make_text_editable=function(e){var i="num_cols"in e?e.num_cols:30,n="num_rows"in e?e.num_rows:4,s="use_textarea"in e&&e.use_textarea,a="on_finish"in e?e.on_finish:null,o="help_text"in e?e.help_text:null,r=t(this);return r.addClass("editable-text").click(function(o){if(!(t(this).children(":input").length>0)){r.removeClass("editable-text");var l,c,d=function(e){r.find(":input").remove(),""!==e?r.text(e):r.html(" "),r.addClass("editable-text"),a&&a(e)},h="cur_text"in e?e.cur_text:r.text();s?(l=t("").attr({rows:n,cols:i}).text(t.trim(h)).keyup(function(e){27===e.keyCode&&d(h)}),c=t(" ").text("Done").click(function(){return d(l.val()),!1})):l=t(" ").attr({value:t.trim(h),size:i}).blur(function(){d(h)}).keyup(function(e){27===e.keyCode?t(this).trigger("blur"):13===e.keyCode&&d(t(this).val()),e.stopPropagation()}),r.text(""),r.append(l),c&&r.append(c),l.focus(),l.select(),o.stopPropagation()}}),o&&r.attr("title",o).tooltip(),r}})},function(e,t,i){var n,s,a;(function(i,o){!function(i,o){s=[],n=o,a="function"==typeof n?n.apply(t,s):n,!(void 0!==a&&(e.exports=a))}(this,function(){var e=function(e){e=e||{},e.tooltipConfig=e.tooltipConfig||{placement:"bottom"},e.classes=["icon-btn"].concat(e.classes||[]),e.disabled&&e.classes.push("disabled");var t=['',' '," "].join(""),n=i(t).tooltip(e.tooltipConfig);return o.isFunction(e.onclick)&&n.click(e.onclick),n};return e})}).call(t,i(1),i(2))},function(e,t,i){var n;(function(s,a){n=function(){function e(e){e+="";for(var t=/(\d+)(\d{3})/;t.test(e);)e=e.replace(t,"$1,$2");return e}var t=function(e){return"promise"in e},i=s.Model.extend({defaults:{ajax_settings:{},interval:1e3,success_fn:function(e){return!0}},go:function(){var e=a.Deferred(),t=this,i=t.get("ajax_settings"),n=t.get("success_fn"),s=t.get("interval"),o=function(){a.ajax(i).success(function(t){n(t)?e.resolve(t):setTimeout(o,s)})};return o(),e}}),n=function(e){e||(e="#ffffff"),"string"==typeof e&&(e=[e]);for(var t=0;t>16,s=(65280&i)>>8,a=255&i,d=p(n,s,a),g=!0,t=0;t>16,l=(65280&o)>>8,c=255&o,h=p(r,l,c),u=f(n,s,a,r,l,c),Math.abs(d-h)<40||u<200){g=!1;break}m++}while(!g&&m<=10);return"#"+(16777216+i).toString(16).substr(1,6)};return{commatize:e,is_deferred:t,ServerStateDeferred:i,get_random_color:n}}.call(t,i,t,e),!(void 0!==n&&(e.exports=n))}).call(t,i(3),i(1))},function(e,t,i){var n,s;(function(a,o){n=[i(38),i(6),i(5)],s=function(e,t,i){e=e||window.BibtexParser;var n="citation",s=a.Model.extend(t.LoggableMixin).extend({_logNamespace:n,defaults:{content:""},initialize:function(){var t;try{t=e(this.attributes.content)}catch(e){return}if(t.errors.length){var i=t.errors.reduce(function(e,t){return e+"; "+t});this.log("Error parsing bibtex: "+i)}if(this._fields={},this.entry=o.first(t.entries),this.entry){var n=this.entry.Fields;for(var s in n){var a=n[s],r=s.toLowerCase();this._fields[r]=a}}},entryType:function(){return this.entry?this.entry.EntryType:void 0},fields:function(){return this._fields}}),r=a.Collection.extend(t.LoggableMixin).extend({_logNamespace:n,urlRoot:Galaxy.root+"api",partial:!0,model:s}),l=r.extend({url:function(){return this.urlRoot+"/histories/"+this.history_id+"/citations"}}),c=r.extend({url:function(){return this.urlRoot+"/tools/"+this.tool_id+"/citations"},partial:!1});return{Citation:s,HistoryCitationCollection:l,ToolCitationCollection:c}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(2))},function(e,t,i){var n,s;(function(i,a,o,r){n=[],s=function(){var e=i.View.extend({initialize:function(e,t){this.$button=e,this.$button.length||(this.$button=a("
")),this.options=t||[],this.$button.data("popupmenu",this);var i=this;this.$button.click(function(e){return a(".popmenu-wrapper").remove(),i._renderAndShow(e),!1})},_renderAndShow:function(e){this.render(),this.$el.appendTo("body").css(this._getShownPosition(e)).show(),this._setUpCloseBehavior()},render:function(){if(this.$el.addClass("popmenu-wrapper").hide().css({position:"absolute"}).html(this.template(this.$button.attr("id"),this.options)),this.options.length){var e=this;this.$el.find("li").each(function(t,i){var n=e.options[t];n.func&&a(this).children("a.popupmenu-option").click(function(t){n.func.call(e,t,n),t.preventDefault()})})}return this},template:function(e,t){return['"].join("")},_templateOptions:function(e){return e.length?o.map(e,function(e){if(e.divider)return' ';if(e.header)return['',e.html," "].join("");var t=e.href||"javascript:void(0);",i=e.target?' target="'+e.target+'"':"",n=e.checked?' ':"";return[' "].join("")}).join(""):"(no options) "},_getShownPosition:function(e){var t=this.$el.width(),i=e.pageX-t/2;return i=Math.min(i,a(document).scrollLeft()+a(window).width()-t-5),i=Math.max(i,a(document).scrollLeft()+5),{top:e.pageY,left:i}},_setUpCloseBehavior:function(){function e(e){if(a(document).off("click.close_popup"),window&&window.parent!==window)try{a(window.parent.document).off("click.close_popup")}catch(e){}else try{a("iframe#galaxy_main").contents().off("click.close_popup")}catch(e){}t.remove()}var t=this;if(a("html").one("click.close_popup",e),window&&window.parent!==window)try{a(window.parent.document).find("html").one("click.close_popup",e)}catch(e){}else try{a("iframe#galaxy_main").contents().one("click.close_popup",e)}catch(e){}},addItem:function(e,t){return t=t>=0?t:this.options.length,this.options.splice(t,0,e),this},removeItem:function(e){return e>=0&&this.options.splice(e,1),this},findIndexByHtml:function(e){for(var t=0;t0?(!this.multiple&&this.button.disable(),this.$(".ui-list-portlet").show()):(this.button.enable(),this.$(".ui-list-portlet").hide()),this.options.onchange&&this.options.onchange()},_template:function(e){return''},_templateRow:function(e){return''+e.name+"
"}});return{View:n}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1))},function(e,t,i){var n,s;(function(a,o,r){n=[i(4),i(12)],s=function(e,t){var i=a.View.extend({initialize:function(t){var i=this;this.model=t&&t.model||new a.Model({visible:!0,data:[],id:e.uid(),error_text:"No options available.",wait_text:"Please wait...",multiple:!1,optional:!1,onchange:function(){}}).set(t),this.listenTo(this.model,"change:value",this._changeValue,this),this.listenTo(this.model,"change:wait",this._changeWait,this),this.listenTo(this.model,"change:data",this._changeData,this),this.listenTo(this.model,"change:visible",this._changeVisible,this),this.on("change",function(){i.model.get("onchange")(i.value())}),this.render()},render:function(){var e=this;this.$el.empty().removeClass().addClass("ui-options").append(this.$message=o("
")).append(this.$menu=o("
").addClass("ui-options-menu")).append(this.$options=o(this._template())),this.all_button=null,this.model.get("multiple")&&(this.all_button=new t.ButtonCheck({onclick:function(){e.$("input").prop("checked",0!==e.all_button.value()),e.value(e._getValue()),e.trigger("change")}}),this.$menu.append(this.all_button.$el)),this._changeData(),this._changeWait(),this._changeVisible()},update:function(e){this.model.set("data",e)},_changeData:function(){var e=this;this.$options.empty(),this._templateOptions?this.$options.append(this._templateOptions(this.model.get("data"))):r.each(this.model.get("data"),function(t){e.$options.append(o(e._templateOption(t)).addClass("ui-option").tooltip({title:t.tooltip,placement:"bottom"}))});var e=this;this.$("input").on("change",function(){e.value(e._getValue()),e.trigger("change")}),this._changeValue(),this._changeWait()},_changeVisible:function(){this.$el[this.model.get("visible")?"show":"hide"]()},_changeWait:function(){this.model.get("wait")?0===this.length()&&(this._messageShow(this.model.get("wait_text"),"info"),this.$options.hide(),this.$menu.hide()):0===this.length()?(this._messageShow(this.model.get("error_text"),"danger"),this.$options.hide(),this.$menu.hide()):(this.$message.hide(),this.$options.css("display","inline-block"),this.$menu.show())},_changeValue:function(){this._setValue(this.model.get("value")),null!==this._getValue()||this.model.get("multiple")||this.model.get("optional")||this._setValue(this.first()),this.all_button&&this.all_button.value(o.isArray(this._getValue())?this._getValue().length:0,this.length())},value:function(e){return void 0!==e&&this.model.set("value",e),this._getValue()},first:function(){var e=this.$("input").first();return e.length>0?e.val():null},wait:function(){this.model.set("wait",!0)},unwait:function(){this.model.set("wait",!1)},length:function(){return this.$(".ui-option").length},_setValue:function(e){var t=this;if(void 0!==e&&(this.$("input").prop("checked",!1),null!==e)){var i=o.isArray(e)?e:[e];r.each(i,function(e){t.$('input[value="'+e+'"]').first().prop("checked",!0)})}},_getValue:function(){var t=[];return this.$(":checked").each(function(){t.push(o(this).val())}),e.isEmpty(t)?null:this.model.get("multiple")?t:t[0]},_messageShow:function(e,t){this.$message.show().removeClass().addClass("ui-message alert alert-"+t).html(e)},_template:function(){return o("
").addClass("ui-options-list")}}),n=i.extend({_templateOption:function(t){var i=e.uid();return o("
").addClass("ui-option").append(o(" ").attr({id:i,type:this.model.get("type"),name:this.model.id,value:t.value})).append(o(" ").addClass("ui-options-label").attr("for",i).html(t.label))}}),s={};s.View=n.extend({initialize:function(e){e.type="radio",n.prototype.initialize.call(this,e)}});var l={};l.View=n.extend({initialize:function(e){e.type="checkbox",e.multiple=!0,n.prototype.initialize.call(this,e)}});var c={};return c.View=i.extend({initialize:function(e){i.prototype.initialize.call(this,e)},_setValue:function(e){void 0!==e&&(this.$("input").prop("checked",!1),this.$("label").removeClass("active"),this.$('[value="'+e+'"]').prop("checked",!0).closest("label").addClass("active"))},_templateOption:function(e){var t=o(" ").addClass("btn btn-default");return e.icon&&t.append(o(" ").addClass("fa").addClass(e.icon).addClass(!e.label&&"no-padding")),t.append(o(" ").attr({type:"radio",name:this.model.id,value:e.value})),e.label&&t.append(e.label),t},_template:function(){return o("
").addClass("btn-group ui-radiobutton").attr("data-toggle","buttons")}}),{Base:i,BaseIcons:n,Radio:s,RadioButton:c,Checkbox:l}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1),i(2))},function(e,t,i){var n,s;(function(a,o,r){n=[i(4),i(12)],s=function(e,t){var i=a.View.extend({initialize:function(t){var i=this;this.data=[],this.data2=[],this.model=t&&t.model||new a.Model({id:e.uid(),cls:"ui-select",error_text:"No options available",empty_text:"Nothing selected",visible:!0,wait:!1,multiple:!1,searchable:!0,optional:!1,disabled:!1,onchange:function(){},value:null,selectall:!0,pagesize:20}).set(t),this.on("change",function(){i.model.get("onchange")&&i.model.get("onchange")(i.value())}),this.listenTo(this.model,"change:data",this._changeData,this),this.listenTo(this.model,"change:disabled",this._changeDisabled,this),this.listenTo(this.model,"change:wait",this._changeWait,this),this.listenTo(this.model,"change:visible",this._changeVisible,this),this.listenTo(this.model,"change:value",this._changeValue,this),this.listenTo(this.model,"change:multiple change:searchable change:cls change:id",this.render,this),this.render()},render:function(){var e=this;this.model.get("searchable")?this._renderSearchable():this._renderClassic(),this.$el.addClass(this.model.get("cls")).attr("id",this.model.get("id")),this.$select.empty().addClass("select").attr("id",this.model.get("id")+"_select").prop("multiple",this.model.get("multiple")).on("change",function(){e.value(e._getValue()),e.trigger("change")}),this._changeData(),this._changeWait(),this._changeVisible(),this._changeDisabled()},_renderClassic:function(){var e=this;this.$el.addClass(this.model.get("multiple")?"ui-select-multiple":"ui-select").append(this.$select=o(" ")).append(this.$dropdown=o("
")).append(this.$resize=o("
").append(this.$resize_icon=o(" "))),this.model.get("multiple")?(this.$dropdown.hide(),this.$resize_icon.addClass("fa fa-angle-double-right fa-rotate-45").show(),this.$resize.removeClass().addClass("icon-resize").show().off("mousedown").on("mousedown",function(t){var i=t.pageY,n=e.$select.height();e.minHeight=e.minHeight||n,o("#dd-helper").show().on("mousemove",function(t){e.$select.height(Math.max(n+(t.pageY-i),e.minHeight))}).on("mouseup mouseleave",function(){o("#dd-helper").hide().off()})})):(this.$dropdown.show(),this.$resize.hide(),this.$resize_icon.hide())},_renderSearchable:function(){var e=this;this.$el.append(this.$select=o("
")).append(this.$dropdown=o("
")),this.$dropdown.hide(),this.model.get("multiple")||this.$dropdown.show().on("click",function(){e.$select.select2&&e.$select.select2("open")}),this.all_button=null,this.model.get("multiple")&&this.model.get("selectall")&&(this.all_button=new t.ButtonCheck({onclick:function(){var t=[];0!==e.all_button.value()&&r.each(e.model.get("data"),function(e){t.push(e.value)}),e.value(t),e.trigger("change")}}),this.$el.prepend(this.all_button.$el))},_match:function(e,t){return!e||""==e||String(t).toUpperCase().indexOf(e.toUpperCase())>=0},_changeData:function(){var e=this;this.data=[],!this.model.get("multiple")&&this.model.get("optional")&&this.data.push({value:"__null__",label:e.model.get("empty_text")}),r.each(this.model.get("data"),function(t){e.data.push(t)}),0==this.length()&&this.data.push({value:"__null__",label:this.model.get("error_text")}),this.model.get("searchable")?(this.data2=[],r.each(this.data,function(t,i){e.data2.push({order:i,id:t.value,text:t.label,tags:t.tags})}),this.$select.data("select2")&&this.$select.select2("destroy"),this.matched_tags={},this.$select.select2({data:e.data2,closeOnSelect:!this.model.get("multiple"),multiple:this.model.get("multiple"),query:function(t){e.matched_tags={};var i=e.model.get("pagesize"),n=r.filter(e.data2,function(i){var n=!1;return r.each(i.tags,function(i){e._match(t.term,i)&&(n=e.matched_tags[i]=!0)}),n||e._match(t.term,i.text)});t.callback({results:n.slice((t.page-1)*i,t.page*i),more:n.length>=t.page*i})},formatResult:function(t){return r.escape(t.text)+'"}}),this.$(".select2-container .select2-search input").off("blur")):(this.$select.find("option").remove(),r.each(this.data,function(t){e.$select.append(o(" ").attr("value",t.value).html(r.escape(t.label)))})),this.model.set("disabled",0==this.length()),this._changeValue()},_changeDisabled:function(){this.model.get("searchable")?this.$select.select2(this.model.get("disabled")?"disable":"enable"):this.$select.prop("disabled",this.model.get("disabled"))},_changeWait:function(){this.$dropdown.removeClass().addClass("icon-dropdown fa").addClass(this.model.get("wait")?"fa-spinner fa-spin":"fa-caret-down")},_changeVisible:function(){this.$el[this.model.get("visible")?"show":"hide"](),this.$select[this.model.get("visible")?"show":"hide"]()},_changeValue:function(){if(this._setValue(this.model.get("value")),this.model.get("multiple")){if(this.all_button){var e=this._getValue();this.all_button.value(o.isArray(e)?e.length:0,this.length())}}else null!==this._getValue()||this.model.get("optional")||this._setValue(this.first())},value:function(e){return void 0!==e&&this.model.set("value",e),this._getValue()},first:function(){return this.data.length>0?this.data[0].value:null},exists:function(e){return r.findWhere(this.data,{value:e})},text:function(){var e=this._getValue(),t=this.exists(o.isArray(e)?e[0]:e);return t?t.label:""},show:function(){this.model.set("visible",!0)},hide:function(){this.model.set("visible",!1)},wait:function(){this.model.set("wait",!0)},unwait:function(){this.model.set("wait",!1)},disabled:function(){
+return this.model.get("disabled")},enable:function(){this.model.set("disabled",!1)},disable:function(){this.model.set("disabled",!0)},add:function(e,t){r.each(this.model.get("data"),function(t){t.keep&&!r.findWhere(e,{value:t.value})&&e.push(t)}),t&&e&&e.sort(t),this.model.set("data",e)},update:function(e){this.model.set("data",e)},setOnChange:function(e){this.model.set("onchange",e)},length:function(){return o.isArray(this.model.get("data"))?this.model.get("data").length:0},_setValue:function(e){var t=this;if(null!==e&&void 0!==e||(e="__null__"),this.model.get("multiple")?e=o.isArray(e)?e:[e]:o.isArray(e)&&(e=e.length>0?e[0]:"__null__"),this.model.get("searchable")){if(o.isArray(e))val=[],r.each(e,function(e){var i=r.findWhere(t.data2,{id:e});i&&val.push(i)}),e=val;else{var i=r.findWhere(this.data2,{id:e});e=i}this.$select.select2("data",e)}else this.$select.val(e)},_getValue:function(){var t=null;if(this.model.get("searchable")){var i=this.$select.select2("data");i&&(o.isArray(i)?(t=[],i.sort(function(e,t){return e.order-t.order}),r.each(i,function(e){t.push(e.id)})):t=i.id)}else t=this.$select.val();return e.isEmpty(t)?null:t}});return{View:i}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1),i(2))},function(e,t,i){var n,s;(function(i){n=[],s=function(){var e=i.Model.extend({defaults:{extension:"auto",genome:"?",url_paste:"",status:"init",info:null,file_name:"",file_mode:"",file_size:0,file_type:null,file_path:"",file_data:null,percentage:0,space_to_tab:!1,to_posix_lines:!0,enabled:!0},reset:function(e){this.clear().set(this.defaults).set(e)}}),t=i.Collection.extend({model:e});return{Model:e,Collection:t}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3))},,function(e,t,i){var n,s;(function(a,o,r){n=[i(4)],s=function(e){var t=a.Model.extend({initialize:function(e){this.app=e},checksum:function(){var e="",t=this;return this.app.section.$el.find(".section-row").each(function(){var i=o(this).attr("id"),n=t.app.field_list[i];n&&(e+=i+":"+JSON.stringify(n.value&&n.value())+":"+n.collapsed+";")}),e},create:function(){function e(e,t,i){n.flat_dict[e]=t,a[e]=i,n.app.element_list[t]&&n.app.element_list[t].$el.attr("tour_id",e)}function t(s,a){for(var o in a){var r=a[o];if(r.input){var l=r.input,c=s;switch(""!=s&&(c+="|"),c+=l.name,l.type){case"repeat":var d="section-",h=[],u=null;for(var p in r){var f=p.indexOf(d);f!=-1&&(f+=d.length,h.push(parseInt(p.substr(f))),u||(u=p.substr(0,f)))}h.sort(function(e,t){return e-t});var o=0;for(var g in h)t(c+"_"+o++,r[u+h[g]]);break;case"conditional":var m=n.app.field_list[l.id].value();e(c+"|"+l.test_param.name,l.id,m);var v=i(l,m);v!=-1&&t(c,a[l.id+"-section-"+v]);break;case"section":t(!l.flat&&c||"",r);break;default:var _=n.app.field_list[l.id];if(_&&_.value){var m=_.value();if((void 0===l.ignore||l.ignore!=m)&&(_.collapsed&&l.collapsible_value&&(m=l.collapsible_value),e(c,l.id,m),l.payload))for(var y in l.payload)e(y,l.id,l.payload[y])}}}}}var n=this,s={};this._iterate(this.app.section.$el,s);var a={};return this.flat_dict={},t("",s),a},match:function(e){return this.flat_dict&&this.flat_dict[e]},matchCase:function(e,t){return i(e,t)},matchModel:function(e,t){var i=this;n(e.inputs,function(e,n){i.flat_dict[n]&&t(e,i.flat_dict[n])})},matchResponse:function(e){function t(e,s){if("string"==typeof s){var a=n.flat_dict[e];a&&(i[a]=s)}else for(var o in s){var r=o;if(""!==e){var l="|";s instanceof Array&&(l="_"),r=e+l+r}t(r,s[o])}}var i={},n=this;return t("",e),i},_iterate:function(e,t){var i=this,n=o(e).children();n.each(function(){var e=this,n=o(e).attr("id");if(o(e).hasClass("section-row")){var s=i.app.input_list[n];t[n]=s&&{input:s}||{},i._iterate(e,t[n])}else i._iterate(e,t)})}}),i=function(e,t){"boolean"==e.test_param.type&&(t="true"==t?e.test_param.truevalue||"true":e.test_param.falsevalue||"false");for(var i in e.cases)if(e.cases[i].value==t)return i;return-1},n=function(e,t,s,a){a=o.extend(!0,{},a),r.each(e,function(e){e&&e.type&&e.name&&(a[e.name]=e)});for(var l in e){var c=e[l];c.name=c.name||l;var d=s?s+"|"+c.name:c.name;switch(c.type){case"repeat":r.each(c.cache,function(e,i){n(e,t,d+"_"+i,a)});break;case"conditional":if(c.test_param){t(c.test_param,d+"|"+c.test_param.name,a);var h=i(c,c.test_param.value);h!=-1?n(c.cases[h].inputs,t,d,a):Galaxy.emit.debug("form-data::visitInputs() - Invalid case for "+d+".")}else Galaxy.emit.debug("form-data::visitInputs() - Conditional test parameter missing for "+d+".");break;case"section":n(c.inputs,t,d,a);break;default:t(c,d,a)}}};return{Manager:t,visitInputs:n}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1),i(2))},function(e,t,i){var n,s;(function(a,o){n=[i(4),i(33),i(7),i(13),i(21),i(39)],s=function(e,t,i,n,s,r){return n.extend({initialize:function(e){var i=this;this.deferred=new t,n.prototype.initialize.call(this,e),this.model.get("inputs")?this._buildForm(this.model.attributes):this.deferred.execute(function(e){i._buildModel(e,i.model.attributes,!0)}),this.model.get("listen_to_history")&&parent.Galaxy&&parent.Galaxy.currHistoryPanel&&this.listenTo(parent.Galaxy.currHistoryPanel.collection,"change",function(){i.model.get("onchange")()}),this.$el.on("remove",function(){i._destroy()})},_destroy:function(){var e=this;this.$el.off().hide(),this.deferred.execute(function(){n.prototype.remove.call(e),Galaxy.emit.debug("tool-form-base::_destroy()","Destroy view.")})},_buildForm:function(e){var t=this;this.model.set(e),this.model.set({title:e.title||""+e.name+" "+e.description+" (Galaxy Version "+e.version+")",operations:!this.model.get("hide_operations")&&this._operations(),onchange:function(){t.deferred.reset(),t.deferred.execute(function(e){t.model.get("postchange")(e,t)})}}),this.model.get("customize")&&this.model.get("customize")(this),this.render(),this.model.get("collapsible")||this.$el.append(a("
").addClass("ui-margin-top-large").append(this._footer()))},_buildModel:function(t,n,s){var o=this,r=this.model.attributes;r.version=n.version,r.id=n.id;var l="",c={},d="";n.job_id?d=n.job_id:r.job_id&&(d=r.job_id),d?l=Galaxy.root+"api/jobs/"+d+"/build_for_rerun":(l=Galaxy.root+"api/tools/"+r.id+"/build",c=a.extend({},Galaxy.params),c.tool_id&&delete c.tool_id),r.version&&(c.tool_version=r.version),e.get({url:l,data:c,success:function(e){return e.display?(o._buildForm(e),!s&&o.message.update({status:"success",message:"Now you are using '"+r.name+"' version "+r.version+", id '"+r.id+"'.",persistent:!1}),Galaxy.emit.debug("tool-form-base::_buildModel()","Initial tool model ready.",e),void t.resolve()):void(window.location=Galaxy.root)},error:function(e,n){var s=e&&e.err_msg||"Uncaught error.";401==n?window.location=Galaxy.root+"user/login?"+a.param({redirect:Galaxy.root+"?tool_id="+r.id}):o.$el.is(":empty")?o.$el.prepend(new i.Message({message:s,status:"danger",persistent:!0,large:!0}).$el):Galaxy.modal&&Galaxy.modal.show({title:"Tool request failed",body:s,buttons:{Close:function(){Galaxy.modal.hide()}}}),Galaxy.emit.debug("tool-form-base::_buildModel()","Initial tool model request failed.",e),t.reject()}})},_operations:function(){var t=this,n=this.model.attributes,s=new i.ButtonMenu({icon:"fa-cubes",title:!n.narrow&&"Versions"||null,tooltip:"Select another tool version"});if(!n.sustain_version&&n.versions&&n.versions.length>1)for(var r in n.versions){var l=n.versions[r];l!=n.version&&s.addMenu({title:"Switch to "+l,version:l,icon:"fa-cube",onclick:function(){var e=n.id.replace(n.version,this.version),i=this.version;t.deferred.reset(),t.deferred.execute(function(n){t._buildModel(n,{id:e,version:i})})}})}else s.$el.hide();var c=new i.ButtonMenu({icon:"fa-caret-down",title:!n.narrow&&"Options"||null,tooltip:"View available options"});return n.biostar_url&&(c.addMenu({icon:"fa-question-circle",title:"Question?",onclick:function(){window.open(n.biostar_url+"/p/new/post/")}}),c.addMenu({icon:"fa-search",title:"Search",onclick:function(){window.open(n.biostar_url+"/local/search/page/?q="+n.name)}})),c.addMenu({icon:"fa-share",title:"Share",onclick:function(){prompt("Copy to clipboard: Ctrl+C, Enter",window.location.origin+Galaxy.root+"root?tool_id="+n.id)}}),Galaxy.user&&Galaxy.user.get("is_admin")&&(c.addMenu({icon:"fa-download",title:"Download",onclick:function(){window.location.href=Galaxy.root+"api/tools/"+n.id+"/download"}}),c.addMenu({icon:"fa-refresh",title:"Reload XML",onclick:function(){e.get({url:Galaxy.root+"api/tools/"+n.id+"/reload",success:function(e){t.message.update({persistent:!1,message:"Tool XML has been reloaded.",status:"success"})},error:function(e){t.message.update({persistent:!1,message:e.err_msg,status:"danger"})}})}})),n.requirements&&n.requirements.length>0&&c.addMenu({icon:"fa-info-circle",title:"Requirements",onclick:function(){!this.requirements_visible||t.portlet.collapsed?(this.requirements_visible=!0,t.portlet.expand(),t.message.update({persistent:!0,message:t._templateRequirements(n),status:"info"})):(this.requirements_visible=!1,t.message.update({message:""}))}}),n.sharable_url&&c.addMenu({icon:"fa-external-link",title:"See in Tool Shed",onclick:function(){window.open(n.sharable_url)}}),a.getJSON("/api/webhooks/tool-menu/all",function(e){o.each(e,function(e){e.activate&&e.config.function&&c.addMenu({icon:e.config.icon,title:e.config.title,onclick:function(){var t=new Function("options",e.config.function);t(n)}})})}),{menu:c,versions:s}},_footer:function(){var e=this.model.attributes,t=a("
").append(this._templateHelp(e));if(e.citations){var i=a("
"),n=new s.ToolCitationCollection;n.tool_id=e.id;var o=new r.CitationListView({el:i,collection:n});o.render(),n.fetch(),t.append(i)}return t},_templateHelp:function(e){var t=a("
").addClass("ui-form-help").append(e.help);return t.find("a").attr("target","_blank"),t},_templateRequirements:function(e){var t=e.requirements.length;if(t>0){var i="This tool requires ";o.each(e.requirements,function(e,n){i+=e.name+(e.version?" (Version "+e.version+")":"")+(n").attr("target","_blank").attr("href","https://galaxyproject.org/tools/requirements/").text("here");return a(" ").append(i+". Click ").append(n).append(" for more information.")}return"No requirements found."}})}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(1),i(2))},function(e,t,i){var n,s;(function(a,o,r){n=[i(4),i(7),i(8),i(29),i(27)],s=function(e,t,i,n,s){var l=a.View.extend({initialize:function(s){var a=this;this.modal=parent.Galaxy.modal||new i.View,this.form=new n(e.merge({listen_to_history:!0,always_refresh:!1,customize:function(e){var i=e.model.attributes;i.buttons={execute:execute_btn=new t.Button({icon:"fa-check",tooltip:"Execute: "+i.name+" ("+i.version+")",title:"Execute",cls:"ui-button btn btn-primary",floating:"clear",onclick:function(){execute_btn.wait(),e.portlet.disable(),a.submit(i,function(){execute_btn.unwait(),e.portlet.enable()})}})},i.job_id&&i.job_remap&&i.inputs.push({label:"Resume dependencies from this job",name:"rerun_remap_job_id",type:"select",display:"radio",ignore:"__ignore__",value:"__ignore__",options:[["Yes",i.job_id],["No","__ignore__"]],help:"The previous run of this tool failed and other tools were waiting for it to finish successfully. Use this option to resume those tools using the new output(s) of this tool run."})},postchange:function(t,i){var n={tool_id:i.model.get("id"),tool_version:i.model.get("version"),inputs:o.extend(!0,{},i.data.create())};i.wait(!0),Galaxy.emit.debug("tool-form::postchange()","Sending current state.",n),e.request({type:"POST",url:Galaxy.root+"api/tools/"+i.model.get("id")+"/build",data:n,success:function(e){i.update(e),i.wait(!1),Galaxy.emit.debug("tool-form::postchange()","Received new model.",e),t.resolve()},error:function(e){Galaxy.emit.debug("tool-form::postchange()","Refresh request failed.",e),t.reject()}})}},s)),this.deferred=this.form.deferred,this.setElement("
"),this.$el.append(this.form.$el)},submit:function(t,i){var n=this,a={tool_id:t.id,tool_version:t.version,inputs:this.form.data.create()};if(this.form.trigger("reset"),!n.validate(a))return Galaxy.emit.debug("tool-form::submit()","Submission canceled. Validation failed."),void(i&&i());if(t.action!==Galaxy.root+"tool_runner/index"){var l=o("").attr({action:t.action,method:t.method,enctype:t.enctype});return r.each(a.inputs,function(e,t){l.append(o(" ").attr({name:t,value:e}))}),l.hide().appendTo("body").submit().remove(),void(i&&i())}Galaxy.emit.debug("tool-form::submit()","Validation complete.",a),e.request({type:"POST",url:Galaxy.root+"api/tools",data:a,success:function(e){if(i&&i(),n.$el.children().hide(),n.$el.append(n._templateSuccess(e)),e.jobs&&e.jobs.length>0){n.$el.append(o("
",{id:"webhook-view"}));new s.WebhookView({urlRoot:Galaxy.root+"api/webhooks/tool",toolId:a.tool_id})}parent.Galaxy&&parent.Galaxy.currHistoryPanel&&parent.Galaxy.currHistoryPanel.refreshContents()},error:function(e){i&&i(),Galaxy.emit.debug("tool-form::submit","Submission failed.",e);var t=!1;if(e&&e.err_data){var s=n.form.data.matchResponse(e.err_data);for(var o in s){n.form.highlight(o,s[o]),t=!0;break}}t||n.modal.show({title:"Job submission failed",body:n._templateError(a,e&&e.err_msg),buttons:{Close:function(){n.modal.hide()}}})}})},validate:function(e){var t=e.inputs,i=-1,n=null;for(var s in t){var a=t[s],o=this.form.data.match(s),r=this.form.field_list[o],l=this.form.input_list[o];if(o&&l&&r){if(!l.optional&&null==a)return this.form.highlight(o),!1;if(a&&a.batch){var c=a.values.length,d=c>0&&a.values[0]&&a.values[0].src;if(d)if(null===n)n=d;else if(n!==d)return this.form.highlight(o,"Please select either dataset or dataset list fields for all batch mode fields."),!1;if(i===-1)i=c;else if(i!==c)return this.form.highlight(o,"Please make sure that you select the same number of inputs for all batch mode fields. This field contains "+c+" selection(s) while a previous field contains "+i+" ."),!1}}else Galaxy.emit.debug("tool-form::validate()","Retrieving input objects failed.")}return!0},_templateSuccess:function(e){if(e.jobs&&e.jobs.length>0){var t=e.jobs.length,i=1==t?"1 job has":t+" jobs have",n=o("
").addClass("donemessagelarge").append(o("
").text(i+" been successfully added to the queue - resulting in the following datasets:"));return r.each(e.outputs,function(e){n.append(o("
").addClass("messagerow").append(o(" ").text(e.hid+": "+e.name)))}),n.append(o("
").append(" ").text("You can check the status of queued jobs and view the resulting data by refreshing the History pane. When the job has been run the status will change from 'running' to 'finished' if completed successfully or 'error' if problems were encountered.")),n}return this._templateError(e,"Invalid success response. No jobs found.")},_templateError:function(e,t){return o("
").addClass("errormessagelarge").append(o("
").text("The server could not complete the request. Please contact the Galaxy Team if this error persists. "+(t||""))).append(o(" ").text(JSON.stringify(e,null,4)))}});return{View:l}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1),i(2))},,function(e,t,i){var n,s;(function(a,o){n=[i(4)],s=function(e){var t=a.View.extend({initialize:function(t){this.options=e.merge(t,{content:"No content available.",onchange:null,ondblclick:null,onconfirm:null,cls:"ui-table",selectable:!0,cls_tr:""}),this.setElement(this._template()),this.$thead=this.$("thead"),this.$tbody=this.$("tbody"),this.$tmessage=this.$("tmessage"),this.row=this._row(),this.row_count=0},events:{click:"_onclick",dblclick:"_ondblclick"},addHeader:function(e){this.row.append(o(" ").append(e))},appendHeader:function(){this.$thead.append(this.row),this.row=o(" ")},add:function(e,t,i){var n=o(" ");t&&n.css("width",t),i&&n.css("text-align",i),this.row.append(n.append(e))},append:function(e,t){this._commit(e,t,!1)},prepend:function(e,t){this._commit(e,t,!0)},get:function(e){return this.$("#"+e)},del:function(e){var t=this.$tbody.find("#"+e);t.length>0&&(t.remove(),this.row_count--,this._refresh())},delAll:function(){this.$tbody.empty(),this.row_count=0,this._refresh()},value:function(e){if(this.options.selectable){this.before=this.$tbody.find(".current").attr("id"),void 0!==e&&(this.$tbody.find("tr").removeClass("current"),e&&this.$tbody.find("#"+e).addClass("current"));var t=this.$tbody.find(".current").attr("id");return void 0===t?null:(t!=this.before&&this.options.onchange&&this.options.onchange(e),t)}},size:function(){return this.$tbody.find("tr").length},_commit:function(e,t,i){this.del(e),this.row.attr("id",e),i?this.$tbody.prepend(this.row):this.$tbody.append(this.row),t&&(this.row.hide(),this.row.fadeIn()),this.row=this._row(),this.row_count++,this._refresh()},_row:function(){return o(' ')},_onclick:function(e){var t=this.value(),i=o(e.target).closest("tr").attr("id");""!=i&&i&&t!=i&&(this.options.onconfirm?this.options.onconfirm(i):this.value(i))},_ondblclick:function(e){var t=this.value();t&&this.options.ondblclick&&this.options.ondblclick(t)},_refresh:function(){0==this.row_count?this.$tmessage.show():this.$tmessage.hide()},_template:function(){return''+this.options.content+" "}});return{View:t}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1))},function(e,t,i){var n,s;(function(a,o){n=[i(4)],s=function(e){return a.Model.extend({initialize:function(){this.active={},this.last=null},execute:function(t){var i=this,n=e.uid(),s=t.length>0;this.active[n]=!0;var a=o.Deferred();a.promise().always(function(){delete i.active[n],s&&Galaxy.emit.debug("deferred::execute()",this.state().charAt(0).toUpperCase()+this.state().slice(1)+" "+n)}),o.when(this.last).always(function(){i.active[n]?(s&&Galaxy.emit.debug("deferred::execute()","Running "+n),t(a),!s&&a.resolve()):a.reject()}),this.last=a.promise()},reset:function(){Galaxy.emit.debug("deferred::execute()","Reset");for(var e in this.active)this.active[e]=!1},ready:function(){return o.isEmptyObject(this.active)}})}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1))},,,,,function(e,t){function i(e){function t(e){s.push(e)}if("string"==typeof e){var n={},s=[],a=i.call(n,t);return a.parse(e),{entries:s,errors:a.getErrors()}}if("function"!=typeof e)throw"Invalid parser construction.";return this.STATES_={ENTRY_OR_JUNK:0,OBJECT_TYPE:1,ENTRY_KEY:2,KV_KEY:3,EQUALS:4,KV_VALUE:5},this.DATA_={},this.CALLBACK_=e,this.CHAR_=0,this.LINE_=1,this.CHAR_IN_LINE_=0,this.SKIPWS_=!0,this.SKIPCOMMENT_=!0,this.PARSETMP_={},this.SKIPTILLEOL_=!1,this.VALBRACES_=null,this.BRACETYPE_=null,this.BRACECOUNT_=0,this.STATE_=this.STATES_.ENTRY_OR_JUNK,this.ERRORS_=[],this.ENTRY_TYPES_={inproceedings:1,proceedings:2,article:3,techreport:4,misc:5,mastersthesis:6,book:7,phdthesis:8,incollection:9,unpublished:10,inbook:11,manual:12,periodical:13,booklet:14,masterthesis:15,conference:16,online:998,data:999},this.MACROS_={jan:"January",feb:"February",mar:"March",apr:"April",may:"May",jun:"June",jul:"July",aug:"August",sep:"September",oct:"October",nov:"November",dec:"December",Jan:"January",Feb:"February",Mar:"March",Apr:"April",May:"May",Jun:"June",Jul:"July",Aug:"August",Sep:"September",Oct:"October",Nov:"November",Dec:"December"},this.getErrors=function(){return this.ERRORS_},this.parse=function(e){for(var t=0;t
0&&(n["{"].splice(n["{"].length-1,1),0==n["{"].length+n['"'].length&&(a=!0))}a?(this.SKIPWS_=!0,this.SKIPCOMMENT_=!0,this.STATE_=this.STATES_.KV_KEY,this.DATA_.Fields[this.PARSETMP_.Key]=this.PARSETMP_.Value,this.PARSETMP_={Key:""},this.VALBRACES_=null):this.PARSETMP_.Value+=e}}},this.CHARCONV_=[[/\\space /g," "],[/\\textdollar /g,"$"],[/\\textquotesingle /g,"'"],[/\\ast /g,"*"],[/\\textbackslash /g,"\\"],[/\\\^\{\}/g,"^"],[/\\textasciigrave /g,"`"],[/\\lbrace /g,"{"],[/\\vert /g,"|"],[/\\rbrace /g,"}"],[/\\textasciitilde /g,"~"],[/\\textexclamdown /g,"¡"],[/\\textcent /g,"¢"],[/\\textsterling /g,"£"],[/\\textcurrency /g,"¤"],[/\\textyen /g,"¥"],[/\\textbrokenbar /g,"¦"],[/\\textsection /g,"§"],[/\\textasciidieresis /g,"¨"],[/\\textcopyright /g,"©"],[/\\textordfeminine /g,"ª"],[/\\guillemotleft /g,"«"],[/\\lnot /g,"¬"],[/\\textregistered /g,"®"],[/\\textasciimacron /g,"¯"],[/\\textdegree /g,"°"],[/\\pm /g,"±"],[/\\textasciiacute /g,"´"],[/\\mathrm\{\\mu\}/g,"µ"],[/\\textparagraph /g,"¶"],[/\\cdot /g,"·"],[/\\c\{\}/g,"¸"],[/\\textordmasculine /g,"º"],[/\\guillemotright /g,"»"],[/\\textonequarter /g,"¼"],[/\\textonehalf /g,"½"],[/\\textthreequarters /g,"¾"],[/\\textquestiondown /g,"¿"],[/\\`\{A\}/g,"À"],[/\\'\{A\}/g,"Á"],[/\\\^\{A\}/g,"Â"],[/\\~\{A\}/g,"Ã"],[/\\"\{A\}/g,"Ä"],[/\\AA /g,"Å"],[/\\AE /g,"Æ"],[/\\c\{C\}/g,"Ç"],[/\\`\{E\}/g,"È"],[/\\'\{E\}/g,"É"],[/\\\^\{E\}/g,"Ê"],[/\\"\{E\}/g,"Ë"],[/\\`\{I\}/g,"Ì"],[/\\'\{I\}/g,"Í"],[/\\\^\{I\}/g,"Î"],[/\\"\{I\}/g,"Ï"],[/\\DH /g,"Ð"],[/\\~\{N\}/g,"Ñ"],[/\\`\{O\}/g,"Ò"],[/\\'\{O\}/g,"Ó"],[/\\\^\{O\}/g,"Ô"],[/\\~\{O\}/g,"Õ"],[/\\"\{O\}/g,"Ö"],[/\\texttimes /g,"×"],[/\\O /g,"Ø"],[/\\`\{U\}/g,"Ù"],[/\\'\{U\}/g,"Ú"],[/\\\^\{U\}/g,"Û"],[/\\"\{U\}/g,"Ü"],[/\\'\{Y\}/g,"Ý"],[/\\TH /g,"Þ"],[/\\ss /g,"ß"],[/\\`\{a\}/g,"à"],[/\\'\{a\}/g,"á"],[/\\\^\{a\}/g,"â"],[/\\~\{a\}/g,"ã"],[/\\"\{a\}/g,"ä"],[/\\aa /g,"å"],[/\\ae /g,"æ"],[/\\c\{c\}/g,"ç"],[/\\`\{e\}/g,"è"],[/\\'\{e\}/g,"é"],[/\\\^\{e\}/g,"ê"],[/\\"\{e\}/g,"ë"],[/\\`\{\\i\}/g,"ì"],[/\\'\{\\i\}/g,"í"],[/\\\^\{\\i\}/g,"î"],[/\\"\{\\i\}/g,"ï"],[/\\dh /g,"ð"],[/\\~\{n\}/g,"ñ"],[/\\`\{o\}/g,"ò"],[/\\'\{o\}/g,"ó"],[/\\\^\{o\}/g,"ô"],[/\\~\{o\}/g,"õ"],[/\\"\{o\}/g,"ö"],[/\\div /g,"÷"],[/\\o /g,"ø"],[/\\`\{u\}/g,"ù"],[/\\'\{u\}/g,"ú"],[/\\\^\{u\}/g,"û"],[/\\"\{u\}/g,"ü"],[/\\'\{y\}/g,"ý"],[/\\th /g,"þ"],[/\\"\{y\}/g,"ÿ"],[/\\=\{A\}/g,"Ā"],[/\\=\{a\}/g,"ā"],[/\\u\{A\}/g,"Ă"],[/\\u\{a\}/g,"ă"],[/\\k\{A\}/g,"Ą"],[/\\k\{a\}/g,"ą"],[/\\'\{C\}/g,"Ć"],[/\\'\{c\}/g,"ć"],[/\\\^\{C\}/g,"Ĉ"],[/\\\^\{c\}/g,"ĉ"],[/\\.\{C\}/g,"Ċ"],[/\\.\{c\}/g,"ċ"],[/\\v\{C\}/g,"Č"],[/\\v\{c\}/g,"č"],[/\\v\{D\}/g,"Ď"],[/\\v\{d\}/g,"ď"],[/\\DJ /g,"Đ"],[/\\dj /g,"đ"],[/\\=\{E\}/g,"Ē"],[/\\=\{e\}/g,"ē"],[/\\u\{E\}/g,"Ĕ"],[/\\u\{e\}/g,"ĕ"],[/\\.\{E\}/g,"Ė"],[/\\.\{e\}/g,"ė"],[/\\k\{E\}/g,"Ę"],[/\\k\{e\}/g,"ę"],[/\\v\{E\}/g,"Ě"],[/\\v\{e\}/g,"ě"],[/\\\^\{G\}/g,"Ĝ"],[/\\\^\{g\}/g,"ĝ"],[/\\u\{G\}/g,"Ğ"],[/\\u\{g\}/g,"ğ"],[/\\.\{G\}/g,"Ġ"],[/\\.\{g\}/g,"ġ"],[/\\c\{G\}/g,"Ģ"],[/\\c\{g\}/g,"ģ"],[/\\\^\{H\}/g,"Ĥ"],[/\\\^\{h\}/g,"ĥ"],[/\\Elzxh /g,"ħ"],[/\\~\{I\}/g,"Ĩ"],[/\\~\{\\i\}/g,"ĩ"],[/\\=\{I\}/g,"Ī"],[/\\=\{\\i\}/g,"ī"],[/\\u\{I\}/g,"Ĭ"],[/\\u\{\\i\}/g,"ĭ"],[/\\k\{I\}/g,"Į"],[/\\k\{i\}/g,"į"],[/\\.\{I\}/g,"İ"],[/\\i /g,"ı"],[/\\\^\{J\}/g,"Ĵ"],[/\\\^\{\\j\}/g,"ĵ"],[/\\c\{K\}/g,"Ķ"],[/\\c\{k\}/g,"ķ"],[/\\'\{L\}/g,"Ĺ"],[/\\'\{l\}/g,"ĺ"],[/\\c\{L\}/g,"Ļ"],[/\\c\{l\}/g,"ļ"],[/\\v\{L\}/g,"Ľ"],[/\\v\{l\}/g,"ľ"],[/\\L /g,"Ł"],[/\\l /g,"ł"],[/\\'\{N\}/g,"Ń"],[/\\'\{n\}/g,"ń"],[/\\c\{N\}/g,"Ņ"],[/\\c\{n\}/g,"ņ"],[/\\v\{N\}/g,"Ň"],[/\\v\{n\}/g,"ň"],[/\\NG /g,"Ŋ"],[/\\ng /g,"ŋ"],[/\\=\{O\}/g,"Ō"],[/\\=\{o\}/g,"ō"],[/\\u\{O\}/g,"Ŏ"],[/\\u\{o\}/g,"ŏ"],[/\\H\{O\}/g,"Ő"],[/\\H\{o\}/g,"ő"],[/\\OE /g,"Œ"],[/\\oe /g,"œ"],[/\\'\{R\}/g,"Ŕ"],[/\\'\{r\}/g,"ŕ"],[/\\c\{R\}/g,"Ŗ"],[/\\c\{r\}/g,"ŗ"],[/\\v\{R\}/g,"Ř"],[/\\v\{r\}/g,"ř"],[/\\'\{S\}/g,"Ś"],[/\\'\{s\}/g,"ś"],[/\\\^\{S\}/g,"Ŝ"],[/\\\^\{s\}/g,"ŝ"],[/\\c\{S\}/g,"Ş"],[/\\c\{s\}/g,"ş"],[/\\v\{S\}/g,"Š"],[/\\v\{s\}/g,"š"],[/\\c\{T\}/g,"Ţ"],[/\\c\{t\}/g,"ţ"],[/\\v\{T\}/g,"Ť"],[/\\v\{t\}/g,"ť"],[/\\~\{U\}/g,"Ũ"],[/\\~\{u\}/g,"ũ"],[/\\=\{U\}/g,"Ū"],[/\\=\{u\}/g,"ū"],[/\\u\{U\}/g,"Ŭ"],[/\\u\{u\}/g,"ŭ"],[/\\r\{U\}/g,"Ů"],[/\\r\{u\}/g,"ů"],[/\\H\{U\}/g,"Ű"],[/\\H\{u\}/g,"ű"],[/\\k\{U\}/g,"Ų"],[/\\k\{u\}/g,"ų"],[/\\\^\{W\}/g,"Ŵ"],[/\\\^\{w\}/g,"ŵ"],[/\\\^\{Y\}/g,"Ŷ"],[/\\\^\{y\}/g,"ŷ"],[/\\"\{Y\}/g,"Ÿ"],[/\\'\{Z\}/g,"Ź"],[/\\'\{z\}/g,"ź"],[/\\.\{Z\}/g,"Ż"],[/\\.\{z\}/g,"ż"],[/\\v\{Z\}/g,"Ž"],[/\\v\{z\}/g,"ž"],[/\\texthvlig /g,"ƕ"],[/\\textnrleg /g,"ƞ"],[/\\eth /g,"ƪ"],[/\\textdoublepipe /g,"ǂ"],[/\\'\{g\}/g,"ǵ"],[/\\Elztrna /g,"ɐ"],[/\\Elztrnsa /g,"ɒ"],[/\\Elzopeno /g,"ɔ"],[/\\Elzrtld /g,"ɖ"],[/\\Elzschwa /g,"ə"],[/\\varepsilon /g,"ɛ"],[/\\Elzpgamma /g,"ɣ"],[/\\Elzpbgam /g,"ɤ"],[/\\Elztrnh /g,"ɥ"],[/\\Elzbtdl /g,"ɬ"],[/\\Elzrtll /g,"ɭ"],[/\\Elztrnm /g,"ɯ"],[/\\Elztrnmlr /g,"ɰ"],[/\\Elzltlmr /g,"ɱ"],[/\\Elzltln /g,"ɲ"],[/\\Elzrtln /g,"ɳ"],[/\\Elzclomeg /g,"ɷ"],[/\\textphi /g,"ɸ"],[/\\Elztrnr /g,"ɹ"],[/\\Elztrnrl /g,"ɺ"],[/\\Elzrttrnr /g,"ɻ"],[/\\Elzrl /g,"ɼ"],[/\\Elzrtlr /g,"ɽ"],[/\\Elzfhr /g,"ɾ"],[/\\Elzrtls /g,"ʂ"],[/\\Elzesh /g,"ʃ"],[/\\Elztrnt /g,"ʇ"],[/\\Elzrtlt /g,"ʈ"],[/\\Elzpupsil /g,"ʊ"],[/\\Elzpscrv /g,"ʋ"],[/\\Elzinvv /g,"ʌ"],[/\\Elzinvw /g,"ʍ"],[/\\Elztrny /g,"ʎ"],[/\\Elzrtlz /g,"ʐ"],[/\\Elzyogh /g,"ʒ"],[/\\Elzglst /g,"ʔ"],[/\\Elzreglst /g,"ʕ"],[/\\Elzinglst /g,"ʖ"],[/\\textturnk /g,"ʞ"],[/\\Elzdyogh /g,"ʤ"],[/\\Elztesh /g,"ʧ"],[/\\textasciicaron /g,"ˇ"],[/\\Elzverts /g,"ˈ"],[/\\Elzverti /g,"ˌ"],[/\\Elzlmrk /g,"ː"],[/\\Elzhlmrk /g,"ˑ"],[/\\Elzsbrhr /g,"˒"],[/\\Elzsblhr /g,"˓"],[/\\Elzrais /g,"˔"],[/\\Elzlow /g,"˕"],[/\\textasciibreve /g,"˘"],[/\\textperiodcentered /g,"˙"],[/\\r\{\}/g,"˚"],[/\\k\{\}/g,"˛"],[/\\texttildelow /g,"˜"],[/\\H\{\}/g,"˝"],[/\\tone\{55\}/g,"˥"],[/\\tone\{44\}/g,"˦"],[/\\tone\{33\}/g,"˧"],[/\\tone\{22\}/g,"˨"],[/\\tone\{11\}/g,"˩"],[/\\cyrchar\\C/g,"̏"],[/\\Elzpalh /g,"̡"],[/\\Elzrh /g,"̢"],[/\\Elzsbbrg /g,"̪"],[/\\Elzxl /g,"̵"],[/\\Elzbar /g,"̶"],[/\\'\{A\}/g,"Ά"],[/\\'\{E\}/g,"Έ"],[/\\'\{H\}/g,"Ή"],[/\\'\{\}\{I\}/g,"Ί"],[/\\'\{\}O/g,"Ό"],[/\\mathrm\{'Y\}/g,"Ύ"],[/\\mathrm\{'\\Omega\}/g,"Ώ"],[/\\acute\{\\ddot\{\\iota\}\}/g,"ΐ"],[/\\Alpha /g,"Α"],[/\\Beta /g,"Β"],[/\\Gamma /g,"Γ"],[/\\Delta /g,"Δ"],[/\\Epsilon /g,"Ε"],[/\\Zeta /g,"Ζ"],[/\\Eta /g,"Η"],[/\\Theta /g,"Θ"],[/\\Iota /g,"Ι"],[/\\Kappa /g,"Κ"],[/\\Lambda /g,"Λ"],[/\\Xi /g,"Ξ"],[/\\Pi /g,"Π"],[/\\Rho /g,"Ρ"],[/\\Sigma /g,"Σ"],[/\\Tau /g,"Τ"],[/\\Upsilon /g,"Υ"],[/\\Phi /g,"Φ"],[/\\Chi /g,"Χ"],[/\\Psi /g,"Ψ"],[/\\Omega /g,"Ω"],[/\\mathrm\{\\ddot\{I\}\}/g,"Ϊ"],[/\\mathrm\{\\ddot\{Y\}\}/g,"Ϋ"],[/\\'\{\$\\alpha\$\}/g,"ά"],[/\\acute\{\\epsilon\}/g,"έ"],[/\\acute\{\\eta\}/g,"ή"],[/\\acute\{\\iota\}/g,"ί"],[/\\acute\{\\ddot\{\\upsilon\}\}/g,"ΰ"],[/\\alpha /g,"α"],[/\\beta /g,"β"],[/\\gamma /g,"γ"],[/\\delta /g,"δ"],[/\\epsilon /g,"ε"],[/\\zeta /g,"ζ"],[/\\eta /g,"η"],[/\\texttheta /g,"θ"],[/\\iota /g,"ι"],[/\\kappa /g,"κ"],[/\\lambda /g,"λ"],[/\\mu /g,"μ"],[/\\nu /g,"ν"],[/\\xi /g,"ξ"],[/\\pi /g,"π"],[/\\rho /g,"ρ"],[/\\varsigma /g,"ς"],[/\\sigma /g,"σ"],[/\\tau /g,"τ"],[/\\upsilon /g,"υ"],[/\\varphi /g,"φ"],[/\\chi /g,"χ"],[/\\psi /g,"ψ"],[/\\omega /g,"ω"],[/\\ddot\{\\iota\}/g,"ϊ"],[/\\ddot\{\\upsilon\}/g,"ϋ"],[/\\'\{o\}/g,"ό"],[/\\acute\{\\upsilon\}/g,"ύ"],[/\\acute\{\\omega\}/g,"ώ"],[/\\Pisymbol\{ppi022\}\{87\}/g,"ϐ"],[/\\textvartheta /g,"ϑ"],[/\\Upsilon /g,"ϒ"],[/\\phi /g,"ϕ"],[/\\varpi /g,"ϖ"],[/\\Stigma /g,"Ϛ"],[/\\Digamma /g,"Ϝ"],[/\\digamma /g,"ϝ"],[/\\Koppa /g,"Ϟ"],[/\\Sampi /g,"Ϡ"],[/\\varkappa /g,"ϰ"],[/\\varrho /g,"ϱ"],[/\\textTheta /g,"ϴ"],[/\\backepsilon /g,"϶"],[/\\cyrchar\\CYRYO /g,"Ё"],[/\\cyrchar\\CYRDJE /g,"Ђ"],[/\\cyrchar\{\\'\\CYRG\}/g,"Ѓ"],[/\\cyrchar\\CYRIE /g,"Є"],[/\\cyrchar\\CYRDZE /g,"Ѕ"],[/\\cyrchar\\CYRII /g,"І"],[/\\cyrchar\\CYRYI /g,"Ї"],[/\\cyrchar\\CYRJE /g,"Ј"],[/\\cyrchar\\CYRLJE /g,"Љ"],[/\\cyrchar\\CYRNJE /g,"Њ"],[/\\cyrchar\\CYRTSHE /g,"Ћ"],[/\\cyrchar\{\\'\\CYRK\}/g,"Ќ"],[/\\cyrchar\\CYRUSHRT /g,"Ў"],[/\\cyrchar\\CYRDZHE /g,"Џ"],[/\\cyrchar\\CYRA /g,"А"],[/\\cyrchar\\CYRB /g,"Б"],[/\\cyrchar\\CYRV /g,"В"],[/\\cyrchar\\CYRG /g,"Г"],[/\\cyrchar\\CYRD /g,"Д"],[/\\cyrchar\\CYRE /g,"Е"],[/\\cyrchar\\CYRZH /g,"Ж"],[/\\cyrchar\\CYRZ /g,"З"],[/\\cyrchar\\CYRI /g,"И"],[/\\cyrchar\\CYRISHRT /g,"Й"],[/\\cyrchar\\CYRK /g,"К"],[/\\cyrchar\\CYRL /g,"Л"],[/\\cyrchar\\CYRM /g,"М"],[/\\cyrchar\\CYRN /g,"Н"],[/\\cyrchar\\CYRO /g,"О"],[/\\cyrchar\\CYRP /g,"П"],[/\\cyrchar\\CYRR /g,"Р"],[/\\cyrchar\\CYRS /g,"С"],[/\\cyrchar\\CYRT /g,"Т"],[/\\cyrchar\\CYRU /g,"У"],[/\\cyrchar\\CYRF /g,"Ф"],[/\\cyrchar\\CYRH /g,"Х"],[/\\cyrchar\\CYRC /g,"Ц"],[/\\cyrchar\\CYRCH /g,"Ч"],[/\\cyrchar\\CYRSH /g,"Ш"],[/\\cyrchar\\CYRSHCH /g,"Щ"],[/\\cyrchar\\CYRHRDSN /g,"Ъ"],[/\\cyrchar\\CYRERY /g,"Ы"],[/\\cyrchar\\CYRSFTSN /g,"Ь"],[/\\cyrchar\\CYREREV /g,"Э"],[/\\cyrchar\\CYRYU /g,"Ю"],[/\\cyrchar\\CYRYA /g,"Я"],[/\\cyrchar\\cyra /g,"а"],[/\\cyrchar\\cyrb /g,"б"],[/\\cyrchar\\cyrv /g,"в"],[/\\cyrchar\\cyrg /g,"г"],[/\\cyrchar\\cyrd /g,"д"],[/\\cyrchar\\cyre /g,"е"],[/\\cyrchar\\cyrzh /g,"ж"],[/\\cyrchar\\cyrz /g,"з"],[/\\cyrchar\\cyri /g,"и"],[/\\cyrchar\\cyrishrt /g,"й"],[/\\cyrchar\\cyrk /g,"к"],[/\\cyrchar\\cyrl /g,"л"],[/\\cyrchar\\cyrm /g,"м"],[/\\cyrchar\\cyrn /g,"н"],[/\\cyrchar\\cyro /g,"о"],[/\\cyrchar\\cyrp /g,"п"],[/\\cyrchar\\cyrr /g,"р"],[/\\cyrchar\\cyrs /g,"с"],[/\\cyrchar\\cyrt /g,"т"],[/\\cyrchar\\cyru /g,"у"],[/\\cyrchar\\cyrf /g,"ф"],[/\\cyrchar\\cyrh /g,"х"],[/\\cyrchar\\cyrc /g,"ц"],[/\\cyrchar\\cyrch /g,"ч"],[/\\cyrchar\\cyrsh /g,"ш"],[/\\cyrchar\\cyrshch /g,"щ"],[/\\cyrchar\\cyrhrdsn /g,"ъ"],[/\\cyrchar\\cyrery /g,"ы"],[/\\cyrchar\\cyrsftsn /g,"ь"],[/\\cyrchar\\cyrerev /g,"э"],[/\\cyrchar\\cyryu /g,"ю"],[/\\cyrchar\\cyrya /g,"я"],[/\\cyrchar\\cyryo /g,"ё"],[/\\cyrchar\\cyrdje /g,"ђ"],[/\\cyrchar\{\\'\\cyrg\}/g,"ѓ"],[/\\cyrchar\\cyrie /g,"є"],[/\\cyrchar\\cyrdze /g,"ѕ"],[/\\cyrchar\\cyrii /g,"і"],[/\\cyrchar\\cyryi /g,"ї"],[/\\cyrchar\\cyrje /g,"ј"],[/\\cyrchar\\cyrlje /g,"љ"],[/\\cyrchar\\cyrnje /g,"њ"],[/\\cyrchar\\cyrtshe /g,"ћ"],[/\\cyrchar\{\\'\\cyrk\}/g,"ќ"],[/\\cyrchar\\cyrushrt /g,"ў"],[/\\cyrchar\\cyrdzhe /g,"џ"],[/\\cyrchar\\CYROMEGA /g,"Ѡ"],[/\\cyrchar\\cyromega /g,"ѡ"],[/\\cyrchar\\CYRYAT /g,"Ѣ"],[/\\cyrchar\\CYRIOTE /g,"Ѥ"],[/\\cyrchar\\cyriote /g,"ѥ"],[/\\cyrchar\\CYRLYUS /g,"Ѧ"],[/\\cyrchar\\cyrlyus /g,"ѧ"],[/\\cyrchar\\CYRIOTLYUS /g,"Ѩ"],[/\\cyrchar\\cyriotlyus /g,"ѩ"],[/\\cyrchar\\CYRBYUS /g,"Ѫ"],[/\\cyrchar\\CYRIOTBYUS /g,"Ѭ"],[/\\cyrchar\\cyriotbyus /g,"ѭ"],[/\\cyrchar\\CYRKSI /g,"Ѯ"],[/\\cyrchar\\cyrksi /g,"ѯ"],[/\\cyrchar\\CYRPSI /g,"Ѱ"],[/\\cyrchar\\cyrpsi /g,"ѱ"],[/\\cyrchar\\CYRFITA /g,"Ѳ"],[/\\cyrchar\\CYRIZH /g,"Ѵ"],[/\\cyrchar\\CYRUK /g,"Ѹ"],[/\\cyrchar\\cyruk /g,"ѹ"],[/\\cyrchar\\CYROMEGARND /g,"Ѻ"],[/\\cyrchar\\cyromegarnd /g,"ѻ"],[/\\cyrchar\\CYROMEGATITLO /g,"Ѽ"],[/\\cyrchar\\cyromegatitlo /g,"ѽ"],[/\\cyrchar\\CYROT /g,"Ѿ"],[/\\cyrchar\\cyrot /g,"ѿ"],[/\\cyrchar\\CYRKOPPA /g,"Ҁ"],[/\\cyrchar\\cyrkoppa /g,"ҁ"],[/\\cyrchar\\cyrthousands /g,"҂"],[/\\cyrchar\\cyrhundredthousands /g,"҈"],[/\\cyrchar\\cyrmillions /g,"҉"],[/\\cyrchar\\CYRSEMISFTSN /g,"Ҍ"],[/\\cyrchar\\cyrsemisftsn /g,"ҍ"],[/\\cyrchar\\CYRRTICK /g,"Ҏ"],[/\\cyrchar\\cyrrtick /g,"ҏ"],[/\\cyrchar\\CYRGUP /g,"Ґ"],[/\\cyrchar\\cyrgup /g,"ґ"],[/\\cyrchar\\CYRGHCRS /g,"Ғ"],[/\\cyrchar\\cyrghcrs /g,"ғ"],[/\\cyrchar\\CYRGHK /g,"Ҕ"],[/\\cyrchar\\cyrghk /g,"ҕ"],[/\\cyrchar\\CYRZHDSC /g,"Җ"],[/\\cyrchar\\cyrzhdsc /g,"җ"],[/\\cyrchar\\CYRZDSC /g,"Ҙ"],[/\\cyrchar\\cyrzdsc /g,"ҙ"],[/\\cyrchar\\CYRKDSC /g,"Қ"],[/\\cyrchar\\cyrkdsc /g,"қ"],[/\\cyrchar\\CYRKVCRS /g,"Ҝ"],[/\\cyrchar\\cyrkvcrs /g,"ҝ"],[/\\cyrchar\\CYRKHCRS /g,"Ҟ"],[/\\cyrchar\\cyrkhcrs /g,"ҟ"],[/\\cyrchar\\CYRKBEAK /g,"Ҡ"],[/\\cyrchar\\cyrkbeak /g,"ҡ"],[/\\cyrchar\\CYRNDSC /g,"Ң"],[/\\cyrchar\\cyrndsc /g,"ң"],[/\\cyrchar\\CYRNG /g,"Ҥ"],[/\\cyrchar\\cyrng /g,"ҥ"],[/\\cyrchar\\CYRPHK /g,"Ҧ"],[/\\cyrchar\\cyrphk /g,"ҧ"],[/\\cyrchar\\CYRABHHA /g,"Ҩ"],[/\\cyrchar\\cyrabhha /g,"ҩ"],[/\\cyrchar\\CYRSDSC /g,"Ҫ"],[/\\cyrchar\\cyrsdsc /g,"ҫ"],[/\\cyrchar\\CYRTDSC /g,"Ҭ"],[/\\cyrchar\\cyrtdsc /g,"ҭ"],[/\\cyrchar\\CYRY /g,"Ү"],[/\\cyrchar\\cyry /g,"ү"],[/\\cyrchar\\CYRYHCRS /g,"Ұ"],[/\\cyrchar\\cyryhcrs /g,"ұ"],[/\\cyrchar\\CYRHDSC /g,"Ҳ"],[/\\cyrchar\\cyrhdsc /g,"ҳ"],[/\\cyrchar\\CYRTETSE /g,"Ҵ"],[/\\cyrchar\\cyrtetse /g,"ҵ"],[/\\cyrchar\\CYRCHRDSC /g,"Ҷ"],[/\\cyrchar\\cyrchrdsc /g,"ҷ"],[/\\cyrchar\\CYRCHVCRS /g,"Ҹ"],[/\\cyrchar\\cyrchvcrs /g,"ҹ"],[/\\cyrchar\\CYRSHHA /g,"Һ"],[/\\cyrchar\\cyrshha /g,"һ"],[/\\cyrchar\\CYRABHCH /g,"Ҽ"],[/\\cyrchar\\cyrabhch /g,"ҽ"],[/\\cyrchar\\CYRABHCHDSC /g,"Ҿ"],[/\\cyrchar\\cyrabhchdsc /g,"ҿ"],[/\\cyrchar\\CYRpalochka /g,"Ӏ"],[/\\cyrchar\\CYRKHK /g,"Ӄ"],[/\\cyrchar\\cyrkhk /g,"ӄ"],[/\\cyrchar\\CYRNHK /g,"Ӈ"],[/\\cyrchar\\cyrnhk /g,"ӈ"],[/\\cyrchar\\CYRCHLDSC /g,"Ӌ"],[/\\cyrchar\\cyrchldsc /g,"ӌ"],[/\\cyrchar\\CYRAE /g,"Ӕ"],[/\\cyrchar\\cyrae /g,"ӕ"],[/\\cyrchar\\CYRSCHWA /g,"Ә"],[/\\cyrchar\\cyrschwa /g,"ә"],[/\\cyrchar\\CYRABHDZE /g,"Ӡ"],[/\\cyrchar\\cyrabhdze /g,"ӡ"],[/\\cyrchar\\CYROTLD /g,"Ө"],[/\\cyrchar\\cyrotld /g,"ө"],[/\\hspace\{0.6em\}/g," "],[/\\hspace\{1em\}/g," "],[/\\hspace\{0.33em\}/g," "],[/\\hspace\{0.25em\}/g," "],[/\\hspace\{0.166em\}/g," "],[/\\hphantom\{0\}/g," "],[/\\hphantom\{,\}/g," "],[/\\hspace\{0.167em\}/g," "],[/\\mkern1mu /g," "],[/\\textendash /g,"–"],[/\\textemdash /g,"—"],[/\\rule\{1em\}\{1pt\}/g,"―"],[/\\Vert /g,"‖"],[/\\Elzreapos /g,"‛"],[/\\textquotedblleft /g,"“"],[/\\textquotedblright /g,"”"],[/\\textdagger /g,"†"],[/\\textdaggerdbl /g,"‡"],[/\\textbullet /g,"•"],[/\\ldots /g,"…"],[/\\textperthousand /g,"‰"],[/\\textpertenthousand /g,"‱"],[/\\backprime /g,"‵"],[/\\guilsinglleft /g,"‹"],[/\\guilsinglright /g,"›"],[/\\mkern4mu /g," "],[/\\nolinebreak /g,""],[/\\ensuremath\{\\Elzpes\}/g,"₧"],[/\\mbox\{\\texteuro\} /g,"€"],[/\\dddot /g,"⃛"],[/\\ddddot /g,"⃜"],[/\\mathbb\{C\}/g,"ℂ"],[/\\mathscr\{g\}/g,"ℊ"],[/\\mathscr\{H\}/g,"ℋ"],[/\\mathfrak\{H\}/g,"ℌ"],[/\\mathbb\{H\}/g,"ℍ"],[/\\hslash /g,"ℏ"],[/\\mathscr\{I\}/g,"ℐ"],[/\\mathfrak\{I\}/g,"ℑ"],[/\\mathscr\{L\}/g,"ℒ"],[/\\mathscr\{l\}/g,"ℓ"],[/\\mathbb\{N\}/g,"ℕ"],[/\\cyrchar\\textnumero /g,"№"],[/\\wp /g,"℘"],[/\\mathbb\{P\}/g,"ℙ"],[/\\mathbb\{Q\}/g,"ℚ"],[/\\mathscr\{R\}/g,"ℛ"],[/\\mathfrak\{R\}/g,"ℜ"],[/\\mathbb\{R\}/g,"ℝ"],[/\\Elzxrat /g,"℞"],[/\\texttrademark /g,"™"],[/\\mathbb\{Z\}/g,"ℤ"],[/\\Omega /g,"Ω"],[/\\mho /g,"℧"],[/\\mathfrak\{Z\}/g,"ℨ"],[/\\ElsevierGlyph\{2129\}/g,"℩"],[/\\AA /g,"Å"],[/\\mathscr\{B\}/g,"ℬ"],[/\\mathfrak\{C\}/g,"ℭ"],[/\\mathscr\{e\}/g,"ℯ"],[/\\mathscr\{E\}/g,"ℰ"],[/\\mathscr\{F\}/g,"ℱ"],[/\\mathscr\{M\}/g,"ℳ"],[/\\mathscr\{o\}/g,"ℴ"],[/\\aleph /g,"ℵ"],[/\\beth /g,"ℶ"],[/\\gimel /g,"ℷ"],[/\\daleth /g,"ℸ"],[/\\textfrac\{1\}\{3\}/g,"⅓"],[/\\textfrac\{2\}\{3\}/g,"⅔"],[/\\textfrac\{1\}\{5\}/g,"⅕"],[/\\textfrac\{2\}\{5\}/g,"⅖"],[/\\textfrac\{3\}\{5\}/g,"⅗"],[/\\textfrac\{4\}\{5\}/g,"⅘"],[/\\textfrac\{1\}\{6\}/g,"⅙"],[/\\textfrac\{5\}\{6\}/g,"⅚"],[/\\textfrac\{1\}\{8\}/g,"⅛"],[/\\textfrac\{3\}\{8\}/g,"⅜"],[/\\textfrac\{5\}\{8\}/g,"⅝"],[/\\textfrac\{7\}\{8\}/g,"⅞"],[/\\leftarrow /g,"←"],[/\\uparrow /g,"↑"],[/\\rightarrow /g,"→"],[/\\downarrow /g,"↓"],[/\\leftrightarrow /g,"↔"],[/\\updownarrow /g,"↕"],[/\\nwarrow /g,"↖"],[/\\nearrow /g,"↗"],[/\\searrow /g,"↘"],[/\\swarrow /g,"↙"],[/\\nleftarrow /g,"↚"],[/\\nrightarrow /g,"↛"],[/\\arrowwaveright /g,"↜"],[/\\arrowwaveright /g,"↝"],[/\\twoheadleftarrow /g,"↞"],[/\\twoheadrightarrow /g,"↠"],[/\\leftarrowtail /g,"↢"],[/\\rightarrowtail /g,"↣"],[/\\mapsto /g,"↦"],[/\\hookleftarrow /g,"↩"],[/\\hookrightarrow /g,"↪"],[/\\looparrowleft /g,"↫"],[/\\looparrowright /g,"↬"],[/\\leftrightsquigarrow /g,"↭"],[/\\nleftrightarrow /g,"↮"],[/\\Lsh /g,"↰"],[/\\Rsh /g,"↱"],[/\\ElsevierGlyph\{21B3\}/g,"↳"],[/\\curvearrowleft /g,"↶"],[/\\curvearrowright /g,"↷"],[/\\circlearrowleft /g,"↺"],[/\\circlearrowright /g,"↻"],[/\\leftharpoonup /g,"↼"],[/\\leftharpoondown /g,"↽"],[/\\upharpoonright /g,"↾"],[/\\upharpoonleft /g,"↿"],[/\\rightharpoonup /g,"⇀"],[/\\rightharpoondown /g,"⇁"],[/\\downharpoonright /g,"⇂"],[/\\downharpoonleft /g,"⇃"],[/\\rightleftarrows /g,"⇄"],[/\\dblarrowupdown /g,"⇅"],[/\\leftrightarrows /g,"⇆"],[/\\leftleftarrows /g,"⇇"],[/\\upuparrows /g,"⇈"],[/\\rightrightarrows /g,"⇉"],[/\\downdownarrows /g,"⇊"],[/\\leftrightharpoons /g,"⇋"],[/\\rightleftharpoons /g,"⇌"],[/\\nLeftarrow /g,"⇍"],[/\\nLeftrightarrow /g,"⇎"],[/\\nRightarrow /g,"⇏"],[/\\Leftarrow /g,"⇐"],[/\\Uparrow /g,"⇑"],[/\\Rightarrow /g,"⇒"],[/\\Downarrow /g,"⇓"],[/\\Leftrightarrow /g,"⇔"],[/\\Updownarrow /g,"⇕"],[/\\Lleftarrow /g,"⇚"],[/\\Rrightarrow /g,"⇛"],[/\\rightsquigarrow /g,"⇝"],[/\\DownArrowUpArrow /g,"⇵"],[/\\forall /g,"∀"],[/\\complement /g,"∁"],[/\\partial /g,"∂"],[/\\exists /g,"∃"],[/\\nexists /g,"∄"],[/\\varnothing /g,"∅"],[/\\nabla /g,"∇"],[/\\in /g,"∈"],[/\\not\\in /g,"∉"],[/\\ni /g,"∋"],[/\\not\\ni /g,"∌"],[/\\prod /g,"∏"],[/\\coprod /g,"∐"],[/\\sum /g,"∑"],[/\\mp /g,"∓"],[/\\dotplus /g,"∔"],[/\\setminus /g,"∖"],[/\\circ /g,"∘"],[/\\bullet /g,"∙"],[/\\surd /g,"√"],[/\\propto /g,"∝"],[/\\infty /g,"∞"],[/\\rightangle /g,"∟"],[/\\angle /g,"∠"],[/\\measuredangle /g,"∡"],[/\\sphericalangle /g,"∢"],[/\\mid /g,"∣"],[/\\nmid /g,"∤"],[/\\parallel /g,"∥"],[/\\nparallel /g,"∦"],[/\\wedge /g,"∧"],[/\\vee /g,"∨"],[/\\cap /g,"∩"],[/\\cup /g,"∪"],[/\\int /g,"∫"],[/\\int\\!\\int /g,"∬"],[/\\int\\!\\int\\!\\int /g,"∭"],[/\\oint /g,"∮"],[/\\surfintegral /g,"∯"],[/\\volintegral /g,"∰"],[/\\clwintegral /g,"∱"],[/\\ElsevierGlyph\{2232\}/g,"∲"],[/\\ElsevierGlyph\{2233\}/g,"∳"],[/\\therefore /g,"∴"],[/\\because /g,"∵"],[/\\Colon /g,"∷"],[/\\ElsevierGlyph\{2238\}/g,"∸"],[/\\mathbin\{\{:\}\\!\\!\{\-\}\\!\\!\{:\}\}/g,"∺"],[/\\homothetic /g,"∻"],[/\\sim /g,"∼"],[/\\backsim /g,"∽"],[/\\lazysinv /g,"∾"],[/\\wr /g,"≀"],[/\\not\\sim /g,"≁"],[/\\ElsevierGlyph\{2242\}/g,"≂"],[/\\NotEqualTilde /g,"≂-00338"],[/\\simeq /g,"≃"],[/\\not\\simeq /g,"≄"],[/\\cong /g,"≅"],[/\\approxnotequal /g,"≆"],[/\\not\\cong /g,"≇"],[/\\approx /g,"≈"],[/\\not\\approx /g,"≉"],[/\\approxeq /g,"≊"],[/\\tildetrpl /g,"≋"],[/\\not\\apid /g,"≋-00338"],[/\\allequal /g,"≌"],[/\\asymp /g,"≍"],[/\\Bumpeq /g,"≎"],[/\\NotHumpDownHump /g,"≎-00338"],[/\\bumpeq /g,"≏"],[/\\NotHumpEqual /g,"≏-00338"],[/\\doteq /g,"≐"],[/\\not\\doteq/g,"≐-00338"],[/\\doteqdot /g,"≑"],[/\\fallingdotseq /g,"≒"],[/\\risingdotseq /g,"≓"],[/\\eqcirc /g,"≖"],[/\\circeq /g,"≗"],[/\\estimates /g,"≙"],[/\\ElsevierGlyph\{225A\}/g,"≚"],[/\\starequal /g,"≛"],[/\\triangleq /g,"≜"],[/\\ElsevierGlyph\{225F\}/g,"≟"],[/\\not =/g,"≠"],[/\\equiv /g,"≡"],[/\\not\\equiv /g,"≢"],[/\\leq /g,"≤"],[/\\geq /g,"≥"],[/\\leqq /g,"≦"],[/\\geqq /g,"≧"],[/\\lneqq /g,"≨"],[/\\lvertneqq /g,"≨-0FE00"],[/\\gneqq /g,"≩"],[/\\gvertneqq /g,"≩-0FE00"],[/\\ll /g,"≪"],[/\\NotLessLess /g,"≪-00338"],[/\\gg /g,"≫"],[/\\NotGreaterGreater /g,"≫-00338"],[/\\between /g,"≬"],[/\\not\\kern\-0.3em\\times /g,"≭"],[/\\not/g,"≯"],[/\\not\\leq /g,"≰"],[/\\not\\geq /g,"≱"],[/\\lessequivlnt /g,"≲"],[/\\greaterequivlnt /g,"≳"],[/\\ElsevierGlyph\{2274\}/g,"≴"],[/\\ElsevierGlyph\{2275\}/g,"≵"],[/\\lessgtr /g,"≶"],[/\\gtrless /g,"≷"],[/\\notlessgreater /g,"≸"],[/\\notgreaterless /g,"≹"],[/\\prec /g,"≺"],[/\\succ /g,"≻"],[/\\preccurlyeq /g,"≼"],[/\\succcurlyeq /g,"≽"],[/\\precapprox /g,"≾"],[/\\NotPrecedesTilde /g,"≾-00338"],[/\\succapprox /g,"≿"],[/\\NotSucceedsTilde /g,"≿-00338"],[/\\not\\prec /g,"⊀"],[/\\not\\succ /g,"⊁"],[/\\subset /g,"⊂"],[/\\supset /g,"⊃"],[/\\not\\subset /g,"⊄"],[/\\not\\supset /g,"⊅"],[/\\subseteq /g,"⊆"],[/\\supseteq /g,"⊇"],[/\\not\\subseteq /g,"⊈"],[/\\not\\supseteq /g,"⊉"],[/\\subsetneq /g,"⊊"],[/\\varsubsetneqq /g,"⊊-0FE00"],[/\\supsetneq /g,"⊋"],[/\\varsupsetneq /g,"⊋-0FE00"],[/\\uplus /g,"⊎"],[/\\sqsubset /g,"⊏"],[/\\NotSquareSubset /g,"⊏-00338"],[/\\sqsupset /g,"⊐"],[/\\NotSquareSuperset /g,"⊐-00338"],[/\\sqsubseteq /g,"⊑"],[/\\sqsupseteq /g,"⊒"],[/\\sqcap /g,"⊓"],[/\\sqcup /g,"⊔"],[/\\oplus /g,"⊕"],[/\\ominus /g,"⊖"],[/\\otimes /g,"⊗"],[/\\oslash /g,"⊘"],[/\\odot /g,"⊙"],[/\\circledcirc /g,"⊚"],[/\\circledast /g,"⊛"],[/\\circleddash /g,"⊝"],[/\\boxplus /g,"⊞"],[/\\boxminus /g,"⊟"],[/\\boxtimes /g,"⊠"],[/\\boxdot /g,"⊡"],[/\\vdash /g,"⊢"],[/\\dashv /g,"⊣"],[/\\top /g,"⊤"],[/\\perp /g,"⊥"],[/\\truestate /g,"⊧"],[/\\forcesextra /g,"⊨"],[/\\Vdash /g,"⊩"],[/\\Vvdash /g,"⊪"],[/\\VDash /g,"⊫"],[/\\nvdash /g,"⊬"],[/\\nvDash /g,"⊭"],[/\\nVdash /g,"⊮"],[/\\nVDash /g,"⊯"],[/\\vartriangleleft /g,"⊲"],[/\\vartriangleright /g,"⊳"],[/\\trianglelefteq /g,"⊴"],[/\\trianglerighteq /g,"⊵"],[/\\original /g,"⊶"],[/\\image /g,"⊷"],[/\\multimap /g,"⊸"],[/\\hermitconjmatrix /g,"⊹"],[/\\intercal /g,"⊺"],[/\\veebar /g,"⊻"],[/\\rightanglearc /g,"⊾"],[/\\ElsevierGlyph\{22C0\}/g,"⋀"],[/\\ElsevierGlyph\{22C1\}/g,"⋁"],[/\\bigcap /g,"⋂"],[/\\bigcup /g,"⋃"],[/\\diamond /g,"⋄"],[/\\cdot /g,"⋅"],[/\\star /g,"⋆"],[/\\divideontimes /g,"⋇"],[/\\bowtie /g,"⋈"],[/\\ltimes /g,"⋉"],[/\\rtimes /g,"⋊"],[/\\leftthreetimes /g,"⋋"],[/\\rightthreetimes /g,"⋌"],[/\\backsimeq /g,"⋍"],[/\\curlyvee /g,"⋎"],[/\\curlywedge /g,"⋏"],[/\\Subset /g,"⋐"],[/\\Supset /g,"⋑"],[/\\Cap /g,"⋒"],[/\\Cup /g,"⋓"],[/\\pitchfork /g,"⋔"],[/\\lessdot /g,"⋖"],[/\\gtrdot /g,"⋗"],[/\\verymuchless /g,"⋘"],[/\\verymuchgreater /g,"⋙"],[/\\lesseqgtr /g,"⋚"],[/\\gtreqless /g,"⋛"],[/\\curlyeqprec /g,"⋞"],[/\\curlyeqsucc /g,"⋟"],[/\\not\\sqsubseteq /g,"⋢"],[/\\not\\sqsupseteq /g,"⋣"],[/\\Elzsqspne /g,"⋥"],[/\\lnsim /g,"⋦"],[/\\gnsim /g,"⋧"],[/\\precedesnotsimilar /g,"⋨"],[/\\succnsim /g,"⋩"],[/\\ntriangleleft /g,"⋪"],[/\\ntriangleright /g,"⋫"],[/\\ntrianglelefteq /g,"⋬"],[/\\ntrianglerighteq /g,"⋭"],[/\\vdots /g,"⋮"],[/\\cdots /g,"⋯"],[/\\upslopeellipsis /g,"⋰"],[/\\downslopeellipsis /g,"⋱"],[/\\barwedge /g,"⌅"],[/\\perspcorrespond /g,"⌆"],[/\\lceil /g,"⌈"],[/\\rceil /g,"⌉"],[/\\lfloor /g,"⌊"],[/\\rfloor /g,"⌋"],[/\\recorder /g,"⌕"],[/\\mathchar"2208/g,"⌖"],[/\\ulcorner /g,"⌜"],[/\\urcorner /g,"⌝"],[/\\llcorner /g,"⌞"],[/\\lrcorner /g,"⌟"],[/\\frown /g,"⌢"],[/\\smile /g,"⌣"],[/\\langle /g,"〈"],[/\\rangle /g,"〉"],[/\\ElsevierGlyph\{E838\}/g,"⌽"],[/\\Elzdlcorn /g,"⎣"],[/\\lmoustache /g,"⎰"],[/\\rmoustache /g,"⎱"],[/\\textvisiblespace /g,"␣"],[/\\ding\{172\}/g,"①"],[/\\ding\{173\}/g,"②"],[/\\ding\{174\}/g,"③"],[/\\ding\{175\}/g,"④"],[/\\ding\{176\}/g,"⑤"],[/\\ding\{177\}/g,"⑥"],[/\\ding\{178\}/g,"⑦"],[/\\ding\{179\}/g,"⑧"],[/\\ding\{180\}/g,"⑨"],[/\\ding\{181\}/g,"⑩"],[/\\circledS /g,"Ⓢ"],[/\\Elzdshfnc /g,"┆"],[/\\Elzsqfnw /g,"┙"],[/\\diagup /g,"╱"],[/\\ding\{110\}/g,"■"],[/\\square /g,"□"],[/\\blacksquare /g,"▪"],[/\\fbox\{~~\}/g,"▭"],[/\\Elzvrecto /g,"▯"],[/\\ElsevierGlyph\{E381\}/g,"▱"],[/\\ding\{115\}/g,"▲"],[/\\bigtriangleup /g,"△"],[/\\blacktriangle /g,"▴"],[/\\vartriangle /g,"▵"],[/\\blacktriangleright /g,"▸"],[/\\triangleright /g,"▹"],[/\\ding\{116\}/g,"▼"],[/\\bigtriangledown /g,"▽"],[/\\blacktriangledown /g,"▾"],[/\\triangledown /g,"▿"],[/\\blacktriangleleft /g,"◂"],[/\\triangleleft /g,"◃"],[/\\ding\{117\}/g,"◆"],[/\\lozenge /g,"◊"],[/\\bigcirc /g,"○"],[/\\ding\{108\}/g,"●"],[/\\Elzcirfl /g,"◐"],[/\\Elzcirfr /g,"◑"],[/\\Elzcirfb /g,"◒"],[/\\ding\{119\}/g,"◗"],[/\\Elzrvbull /g,"◘"],[/\\Elzsqfl /g,"◧"],[/\\Elzsqfr /g,"◨"],[/\\Elzsqfse /g,"◪"],[/\\bigcirc /g,"◯"],[/\\ding\{72\}/g,"★"],[/\\ding\{73\}/g,"☆"],[/\\ding\{37\}/g,"☎"],[/\\ding\{42\}/g,"☛"],[/\\ding\{43\}/g,"☞"],[/\\rightmoon /g,"☾"],[/\\mercury /g,"☿"],[/\\venus /g,"♀"],[/\\male /g,"♂"],[/\\jupiter /g,"♃"],[/\\saturn /g,"♄"],[/\\uranus /g,"♅"],[/\\neptune /g,"♆"],[/\\pluto /g,"♇"],[/\\aries /g,"♈"],[/\\taurus /g,"♉"],[/\\gemini /g,"♊"],[/\\cancer /g,"♋"],[/\\leo /g,"♌"],[/\\virgo /g,"♍"],[/\\libra /g,"♎"],[/\\scorpio /g,"♏"],[/\\sagittarius /g,"♐"],[/\\capricornus /g,"♑"],[/\\aquarius /g,"♒"],[/\\pisces /g,"♓"],[/\\ding\{171\}/g,"♠"],[/\\diamond /g,"♢"],[/\\ding\{168\}/g,"♣"],[/\\ding\{170\}/g,"♥"],[/\\ding\{169\}/g,"♦"],[/\\quarternote /g,"♩"],[/\\eighthnote /g,"♪"],[/\\flat /g,"♭"],[/\\natural /g,"♮"],[/\\sharp /g,"♯"],[/\\ding\{33\}/g,"✁"],[/\\ding\{34\}/g,"✂"],[/\\ding\{35\}/g,"✃"],[/\\ding\{36\}/g,"✄"],[/\\ding\{38\}/g,"✆"],[/\\ding\{39\}/g,"✇"],[/\\ding\{40\}/g,"✈"],[/\\ding\{41\}/g,"✉"],[/\\ding\{44\}/g,"✌"],[/\\ding\{45\}/g,"✍"],[/\\ding\{46\}/g,"✎"],[/\\ding\{47\}/g,"✏"],[/\\ding\{48\}/g,"✐"],[/\\ding\{49\}/g,"✑"],[/\\ding\{50\}/g,"✒"],[/\\ding\{51\}/g,"✓"],[/\\ding\{52\}/g,"✔"],[/\\ding\{53\}/g,"✕"],[/\\ding\{54\}/g,"✖"],[/\\ding\{55\}/g,"✗"],[/\\ding\{56\}/g,"✘"],[/\\ding\{57\}/g,"✙"],[/\\ding\{58\}/g,"✚"],[/\\ding\{59\}/g,"✛"],[/\\ding\{60\}/g,"✜"],[/\\ding\{61\}/g,"✝"],[/\\ding\{62\}/g,"✞"],[/\\ding\{63\}/g,"✟"],[/\\ding\{64\}/g,"✠"],[/\\ding\{65\}/g,"✡"],[/\\ding\{66\}/g,"✢"],[/\\ding\{67\}/g,"✣"],[/\\ding\{68\}/g,"✤"],[/\\ding\{69\}/g,"✥"],[/\\ding\{70\}/g,"✦"],[/\\ding\{71\}/g,"✧"],[/\\ding\{73\}/g,"✩"],[/\\ding\{74\}/g,"✪"],[/\\ding\{75\}/g,"✫"],[/\\ding\{76\}/g,"✬"],[/\\ding\{77\}/g,"✭"],[/\\ding\{78\}/g,"✮"],[/\\ding\{79\}/g,"✯"],[/\\ding\{80\}/g,"✰"],[/\\ding\{81\}/g,"✱"],[/\\ding\{82\}/g,"✲"],[/\\ding\{83\}/g,"✳"],[/\\ding\{84\}/g,"✴"],[/\\ding\{85\}/g,"✵"],[/\\ding\{86\}/g,"✶"],[/\\ding\{87\}/g,"✷"],[/\\ding\{88\}/g,"✸"],[/\\ding\{89\}/g,"✹"],[/\\ding\{90\}/g,"✺"],[/\\ding\{91\}/g,"✻"],[/\\ding\{92\}/g,"✼"],[/\\ding\{93\}/g,"✽"],[/\\ding\{94\}/g,"✾"],[/\\ding\{95\}/g,"✿"],[/\\ding\{96\}/g,"❀"],[/\\ding\{97\}/g,"❁"],[/\\ding\{98\}/g,"❂"],[/\\ding\{99\}/g,"❃"],[/\\ding\{100\}/g,"❄"],[/\\ding\{101\}/g,"❅"],[/\\ding\{102\}/g,"❆"],[/\\ding\{103\}/g,"❇"],[/\\ding\{104\}/g,"❈"],[/\\ding\{105\}/g,"❉"],[/\\ding\{106\}/g,"❊"],[/\\ding\{107\}/g,"❋"],[/\\ding\{109\}/g,"❍"],[/\\ding\{111\}/g,"❏"],[/\\ding\{112\}/g,"❐"],[/\\ding\{113\}/g,"❑"],[/\\ding\{114\}/g,"❒"],[/\\ding\{118\}/g,"❖"],[/\\ding\{120\}/g,"❘"],[/\\ding\{121\}/g,"❙"],[/\\ding\{122\}/g,"❚"],[/\\ding\{123\}/g,"❛"],[/\\ding\{124\}/g,"❜"],[/\\ding\{125\}/g,"❝"],[/\\ding\{126\}/g,"❞"],[/\\ding\{161\}/g,"❡"],[/\\ding\{162\}/g,"❢"],[/\\ding\{163\}/g,"❣"],[/\\ding\{164\}/g,"❤"],[/\\ding\{165\}/g,"❥"],[/\\ding\{166\}/g,"❦"],[/\\ding\{167\}/g,"❧"],[/\\ding\{182\}/g,"❶"],[/\\ding\{183\}/g,"❷"],[/\\ding\{184\}/g,"❸"],[/\\ding\{185\}/g,"❹"],[/\\ding\{186\}/g,"❺"],[/\\ding\{187\}/g,"❻"],[/\\ding\{188\}/g,"❼"],[/\\ding\{189\}/g,"❽"],[/\\ding\{190\}/g,"❾"],[/\\ding\{191\}/g,"❿"],[/\\ding\{192\}/g,"➀"],[/\\ding\{193\}/g,"➁"],[/\\ding\{194\}/g,"➂"],[/\\ding\{195\}/g,"➃"],[/\\ding\{196\}/g,"➄"],[/\\ding\{197\}/g,"➅"],[/\\ding\{198\}/g,"➆"],[/\\ding\{199\}/g,"➇"],[/\\ding\{200\}/g,"➈"],[/\\ding\{201\}/g,"➉"],[/\\ding\{202\}/g,"➊"],[/\\ding\{203\}/g,"➋"],[/\\ding\{204\}/g,"➌"],[/\\ding\{205\}/g,"➍"],[/\\ding\{206\}/g,"➎"],[/\\ding\{207\}/g,"➏"],[/\\ding\{208\}/g,"➐"],[/\\ding\{209\}/g,"➑"],[/\\ding\{210\}/g,"➒"],[/\\ding\{211\}/g,"➓"],[/\\ding\{212\}/g,"➔"],[/\\ding\{216\}/g,"➘"],[/\\ding\{217\}/g,"➙"],[/\\ding\{218\}/g,"➚"],[/\\ding\{219\}/g,"➛"],[/\\ding\{220\}/g,"➜"],[/\\ding\{221\}/g,"➝"],[/\\ding\{222\}/g,"➞"],[/\\ding\{223\}/g,"➟"],[/\\ding\{224\}/g,"➠"],[/\\ding\{225\}/g,"➡"],[/\\ding\{226\}/g,"➢"],[/\\ding\{227\}/g,"➣"],[/\\ding\{228\}/g,"➤"],[/\\ding\{229\}/g,"➥"],[/\\ding\{230\}/g,"➦"],[/\\ding\{231\}/g,"➧"],[/\\ding\{232\}/g,"➨"],[/\\ding\{233\}/g,"➩"],[/\\ding\{234\}/g,"➪"],[/\\ding\{235\}/g,"➫"],[/\\ding\{236\}/g,"➬"],[/\\ding\{237\}/g,"➭"],[/\\ding\{238\}/g,"➮"],[/\\ding\{239\}/g,"➯"],[/\\ding\{241\}/g,"➱"],[/\\ding\{242\}/g,"➲"],[/\\ding\{243\}/g,"➳"],[/\\ding\{244\}/g,"➴"],[/\\ding\{245\}/g,"➵"],[/\\ding\{246\}/g,"➶"],[/\\ding\{247\}/g,"➷"],[/\\ding\{248\}/g,"➸"],[/\\ding\{249\}/g,"➹"],[/\\ding\{250\}/g,"➺"],[/\\ding\{251\}/g,"➻"],[/\\ding\{252\}/g,"➼"],[/\\ding\{253\}/g,"➽"],[/\\ding\{254\}/g,"➾"],[/\\longleftarrow /g,"⟵"],[/\\longrightarrow /g,"⟶"],[/\\longleftrightarrow /g,"⟷"],[/\\Longleftarrow /g,"⟸"],[/\\Longrightarrow /g,"⟹"],[/\\Longleftrightarrow /g,"⟺"],[/\\longmapsto /g,"⟼"],[/\\sim\\joinrel\\leadsto/g,"⟿"],[/\\ElsevierGlyph\{E212\}/g,"⤅"],[/\\UpArrowBar /g,"⤒"],[/\\DownArrowBar /g,"⤓"],[/\\ElsevierGlyph\{E20C\}/g,"⤣"],[/\\ElsevierGlyph\{E20D\}/g,"⤤"],[/\\ElsevierGlyph\{E20B\}/g,"⤥"],[/\\ElsevierGlyph\{E20A\}/g,"⤦"],[/\\ElsevierGlyph\{E211\}/g,"⤧"],[/\\ElsevierGlyph\{E20E\}/g,"⤨"],[/\\ElsevierGlyph\{E20F\}/g,"⤩"],[/\\ElsevierGlyph\{E210\}/g,"⤪"],[/\\ElsevierGlyph\{E21C\}/g,"⤳"],[/\\ElsevierGlyph\{E21D\}/g,"⤳-00338"],[/\\ElsevierGlyph\{E21A\}/g,"⤶"],[/\\ElsevierGlyph\{E219\}/g,"⤷"],[/\\Elolarr /g,"⥀"],[/\\Elorarr /g,"⥁"],[/\\ElzRlarr /g,"⥂"],[/\\ElzrLarr /g,"⥄"],[/\\Elzrarrx /g,"⥇"],[/\\LeftRightVector /g,"⥎"],[/\\RightUpDownVector /g,"⥏"],[/\\DownLeftRightVector /g,"⥐"],[/\\LeftUpDownVector /g,"⥑"],[/\\LeftVectorBar /g,"⥒"],[/\\RightVectorBar /g,"⥓"],[/\\RightUpVectorBar /g,"⥔"],[/\\RightDownVectorBar /g,"⥕"],[/\\DownLeftVectorBar /g,"⥖"],[/\\DownRightVectorBar /g,"⥗"],[/\\LeftUpVectorBar /g,"⥘"],[/\\LeftDownVectorBar /g,"⥙"],[/\\LeftTeeVector /g,"⥚"],[/\\RightTeeVector /g,"⥛"],[/\\RightUpTeeVector /g,"⥜"],[/\\RightDownTeeVector /g,"⥝"],[/\\DownLeftTeeVector /g,"⥞"],[/\\DownRightTeeVector /g,"⥟"],[/\\LeftUpTeeVector /g,"⥠"],[/\\LeftDownTeeVector /g,"⥡"],[/\\UpEquilibrium /g,"⥮"],[/\\ReverseUpEquilibrium /g,"⥯"],[/\\RoundImplies /g,"⥰"],[/\\ElsevierGlyph\{E214\}/g,"⥼"],[/\\ElsevierGlyph\{E215\}/g,"⥽"],[/\\Elztfnc /g,"⦀"],[/\\ElsevierGlyph\{3018\}/g,"⦅"],[/\\Elroang /g,"⦆"],[/\\ElsevierGlyph\{E291\}/g,"⦔"],[/\\Elzddfnc /g,"⦙"],[/\\Angle /g,"⦜"],[/\\Elzlpargt /g,"⦠"],[/\\ElsevierGlyph\{E260\}/g,"⦵"],[/\\ElsevierGlyph\{E61B\}/g,"⦶"],[/\\ElzLap /g,"⧊"],[/\\Elzdefas /g,"⧋"],[/\\LeftTriangleBar /g,"⧏"],[/\\NotLeftTriangleBar /g,"⧏-00338"],[/\\RightTriangleBar /g,"⧐"],[/\\NotRightTriangleBar /g,"⧐-00338"],[/\\ElsevierGlyph\{E372\}/g,"⧜"],[/\\blacklozenge /g,"⧫"],[/\\RuleDelayed /g,"⧴"],[/\\Elxuplus /g,"⨄"],[/\\ElzThr /g,"⨅"],[/\\Elxsqcup /g,"⨆"],[/\\ElzInf /g,"⨇"],[/\\ElzSup /g,"⨈"],[/\\ElzCint /g,"⨍"],[/\\clockoint /g,"⨏"],[/\\ElsevierGlyph\{E395\}/g,"⨐"],[/\\sqrint /g,"⨖"],[/\\ElsevierGlyph\{E25A\}/g,"⨥"],[/\\ElsevierGlyph\{E25B\}/g,"⨪"],[/\\ElsevierGlyph\{E25C\}/g,"⨭"],[/\\ElsevierGlyph\{E25D\}/g,"⨮"],[/\\ElzTimes /g,"⨯"],[/\\ElsevierGlyph\{E25E\}/g,"⨴"],[/\\ElsevierGlyph\{E25E\}/g,"⨵"],[/\\ElsevierGlyph\{E259\}/g,"⨼"],[/\\amalg /g,"⨿"],[/\\ElzAnd /g,"⩓"],[/\\ElzOr /g,"⩔"],[/\\ElsevierGlyph\{E36E\}/g,"⩕"],[/\\ElOr /g,"⩖"],[/\\perspcorrespond /g,"⩞"],[/\\Elzminhat /g,"⩟"],[/\\ElsevierGlyph\{225A\}/g,"⩣"],[/\\stackrel\{*\}\{=\}/g,"⩮"],[/\\Equal /g,"⩵"],[/\\leqslant /g,"⩽"],[/\\nleqslant /g,"⩽-00338"],[/\\geqslant /g,"⩾"],[/\\ngeqslant /g,"⩾-00338"],[/\\lessapprox /g,"⪅"],[/\\gtrapprox /g,"⪆"],[/\\lneq /g,"⪇"],[/\\gneq /g,"⪈"],[/\\lnapprox /g,"⪉"],[/\\gnapprox /g,"⪊"],[/\\lesseqqgtr /g,"⪋"],[/\\gtreqqless /g,"⪌"],[/\\eqslantless /g,"⪕"],[/\\eqslantgtr /g,"⪖"],[/\\Pisymbol\{ppi020\}\{117\}/g,"⪝"],[/\\Pisymbol\{ppi020\}\{105\}/g,"⪞"],[/\\NestedLessLess /g,"⪡"],[/\\NotNestedLessLess /g,"⪡-00338"],[/\\NestedGreaterGreater /g,"⪢"],[/\\NotNestedGreaterGreater /g,"⪢-00338"],[/\\preceq /g,"⪯"],[/\\not\\preceq /g,"⪯-00338"],[/\\succeq /g,"⪰"],[/\\not\\succeq /g,"⪰-00338"],[/\\precneqq /g,"⪵"],[/\\succneqq /g,"⪶"],[/\\precapprox /g,"⪷"],[/\\succapprox /g,"⪸"],[/\\precnapprox /g,"⪹"],[/\\succnapprox /g,"⪺"],[/\\subseteqq /g,"⫅"],[/\\nsubseteqq /g,"⫅-00338"],[/\\supseteqq /g,"⫆"],[/\\nsupseteqq/g,"⫆-00338"],[/\\subsetneqq /g,"⫋"],[/\\supsetneqq /g,"⫌"],[/\\ElsevierGlyph\{E30D\}/g,"⫫"],[/\\Elztdcol /g,"⫶"],[/\\ElsevierGlyph\{300A\}/g,"《"],[/\\ElsevierGlyph\{300B\}/g,"》"],[/\\ElsevierGlyph\{3018\}/g,"〘"],[/\\ElsevierGlyph\{3019\}/g,"〙"],[/\\openbracketleft /g,"〚"],[/\\openbracketright /g,"〛"]],
+this}"undefined"!=typeof e&&e.exports&&(e.exports=i)},function(e,t,i){var n,s;(function(a){n=[i(6),i(21),i(5)],s=function(e,t,i){var n=a.View.extend({tagName:"div",className:"citations",render:function(){return this.$el.append(""+this.formattedReference()+"
"),this},formattedReference:function(){var e=this.model,t=e.entryType(),i=e.fields(),n="",s=this._asSentence((i.author?i.author:"")+(i.year?" ("+i.year+")":""))+" ",a=i.title||"",o=i.pages?"pp. "+i.pages:"",r=i.address;if("article"==t){var l=(i.volume?i.volume:"")+(i.number?" ("+i.number+")":"")+(o?", "+o:"");n=s+this._asSentence(a)+(i.journal?"In "+i.journal+", ":"")+this._asSentence(l)+this._asSentence(i.address)+" "}else n="inproceedings"==t||"proceedings"==t?s+this._asSentence(a)+(i.booktitle?"In "+i.booktitle+", ":"")+(o?o:"")+(r?", "+r:"")+". ":"mastersthesis"==t||"phdthesis"==t?s+this._asSentence(a)+(i.howpublished?i.howpublished+". ":"")+(i.note?i.note+".":""):"techreport"==t?s+this._asSentence(a)+this._asSentence(i.institution)+this._asSentence(i.number)+this._asSentence(i.type):"book"==t||"inbook"==t||"incollection"==t?s+" "+this._formatBookInfo(i):s+" "+this._asSentence(a)+this._asSentence(i.howpublished)+this._asSentence(i.note);var c="";i.doi&&(c="http://dx.doi.org/"+i.doi,n+='[doi:'+i.doi+" ]");var d=i.url||c;return d&&(n+='[Link ]'),n},_formatBookInfo:function(e){var t="";return e.chapter&&(t+=e.chapter+" in "),e.title&&(t+=""+e.title+" "),e.editor&&(t+=", Edited by "+e.editor+", "),e.publisher&&(t+=", "+e.publisher),e.pages&&(t+=", pp. "+e.pages),e.series&&(t+=", "+e.series+" "),e.volume&&(t+=", Vol."+e.volume),e.issn&&(t+=", ISBN: "+e.issn),t+"."},_asSentence:function(e){return e&&e.trim()?e+". ":""}}),s=a.View.extend({el:"#citations",initialize:function(){this.listenTo(this.collection,"add",this.renderCitation)},events:{"click .citations-to-bibtex":"showBibtex","click .citations-to-formatted":"showFormatted"},renderCitation:function(e){var t=new n({model:e});this.$(".citations-formatted").append(t.render().el);var i=this.$(".citations-bibtex-text");i.val(i.val()+"\n\r"+e.attributes.content)},render:function(){this.$el.html(this.citationsElement()),this.collection.each(function(e){this.renderCitation(e)},this),this.showFormatted()},showBibtex:function(){this.$(".citations-to-formatted").show(),this.$(".citations-to-bibtex").hide(),this.$(".citations-bibtex").show(),this.$(".citations-formatted").hide(),this.$(".citations-bibtex-text").select()},showFormatted:function(){this.$(".citations-to-formatted").hide(),this.$(".citations-to-bibtex").show(),this.$(".citations-bibtex").hide(),this.$(".citations-formatted").show()},partialWarningElement:function(){return this.collection.partial?['',"
Warning: This is a experimental feature. Most Galaxy tools will not annotate"," citations explicitly at this time. When writing up your analysis, please manually"," review your histories and find all references"," that should be cited in order to completely describe your work. Also, please remember to",'
cite Galaxy .',"
"].join(""):""},citationsElement:function(){return['"].join("")}});return{CitationView:n,CitationListView:s}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3))},function(e,t,i){var n,s;(function(a,o,r){n=[i(54),i(43),i(6),i(5)],s=function(e,t,i,n){"use strict";var s=e.FoldoutListItemView,l=e.ListItemView,c=s.extend({className:s.prototype.className+" dataset-collection",id:function(){return["dataset_collection",this.model.get("id")].join("-")},initialize:function(e){this.linkTarget=e.linkTarget||"_blank",this.hasUser=e.hasUser,s.prototype.initialize.call(this,e)},_setUpListeners:function(){s.prototype._setUpListeners.call(this),this.listenTo(this.model,"change",function(e,t){a.has(e.changed,"deleted")?this.render():a.has(e.changed,"element_count")&&this.$("> .title-bar .subtitle").replaceWith(this._renderSubtitle())})},_renderSubtitle:function(){return o(this.templates.subtitle(this.model.toJSON(),this))},_getFoldoutPanelOptions:function(){var e=s.prototype._getFoldoutPanelOptions.call(this);return a.extend(e,{linkTarget:this.linkTarget,hasUser:this.hasUser})},$selector:function(){return this.$("> .selector")},toString:function(){var e=this.model?this.model+"":"(no model)";return"DCListItemView("+e+")"}});c.prototype.templates=function(){var e=a.extend({},s.prototype.templates.warnings,{error:i.wrapTemplate(["<% if( model.error ){ %>",'',n("There was an error getting the data for this collection"),": <%- model.error %>","
","<% } %>"]),purged:i.wrapTemplate(["<% if( model.purged ){ %>",'',n("This collection has been deleted and removed from disk"),"
","<% } %>"]),deleted:i.wrapTemplate(["<% if( model.deleted && !model.purged ){ %>",'',n("This collection has been deleted"),"
","<% } %>"])}),t=i.wrapTemplate(['','
','<%- collection.element_identifier || collection.name %> ',"
",'
',"
"],"collection"),o=i.wrapTemplate(['','<% var countText = collection.element_count? ( collection.element_count + " " ) : ""; %>','<% if( collection.collection_type === "list" ){ %>',n("a list of <%- countText %>datasets"),'<% } else if( collection.collection_type === "paired" ){ %>',n("a pair of datasets"),'<% } else if( collection.collection_type === "list:paired" ){ %>',n("a list of <%- countText %>dataset pairs"),'<% } else if( collection.collection_type === "list:list" ){ %>',n("a list of <%- countText %>dataset lists"),"<% } %>","
"],"collection");return a.extend({},s.prototype.templates,{warnings:e,titleBar:t,subtitle:o})}();var d=l.extend({className:l.prototype.className+" dataset-collection-element",initialize:function(e){e.logger&&(this.logger=this.model.logger=e.logger),this.log("DCEListItemView.initialize:",e),l.prototype.initialize.call(this,e)},toString:function(){var e=this.model?this.model+"":"(no model)";return"DCEListItemView("+e+")"}});d.prototype.templates=function(){var e=i.wrapTemplate(['','
','<%- element.element_identifier %> ',"
",'
',"
"],"element");return a.extend({},l.prototype.templates,{titleBar:e})}();var h=t.DatasetListItemView.extend({className:t.DatasetListItemView.prototype.className+" dataset-collection-element",initialize:function(e){e.logger&&(this.logger=this.model.logger=e.logger),this.log("DatasetDCEListItemView.initialize:",e),t.DatasetListItemView.prototype.initialize.call(this,e)},_fetchModelDetails:function(){var e=this;return e.model.inReadyState()&&!e.model.hasDetails()?e.model.fetch({silent:!0}):r.when()},toString:function(){var e=this.model?this.model+"":"(no model)";return"DatasetDCEListItemView("+e+")"}});h.prototype.templates=function(){var e=i.wrapTemplate(['','
','
','<%- element.element_identifier %> ',"
","
"],"element");return a.extend({},t.DatasetListItemView.prototype.templates,{titleBar:e})}();var u=c.extend({className:c.prototype.className+" dataset-collection-element",_swapNewRender:function(e){c.prototype._swapNewRender.call(this,e);var t=this.model.get("state")||"ok";return this.$el.addClass("state-"+t),this.$el},toString:function(){var e=this.model?this.model+"":"(no model)";return"NestedDCDCEListItemView("+e+")"}});return{DCListItemView:c,DCEListItemView:d,DatasetDCEListItemView:h,NestedDCDCEListItemView:u}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(2),i(1),i(1))},function(e,t,i){var n,s;(function(a,o,r){n=[i(81),i(6),i(5)],s=function(e,t,i){"use strict";var n={defaults:{model_class:"DatasetCollectionElement",element_identifier:null,element_index:null,element_type:null},_mergeObject:function(e){return a.extend(e,e.object,{element_id:e.id}),delete e.object,e},constructor:function(e,t){e=this._mergeObject(e),this.idAttribute="element_id",o.Model.apply(this,arguments)},parse:function(e,t){var i=e;return i=this._mergeObject(i)}},s=o.Model.extend(t.LoggableMixin).extend(n).extend({_logNamespace:"collections"}),l=o.Collection.extend(t.LoggableMixin).extend({_logNamespace:"collections",model:s,toString:function(){return["DatasetCollectionElementCollection(",this.length,")"].join("")}}),c=e.DatasetAssociation.extend(t.mixin(n,{url:function(){return this.has("history_id")?Galaxy.root+"api/histories/"+this.get("history_id")+"/contents/"+this.get("id"):(console.warn("no endpoint for non-hdas within a collection yet"),Galaxy.root+"api/datasets")},defaults:a.extend({},e.DatasetAssociation.prototype.defaults,n.defaults),_downloadQueryParameters:function(){return"?to_ext="+this.get("file_ext")+"&hdca_id="+this.get("parent_hdca_id")+"&element_identifier="+this.get("element_identifier")},constructor:function(e,t){this.debug("\t DatasetDCE.constructor:",e,t),n.constructor.call(this,e,t)},hasDetails:function(){return this.elements&&this.elements.length},toString:function(){var e=this.get("element_identifier");return["DatasetDCE(",e,")"].join("")}})),d=l.extend({model:c,toString:function(){return["DatasetDCECollection(",this.length,")"].join("")}}),h=o.Model.extend(t.LoggableMixin).extend(t.SearchableModelMixin).extend({_logNamespace:"collections",defaults:{collection_type:null,deleted:!1},collectionClass:l,initialize:function(e,t){this.debug(this+"(DatasetCollection).initialize:",e,t,this),this.elements=this._createElementsModel(),this.on("change:elements",function(){this.log("change:elements"),this.elements=this._createElementsModel()})},_createElementsModel:function(){this.debug(this+"._createElementsModel",this.collectionClass,this.get("elements"),this.elements);var e=this.get("elements")||[];this.unset("elements",{silent:!0});var t=this;return a.each(e,function(e,i){a.extend(e,{parent_hdca_id:t.get("id")})}),this.elements=new this.collectionClass(e),this.elements},toJSON:function(){var e=o.Model.prototype.toJSON.call(this);return this.elements&&(e.elements=this.elements.toJSON()),e},inReadyState:function(){var e=this.get("populated");return this.isDeletedOrPurged()||e},hasDetails:function(){return 0!==this.elements.length},getVisibleContents:function(e){return this.elements},parse:function(e,t){var i=o.Model.prototype.parse.call(this,e,t);return i.create_time&&(i.create_time=new Date(i.create_time)),i.update_time&&(i.update_time=new Date(i.update_time)),i},delete:function(e){return this.get("deleted")?r.when():this.save({deleted:!0},e)},undelete:function(e){return!this.get("deleted")||this.get("purged")?r.when():this.save({deleted:!1},e)},isDeletedOrPurged:function(){return this.get("deleted")||this.get("purged")},searchAttributes:["name","tags"],toString:function(){var e=[this.get("id"),this.get("name")||this.get("element_identifier")];return"DatasetCollection("+e.join(",")+")"}}),u=h.extend({collectionClass:d,toString:function(){return"List"+h.prototype.toString.call(this)}}),p=u.extend({toString:function(){return"Pair"+h.prototype.toString.call(this)}}),f=h.extend(t.mixin(n,{constructor:function(e,t){this.debug("\t NestedDCDCE.constructor:",e,t),n.constructor.call(this,e,t)},toString:function(){var e=this.object?""+this.object:this.get("element_identifier");return["NestedDCDCE(",e,")"].join("")}})),g=l.extend({model:f,toString:function(){return["NestedDCDCECollection(",this.length,")"].join("")}}),m=p.extend(t.mixin(n,{constructor:function(e,t){this.debug("\t NestedPairDCDCE.constructor:",e,t),n.constructor.call(this,e,t)},toString:function(){var e=this.object?""+this.object:this.get("element_identifier");return["NestedPairDCDCE(",e,")"].join("")}})),v=g.extend({model:m,toString:function(){return["NestedPairDCDCECollection(",this.length,")"].join("")}}),_=h.extend({collectionClass:v,toString:function(){return["ListPairedDatasetCollection(",this.get("name"),")"].join("")}}),y=u.extend(t.mixin(n,{constructor:function(e,t){this.debug("\t NestedListDCDCE.constructor:",e,t),n.constructor.call(this,e,t)},toString:function(){var e=this.object?""+this.object:this.get("element_identifier");return["NestedListDCDCE(",e,")"].join("")}})),w=g.extend({model:y,toString:function(){return["NestedListDCDCECollection(",this.length,")"].join("")}}),b=h.extend({collectionClass:w,toString:function(){return["ListOfListsDatasetCollection(",this.get("name"),")"].join("")}});return{ListDatasetCollection:u,PairDatasetCollection:p,ListPairedDatasetCollection:_,ListOfListsDatasetCollection:b}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(2),i(3),i(1))},function(e,t,i){var n,s;(function(a,o,r,l){n=[i(50),i(11),i(6),i(78),i(8),i(96),i(5),i(93)],s=function(e,t,i,n,s,c,d){"use strict";function h(e,t){var i=e.toJSON(),n=m(i,{defaultHideSourceItems:t,creationFn:function(t,i,n){return t=t.map(function(e){return{id:e.id,name:e.name,src:"dataset"===e.history_content_type?"hda":"hdca"}}),e.createHDCA(t,"list",i,n)}});return n}var u="collections",p=a.View.extend(i.LoggableMixin).extend({_logNamespace:u,tagName:"li",className:"collection-element",initialize:function(e){this.element=e.element||{},this.selected=e.selected||!1},render:function(){return this.$el.attr("data-element-id",this.element.id).attr("draggable",!0).html(this.template({element:this.element})),this.selected&&this.$el.addClass("selected"),this},template:o.template(['',"<%- element.name %>"," ",'',d("Discard")," "].join("")),select:function(e){this.$el.toggleClass("selected",e),this.trigger("select",{source:this,selected:this.$el.hasClass("selected")})},discard:function(){var e=this,t=this.$el.parent().width();this.$el.animate({"margin-right":t},"fast",function(){e.trigger("discard",{source:e}),e.destroy()})},destroy:function(){this.off(),this.$el.remove()},events:{click:"_click","click .name":"_clickName","click .discard":"_clickDiscard",dragstart:"_dragstart",dragend:"_dragend",dragover:"_sendToParent",drop:"_sendToParent"},_click:function(e){e.stopPropagation(),this.select(e)},_clickName:function(e){e.stopPropagation(),e.preventDefault();var t=([d("Enter a new name for the element"),":\n(",d("Note that changing the name here will not rename the dataset"),")"].join(""),prompt(d("Enter a new name for the element")+":",this.element.name));t&&(this.element.name=t,this.render())},_clickDiscard:function(e){e.stopPropagation(),this.discard()},_dragstart:function(e){e.originalEvent&&(e=e.originalEvent),e.dataTransfer.effectAllowed="move",e.dataTransfer.setData("text/plain",JSON.stringify(this.element)),this.$el.addClass("dragging"),this.$el.parent().trigger("collection-element.dragstart",[this])},_dragend:function(e){this.$el.removeClass("dragging"),this.$el.parent().trigger("collection-element.dragend",[this])},_sendToParent:function(e){this.$el.parent().trigger(e)},toString:function(){return"DatasetCollectionElementView()"}}),f=a.View.extend(i.LoggableMixin).extend(n.CollectionCreatorMixin).extend({_logNamespace:u,elementViewClass:p,collectionClass:e.HistoryListDatasetCollection,className:"list-collection-creator collection-creator flex-row-container",minElements:1,defaultAttributes:{creationFn:function(){throw new TypeError("no creation fn for creator")},oncreate:function(){},oncancel:function(){},autoscrollDist:24,highlightClr:"rgba( 64, 255, 255, 1.0 )"},footerSettings:{".hide-originals":"hideOriginals"},initialize:function(e){this.metric("ListCollectionCreator.initialize",e);var t=this;o.each(this.defaultAttributes,function(i,n){i=e[n]||i,t[n]=i}),t.initialElements=e.elements||[],this._setUpCommonSettings(e),this._instanceSetUp(),this._elementsSetUp(),this._setUpBehaviors()},_instanceSetUp:function(){this.selectedIds={},this.$dragging=null,this.blocking=!1},_elementsSetUp:function(){this.invalidElements=[],this.workingElements=[],this.elementViews=[],this.workingElements=this.initialElements.slice(0),this._ensureElementIds(),this._validateElements(),this._mangleDuplicateNames(),this._sortElements()},_ensureElementIds:function(){return this.workingElements.forEach(function(e){e.hasOwnProperty("id")||(e.id=o.uniqueId())}),this.workingElements},_validateElements:function(){var e=this;return e.invalidElements=[],this.workingElements=this.workingElements.filter(function(t){var i=e._isElementInvalid(t);return i&&e.invalidElements.push({element:t,text:i}),!i}),this.workingElements},_isElementInvalid:function(e){if("dataset"!==e.history_content_type)return d("is not a dataset");var i=e.state===t.OK||o.contains(t.NOT_READY_STATES,e.state);return i?e.deleted||e.purged?d("has been deleted or purged"):null:d("has errored, is paused, or is not accessible")},_mangleDuplicateNames:function(){var e=900,t=1,i={};this.workingElements.forEach(function(n){for(var s=n.name;i.hasOwnProperty(s);)if(s=n.name+" ("+t+")",t+=1,t>=e)throw new Error("Safety hit in while loop - thats impressive");n.name=s,i[n.name]=!0})},_sortElements:function(e){},render:function(e,t){return this.workingElements.length .clear-selected").show():this.$(".collection-elements-controls > .clear-selected").hide()},_renderList:function(e,t){var i=this,n=l("
"),s=i.$list();o.each(this.elementViews,function(e){e.destroy(),i.removeElementView(e)}),i.workingElements.forEach(function(e){var t=i._createElementView(e);n.append(t.$el)}),i._renderClearSelected(),s.empty().append(n.children()),o.invoke(i.elementViews,"render"),s.height()>s.css("max-height")?s.css("border-width","1px 0px 1px 0px"):s.css("border-width","0px")},_createElementView:function(e){var t=new this.elementViewClass({element:e,selected:o.has(this.selectedIds,e.id)});return this.elementViews.push(t),this._listenToElementView(t),t},_listenToElementView:function(e){var t=this;t.listenTo(e,{select:function(e){var i=e.source.element;e.selected?t.selectedIds[i.id]=!0:delete t.selectedIds[i.id],t.trigger("elements:select",e)},discard:function(e){t.trigger("elements:discard",e)}})},addElementView:function(e){},removeElementView:function(e){delete this.selectedIds[e.element.id],this._renderClearSelected(),this.elementViews=o.without(this.elementViews,e),this.stopListening(e)},_renderNoElementsLeft:function(){this._disableNameAndCreate(!0),this.$(".collection-elements").append(this.templates.noElementsLeft())},_elementToJSON:function(e){return e},createList:function(e){if(!this.workingElements.length){var t=d("No valid elements for final list")+". ";return t+=''+d("Cancel")+" ",t+=d("or"),t+=' '+d("start over")+" .",void this._showAlert(t)}var i=this,n=this.workingElements.map(function(e){return i._elementToJSON(e)});return i.blocking=!0,i.creationFn(n,e,i.hideOriginals).always(function(){i.blocking=!1}).fail(function(e,t,n){i.trigger("error",{xhr:e,status:t,message:d("An error occurred while creating this collection")})}).done(function(e,t,n){i.trigger("collection:created",e,t,n),i.metric("collection:created",e),"function"==typeof i.oncreate&&i.oncreate.call(this,e,t,n)})},_setUpBehaviors:function(){return this.on("error",this._errorHandler),this.once("rendered",function(){this.trigger("rendered:initial",this)}),this.on("elements:select",function(e){this._renderClearSelected()}),this.on("elements:discard",function(e){var t=e.source.element;this.removeElementView(e.source),this.workingElements=o.without(this.workingElements,t),this.workingElements.length||this._renderNoElementsLeft()}),this},_errorHandler:function(e){this.error(e);var t=this;if(content=e.message||d("An error occurred"),e.xhr){var i=e.xhr,n=e.message;0===i.readyState&&0===i.status?content+=": "+d("Galaxy could not be reached and may be updating.")+d(" Try again in a few minutes."):i.responseJSON?content+=":"+JSON.stringify(i.responseJSON)+" ":content+=": "+n}t._showAlert(content,"alert-danger")},events:{"click .more-help":"_clickMoreHelp","click .less-help":"_clickLessHelp","click .main-help":"_toggleHelp","click .header .alert button":"_hideAlert","click .reset":"reset","click .clear-selected":"clearSelectedElements","click .collection-elements":"clearSelectedElements","dragover .collection-elements":"_dragoverElements","drop .collection-elements":"_dropElements","collection-element.dragstart .collection-elements":"_elementDragstart","collection-element.dragend .collection-elements":"_elementDragend","change .collection-name":"_changeName","keydown .collection-name":"_nameCheckForEnter","change .hide-originals":"_changeHideOriginals","click .cancel-create":"_cancelCreate","click .create-collection":"_clickCreate"},reset:function(){this._instanceSetUp(),this._elementsSetUp(),this.render()},clearSelectedElements:function(e){this.$(".collection-elements .collection-element").removeClass("selected"),this.$(".collection-elements-controls > .clear-selected").hide()},_dragoverElements:function(e){e.preventDefault();var t=this.$list();this._checkForAutoscroll(t,e.originalEvent.clientY);var i=this._getNearestElement(e.originalEvent.clientY);this.$(".element-drop-placeholder").remove();var n=r('
');i.length?i.before(n):t.append(n)},_checkForAutoscroll:function(e,t){var i=2,n=e.offset(),s=e.scrollTop(),a=t-n.top,o=n.top+e.outerHeight()-t;a>=0&&a=0&&oe&&a-o','',d("More help")," ",'"," ",'
','× ',' ',"
"].join("")),middle:o.template(['
",'
',"
"].join("")),footer:o.template(['
','
','',d("Hide original elements"),"?",' '," ","
",'
","
",'
','
','
',d("Cancel")," ",'
','',d("Create a different kind of collection"),' '," ",'","
","
",'
','',d("Create list")," ","
","
"].join("")),helpContent:o.template(["
",d(["Collections of datasets are permanent, ordered lists of datasets that can be passed to tools and ","workflows in order to have analyses done on each member of the entire group. This interface allows ","you to create a collection and re-order the final collection."].join("")),"
","
","",d(["Rename elements in the list by clicking on ",'the existing name .'].join(""))," ","",d(["Discard elements from the final created list by clicking on the ",'"Discard" button.'].join(""))," ","",d(["Reorder the list by clicking and dragging elements. Select multiple elements by clicking on ",'them and you can then move those selected by dragging the ',"entire group. Deselect them by clicking them again or by clicking the ",'the "Clear selected" link.'].join(""))," ","",d(['Click the "Start over" link to begin again as if you had just opened ',"the interface."].join(""))," ","",d(['Click the "Cancel" button to exit the interface.'].join(""))," "," ","
",d(['Once your collection is complete, enter a name and ','click "Create list" .'].join("")),"
"].join("")),invalidElements:o.template([d("The following selections could not be included due to problems:"),"
<% _.each( problems, function( problem ){ %>","<%- problem.element.name %> : <%- problem.text %> ","<% }); %> "].join("")),noElementsLeft:o.template(['
',d("No elements left! "),d("Would you like to "),'',d("start over")," ?"," "].join("")),invalidInitial:o.template(['",'"].join(""))}),toString:function(){return"ListCollectionCreator"}}),g=function(e,t,i){var n,a=l.Deferred(),r=Galaxy.modal||new s.View;return t=o.defaults(t||{},{elements:e,oncancel:function(){r.hide(),a.reject("cancelled")},oncreate:function(e,t){r.hide(),a.resolve(t)}}),n=new i(t),r.show({title:t.title||d("Create a collection"),body:n.$el,width:"80%",height:"100%",closing_events:!0}),n.render(),window._collectionCreator=n,a},m=function(e,t){return t=t||{},t.title=d("Create a collection from a list of datasets"),g(e,t,f)};return{DatasetCollectionElementView:p,ListCollectionCreator:f,collectionCreatorModal:g,listCollectionCreatorModal:m,createListCollection:h}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(2),i(1),i(1))},function(e,t,i){var n,s;(function(a,o,r,l){n=[i(54),i(11),i(19),i(6),i(5)],s=function(e,t,i,n,s){"use strict";var c="dataset",d=e.ListItemView,h=d.extend({_logNamespace:c,className:d.prototype.className+" dataset",id:function(){return["dataset",this.model.get("id")].join("-")},initialize:function(e){e.logger&&(this.logger=this.model.logger=e.logger),this.log(this+".initialize:",e),d.prototype.initialize.call(this,e),this.linkTarget=e.linkTarget||"_blank"},_setUpListeners:function(){d.prototype._setUpListeners.call(this);var e=this;return e.listenTo(e.model,{change:function(t){e.model.changedAttributes().state&&e.model.inReadyState()&&e.expanded&&!e.model.hasDetails()?e.model.fetch({silent:!0}).done(function(){e.render()}):a.has(t.changed,"tags")&&1===a.keys(t.changed).length?e.$(".nametags").html(e._renderNametags()):e.render()}})},_fetchModelDetails:function(){var e=this;return e.model.inReadyState()&&!e.model.hasDetails()?e.model.fetch({silent:!0}):o.when()},remove:function(e,t){var i=this;e=e||this.fxSpeed,this.$el.fadeOut(e,function(){r.View.prototype.remove.call(i),t&&t.call(i)})},_swapNewRender:function(e){return d.prototype._swapNewRender.call(this,e),this.model.has("state")&&this.$el.addClass("state-"+this.model.get("state")),
this.$el},_renderPrimaryActions:function(){return[this._renderDisplayButton()]},_renderDisplayButton:function(){var e=this.model.get("state");if(e===t.NOT_VIEWABLE||e===t.DISCARDED||!this.model.get("accessible"))return null;var n={target:this.linkTarget,classes:"display-btn"};if(this.model.get("purged"))n.disabled=!0,n.title=s("Cannot display datasets removed from disk");else if(e===t.UPLOAD)n.disabled=!0,n.title=s("This dataset must finish uploading before it can be viewed");else if(e===t.NEW)n.disabled=!0,n.title=s("This dataset is not yet viewable");else{n.title=s("View data"),n.href=this.model.urls.display;var a=this;n.onclick=function(e){Galaxy.frame&&Galaxy.frame.active&&(Galaxy.frame.addDataset(a.model.get("id")),e.preventDefault())}}return n.faIcon="fa-eye",i(n)},_renderDetails:function(){if(this.model.get("state")===t.NOT_VIEWABLE)return l(this.templates.noAccess(this.model.toJSON(),this));var e=d.prototype._renderDetails.call(this);return e.find(".actions .left").empty().append(this._renderSecondaryActions()),e.find(".summary").html(this._renderSummary()).prepend(this._renderDetailMessages()),e.find(".display-applications").html(this._renderDisplayApplications()),this._setUpBehaviors(e),e},_renderSummary:function(){var e=this.model.toJSON(),t=this.templates.summaries[e.state];return(t=t||this.templates.summaries.unknown)(e,this)},_renderDetailMessages:function(){var e=this,t=l('
'),i=e.model.toJSON();return a.each(e.templates.detailMessages,function(n){t.append(l(n(i,e)))}),t},_renderDisplayApplications:function(){return this.model.isDeletedOrPurged()?"":[this.templates.displayApplications(this.model.get("display_apps"),this),this.templates.displayApplications(this.model.get("display_types"),this)].join("")},_renderSecondaryActions:function(){switch(this.debug("_renderSecondaryActions"),this.model.get("state")){case t.NOT_VIEWABLE:return[];case t.OK:case t.FAILED_METADATA:case t.ERROR:return[this._renderDownloadButton(),this._renderShowParamsButton()]}return[this._renderShowParamsButton()]},_renderShowParamsButton:function(){return i({title:s("View details"),classes:"params-btn",href:this.model.urls.show_params,target:this.linkTarget,faIcon:"fa-info-circle",onclick:function(e){Galaxy.frame&&Galaxy.frame.active&&(Galaxy.frame.add({title:"Dataset details",url:this.href}),e.preventDefault(),e.stopPropagation())}})},_renderDownloadButton:function(){return this.model.get("purged")||!this.model.hasData()?null:a.isEmpty(this.model.get("meta_files"))?l(['
',' '," "].join("")):this._renderMetaFileDownloadButton()},_renderMetaFileDownloadButton:function(){var e=this.model.urls;return l(['
"].join("\n"))},_renderNametags:function(){var e=a.template(["<% _.each(_.sortBy(_.uniq(tags), function(x) { return x }), function(tag){ %>",'<% if (tag.indexOf("name:") == 0){ %>','
<%- tag.slice(5) %> ',"<% } %>","<% }); %>"].join(""));return e({tags:this.model.get("tags")})},events:a.extend(a.clone(d.prototype.events),{"click .display-btn":function(e){this.trigger("display",this,e)},"click .params-btn":function(e){this.trigger("params",this,e)},"click .download-btn":function(e){this.trigger("download",this,e)}}),toString:function(){var e=this.model?this.model+"":"(no model)";return"DatasetListItemView("+e+")"}});return h.prototype.templates=function(){var e=a.extend({},d.prototype.templates.warnings,{failed_metadata:n.wrapTemplate(['<% if( model.state === "failed_metadata" ){ %>','
',s("An error occurred setting the metadata for this dataset"),"
","<% } %>"]),error:n.wrapTemplate(["<% if( model.error ){ %>",'
',s("There was an error getting the data for this dataset"),": <%- model.error %>","
","<% } %>"]),purged:n.wrapTemplate(["<% if( model.purged ){ %>",'
',s("This dataset has been deleted and removed from disk"),"
","<% } %>"]),deleted:n.wrapTemplate(["<% if( model.deleted && !model.purged ){ %>",'
',s("This dataset has been deleted"),"
","<% } %>"])}),i=n.wrapTemplate(['
','
','
","<% if( !dataset.deleted && !dataset.purged ){ %>",'
','
','
',"<% if( dataset.peek ){ %>",'
<%= dataset.peek %> ',"<% } %>","<% } %>","
"],"dataset"),o=n.wrapTemplate(['
','
',s("You do not have permission to view this dataset"),"
","
"],"dataset"),r={};r[t.OK]=r[t.FAILED_METADATA]=n.wrapTemplate(["<% if( dataset.misc_blurb ){ %>",'
','<%- dataset.misc_blurb %> ',"
","<% } %>","<% if( dataset.file_ext ){ %>",'
','',s("format")," ",'<%- dataset.file_ext %> ',"
","<% } %>","<% if( dataset.metadata_dbkey ){ %>",'
','',s("database")," ",'',"<%- dataset.metadata_dbkey %>"," ","
","<% } %>","<% if( dataset.misc_info ){ %>",'
','<%- dataset.misc_info %> ',"
","<% } %>"],"dataset"),r[t.NEW]=n.wrapTemplate(["
",s("This is a new dataset and not all of its data are available yet"),"
"],"dataset"),r[t.NOT_VIEWABLE]=n.wrapTemplate(["
",s("You do not have permission to view this dataset"),"
"],"dataset"),r[t.DISCARDED]=n.wrapTemplate(["
",s("The job creating this dataset was cancelled before completion"),"
"],"dataset"),r[t.QUEUED]=n.wrapTemplate(["
",s("This job is waiting to run"),"
"],"dataset"),r[t.RUNNING]=n.wrapTemplate(["
",s("This job is currently running"),"
"],"dataset"),r[t.UPLOAD]=n.wrapTemplate(["
",s("This dataset is currently uploading"),"
"],"dataset"),r[t.SETTING_METADATA]=n.wrapTemplate(["
",s("Metadata is being auto-detected"),"
"],"dataset"),r[t.PAUSED]=n.wrapTemplate(["
",s('This job is paused. Use the "Resume Paused Jobs" in the history menu to resume'),"
"],"dataset"),r[t.ERROR]=n.wrapTemplate(["<% if( !dataset.purged ){ %>","
<%- dataset.misc_blurb %>
","<% } %>",'
',s("An error occurred with this dataset"),": ",'
<%- dataset.misc_info %>
'],"dataset"),r[t.EMPTY]=n.wrapTemplate(["
",s("No data"),": <%- dataset.misc_blurb %>
"],"dataset"),r.unknown=n.wrapTemplate(['
Error: unknown dataset state: "<%- dataset.state %>"
'],"dataset");var l={resubmitted:n.wrapTemplate(["<% if( model.resubmitted ){ %>",'
',s("The job creating this dataset has been resubmitted"),"
","<% } %>"])},c=n.wrapTemplate(["<% _.each( apps, function( app ){ %>",'
','
<%- app.label %> ','
',"<% _.each( app.links, function( link ){ %>",'',"<% print( _l( link.text ) ); %>"," ","<% }); %>"," ","
","<% }); %>"],"apps");return a.extend({},d.prototype.templates,{warnings:e,details:i,noAccess:o,summaries:r,detailMessages:l,displayApplications:c})}(),{DatasetListItemView:h}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(2),i(1),i(3),i(1))},function(e,t,i){var n,s;(function(i,a,o){n=[],s=function(){return i.View.extend({initialize:function(e,t){this.app=e,this.app_options=e.model?e.model.attributes:{},this.field=t&&t.field||new i.View,this.model=t&&t.model||new i.Model({text_enable:this.app_options.text_enable||"Enable",text_disable:this.app_options.text_disable||"Disable",cls_enable:this.app_options.cls_enable||"fa fa-caret-square-o-down",cls_disable:this.app_options.cls_disable||"fa fa-caret-square-o-up",always_refresh:this.app_options.always_refresh}).set(t),this.setElement(this._template()),this.$field=this.$(".ui-form-field"),this.$info=this.$(".ui-form-info"),this.$preview=this.$(".ui-form-preview"),this.$collapsible=this.$(".ui-form-collapsible"),this.$collapsible_text=this.$(".ui-form-collapsible-text"),this.$collapsible_icon=this.$(".ui-form-collapsible-icon"),this.$title=this.$(".ui-form-title"),this.$title_text=this.$(".ui-form-title-text"),this.$error_text=this.$(".ui-form-error-text"),this.$error=this.$(".ui-form-error"),this.$backdrop=this.$(".ui-form-backdrop"),this.$field.prepend(this.field.$el);var n=this.model.get("collapsible_value");this.field.collapsed=void 0!==n&&JSON.stringify(this.model.get("value"))==JSON.stringify(n),this.listenTo(this.model,"change",this.render,this),this.render();var s=this;this.$collapsible.on("click",function(){s.field.collapsed=!s.field.collapsed,e.trigger&&e.trigger("change"),s.render()}),this.field.model&&!this.model.get("always_refresh")&&this.listenTo(this.field.model,"change:value",function(){s.reset()})},backdrop:function(){this.model.set("backdrop",!0)},error:function(e){this.model.set("error_text",e)},reset:function(){!this.model.get("fixed")&&this.model.set("error_text",null)},render:function(){a(".tooltip").hide();var e=this.model.get("help",""),t=this.model.get("argument");t&&e.indexOf("("+t+")")==-1&&(e+=" ("+t+")"),this.$info.html(e),this.$el[this.model.get("hidden")?"hide":"show"](),this.$preview[this.field.collapsed&&this.model.get("collapsible_preview")||this.model.get("disabled")?"show":"hide"]().html(o.escape(this.model.get("text_value")));var i=this.model.get("error_text");if(this.$error[i?"show":"hide"](),this.$el[i?"addClass":"removeClass"]("ui-error"),this.$error_text.html(i),this.$backdrop[this.model.get("backdrop")?"show":"hide"](),this.field.collapsed||this.model.get("disabled")?this.$field.hide():this.$field.show(),this.field.model&&this.field.model.set({color:this.model.get("color"),style:this.model.get("style")}),this.model.get("disabled")||void 0===this.model.get("collapsible_value"))this.$title_text.show().text(this.model.get("label")),this.$collapsible.hide();else{var n=this.field.collapsed?"enable":"disable";this.$title_text.hide(),this.$collapsible.show(),this.$collapsible_text.text(this.model.get("label")),this.$collapsible_icon.removeClass().addClass("icon").addClass(this.model.get("cls_"+n)).attr("data-original-title",this.model.get("text_"+n)).tooltip({placement:"bottom"})}},_template:function(){return a("
").addClass("ui-form-element").append(a("
").addClass("ui-form-error ui-error").append(a("
").addClass("fa fa-arrow-down")).append(a("
").addClass("ui-form-error-text"))).append(a("
").addClass("ui-form-title").append(a("
").addClass("ui-form-collapsible").append(a("
").addClass("ui-form-collapsible-icon")).append(a("
").addClass("ui-form-collapsible-text"))).append(a("
").addClass("ui-form-title-text"))).append(a("
").addClass("ui-form-field").append(a("
").addClass("ui-form-info")).append(a("
").addClass("ui-form-backdrop"))).append(a("
").addClass("ui-form-preview"))}})}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1),i(2))},function(e,t,i){var n,s;(function(a,o,r){n=[i(4),i(7),i(59),i(61),i(60),i(57)],s=function(e,t,i,n,s,l){return a.Model.extend({types:{text:"_fieldText",password:"_fieldText",select:"_fieldSelect",data_column:"_fieldSelect",genomebuild:"_fieldSelect",data:"_fieldData",data_collection:"_fieldData",integer:"_fieldSlider",float:"_fieldSlider",boolean:"_fieldBoolean",drill_down:"_fieldDrilldown",color:"_fieldColor",hidden:"_fieldHidden",hidden_data:"_fieldHidden",baseurl:"_fieldHidden",library_data:"_fieldLibrary",ftpfile:"_fieldFtp",upload:"_fieldUpload"},create:function(e){var t=this.types[e.type],i="function"==typeof this[t]?this[t].call(this,e):null;return i||(i=e.options?this._fieldSelect(e):this._fieldText(e),Galaxy.emit.debug("form-parameters::_addRow()","Auto matched field type ("+e.type+").")),void 0===e.value&&(e.value=null),i.value(e.value),i},_fieldData:function(e){return new i.View({id:"field-"+e.id,extensions:e.extensions,optional:e.optional,multiple:e.multiple,type:e.type,flavor:e.flavor,data:e.options,onchange:e.onchange})},_fieldSelect:function(e){if(e.is_workflow)return this._fieldText(e);"data_column"==e.type&&(e.error_text="Missing columns in referenced dataset.");var i=e.data;i||(i=[],o.each(e.options,function(e){i.push({label:e[0],value:e[1]})}));var n=t.Select;switch(e.display){case"checkboxes":n=t.Checkbox;break;case"radio":n=t.Radio;break;case"radiobutton":n=t.RadioButton}return new n.View({id:"field-"+e.id,data:i,error_text:e.error_text||"No options available",multiple:e.multiple,optional:e.optional,onchange:e.onchange,searchable:"workflow"!==e.flavor})},_fieldDrilldown:function(e){return e.is_workflow?this._fieldText(e):new t.Drilldown.View({id:"field-"+e.id,data:e.options,display:e.display,optional:e.optional,onchange:e.onchange})},_fieldText:function(i){if(i.options&&i.data)if(i.area=i.multiple,e.isEmpty(i.value))i.value=null;else if(r.isArray(i.value)){var n="";for(var s in i.value){if(n+=String(i.value[s]),!i.multiple)break;n+="\n"}i.value=n}return new t.Input({id:"field-"+i.id,type:i.type,area:i.area,readonly:i.readonly,placeholder:i.placeholder,datalist:i.datalist,onchange:i.onchange})},_fieldSlider:function(e){return new t.Slider.View({id:"field-"+e.id,precise:"float"==e.type,is_workflow:e.is_workflow,min:e.min,max:e.max,onchange:e.onchange})},_fieldHidden:function(e){return new t.Hidden({id:"field-"+e.id,info:e.info})},_fieldBoolean:function(e){return new t.RadioButton.View({id:"field-"+e.id,data:[{label:"Yes",value:"true"},{label:"No",value:"false"}],onchange:e.onchange})},_fieldColor:function(e){return new l({id:"field-"+e.id,onchange:e.onchange})},_fieldLibrary:function(e){return new n.View({id:"field-"+e.id,optional:e.optional,multiple:e.multiple,onchange:e.onchange})},_fieldFtp:function(e){return new s.View({id:"field-"+e.id,optional:e.optional,multiple:e.multiple,onchange:e.onchange})},_fieldUpload:function(e){return new t.Upload({id:"field-"+e.id,onchange:e.onchange})}})}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(2),i(1))},function(e,t,i){var n,s;(function(a,o,r){n=[i(4),i(9),i(7)],s=function(e,t,i){var n=a.View.extend({initialize:function(t){this.list={},this.options=e.merge(t,{title:"Repeat",empty_text:"Not available.",max:null,min:null}),this.button_new=new i.ButtonIcon({icon:"fa-plus",title:"Insert "+this.options.title,tooltip:"Add new "+this.options.title+" block",floating:"clear",cls:"ui-button-icon form-repeat-add",onclick:function(){t.onnew&&t.onnew()}}),this.setElement(o("
").append(this.$list=o("
")).append(o("
").append(this.button_new.$el)))},size:function(){return r.size(this.list)},add:function(e){if(!e.id||this.list[e.id])return void Galaxy.emit.debug("form-repeat::add()","Duplicate or invalid repeat block id.");var n=new i.ButtonIcon({icon:"fa-trash-o",tooltip:"Delete this repeat block",cls:"ui-button-icon-plain form-repeat-delete",onclick:function(){e.ondel&&e.ondel()}}),s=new t.View({id:e.id,title:"placeholder",cls:e.cls||"ui-portlet-repeat",operations:{button_delete:n}});s.append(e.$el),s.$el.addClass("section-row").hide(),this.list[e.id]=s,this.$list.append(s.$el.fadeIn("fast")),this.options.max>0&&this.size()>=this.options.max&&this.button_new.disable(),this._refresh()},del:function(e){return this.list[e]?(this.$list.find("#"+e).remove(),delete this.list[e],this.button_new.enable(),void this._refresh()):void Galaxy.emit.debug("form-repeat::del()","Invalid repeat block id.")},delAll:function(){for(var e in this.list)this.del(e)},hideOptions:function(){this.button_new.$el.hide(),r.each(this.list,function(e){e.hideOperation("button_delete")}),r.isEmpty(this.list)&&this.$el.append(o("
").addClass("ui-form-info").html(this.options.empty_text))},_refresh:function(){var e=0;for(var t in this.list){var i=this.list[t];i.title(++e+": "+this.options.title),i[this.size()>this.options.min?"showOperation":"hideOperation"]("button_delete")}}});return{View:n}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1),i(2))},function(e,t,i){var n,s;(function(a,o,r,l){n=[i(4),i(7),i(9),i(46),i(44),i(45)],s=function(e,t,i,n,s,c){var d=a.View.extend({initialize:function(e,t){this.app=e,this.inputs=t.inputs,this.parameters=new c,this.setElement(o("
")),this.render()},render:function(){var e=this;this.$el.empty(),r.each(this.inputs,function(t){e.add(t)})},add:function(t){var i=l.extend(!0,{},t);switch(i.id=t.id=e.uid(),this.app.input_list[i.id]=i,i.type){case"conditional":this._addConditional(i);break;case"repeat":this._addRepeat(i);break;case"section":this._addSection(i);break;default:this._addRow(i)}},_addConditional:function(e){var t=this;e.test_param.id=e.id,this.app.model.get("sustain_conditionals")&&(e.test_param.disabled=!0);var i=this._addRow(e.test_param);i.model&&i.model.set("onchange",function(i){var n=t.app.data.matchCase(e,i);for(var s in e.cases){var a=e.cases[s],o=t.$("#"+e.id+"-section-"+s),r=!1;for(var l in a.inputs)if(!a.inputs[l].hidden){r=!0;break}s==n&&r?o.fadeIn("fast"):o.hide()}t.app.trigger("change")});for(var n in e.cases){var s=new d(this.app,{inputs:e.cases[n].inputs});this._append(s.$el.addClass("ui-form-section"),e.id+"-section-"+n)}i.trigger("change")},_addRepeat:function(e){function t(t){var n=e.id+"-section-"+a++,s=new d(i.app,{inputs:t});o.add({id:n,$el:s.$el,ondel:function(){o.del(n),i.app.trigger("change")}})}for(var i=this,a=0,o=new n.View({title:e.title||"Repeat",min:e.min,max:e.max,onnew:function(){t(e.inputs),i.app.trigger("change")}}),l=r.size(e.cache),c=0;c
").addClass("ui-form-info").html(e.help)),this.app.on("expand",function(e){t.$("#"+e).length>0&&t.expand()}),this._append(t.$el,e.id)},_addRow:function(e){var t=this,i=e.id;e.onchange=e.onchange||function(){t.app.trigger("change",i)};var n=this.parameters.create(e);this.app.field_list[i]=n;var a=new s(this.app,{name:e.name,label:e.hide_label?"":e.label||e.name,value:e.value,text_value:e.text_value,collapsible_value:e.collapsible_value,collapsible_preview:e.collapsible_preview,help:e.help,argument:e.argument,disabled:e.disabled,color:e.color,style:e.style,backdrop:e.backdrop,hidden:e.hidden,fixed:e.fixed,field:n});return this.app.element_list[i]=a,this._append(a.$el,e.id),n},_append:function(e,t){this.$el.append(e.addClass("section-row").attr("id",t))}});return{View:d}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1),i(2),i(1))},function(e,t,i){var n,s;(function(i,a,o){n=[],s=function(){return i.Model.extend({defaults:{url_base:"",async:!1,async_ops:[],categorical_filters:[],filters:{},sort_key:null,show_item_checkboxes:!1,advanced_search:!1,cur_page:1,num_pages:1,operation:void 0,item_ids:void 0},can_async_op:function(e){return a.indexOf(this.attributes.async_ops,e)!==-1},add_filter:function(e,t,i){if(i){var n,s=this.attributes.filters[e];if(null===s||void 0===s)n=t;else if("string"==typeof s)if("All"==s)n=t;else{var a=[];a[0]=s,a[1]=t,n=a}else n=s,n.push(t);this.attributes.filters[e]=n}else this.attributes.filters[e]=t},remove_filter:function(e,t){var i=this.attributes.filters[e];if(null===i||void 0===i)return!1;if("string"==typeof i)this.attributes.filters[e]="";else{var n=a.indexOf(i,t);n!==-1&&(i[n]="")}},get_url_data:function(){var e={async:this.attributes.async,sort:this.attributes.sort_key,page:this.attributes.cur_page,show_item_checkboxes:this.attributes.show_item_checkboxes,advanced_search:this.attributes.advanced_search};this.attributes.operation&&(e.operation=this.attributes.operation),this.attributes.item_ids&&(e.id=this.attributes.item_ids);var t=this;return a.each(a.pairs(t.attributes.filters),function(t){e["f-"+t[0]]=t[1]}),e},get_url:function(e){return this.get("url_base")+"?"+o.param(this.get_url_data())+"&"+o.param(e)}})}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(2),i(1))},function(e,t,n){var s,a;(function(o){s=[n(4)],a=function(e){return{grid:function(e){var t="";return t=e.embedded?this.grid_header(e)+this.grid_table(e):'
'+this.grid_table(e),e.info_text&&(t+='
'+e.info_text+"
"),t},grid_table:function(e){return'
'},grid_header:function(e){var t='"},header:function(e){var t="
";e.show_item_checkboxes&&(t+="",e.items.length>0&&(t+=' '),t+=" ");for(var i in e.columns){var n=e.columns[i];n.visible&&(t+='")}return t+=" "},body:function(e){var t="",i=0,n=e.items.length;0==n&&(t+='
No Items ',i=1);for(var s in e.items){var a=e.items[s],r=a.encode_id;t+="
",e.show_item_checkboxes&&(t+=' ');for(j in e.columns){var l=e.columns[j];if(l.visible){var c="";l.nowrap&&(c='style="white-space:nowrap;"');var d=a.column_config[l.label],h=d.link,u=d.value,p=d.target;"string"===o.type(u)&&(u=u.replace(/\/\//g,"/"));var f="",g="";l.attach_popup&&(f="grid-"+s+"-popup",g="menubutton",""!=h&&(g+=" split"),g+=" popup"),t+="",h?(0!=e.operations.length&&(t+=''),t+='",0!=e.operations.length&&(t+="
")):t+=''+(u||"")+"
",t+=" "}}t+=" ",i++}return t},footer:function(e){var t="";if(e.use_paging&&e.num_pages>1){var n=e.num_page_links,s=e.cur_page_num,a=e.num_pages,o=n/2,r=s-o,l=0;r<=0&&(r=1,l=o-(s-r));var c=o+l,d=s+c;d<=a?max_offset=0:(d=a,max_offset=c-(d+1-s)),0!=max_offset&&(r-=max_offset,r<1&&(r=1)),t+='
',e.show_item_checkboxes&&(t+=" "),t+='Page:',r>1&&(t+='1 ...');for(var h=r;h'+h+" ":''+h+" ";d'+a+" "),t+="",t+=' | Show All '}if(e.show_item_checkboxes){t+='
For selected items: ';for(i in e.operations){var u=e.operations[i];u.allow_multiple&&(t+=' ')}t+=" "}var p=!1;for(i in e.operations)if(e.operations[i].global_operation){p=!0;break}if(p){t+='
';for(i in e.operations){var u=e.operations[i];u.global_operation&&(t+=''+u.label+" ")}t+=" "}return e.legend&&(t+='
'+e.legend+" "),t},message:function(e){return'
'+e.message+'
'},grid_filters:function(e){var t=e.default_filter_dict,i=e.filters,n="none";e.advanced_search&&(n="block");var s=!1;for(var a in e.columns){var o=e.columns[a];if("advanced"==o.filterable){var r=o.key,l=i[r],c=t[r];l&&c&&l!=c&&(n="block"),s=!0}}var d="block";"block"==n&&(d="none");var h='
';for(var a in e.columns){var o=e.columns[a];"standard"==o.filterable&&(h+=this.grid_column_filter(e,o))}h+="
",s&&(h+='Advanced Search '),h+="
",h+='
Close Advanced Search ';for(var a in e.columns){var o=e.columns[a];"advanced"==o.filterable&&(h+=this.grid_column_filter(e,o))}return h+="
"},grid_column_filter:function(e,t){var i=(e.default_filter_dict,e.filters),n=t.label,s=t.key;"advanced"==t.filterable&&(n=n.toLowerCase());var a="
";if("advanced"==t.filterable&&(a+=''+n+": "),a+='',t.is_text){a+=''}else{a+='';var m=!1;for(cf_label in e.categorical_filters[s]){var v=e.categorical_filters[s][cf_label],_="",y="";for(key in v)_=key,y=v[key];m&&(a+=" | "),m=!0;var u=i[s];a+=u&&v[s]&&u==y?''+cf_label+" ":''+cf_label+" "}a+=" "}return a+=" "},filter_element:function(t,i){return i=e.sanitize(i),'
'+i+' '}}}.apply(t,s),!(void 0!==a&&(e.exports=a))}).call(t,n(1))},function(e,t,i){var n,s;(function(a){n=[i(41),i(86),i(5)],s=function(e,t,i){"use strict";function n(e){return function(t,i){return this.isNew()&&(i=i||{},i.url=this.urlRoot+this.get("history_id")+"/contents",t=t||{},t.type="dataset_collection"),e.call(this,t,i)}}var s=t.HistoryContentMixin,o=e.ListDatasetCollection,r=e.PairDatasetCollection,l=e.ListPairedDatasetCollection,c=e.ListOfListsDatasetCollection,d=o.extend(s).extend({defaults:a.extend(a.clone(o.prototype.defaults),{history_content_type:"dataset_collection",collection_type:"list",model_class:"HistoryDatasetCollectionAssociation"}),save:n(o.prototype.save),toString:function(){return"History"+o.prototype.toString.call(this)}}),h=r.extend(s).extend({defaults:a.extend(a.clone(r.prototype.defaults),{history_content_type:"dataset_collection",collection_type:"paired",model_class:"HistoryDatasetCollectionAssociation"}),save:n(r.prototype.save),toString:function(){return"History"+r.prototype.toString.call(this)}}),u=l.extend(s).extend({defaults:a.extend(a.clone(l.prototype.defaults),{history_content_type:"dataset_collection",collection_type:"list:paired",model_class:"HistoryDatasetCollectionAssociation"}),save:n(l.prototype.save),toString:function(){return"History"+l.prototype.toString.call(this)}}),p=c.extend(s).extend({defaults:a.extend(a.clone(c.prototype.defaults),{history_content_type:"dataset_collection",collection_type:"list:list",model_class:"HistoryDatasetCollectionAssociation"}),save:n(c.prototype.save),toString:function(){return["HistoryListOfListsDatasetCollection(",this.get("name"),")"].join("")}});return{HistoryListDatasetCollection:d,HistoryPairDatasetCollection:h,HistoryListPairedDatasetCollection:u,HistoryListOfListsDatasetCollection:p}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(2))},function(e,t,i){var n,s;(function(a,o,r){n=[i(77),i(84),i(50),i(53),i(6),i(147)],s=function(e,t,i,n,s,l){"use strict";var c=e.PaginatedCollection,d=c.extend(s.LoggableMixin).extend({_logNamespace:"history",model:function(e,n){if("dataset"===e.history_content_type)return new t.HistoryDatasetAssociation(e,n);if("dataset_collection"===e.history_content_type){switch(e.collection_type){case"list":return new i.HistoryListDatasetCollection(e,n);case"paired":return new i.HistoryPairDatasetCollection(e,n);case"list:paired":return new i.HistoryListPairedDatasetCollection(e,n);case"list:list":return new i.HistoryListOfListsDatasetCollection(e,n)}var s="Unknown collection_type: "+e.collection_type;return console.warn(s,e),{validationError:s}}return{validationError:"Unknown history_content_type: "+e.history_content_type}},limitPerPage:500,limitPerProgressiveFetch:500,order:"hid",urlRoot:Galaxy.root+"api/histories",url:function(){return this.urlRoot+"/"+this.historyId+"/contents"},initialize:function(e,t){t=t||{},c.prototype.initialize.call(this,e,t),this.history=t.history||null,this.setHistoryId(t.historyId||null),this.includeDeleted=t.includeDeleted||this.includeDeleted,this.includeHidden=t.includeHidden||this.includeHidden,
-this.model.prototype.idAttribute="type_id"},setHistoryId:function(e){this.historyId=e,this._setUpWebStorage()},_setUpWebStorage:function(e){if(this.historyId)return this.storage=new n.HistoryPrefs({id:n.HistoryPrefs.historyStorageKey(this.historyId)}),this.trigger("new-storage",this.storage,this),this.on({"include-deleted":function(e){this.storage.includeDeleted(e)},"include-hidden":function(e){this.storage.includeHidden(e)}}),this.includeDeleted=this.storage.includeDeleted()||!1,this.includeHidden=this.storage.includeHidden()||!1,this},comparators:a.extend(a.clone(c.prototype.comparators),{name:s.buildComparator("name",{ascending:!0}),"name-dsc":s.buildComparator("name",{ascending:!1}),hid:s.buildComparator("hid",{ascending:!1}),"hid-asc":s.buildComparator("hid",{ascending:!0})}),running:function(){return this.filter(function(e){return!e.inReadyState()})},runningAndActive:function(){return this.filter(function(e){return!e.inReadyState()&&e.get("visible")&&!e.get("deleted")})},getByHid:function(e){return this.findWhere({hid:e})},haveDetails:function(){return this.all(function(e){return e.hasDetails()})},hidden:function(){return this.filter(function(e){return e.hidden()})},deleted:function(){return this.filter(function(e){return e.get("deleted")})},visibleAndUndeleted:function(){return this.filter(function(e){return e.get("visible")&&!e.get("deleted")})},setIncludeDeleted:function(e,t){if(a.isBoolean(e)&&e!==this.includeDeleted){if(this.includeDeleted=e,a.result(t,"silent"))return;this.trigger("include-deleted",e,this)}},setIncludeHidden:function(e,t){if(a.isBoolean(e)&&e!==this.includeHidden){if(this.includeHidden=e,t=t||{},a.result(t,"silent"))return;this.trigger("include-hidden",e,this)}},fetch:function(e){if(e=e||{},this.historyId&&!e.details){var t=n.HistoryPrefs.get(this.historyId).toJSON();a.isEmpty(t.expandedIds)||(e.details=a.values(t.expandedIds).join(","))}return c.prototype.fetch.call(this,e)},_buildFetchData:function(e){return a.extend(c.prototype._buildFetchData.call(this,e),{v:"dev"})},_fetchParams:c.prototype._fetchParams.concat(["v","details"]),_buildFetchFilters:function(e){var t=c.prototype._buildFetchFilters.call(this,e)||{},i={};return this.includeDeleted||(i.deleted=!1,i.purged=!1),this.includeHidden||(i.visible=!0),a.defaults(t,i)},getTotalItemCount:function(){return this.history.contentsShown()},fetchUpdated:function(e,t){return e&&(t=t||{filters:{}},t.remove=!1,t.filters={"update_time-ge":e.toISOString(),visible:""}),this.fetch(t)},fetchDeleted:function(e){e=e||{};var t=this;return e.filters=a.extend(e.filters,{deleted:!0,purged:void 0}),e.remove=!1,t.trigger("fetching-deleted",t),t.fetch(e).always(function(){t.trigger("fetching-deleted-done",t)})},fetchHidden:function(e){e=e||{};var t=this;return e.filters=a.extend(e.filters,{visible:!1}),e.remove=!1,t.trigger("fetching-hidden",t),t.fetch(e).always(function(){t.trigger("fetching-hidden-done",t)})},fetchAllDetails:function(e){e=e||{};var t={details:"all"};return e.data=a.extend(e.data||{},t),this.fetch(e)},fetchCollectionCounts:function(e){return e=e||{},e.keys=["type_id","element_count"].join(","),e.filters=a.extend(e.filters||{},{history_content_type:"dataset_collection"}),e.remove=!1,this.fetch(e)},_filterAndUpdate:function(e,t){var i=this,n=i.model.prototype.idAttribute,s=[t];return i.fetch({filters:e,remove:!1}).then(function(e){return e=e.reduce(function(e,t,s){var a=i.get(t[n]);return a?e.concat(a):e},[]),i.ajaxQueue("save",s,e)})},ajaxQueue:function(e,t,i){return i=i||this.models,new l.AjaxQueue(i.slice().reverse().map(function(i,n){var s=a.isString(e)?i[e]:e;return function(){return s.apply(i,t)}})).deferred},progressivelyFetchDetails:function(e){function i(t){t=t||0;var o=a.extend(a.clone(e),{view:"summary",keys:c,limit:r,offset:t,reset:0===t,remove:!1});a.defer(function(){s.fetch.call(s,o).fail(n.reject).done(function(e){n.notify(e,r,t),e.length!==r?(s.allFetched=!0,n.resolve(e,r,t)):i(t+r)})})}e=e||{};var n=o.Deferred(),s=this,r=e.limitPerCall||s.limitPerProgressiveFetch,l=t.HistoryDatasetAssociation.prototype.searchAttributes,c=l.join(",");return i(),n},isCopyable:function(e){var t=["HistoryDatasetAssociation","HistoryDatasetCollectionAssociation"];return a.isObject(e)&&e.id&&a.contains(t,e.model_class)},copy:function(e){var t,i,n;a.isString(e)?(t=e,n="hda",i="dataset"):(t=e.id,n={HistoryDatasetAssociation:"hda",LibraryDatasetDatasetAssociation:"ldda",HistoryDatasetCollectionAssociation:"hdca"}[e.model_class]||"hda",i="hdca"===n?"dataset_collection":"dataset");var s=this,r=o.ajax(this.url(),{method:"POST",contentType:"application/json",data:JSON.stringify({content:t,source:n,type:i})}).done(function(e){s.add([e],{parse:!0})}).fail(function(e,a,o){s.trigger("error",s,r,{},"Error copying contents",{type:i,id:t,source:n})});return r},createHDCA:function(e,t,i,n,s){var a=this.model({history_content_type:"dataset_collection",collection_type:t,history_id:this.historyId,name:i,hide_source_items:n||!1,element_identifiers:e});return a.save(s)},haveSearchDetails:function(){return this.allFetched&&this.all(function(e){return a.has(e.attributes,"annotation")})},matches:function(e){return this.filter(function(t){return t.matches(e)})},clone:function(){var e=r.Collection.prototype.clone.call(this);return e.historyId=this.historyId,e},toString:function(){return["HistoryContents(",[this.historyId,this.length].join(),")"].join("")}});return{HistoryContents:d}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(2),i(1),i(3))},function(e,t,i){var n,s;(function(a,o,r,l){n=[i(51),i(53),i(77),i(4),i(6),i(5)],s=function(e,t,i,n,s,c){"use strict";var d=a.Model.extend(s.LoggableMixin).extend(s.mixin(s.SearchableModelMixin,{_logNamespace:"history",UPDATE_DELAY:4e3,defaults:{model_class:"History",id:null,name:"Unnamed History",state:"new",deleted:!1,contents_active:{},contents_states:{}},urlRoot:Galaxy.root+"api/histories",contentsClass:e.HistoryContents,searchAttributes:["name","annotation","tags"],searchAliases:{title:"name",tag:"tags"},initialize:function(e,t){t=t||{},this.logger=t.logger||null,this.log(this+".initialize:",e,t),this.contents=new this.contentsClass([],{history:this,historyId:this.get("id"),order:t.order}),this._setUpListeners(),this._setUpCollectionListeners(),this.updateTimeoutId=null},_setUpListeners:function(){return this.on({error:function(e,t,i,n,s){this.clearUpdateTimeout()},"change:id":function(e,t){this.contents&&(this.contents.historyId=t)}})},_setUpCollectionListeners:function(){return this.contents?this.listenTo(this.contents,{error:function(){this.trigger.apply(this,o.makeArray(arguments))}}):this},contentsShown:function(){var e=this.get("contents_active"),t=e.active||0;return t+=this.contents.includeDeleted?e.deleted:0,t+=this.contents.includeHidden?e.hidden:0},nice_size:function(){var e=this.get("size");return e?n.bytesToString(e,!0,2):c("(empty)")},toJSON:function(){return r.extend(a.Model.prototype.toJSON.call(this),{nice_size:this.nice_size()})},get:function(e){return"nice_size"===e?this.nice_size():a.Model.prototype.get.apply(this,arguments)},ownedByCurrUser:function(){return!(!Galaxy||!Galaxy.user)&&(!Galaxy.user.isAnonymous()&&Galaxy.user.id===this.get("user_id"))},numOfUnfinishedJobs:function(){var e=this.get("non_ready_jobs");return e?e.length:0},numOfUnfinishedShownContents:function(){return this.contents.runningAndActive().length||0},_fetchContentRelatedAttributes:function(){var e=["size","non_ready_jobs","contents_active","hid_counter"];return this.fetch({data:l.param({keys:e.join(",")})})},refresh:function(e){e=e||{};var t=this,i=t.lastUpdateTime;this.contents.allFetched=!1;var n=0!==t.contents.currentPage?function(){return t.contents.fetchPage(t.contents.currentPage)}:function(){return t.contents.fetchUpdated(i)};return n().done(function(i,n,s){var a;try{a=new Date(s.getResponseHeader("Date"))}catch(e){}t.lastUpdateTime=a||new Date,t.checkForUpdates(e)})},checkForUpdates:function(e){function t(){n.clearUpdateTimeout(),n.updateTimeoutId=setTimeout(function(){n.refresh(e)},i)}e=e||{};var i=this.UPDATE_DELAY,n=this;if(n.id){var s=this.numOfUnfinishedShownContents();s>0?t():n._fetchContentRelatedAttributes().done(function(e){n.numOfUnfinishedJobs()>0?t():n.trigger("ready")})}},clearUpdateTimeout:function(){this.updateTimeoutId&&(clearTimeout(this.updateTimeoutId),this.updateTimeoutId=null)},parse:function(e,t){var i=a.Model.prototype.parse.call(this,e,t);return i.create_time&&(i.create_time=new Date(i.create_time)),i.update_time&&(i.update_time=new Date(i.update_time)),i},fetchWithContents:function(e,t){e=e||{};var i=this;return e.view="dev-detailed",this.fetch(e).then(function(e){return i.contents.history=i,i.contents.setHistoryId(e.id),i.fetchContents(t)})},fetchContents:function(e){e=e||{};var t=this;return t.lastUpdateTime=new Date,t.contents.fetchCurrentPage(e)},_delete:function(e){return this.get("deleted")?o.when():this.save({deleted:!0},e)},purge:function(e){return this.get("purged")?o.when():this.save({deleted:!0,purged:!0},e)},undelete:function(e){return this.get("deleted")?this.save({deleted:!1},e):o.when()},copy:function(e,t,i){if(e=void 0===e||e,!this.id)throw new Error("You must set the history ID before copying it.");var n={history_id:this.id};e&&(n.current=!0),t&&(n.name=t),i||(n.all_datasets=!1),n.view="dev-detailed";var s=this,a=o.post(this.urlRoot,n);return e?a.then(function(e){var t=new d(e);return t.setAsCurrent().done(function(){s.trigger("copied",s,e)})}):a.done(function(e){s.trigger("copied",s,e)})},setAsCurrent:function(){var e=this,t=o.getJSON(Galaxy.root+"history/set_as_current?id="+this.id);return t.done(function(){e.trigger("set-as-current",e)}),t},toString:function(){return"History("+this.get("id")+","+this.get("name")+")"}})),h=i.InfinitelyScrollingCollection,u=h.extend(s.LoggableMixin).extend({_logNamespace:"history",model:d,order:"update_time",limitOnFirstFetch:10,limitPerFetch:10,initialize:function(e,t){t=t||{},this.log("HistoryCollection.initialize",e,t),h.prototype.initialize.call(this,e,t),this.includeDeleted=t.includeDeleted||!1,this.currentHistoryId=t.currentHistoryId,this.setUpListeners()},urlRoot:Galaxy.root+"api/histories",url:function(){return this.urlRoot},setUpListeners:function(){return this.on({"change:deleted":function(e){this.debug("change:deleted",this.includeDeleted,e.get("deleted")),!this.includeDeleted&&e.get("deleted")&&this.remove(e)},copied:function(e,t){this.setCurrent(new d(t,[]))},"set-as-current":function(e){var t=this.currentHistoryId;this.trigger("no-longer-current",t),this.currentHistoryId=e.id}})},_buildFetchData:function(e){return r.extend(h.prototype._buildFetchData.call(this,e),{view:"dev-detailed"})},_buildFetchFilters:function(e){var t=h.prototype._buildFetchFilters.call(this,e)||{},i={};return this.includeDeleted?i.deleted=null:(i.deleted=!1,i.purged=!1),r.defaults(t,i)},fetchFirst:function(e){var t=this,i=l.when();return this.currentHistoryId&&(i=h.prototype.fetchFirst.call(t,{silent:!0,limit:1,filters:{purged:"",deleted:"","encoded_id-in":this.currentHistoryId}})),i.then(function(){return e=e||{},e.offset=0,t.fetchMore(e)})},comparators:r.extend(r.clone(h.prototype.comparators),{name:s.buildComparator("name",{ascending:!0}),"name-dsc":s.buildComparator("name",{ascending:!1}),size:s.buildComparator("size",{ascending:!1}),"size-asc":s.buildComparator("size",{ascending:!0})}),sort:function(e){e=e||{};var t=e.silent,i=this.remove(this.get(this.currentHistoryId));return h.prototype.sort.call(this,r.defaults({silent:!0},e)),this.unshift(i,{silent:!0}),t||this.trigger("sort",this,e),this},create:function(e,t,i,n){var s=this,a=o.getJSON(Galaxy.root+"history/create_new_current");return a.done(function(e){s.setCurrent(new d(e,[],i||{}))})},setCurrent:function(e,t){return t=t||{},this.unshift(e,t),this.currentHistoryId=e.get("id"),t.silent||this.trigger("new-current",e,this),this},toString:function(){return"HistoryCollection("+this.length+",current:"+this.currentHistoryId+")"}});return{History:d,HistoryCollection:u}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1),i(2),i(1))},function(e,t,i){var n,s;(function(a){n=[i(6)],s=function(e){"use strict";var t=e.SessionStorageModel.extend({defaults:{expandedIds:{},show_deleted:!1,show_hidden:!1},addExpanded:function(e){var t=this.get("expandedIds");t[e.id]=e.get("id"),this.save("expandedIds",t)},removeExpanded:function(e){var t=this.get("expandedIds");delete t[e.id],this.save("expandedIds",t)},isExpanded:function(e){return a.result(this.get("expandedIds"),e,!1)},allExpanded:function(){return a.values(this.get("expandedIds"))},clearExpanded:function(){this.set("expandedIds",{})},includeDeleted:function(e){return a.isUndefined(e)||this.set("show_deleted",e),this.get("show_deleted")},includeHidden:function(e){return a.isUndefined(e)||this.set("show_hidden",e),this.get("show_hidden")},toString:function(){return"HistoryPrefs("+this.id+")"}},{storageKeyPrefix:"history:",historyStorageKey:function(e){if(!e)throw new Error("HistoryPrefs.historyStorageKey needs valid id: "+e);return t.storageKeyPrefix+e},get:function(e){return new t({id:t.historyStorageKey(e)})},clearAll:function(e){for(var i in sessionStorage)0===i.indexOf(t.storageKeyPrefix)&&sessionStorage.removeItem(i)}});return{HistoryPrefs:t}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(2))},function(e,t,i){var n,s;(function(a,o,r,l){n=[i(6),i(5)],s=function(e,t){"use strict";var i="list",n=a.View.extend(e.LoggableMixin).extend({_logNamespace:i,initialize:function(e){this.expanded=e.expanded||!1,this.log("\t expanded:",this.expanded),this.fxSpeed=void 0!==e.fxSpeed?e.fxSpeed:this.fxSpeed},fxSpeed:"fast",render:function(e){var t=this._buildNewRender();return this._setUpBehaviors(t),this._queueNewRender(t,e),this},_buildNewRender:function(){var e=o(this.templates.el(this.model.toJSON(),this));return this.expanded&&this.$details(e).replaceWith(this._renderDetails().show()),e},_queueNewRender:function(e,t){t=void 0===t?this.fxSpeed:t;var i=this;0===t?(i._swapNewRender(e),i.trigger("rendered",i)):o(i).queue("fx",[function(e){i.$el.fadeOut(t,e)},function(t){i._swapNewRender(e),t()},function(e){i.$el.fadeIn(t,e)},function(e){i.trigger("rendered",i),e()}])},_swapNewRender:function(e){return this.$el.empty().attr("class",r.isFunction(this.className)?this.className():this.className).append(e.children())},_setUpBehaviors:function(e){e=e||this.$el,e.find("[title]").tooltip({placement:"bottom"})},$details:function(e){return e=e||this.$el,e.find("> .details")},_renderDetails:function(){var e=o(this.templates.details(this.model.toJSON(),this));return this._setUpBehaviors(e),e},toggleExpanded:function(e){return e=void 0===e?!this.expanded:e,e?this.expand():this.collapse(),this},expand:function(){var e=this;return e._fetchModelDetails().always(function(){e._expand()})},_fetchModelDetails:function(){return this.model.hasDetails()?l.when():this.model.fetch()},_expand:function(){var e=this,t=e._renderDetails();e.$details().replaceWith(t),e.expanded=!0,e.$details().slideDown(e.fxSpeed,function(){e.trigger("expanded",e)})},collapse:function(){this.debug(this+"(ExpandableView).collapse");var e=this;e.expanded=!1,this.$details().slideUp(e.fxSpeed,function(){e.trigger("collapsed",e)})}}),s=n.extend(e.mixin(e.SelectableViewMixin,e.DraggableViewMixin,{tagName:"div",className:"list-item",initialize:function(t){n.prototype.initialize.call(this,t),e.SelectableViewMixin.initialize.call(this,t),e.DraggableViewMixin.initialize.call(this,t),this._setUpListeners()},_setUpListeners:function(){return this.on("selectable",function(e){e?this.$(".primary-actions").hide():this.$(".primary-actions").show()},this),this},_buildNewRender:function(){var e=n.prototype._buildNewRender.call(this);return e.children(".warnings").replaceWith(this._renderWarnings()),e.children(".title-bar").replaceWith(this._renderTitleBar()),e.children(".primary-actions").append(this._renderPrimaryActions()),e.find("> .title-bar .subtitle").replaceWith(this._renderSubtitle()),e},_swapNewRender:function(e){return n.prototype._swapNewRender.call(this,e),this.selectable&&this.showSelector(0),this.draggable&&this.draggableOn(),this.$el},_renderWarnings:function(){var e=this,t=o('
'),i=e.model.toJSON();return r.each(e.templates.warnings,function(n){t.append(o(n(i,e)))}),t},_renderTitleBar:function(){return o(this.templates.titleBar(this.model.toJSON(),this))},_renderPrimaryActions:function(){return[]},_renderSubtitle:function(){return o(this.templates.subtitle(this.model.toJSON(),this))},events:{"click .title-bar":"_clickTitleBar","keydown .title-bar":"_keyDownTitleBar","click .selector":"toggleSelect"},_clickTitleBar:function(e){e.stopPropagation(),e.altKey?(this.toggleSelect(e),this.selectable||this.showSelector()):this.toggleExpanded()},_keyDownTitleBar:function(e){var t=32,i=13;return!e||"keydown"!==e.type||e.keyCode!==t&&e.keyCode!==i||(this.toggleExpanded(),e.stopPropagation(),!1)},toString:function(){var e=this.model?this.model+"":"(no model)";return"ListItemView("+e+")"}}));s.prototype.templates=function(){var t=e.wrapTemplate(['
"]),i={},n=e.wrapTemplate(['
','
','
','<%- element.name %> ',"
",'
',"
"],"element"),s=e.wrapTemplate(['
']),a=e.wrapTemplate(['
']);return{el:t,warnings:i,titleBar:n,subtitle:s,details:a}}();var c=s.extend({foldoutStyle:"foldout",foldoutPanelClass:null,initialize:function(e){"drilldown"===this.foldoutStyle&&(this.expanded=!1),this.foldoutStyle=e.foldoutStyle||this.foldoutStyle,this.foldoutPanelClass=e.foldoutPanelClass||this.foldoutPanelClass,s.prototype.initialize.call(this,e),this.foldout=this._createFoldoutPanel()},_renderDetails:function(){if("drilldown"===this.foldoutStyle)return o();var e=s.prototype._renderDetails.call(this);return this._attachFoldout(this.foldout,e)},_createFoldoutPanel:function(){var e=this.model,t=this._getFoldoutPanelClass(e),i=this._getFoldoutPanelOptions(e),n=new t(r.extend(i,{model:e}));return n},_getFoldoutPanelClass:function(){return this.foldoutPanelClass},_getFoldoutPanelOptions:function(){return{foldoutStyle:this.foldoutStyle,fxSpeed:this.fxSpeed}},_attachFoldout:function(e,t){return t=t||this.$("> .details"),this.foldout=e.render(0),e.$("> .controls").hide(),t.append(e.$el)},expand:function(){var e=this;return e._fetchModelDetails().always(function(){"foldout"===e.foldoutStyle?e._expand():"drilldown"===e.foldoutStyle&&e._expandByDrilldown()})},_expandByDrilldown:function(){var e=this;e.listenTo(e.foldout,"close",function(){e.trigger("collapsed:drilldown",e,e.foldout)}),e.trigger("expanded:drilldown",e,e.foldout)}});return c.prototype.templates=function(){var t=e.wrapTemplate(['
',"
"],"collection");return r.extend({},s.prototype.templates,{details:t})}(),{ExpandableView:n,ListItemView:s,FoldoutListItemView:c}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1),i(2),i(1))},function(e,t,i){var n,s;(function(a,o){n=[i(6),i(5)],s=function(e,t){var i=a.View.extend(e.LoggableMixin).extend(e.HiddenUntilActivatedViewMixin).extend({tagName:"div",className:"tags-display",initialize:function(e){e.usePrompt===!1?this.label="":this.label='
'+t("Tags")+" ",this.hiddenUntilActivated(e.$activator,e)},render:function(){var e=this;return this.$el.html(this._template()),this.$input().select2({placeholder:"Add tags",width:"100%",tags:function(){return e._getTagsUsed()}}),this._setUpBehaviors(),this},_hashToName:function(e){return e.startsWith("#")?"name:"+e.slice(1):e},_nameToHash:function(e){return e.startsWith("name:")&&(e="#"+e.slice(5)),e},_template:function(){return[this.label,'
'].join("")},tagsToCSV:function(){var e=this,t=this.model.get("tags");return!o.isArray(t)||o.isEmpty(t)?"":t.map(function(t){return o.escape(e._nameToHash(t))}).sort().join(",")},$input:function(){return this.$el.find("input.tags-input")},_getTagsUsed:function(){var e=this;return o.map(Galaxy.user.get("tags_used"),e._nameToHash)},_setUpBehaviors:function(){var e=this;this.$input().on("change",function(t){t.val=o.map(t.val,e._hashToName),e.model.save({tags:t.val}),t.added&&e._addNewTagToTagsUsed(t.added.text+"")})},_addNewTagToTagsUsed:function(e){var t=Galaxy.user.get("tags_used");o.contains(t,e)||(t.push(e),t.sort(),Galaxy.user.set("tags_used",t))},remove:function(){this.$input.off(),this.stopListening(this.model),a.View.prototype.remove.call(this)},toString:function(){return["TagsEditor(",this.model+"",")"].join("")}});return{TagsEditor:i}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(2))},function(e,t,i){var n,s;(function(a,o){n=[i(2),i(19),i(10),i(30)],s=function(e,t,i,n){"use strict";var s={hidden:!1,show:function(){this.set("hidden",!1)},hide:function(){this.set("hidden",!0)},toggle:function(){this.set("hidden",!this.get("hidden"))},is_visible:function(){return!this.attributes.hidden}},r=a.Model.extend({defaults:{name:null,label:null,type:null,value:null,html:null,num_samples:5},initialize:function(e){this.attributes.html=unescape(this.attributes.html)},copy:function(){return new r(this.toJSON())},set_value:function(e){this.set("value",e||"")}}),l=a.Collection.extend({model:r}),c=r.extend({}),d=r.extend({set_value:function(e){this.set("value",parseInt(e,10))},get_samples:function(){return d3.scale.linear().domain([this.get("min"),this.get("max")]).ticks(this.get("num_samples"))}}),h=d.extend({set_value:function(e){this.set("value",parseFloat(e))}}),u=r.extend({get_samples:function(){return e.map(this.get("options"),function(e){return e[0]})}});r.subModelTypes={integer:d,float:h,data:c,select:u};var p=a.Model.extend({defaults:{id:null,name:null,description:null,target:null,inputs:[],outputs:[]},urlRoot:Galaxy.root+"api/tools",initialize:function(t){this.set("inputs",new l(e.map(t.inputs,function(e){var t=r.subModelTypes[e.type]||r;return new t(e)})))},toJSON:function(){var e=a.Model.prototype.toJSON.call(this);return e.inputs=this.get("inputs").map(function(e){return e.toJSON()}),e},remove_inputs:function(e){var t=this,i=t.get("inputs").filter(function(t){return e.indexOf(t.get("type"))!==-1});t.get("inputs").remove(i)},copy:function(e){var t=new p(this.toJSON());if(e){var i=new a.Collection;t.get("inputs").each(function(e){e.get_samples()&&i.push(e)}),t.set("inputs",i)}return t},apply_search_results:function(t){return e.indexOf(t,this.attributes.id)!==-1?this.show():this.hide(),this.is_visible()},set_input_value:function(e,t){this.get("inputs").find(function(t){return t.get("name")===e}).set("value",t)},set_input_values:function(t){var i=this;e.each(e.keys(t),function(e){i.set_input_value(e,t[e])})},run:function(){return this._run()},rerun:function(e,t){return this._run({action:"rerun",target_dataset_id:e.id,regions:t})},get_inputs_dict:function(){var e={};return this.get("inputs").each(function(t){e[t.get("name")]=t.get("value")}),e},_run:function(n){var s=e.extend({tool_id:this.id,inputs:this.get_inputs_dict()},n),a=o.Deferred(),r=new t.ServerStateDeferred({ajax_settings:{url:this.urlRoot,data:JSON.stringify(s),dataType:"json",contentType:"application/json",type:"POST"},interval:2e3,success_fn:function(e){return"pending"!==e}});return o.when(r.go()).then(function(e){a.resolve(new i.DatasetCollection(e))}),a}});e.extend(p.prototype,s);var f=(a.View.extend({}),a.Collection.extend({model:p})),g=a.Model.extend(s),m=a.Model.extend({defaults:{elems:[],open:!1},clear_search_results:function(){e.each(this.attributes.elems,function(e){e.show()}),this.show(),this.set("open",!1)},apply_search_results:function(t){var i,n=!0;e.each(this.attributes.elems,function(e){e instanceof g?(i=e,i.hide()):e instanceof p&&e.apply_search_results(t)&&(n=!1,i&&i.show())}),n?this.hide():(this.show(),this.set("open",!0))}});e.extend(m.prototype,s);var v=a.Model.extend({defaults:{search_hint_string:"search tools",min_chars_for_search:3,clear_btn_url:"",visible:!0,query:"",results:null,clear_key:27},urlRoot:Galaxy.root+"api/tools",initialize:function(){this.on("change:query",this.do_search)},do_search:function(){var e=this.attributes.query;if(e.length
");e.append(E.tool_link(this.model.toJSON()));var t=this.model.get("form_style",null);if("upload1"===this.model.id)e.find("a").on("click",function(e){e.preventDefault(),Galaxy.upload.show()});else if("regular"===t){var i=this;e.find("a").on("click",function(e){e.preventDefault(),Galaxy.router.push("/",{tool_id:i.model.id,version:i.model.get("version")})})}return this.$el.append(e),this}}),b=y.extend({tagName:"div",className:"toolPanelLabel",render:function(){return this.$el.append(o(" ").text(this.model.attributes.text)),this}}),x=y.extend({tagName:"div",className:"toolSectionWrapper",initialize:function(){y.prototype.initialize.call(this),this.model.on("change:open",this.update_open,this)},render:function(){this.$el.append(E.panel_section(this.model.toJSON()));var t=this.$el.find(".toolSectionBody");return e.each(this.model.attributes.elems,function(e){if(e instanceof p){var i=new w({model:e,className:"toolTitle"});i.render(),t.append(i.$el)}else if(e instanceof g){var n=new b({model:e});n.render(),t.append(n.$el)}}),this},events:{"click .toolSectionTitle > a":"toggle"},toggle:function(){this.model.set("open",!this.model.attributes.open)},update_open:function(){this.model.attributes.open?this.$el.children(".toolSectionBody").slideDown("fast"):this.$el.children(".toolSectionBody").slideUp("fast")}}),C=a.View.extend({tagName:"div",id:"tool-search",className:"bar",events:{click:"focus_and_select","keyup :input":"query_changed","change :input":"query_changed","click #search-clear-btn":"clear"},render:function(){return this.$el.append(E.tool_search(this.model.toJSON())),this.model.is_visible()||this.$el.hide(),o("#messagebox").is(":visible")&&this.$el.css("top","95px"),this.$el.find("[title]").tooltip(),this},focus_and_select:function(){this.$el.find(":input").focus().select()},clear:function(){return this.model.clear_search(),this.$el.find(":input").val(""),this.focus_and_select(),!1},query_changed:function(e){return this.model.attributes.clear_key&&this.model.attributes.clear_key===e.which?(this.clear(),!1):void this.model.set("query",this.$el.find(":input").val())}}),$=a.View.extend({tagName:"div",className:"toolMenu",initialize:function(){this.model.get("tool_search").on("change:results",this.handle_search_results,this)},render:function(){var e=this,t=new C({model:this.model.get("tool_search")});return t.render(),e.$el.append(t.$el),this.model.get("layout").each(function(t){if(t instanceof m){var i=new x({model:t});i.render(),e.$el.append(i.$el)}else if(t instanceof p){var n=new w({model:t,className:"toolTitleNoSection"});n.render(),e.$el.append(n.$el)}else if(t instanceof g){var s=new b({model:t});s.render(),e.$el.append(s.$el)}}),e.$el.find("a.tool-link").click(function(t){var i=o(this).attr("class").split(/\s+/)[0],n=e.model.get("tools").get(i);e.trigger("tool_link_click",t,n)}),this},handle_search_results:function(){var e=this.model.get("tool_search").get("results");e&&0===e.length?o("#search-no-results").show():o("#search-no-results").hide()}}),k=a.View.extend({className:"toolForm",render:function(){this.$el.children().remove(),this.$el.append(E.tool_form(this.model.toJSON()))}}),E=(a.View.extend({className:"toolMenuAndView",initialize:function(){this.tool_panel_view=new $({collection:this.collection}),this.tool_form_view=new k},render:function(){this.tool_panel_view.render(),this.tool_panel_view.$el.css("float","left"),this.$el.append(this.tool_panel_view.$el),this.tool_form_view.$el.hide(),this.$el.append(this.tool_form_view.$el);var e=this;this.tool_panel_view.on("tool_link_click",function(t,i){t.preventDefault(),e.show_tool(i)})},show_tool:function(e){var t=this;e.fetch().done(function(){t.tool_form_view.model=e,t.tool_form_view.render(),t.tool_form_view.$el.show(),o("#left").width("650px")})}}),{tool_search:e.template([' " autocomplete="off" type="text" />',' ',' '].join("")),panel_section:e.template(['",'','
',"
"].join("")),tool_link:e.template(['
',"<% _.each( labels, function( label ){ %>",'',"<%- label %>"," ","<% }); %>"," ",'
',"<%- name %>"," "," <%- description %>"].join("")),tool_form:e.template(['
<%- tool.name %> (version <%- tool.version %>)
','
',"<% _.each( tool.inputs, function( input ){ %>",'
","<% }); %>","
",'
',' ',"
",'
"].join(""),{variable:"tool"})});return{ToolParameter:r,IntegerToolParameter:d,SelectToolParameter:u,Tool:p,ToolCollection:f,ToolSearch:v,ToolPanel:_,ToolPanelView:$,ToolFormView:k}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1))},function(e,t,i){var n,s;(function(a,o){n=[i(4)],s=function(e){return a.View.extend({
-colors:{standard:["c00000","ff0000","ffc000","ffff00","92d050","00b050","00b0f0","0070c0","002060","7030a0"],base:["ffffff","000000","eeece1","1f497d","4f81bd","c0504d","9bbb59","8064a2","4bacc6","f79646"],theme:[["f2f2f2","7f7f7f","ddd9c3","c6d9f0","dbe5f1","f2dcdb","ebf1dd","e5e0ec","dbeef3","fdeada"],["d8d8d8","595959","c4bd97","8db3e2","b8cce4","e5b9b7","d7e3bc","ccc1d9","b7dde8","fbd5b5"],["bfbfbf","3f3f3f","938953","548dd4","95b3d7","d99694","c3d69b","b2a2c7","92cddc","fac08f"],["a5a5a5","262626","494429","17365d","366092","953734","76923c","5f497a","31859b","e36c09"],["7f7f7e","0c0c0c","1d1b10","0f243e","244061","632423","4f6128","3f3151","205867","974806"]]},initialize:function(t){this.options=e.merge(t,{}),this.setElement(this._template()),this.$panel=this.$(".ui-color-picker-panel"),this.$view=this.$(".ui-color-picker-view"),this.$value=this.$(".ui-color-picker-value"),this.$header=this.$(".ui-color-picker-header"),this._build(),this.visible=!1,this.value(this.options.value),this.$boxes=this.$(".ui-color-picker-box");var i=this;this.$boxes.on("click",function(){i.value(o(this).css("background-color")),i.$header.trigger("click")}),this.$header.on("click",function(){i.visible=!i.visible,i.visible?i.$view.fadeIn("fast"):i.$view.fadeOut("fast")})},value:function(e){return void 0!==e&&null!==e&&(this.$value.css("background-color",e),this.$(".ui-color-picker-box").empty(),this.$(this._getValue()).html(this._templateCheck()),this.options.onchange&&this.options.onchange(e)),this._getValue()},_getValue:function(){function e(e){return("0"+parseInt(e).toString(16)).slice(-2)}var t=this.$value.css("background-color");return t=t.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/),t?"#"+e(t[1])+e(t[2])+e(t[3]):null},_build:function(){this._content({colors:this.colors.base});for(var e in this.colors.theme){var t={};0==e?t.bottom=!0:e!=this.colors.theme.length-1?(t.top=!0,t.bottom=!0):t.top=!0,t.colors=this.colors.theme[e],this._content(t)}this._content({colors:this.colors.standard})},_content:function(e){var t=e.colors,i=o(this._templateContent()),n=i.find(".line");this.$panel.append(i);for(var s in t){var a=o(this._templateBox(t[s]));e.top&&(a.css("border-top","none"),a.css("border-top-left-radius","0px"),a.css("border-top-right-radius","0px")),e.bottom&&(a.css("border-bottom","none"),a.css("border-bottom-left-radius","0px"),a.css("border-bottom-right-radius","0px")),n.append(a)}return i},_templateCheck:function(){return'
'},_templateContent:function(){return'
'},_templateBox:function(e){return'
'},_template:function(){return'
'}})}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1))},function(e,t,n){var s,a;(function(o,r){s=[n(4),n(24)],a=function(e,t){var n=t.BaseIcons.extend({initialize:function(e){e.type=e.display||"checkbox",e.multiple="checkbox"==e.type,t.BaseIcons.prototype.initialize.call(this,e)},_setValue:function(e){if(t.BaseIcons.prototype._setValue.call(this,e),void 0!==e&&null!==e&&this.header_index){var i=this,n=o.isArray(e)?e:[e];r.each(n,function(e){var t=i.header_index[e];r.each(t,function(e){i._setState(e,!0)})})}},_setState:function(e,t){var i=this.$(".button-"+e),n=this.$(".subgroup-"+e);i.data("is_expanded",t),t?(n.show(),i.removeClass("fa-plus-square").addClass("fa-minus-square")):(n.hide(),i.removeClass("fa-minus-square").addClass("fa-plus-square"))},_templateOptions:function(){function t(e,t){var i=e.find(".button-"+t);i.on("click",function(){s._setState(t,!i.data("is_expanded"))})}function n(a,r,l){l=l||[];for(i in r){var c=r[i],d=c.options&&c.options.length>0,h=l.slice(0);s.header_index[c.value]=h.slice(0);var u=o("
");if(d){var p=e.uid(),f=o("
").addClass("button-"+p).addClass("ui-drilldown-button fa fa-plus-square"),g=o("
").addClass("subgroup-"+p).addClass("ui-drilldown-subgroup");u.append(o("
").append(f).append(s._templateOption({label:c.name,value:c.value}))),h.push(p),n(g,c.options,h),u.append(g),t(u,p)}else u.append(s._templateOption({label:c.name,value:c.value}));a.append(u)}}var s=this;this.header_index={};var a=o("
");return n(a,this.model.get("data")),a},_template:function(){return o("
").addClass("ui-options-list drilldown-container").attr("id",this.model.id)}});return{View:n}}.apply(t,s),!(void 0!==a&&(e.exports=a))}).call(t,n(1),n(2))},function(e,t,i){var n,s;(function(a,o,r){n=[i(4),i(7),i(25)],s=function(e,t,i){var n={DISABLED:"disabled",ENABLED:"enabled",LINKED:"linked"},s={data:[{src:"hda",icon:"fa-file-o",tooltip:"Single dataset",multiple:!1,batch:n.DISABLED},{src:"hda",icon:"fa-files-o",tooltip:"Multiple datasets",multiple:!0,batch:n.LINKED},{src:"hdca",icon:"fa-folder-o",tooltip:"Dataset collection",multiple:!1,batch:n.LINKED}],data_multiple:[{src:"hda",icon:"fa-files-o",tooltip:"Multiple datasets",multiple:!0,batch:n.DISABLED},{src:"hdca",icon:"fa-folder-o",tooltip:"Dataset collections",multiple:!0,batch:n.DISABLED}],data_collection:[{src:"hdca",icon:"fa-folder-o",tooltip:"Dataset collection",multiple:!1,batch:n.DISABLED}],workflow_data:[{src:"hda",icon:"fa-file-o",tooltip:"Single dataset",multiple:!1,batch:n.DISABLED}],workflow_data_multiple:[{src:"hda",icon:"fa-files-o",tooltip:"Multiple datasets",multiple:!0,batch:n.DISABLED}],workflow_data_collection:[{src:"hdca",icon:"fa-folder-o",tooltip:"Dataset collection",multiple:!1,batch:n.DISABLED}],module_data:[{src:"hda",icon:"fa-file-o",tooltip:"Single dataset",multiple:!1,batch:n.DISABLED},{src:"hda",icon:"fa-files-o",tooltip:"Multiple datasets",multiple:!0,batch:n.ENABLED}],module_data_collection:[{src:"hdca",icon:"fa-folder-o",tooltip:"Dataset collection",multiple:!1,batch:n.DISABLED},{src:"hdca",icon:"fa-folder",tooltip:"Multiple collections",multiple:!0,batch:n.ENABLED}]},l=a.View.extend({initialize:function(e){var i=this;this.model=e&&e.model||new a.Model({src_labels:{hda:"dataset",hdca:"dataset collection"},pagelimit:100,statustimer:1e3}).set(e),this.setElement(o("
").addClass("ui-select-content")),this.button_product=new t.RadioButton.View({value:"false",data:[{icon:"fa fa-chain",value:"false",tooltip:"Linked inputs will be run in matched order with other datasets e.g. use this for matching forward and reverse reads."},{icon:"fa fa-chain-broken",value:"true",tooltip:"Unlinked dataset inputs will be run against *all* other inputs."}]});var n=o("
").addClass("ui-form-info").append(o("
").addClass("fa fa-sitemap")).append(o("
").html("This is a batch mode input field. Separate jobs will be triggered for each dataset selection."));this.$batch={linked:n.clone(),enabled:n.clone().append(o("
").append(o("
").addClass("ui-form-title").html("Batch options:")).append(this.button_product.$el)).append(o("
").css("clear","both"))},this.$el.on("dragenter",function(e){this.lastenter=e.target,i.$el.addClass("ui-dragover")}).on("dragover",function(e){e.preventDefault()}).on("dragleave",function(e){this.lastenter===e.target&&i.$el.removeClass("ui-dragover")}).on("drop",function(e){i._handleDrop(e)}),this.history={},this.listenTo(this.model,"change:data",this._changeData,this),this.listenTo(this.model,"change:wait",this._changeWait,this),this.listenTo(this.model,"change:current",this._changeCurrent,this),this.listenTo(this.model,"change:value",this._changeValue,this),this.listenTo(this.model,"change:type change:optional change:multiple change:extensions",this._changeType,this),this.render(),this.on("change",function(){e.onchange&&e.onchange(i.value())})},render:function(){this._changeType(),this._changeValue(),this._changeWait()},wait:function(){this.model.set("wait",!0)},unwait:function(){this.model.set("wait",!1)},update:function(e){this.model.set("data",e)},value:function(e){void 0!==e&&this.model.set("value",e);var t=this.model.get("current");if(this.config[t]){var i=this.fields[t].value();if(null!==i&&(i=o.isArray(i)?i:[i],i.length>0)){var n=this._batch({values:[]});for(var s in i){var a=this.history[i[s]+"_"+this.config[t].src];if(!a)return Galaxy.emit.debug("ui-select-content::value()","Requested details not found for '"+i[s]+"'."),null;n.values.push(a)}return n.values.sort(function(e,t){return e.hid-t.hid}),n}}else Galaxy.emit.debug("ui-select-content::value()","Invalid value/source '"+e+"'.");return null},_changeCurrent:function(){var e=this;r.each(this.fields,function(t,i){e.model.get("current")==i?(t.$el.show(),r.each(e.$batch,function(t,n){t[e.config[i].batch==n?"show":"hide"]()}),e.button_type.value(i)):t.$el.hide()})},_changeType:function(){var n=this,a=(this.model.get("flavor")?this.model.get("flavor")+"_":"")+String(this.model.get("type"))+(this.model.get("multiple")?"_multiple":"");s[a]?this.config=s[a]:(this.config=s.data,Galaxy.emit.debug("ui-select-content::_changeType()","Invalid configuration/type id '"+a+"'."));var o=n.model.get("data"),l=e.textify(this.model.get("extensions")),c=this.model.get("src_labels");this.fields=[],this.button_data=[],r.each(this.config,function(e,t){n.button_data.push({value:t,icon:e.icon,tooltip:e.tooltip}),n.fields.push(new i.View({optional:n.model.get("optional"),multiple:e.multiple,searchable:!e.multiple||o&&o[e.src]&&o[e.src].length>n.model.get("pagelimit"),selectall:!1,error_text:"No "+(l?l+" ":"")+(c[e.src]||"content")+" available.",onchange:function(){n.trigger("change")}}))}),this.button_type=new t.RadioButton.View({value:this.model.get("current"),data:this.button_data,onchange:function(e){n.model.set("current",e),n.trigger("change")}}),this.$el.empty();var d=0;this.fields.length>1&&(this.$el.append(this.button_type.$el),d=Math.max(0,36*this.fields.length)+"px"),r.each(this.fields,function(e){n.$el.append(e.$el.css({"margin-left":d}))}),r.each(this.$batch,function(e,t){n.$el.append(e.css({"margin-left":d}))}),this.model.set("current",0),this._changeCurrent(),this._changeData()},_changeWait:function(){var e=this;r.each(this.fields,function(t){t[e.model.get("wait")?"wait":"unwait"]()})},_changeData:function(){var e=this.model.get("data"),t=this,i={};r.each(e,function(e,n){i[n]=[],r.each(e,function(e){i[n].push({hid:e.hid,keep:e.keep,label:e.hid+": "+e.name,value:e.id,tags:e.tags}),t.history[e.id+"_"+n]=e})}),r.each(this.config,function(e,n){i[e.src]&&t.fields[n].add(i[e.src],function(e,t){return t.hid-e.hid})})},_changeValue:function(){var e=this.model.get("value");if(e&&e.values&&e.values.length>0){var t=[];r.each(e.values,function(e){t.push(e.id)});for(var i=e.values[0].src,n=e.values.length>1,s=0;s
Select Library
'}});return{View:r}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3))},function(e,t,i){var n,s;(function(a,o){n=[i(4)],s=function(e){var t=a.View.extend({initialize:function(t){var i=this;this.model=t&&t.model||new a.Model({id:e.uid(),min:null,max:null,step:null,precise:!1,split:1e4,value:null,onchange:function(){}}).set(t),this.setElement(this._template()),this.$el.attr("id",this.model.id),this.$text=this.$(".ui-form-slider-text"),this.$slider=this.$(".ui-form-slider-element");var n=[];this.$text.on("change",function(){i.value(o(this).val())}).on("keyup",function(e){n[e.which]=!1}).on("keydown",function(e){var t=e.which;n[t]=!0,i.model.get("is_workflow")&&n[16]&&52==t?(i.value("$"),event.preventDefault()):8==t||9==t||13==t||37==t||39==t||t>=48&&t<=57&&!n[16]||t>=96&&t<=105||(190==t||110==t)&&o(this).val().indexOf(".")==-1&&i.model.get("precise")||(189==t||109==t)&&o(this).val().indexOf("-")==-1||i._isParameter(o(this).val())||n[91]||n[17]||event.preventDefault()});var s=this.model.attributes;this.has_slider=null!==s.max&&null!==s.min&&s.max>s.min;var r=s.step;r||(r=s.precise&&this.has_slider?(s.max-s.min)/s.split:1),this.has_slider?(this.$text.addClass("ui-form-slider-left"),this.$slider.slider({min:s.min,max:s.max,step:r}).on("slide",function(e,t){i.value(t.value)})):this.$slider.hide(),this.listenTo(this.model,"change",this.render,this),this.render()},render:function(){var e=this.model.get("value");this.has_slider&&this.$slider.slider("value",e),e!==this.$text.val()&&this.$text.val(e)},value:function(e){var t=this.model.attributes;return void 0!==e&&(null===e||""===e||this._isParameter(e)||(isNaN(e)&&(e=0),!t.precise&&(e=Math.round(e)),null!==t.max&&(e=Math.min(e,t.max)),null!==t.min&&(e=Math.max(e,t.min))),this.model.set("value",e),this.model.trigger("change"),t.onchange(e)),this.model.get("value")},_isParameter:function(e){return this.model.get("is_workflow")&&"$"===String(e).substring(0,1)},_template:function(){return'
'}});return{View:t}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1))},function(e,t,i){var n,s;(function(a,o){n=[i(4)],s=function(e){var t=a.View.extend({initialize:function(e){this.collection=new a.Collection,this.model=e&&e.model||new a.Model({onchange:null,visible:!0}).set(e),this.setElement(o(this._template())),this.$nav=this.$(".tab-navigation"),this.$content=this.$(".tab-content"),this.$el.on("click",function(){o(".tooltip").hide()}),this.render(),this.listenTo(this.model,"change",this.render,this),this.listenTo(this.collection,"add",this._add,this),this.listenTo(this.collection,"remove",this._remove,this),this.listenTo(this.collection,"change",this._change,this),this.listenTo(this.collection,"reset",this._reset,this),this.listenTo(this.collection,"add remove reset",this.render,this)},render:function(){var e=this.model.get("current");e=this.$("#"+e).length>0?e:this.first(),e&&(this.$nav.children().removeClass("active"),this.$content.children().removeClass("active"),this.$("#tab-"+e).addClass("active"),this.$("#"+e).addClass("active")),this.$el[this.model.get("visible")?"fadeIn":"fadeOut"]("fast"),this.$nav[this.size()>1?"show":"hide"]()},current:function(){return this.model.get("current")},show:function(e){e&&(this.model.set({current:e,visible:!0}),this.model.get("onchange")&&this.model.get("onchange")(e))},hide:function(){this.model.set("visible",!1)},first:function(){var e=this.collection.first();return e&&e.id},size:function(){return this.collection.length},add:function(e){this.collection.add(e)},del:function(e){this.collection.remove(e)},delAll:function(){this.collection.reset()},showTab:function(e){this.collection.get(e).set("hidden",!1)},hideTab:function(e){this.collection.get(e).set("hidden",!0)},_add:function(e){var t=this,i=e.attributes;this.$content.append(o("
").attr("id",i.id).addClass("tab-pane").append(i.$el)),this.$nav.append(o(this._template_tab(i)).show().tooltip({title:i.tooltip,placement:"bottom",container:t.$el}).on("click",function(e){e.preventDefault(),t.show(i.id)})),1==this.size()&&this.show(i.id)},_remove:function(e){this.$("#tab-"+e.id).remove(),this.$("#"+e.id).remove()},_reset:function(){this.$nav.empty(),this.$content.empty()},_change:function(e){this.$("#tab-"+e.id)[e.get("hidden")?"hide":"show"]()},_template:function(){return o("
").addClass("ui-tabs tabbable tabs-left").append(o("
").addClass("tab-navigation nav nav-tabs")).append(o("
").addClass("tab-content"))},_template_tab:function(e){var t=o("
").addClass("tab-element").attr("id","tab-"+e.id).append(o("
").attr("id","tab-title-link-"+e.id)),i=t.find("a");return e.icon&&i.append(o("
").addClass("tab-icon fa").addClass(e.icon)),i.append(o("
").attr("id","tab-title-text-"+e.id).addClass("tab-title-text").append(e.title)),t}});return{View:t}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1))},function(e,t,i){var n,s;(function(a,o,r){n=[i(4)],s=function(e){return a.View.extend({initialize:function(t){var i=this;this.options=e.merge(t,{class_add:"upload-icon-button fa fa-square-o",class_remove:"upload-icon-button fa fa-check-square-o",class_partial:"upload-icon-button fa fa-minus-square-o",collection:null,onchange:function(){},onadd:function(){},onremove:function(){}}),this.collection=this.options.collection,this.setElement(this._template()),this.rows=[],e.get({url:Galaxy.root+"api/remote_files",success:function(e){i._fill(e)},error:function(){i._fill()}})},_fill:function(t){if(t&&t.length>0){this.$(".upload-ftp-content").html(o(this._templateTable()));var i=0;for(index in t)this.rows.push(this._add(t[index])),i+=t[index].size;if(this.$(".upload-ftp-number").html(t.length+" files"),this.$(".upload-ftp-disk").html(e.bytesToString(i,!0)),this.collection){var n=this;this.$("._has_collection").show(),this.$select_all=this.$(".upload-selectall").addClass(this.options.class_add),this.$select_all.on("click",function(){var e=n.$select_all.hasClass(n.options.class_add);for(index in t){var i=t[index],s=n._find(i);(!s&&e||s&&!e)&&n.rows[index].trigger("click")}}),this._refresh()}}else this.$(".upload-ftp-content").html(o(this._templateInfo()));this.$(".upload-ftp-wait").hide()},_add:function(e){var t=this,i=o(this._templateRow(e)),n=i.find(".icon");return this.$("tbody").append(i),this.collection?(n.addClass(this._find(e)?this.options.class_remove:this.options.class_add),i.on("click",function(){var i=t._find(e);n.removeClass(),i?(t.options.onremove(i),n.addClass(t.options.class_add)):(t.options.onadd(e),n.addClass(t.options.class_remove)),t._refresh()})):i.on("click",function(){t.options.onchange(e)}),i},_refresh:function(){var e=this.collection.where({file_mode:"ftp",enabled:!0});this.$select_all.removeClass(),0==e.length?this.$select_all.addClass(this.options.class_add):this.$select_all.addClass(e.length==this.rows.length?this.options.class_remove:this.options.class_partial)},_find:function(e){var t=this.collection.findWhere({file_path:e.path,file_mode:"ftp",enabled:!0});return t&&t.get("id")},_templateRow:function(t){return'
'+r.escape(t.path)+' '+e.bytesToString(t.size)+' '+t.ctime+" "},_templateTable:function(){return'
Available files: '},_templateInfo:function(){return'
Your FTP directory does not contain any files.
'},_template:function(){return'
This Galaxy server allows you to upload files via FTP. To upload some files, log in to the FTP server at '+this.options.ftp_upload_site+' using your Galaxy credentials (email address and password).
'}})}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1),i(2))},function(e,t,i){var n,s;(function(a,o,r){n=[i(4)],s=function(e){return a.View.extend({options:{class_check:"fa-check-square-o",class_uncheck:"fa-square-o",parameters:[{id:"space_to_tab",title:"Convert spaces to tabs"},{id:"to_posix_lines",title:"Use POSIX standard"}]},initialize:function(e){this.model=e.model,this.setElement(o("
").addClass("upload-settings")),this.$el.append(o("
").addClass("upload-settings-cover")),this.$el.append(o("
").addClass("upload-settings-table ui-table-striped").append("
")),this.$cover=this.$(".upload-settings-cover"),this.$table=this.$(".upload-settings-table > tbody"),this.listenTo(this.model,"change",this.render,this),this.model.trigger("change")},render:function(){var e=this;this.$table.empty(),r.each(this.options.parameters,function(t){var i=o("
").addClass("upload-"+t.id+" upload-icon-button fa").addClass(e.model.get(t.id)&&e.options.class_check||e.options.class_uncheck).on("click",function(){e.model.get("enabled")&&e.model.set(t.id,!e.model.get(t.id))});e.$table.append(o("
").append(o("
").append(i)).append(o("
").append(t.title)))}),this.$cover[this.model.get("enabled")&&"hide"||"show"]()}})}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1),i(2))},,,function(e,t,i){(function(e,t){!function(i){e.event.props.push("dataTransfer"),i.uploadpost=function(t){var n=i.extend({},{data:{},success:function(){},error:function(){},progress:function(){},url:null,maxfilesize:2048,error_filesize:"File exceeds 2GB. Please use a FTP client.",error_default:"Please make sure the file is available.",error_server:"Upload request failed.",error_login:"Uploads require you to log in."},t),s=n.data;if(s.error_message)return void n.error(s.error_message);var a=new FormData;for(var o in s.payload)a.append(o,s.payload[o]);var r=0;for(var o in s.files){var l=s.files[o];a.append(l.name,l.file,l.file.name),r+=l.file.size}return r>1048576*n.maxfilesize?void n.error(n.error_filesize):(xhr=new XMLHttpRequest,xhr.open("POST",n.url,!0),xhr.setRequestHeader("Accept","application/json"),xhr.setRequestHeader("Cache-Control","no-cache"),xhr.setRequestHeader("X-Requested-With","XMLHttpRequest"),xhr.onreadystatechange=function(){if(xhr.readyState==xhr.DONE){var t=null;if(xhr.responseText)try{t=e.parseJSON(xhr.responseText)}catch(e){t=xhr.responseText}if(xhr.status<200||xhr.status>299){var i=xhr.statusText;403==xhr.status?i=n.error_login:0==xhr.status?i=n.error_server:i||(i=n.error_default),n.error(i+" ("+xhr.status+")")}else n.success(t)}},xhr.upload.addEventListener("progress",function(e){e.lengthComputable&&n.progress(Math.round(100*e.loaded/e.total))},!1),Galaxy.emit.debug("uploadbox::uploadpost()","Posting following data.",n),void xhr.send(a))},i.fn.uploadinput=function(e){var t=this,n=i.extend({},{ondragover:function(){},ondragleave:function(){},onchange:function(){},multiple:!1},e),s=i('
");return t.append(s.change(function(e){n.onchange(e.target.files),i(this).val("")})),t.on("drop",function(e){n.ondragleave(e),e.dataTransfer&&(n.onchange(e.dataTransfer.files),e.preventDefault())}),t.on("dragover",function(e){e.preventDefault(),n.ondragover(e)}),t.on("dragleave",function(e){e.stopPropagation(),n.ondragleave(e)}),{dialog:function(){s.trigger("click")}}},i.fn.uploadbox=function(e){function n(e){if(e&&e.length&&!m){var i=f;return t.each(e,function(e,i){"new"!==e.mode&&t.filter(p,function(t){return t.name===e.name&&t.size===e.size}).length&&(e.duplicate=!0)}),t.each(e,function(e){if(!e.duplicate){var t=String(f++);p[t]=e,u.announce(t,p[t]),g++}}),i}}function s(e){p[e]&&(delete p[e],g--)}function a(){if(0==g||v)return v=!1,m=!1,void u.complete();m=!0;var e=-1;for(var t in p){e=t;break}p[e];s(e),i.uploadpost({url:u.url,data:u.initialize(e),success:function(t){u.success(e,t),a()},error:function(t){u.error(e,t),a()},progress:function(t){u.progress(e,t)}})}function o(){_.dialog()}function r(e){for(e in p)s(e)}function l(){m||(m=!0,a())}function c(){v=!0}function d(e){return u=i.extend({},u,e)}function h(){return window.File&&window.FormData&&window.XMLHttpRequest&&window.FileList}var u=i.extend({},{dragover:function(){},dragleave:function(){},announce:function(e){},initialize:function(e){},progress:function(e,t){},success:function(e,t){},error:function(e,t){alert(t)},complete:function(){}},e),p={},f=0,g=0,m=!1,v=!1,_=i(this).uploadinput({multiple:!0,onchange:function(e){n(e)},ondragover:e.ondragover,ondragleave:e.ondragleave});return{select:o,add:n,remove:s,start:l,stop:c,reset:r,configure:d,compatible:h}}}(e)}).call(t,i(1),i(2))},,,,,,,,function(e,t,i){var n,s;(function(a,o){n=[i(6),i(5),i(17)],s=function(e,t){var i=a.View.extend(e.LoggableMixin).extend(e.HiddenUntilActivatedViewMixin).extend({tagName:"div",className:"annotation-display",initialize:function(e){e=e||{},this.tooltipConfig=e.tooltipConfig||{placement:"bottom"},this.listenTo(this.model,"change:annotation",function(){this.render()}),this.hiddenUntilActivated(e.$activator,e)},render:function(){var e=this;return this.$el.html(this._template()),this.$annotation().make_text_editable({use_textarea:!0,on_finish:function(t){e.$annotation().text(t),e.model.save({annotation:t},{silent:!0}).fail(function(){e.$annotation().text(e.model.previous("annotation"))})}}),this},_template:function(){var e=this.model.get("annotation");return['
',t("Annotation")," ",'
',o.escape(e),"
"].join("")},$annotation:function(){return this.$el.find(".annotation")},remove:function(){this.$annotation.off(),this.stopListening(this.model),a.View.prototype.remove.call(this)},toString:function(){return["AnnotationEditor(",this.model+"",")"].join("")}});return{AnnotationEditor:i}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(2))},function(e,t,i){var n,s;(function(a){n=[i(2),i(3),i(6)],s=function(e,t,i){"use strict";var n=t.Collection.extend({initialize:function(e,i){t.Collection.prototype.initialize.call(this,e,i),this.setOrder(i.order||this.order,{silent:!0})},_setUpListeners:function(){return this.on({"changed-order":this.sort})},fetch:function(e){return e=this._buildFetchOptions(e),t.Collection.prototype.fetch.call(this,e)},_buildFetchOptions:function(t){t=e.clone(t)||{};var i=this;t.traditional=!0,t.data=t.data||i._buildFetchData(t);var n=this._buildFetchFilters(t);return e.isEmpty(n)||e.extend(t.data,this._fetchFiltersToAjaxData(n)),t},_buildFetchData:function(t){var i={};return this.order&&(i.order=this.order),e.defaults(e.pick(t,this._fetchParams),i)},_fetchParams:["order","limit","offset","view","keys"],_buildFetchFilters:function(t){return e.clone(t.filters||{})},_fetchFiltersToAjaxData:function(t){var i={q:[],qv:[]};return e.each(t,function(e,t){void 0!==e&&""!==e&&(e===!0&&(e="True"),e===!1&&(e="False"),null===e&&(e="None"),i.q.push(t),i.qv.push(e))}),i},reset:function(e,i){return this.allFetched=!1,t.Collection.prototype.reset.call(this,e,i)},order:null,comparators:{update_time:i.buildComparator("update_time",{ascending:!1}),"update_time-asc":i.buildComparator("update_time",{ascending:!0}),create_time:i.buildComparator("create_time",{ascending:!1}),"create_time-asc":i.buildComparator("create_time",{ascending:!0})},setOrder:function(t,i){i=i||{};var n=this,s=n.comparators[t];if(e.isUndefined(s))throw new Error("unknown order: "+t);if(s!==n.comparator){n.order;return n.order=t,n.comparator=s,i.silent||n.trigger("changed-order",i),n}}}),s=n.extend({limitPerPage:500,initialize:function(e,t){n.prototype.initialize.call(this,e,t),this.currentPage=t.currentPage||0},getTotalItemCount:function(){return this.length},shouldPaginate:function(){return this.getTotalItemCount()>=this.limitPerPage},getLastPage:function(){return Math.floor(this.getTotalItemCount()/this.limitPerPage)},getPageCount:function(){return this.getLastPage()+1},getPageLimitOffset:function(e){return e=this.constrainPageNum(e),{limit:this.limitPerPage,offset:e*this.limitPerPage}},constrainPageNum:function(e){return Math.max(0,Math.min(e,this.getLastPage()))},fetchPage:function(t,i){var n=this;return t=n.constrainPageNum(t),n.currentPage=t,i=e.defaults(i||{},n.getPageLimitOffset(t)),n.trigger("fetching-more"),n.fetch(i).always(function(){n.trigger("fetching-more-done")})},fetchCurrentPage:function(e){return this.fetchPage(this.currentPage,e)},fetchPrevPage:function(e){return this.fetchPage(this.currentPage-1,e)},fetchNextPage:function(e){return this.fetchPage(this.currentPage+1,e)}}),o=n.extend({limitOnFirstFetch:null,limitPerFetch:100,initialize:function(e,t){n.prototype.initialize.call(this,e,t),this.limitOnFirstFetch=t.limitOnFirstFetch||this.limitOnFirstFetch,this.limitPerFetch=t.limitPerFetch||this.limitPerFetch,this.allFetched=!1,this.lastFetched=t.lastFetched||0},_buildFetchOptions:function(e){return e.remove=e.remove||!1,n.prototype._buildFetchOptions.call(this,e)},fetchFirst:function(t){return t=t?e.clone(t):{},this.allFetched=!1,this.lastFetched=0,this.fetchMore(e.defaults(t,{
-reset:!0,limit:this.limitOnFirstFetch}))},fetchMore:function(t){t=e.clone(t||{});var i=this;if(!t.reset&&i.allFetched)return a.when();t.offset=t.reset?0:t.offset||i.lastFetched;var n=t.limit=t.limit||i.limitPerFetch||null;return i.trigger("fetching-more"),i.fetch(t).always(function(){i.trigger("fetching-more-done")}).done(function(t){var s=e.isArray(t)?t.length:0;i.lastFetched+=s,(!n||s
','
',''].join(""))}};return{CollectionCreatorMixin:e}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(2))},function(e,t,i){var n,s;(function(a){n=[i(87),i(41),i(40),i(6),i(5)],s=function(e,t,i,n,s){"use strict";var o="collections",r=e.ModelListPanel,l=r.extend({_logNamespace:o,className:r.prototype.className+" dataset-collection-panel",DatasetDCEViewClass:i.DatasetDCEListItemView,NestedDCDCEViewClass:i.NestedDCDCEListItemView,modelCollectionKey:"elements",initialize:function(e){r.prototype.initialize.call(this,e),this.linkTarget=e.linkTarget||"_blank",this.hasUser=e.hasUser,this.panelStack=[],this.parentName=e.parentName,this.foldoutStyle=e.foldoutStyle||"foldout",this.downloadUrl=this.model.attributes.url+"/download"},_queueNewRender:function(e,t){t=void 0===t?this.fxSpeed:t;var i=this;i.log("_queueNewRender:",e,t),i._swapNewRender(e),i.trigger("rendered",i)},_filterCollection:function(){return this.model.getVisibleContents()},_getItemViewClass:function(e){switch(e.get("element_type")){case"hda":return this.DatasetDCEViewClass;case"dataset_collection":return this.NestedDCDCEViewClass}throw new TypeError("Unknown element type:",e.get("element_type"))},_getItemViewOptions:function(e){var t=r.prototype._getItemViewOptions.call(this,e);return a.extend(t,{linkTarget:this.linkTarget,hasUser:this.hasUser,foldoutStyle:this.foldoutStyle})},_setUpItemViewListeners:function(e){var t=this;return r.prototype._setUpItemViewListeners.call(t,e),t.listenTo(e,{"expanded:drilldown":function(e,t){this._expandDrilldownPanel(t)},"collapsed:drilldown":function(e,t){this._collapseDrilldownPanel(t)}}),this},_expandDrilldownPanel:function(e){this.panelStack.push(e),this.$("> .controls").add(this.$list()).hide(),e.parentName=this.model.get("name"),this.$el.append(e.render().$el)},_collapseDrilldownPanel:function(e){this.panelStack.pop(),this.render()},events:{"click .navigation .back":"close"},close:function(e){this.remove(),this.trigger("close")},toString:function(){return"CollectionView("+(this.model?this.model.get("name"):"")+")"}});l.prototype.templates=function(){var e=n.wrapTemplate(['
','
",'
','
<%- collection.name || collection.element_identifier %>
','
','<% if( collection.collection_type === "list" ){ %>',s("a list of datasets"),'<% } else if( collection.collection_type === "paired" ){ %>',s("a pair of datasets"),'<% } else if( collection.collection_type === "list:paired" ){ %>',s("a list of paired datasets"),'<% } else if( collection.collection_type === "list:list" ){ %>',s("a list of dataset lists"),"<% } %>","
","
",'
','
","
"],"collection");return a.extend(a.clone(r.prototype.templates),{controls:e})}();var c=l.extend({DatasetDCEViewClass:i.DatasetDCEListItemView,toString:function(){return"ListCollectionView("+(this.model?this.model.get("name"):"")+")"}}),d=c.extend({toString:function(){return"PairCollectionView("+(this.model?this.model.get("name"):"")+")"}}),h=l.extend({NestedDCDCEViewClass:i.NestedDCDCEListItemView.extend({foldoutPanelClass:d}),toString:function(){return"ListOfPairsCollectionView("+(this.model?this.model.get("name"):"")+")"}}),u=l.extend({NestedDCDCEViewClass:i.NestedDCDCEListItemView.extend({foldoutPanelClass:d}),toString:function(){return"ListOfListsCollectionView("+(this.model?this.model.get("name"):"")+")"}});return{CollectionView:l,ListCollectionView:c,PairCollectionView:d,ListOfPairsCollectionView:h,ListOfListsCollectionView:u}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(2))},function(e,t,i){var n,s;(function(a,o){n=[i(11),i(43),i(55),i(76),i(18),i(6),i(5)],s=function(e,t,i,n,s,r,l){"use strict";var c=t.DatasetListItemView,d=c.extend({initialize:function(e){c.prototype.initialize.call(this,e),this.hasUser=e.hasUser,this.purgeAllowed=e.purgeAllowed||!1,this.tagsEditorShown=e.tagsEditorShown||!1,this.annotationEditorShown=e.annotationEditorShown||!1},_renderPrimaryActions:function(){var t=c.prototype._renderPrimaryActions.call(this);return this.model.get("state")===e.NOT_VIEWABLE?t:c.prototype._renderPrimaryActions.call(this).concat([this._renderEditButton(),this._renderDeleteButton()])},_renderEditButton:function(){if(this.model.get("state")===e.DISCARDED||!this.model.get("accessible"))return null;var t=this.model.get("purged"),i=this.model.get("deleted"),n={title:l("Edit attributes"),href:this.model.urls.edit,target:this.linkTarget,faIcon:"fa-pencil",classes:"edit-btn"};return i||t?(n.disabled=!0,t?n.title=l("Cannot edit attributes of datasets removed from disk"):i&&(n.title=l("Undelete dataset to edit attributes"))):a.contains([e.UPLOAD,e.NEW],this.model.get("state"))&&(n.disabled=!0,n.title=l("This dataset is not yet editable")),s(n)},_renderDeleteButton:function(){if(!this.model.get("accessible"))return null;var e=this,t=this.model.isDeletedOrPurged();return s({title:l(t?"Dataset is already deleted":"Delete"),disabled:t,faIcon:"fa-times",classes:"delete-btn",onclick:function(){e.$el.find(".icon-btn.delete-btn").trigger("mouseout"),e.model.delete()}})},_renderDetails:function(){var t=c.prototype._renderDetails.call(this),i=this.model.get("state");return!this.model.isDeletedOrPurged()&&a.contains([e.OK,e.FAILED_METADATA],i)&&(this._renderTags(t),this._renderAnnotation(t),this._makeDbkeyEditLink(t)),this._setUpBehaviors(t),t},_renderToolHelpButton:function(){var e=this.model.attributes.dataset_id,t=this.model.attributes.creating_job,i=this,n=function(t){var n='
';t.name&&t.help?(n+="Tool help for "+t.name+"
",n+=t.help):n+="Tool help is unavailable for this dataset. ",n+="",i.$el.find(".details").append(o.parseHTML(n))},a=function(e){o.ajax({url:Galaxy.root+"api/tools/"+e.tool_id+"/build"}).done(function(e){n(e)}).fail(function(){n({})})};return null===Galaxy.user.id?null:s({title:"Tool Help",classes:"icon-btn",href:"#",faIcon:"fa-question",onclick:function(){i.$el.find(".toolhelp").length>0?i.$el.find(".toolhelp").toggle():o.ajax({url:Galaxy.root+"api/jobs/"+t}).done(function(e){a(e)}).fail(function(){console.log('Failed at recovering job information from the Galaxy API for job id "'+t+'".')})}})},_renderSecondaryActions:function(){var t=c.prototype._renderSecondaryActions.call(this);switch(this.model.get("state")){case e.UPLOAD:case e.NOT_VIEWABLE:return t;case e.ERROR:return t.unshift(this._renderErrButton()),t.concat([this._renderRerunButton(),this._renderToolHelpButton()]);case e.OK:case e.FAILED_METADATA:return t.concat([this._renderRerunButton(),this._renderVisualizationsButton(),this._renderToolHelpButton()])}return t.concat([this._renderRerunButton(),this._renderToolHelpButton()])},_renderErrButton:function(){return s({title:l("View or report this error"),href:this.model.urls.report_error,classes:"report-error-btn",target:this.linkTarget,faIcon:"fa-bug"})},_renderRerunButton:function(){var e=this.model.get("creating_job");if(this.model.get("rerunnable"))return s({title:l("Run this job again"),href:this.model.urls.rerun,classes:"rerun-btn",target:this.linkTarget,faIcon:"fa-refresh",onclick:function(t){t.preventDefault(),Galaxy.router.push("/",{job_id:e})}})},_renderVisualizationsButton:function(){var e=this.model.get("visualizations");if(this.model.isDeletedOrPurged()||!this.hasUser||!this.model.hasData()||a.isEmpty(e))return null;if(!a.isObject(e[0]))return this.warn("Visualizations have been switched off"),null;var t=o(this.templates.visualizations(e,this));return t.find('[target="galaxy_main"]').attr("target",this.linkTarget),this._addScratchBookFn(t.find(".visualization-link").addBack(".visualization-link")),t},_addScratchBookFn:function(e){e.click(function(e){Galaxy.frame&&Galaxy.frame.active&&(Galaxy.frame.add({title:"Visualization",url:o(this).attr("href")}),e.preventDefault(),e.stopPropagation())})},_renderTags:function(e){if(this.hasUser){var t=this;this.tagsEditor=new i.TagsEditor({model:this.model,el:e.find(".tags-display"),onshowFirstTime:function(){this.render()},onshow:function(){t.tagsEditorShown=!0},onhide:function(){t.tagsEditorShown=!1},$activator:s({title:l("Edit dataset tags"),classes:"tag-btn",faIcon:"fa-tags"}).appendTo(e.find(".actions .right"))}),this.tagsEditorShown&&this.tagsEditor.toggle(!0)}},_renderAnnotation:function(e){if(this.hasUser){var t=this;this.annotationEditor=new n.AnnotationEditor({model:this.model,el:e.find(".annotation-display"),onshowFirstTime:function(){this.render()},onshow:function(){t.annotationEditorShown=!0},onhide:function(){t.annotationEditorShown=!1},$activator:s({title:l("Edit dataset annotation"),classes:"annotate-btn",faIcon:"fa-comment"}).appendTo(e.find(".actions .right"))}),this.annotationEditorShown&&this.annotationEditor.toggle(!0)}},_makeDbkeyEditLink:function(e){if("?"===this.model.get("metadata_dbkey")&&!this.model.isDeletedOrPurged()){var t=o('
? ').attr("href",this.model.urls.edit).attr("target",this.linkTarget);e.find(".dbkey .value").replaceWith(t)}},events:a.extend(a.clone(c.prototype.events),{"click .undelete-link":"_clickUndeleteLink","click .purge-link":"_clickPurgeLink","click .edit-btn":function(e){this.trigger("edit",this,e)},"click .delete-btn":function(e){this.trigger("delete",this,e)},"click .rerun-btn":function(e){this.trigger("rerun",this,e)},"click .report-err-btn":function(e){this.trigger("report-err",this,e)},"click .visualization-btn":function(e){this.trigger("visualize",this,e)},"click .dbkey a":function(e){this.trigger("edit",this,e)}}),_clickUndeleteLink:function(e){return this.model.undelete(),!1},_clickPurgeLink:function(e){return confirm(l("This will permanently remove the data in your dataset. Are you sure?"))&&this.model.purge(),!1},toString:function(){var e=this.model?this.model+"":"(no model)";return"HDAEditView("+e+")"}});return d.prototype.templates=function(){var e=a.extend({},c.prototype.templates.warnings,{failed_metadata:r.wrapTemplate(['<% if( dataset.state === "failed_metadata" ){ %>','
","<% } %>"],"dataset"),deleted:r.wrapTemplate(["<% if( dataset.deleted && !dataset.purged ){ %>",'
',l("This dataset has been deleted"),'
',l("Undelete it")," ","<% if( view.purgeAllowed ){ %>",'
',l("Permanently remove it from disk")," ","<% } %>","
","<% } %>"],"dataset")}),t=r.wrapTemplate(["<% if( visualizations.length === 1 ){ %>",'
">',' '," ","<% } else { %>",'
","<% } %>"],"visualizations");return a.extend({},c.prototype.templates,{warnings:e,visualizations:t})}(),{DatasetListItemEdit:d}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(2),i(1))},function(e,t,i){var n,s;(function(a,o,r){n=[i(11),i(6),i(5)],s=function(e,t,i){"use strict";var n="dataset",s=t.SearchableModelMixin,l=a.Model.extend(t.LoggableMixin).extend(t.mixin(s,{_logNamespace:n,defaults:{state:e.NEW,deleted:!1,purged:!1,name:"(unnamed dataset)",accessible:!0,data_type:"",file_ext:"",file_size:0,meta_files:[],misc_blurb:"",misc_info:"",tags:[]},initialize:function(t,i){this.debug(this+"(Dataset).initialize",t,i),
+this.model.prototype.idAttribute="type_id"},setHistoryId:function(e){this.historyId=e,this._setUpWebStorage()},_setUpWebStorage:function(e){if(this.historyId)return this.storage=new n.HistoryPrefs({id:n.HistoryPrefs.historyStorageKey(this.historyId)}),this.trigger("new-storage",this.storage,this),this.on({"include-deleted":function(e){this.storage.includeDeleted(e)},"include-hidden":function(e){this.storage.includeHidden(e)}}),this.includeDeleted=this.storage.includeDeleted()||!1,this.includeHidden=this.storage.includeHidden()||!1,this},comparators:a.extend(a.clone(c.prototype.comparators),{name:s.buildComparator("name",{ascending:!0}),"name-dsc":s.buildComparator("name",{ascending:!1}),hid:s.buildComparator("hid",{ascending:!1}),"hid-asc":s.buildComparator("hid",{ascending:!0})}),running:function(){return this.filter(function(e){return!e.inReadyState()})},runningAndActive:function(){return this.filter(function(e){return!e.inReadyState()&&e.get("visible")&&!e.get("deleted")})},getByHid:function(e){return this.findWhere({hid:e})},haveDetails:function(){return this.all(function(e){return e.hasDetails()})},hidden:function(){return this.filter(function(e){return e.hidden()})},deleted:function(){return this.filter(function(e){return e.get("deleted")})},visibleAndUndeleted:function(){return this.filter(function(e){return e.get("visible")&&!e.get("deleted")})},setIncludeDeleted:function(e,t){if(a.isBoolean(e)&&e!==this.includeDeleted){if(this.includeDeleted=e,a.result(t,"silent"))return;this.trigger("include-deleted",e,this)}},setIncludeHidden:function(e,t){if(a.isBoolean(e)&&e!==this.includeHidden){if(this.includeHidden=e,t=t||{},a.result(t,"silent"))return;this.trigger("include-hidden",e,this)}},fetch:function(e){if(e=e||{},this.historyId&&!e.details){var t=n.HistoryPrefs.get(this.historyId).toJSON();a.isEmpty(t.expandedIds)||(e.details=a.values(t.expandedIds).join(","))}return c.prototype.fetch.call(this,e)},_buildFetchData:function(e){return a.extend(c.prototype._buildFetchData.call(this,e),{v:"dev"})},_fetchParams:c.prototype._fetchParams.concat(["v","details"]),_buildFetchFilters:function(e){var t=c.prototype._buildFetchFilters.call(this,e)||{},i={};return this.includeDeleted||(i.deleted=!1,i.purged=!1),this.includeHidden||(i.visible=!0),a.defaults(t,i)},getTotalItemCount:function(){return this.history.contentsShown()},fetchUpdated:function(e,t){return e&&(t=t||{filters:{}},t.remove=!1,t.filters={"update_time-ge":e.toISOString(),visible:""}),this.fetch(t)},fetchDeleted:function(e){e=e||{};var t=this;return e.filters=a.extend(e.filters,{deleted:!0,purged:void 0}),e.remove=!1,t.trigger("fetching-deleted",t),t.fetch(e).always(function(){t.trigger("fetching-deleted-done",t)})},fetchHidden:function(e){e=e||{};var t=this;return e.filters=a.extend(e.filters,{visible:!1}),e.remove=!1,t.trigger("fetching-hidden",t),t.fetch(e).always(function(){t.trigger("fetching-hidden-done",t)})},fetchAllDetails:function(e){e=e||{};var t={details:"all"};return e.data=a.extend(e.data||{},t),this.fetch(e)},fetchCollectionCounts:function(e){return e=e||{},e.keys=["type_id","element_count"].join(","),e.filters=a.extend(e.filters||{},{history_content_type:"dataset_collection"}),e.remove=!1,this.fetch(e)},_filterAndUpdate:function(e,t){var i=this,n=i.model.prototype.idAttribute,s=[t];return i.fetch({filters:e,remove:!1}).then(function(e){return e=e.reduce(function(e,t,s){var a=i.get(t[n]);return a?e.concat(a):e},[]),i.ajaxQueue("save",s,e)})},ajaxQueue:function(e,t,i){return i=i||this.models,new l.AjaxQueue(i.slice().reverse().map(function(i,n){var s=a.isString(e)?i[e]:e;return function(){return s.apply(i,t)}})).deferred},progressivelyFetchDetails:function(e){function i(t){t=t||0;var o=a.extend(a.clone(e),{view:"summary",keys:c,limit:r,offset:t,reset:0===t,remove:!1});a.defer(function(){s.fetch.call(s,o).fail(n.reject).done(function(e){n.notify(e,r,t),e.length!==r?(s.allFetched=!0,n.resolve(e,r,t)):i(t+r)})})}e=e||{};var n=o.Deferred(),s=this,r=e.limitPerCall||s.limitPerProgressiveFetch,l=t.HistoryDatasetAssociation.prototype.searchAttributes,c=l.join(",");return i(),n},isCopyable:function(e){var t=["HistoryDatasetAssociation","HistoryDatasetCollectionAssociation"];return a.isObject(e)&&e.id&&a.contains(t,e.model_class)},copy:function(e){var t,i,n;a.isString(e)?(t=e,n="hda",i="dataset"):(t=e.id,n={HistoryDatasetAssociation:"hda",LibraryDatasetDatasetAssociation:"ldda",HistoryDatasetCollectionAssociation:"hdca"}[e.model_class]||"hda",i="hdca"===n?"dataset_collection":"dataset");var s=this,r=o.ajax(this.url(),{method:"POST",contentType:"application/json",data:JSON.stringify({content:t,source:n,type:i})}).done(function(e){s.add([e],{parse:!0})}).fail(function(e,a,o){s.trigger("error",s,r,{},"Error copying contents",{type:i,id:t,source:n})});return r},createHDCA:function(e,t,i,n,s){var a=this.model({history_content_type:"dataset_collection",collection_type:t,history_id:this.historyId,name:i,hide_source_items:n||!1,element_identifiers:e});return a.save(s)},haveSearchDetails:function(){return this.allFetched&&this.all(function(e){return a.has(e.attributes,"annotation")})},matches:function(e){return this.filter(function(t){return t.matches(e)})},clone:function(){var e=r.Collection.prototype.clone.call(this);return e.historyId=this.historyId,e},toString:function(){return["HistoryContents(",[this.historyId,this.length].join(),")"].join("")}});return{HistoryContents:d}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(2),i(1),i(3))},function(e,t,i){var n,s;(function(a,o,r,l){n=[i(51),i(53),i(77),i(4),i(6),i(5)],s=function(e,t,i,n,s,c){"use strict";var d=a.Model.extend(s.LoggableMixin).extend(s.mixin(s.SearchableModelMixin,{_logNamespace:"history",UPDATE_DELAY:4e3,defaults:{model_class:"History",id:null,name:"Unnamed History",state:"new",deleted:!1,contents_active:{},contents_states:{}},urlRoot:Galaxy.root+"api/histories",contentsClass:e.HistoryContents,searchAttributes:["name","annotation","tags"],searchAliases:{title:"name",tag:"tags"},initialize:function(e,t){t=t||{},this.logger=t.logger||null,this.log(this+".initialize:",e,t),this.contents=new this.contentsClass([],{history:this,historyId:this.get("id"),order:t.order}),this._setUpListeners(),this._setUpCollectionListeners(),this.updateTimeoutId=null},_setUpListeners:function(){return this.on({error:function(e,t,i,n,s){this.clearUpdateTimeout()},"change:id":function(e,t){this.contents&&(this.contents.historyId=t)}})},_setUpCollectionListeners:function(){return this.contents?this.listenTo(this.contents,{error:function(){this.trigger.apply(this,o.makeArray(arguments))}}):this},contentsShown:function(){var e=this.get("contents_active"),t=e.active||0;return t+=this.contents.includeDeleted?e.deleted:0,t+=this.contents.includeHidden?e.hidden:0},nice_size:function(){var e=this.get("size");return e?n.bytesToString(e,!0,2):c("(empty)")},toJSON:function(){return r.extend(a.Model.prototype.toJSON.call(this),{nice_size:this.nice_size()})},get:function(e){return"nice_size"===e?this.nice_size():a.Model.prototype.get.apply(this,arguments)},ownedByCurrUser:function(){return!(!Galaxy||!Galaxy.user)&&(!Galaxy.user.isAnonymous()&&Galaxy.user.id===this.get("user_id"))},numOfUnfinishedJobs:function(){var e=this.get("non_ready_jobs");return e?e.length:0},numOfUnfinishedShownContents:function(){return this.contents.runningAndActive().length||0},_fetchContentRelatedAttributes:function(){var e=["size","non_ready_jobs","contents_active","hid_counter"];return this.fetch({data:l.param({keys:e.join(",")})})},refresh:function(e){e=e||{};var t=this,i=t.lastUpdateTime;this.contents.allFetched=!1;var n=0!==t.contents.currentPage?function(){return t.contents.fetchPage(t.contents.currentPage)}:function(){return t.contents.fetchUpdated(i)};return n().done(function(i,n,s){var a;try{a=new Date(s.getResponseHeader("Date"))}catch(e){}t.lastUpdateTime=a||new Date,t.checkForUpdates(e)})},checkForUpdates:function(e){function t(){n.clearUpdateTimeout(),n.updateTimeoutId=setTimeout(function(){n.refresh(e)},i)}e=e||{};var i=this.UPDATE_DELAY,n=this;if(n.id){var s=this.numOfUnfinishedShownContents();s>0?t():n._fetchContentRelatedAttributes().done(function(e){n.numOfUnfinishedJobs()>0?t():n.trigger("ready")})}},clearUpdateTimeout:function(){this.updateTimeoutId&&(clearTimeout(this.updateTimeoutId),this.updateTimeoutId=null)},parse:function(e,t){var i=a.Model.prototype.parse.call(this,e,t);return i.create_time&&(i.create_time=new Date(i.create_time)),i.update_time&&(i.update_time=new Date(i.update_time)),i},fetchWithContents:function(e,t){e=e||{};var i=this;return e.view="dev-detailed",this.fetch(e).then(function(e){return i.contents.history=i,i.contents.setHistoryId(e.id),i.fetchContents(t)})},fetchContents:function(e){e=e||{};var t=this;return t.lastUpdateTime=new Date,t.contents.fetchCurrentPage(e)},_delete:function(e){return this.get("deleted")?o.when():this.save({deleted:!0},e)},purge:function(e){return this.get("purged")?o.when():this.save({deleted:!0,purged:!0},e)},undelete:function(e){return this.get("deleted")?this.save({deleted:!1},e):o.when()},copy:function(e,t,i){if(e=void 0===e||e,!this.id)throw new Error("You must set the history ID before copying it.");var n={history_id:this.id};e&&(n.current=!0),t&&(n.name=t),i||(n.all_datasets=!1),n.view="dev-detailed";var s=this,a=o.post(this.urlRoot,n);return e?a.then(function(e){var t=new d(e);return t.setAsCurrent().done(function(){s.trigger("copied",s,e)})}):a.done(function(e){s.trigger("copied",s,e)})},setAsCurrent:function(){var e=this,t=o.getJSON(Galaxy.root+"history/set_as_current?id="+this.id);return t.done(function(){e.trigger("set-as-current",e)}),t},toString:function(){return"History("+this.get("id")+","+this.get("name")+")"}})),h=i.InfinitelyScrollingCollection,u=h.extend(s.LoggableMixin).extend({_logNamespace:"history",model:d,order:"update_time",limitOnFirstFetch:10,limitPerFetch:10,initialize:function(e,t){t=t||{},this.log("HistoryCollection.initialize",e,t),h.prototype.initialize.call(this,e,t),this.includeDeleted=t.includeDeleted||!1,this.currentHistoryId=t.currentHistoryId,this.setUpListeners()},urlRoot:Galaxy.root+"api/histories",url:function(){return this.urlRoot},setUpListeners:function(){return this.on({"change:deleted":function(e){this.debug("change:deleted",this.includeDeleted,e.get("deleted")),!this.includeDeleted&&e.get("deleted")&&this.remove(e)},copied:function(e,t){this.setCurrent(new d(t,[]))},"set-as-current":function(e){var t=this.currentHistoryId;this.trigger("no-longer-current",t),this.currentHistoryId=e.id}})},_buildFetchData:function(e){return r.extend(h.prototype._buildFetchData.call(this,e),{view:"dev-detailed"})},_buildFetchFilters:function(e){var t=h.prototype._buildFetchFilters.call(this,e)||{},i={};return this.includeDeleted?i.deleted=null:(i.deleted=!1,i.purged=!1),r.defaults(t,i)},fetchFirst:function(e){var t=this,i=l.when();return this.currentHistoryId&&(i=h.prototype.fetchFirst.call(t,{silent:!0,limit:1,filters:{purged:"",deleted:"","encoded_id-in":this.currentHistoryId}})),i.then(function(){return e=e||{},e.offset=0,t.fetchMore(e)})},comparators:r.extend(r.clone(h.prototype.comparators),{name:s.buildComparator("name",{ascending:!0}),"name-dsc":s.buildComparator("name",{ascending:!1}),size:s.buildComparator("size",{ascending:!1}),"size-asc":s.buildComparator("size",{ascending:!0})}),sort:function(e){e=e||{};var t=e.silent,i=this.remove(this.get(this.currentHistoryId));return h.prototype.sort.call(this,r.defaults({silent:!0},e)),this.unshift(i,{silent:!0}),t||this.trigger("sort",this,e),this},create:function(e,t,i,n){var s=this,a=o.getJSON(Galaxy.root+"history/create_new_current");return a.done(function(e){s.setCurrent(new d(e,[],i||{}))})},setCurrent:function(e,t){return t=t||{},this.unshift(e,t),this.currentHistoryId=e.get("id"),t.silent||this.trigger("new-current",e,this),this},toString:function(){return"HistoryCollection("+this.length+",current:"+this.currentHistoryId+")"}});return{History:d,HistoryCollection:u}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1),i(2),i(1))},function(e,t,i){var n,s;(function(a){n=[i(6)],s=function(e){"use strict";var t=e.SessionStorageModel.extend({defaults:{expandedIds:{},show_deleted:!1,show_hidden:!1},addExpanded:function(e){var t=this.get("expandedIds");t[e.id]=e.get("id"),this.save("expandedIds",t)},removeExpanded:function(e){var t=this.get("expandedIds");delete t[e.id],this.save("expandedIds",t)},isExpanded:function(e){return a.result(this.get("expandedIds"),e,!1)},allExpanded:function(){return a.values(this.get("expandedIds"))},clearExpanded:function(){this.set("expandedIds",{})},includeDeleted:function(e){return a.isUndefined(e)||this.set("show_deleted",e),this.get("show_deleted")},includeHidden:function(e){return a.isUndefined(e)||this.set("show_hidden",e),this.get("show_hidden")},toString:function(){return"HistoryPrefs("+this.id+")"}},{storageKeyPrefix:"history:",historyStorageKey:function(e){if(!e)throw new Error("HistoryPrefs.historyStorageKey needs valid id: "+e);return t.storageKeyPrefix+e},get:function(e){return new t({id:t.historyStorageKey(e)})},clearAll:function(e){for(var i in sessionStorage)0===i.indexOf(t.storageKeyPrefix)&&sessionStorage.removeItem(i)}});return{HistoryPrefs:t}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(2))},function(e,t,i){var n,s;(function(a,o,r,l){n=[i(6),i(5)],s=function(e,t){"use strict";var i="list",n=a.View.extend(e.LoggableMixin).extend({_logNamespace:i,initialize:function(e){this.expanded=e.expanded||!1,this.log("\t expanded:",this.expanded),this.fxSpeed=void 0!==e.fxSpeed?e.fxSpeed:this.fxSpeed},fxSpeed:"fast",render:function(e){var t=this._buildNewRender();return this._setUpBehaviors(t),this._queueNewRender(t,e),this},_buildNewRender:function(){var e=o(this.templates.el(this.model.toJSON(),this));return this.expanded&&this.$details(e).replaceWith(this._renderDetails().show()),e},_queueNewRender:function(e,t){t=void 0===t?this.fxSpeed:t;var i=this;0===t?(i._swapNewRender(e),i.trigger("rendered",i)):o(i).queue("fx",[function(e){i.$el.fadeOut(t,e)},function(t){i._swapNewRender(e),t()},function(e){i.$el.fadeIn(t,e)},function(e){i.trigger("rendered",i),e()}])},_swapNewRender:function(e){return this.$el.empty().attr("class",r.isFunction(this.className)?this.className():this.className).append(e.children())},_setUpBehaviors:function(e){e=e||this.$el,e.find("[title]").tooltip({placement:"bottom"})},$details:function(e){return e=e||this.$el,e.find("> .details")},_renderDetails:function(){var e=o(this.templates.details(this.model.toJSON(),this));return this._setUpBehaviors(e),e},toggleExpanded:function(e){return e=void 0===e?!this.expanded:e,e?this.expand():this.collapse(),this},expand:function(){var e=this;return e._fetchModelDetails().always(function(){e._expand()})},_fetchModelDetails:function(){return this.model.hasDetails()?l.when():this.model.fetch()},_expand:function(){var e=this,t=e._renderDetails();e.$details().replaceWith(t),e.expanded=!0,e.$details().slideDown(e.fxSpeed,function(){e.trigger("expanded",e)})},collapse:function(){this.debug(this+"(ExpandableView).collapse");var e=this;e.expanded=!1,this.$details().slideUp(e.fxSpeed,function(){e.trigger("collapsed",e)})}}),s=n.extend(e.mixin(e.SelectableViewMixin,e.DraggableViewMixin,{tagName:"div",className:"list-item",initialize:function(t){n.prototype.initialize.call(this,t),e.SelectableViewMixin.initialize.call(this,t),e.DraggableViewMixin.initialize.call(this,t),this._setUpListeners()},_setUpListeners:function(){return this.on("selectable",function(e){e?this.$(".primary-actions").hide():this.$(".primary-actions").show()},this),this},_buildNewRender:function(){var e=n.prototype._buildNewRender.call(this);return e.children(".warnings").replaceWith(this._renderWarnings()),e.children(".title-bar").replaceWith(this._renderTitleBar()),e.children(".primary-actions").append(this._renderPrimaryActions()),e.find("> .title-bar .subtitle").replaceWith(this._renderSubtitle()),e},_swapNewRender:function(e){return n.prototype._swapNewRender.call(this,e),this.selectable&&this.showSelector(0),this.draggable&&this.draggableOn(),this.$el},_renderWarnings:function(){var e=this,t=o('
'),i=e.model.toJSON();return r.each(e.templates.warnings,function(n){t.append(o(n(i,e)))}),t},_renderTitleBar:function(){return o(this.templates.titleBar(this.model.toJSON(),this))},_renderPrimaryActions:function(){return[]},_renderSubtitle:function(){return o(this.templates.subtitle(this.model.toJSON(),this))},events:{"click .title-bar":"_clickTitleBar","keydown .title-bar":"_keyDownTitleBar","click .selector":"toggleSelect"},_clickTitleBar:function(e){e.stopPropagation(),e.altKey?(this.toggleSelect(e),this.selectable||this.showSelector()):this.toggleExpanded()},_keyDownTitleBar:function(e){var t=32,i=13;return!e||"keydown"!==e.type||e.keyCode!==t&&e.keyCode!==i||(this.toggleExpanded(),e.stopPropagation(),!1)},toString:function(){var e=this.model?this.model+"":"(no model)";return"ListItemView("+e+")"}}));s.prototype.templates=function(){var t=e.wrapTemplate(['
"]),i={},n=e.wrapTemplate(['
','
','
','<%- element.name %> ',"
",'
',"
"],"element"),s=e.wrapTemplate(['
']),a=e.wrapTemplate(['
']);return{el:t,warnings:i,titleBar:n,subtitle:s,details:a}}();var c=s.extend({foldoutStyle:"foldout",foldoutPanelClass:null,initialize:function(e){"drilldown"===this.foldoutStyle&&(this.expanded=!1),this.foldoutStyle=e.foldoutStyle||this.foldoutStyle,this.foldoutPanelClass=e.foldoutPanelClass||this.foldoutPanelClass,s.prototype.initialize.call(this,e),this.foldout=this._createFoldoutPanel()},_renderDetails:function(){if("drilldown"===this.foldoutStyle)return o();var e=s.prototype._renderDetails.call(this);return this._attachFoldout(this.foldout,e)},_createFoldoutPanel:function(){var e=this.model,t=this._getFoldoutPanelClass(e),i=this._getFoldoutPanelOptions(e),n=new t(r.extend(i,{model:e}));return n},_getFoldoutPanelClass:function(){return this.foldoutPanelClass},_getFoldoutPanelOptions:function(){return{foldoutStyle:this.foldoutStyle,fxSpeed:this.fxSpeed}},_attachFoldout:function(e,t){return t=t||this.$("> .details"),this.foldout=e.render(0),e.$("> .controls").hide(),t.append(e.$el)},expand:function(){var e=this;return e._fetchModelDetails().always(function(){"foldout"===e.foldoutStyle?e._expand():"drilldown"===e.foldoutStyle&&e._expandByDrilldown()})},_expandByDrilldown:function(){var e=this;e.listenTo(e.foldout,"close",function(){e.trigger("collapsed:drilldown",e,e.foldout)}),e.trigger("expanded:drilldown",e,e.foldout)}});return c.prototype.templates=function(){var t=e.wrapTemplate(['
',"
"],"collection");return r.extend({},s.prototype.templates,{details:t})}(),{ExpandableView:n,ListItemView:s,FoldoutListItemView:c}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1),i(2),i(1))},function(e,t,i){var n,s;(function(a,o){n=[i(6),i(5)],s=function(e,t){var i=a.View.extend(e.LoggableMixin).extend(e.HiddenUntilActivatedViewMixin).extend({tagName:"div",className:"tags-display",initialize:function(e){e.usePrompt===!1?this.label="":this.label='
'+t("Tags")+" ",this.hiddenUntilActivated(e.$activator,e)},render:function(){var e=this;return this.$el.html(this._template()),this.$input().select2({placeholder:"Add tags",width:"100%",tags:function(){return e._getTagsUsed()}}),this._setUpBehaviors(),this},_hashToName:function(e){return e.startsWith("#")?"name:"+e.slice(1):e},_nameToHash:function(e){return e.startsWith("name:")&&(e="#"+e.slice(5)),e},_template:function(){return[this.label,'
'].join("")},tagsToCSV:function(){var e=this,t=this.model.get("tags");return!o.isArray(t)||o.isEmpty(t)?"":t.map(function(t){return o.escape(e._nameToHash(t))}).sort().join(",")},$input:function(){return this.$el.find("input.tags-input")},_getTagsUsed:function(){var e=this;return o.map(Galaxy.user.get("tags_used"),e._nameToHash)},_setUpBehaviors:function(){var e=this;this.$input().on("change",function(t){t.val=o.map(t.val,e._hashToName),e.model.save({tags:t.val}),t.added&&e._addNewTagToTagsUsed(t.added.text+"")})},_addNewTagToTagsUsed:function(e){var t=Galaxy.user.get("tags_used");o.contains(t,e)||(t.push(e),t.sort(),Galaxy.user.set("tags_used",t))},remove:function(){this.$input.off(),this.stopListening(this.model),a.View.prototype.remove.call(this)},toString:function(){return["TagsEditor(",this.model+"",")"].join("")}});return{TagsEditor:i}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(2))},function(e,t,i){var n,s;(function(a,o){n=[i(2),i(20),i(10),i(30)],s=function(e,t,i,n){"use strict";var s={hidden:!1,show:function(){this.set("hidden",!1)},hide:function(){this.set("hidden",!0)},toggle:function(){this.set("hidden",!this.get("hidden"))},is_visible:function(){return!this.attributes.hidden}},r=a.Model.extend({defaults:{name:null,label:null,type:null,value:null,html:null,num_samples:5},initialize:function(e){this.attributes.html=unescape(this.attributes.html)},copy:function(){return new r(this.toJSON())},set_value:function(e){this.set("value",e||"")}}),l=a.Collection.extend({model:r}),c=r.extend({}),d=r.extend({set_value:function(e){this.set("value",parseInt(e,10))},get_samples:function(){return d3.scale.linear().domain([this.get("min"),this.get("max")]).ticks(this.get("num_samples"))}}),h=d.extend({set_value:function(e){this.set("value",parseFloat(e))}}),u=r.extend({get_samples:function(){return e.map(this.get("options"),function(e){return e[0]})}});r.subModelTypes={integer:d,float:h,data:c,select:u};var p=a.Model.extend({defaults:{id:null,name:null,description:null,target:null,inputs:[],outputs:[]},urlRoot:Galaxy.root+"api/tools",initialize:function(t){this.set("inputs",new l(e.map(t.inputs,function(e){var t=r.subModelTypes[e.type]||r;return new t(e)})))},toJSON:function(){var e=a.Model.prototype.toJSON.call(this);return e.inputs=this.get("inputs").map(function(e){return e.toJSON()}),e},remove_inputs:function(e){var t=this,i=t.get("inputs").filter(function(t){return e.indexOf(t.get("type"))!==-1});t.get("inputs").remove(i)},copy:function(e){var t=new p(this.toJSON());if(e){var i=new a.Collection;t.get("inputs").each(function(e){e.get_samples()&&i.push(e)}),t.set("inputs",i)}return t},apply_search_results:function(t){return e.indexOf(t,this.attributes.id)!==-1?this.show():this.hide(),this.is_visible()},set_input_value:function(e,t){this.get("inputs").find(function(t){return t.get("name")===e}).set("value",t)},set_input_values:function(t){var i=this;e.each(e.keys(t),function(e){i.set_input_value(e,t[e])})},run:function(){return this._run()},rerun:function(e,t){return this._run({action:"rerun",target_dataset_id:e.id,regions:t})},get_inputs_dict:function(){var e={};return this.get("inputs").each(function(t){e[t.get("name")]=t.get("value")}),e},_run:function(n){var s=e.extend({tool_id:this.id,inputs:this.get_inputs_dict()},n),a=o.Deferred(),r=new t.ServerStateDeferred({ajax_settings:{url:this.urlRoot,data:JSON.stringify(s),dataType:"json",contentType:"application/json",type:"POST"},interval:2e3,success_fn:function(e){return"pending"!==e}});return o.when(r.go()).then(function(e){a.resolve(new i.DatasetCollection(e))}),a}});e.extend(p.prototype,s);var f=(a.View.extend({}),a.Collection.extend({model:p})),g=a.Model.extend(s),m=a.Model.extend({defaults:{elems:[],open:!1},clear_search_results:function(){e.each(this.attributes.elems,function(e){e.show()}),this.show(),this.set("open",!1)},apply_search_results:function(t){var i,n=!0;e.each(this.attributes.elems,function(e){e instanceof g?(i=e,i.hide()):e instanceof p&&e.apply_search_results(t)&&(n=!1,i&&i.show())}),n?this.hide():(this.show(),this.set("open",!0))}});e.extend(m.prototype,s);var v=a.Model.extend({defaults:{search_hint_string:"search tools",min_chars_for_search:3,clear_btn_url:"",visible:!0,query:"",results:null,clear_key:27},urlRoot:Galaxy.root+"api/tools",initialize:function(){this.on("change:query",this.do_search)},do_search:function(){var e=this.attributes.query;if(e.length
");e.append(E.tool_link(this.model.toJSON()));var t=this.model.get("form_style",null);if("upload1"===this.model.id)e.find("a").on("click",function(e){e.preventDefault(),Galaxy.upload.show()});else if("regular"===t){var i=this;e.find("a").on("click",function(e){e.preventDefault(),Galaxy.router.push("/",{tool_id:i.model.id,version:i.model.get("version")})})}return this.$el.append(e),this}}),b=y.extend({tagName:"div",className:"toolPanelLabel",render:function(){return this.$el.append(o(" ").text(this.model.attributes.text)),this}}),x=y.extend({tagName:"div",className:"toolSectionWrapper",initialize:function(){y.prototype.initialize.call(this),this.model.on("change:open",this.update_open,this)},render:function(){this.$el.append(E.panel_section(this.model.toJSON()));var t=this.$el.find(".toolSectionBody");return e.each(this.model.attributes.elems,function(e){if(e instanceof p){var i=new w({model:e,className:"toolTitle"});i.render(),t.append(i.$el)}else if(e instanceof g){var n=new b({model:e});n.render(),t.append(n.$el)}}),this},events:{"click .toolSectionTitle > a":"toggle"},toggle:function(){this.model.set("open",!this.model.attributes.open)},update_open:function(){this.model.attributes.open?this.$el.children(".toolSectionBody").slideDown("fast"):this.$el.children(".toolSectionBody").slideUp("fast")}}),C=a.View.extend({tagName:"div",id:"tool-search",className:"bar",events:{click:"focus_and_select","keyup :input":"query_changed","change :input":"query_changed","click #search-clear-btn":"clear"},render:function(){return this.$el.append(E.tool_search(this.model.toJSON())),this.model.is_visible()||this.$el.hide(),o("#messagebox").is(":visible")&&this.$el.css("top","95px"),this.$el.find("[title]").tooltip(),this},focus_and_select:function(){this.$el.find(":input").focus().select()},clear:function(){return this.model.clear_search(),this.$el.find(":input").val(""),this.focus_and_select(),!1},query_changed:function(e){return this.model.attributes.clear_key&&this.model.attributes.clear_key===e.which?(this.clear(),!1):void this.model.set("query",this.$el.find(":input").val())}}),$=a.View.extend({tagName:"div",className:"toolMenu",initialize:function(){this.model.get("tool_search").on("change:results",this.handle_search_results,this)},render:function(){var e=this,t=new C({model:this.model.get("tool_search")});return t.render(),e.$el.append(t.$el),this.model.get("layout").each(function(t){if(t instanceof m){var i=new x({model:t});i.render(),e.$el.append(i.$el)}else if(t instanceof p){var n=new w({model:t,className:"toolTitleNoSection"});n.render(),e.$el.append(n.$el)}else if(t instanceof g){var s=new b({model:t});s.render(),e.$el.append(s.$el)}}),e.$el.find("a.tool-link").click(function(t){var i=o(this).attr("class").split(/\s+/)[0],n=e.model.get("tools").get(i);e.trigger("tool_link_click",t,n)}),this},handle_search_results:function(){var e=this.model.get("tool_search").get("results");e&&0===e.length?o("#search-no-results").show():o("#search-no-results").hide()}}),k=a.View.extend({className:"toolForm",render:function(){this.$el.children().remove(),this.$el.append(E.tool_form(this.model.toJSON()))}}),E=(a.View.extend({className:"toolMenuAndView",initialize:function(){this.tool_panel_view=new $({collection:this.collection}),this.tool_form_view=new k},render:function(){this.tool_panel_view.render(),this.tool_panel_view.$el.css("float","left"),this.$el.append(this.tool_panel_view.$el),this.tool_form_view.$el.hide(),this.$el.append(this.tool_form_view.$el);var e=this;this.tool_panel_view.on("tool_link_click",function(t,i){t.preventDefault(),e.show_tool(i)})},show_tool:function(e){var t=this;e.fetch().done(function(){t.tool_form_view.model=e,t.tool_form_view.render(),t.tool_form_view.$el.show(),o("#left").width("650px")})}}),{tool_search:e.template([' " autocomplete="off" type="text" />',' ',' '].join("")),panel_section:e.template(['",'','
',"
"].join("")),tool_link:e.template(['
',"<% _.each( labels, function( label ){ %>",'',"<%- label %>"," ","<% }); %>"," ",'
',"<%- name %>"," "," <%- description %>"].join("")),tool_form:e.template(['
<%- tool.name %> (version <%- tool.version %>)
','
',"<% _.each( tool.inputs, function( input ){ %>",'
","<% }); %>","
",'
',' ',"
",'
"].join(""),{variable:"tool"})});return{ToolParameter:r,IntegerToolParameter:d,SelectToolParameter:u,Tool:p,ToolCollection:f,ToolSearch:v,ToolPanel:_,ToolPanelView:$,ToolFormView:k}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1))},function(e,t,i){var n,s;(function(a,o){n=[i(4)],s=function(e){return a.View.extend({
+colors:{standard:["c00000","ff0000","ffc000","ffff00","92d050","00b050","00b0f0","0070c0","002060","7030a0"],base:["ffffff","000000","eeece1","1f497d","4f81bd","c0504d","9bbb59","8064a2","4bacc6","f79646"],theme:[["f2f2f2","7f7f7f","ddd9c3","c6d9f0","dbe5f1","f2dcdb","ebf1dd","e5e0ec","dbeef3","fdeada"],["d8d8d8","595959","c4bd97","8db3e2","b8cce4","e5b9b7","d7e3bc","ccc1d9","b7dde8","fbd5b5"],["bfbfbf","3f3f3f","938953","548dd4","95b3d7","d99694","c3d69b","b2a2c7","92cddc","fac08f"],["a5a5a5","262626","494429","17365d","366092","953734","76923c","5f497a","31859b","e36c09"],["7f7f7e","0c0c0c","1d1b10","0f243e","244061","632423","4f6128","3f3151","205867","974806"]]},initialize:function(t){this.options=e.merge(t,{}),this.setElement(this._template()),this.$panel=this.$(".ui-color-picker-panel"),this.$view=this.$(".ui-color-picker-view"),this.$value=this.$(".ui-color-picker-value"),this.$header=this.$(".ui-color-picker-header"),this._build(),this.visible=!1,this.value(this.options.value),this.$boxes=this.$(".ui-color-picker-box");var i=this;this.$boxes.on("click",function(){i.value(o(this).css("background-color")),i.$header.trigger("click")}),this.$header.on("click",function(){i.visible=!i.visible,i.visible?i.$view.fadeIn("fast"):i.$view.fadeOut("fast")})},value:function(e){return void 0!==e&&null!==e&&(this.$value.css("background-color",e),this.$(".ui-color-picker-box").empty(),this.$(this._getValue()).html(this._templateCheck()),this.options.onchange&&this.options.onchange(e)),this._getValue()},_getValue:function(){function e(e){return("0"+parseInt(e).toString(16)).slice(-2)}var t=this.$value.css("background-color");return t=t.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/),t?"#"+e(t[1])+e(t[2])+e(t[3]):null},_build:function(){this._content({colors:this.colors.base});for(var e in this.colors.theme){var t={};0==e?t.bottom=!0:e!=this.colors.theme.length-1?(t.top=!0,t.bottom=!0):t.top=!0,t.colors=this.colors.theme[e],this._content(t)}this._content({colors:this.colors.standard})},_content:function(e){var t=e.colors,i=o(this._templateContent()),n=i.find(".line");this.$panel.append(i);for(var s in t){var a=o(this._templateBox(t[s]));e.top&&(a.css("border-top","none"),a.css("border-top-left-radius","0px"),a.css("border-top-right-radius","0px")),e.bottom&&(a.css("border-bottom","none"),a.css("border-bottom-left-radius","0px"),a.css("border-bottom-right-radius","0px")),n.append(a)}return i},_templateCheck:function(){return'
'},_templateContent:function(){return'
'},_templateBox:function(e){return'
'},_template:function(){return'
'}})}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1))},function(e,t,n){var s,a;(function(o,r){s=[n(4),n(24)],a=function(e,t){var n=t.BaseIcons.extend({initialize:function(e){e.type=e.display||"checkbox",e.multiple="checkbox"==e.type,t.BaseIcons.prototype.initialize.call(this,e)},_setValue:function(e){if(t.BaseIcons.prototype._setValue.call(this,e),void 0!==e&&null!==e&&this.header_index){var i=this,n=o.isArray(e)?e:[e];r.each(n,function(e){var t=i.header_index[e];r.each(t,function(e){i._setState(e,!0)})})}},_setState:function(e,t){var i=this.$(".button-"+e),n=this.$(".subgroup-"+e);i.data("is_expanded",t),t?(n.show(),i.removeClass("fa-plus-square").addClass("fa-minus-square")):(n.hide(),i.removeClass("fa-minus-square").addClass("fa-plus-square"))},_templateOptions:function(){function t(e,t){var i=e.find(".button-"+t);i.on("click",function(){s._setState(t,!i.data("is_expanded"))})}function n(a,r,l){l=l||[];for(i in r){var c=r[i],d=c.options&&c.options.length>0,h=l.slice(0);s.header_index[c.value]=h.slice(0);var u=o("
");if(d){var p=e.uid(),f=o("
").addClass("button-"+p).addClass("ui-drilldown-button fa fa-plus-square"),g=o("
").addClass("subgroup-"+p).addClass("ui-drilldown-subgroup");u.append(o("
").append(f).append(s._templateOption({label:c.name,value:c.value}))),h.push(p),n(g,c.options,h),u.append(g),t(u,p)}else u.append(s._templateOption({label:c.name,value:c.value}));a.append(u)}}var s=this;this.header_index={};var a=o("
");return n(a,this.model.get("data")),a},_template:function(){return o("
").addClass("ui-options-list drilldown-container").attr("id",this.model.id)}});return{View:n}}.apply(t,s),!(void 0!==a&&(e.exports=a))}).call(t,n(1),n(2))},function(e,t,i){var n,s;(function(a,o,r){n=[i(4),i(7),i(25)],s=function(e,t,i){var n={DISABLED:"disabled",ENABLED:"enabled",LINKED:"linked"},s={data:[{src:"hda",icon:"fa-file-o",tooltip:"Single dataset",multiple:!1,batch:n.DISABLED},{src:"hda",icon:"fa-files-o",tooltip:"Multiple datasets",multiple:!0,batch:n.LINKED},{src:"hdca",icon:"fa-folder-o",tooltip:"Dataset collection",multiple:!1,batch:n.LINKED}],data_multiple:[{src:"hda",icon:"fa-files-o",tooltip:"Multiple datasets",multiple:!0,batch:n.DISABLED},{src:"hdca",icon:"fa-folder-o",tooltip:"Dataset collections",multiple:!0,batch:n.DISABLED}],data_collection:[{src:"hdca",icon:"fa-folder-o",tooltip:"Dataset collection",multiple:!1,batch:n.DISABLED}],workflow_data:[{src:"hda",icon:"fa-file-o",tooltip:"Single dataset",multiple:!1,batch:n.DISABLED}],workflow_data_multiple:[{src:"hda",icon:"fa-files-o",tooltip:"Multiple datasets",multiple:!0,batch:n.DISABLED}],workflow_data_collection:[{src:"hdca",icon:"fa-folder-o",tooltip:"Dataset collection",multiple:!1,batch:n.DISABLED}],module_data:[{src:"hda",icon:"fa-file-o",tooltip:"Single dataset",multiple:!1,batch:n.DISABLED},{src:"hda",icon:"fa-files-o",tooltip:"Multiple datasets",multiple:!0,batch:n.ENABLED}],module_data_collection:[{src:"hdca",icon:"fa-folder-o",tooltip:"Dataset collection",multiple:!1,batch:n.DISABLED},{src:"hdca",icon:"fa-folder",tooltip:"Multiple collections",multiple:!0,batch:n.ENABLED}]},l=a.View.extend({initialize:function(e){var i=this;this.model=e&&e.model||new a.Model({src_labels:{hda:"dataset",hdca:"dataset collection"},pagelimit:100,statustimer:1e3}).set(e),this.setElement(o("
").addClass("ui-select-content")),this.button_product=new t.RadioButton.View({value:"false",data:[{icon:"fa fa-chain",value:"false",tooltip:"Linked inputs will be run in matched order with other datasets e.g. use this for matching forward and reverse reads."},{icon:"fa fa-chain-broken",value:"true",tooltip:"Unlinked dataset inputs will be run against *all* other inputs."}]});var n=o("
").addClass("ui-form-info").append(o("
").addClass("fa fa-sitemap")).append(o("
").html("This is a batch mode input field. Separate jobs will be triggered for each dataset selection."));this.$batch={linked:n.clone(),enabled:n.clone().append(o("
").append(o("
").addClass("ui-form-title").html("Batch options:")).append(this.button_product.$el)).append(o("
").css("clear","both"))},this.$el.on("dragenter",function(e){this.lastenter=e.target,i.$el.addClass("ui-dragover")}).on("dragover",function(e){e.preventDefault()}).on("dragleave",function(e){this.lastenter===e.target&&i.$el.removeClass("ui-dragover")}).on("drop",function(e){i._handleDrop(e)}),this.history={},this.listenTo(this.model,"change:data",this._changeData,this),this.listenTo(this.model,"change:wait",this._changeWait,this),this.listenTo(this.model,"change:current",this._changeCurrent,this),this.listenTo(this.model,"change:value",this._changeValue,this),this.listenTo(this.model,"change:type change:optional change:multiple change:extensions",this._changeType,this),this.render(),this.on("change",function(){e.onchange&&e.onchange(i.value())})},render:function(){this._changeType(),this._changeValue(),this._changeWait()},wait:function(){this.model.set("wait",!0)},unwait:function(){this.model.set("wait",!1)},update:function(e){this.model.set("data",e)},value:function(e){void 0!==e&&this.model.set("value",e);var t=this.model.get("current");if(this.config[t]){var i=this.fields[t].value();if(null!==i&&(i=o.isArray(i)?i:[i],i.length>0)){var n=this._batch({values:[]});for(var s in i){var a=this.history[i[s]+"_"+this.config[t].src];if(!a)return Galaxy.emit.debug("ui-select-content::value()","Requested details not found for '"+i[s]+"'."),null;n.values.push(a)}return n.values.sort(function(e,t){return e.hid-t.hid}),n}}else Galaxy.emit.debug("ui-select-content::value()","Invalid value/source '"+e+"'.");return null},_changeCurrent:function(){var e=this;r.each(this.fields,function(t,i){e.model.get("current")==i?(t.$el.show(),r.each(e.$batch,function(t,n){t[e.config[i].batch==n?"show":"hide"]()}),e.button_type.value(i)):t.$el.hide()})},_changeType:function(){var n=this,a=(this.model.get("flavor")?this.model.get("flavor")+"_":"")+String(this.model.get("type"))+(this.model.get("multiple")?"_multiple":"");s[a]?this.config=s[a]:(this.config=s.data,Galaxy.emit.debug("ui-select-content::_changeType()","Invalid configuration/type id '"+a+"'."));var o=n.model.get("data"),l=e.textify(this.model.get("extensions")),c=this.model.get("src_labels");this.fields=[],this.button_data=[],r.each(this.config,function(e,t){n.button_data.push({value:t,icon:e.icon,tooltip:e.tooltip}),n.fields.push(new i.View({optional:n.model.get("optional"),multiple:e.multiple,searchable:!e.multiple||o&&o[e.src]&&o[e.src].length>n.model.get("pagelimit"),selectall:!1,error_text:"No "+(l?l+" ":"")+(c[e.src]||"content")+" available.",onchange:function(){n.trigger("change")}}))}),this.button_type=new t.RadioButton.View({value:this.model.get("current"),data:this.button_data,onchange:function(e){n.model.set("current",e),n.trigger("change")}}),this.$el.empty();var d=0;this.fields.length>1&&(this.$el.append(this.button_type.$el),d=Math.max(0,36*this.fields.length)+"px"),r.each(this.fields,function(e){n.$el.append(e.$el.css({"margin-left":d}))}),r.each(this.$batch,function(e,t){n.$el.append(e.css({"margin-left":d}))}),this.model.set("current",0),this._changeCurrent(),this._changeData()},_changeWait:function(){var e=this;r.each(this.fields,function(t){t[e.model.get("wait")?"wait":"unwait"]()})},_changeData:function(){var e=this.model.get("data"),t=this,i={};r.each(e,function(e,n){i[n]=[],r.each(e,function(e){i[n].push({hid:e.hid,keep:e.keep,label:e.hid+": "+e.name,value:e.id,tags:e.tags}),t.history[e.id+"_"+n]=e})}),r.each(this.config,function(e,n){i[e.src]&&t.fields[n].add(i[e.src],function(e,t){return t.hid-e.hid})})},_changeValue:function(){var e=this.model.get("value");if(e&&e.values&&e.values.length>0){var t=[];r.each(e.values,function(e){t.push(e.id)});for(var i=e.values[0].src,n=e.values.length>1,s=0;s
Select Library
'}});return{View:r}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3))},function(e,t,i){var n,s;(function(a,o){n=[i(4)],s=function(e){var t=a.View.extend({initialize:function(t){var i=this;this.model=t&&t.model||new a.Model({id:e.uid(),min:null,max:null,step:null,precise:!1,split:1e4,value:null,onchange:function(){}}).set(t),this.setElement(this._template()),this.$el.attr("id",this.model.id),this.$text=this.$(".ui-form-slider-text"),this.$slider=this.$(".ui-form-slider-element");var n=[];this.$text.on("change",function(){i.value(o(this).val())}).on("keyup",function(e){n[e.which]=!1}).on("keydown",function(e){var t=e.which;n[t]=!0,i.model.get("is_workflow")&&n[16]&&52==t?(i.value("$"),event.preventDefault()):8==t||9==t||13==t||37==t||39==t||t>=48&&t<=57&&!n[16]||t>=96&&t<=105||(190==t||110==t)&&o(this).val().indexOf(".")==-1&&i.model.get("precise")||(189==t||109==t)&&o(this).val().indexOf("-")==-1||i._isParameter(o(this).val())||n[91]||n[17]||event.preventDefault()});var s=this.model.attributes;this.has_slider=null!==s.max&&null!==s.min&&s.max>s.min;var r=s.step;r||(r=s.precise&&this.has_slider?(s.max-s.min)/s.split:1),this.has_slider?(this.$text.addClass("ui-form-slider-left"),this.$slider.slider({min:s.min,max:s.max,step:r}).on("slide",function(e,t){i.value(t.value)})):this.$slider.hide(),this.listenTo(this.model,"change",this.render,this),this.render()},render:function(){var e=this.model.get("value");this.has_slider&&this.$slider.slider("value",e),e!==this.$text.val()&&this.$text.val(e)},value:function(e){var t=this.model.attributes;return void 0!==e&&(null===e||""===e||this._isParameter(e)||(isNaN(e)&&(e=0),!t.precise&&(e=Math.round(e)),null!==t.max&&(e=Math.min(e,t.max)),null!==t.min&&(e=Math.max(e,t.min))),this.model.set("value",e),this.model.trigger("change"),t.onchange(e)),this.model.get("value")},_isParameter:function(e){return this.model.get("is_workflow")&&"$"===String(e).substring(0,1)},_template:function(){return'
'}});return{View:t}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1))},function(e,t,i){var n,s;(function(a,o){n=[i(4)],s=function(e){var t=a.View.extend({initialize:function(e){this.collection=new a.Collection,this.model=e&&e.model||new a.Model({onchange:null,visible:!0}).set(e),this.setElement(o(this._template())),this.$nav=this.$(".tab-navigation"),this.$content=this.$(".tab-content"),this.$el.on("click",function(){o(".tooltip").hide()}),this.render(),this.listenTo(this.model,"change",this.render,this),this.listenTo(this.collection,"add",this._add,this),this.listenTo(this.collection,"remove",this._remove,this),this.listenTo(this.collection,"change",this._change,this),this.listenTo(this.collection,"reset",this._reset,this),this.listenTo(this.collection,"add remove reset",this.render,this)},render:function(){var e=this.model.get("current");e=this.$("#"+e).length>0?e:this.first(),e&&(this.$nav.children().removeClass("active"),this.$content.children().removeClass("active"),this.$("#tab-"+e).addClass("active"),this.$("#"+e).addClass("active")),this.$el[this.model.get("visible")?"fadeIn":"fadeOut"]("fast"),this.$nav[this.size()>1?"show":"hide"]()},current:function(){return this.model.get("current")},show:function(e){e&&(this.model.set({current:e,visible:!0}),this.model.get("onchange")&&this.model.get("onchange")(e))},hide:function(){this.model.set("visible",!1)},first:function(){var e=this.collection.first();return e&&e.id},size:function(){return this.collection.length},add:function(e){this.collection.add(e)},del:function(e){this.collection.remove(e)},delAll:function(){this.collection.reset()},showTab:function(e){this.collection.get(e).set("hidden",!1)},hideTab:function(e){this.collection.get(e).set("hidden",!0)},_add:function(e){var t=this,i=e.attributes;this.$content.append(o("
").attr("id",i.id).addClass("tab-pane").append(i.$el)),this.$nav.append(o(this._template_tab(i)).show().tooltip({title:i.tooltip,placement:"bottom",container:t.$el}).on("click",function(e){e.preventDefault(),t.show(i.id)})),1==this.size()&&this.show(i.id)},_remove:function(e){this.$("#tab-"+e.id).remove(),this.$("#"+e.id).remove()},_reset:function(){this.$nav.empty(),this.$content.empty()},_change:function(e){this.$("#tab-"+e.id)[e.get("hidden")?"hide":"show"]()},_template:function(){return o("
").addClass("ui-tabs tabbable tabs-left").append(o("
").addClass("tab-navigation nav nav-tabs")).append(o("
").addClass("tab-content"))},_template_tab:function(e){var t=o("
").addClass("tab-element").attr("id","tab-"+e.id).append(o("
").attr("id","tab-title-link-"+e.id)),i=t.find("a");return e.icon&&i.append(o("
").addClass("tab-icon fa").addClass(e.icon)),i.append(o("
").attr("id","tab-title-text-"+e.id).addClass("tab-title-text").append(e.title)),t}});return{View:t}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1))},function(e,t,i){var n,s;(function(a,o,r){n=[i(4)],s=function(e){return a.View.extend({initialize:function(t){var i=this;this.options=e.merge(t,{class_add:"upload-icon-button fa fa-square-o",class_remove:"upload-icon-button fa fa-check-square-o",class_partial:"upload-icon-button fa fa-minus-square-o",collection:null,onchange:function(){},onadd:function(){},onremove:function(){}}),this.collection=this.options.collection,this.setElement(this._template()),this.rows=[],e.get({url:Galaxy.root+"api/remote_files",success:function(e){i._fill(e)},error:function(){i._fill()}})},_fill:function(t){if(t&&t.length>0){this.$(".upload-ftp-content").html(o(this._templateTable()));var i=0;for(index in t)this.rows.push(this._add(t[index])),i+=t[index].size;if(this.$(".upload-ftp-number").html(t.length+" files"),this.$(".upload-ftp-disk").html(e.bytesToString(i,!0)),this.collection){var n=this;this.$("._has_collection").show(),this.$select_all=this.$(".upload-selectall").addClass(this.options.class_add),this.$select_all.on("click",function(){var e=n.$select_all.hasClass(n.options.class_add);for(index in t){var i=t[index],s=n._find(i);(!s&&e||s&&!e)&&n.rows[index].trigger("click")}}),this._refresh()}}else this.$(".upload-ftp-content").html(o(this._templateInfo()));this.$(".upload-ftp-wait").hide()},_add:function(e){var t=this,i=o(this._templateRow(e)),n=i.find(".icon");return this.$("tbody").append(i),this.collection?(n.addClass(this._find(e)?this.options.class_remove:this.options.class_add),i.on("click",function(){var i=t._find(e);n.removeClass(),i?(t.options.onremove(i),n.addClass(t.options.class_add)):(t.options.onadd(e),n.addClass(t.options.class_remove)),t._refresh()})):i.on("click",function(){t.options.onchange(e)}),i},_refresh:function(){var e=this.collection.where({file_mode:"ftp",enabled:!0});this.$select_all.removeClass(),0==e.length?this.$select_all.addClass(this.options.class_add):this.$select_all.addClass(e.length==this.rows.length?this.options.class_remove:this.options.class_partial)},_find:function(e){var t=this.collection.findWhere({file_path:e.path,file_mode:"ftp",enabled:!0});return t&&t.get("id")},_templateRow:function(t){return'
'+r.escape(t.path)+' '+e.bytesToString(t.size)+' '+t.ctime+" "},_templateTable:function(){return'
Available files: '},_templateInfo:function(){return'
Your FTP directory does not contain any files.
'},_template:function(){return'
This Galaxy server allows you to upload files via FTP. To upload some files, log in to the FTP server at '+this.options.ftp_upload_site+' using your Galaxy credentials (email address and password).
'}})}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1),i(2))},function(e,t,i){var n,s;(function(a,o,r){n=[i(4)],s=function(e){return a.View.extend({options:{class_check:"fa-check-square-o",class_uncheck:"fa-square-o",parameters:[{id:"space_to_tab",title:"Convert spaces to tabs"},{id:"to_posix_lines",title:"Use POSIX standard"}]},initialize:function(e){this.model=e.model,this.setElement(o("
").addClass("upload-settings")),this.$el.append(o("
").addClass("upload-settings-cover")),this.$el.append(o("
").addClass("upload-settings-table ui-table-striped").append("
")),this.$cover=this.$(".upload-settings-cover"),this.$table=this.$(".upload-settings-table > tbody"),this.listenTo(this.model,"change",this.render,this),this.model.trigger("change")},render:function(){var e=this;this.$table.empty(),r.each(this.options.parameters,function(t){var i=o("
").addClass("upload-"+t.id+" upload-icon-button fa").addClass(e.model.get(t.id)&&e.options.class_check||e.options.class_uncheck).on("click",function(){e.model.get("enabled")&&e.model.set(t.id,!e.model.get(t.id))});e.$table.append(o("
").append(o("
").append(i)).append(o("
").append(t.title)))}),this.$cover[this.model.get("enabled")&&"hide"||"show"]()}})}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1),i(2))},,,function(e,t,i){(function(e,t){!function(i){e.event.props.push("dataTransfer"),i.uploadpost=function(t){var n=i.extend({},{data:{},success:function(){},error:function(){},progress:function(){},url:null,maxfilesize:2048,error_filesize:"File exceeds 2GB. Please use a FTP client.",error_default:"Please make sure the file is available.",error_server:"Upload request failed.",error_login:"Uploads require you to log in."},t),s=n.data;if(s.error_message)return void n.error(s.error_message);var a=new FormData;for(var o in s.payload)a.append(o,s.payload[o]);var r=0;for(var o in s.files){var l=s.files[o];a.append(l.name,l.file,l.file.name),r+=l.file.size}return r>1048576*n.maxfilesize?void n.error(n.error_filesize):(xhr=new XMLHttpRequest,xhr.open("POST",n.url,!0),xhr.setRequestHeader("Accept","application/json"),xhr.setRequestHeader("Cache-Control","no-cache"),xhr.setRequestHeader("X-Requested-With","XMLHttpRequest"),xhr.onreadystatechange=function(){if(xhr.readyState==xhr.DONE){var t=null;if(xhr.responseText)try{t=e.parseJSON(xhr.responseText)}catch(e){t=xhr.responseText}if(xhr.status<200||xhr.status>299){var i=xhr.statusText;403==xhr.status?i=n.error_login:0==xhr.status?i=n.error_server:i||(i=n.error_default),n.error(i+" ("+xhr.status+")")}else n.success(t)}},xhr.upload.addEventListener("progress",function(e){e.lengthComputable&&n.progress(Math.round(100*e.loaded/e.total))},!1),Galaxy.emit.debug("uploadbox::uploadpost()","Posting following data.",n),void xhr.send(a))},i.fn.uploadinput=function(e){var t=this,n=i.extend({},{ondragover:function(){},ondragleave:function(){},onchange:function(){},multiple:!1},e),s=i('
");return t.append(s.change(function(e){n.onchange(e.target.files),i(this).val("")})),t.on("drop",function(e){n.ondragleave(e),e.dataTransfer&&(n.onchange(e.dataTransfer.files),e.preventDefault())}),t.on("dragover",function(e){e.preventDefault(),n.ondragover(e)}),t.on("dragleave",function(e){e.stopPropagation(),n.ondragleave(e)}),{dialog:function(){s.trigger("click")}}},i.fn.uploadbox=function(e){function n(e){if(e&&e.length&&!m){var i=f;return t.each(e,function(e,i){"new"!==e.mode&&t.filter(p,function(t){return t.name===e.name&&t.size===e.size}).length&&(e.duplicate=!0)}),t.each(e,function(e){if(!e.duplicate){var t=String(f++);p[t]=e,u.announce(t,p[t]),g++}}),i}}function s(e){p[e]&&(delete p[e],g--)}function a(){if(0==g||v)return v=!1,m=!1,void u.complete();m=!0;var e=-1;for(var t in p){e=t;break}p[e];s(e),i.uploadpost({url:u.url,data:u.initialize(e),success:function(t){u.success(e,t),a()},error:function(t){u.error(e,t),a()},progress:function(t){u.progress(e,t)}})}function o(){_.dialog()}function r(e){for(e in p)s(e)}function l(){m||(m=!0,a())}function c(){v=!0}function d(e){return u=i.extend({},u,e)}function h(){return window.File&&window.FormData&&window.XMLHttpRequest&&window.FileList}var u=i.extend({},{dragover:function(){},dragleave:function(){},announce:function(e){},initialize:function(e){},progress:function(e,t){},success:function(e,t){},error:function(e,t){alert(t)},complete:function(){}},e),p={},f=0,g=0,m=!1,v=!1,_=i(this).uploadinput({multiple:!0,onchange:function(e){n(e)},ondragover:e.ondragover,ondragleave:e.ondragleave});return{select:o,add:n,remove:s,start:l,stop:c,reset:r,configure:d,compatible:h}}}(e)}).call(t,i(1),i(2))},,,,,,,,function(e,t,i){var n,s;(function(a,o){n=[i(6),i(5),i(18)],s=function(e,t){var i=a.View.extend(e.LoggableMixin).extend(e.HiddenUntilActivatedViewMixin).extend({tagName:"div",className:"annotation-display",initialize:function(e){e=e||{},this.tooltipConfig=e.tooltipConfig||{placement:"bottom"},this.listenTo(this.model,"change:annotation",function(){this.render()}),this.hiddenUntilActivated(e.$activator,e)},render:function(){var e=this;return this.$el.html(this._template()),this.$annotation().make_text_editable({use_textarea:!0,on_finish:function(t){e.$annotation().text(t),e.model.save({annotation:t},{silent:!0}).fail(function(){e.$annotation().text(e.model.previous("annotation"))})}}),this},_template:function(){var e=this.model.get("annotation");return['
',t("Annotation")," ",'
',o.escape(e),"
"].join("")},$annotation:function(){return this.$el.find(".annotation")},remove:function(){this.$annotation.off(),this.stopListening(this.model),a.View.prototype.remove.call(this)},toString:function(){return["AnnotationEditor(",this.model+"",")"].join("")}});return{AnnotationEditor:i}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(2))},function(e,t,i){var n,s;(function(a){n=[i(2),i(3),i(6)],s=function(e,t,i){"use strict";var n=t.Collection.extend({initialize:function(e,i){t.Collection.prototype.initialize.call(this,e,i),this.setOrder(i.order||this.order,{silent:!0})},_setUpListeners:function(){return this.on({"changed-order":this.sort})},fetch:function(e){return e=this._buildFetchOptions(e),t.Collection.prototype.fetch.call(this,e)},_buildFetchOptions:function(t){t=e.clone(t)||{};var i=this;t.traditional=!0,t.data=t.data||i._buildFetchData(t);var n=this._buildFetchFilters(t);return e.isEmpty(n)||e.extend(t.data,this._fetchFiltersToAjaxData(n)),t},_buildFetchData:function(t){var i={};return this.order&&(i.order=this.order),e.defaults(e.pick(t,this._fetchParams),i)},_fetchParams:["order","limit","offset","view","keys"],_buildFetchFilters:function(t){return e.clone(t.filters||{})},_fetchFiltersToAjaxData:function(t){var i={q:[],qv:[]};return e.each(t,function(e,t){void 0!==e&&""!==e&&(e===!0&&(e="True"),e===!1&&(e="False"),null===e&&(e="None"),i.q.push(t),i.qv.push(e))}),i},reset:function(e,i){return this.allFetched=!1,t.Collection.prototype.reset.call(this,e,i)},order:null,comparators:{update_time:i.buildComparator("update_time",{ascending:!1}),"update_time-asc":i.buildComparator("update_time",{ascending:!0}),create_time:i.buildComparator("create_time",{ascending:!1}),"create_time-asc":i.buildComparator("create_time",{ascending:!0})},setOrder:function(t,i){i=i||{};var n=this,s=n.comparators[t];if(e.isUndefined(s))throw new Error("unknown order: "+t);if(s!==n.comparator){n.order;return n.order=t,n.comparator=s,i.silent||n.trigger("changed-order",i),n}}}),s=n.extend({limitPerPage:500,initialize:function(e,t){n.prototype.initialize.call(this,e,t),this.currentPage=t.currentPage||0},getTotalItemCount:function(){return this.length},shouldPaginate:function(){return this.getTotalItemCount()>=this.limitPerPage},getLastPage:function(){return Math.floor(this.getTotalItemCount()/this.limitPerPage)},getPageCount:function(){return this.getLastPage()+1},getPageLimitOffset:function(e){return e=this.constrainPageNum(e),{limit:this.limitPerPage,offset:e*this.limitPerPage}},constrainPageNum:function(e){return Math.max(0,Math.min(e,this.getLastPage()))},fetchPage:function(t,i){var n=this;return t=n.constrainPageNum(t),n.currentPage=t,i=e.defaults(i||{},n.getPageLimitOffset(t)),n.trigger("fetching-more"),n.fetch(i).always(function(){n.trigger("fetching-more-done")})},fetchCurrentPage:function(e){return this.fetchPage(this.currentPage,e)},fetchPrevPage:function(e){return this.fetchPage(this.currentPage-1,e)},fetchNextPage:function(e){return this.fetchPage(this.currentPage+1,e)}}),o=n.extend({limitOnFirstFetch:null,limitPerFetch:100,initialize:function(e,t){n.prototype.initialize.call(this,e,t),this.limitOnFirstFetch=t.limitOnFirstFetch||this.limitOnFirstFetch,this.limitPerFetch=t.limitPerFetch||this.limitPerFetch,this.allFetched=!1,this.lastFetched=t.lastFetched||0},_buildFetchOptions:function(e){return e.remove=e.remove||!1,n.prototype._buildFetchOptions.call(this,e)},fetchFirst:function(t){return t=t?e.clone(t):{},this.allFetched=!1,this.lastFetched=0,this.fetchMore(e.defaults(t,{
+reset:!0,limit:this.limitOnFirstFetch}))},fetchMore:function(t){t=e.clone(t||{});var i=this;if(!t.reset&&i.allFetched)return a.when();t.offset=t.reset?0:t.offset||i.lastFetched;var n=t.limit=t.limit||i.limitPerFetch||null;return i.trigger("fetching-more"),i.fetch(t).always(function(){i.trigger("fetching-more-done")}).done(function(t){var s=e.isArray(t)?t.length:0;i.lastFetched+=s,(!n||s
','
',''].join(""))}};return{CollectionCreatorMixin:e}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(2))},function(e,t,i){var n,s;(function(a){n=[i(87),i(41),i(40),i(6),i(5)],s=function(e,t,i,n,s){"use strict";var o="collections",r=e.ModelListPanel,l=r.extend({_logNamespace:o,className:r.prototype.className+" dataset-collection-panel",DatasetDCEViewClass:i.DatasetDCEListItemView,NestedDCDCEViewClass:i.NestedDCDCEListItemView,modelCollectionKey:"elements",initialize:function(e){r.prototype.initialize.call(this,e),this.linkTarget=e.linkTarget||"_blank",this.hasUser=e.hasUser,this.panelStack=[],this.parentName=e.parentName,this.foldoutStyle=e.foldoutStyle||"foldout",this.downloadUrl=this.model.attributes.url+"/download"},_queueNewRender:function(e,t){t=void 0===t?this.fxSpeed:t;var i=this;i.log("_queueNewRender:",e,t),i._swapNewRender(e),i.trigger("rendered",i)},_filterCollection:function(){return this.model.getVisibleContents()},_getItemViewClass:function(e){switch(e.get("element_type")){case"hda":return this.DatasetDCEViewClass;case"dataset_collection":return this.NestedDCDCEViewClass}throw new TypeError("Unknown element type:",e.get("element_type"))},_getItemViewOptions:function(e){var t=r.prototype._getItemViewOptions.call(this,e);return a.extend(t,{linkTarget:this.linkTarget,hasUser:this.hasUser,foldoutStyle:this.foldoutStyle})},_setUpItemViewListeners:function(e){var t=this;return r.prototype._setUpItemViewListeners.call(t,e),t.listenTo(e,{"expanded:drilldown":function(e,t){this._expandDrilldownPanel(t)},"collapsed:drilldown":function(e,t){this._collapseDrilldownPanel(t)}}),this},_expandDrilldownPanel:function(e){this.panelStack.push(e),this.$("> .controls").add(this.$list()).hide(),e.parentName=this.model.get("name"),this.$el.append(e.render().$el)},_collapseDrilldownPanel:function(e){this.panelStack.pop(),this.render()},events:{"click .navigation .back":"close"},close:function(e){this.remove(),this.trigger("close")},toString:function(){return"CollectionView("+(this.model?this.model.get("name"):"")+")"}});l.prototype.templates=function(){var e=n.wrapTemplate(['
','
",'
','
<%- collection.name || collection.element_identifier %>
','
','<% if( collection.collection_type === "list" ){ %>',s("a list of datasets"),'<% } else if( collection.collection_type === "paired" ){ %>',s("a pair of datasets"),'<% } else if( collection.collection_type === "list:paired" ){ %>',s("a list of paired datasets"),'<% } else if( collection.collection_type === "list:list" ){ %>',s("a list of dataset lists"),"<% } %>","
","
",'
','
","
"],"collection");return a.extend(a.clone(r.prototype.templates),{controls:e})}();var c=l.extend({DatasetDCEViewClass:i.DatasetDCEListItemView,toString:function(){return"ListCollectionView("+(this.model?this.model.get("name"):"")+")"}}),d=c.extend({toString:function(){return"PairCollectionView("+(this.model?this.model.get("name"):"")+")"}}),h=l.extend({NestedDCDCEViewClass:i.NestedDCDCEListItemView.extend({foldoutPanelClass:d}),toString:function(){return"ListOfPairsCollectionView("+(this.model?this.model.get("name"):"")+")"}}),u=l.extend({NestedDCDCEViewClass:i.NestedDCDCEListItemView.extend({foldoutPanelClass:d}),toString:function(){return"ListOfListsCollectionView("+(this.model?this.model.get("name"):"")+")"}});return{CollectionView:l,ListCollectionView:c,PairCollectionView:d,ListOfPairsCollectionView:h,ListOfListsCollectionView:u}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(2))},function(e,t,i){var n,s;(function(a,o){n=[i(11),i(43),i(55),i(76),i(19),i(6),i(5)],s=function(e,t,i,n,s,r,l){"use strict";var c=t.DatasetListItemView,d=c.extend({initialize:function(e){c.prototype.initialize.call(this,e),this.hasUser=e.hasUser,this.purgeAllowed=e.purgeAllowed||!1,this.tagsEditorShown=e.tagsEditorShown||!1,this.annotationEditorShown=e.annotationEditorShown||!1},_renderPrimaryActions:function(){var t=c.prototype._renderPrimaryActions.call(this);return this.model.get("state")===e.NOT_VIEWABLE?t:c.prototype._renderPrimaryActions.call(this).concat([this._renderEditButton(),this._renderDeleteButton()])},_renderEditButton:function(){if(this.model.get("state")===e.DISCARDED||!this.model.get("accessible"))return null;var t=this.model.get("purged"),i=this.model.get("deleted"),n={title:l("Edit attributes"),href:this.model.urls.edit,target:this.linkTarget,faIcon:"fa-pencil",classes:"edit-btn"};return i||t?(n.disabled=!0,t?n.title=l("Cannot edit attributes of datasets removed from disk"):i&&(n.title=l("Undelete dataset to edit attributes"))):a.contains([e.UPLOAD,e.NEW],this.model.get("state"))&&(n.disabled=!0,n.title=l("This dataset is not yet editable")),s(n)},_renderDeleteButton:function(){if(!this.model.get("accessible"))return null;var e=this,t=this.model.isDeletedOrPurged();return s({title:l(t?"Dataset is already deleted":"Delete"),disabled:t,faIcon:"fa-times",classes:"delete-btn",onclick:function(){e.$el.find(".icon-btn.delete-btn").trigger("mouseout"),e.model.delete()}})},_renderDetails:function(){var t=c.prototype._renderDetails.call(this),i=this.model.get("state");return!this.model.isDeletedOrPurged()&&a.contains([e.OK,e.FAILED_METADATA],i)&&(this._renderTags(t),this._renderAnnotation(t),this._makeDbkeyEditLink(t)),this._setUpBehaviors(t),t},_renderToolHelpButton:function(){var e=this.model.attributes.dataset_id,t=this.model.attributes.creating_job,i=this,n=function(t){var n='
';t.name&&t.help?(n+="Tool help for "+t.name+"
",n+=t.help):n+="Tool help is unavailable for this dataset. ",n+="",i.$el.find(".details").append(o.parseHTML(n))},a=function(e){o.ajax({url:Galaxy.root+"api/tools/"+e.tool_id+"/build"}).done(function(e){n(e)}).fail(function(){n({})})};return null===Galaxy.user.id?null:s({title:"Tool Help",classes:"icon-btn",href:"#",faIcon:"fa-question",onclick:function(){i.$el.find(".toolhelp").length>0?i.$el.find(".toolhelp").toggle():o.ajax({url:Galaxy.root+"api/jobs/"+t}).done(function(e){a(e)}).fail(function(){console.log('Failed at recovering job information from the Galaxy API for job id "'+t+'".')})}})},_renderSecondaryActions:function(){var t=c.prototype._renderSecondaryActions.call(this);switch(this.model.get("state")){case e.UPLOAD:case e.NOT_VIEWABLE:return t;case e.ERROR:return t.unshift(this._renderErrButton()),t.concat([this._renderRerunButton(),this._renderToolHelpButton()]);case e.OK:case e.FAILED_METADATA:return t.concat([this._renderRerunButton(),this._renderVisualizationsButton(),this._renderToolHelpButton()])}return t.concat([this._renderRerunButton(),this._renderToolHelpButton()])},_renderErrButton:function(){return s({title:l("View or report this error"),href:this.model.urls.report_error,classes:"report-error-btn",target:this.linkTarget,faIcon:"fa-bug"})},_renderRerunButton:function(){var e=this.model.get("creating_job");if(this.model.get("rerunnable"))return s({title:l("Run this job again"),href:this.model.urls.rerun,classes:"rerun-btn",target:this.linkTarget,faIcon:"fa-refresh",onclick:function(t){t.preventDefault(),Galaxy.router.push("/",{job_id:e})}})},_renderVisualizationsButton:function(){var e=this.model.get("visualizations");if(this.model.isDeletedOrPurged()||!this.hasUser||!this.model.hasData()||a.isEmpty(e))return null;if(!a.isObject(e[0]))return this.warn("Visualizations have been switched off"),null;var t=o(this.templates.visualizations(e,this));return t.find('[target="galaxy_main"]').attr("target",this.linkTarget),this._addScratchBookFn(t.find(".visualization-link").addBack(".visualization-link")),t},_addScratchBookFn:function(e){e.click(function(e){Galaxy.frame&&Galaxy.frame.active&&(Galaxy.frame.add({title:"Visualization",url:o(this).attr("href")}),e.preventDefault(),e.stopPropagation())})},_renderTags:function(e){if(this.hasUser){var t=this;this.tagsEditor=new i.TagsEditor({model:this.model,el:e.find(".tags-display"),onshowFirstTime:function(){this.render()},onshow:function(){t.tagsEditorShown=!0},onhide:function(){t.tagsEditorShown=!1},$activator:s({title:l("Edit dataset tags"),classes:"tag-btn",faIcon:"fa-tags"}).appendTo(e.find(".actions .right"))}),this.tagsEditorShown&&this.tagsEditor.toggle(!0)}},_renderAnnotation:function(e){if(this.hasUser){var t=this;this.annotationEditor=new n.AnnotationEditor({model:this.model,el:e.find(".annotation-display"),onshowFirstTime:function(){this.render()},onshow:function(){t.annotationEditorShown=!0},onhide:function(){t.annotationEditorShown=!1},$activator:s({title:l("Edit dataset annotation"),classes:"annotate-btn",faIcon:"fa-comment"}).appendTo(e.find(".actions .right"))}),this.annotationEditorShown&&this.annotationEditor.toggle(!0)}},_makeDbkeyEditLink:function(e){if("?"===this.model.get("metadata_dbkey")&&!this.model.isDeletedOrPurged()){var t=o('
? ').attr("href",this.model.urls.edit).attr("target",this.linkTarget);e.find(".dbkey .value").replaceWith(t)}},events:a.extend(a.clone(c.prototype.events),{"click .undelete-link":"_clickUndeleteLink","click .purge-link":"_clickPurgeLink","click .edit-btn":function(e){this.trigger("edit",this,e)},"click .delete-btn":function(e){this.trigger("delete",this,e)},"click .rerun-btn":function(e){this.trigger("rerun",this,e)},"click .report-err-btn":function(e){this.trigger("report-err",this,e)},"click .visualization-btn":function(e){this.trigger("visualize",this,e)},"click .dbkey a":function(e){this.trigger("edit",this,e)}}),_clickUndeleteLink:function(e){return this.model.undelete(),!1},_clickPurgeLink:function(e){return confirm(l("This will permanently remove the data in your dataset. Are you sure?"))&&this.model.purge(),!1},toString:function(){var e=this.model?this.model+"":"(no model)";return"HDAEditView("+e+")"}});return d.prototype.templates=function(){var e=a.extend({},c.prototype.templates.warnings,{failed_metadata:r.wrapTemplate(['<% if( dataset.state === "failed_metadata" ){ %>','
","<% } %>"],"dataset"),deleted:r.wrapTemplate(["<% if( dataset.deleted && !dataset.purged ){ %>",'
',l("This dataset has been deleted"),'
',l("Undelete it")," ","<% if( view.purgeAllowed ){ %>",'
',l("Permanently remove it from disk")," ","<% } %>","
","<% } %>"],"dataset")}),t=r.wrapTemplate(["<% if( visualizations.length === 1 ){ %>",'
">',' '," ","<% } else { %>",'
","<% } %>"],"visualizations");return a.extend({},c.prototype.templates,{warnings:e,visualizations:t})}(),{DatasetListItemEdit:d}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(2),i(1))},function(e,t,i){var n,s;(function(a,o,r){n=[i(11),i(6),i(5)],s=function(e,t,i){"use strict";var n="dataset",s=t.SearchableModelMixin,l=a.Model.extend(t.LoggableMixin).extend(t.mixin(s,{_logNamespace:n,defaults:{state:e.NEW,deleted:!1,purged:!1,name:"(unnamed dataset)",accessible:!0,data_type:"",file_ext:"",file_size:0,meta_files:[],misc_blurb:"",misc_info:"",tags:[]},initialize:function(t,i){this.debug(this+"(Dataset).initialize",t,i),
//!! this state is not in trans.app.model.Dataset.states - set it here -
this.get("accessible")||this.set("state",e.NOT_VIEWABLE),this.urls=this._generateUrls(),this._setUpListeners()},_generateUrls:function(){var e=this.get("id");if(!e)return{};var t={purge:"datasets/"+e+"/purge_async",display:"datasets/"+e+"/display/?preview=True",edit:"datasets/"+e+"/edit",download:"datasets/"+e+"/display"+this._downloadQueryParameters(),report_error:"dataset/errors?id="+e,rerun:"tool_runner/rerun?id="+e,show_params:"datasets/"+e+"/show_params",visualization:"visualization",meta_download:"dataset/get_metadata_file?hda_id="+e+"&metadata_name="};return o.each(t,function(e,i){t[i]=Galaxy.root+e}),this.urls=t,t},_downloadQueryParameters:function(){return"?to_ext="+this.get("file_ext")},_setUpListeners:function(){this.on("change:state",function(e,t){this.log(this+" has changed state:",e,t),this.inReadyState()&&this.trigger("state:ready",e,t,this.previous("state"))}),this.on("change:id change:file_ext",function(e){this._generateUrls()})},toJSON:function(){var e=a.Model.prototype.toJSON.call(this);return o.extend(e,{urls:this.urls})},isDeletedOrPurged:function(){return this.get("deleted")||this.get("purged")},inReadyState:function(){var t=o.contains(e.READY_STATES,this.get("state"));return this.isDeletedOrPurged()||t},hasDetails:function(){return!this.get("accessible")||this.has("annotation")},hasData:function(){return this.get("file_size")>0},fetch:function(e){var t=this;return a.Model.prototype.fetch.call(this,e).always(function(){t._generateUrls()})},parse:function(e,t){var i=a.Model.prototype.parse.call(this,e,t);return i.create_time&&(i.create_time=new Date(i.create_time)),i.update_time&&(i.update_time=new Date(i.update_time)),i},save:function(e,t){return t=t||{},t.wait=!!o.isUndefined(t.wait)||t.wait,a.Model.prototype.save.call(this,e,t)},delete:function(e){return this.get("deleted")?r.when():this.save({deleted:!0},e)},undelete:function(e){return!this.get("deleted")||this.get("purged")?r.when():this.save({deleted:!1},e)},purge:function(e){if(this.get("purged"))return r.when();e=e||{},e.url=this.urls.purge;var t=this,n=r.ajax(e);return n.done(function(e,i,n){t.set({deleted:!0,purged:!0})}),n.fail(function(n,s,a){var o=i("Unable to purge dataset"),r="Removal of datasets by users is not allowed in this Galaxy instance";n.responseJSON&&n.responseJSON.error?o=n.responseJSON.error:n.responseText.indexOf(r)!==-1&&(o=r),n.responseText=o,t.trigger("error",t,n,e,i(o),{error:o})}),n},searchAttributes:["name","file_ext","genome_build","misc_blurb","misc_info","annotation","tags"],searchAliases:{title:"name",format:"file_ext",database:"genome_build",blurb:"misc_blurb",description:"misc_blurb",info:"misc_info",tag:"tags"},toString:function(){var e=this.get("id")||"";return this.get("name")&&(e='"'+this.get("name")+'",'+e),"Dataset("+e+")"}})),c=a.Collection.extend(t.LoggableMixin).extend({_logNamespace:n,model:l,urlRoot:Galaxy.root+"api/datasets",url:function(){return this.urlRoot},ids:function(){return this.map(function(e){return e.get("id")})},notReady:function(){return this.filter(function(e){return!e.inReadyState()})},haveDetails:function(){return this.all(function(e){return e.hasDetails()})},ajaxQueue:function(e,t){var i=r.Deferred(),n=this.length,s=[];if(!n)return i.resolve([]),i;var a=this.chain().reverse().map(function(o,r){return function(){var l=e.call(o,t);l.done(function(e){i.notify({curr:r,total:n,response:e,model:o})}),l.always(function(e){s.push(e),a.length?a.shift()():i.resolve(s)})}}).value();return a.shift()(),i},matches:function(e){return this.filter(function(t){return t.matches(e)})},toString:function(){return["DatasetAssociationCollection(",this.length,")"].join("")}});return{DatasetAssociation:l,DatasetAssociationCollection:c}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(2),i(1))},function(e,t,i){var n,s;(function(a,o,r){n=[i(8),i(90),i(5)],s=function(e,t,i){"use strict";var n={defaultName:a.template("Copy of '<%- name %>'"),title:a.template(i("Copying history")+' "<%- name %>"'),submitLabel:i("Copy"),errorMessage:i("History could not be copied."),progressive:i("Copying history"),activeLabel:i("Copy only the active, non-deleted datasets"),allLabel:i("Copy all datasets including deleted ones"),anonWarning:i("As an anonymous user, unless you login or register, you will lose your current history ")+i("after copying this history. "),_template:a.template(["<% if( isAnon ){ %>",'
',"<%- anonWarning %>",i("You can"),'
',i("login here")," ",i("or")," ",'
',i("register here")," .","
","<% } %>","
"].join("")),_showAjaxIndicator:function(){var e='
'+this.progressive+"...
";this.modal.$(".modal-body").empty().append(e).css({"margin-top":"8px"})},dialog:function(e,n,s){function l(){var i=e.$("#copy-modal-title").val();if(!i)return void e.$(".invalid-title").show();var s="copy-all"===e.$('input[name="copy-what"]:checked').val();e.$("button").prop("disabled",!0),c._showAjaxIndicator(),n.copy(!0,i,s).done(function(e){d.resolve(e)}).fail(function(e,a,o){var r={name:i,copyAllDatasets:s};t.ajaxErrorModal(n,e,r,c.errorMessage),d.rejectWith(d,arguments)}).done(function(){g&&e.hide()})}s=s||{};var c=this,d=o.Deferred(),h=s.nameFn||this.defaultName,u=h({name:n.get("name")}),p=s.allDatasets?"copy-all":"copy-non-deleted",f=!!a.isUndefined(s.allowAll)||s.allowAll,g=!!a.isUndefined(s.autoClose)||s.autoClose;this.modal=e;var m=s.closing_callback;return e.show(a.extend(s,{title:this.title({name:n.get("name")}),body:r(c._template({name:u,isAnon:Galaxy.user.isAnonymous(),allowAll:f,copyWhat:p,activeLabel:this.activeLabel,allLabel:this.allLabel,anonWarning:this.anonWarning})),buttons:a.object([[i("Cancel"),function(){e.hide()}],[this.submitLabel,l]]),height:"auto",closing_events:!0,closing_callback:function(e){e&&d.reject({cancelled:!0}),m&&m(e)}})),e.$("#copy-modal-title").focus().select(),e.$("#copy-modal-title").on("keydown",function(e){13===e.keyCode&&(e.preventDefault(),l())}),d}},s=a.extend({},n,{defaultName:a.template("imported: <%- name %>"),title:a.template(i("Importing history")+' "<%- name %>"'),submitLabel:i("Import"),errorMessage:i("History could not be imported."),progressive:i("Importing history"),activeLabel:i("Import only the active, non-deleted datasets"),allLabel:i("Import all datasets including deleted ones"),anonWarning:i("As an anonymous user, unless you login or register, you will lose your current history ")+i("after importing this history. ")}),l=function(t,i){i=i||{};var a=window.parent.Galaxy.modal||new e.View({});return i.useImport?s.dialog(a,t,i):n.dialog(a,t,i)};return l}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(2),i(1),i(1))},function(e,t,i){var n,s;(function(a){n=[i(43),i(6),i(5)],s=function(e,t,i){"use strict";var n=e.DatasetListItemView,s=n.extend({className:n.prototype.className+" history-content",initialize:function(e,t){n.prototype.initialize.call(this,e,t)},toString:function(){var e=this.model?this.model+"":"(no model)";return"HDAListItemView("+e+")"}});return s.prototype.templates=function(){var e=t.wrapTemplate(['
','
','
','<%- dataset.hid %> ','<%- dataset.name %> ',"
","",'
',"<% _.each(_.sortBy(_.uniq(dataset.tags), function(x) { return x }), function(tag){ %>",'<% if (tag.indexOf("name:") == 0){ %>','<%- tag.slice(5) %> ',"<% } %>","<% }); %>"," ","
"],"dataset"),s=a.extend({},n.prototype.templates.warnings,{hidden:t.wrapTemplate(["<% if( !dataset.visible ){ %>",'
',i("This dataset has been hidden"),"
","<% } %>"],"dataset")});return a.extend({},n.prototype.templates,{titleBar:e,warnings:s})}(),{HDAListItemView:s}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(2))},function(e,t,i){var n,s;(function(a){n=[i(81),i(86),i(6),i(5)],s=function(e,t,i,n){"use strict";var s=e.DatasetAssociation,o=t.HistoryContentMixin,r=s.extend(i.mixin(o,{defaults:a.extend({},s.prototype.defaults,o.defaults,{history_content_type:"dataset",model_class:"HistoryDatasetAssociation"})}));return{HistoryDatasetAssociation:r}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(2))},function(e,t,i){var n,s;(function(a){n=[i(11),i(40),i(79),i(6),i(5)],s=function(e,t,i,n,s){"use strict";var o=t.DCListItemView,r=o.extend({className:o.prototype.className+" history-content",_setUpListeners:function(){o.prototype._setUpListeners.call(this),this.listenTo(this.model,{"change:tags change:populated change:visible":function(e,t){this.render()}})},_getFoldoutPanelClass:function(){switch(this.model.get("collection_type")){case"list":return i.ListCollectionView;case"paired":return i.PairCollectionView;case"list:paired":return i.ListOfPairsCollectionView;case"list:list":return i.ListOfListsCollectionView}throw new TypeError("Uknown collection_type: "+this.model.get("collection_type"))},_swapNewRender:function(t){o.prototype._swapNewRender.call(this,t);var i=this.model.get("populated")?e.OK:e.RUNNING;return this.$el.addClass("state-"+i),this.$el},toString:function(){var e=this.model?this.model+"":"(no model)";return"HDCAListItemView("+e+")"}});return r.prototype.templates=function(){var e=a.extend({},o.prototype.templates.warnings,{hidden:n.wrapTemplate(["<% if( !collection.visible ){ %>",'
',s("This collection has been hidden"),"
","<% } %>"],"collection")}),t=n.wrapTemplate(['
','
','
','<%- collection.hid %> ','<%- collection.name %> ',"
",'
','
',"<% _.each(_.sortBy(_.uniq(collection.tags), function(x) { return x }), function(tag){ %>",'<% if (tag.indexOf("name:") == 0){ %>','<%- tag.slice(5) %> ',"<% } %>","<% }); %>"," ","
"],"collection");return a.extend({},o.prototype.templates,{warnings:e,titleBar:t})}(),{HDCAListItemView:r}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(2))},function(e,t,i){var n,s;(function(a){n=[i(11),i(6),i(5)],s=function(e,t,i){"use strict";var n={defaults:{history_id:null,history_content_type:null,hid:null,visible:!0},idAttribute:"type_id",hidden:function(){return!this.get("visible")},isVisible:function(e,t){var i=!0;return e||!this.get("deleted")&&!this.get("purged")||(i=!1),t||this.get("visible")||(i=!1),i},urlRoot:Galaxy.root+"api/histories/",url:function(){var e=this.urlRoot+this.get("history_id")+"/contents/"+this.get("history_content_type")+"s/"+this.get("id");return e},hide:function(e){return this.get("visible")?this.save({visible:!1},e):a.when()},unhide:function(e){return this.get("visible")?a.when():this.save({visible:!0},e)},toString:function(){return[this.get("type_id"),this.get("hid"),this.get("name")].join(":")}};return{HistoryContentMixin:n}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(1))},function(e,t,i){var n,s;(function(a,o,r){n=[i(54),i(145),i(6),i(5),i(94)],s=function(e,t,i,n){"use strict";var s="list",l=a.View.extend(i.LoggableMixin).extend({_logNamespace:s,viewClass:e.ListItemView,collectionClass:a.Collection,tagName:"div",className:"list-panel",fxSpeed:"fast",emptyMsg:n("This list is empty"),noneFoundMsg:n("No matching items found"),searchPlaceholder:n("search"),initialize:function(e,t){e=e||{},e.logger&&(this.logger=e.logger),this.log(this+".initialize:",e),this.fxSpeed=o.has(e,"fxSpeed")?e.fxSpeed:this.fxSpeed,this.filters=[],this.searchFor=e.searchFor||"",this.selecting=void 0===e.selecting||e.selecting,this.selected=e.selected||[],this.lastSelected=null,this.dragItems=e.dragItems||!1,this.viewClass=e.viewClass||this.viewClass,this.views=[],this.collection=e.collection||this._createDefaultCollection(),this.filters=e.filters||[],this.$scrollContainer=e.$scrollContainer||this.$scrollContainer,this.title=e.title||"",this.subtitle=e.subtitle||"",this._setUpListeners()},_setUpListeners:function(){return this.off(),this.on({error:function(e,t,i,n,s){console.error(e,t,i,n,s)},loading:function(){this._showLoadingIndicator("loading...",40)},"loading-done":function(){this._hideLoadingIndicator(40)}}),this.once("rendered",function(){this.trigger("rendered:initial",this)}),this._setUpCollectionListeners(),this._setUpViewListeners(),this},_createDefaultCollection:function(){return new this.collectionClass([])},_setUpCollectionListeners:function(){return this.log(this+"._setUpCollectionListeners",this.collection),this.stopListening(this.collection),this.listenTo(this.collection,{error:function(e,t,i,n,s){this.trigger("error",e,t,i,n,s)},update:function(e,t){var i=t.changes;return t.renderAll||i.added.length+i.removed.length>1?this.renderItems():1===i.added.length?this.addItemView(o.first(i.added),e,t):1===i.removed.length?this.removeItemView(o.first(i.removed),e,t):void 0}}),this},_setUpViewListeners:function(){this.log(this+"._setUpViewListeners"),this.on({"view:selected":function(e,t){if(t&&t.shiftKey&&this.lastSelected){var i=this.viewFromModelId(this.lastSelected);i&&this.selectRange(e,i)}else t&&t.altKey&&!this.selecting&&this.showSelectors();this.selected.push(e.model.id),this.lastSelected=e.model.id},"view:de-selected":function(e,t){this.selected=o.without(this.selected,e.model.id)}})},render:function(e){this.log(this+".render",e);var t=this._buildNewRender();return this._setUpBehaviors(t),this._queueNewRender(t,e),this},_buildNewRender:function(){this.debug(this+"(ListPanel)._buildNewRender");var e=r(this.templates.el({},this));return this._renderControls(e),this._renderTitle(e),this._renderSubtitle(e),this._renderSearch(e),this.renderItems(e),e},_renderControls:function(e){this.debug(this+"(ListPanel)._renderControls");var t=r(this.templates.controls({},this));return e.find(".controls").replaceWith(t),t},_renderTitle:function(e){},_renderSubtitle:function(e){},_queueNewRender:function(e,t){t=void 0===t?this.fxSpeed:t;var i=this;i.log("_queueNewRender:",e,t),r(i).queue("fx",[function(e){i.$el.fadeOut(t,e)},function(t){i._swapNewRender(e),t()},function(e){i.$el.fadeIn(t,e)},function(e){i.trigger("rendered",i),e()}])},_swapNewRender:function(e){return this.$el.empty().attr("class",this.className).append(e.children()),this.selecting&&this.showSelectors(0),this},_setUpBehaviors:function(e){return e=e||this.$el,this.$controls(e).find("[title]").tooltip(),this._renderMultiselectActionMenu(e),this},_renderMultiselectActionMenu:function(e){e=e||this.$el;var t=e.find(".list-action-menu"),i=this.multiselectActions();if(!i.length)return t.empty();var s=r(['"].join("")),a=i.map(function(e){var t=['
',e.html," "].join("");return r(t).click(function(t){return t.preventDefault(),e.func(t)})});return s.find("ul").append(a),t.replaceWith(s),s},multiselectActions:function(){return[]},$scrollContainer:function(e){return(e||this.$el).parent().parent()},$controls:function(e){return(e||this.$el).find("> .controls")},$list:function(e){return(e||this.$el).find("> .list-items")},$messages:function(e){return(e||this.$el).find("> .controls .messages")},$emptyMessage:function(e){return(e||this.$el).find("> .empty-message")},renderItems:function(e){e=e||this.$el;var t=this;t.log(this+".renderItems",e);var i=t.$list(e);t.freeViews();var n=t._filterCollection();return t.views=n.map(function(e){var i=t._createItemView(e);return i}),i.empty(),t.views.length&&t._attachItems(e),t._renderEmptyMessage(e).toggle(!t.views.length),t.trigger("views:ready",t.views),t.views},_filterCollection:function(){var e=this;return e.collection.filter(o.bind(e._filterItem,e))},_filterItem:function(e){var t=this;return o.every(t.filters.map(function(t){return t.call(e)}))&&(!t.searchFor||e.matchesAll(t.searchFor))},_createItemView:function(e){var t=this._getItemViewClass(e),i=o.extend(this._getItemViewOptions(e),{model:e}),n=new t(i);return this._setUpItemViewListeners(n),n},_destroyItemView:function(e){this.stopListening(e),this.views=o.without(this.views,e)},_destroyItemViews:function(e){var t=this;return t.views.forEach(function(e){t.stopListening(e)}),t.views=[],t},freeViews:function(){return this._destroyItemViews()},_getItemViewClass:function(e){return this.viewClass},_getItemViewOptions:function(e){return{fxSpeed:this.fxSpeed,expanded:!1,selectable:this.selecting,selected:o.contains(this.selected,e.id),draggable:this.dragItems}},_setUpItemViewListeners:function(e){var t=this;return this.listenTo(e,"all",function(){var e=Array.prototype.slice.call(arguments,0);e[0]="view:"+e[0],t.trigger.apply(t,e)}),this.listenTo(e,"draggable:dragstart",function(e,t){var i={},n=this.getSelectedModels();i=n.length?n.toJSON():[t.model.toJSON()],e.dataTransfer.setData("text",JSON.stringify(i))},this),t},_attachItems:function(e){var t=this;return this.$list(e).append(this.views.map(function(e){return t._renderItemView$el(e)})),this},_renderItemView$el:function(e){return e.render(0).$el},_renderEmptyMessage:function(e){this.debug("_renderEmptyMessage",e,this.searchFor);var t=this.searchFor?this.noneFoundMsg:this.emptyMsg;return this.$emptyMessage(e).text(t)},expandAll:function(){o.each(this.views,function(e){e.expand()})},collapseAll:function(){o.each(this.views,function(e){e.collapse()})},addItemView:function(e,t,i){var n=this,s=n._filterCollection().indexOf(e);if(s!==-1){var a=n._createItemView(e);return r(a).queue("fx",[function(e){n.$emptyMessage().is(":visible")?n.$emptyMessage().fadeOut(n.fxSpeed,e):e()},function(e){n._attachView(a,s),e()}]),a}},_attachView:function(e,t,i){i=!!o.isUndefined(i)||i,t=t||0;var n=this;return n.views.splice(t,0,e),n._insertIntoListAt(t,n._renderItemView$el(e).hide()),n.trigger("view:attached",e),i?e.$el.slideDown(n.fxSpeed,function(){n.trigger("view:attached:rendered")}):(e.$el.show(),n.trigger("view:attached:rendered")),e},_insertIntoListAt:function(e,t){var i=this.$list();return 0===e?i.prepend(t):i.children().eq(e-1).after(t),t},removeItemView:function(e,t,i){var n=this,s=o.find(n.views,function(t){return t.model===e});if(s)return n.views=o.without(n.views,s),n.trigger("view:removed",s),r({}).queue("fx",[function(e){s.$el.fadeOut(n.fxSpeed,e)},function(e){s.remove(),n.trigger("view:removed:rendered"),n.views.length?e():n._renderEmptyMessage().fadeIn(n.fxSpeed,e)}]),s},viewFromModelId:function(e){return o.find(this.views,function(t){return t.model.id===e})},viewFromModel:function(e){return e?this.viewFromModelId(e.id):void 0},viewsWhereModel:function(e){return this.views.filter(function(t){return o.isMatch(t.model.attributes,e)})},viewRange:function(e,t){if(e===t)return e?[e]:[];var i=this.views.indexOf(e),n=this.views.indexOf(t);return i===-1||n===-1?i===n?[]:i===-1?[t]:[e]:i
.controls .search-query");return i.val()!==e&&i.val(e),this},clearSearch:function(e){return this.searchFor="",this.trigger("search:clear",this),this.$("> .controls .search-query").val(""),this.renderItems(),this},THROTTLE_SELECTOR_FX_AT:20,showSelectors:function(e){e=void 0!==e?e:this.fxSpeed,this.selecting=!0,this.$(".list-actions").slideDown(e),e=this.views.length>=this.THROTTLE_SELECTOR_FX_AT?0:e,o.each(this.views,function(t){t.showSelector(e)})},hideSelectors:function(e){e=void 0!==e?e:this.fxSpeed,this.selecting=!1,this.$(".list-actions").slideUp(e),e=this.views.length>=this.THROTTLE_SELECTOR_FX_AT?0:e,o.each(this.views,function(t){t.hideSelector(e)}),this.selected=[],this.lastSelected=null},toggleSelectors:function(){this.selecting?this.hideSelectors():this.showSelectors()},selectAll:function(e){o.each(this.views,function(t){t.select(e)})},deselectAll:function(e){this.lastSelected=null,o.each(this.views,function(t){t.deselect(e)})},selectRange:function(e,t){var i=this.viewRange(e,t);return o.each(i,function(e){e.select()}),i},getSelectedViews:function(){return o.filter(this.views,function(e){return e.selected})},getSelectedModels:function(){return new this.collection.constructor(o.map(this.getSelectedViews(),function(e){return e.model}))},_showLoadingIndicator:function(e,i,n){this.debug("_showLoadingIndicator",this.indicator,e,i,n),i=void 0!==i?i:this.fxSpeed,this.indicator||(this.indicator=new t(this.$el),this.debug("\t created",this.indicator)),this.$el.is(":visible")?(this.$el.fadeOut(i),this.indicator.show(e,i,n)):this.indicator.show(0,n)},_hideLoadingIndicator:function(e,t){this.debug("_hideLoadingIndicator",this.indicator,e,t),e=void 0!==e?e:this.fxSpeed,this.indicator&&this.indicator.hide(e,t)},scrollPosition:function(){return this.$scrollContainer().scrollTop()},scrollTo:function(e,t){return t=t||0,this.$scrollContainer().animate({scrollTop:e},t),this},scrollToTop:function(e){return this.scrollTo(0,e)},scrollToItem:function(e,t){return e?this:this},scrollToId:function(e,t){return this.scrollToItem(this.viewFromModelId(e),t)},events:{"click .select-all":"selectAll","click .deselect-all":"deselectAll"},toString:function(){return"ListPanel("+this.collection+")"}});l.prototype.templates=function(){var e=i.wrapTemplate([""]),t=i.wrapTemplate(['','
",'
<%- view.subtitle %>
','
','
','
",'
','
','',n("All")," ",'',n("None")," ","
",'","
","
"]);return{el:e,controls:t}}();var c=l.extend({modelCollectionKey:"contents",initialize:function(e){l.prototype.initialize.call(this,e),this.selecting=void 0!==e.selecting&&e.selecting,this.setModel(this.model,e)},setModel:function(e,t){if(t=t||{},this.debug(this+".setModel:",e,t),this.freeModel(),this.freeViews(),e){var i=this.model?this.model.get("id"):null;this.model=e,this.logger&&(this.model.logger=this.logger),this._setUpModelListeners(),this.stopListening(this.collection),this.collection=this.model[this.modelCollectionKey]||t.collection||this._createDefaultCollection(),this._setUpCollectionListeners(),i&&e.get("id")!==i&&this.trigger("new-model",this)}return this},freeModel:function(){return this.model&&this.stopListening(this.model),this},_setUpModelListeners:function(){return this.log(this+"._setUpModelListeners",this.model),this.listenTo(this.model,"error",function(){var e=Array.prototype.slice.call(arguments,0);e.unshift("error"),this.trigger.apply(this,e)},this),this.logger&&this.listenTo(this.model,"all",function(e){this.info(this+"(model)",e,arguments)}),this},_renderControls:function(e){this.debug(this+"(ModelListPanel)._renderControls");var t=this.model?this.model.toJSON():{},i=r(this.templates.controls(t,this));return e.find(".controls").replaceWith(i),i},toString:function(){return"ModelListPanel("+this.model+")"}});return c.prototype.templates=function(){var e=i.wrapTemplate(['','
",'
<%- view.subtitle %>
','
','
','
",'
','
','',n("All")," ",'',n("None")," ","
",'","
","
"]);return o.extend(o.clone(l.prototype.templates),{controls:e})}(),{ListPanel:l,ModelListPanel:c}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(2),i(1))},function(e,t,i){var n,s;(function(a,o,r){n=[i(4),i(33),i(7),i(13),i(28),i(29),i(8),i(27),i(141)],s=function(e,t,i,n,s,l,c,d,h){var u=a.View.extend({initialize:function(e){var i=this;this.modal=parent.Galaxy.modal||new c.View,this.model=e&&e.model||new a.Model(e),this.deferred=new t,this.setElement(o("
").addClass("ui-form-composite").append(this.$message=o("
")).append(this.$header=o("
")).append(this.$steps=o("
"))),o("body").append(this.$el),this._configure(),this.render(),o(window).resize(function(){i._refresh()})},_refresh:function(e){var t=r.reduce(this.$el.children(),function(e,t){return e+o(t).outerHeight()},0)-this.$steps.height()+90;this.$steps.css("height",o(window).height()-t)},_configure:function(){function t(e,t){for(var s=/\$\{(.+?)\}/g;match=s.exec(String(e));){var a=match[1];t(i.wp_inputs[a]=i.wp_inputs[a]||{label:a,name:a,type:"text",color:"hsl( "+100*++n+", 70%, 30% )",style:"ui-form-wp-source",links:[]})}}var i=this;this.forms=[],this.steps=[],this.links=[],this.parms=[],r.each(this.model.get("steps"),function(t,n){Galaxy.emit.debug("tool-form-composite::initialize()",n+" : Preparing workflow step.");var s=h[t.step_type],a=parseInt(n+1)+": "+(t.step_label||t.step_name);t.annotation&&(a+=" - "+t.annotation),t.step_version&&(a+=" (Galaxy Version "+t.step_version+")"),t=e.merge({index:n,title:r.escape(a),icon:s||"",help:null,citations:null,collapsible:!0,collapsed:n>0&&!i._isDataStep(t),sustain_version:!0,sustain_repeats:!0,sustain_conditionals:!0,narrow:!0,text_enable:"Edit",text_disable:"Undo",cls_enable:"fa fa-edit",cls_disable:"fa fa-undo",errors:t.messages,initial_errors:!0,cls:"ui-portlet-narrow",hide_operations:!0,needs_refresh:!1,always_refresh:"tool"!=t.step_type},t),i.steps[n]=t,i.links[n]=[],i.parms[n]={}}),r.each(this.steps,function(e,t){s.visitInputs(e.inputs,function(e,n){i.parms[t][n]=e})}),r.each(this.steps,function(e,t){r.each(e.output_connections,function(e){r.each(i.steps,function(n,s){n.step_index===e.input_step_index&&i.links[t].push(n)})})}),r.each(this.steps,function(e,t){r.each(i.steps,function(n,s){var a={};r.each(e.output_connections,function(e){n.step_index===e.input_step_index&&(a[e.input_name]=e)}),r.each(i.parms[s],function(i,n){var s=a[n];s&&(i.type="hidden",i.help=i.step_linked?i.help+", ":"",i.help+="Output dataset '"+s.output_name+"' from step "+(parseInt(t)+1),i.step_linked=i.step_linked||[],i.step_linked.push(e))})})});var n=0;this.wp_inputs={},r.each(this.steps,function(e,n){r.each(i.parms[n],function(i,n){t(i.value,function(t){t.links.push(e),i.wp_linked=!0,i.type="text",i.backdrop=!0,i.style="ui-form-wp-target"})}),r.each(e.post_job_actions,function(e){r.each(e.action_arguments,function(e){t(e,function(){})})})}),r.each(this.steps,function(t,n){if("tool"==t.step_type){var a=!0;s.visitInputs(t.inputs,function(n,s,o){var r=n.value&&"RuntimeValue"==n.value.__class__,l=["data","data_collection"].indexOf(n.type)!=-1,c=o[n.data_ref];n.step_linked&&!i._isDataStep(n.step_linked)&&(a=!1),n.options&&(0==n.options.length&&!a||n.wp_linked)&&(n.is_workflow=!0),c&&(n.is_workflow=c.step_linked&&!i._isDataStep(c.step_linked)||n.wp_linked),(l||n.value&&"RuntimeValue"==n.value.__class__&&!n.step_linked)&&(t.collapsed=!1),r&&(n.value=n.default_value),n.flavor="workflow",r||l||"hidden"===n.type||n.wp_linked||(n.optional||!e.isEmpty(n.value)&&""!==n.value)&&(n.collapsible_value=n.value,n.collapsible_preview=!0)})}})},render:function(){var e=this;this.deferred.reset(),this._renderHeader(),this._renderMessage(),this._renderParameters(),this._renderHistory(),r.each(this.steps,function(t){e._renderStep(t)})},_renderHeader:function(){var e=this;this.execute_btn=new i.Button({icon:"fa-check",title:"Run workflow",cls:"btn btn-primary",onclick:function(){e._execute()}}),this.$header.addClass("ui-form-header").empty().append(new i.Label({title:"Workflow: "+this.model.get("name")}).$el).append(this.execute_btn.$el)},_renderMessage:function(){this.$message.empty(),this.model.get("has_upgrade_messages")&&this.$message.append(new i.Message({message:"Some tools in this workflow may have changed since it was last saved or some errors were found. The workflow may still run, but any new options will have default values. Please review the messages below to make a decision about whether the changes will affect your analysis.",status:"warning",persistent:!0,fade:!1}).$el);var e=this.model.get("step_version_changes");e&&e.length>0&&this.$message.append(new i.Message({message:"Some tools are being executed with different versions compared to those available when this workflow was last saved because the other versions are not or no longer available on this Galaxy instance. To upgrade your workflow and dismiss this message simply edit the workflow and re-save it.",status:"warning",persistent:!0,fade:!1}).$el)},_renderParameters:function(){var e=this;this.wp_form=null,r.isEmpty(this.wp_inputs)||(this.wp_form=new n({title:"Workflow Parameters ",inputs:this.wp_inputs,cls:"ui-portlet-narrow",onchange:function(){r.each(e.wp_form.input_list,function(t,i){r.each(t.links,function(t){e._refreshStep(t)})})}}),this._append(this.$steps.empty(),this.wp_form.$el))},_renderHistory:function(){this.history_form=new n({cls:"ui-portlet-narrow",title:"History Options ",inputs:[{type:"conditional",name:"new_history",test_param:{name:"check",label:"Send results to a new history",type:"boolean",value:"false",help:""},cases:[{value:"true",inputs:[{name:"name",label:"History name",type:"text",value:this.model.get("name")}]}]}]}),this._append(this.$steps,this.history_form.$el)},_renderStep:function(t){var i=this,s=null;this.deferred.execute(function(a){if(i.$steps.addClass("ui-steps"),"tool"==t.step_type)t.postchange=function(i,n){var s={tool_id:t.id,tool_version:t.version,inputs:o.extend(!0,{},n.data.create())};n.wait(!0),Galaxy.emit.debug("tool-form-composite::postchange()","Sending current state.",s),e.request({type:"POST",url:Galaxy.root+"api/tools/"+t.id+"/build",data:s,success:function(e){n.update(e),n.wait(!1),Galaxy.emit.debug("tool-form-composite::postchange()","Received new model.",e),i.resolve()},error:function(e){Galaxy.emit.debug("tool-form-composite::postchange()","Refresh request failed.",e),
-i.reject()}})},s=new l(t),t.post_job_actions&&t.post_job_actions.length&&s.portlet.append(o("
").addClass("ui-form-element-disabled").append(o("
").addClass("ui-form-title").html("Job Post Actions ")).append(o("
").addClass("ui-form-preview").html(r.reduce(t.post_job_actions,function(e,t){return e+" "+t.short_str},""))));else{var c=["data_input","data_collection_input"].indexOf(t.step_type)!=-1;r.each(t.inputs,function(e){e.flavor="module",e.hide_label=c}),s=new n(e.merge({title:t.title,onchange:function(){r.each(i.links[t.index],function(e){i._refreshStep(e)})},inputs:t.inputs&&t.inputs.length>0?t.inputs:[{type:"hidden",name:"No options available.",ignore:null}]},t))}i.forms[t.index]=s,i._append(i.$steps,s.$el),i._refresh(),t.needs_refresh&&i._refreshStep(t),s.portlet[i.show_progress?"disable":"enable"](),i.show_progress&&i.execute_btn.model.set({wait:!0,wait_text:"Preparing...",percentage:100*(t.index+1)/i.steps.length}),Galaxy.emit.debug("tool-form-composite::initialize()",t.index+" : Workflow step state ready.",t),setTimeout(function(){a.resolve()},0)})},_refreshStep:function(e){var t=this,i=this.forms[e.index];i?(r.each(t.parms[e.index],function(e,n){if(e.step_linked||e.wp_linked){var s=i.field_list[i.data.match(n)];if(s){var a=void 0;if(e.step_linked)a={values:[]},r.each(e.step_linked,function(e){t._isDataStep(e)&&(value=t.forms[e.index].data.create().input,value&&r.each(value.values,function(e){a.values.push(e)}))}),!e.multiple&&a.values.length>0&&(a={values:[a.values[0]]});else if(e.wp_linked){a=e.value;for(var o=/\$\{(.+?)\}/g;match=o.exec(e.value);){var l=t.wp_form.field_list[t.wp_form.data.match(match[1])],c=l&&l.value();c&&(a=a.split(match[0]).join(c))}}void 0!==a&&s.value(a)}}}),i.trigger("change")):e.needs_refresh=!0},_refreshHistory:function(){var e=this,t=parent.Galaxy&&parent.Galaxy.currHistoryPanel&&parent.Galaxy.currHistoryPanel.model;this._refresh_history&&clearTimeout(this._refresh_history),t&&t.refresh().success(function(){0===t.numOfUnfinishedShownContents()&&(e._refresh_history=setTimeout(function(){e._refreshHistory()},t.UPDATE_DELAY))})},_execute:function(){var e=this;this.show_progress=!0,this._enabled(!1),this.deferred.execute(function(t){setTimeout(function(){t.resolve(),e._submit()},0)})},_submit:function(){var t=this,i=this.history_form.data.create(),n={new_history_name:i["new_history|name"]?i["new_history|name"]:null,history_id:i["new_history|name"]?null:this.model.get("history_id"),replacement_params:this.wp_form?this.wp_form.data.create():{},parameters:{},parameters_normalized:!0,batch:!0},s=!0;for(var a in this.forms){var r=this.forms[a],l=r.data.create(),c=t.steps[a],h=c.step_index;r.trigger("reset");for(var u in l){var p=l[u],f=r.data.match(u),g=(r.field_list[f],r.input_list[f]);if(!g.step_linked){if(s=this._isDataStep(c)?p&&p.values&&p.values.length>0:g.optional||g.is_workflow&&""!==p||!g.is_workflow&&null!==p,!s){r.highlight(f);break}n.parameters[h]=n.parameters[h]||{},n.parameters[h][u]=l[u]}}if(!s)break}s?(Galaxy.emit.debug("tool-form-composite::submit()","Validation complete.",n),e.request({type:"POST",url:Galaxy.root+"api/workflows/"+this.model.id+"/invocations",data:n,success:function(e){if(Galaxy.emit.debug("tool-form-composite::submit","Submission successful.",e),t.$el.children().hide(),t.$el.append(t._templateSuccess(e)),o.isArray(e)&&e.length>0){t.$el.append(o("
",{id:"webhook-view"}));new d.WebhookView({urlRoot:Galaxy.root+"api/webhooks/workflow",toolId:n.tool_id,toolVersion:n.tool_version})}t._refreshHistory()},error:function(e){Galaxy.emit.debug("tool-form-composite::submit","Submission failed.",e);var i=!1;if(e&&e.err_data)for(var s in t.forms){var a=t.forms[s],o=e.err_data[a.model.get("step_index")];if(o){var r=a.data.matchResponse(o);for(var l in r){a.highlight(l,r[l]),i=!0;break}}}i||t.modal.show({title:"Workflow submission failed",body:t._templateError(n,e&&e.err_msg),buttons:{Close:function(){t.modal.hide()}}})},complete:function(){t._enabled(!0)}})):(t._enabled(!0),Galaxy.emit.debug("tool-form-composite::submit()","Validation failed.",n))},_append:function(e,t){e.append("
").append(t)},_enabled:function(e){this.execute_btn.model.set({wait:!e,wait_text:"Sending...",percentage:-1}),this.wp_form&&this.wp_form.portlet[e?"enable":"disable"](),this.history_form&&this.history_form.portlet[e?"enable":"disable"](),r.each(this.forms,function(t){t&&t.portlet[e?"enable":"disable"]()})},_isDataStep:function(e){lst=o.isArray(e)?e:[e];for(var t=0;t0?o("
").addClass("donemessagelarge").append(o("
").html("Successfully invoked workflow "+e.sanitize(this.model.get("name"))+" "+(t.length>1?" "+t.length+" times ":"")+".")).append(o("
").append(" ").text("You can check the status of queued jobs and view the resulting data by refreshing the History pane. When the job has been run the status will change from 'running' to 'finished' if completed successfully or 'error' if problems were encountered.")):this._templateError(t,"Invalid success response. No invocations found.")},_templateError:function(e,t){return o("
").addClass("errormessagelarge").append(o("
").text("The server could not complete the request. Please contact the Galaxy Team if this error persists. "+(JSON.stringify(t)||""))).append(o(" ").text(JSON.stringify(e,null,4)))}});return{View:u}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1),i(2))},,function(e,t,i){var n,s;(function(a,o){n=[i(5)],s=function(e){"use strict";function t(t,i,n){return Galaxy.modal.show({title:i,body:t,closing_events:!0,buttons:{Ok:function(){Galaxy.modal.hide()}}}),Galaxy.modal.$el.addClass("error-modal"),n&&(Galaxy.modal.$(".error-details").add(Galaxy.modal.$('button:contains("Details")')).remove(),a("
").addClass("error-details").hide().appendTo(Galaxy.modal.$(".modal-content")).append([a("
").text(h),a(" ").text(JSON.stringify(n,null," "))]),a(''+e("Details")+" ").appendTo(Galaxy.modal.$(".buttons")).click(function(){Galaxy.modal.$(".error-details").toggle()})),Galaxy.modal}function i(i,n,s){if(i){if(i=e(i),n=e(n)||e("Error:"),window.Galaxy&&Galaxy.modal)return t(i,n,s);alert(n+"\n\n"+i),console.log("error details:",JSON.stringify(s))}}function n(){return i(e("You appear to be offline. Please check your connection and try again."),e("Offline?"))}function s(){return i(e("Galaxy is currently unreachable. Please try again in a few minutes.")+" "+c,e("Cannot connect to Galaxy"))}function r(t,n,s,a,o){a=a||d,a+=" "+c,o=o||e("An error occurred");var r=l(t,n,s);return i(a,o,r)}function l(e,t,i){return{raven:o.result(window.Raven,"lastEventId"),userAgent:navigator.userAgent,onLine:navigator.onLine,version:o.result(Galaxy.config,"version_major"),xhr:o.omit(t,o.functions(t)),options:o.omit(i,"xhr"),url:o.result(Galaxy.lastAjax,"url"),data:o.result(Galaxy.lastAjax,"data"),model:o.result(e,"toJSON",e+""),user:o.omit(o.result(Galaxy.user,"toJSON"),"email")}}var c=e("Please contact a Galaxy administrator if the problem persists."),d=e("An error occurred while updating information with the server."),h=e("The following information can assist the developers in finding the source of the error:");return{errorModal:i,offlineErrorModal:n,badGatewayErrorModal:s,ajaxErrorModal:r}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(1),i(2))},,,function(e,t,i){var n,s,a;(function(i,o){!function(i){s=[],n=i,a="function"==typeof n?n.apply(t,s):n,!(void 0!==a&&(e.exports=a))}(function(){i.fn.extend({hoverhighlight:function(e,t){return e=e||"body",this.length?(o(this).each(function(){var i=o(this),n=i.data("target");n&&i.mouseover(function(i){o(n,e).css({background:t})}).mouseout(function(e){o(n).css({background:""})})}),this):this}})})}).call(t,i(1),i(1))},function(e,t,i){var n,s,a;(function(i,o){!function(i){s=[],n=i,a="function"==typeof n?n.apply(t,s):n,!(void 0!==a&&(e.exports=a))}(function(){function e(e,n){function s(e){var t=i(this).parent().children("input");t.val("").trigger("searchInput.clear").blur(),n.onclear()}function a(e,t){return t?(i(this).trigger("search.search",t),void("function"==typeof n.onfirstsearch&&g?(g=!1,n.onfirstsearch(t)):n.onsearch(t))):s()}function r(){return[' "].join("")}function l(){return i(r()).focus(function(e){i(this).select()}).keyup(function(e){if(e.preventDefault(),e.stopPropagation(),e.which===u&&n.escWillClear)s.call(this,e);else{var t=i(this).val();(e.which===p||n.minSearchLen&&t.length>=n.minSearchLen)&&a.call(this,e,t)}}).val(n.initialVal)}function c(){return i([' '].join("")).tooltip({placement:"bottom"}).click(function(e){s.call(this,e)})}function d(){return i([' '].join("")).hide().tooltip({placement:"bottom"})}function h(){f.find(".search-loading").toggle(),f.find(".search-clear").toggle()}var u=27,p=13,f=i(e),g=!0,m={initialVal:"",name:"search",placeholder:"search",classes:"",onclear:function(){},onfirstsearch:null,onsearch:function(e){},minSearchLen:0,escWillClear:!0,oninit:function(){}};return"string"===o.type(n)?("toggle-loading"===n&&h(),f):("object"===o.type(n)&&(n=o.extend(!0,{},m,n)),f.addClass("search-input").prepend([l(),c(),d()]))}var t=window._l||function(e){return e};o.fn.extend({searchInput:function(t){return this.each(function(){return e(this,t)})}})})}).call(t,i(1),i(1))},,function(e,t,i){var n,s;n=[],s=function(){function e(e,t){var i=/(-?[0-9\.]+)/g,n=e.toString().toLowerCase()||"",s=t.toString().toLowerCase()||"",a=String.fromCharCode(0),o=n.replace(i,a+"$1"+a).split(a),r=s.replace(i,a+"$1"+a).split(a),l=new Date(n).getTime(),c=l?new Date(s).getTime():null;if(c){if(lc)return 1}for(var d,h,u=0,p=Math.max(o.length,r.length);uh)return 1}return 0}return e}.apply(t,n),!(void 0!==s&&(e.exports=s))},,,function(e,t,i){(function(t){var n=i(7),s=i(127);CurrentHistoryView=i(124).CurrentHistoryView,_l=i(5);var a=t.View.extend({initialize:function(e,i){var s=this;this.userIsAnonymous=Galaxy.user.isAnonymous(),this.allow_user_dataset_purge=i.config.allow_user_dataset_purge,this.root=i.root,this.historyView=new CurrentHistoryView({className:CurrentHistoryView.prototype.className+" middle",purgeAllowed:this.allow_user_dataset_purge,linkTarget:"galaxy_main"}),Galaxy.currHistoryPanel=this.historyView,Galaxy.currHistoryPanel.listenToGalaxy(Galaxy),this.buttonRefresh=new n.ButtonLink({id:"history-refresh-button",title:"Refresh history",cls:"panel-header-button",icon:"fa fa-refresh",onclick:function(){s.historyView.loadCurrentHistory()}}),this.buttonOptions=new n.ButtonLink({id:"history-options-button",title:"History options",cls:"panel-header-button",target:"galaxy_main",icon:"fa fa-cog",href:this.root+"root/history_options"}),this.buttonViewMulti=new n.ButtonLink({id:"history-view-multi-button",title:"View all histories",cls:"panel-header-button",icon:"fa fa-columns",href:this.root+"history/view_multiple"}),this.model=new t.Model({cls:"history-right-panel",title:_l("History"),buttons:[this.buttonRefresh,this.buttonOptions,this.buttonViewMulti]}),this.setElement(this._template()),this.historyView.setElement(this.$el),this.historyView.connectToQuotaMeter(Galaxy.quotaMeter),this.historyView.loadCurrentHistory(),Galaxy.listenTo(this.historyView,"history-size-change",function(){Galaxy.user.fetch({url:Galaxy.user.urlRoot()+"/"+(Galaxy.user.id||"current")})})},render:function(){this.optionsMenu=s(this.buttonOptions.$el,{anonymous:this.userIsAnonymous,purgeAllowed:this.allow_user_dataset_purge,root:this.root}),this.buttonViewMulti.$el[this.userIsAnonymous?"hide":"show"]()},_template:function(e){return['
'].join("")},toString:function(){return"historyPanel"}});e.exports=a}).call(t,i(3))},function(e,t,i){(function(t,n){var s=i(56),a=i(136),o=i(5),r=(i(88),t.View.extend({initialize:function(e,i){var n=i.config;this.root=i.root,this.stored_workflow_menu_entries=n.stored_workflow_menu_entries||[];var r=new s.ToolSearch({hidden:!1}),l=new s.ToolCollection(n.toolbox);this.tool_panel=new s.ToolPanel({tool_search:r,tools:l,layout:n.toolbox_in_panel}),this.tool_panel_view=new s.ToolPanelView({model:this.tool_panel}),this.upload_button=new a({nginx_upload_path:n.nginx_upload_path,ftp_upload_site:n.ftp_upload_site,default_genome:n.default_genome,default_extension:n.default_extension}),Galaxy.upload=this.upload_button,this.model=new t.Model({title:o("Tools"),buttons:[this.upload_button]}),this.setElement(this._template())},render:function(){var e=this;this.tool_panel.get("layout").size()>0&&(this.$el.prepend(this.tool_panel_view.$el),this.tool_panel_view.render()),e.$("#internal-workflows").append(e._templateAllWorkflow({title:o("All workflows"),href:"workflow"})),n.each(this.stored_workflow_menu_entries,function(t){e.$("#internal-workflows").append(e._templateWorkflowLink({title:t.stored_workflow.name,href:"workflow/run?id="+t.encoded_stored_workflow_id}))})},_templateTool:function(e){return['"].join("")},_templateAllWorkflow:function(e){return['"].join("")},_templateWorkflowLink:function(e){return['"].join("")},_template:function(){return['"].join("")},toString:function(){return"toolPanel"}}));e.exports=r}).call(t,i(3),i(2))},,,,,,,,,,,,,,,,,function(e,t,i){var n,s;(function(a,o){n=[i(40),i(80),i(6),i(5)],s=function(e,t,i,n){"use strict";var s=e.DCListItemView,r=s.extend({initialize:function(e){s.prototype.initialize.call(this,e)},toString:function(){var e=this.model?this.model+"":"(no model)";return"DCListItemEdit("+e+")"}}),l=e.DCEListItemView,c=l.extend({initialize:function(e){l.prototype.initialize.call(this,e)},toString:function(){var e=this.model?this.model+"":"(no model)";return"DCEListItemEdit("+e+")"}}),d=t.DatasetListItemEdit.extend({initialize:function(e){t.DatasetListItemEdit.prototype.initialize.call(this,e)},_fetchModelDetails:function(){var e=this;return e.model.inReadyState()&&!e.model.hasDetails()?e.model.fetch({silent:!0}):a.when()},_renderDeleteButton:function(){return null},toString:function(){var e=this.model?this.model+"":"(no model)";return"DatasetDCEListItemEdit("+e+")"}});d.prototype.templates=function(){return o.extend({},t.DatasetListItemEdit.prototype.templates,{titleBar:e.DatasetDCEListItemView.prototype.templates.titleBar})}();var h=e.NestedDCDCEListItemView.extend({toString:function(){var e=this.model?this.model+"":"(no model)";return"NestedDCDCEListItemEdit("+e+")"}});return{DCListItemEdit:r,DCEListItemEdit:c,DatasetDCEListItemEdit:d,NestedDCDCEListItemEdit:h}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(1),i(2))},function(e,t,i){var n,s;n=[i(79),i(41),i(117),i(6),i(55),i(18),i(5),i(17)],s=function(e,t,i,n,s,a,o){"use strict";var r=e.CollectionView,l=r.extend({DatasetDCEViewClass:i.DatasetDCEListItemEdit,NestedDCDCEViewClass:i.NestedDCDCEListItemEdit,initialize:function(e){r.prototype.initialize.call(this,e)},_setUpBehaviors:function(e){if(e=e||this.$el,r.prototype._setUpBehaviors.call(this,e),this.model&&Galaxy.user&&!Galaxy.user.isAnonymous()){this.tagsEditorShown=!0;var t=this,i="> .controls .name";e.find(i).attr("title",o("Click to rename collection")).tooltip({placement:"bottom"}).make_text_editable({on_finish:function(e){var n=t.model.get("name");e&&e!==n?(t.$el.find(i).text(e),t.model.save({name:e}).fail(function(){t.$el.find(i).text(t.model.previous("name"))})):t.$el.find(i).text(n)}}),this.tagsEditor=new s.TagsEditor({model:this.model,el:e.find(".tags-display"),onshowFirstTime:function(){this.render()},usePrompt:!1}),this.tagsEditor.toggle(!0)}},toString:function(){return"CollectionViewEdit("+(this.model?this.model.get("name"):"")+")"}}),c=l.extend({DatasetDCEViewClass:i.DatasetDCEListItemEdit,toString:function(){return"ListCollectionViewEdit("+(this.model?this.model.get("name"):"")+")"}}),d=c.extend({toString:function(){return"PairCollectionViewEdit("+(this.model?this.model.get("name"):"")+")"}}),h=d.extend({_setUpBehaviors:function(e){r.prototype._setUpBehaviors.call(this,e)},toString:function(){return"NestedPairCollectionViewEdit("+(this.model?this.model.get("name"):"")+")"}}),u=l.extend({NestedDCDCEViewClass:i.NestedDCDCEListItemEdit.extend({foldoutPanelClass:h}),toString:function(){return"ListOfPairsCollectionViewEdit("+(this.model?this.model.get("name"):"")+")"}}),p=l.extend({NestedDCDCEViewClass:i.NestedDCDCEListItemEdit.extend({foldoutPanelClass:h}),toString:function(){return"ListOfListsCollectionViewEdit("+(this.model?this.model.get("name"):"")+")"}});return{CollectionViewEdit:l,ListCollectionViewEdit:c,PairCollectionViewEdit:d,ListOfPairsCollectionViewEdit:u,ListOfListsCollectionViewEdit:p}}.apply(t,n),!(void 0!==s&&(e.exports=s))},function(e,t,i){var n,s;(function(a,o,r,l){n=[i(149),i(96),i(78),i(6),i(5),i(93)],s=function(e,t,i,n,s){"use strict";function c(e){function t(){return i.length||(i=[new RegExp(this.filters[0]),new RegExp(this.filters[1])]),i}e=e||{},e.createPair=e.createPair||function(e){e=e||{};var t=e.listA.splice(e.indexA,1)[0],i=e.listB.splice(e.indexB,1)[0],n=e.listB.indexOf(t),s=e.listA.indexOf(i);return n!==-1&&e.listB.splice(n,1),s!==-1&&e.listA.splice(s,1),this._pair(t,i,{silent:!0})};var i=[];return e.preprocessMatch=e.preprocessMatch||function(e){var i=t.call(this);return o.extend(e,{matchTo:e.matchTo.name.replace(i[0],""),possible:e.possible.name.replace(i[1],"")})},function(t){this.debug("autopair _strategy ---------------------------"),t=t||{};var i,n=t.listA,s=t.listB,a=0,o={score:0,index:null},r=[];for(this.debug("starting list lens:",n.length,s.length),this.debug("bestMatch (starting):",JSON.stringify(o,null," "));a=d?r.push(e.createPair.call(this,{listA:n,indexA:a,listB:s,indexB:o.index})):a+=1,!n.length||!s.length)return r}return this.debug("paired:",JSON.stringify(r,null," ")),this.debug("autopair _strategy ---------------------------"),r}}function d(e,t){var i=e.toJSON();return f(i,{historyId:e.historyId,defaultHideSourceItems:t})}var h="collections",u=a.View.extend(n.LoggableMixin).extend({_logNamespace:h,tagName:"li",className:"dataset paired",initialize:function(e){this.pair=e.pair||{}},template:o.template(['<%- pair.forward.name %> ','','<%- pair.name %> '," ",'<%- pair.reverse.name %> '].join("")),render:function(){return this.$el.attr("draggable",!0).data("pair",this.pair).html(this.template({pair:this.pair})).addClass("flex-column-container"),this},events:{dragstart:"_dragstart",dragend:"_dragend",dragover:"_sendToParent",drop:"_sendToParent"},_dragstart:function(e){e.currentTarget.style.opacity="0.4",e.originalEvent&&(e=e.originalEvent),e.dataTransfer.effectAllowed="move",e.dataTransfer.setData("text/plain",JSON.stringify(this.pair)),this.$el.parent().trigger("pair.dragstart",[this])},_dragend:function(e){e.currentTarget.style.opacity="1.0",this.$el.parent().trigger("pair.dragend",[this])},_sendToParent:function(e){this.$el.parent().trigger(e)},toString:function(){return"PairView("+this.pair.name+")"}}),p=a.View.extend(n.LoggableMixin).extend(i.CollectionCreatorMixin).extend({_logNamespace:h,className:"list-of-pairs-collection-creator collection-creator flex-row-container",initialize:function(e){this.metric("PairedCollectionCreator.initialize",e),e=o.defaults(e,{datasets:[],filters:this.DEFAULT_FILTERS,automaticallyPair:!0,strategy:"lcs",matchPercentage:.9,twoPassAutopairing:!0}),this.initialList=e.datasets,this.historyId=e.historyId,this.filters=this.commonFilters[e.filters]||this.commonFilters[this.DEFAULT_FILTERS],o.isArray(e.filters)&&(this.filters=e.filters),this.automaticallyPair=e.automaticallyPair,this.strategy=this.strategies[e.strategy]||this.strategies[this.DEFAULT_STRATEGY],o.isFunction(e.strategy)&&(this.strategy=e.strategy),this.matchPercentage=e.matchPercentage,this.twoPassAutopairing=e.twoPassAutopairing,this.removeExtensions=!0,this.oncancel=e.oncancel,this.oncreate=e.oncreate,this.autoscrollDist=e.autoscrollDist||24,this.unpairedPanelHidden=!1,this.pairedPanelHidden=!1,this.$dragging=null,this.blocking=!1,this._setUpCommonSettings(e),this._setUpBehaviors(),this._dataSetUp()},commonFilters:{illumina:["_1","_2"],Rs:["_R1","_R2"]},DEFAULT_FILTERS:"illumina",strategies:{simple:"autopairSimple",lcs:"autopairLCS",levenshtein:"autopairLevenshtein"},DEFAULT_STRATEGY:"lcs",_dataSetUp:function(){this.paired=[],this.unpaired=[],this.selectedIds=[],this._sortInitialList(),this._ensureIds(),this.unpaired=this.initialList.slice(0),this.automaticallyPair&&(this.autoPair(),this.once("rendered:initial",function(){this.trigger("autopair")}))},_sortInitialList:function(){this._sortDatasetList(this.initialList)},_sortDatasetList:function(e){return e.sort(function(e,i){return t(e.name,i.name)}),e},_ensureIds:function(){return this.initialList.forEach(function(e){e.hasOwnProperty("id")||(e.id=o.uniqueId())}),this.initialList},_splitByFilters:function(){function e(e,t){return t.test(e.name)}var t=this.filters.map(function(e){return new RegExp(e)}),i=[[],[]];return this.unpaired.forEach(function(n){t.forEach(function(t,s){e(n,t)&&i[s].push(n)})}),i},_addToUnpaired:function(e){var i=function(n,s){if(n===s)return n;var a=Math.floor((s-n)/2)+n,o=t(e.name,this.unpaired[a].name);if(o<0)return i(n,a);if(o>0)return i(a+1,s);for(;this.unpaired[a]&&this.unpaired[a].name===e.name;)a++;return a}.bind(this);this.unpaired.splice(i(0,this.unpaired.length),0,e)},autoPair:function(e){var t=this._splitByFilters(),i=[];return this.twoPassAutopairing&&(i=this.autopairSimple({listA:t[0],listB:t[1]}),t=this._splitByFilters()),e=e||this.strategy,t=this._splitByFilters(),i=i.concat(this[e].call(this,{listA:t[0],listB:t[1]}))},autopairSimple:c({scoreThreshold:function(){return 1},match:function(e){return e=e||{},e.matchTo===e.possible?{index:e.index,score:1}:e.bestMatch}}),autopairLevenshtein:c({scoreThreshold:function(){return this.matchPercentage},match:function(t){t=t||{};var i=e(t.matchTo,t.possible),n=1-i/Math.max(t.matchTo.length,t.possible.length);return n>t.bestMatch.score?{index:t.index,score:n}:t.bestMatch}}),autopairLCS:c({scoreThreshold:function(){return this.matchPercentage},match:function(e){e=e||{};var t=this._naiveStartingAndEndingLCS(e.matchTo,e.possible).length,i=t/Math.max(e.matchTo.length,e.possible.length);return i>e.bestMatch.score?{index:e.index,score:i}:e.bestMatch}}),_naiveStartingAndEndingLCS:function(e,t){for(var i="",n="",s=0,a=0;s=0&&a>=0&&e[s]===t[a];)n=[e[s],n].join(""),s-=1,a-=1;return i+n},_pair:function(e,t,i){i=i||{},this.debug("_pair:",e,t);var n=this._createPair(e,t,i.name);return this.paired.push(n),this.unpaired=o.without(this.unpaired,e,t),i.silent||this.trigger("pair:new",n),n},_createPair:function(e,t,i){if(!e||!t||e===t)throw new Error("Bad pairing: "+[JSON.stringify(e),JSON.stringify(t)]);return i=i||this._guessNameForPair(e,t),{forward:e,name:i,reverse:t}},_guessNameForPair:function(e,t,i){i=void 0!==i?i:this.removeExtensions;var n=e.name,s=t.name,a=this._naiveStartingAndEndingLCS(n.replace(new RegExp(this.filters[0]),""),s.replace(new RegExp(this.filters[1]),""));if(i){var o=a.lastIndexOf(".");if(o>0){var r=a.slice(o,a.length);a=a.replace(r,""),n=n.replace(r,""),s=s.replace(r,"")}}return a||n+" & "+s},_unpair:function(e,t){if(t=t||{},!e)throw new Error("Bad pair: "+JSON.stringify(e));return this.paired=o.without(this.paired,e),this._addToUnpaired(e.forward),this._addToUnpaired(e.reverse),t.silent||this.trigger("pair:unpair",[e]),e},unpairAll:function(){for(var e=[];this.paired.length;)e.push(this._unpair(this.paired[0],{silent:!0}));this.trigger("pair:unpair",e)},_pairToJSON:function(e,t){return t=t||"hda",{collection_type:"paired",src:"new_collection",name:e.name,element_identifiers:[{name:"forward",id:e.forward.id,src:t},{name:"reverse",id:e.reverse.id,src:t}]}},createList:function(e){var t=this,i=Galaxy.root+"api/histories/"+this.historyId+"/contents/dataset_collections",n={type:"dataset_collection",collection_type:"list:paired",hide_source_items:t.hideOriginals||!1,name:o.escape(e||t.$(".collection-name").val()),element_identifiers:t.paired.map(function(e){return t._pairToJSON(e)})};return t.blocking=!0,r.ajax(i,{type:"POST",contentType:"application/json",dataType:"json",data:JSON.stringify(n)}).always(function(){t.blocking=!1}).fail(function(e,i,n){t._ajaxErrHandler(e,i,n)}).done(function(e,i,n){t.trigger("collection:created",e,i,n),t.metric("collection:created",e),"function"==typeof t.oncreate&&t.oncreate.call(this,e,i,n)})},_ajaxErrHandler:function(e,t,i){this.error(e,t,i);var n=s("An error occurred while creating this collection");e&&(n+=0===e.readyState&&0===e.status?": "+s("Galaxy could not be reached and may be updating.")+s(" Try again in a few minutes."):e.responseJSON?""+JSON.stringify(e.responseJSON)+" ":": "+i),creator._showAlert(n,"alert-danger")},render:function(e,t){return this.$el.empty().html(this.templates.main()),this._renderHeader(e),this._renderMiddle(e),this._renderFooter(e),this._addPluginComponents(),this.trigger("rendered",this),this},_renderHeader:function(e,t){var i=this.$(".header").empty().html(this.templates.header()).find(".help-content").prepend(l(this.templates.helpContent()));return this._renderFilters(),i},_renderFilters:function(){return this.$(".forward-column .column-header input").val(this.filters[0]).add(this.$(".reverse-column .column-header input").val(this.filters[1]))},_renderMiddle:function(e,t){var i=this.$(".middle").empty().html(this.templates.middle());return this.unpairedPanelHidden?this.$(".unpaired-columns").hide():this.pairedPanelHidden&&this.$(".paired-columns").hide(),this._renderUnpaired(),this._renderPaired(),i},_renderUnpaired:function(e,t){var i,n,a=this,o=[],r=this._splitByFilters();return this.$(".forward-column .title").text([r[0].length,s("unpaired forward")].join(" ")),this.$(".forward-column .unpaired-info").text(this._renderUnpairedDisplayStr(this.unpaired.length-r[0].length)),this.$(".reverse-column .title").text([r[1].length,s("unpaired reverse")].join(" ")),this.$(".reverse-column .unpaired-info").text(this._renderUnpairedDisplayStr(this.unpaired.length-r[1].length)),this.$(".unpaired-columns .column-datasets").empty(),this.$(".autopair-link").toggle(0!==this.unpaired.length),0===this.unpaired.length?void this._renderUnpairedEmpty():(n=r[1].map(function(e,t){return void 0!==r[0][t]&&r[0][t]!==e&&o.push(a._renderPairButton()),a._renderUnpairedDataset(e)}),i=r[0].map(function(e){return a._renderUnpairedDataset(e)}),i.length||n.length?(this.$(".unpaired-columns .forward-column .column-datasets").append(i).add(this.$(".unpaired-columns .paired-column .column-datasets").append(o)).add(this.$(".unpaired-columns .reverse-column .column-datasets").append(n)),void this._adjUnpairedOnScrollbar()):void this._renderUnpairedNotShown())},_renderUnpairedDisplayStr:function(e){return["(",e," ",s("filtered out"),")"].join("")},_renderUnpairedDataset:function(e){return l(" ").attr("id","dataset-"+e.id).addClass("dataset unpaired").attr("draggable",!0).addClass(e.selected?"selected":"").append(l(" ").addClass("dataset-name").text(e.name)).data("dataset",e)},_renderPairButton:function(){return l(" ").addClass("dataset unpaired").append(l(" ").addClass("dataset-name").text(s("Pair these datasets")))},_renderUnpairedEmpty:function(){var e=l('
').text("("+s("no remaining unpaired datasets")+")");return this.$(".unpaired-columns .paired-column .column-datasets").empty().prepend(e),e},_renderUnpairedNotShown:function(){var e=l('
').text("("+s("no datasets were found matching the current filters")+")");return this.$(".unpaired-columns .paired-column .column-datasets").empty().prepend(e),e},_adjUnpairedOnScrollbar:function(){var e=this.$(".unpaired-columns").last(),t=this.$(".unpaired-columns .reverse-column .dataset").first();if(t.length){var i=e.offset().left+e.outerWidth(),n=t.offset().left+t.outerWidth(),s=Math.floor(i)-Math.floor(n);this.$(".unpaired-columns .forward-column").css("margin-left",s>0?s:0)}},_renderPaired:function(e,t){if(this.$(".paired-column-title .title").text([this.paired.length,s("paired")].join(" ")),this.$(".unpair-all-link").toggle(0!==this.paired.length),0===this.paired.length)return void this._renderPairedEmpty();this.$(".remove-extensions-link").show(),this.$(".paired-columns .column-datasets").empty();var i=this;this.paired.forEach(function(e,t){var n=new u({pair:e});i.$(".paired-columns .column-datasets").append(n.render().$el).append(['',' '," "].join(""))})},_renderPairedEmpty:function(){var e=l('
').text("("+s("no paired datasets yet")+")");return this.$(".paired-columns .column-datasets").empty().prepend(e),e},footerSettings:{".hide-originals":"hideOriginals",".remove-extensions":"removeExtensions"},_addPluginComponents:function(){this._chooseFiltersPopover(".choose-filters-link"),this.$(".help-content i").hoverhighlight(".collection-creator","rgba( 64, 255, 255, 1.0 )")},_chooseFiltersPopover:function(e){function t(e,t){return['',s("Forward"),": ",e,", ",s("Reverse"),": ",t," "].join("")}var i=l(o.template(['','
',s("Choose from the following filters to change which unpaired reads are shown in the display"),":
",o.values(this.commonFilters).map(function(e){return t(e[0],e[1])}).join(""),"
"].join(""))({}));return this.$(e).popover({container:".collection-creator",placement:"bottom",html:!0,content:i})},_validationWarning:function(e,t){var i="validation-warning";"name"===e&&(e=this.$(".collection-name").add(this.$(".collection-name-prompt")),this.$(".collection-name").focus().select()),t?(e=e||this.$("."+i),e.removeClass(i)):e.addClass(i)},_setUpBehaviors:function(){return this.once("rendered",function(){this.trigger("rendered:initial",this)}),this.on("pair:new",function(){
-this._renderUnpaired(),this._renderPaired(),this.$(".paired-columns").scrollTop(8e6)}),this.on("pair:unpair",function(e){this._renderUnpaired(),this._renderPaired(),this.splitView()}),this.on("filter-change",function(){this.filters=[this.$(".forward-unpaired-filter input").val(),this.$(".reverse-unpaired-filter input").val()],this.metric("filter-change",this.filters),this._renderFilters(),this._renderUnpaired()}),this.on("autopair",function(){this._renderUnpaired(),this._renderPaired();var e,t=null;this.paired.length?(t="alert-success",e=this.paired.length+" "+s("pairs created"),this.unpaired.length||(e+=": "+s("all datasets have been successfully paired"),this.hideUnpaired(),this.$(".collection-name").focus())):e=s(["Could not automatically create any pairs from the given dataset names.","You may want to choose or enter different filters and try auto-pairing again.","Close this message using the X on the right to view more help."].join(" ")),this._showAlert(e,t)}),this},events:{"click .more-help":"_clickMoreHelp","click .less-help":"_clickLessHelp","click .main-help":"_toggleHelp","click .header .alert button":"_hideAlert","click .forward-column .column-title":"_clickShowOnlyUnpaired","click .reverse-column .column-title":"_clickShowOnlyUnpaired","click .unpair-all-link":"_clickUnpairAll","change .forward-unpaired-filter input":function(e){this.trigger("filter-change")},"focus .forward-unpaired-filter input":function(e){l(e.currentTarget).select()},"click .autopair-link":"_clickAutopair","click .choose-filters .filter-choice":"_clickFilterChoice","click .clear-filters-link":"_clearFilters","change .reverse-unpaired-filter input":function(e){this.trigger("filter-change")},"focus .reverse-unpaired-filter input":function(e){l(e.currentTarget).select()},"click .forward-column .dataset.unpaired":"_clickUnpairedDataset","click .reverse-column .dataset.unpaired":"_clickUnpairedDataset","click .paired-column .dataset.unpaired":"_clickPairRow","click .unpaired-columns":"clearSelectedUnpaired","mousedown .unpaired-columns .dataset":"_mousedownUnpaired","click .paired-column-title":"_clickShowOnlyPaired","mousedown .flexible-partition-drag":"_startPartitionDrag","click .paired-columns .dataset.paired":"selectPair","click .paired-columns":"clearSelectedPaired","click .paired-columns .pair-name":"_clickPairName","click .unpair-btn":"_clickUnpair","dragover .paired-columns .column-datasets":"_dragoverPairedColumns","drop .paired-columns .column-datasets":"_dropPairedColumns","pair.dragstart .paired-columns .column-datasets":"_pairDragstart","pair.dragend .paired-columns .column-datasets":"_pairDragend","change .remove-extensions":function(e){this.toggleExtensions()},"change .collection-name":"_changeName","keydown .collection-name":"_nameCheckForEnter","change .hide-originals":"_changeHideOriginals","click .cancel-create":"_cancelCreate","click .create-collection":"_clickCreate"},_clickShowOnlyUnpaired:function(e){this.$(".paired-columns").is(":visible")?this.hidePaired():this.splitView()},_clickShowOnlyPaired:function(e){this.$(".unpaired-columns").is(":visible")?this.hideUnpaired():this.splitView()},hideUnpaired:function(e,t){this.unpairedPanelHidden=!0,this.pairedPanelHidden=!1,this._renderMiddle(e,t)},hidePaired:function(e,t){this.unpairedPanelHidden=!1,this.pairedPanelHidden=!0,this._renderMiddle(e,t)},splitView:function(e,t){return this.unpairedPanelHidden=this.pairedPanelHidden=!1,this._renderMiddle(e,t),this},_clickUnpairAll:function(e){this.metric("unpairAll"),this.unpairAll()},_clickAutopair:function(e){var t=this.autoPair();this.metric("autopair",t.length,this.unpaired.length),this.trigger("autopair")},_clickFilterChoice:function(e){var t=l(e.currentTarget);this.$(".forward-unpaired-filter input").val(t.data("forward")),this.$(".reverse-unpaired-filter input").val(t.data("reverse")),this._hideChooseFilters(),this.trigger("filter-change")},_hideChooseFilters:function(){this.$(".choose-filters-link").popover("hide"),this.$(".popover").css("display","none")},_clearFilters:function(e){this.$(".forward-unpaired-filter input").val(""),this.$(".reverse-unpaired-filter input").val(""),this.trigger("filter-change")},_clickUnpairedDataset:function(e){return e.stopPropagation(),this.toggleSelectUnpaired(l(e.currentTarget))},toggleSelectUnpaired:function(e,t){t=t||{};var i=e.data("dataset"),n=void 0!==t.force?t.force:!e.hasClass("selected");return e.length&&void 0!==i?(n?(e.addClass("selected"),t.waitToPair||this.pairAllSelected()):e.removeClass("selected"),e):e},pairAllSelected:function(e){e=e||{};var t=this,i=[],n=[],s=[];return t.$(".unpaired-columns .forward-column .dataset.selected").each(function(){i.push(l(this).data("dataset"))}),t.$(".unpaired-columns .reverse-column .dataset.selected").each(function(){n.push(l(this).data("dataset"))}),i.length=n.length=Math.min(i.length,n.length),i.forEach(function(e,i){try{s.push(t._pair(e,n[i],{silent:!0}))}catch(e){t.error(e)}}),s.length&&!e.silent&&this.trigger("pair:new",s),s},clearSelectedUnpaired:function(){this.$(".unpaired-columns .dataset.selected").removeClass("selected")},_mousedownUnpaired:function(e){if(e.shiftKey){var t=this,i=l(e.target).addClass("selected"),n=function(e){t.$(e.target).filter(".dataset").addClass("selected")};i.parent().on("mousemove",n),l(document).one("mouseup",function(e){i.parent().off("mousemove",n),t.pairAllSelected()})}},_clickPairRow:function(e){var t=l(e.currentTarget).index(),i=l(".unpaired-columns .forward-column .dataset").eq(t).data("dataset"),n=l(".unpaired-columns .reverse-column .dataset").eq(t).data("dataset");this._pair(i,n)},_startPartitionDrag:function(e){function t(e){n.$(".flexible-partition-drag").css("color",""),l("body").css("cursor","").unbind("mousemove",i)}function i(e){var t=e.pageY-s;n.adjPartition(t)||l("body").trigger("mouseup"),n._adjUnpairedOnScrollbar(),s+=t}var n=this,s=e.pageY;l("body").css("cursor","ns-resize"),n.$(".flexible-partition-drag").css("color","black"),l("body").mousemove(i),l("body").one("mouseup",t)},adjPartition:function(e){var t=this.$(".unpaired-columns"),i=this.$(".paired-columns"),n=parseInt(t.css("height"),10),s=parseInt(i.css("height"),10);n=Math.max(10,n+e),s-=e;var a=e<0;if(a){if(this.unpairedPanelHidden)return!1;if(n<=10)return this.hideUnpaired(),!1}else this.unpairedPanelHidden&&(t.show(),this.unpairedPanelHidden=!1);if(a)this.pairedPanelHidden&&(i.show(),this.pairedPanelHidden=!1);else{if(this.pairedPanelHidden)return!1;if(s<=15)return this.hidePaired(),!1}return t.css({height:n+"px",flex:"0 0 auto"}),!0},selectPair:function(e){e.stopPropagation(),l(e.currentTarget).toggleClass("selected")},clearSelectedPaired:function(e){this.$(".paired-columns .dataset.selected").removeClass("selected")},_clickPairName:function(e){e.stopPropagation();var t=l(e.currentTarget),i=t.parent().parent(),n=i.index(".dataset.paired"),s=this.paired[n],a=prompt("Enter a new name for the pair:",s.name);a&&(s.name=a,s.customizedName=!0,t.text(s.name))},_clickUnpair:function(e){var t=Math.floor(l(e.currentTarget).index(".unpair-btn"));this._unpair(this.paired[t])},_dragoverPairedColumns:function(e){e.preventDefault();var t=this.$(".paired-columns .column-datasets");this._checkForAutoscroll(t,e.originalEvent.clientY);var i=this._getNearestPairedDatasetLi(e.originalEvent.clientY);l(".element-drop-placeholder").remove();var n=l('
');i.length?i.before(n):t.append(n)},_checkForAutoscroll:function(e,t){var i=2,n=e.offset(),s=e.scrollTop(),a=t-n.top,o=n.top+e.outerHeight()-t;a>=0&&a=0&&oe&&a-o",e.name)},toString:function(){return"PairedCollectionCreator"},templates:o.extend({},i.CollectionCreatorMixin._creatorTemplates,{header:o.template(['",'','× ',' ',"
",'','
','
','
','',s("Unpaired forward")," ",' ',"
",'
',' ',"
","
","
",'
','
','
',s("Choose filters")," ",'
',s("Clear filters")," ",'
',s("Auto-pair")," ","
","
",'
','
','
','',s("Unpaired reverse")," ",' ',"
",'
',' ',"
","
","
","
"].join("")),middle:o.template(['",'",'"].join("")),footer:o.template(['','
','',s("Hide original elements"),"?",' '," ",'',s("Remove file extensions from pair names"),"?",' '," ","
",'
","
",'','
','
',s("Cancel")," ",'
','',s("Create a different kind of collection"),' '," ",'","
","
",'
','',s("Create list")," ","
","
"].join("")),helpContent:o.template(["",s(["Collections of paired datasets are ordered lists of dataset pairs (often forward and reverse reads). ","These collections can be passed to tools and workflows in order to have analyses done on each member of ","the entire group. This interface allows you to create a collection, choose which datasets are paired, ","and re-order the final collection."].join("")),"
","",s(['Unpaired datasets are shown in the unpaired section ',"(hover over the underlined words to highlight below). ",'Paired datasets are shown in the paired section .',"
To pair datasets, you can:","Click a dataset in the ",'forward column ',"to select it then click a dataset in the ",'reverse column .'," ",'Click one of the "Pair these datasets" buttons in the ','middle column ',"to pair the datasets in a particular row."," ",'Click "Auto-pair" ',"to have your datasets automatically paired based on name."," "," "].join("")),"","",s(["
You can filter what is shown in the unpaired sections by:","Entering partial dataset names in either the ",'forward filter or ','reverse filter .'," ","Choosing from a list of preset filters by clicking the ",'"Choose filters" link .'," ","Entering regular expressions to match dataset names. See: ",'MDN\'s JavaScript Regular Expression Tutorial . ',"Note: forward slashes (\\) are not needed."," ","Clearing the filters by clicking the ",'"Clear filters" link .'," "," "].join("")),"","",s(["To unpair individual dataset pairs, click the ",'unpair buttons ( ) . ','Click the "Unpair all" link to unpair all pairs.'].join("")),"
","",s(['You can include or remove the file extensions (e.g. ".fastq") from your pair names by toggling the ','"Remove file extensions from pair names?" control.'].join("")),"
","",s(['Once your collection is complete, enter a name and ','click "Create list" . ',"(Note: you do not have to pair all unpaired datasets to finish.)"].join("")),"
"].join(""))})}),f=function(e,t){var i,n=r.Deferred();if(t=o.defaults(t||{},{datasets:e,oncancel:function(){Galaxy.modal.hide(),n.reject("cancelled")},oncreate:function(e,t){Galaxy.modal.hide(),n.resolve(t)}}),!window.Galaxy||!Galaxy.modal)throw new Error("Galaxy or Galaxy.modal not found");return i=new p(t),Galaxy.modal.show({title:"Create a collection of paired datasets",body:i.$el,width:"80%",height:"800px",closing_events:!0}),i.render(),window.creator=i,n};return{PairedCollectionCreator:p,pairedCollectionCreatorModal:f,createListOfPairsCollection:d}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(2),i(1),i(1))},function(e,t,i){var n,s;(function(a,o,r){n=[i(42),i(50),i(6),i(5)],s=function(e,t,i,n){"use strict";function s(e,t){var i=e.toJSON(),n=u(i,{defaultHideSourceItems:t,creationFn:function(t,i,n){return t=[{name:"forward",src:"hda",id:t[0].id},{name:"reverse",src:"hda",id:t[1].id}],e.createHDCA(t,"paired",i,n)}});return n}var l="collections",c=a.View.extend(i.LoggableMixin).extend({_logNamespace:l,tagName:"li",className:"collection-element",initialize:function(e){this.element=e.element||{},this.identifier=e.identifier},render:function(){return this.$el.attr("data-element-id",this.element.id).html(this.template({identifier:this.identifier,element:this.element})),this},template:o.template(['<%- identifier %> ','<%- element.name %> '].join("")),destroy:function(){this.off(),this.$el.remove()},toString:function(){return"DatasetCollectionElementView()"}}),d=e.ListCollectionCreator,h=d.extend({elementViewClass:c,collectionClass:t.HistoryPairDatasetCollection,className:"pair-collection-creator collection-creator flex-row-container",_mangleDuplicateNames:function(){},render:function(e,t){return 2===this.workingElements.length?d.prototype.render.call(this,e,t):this._renderInvalid(e,t)},_renderList:function(e,t){var i=this,n=r("
"),s=i.$list();o.each(this.elementViews,function(e){e.destroy(),i.removeElementView(e)}),n.append(i._createForwardElementView().$el),n.append(i._createReverseElementView().$el),s.empty().append(n.children()),o.invoke(i.elementViews,"render")},_createForwardElementView:function(){return this._createElementView(this.workingElements[0],{identifier:"forward"})},_createReverseElementView:function(){return this._createElementView(this.workingElements[1],{identifier:"reverse"})},_createElementView:function(e,t){var i=new this.elementViewClass(o.extend(t,{element:e}));return this.elementViews.push(i),i},swap:function(){this.workingElements=[this.workingElements[1],this.workingElements[0]],this._renderList()},events:o.extend(o.clone(d.prototype.events),{"click .swap":"swap"}),templates:o.extend(o.clone(d.prototype.templates),{middle:o.template(['",'',"
"].join("")),helpContent:o.template(["",n(["Pair collections are permanent collections containing two datasets: one forward and one reverse. ","Often these are forward and reverse reads. The pair collections can be passed to tools and ","workflows in order to have analyses done on both datasets. This interface allows ","you to create a pair, name it, and swap which is forward and which reverse."].join("")),"
","","",n(['Click the "Swap" link to make your forward dataset the reverse ',"and the reverse dataset forward."].join(""))," ","",n(['Click the "Cancel" button to exit the interface.'].join(""))," "," ","",n(['Once your collection is complete, enter a name and ','click "Create list" .'].join("")),"
"].join("")),invalidInitial:o.template(['",'"].join(""))}),toString:function(){return"PairCollectionCreator"}}),u=function(t,i){return i=i||{},i.title=n("Create a collection from a pair of datasets"),e.collectionCreatorModal(t,i,h)};return{PairCollectionCreator:h,pairCollectionCreatorModal:u,createPairCollection:s}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(2),i(1))},function(e,t,i){var n,s;(function(a,o){n=[i(80),i(83),i(6),i(5)],s=function(e,t,i,n){"use strict";var s=e.DatasetListItemEdit,r=s.extend({className:s.prototype.className+" history-content",_fetchModelDetails:function(){var e=this;return e.model.inReadyState()&&!e.model.hasDetails()?e.model.fetch({silent:!0}):e.model.has("rerunnable")?a.when():e.model.fetch({silent:!0,data:{keys:["rerunnable","creating_job"].join(",")}})},events:o.extend(o.clone(s.prototype.events),{"click .unhide-link":function(e){return this.model.unhide(),!1}}),toString:function(){var e=this.model?this.model+"":"(no model)";return"HDAListItemEdit("+e+")"}});return r.prototype.templates=function(){var e=o.extend({},s.prototype.templates.warnings,{hidden:i.wrapTemplate(["<% if( !dataset.visible ){ %>",'","<% } %>"],"dataset")});return o.extend({},s.prototype.templates,{titleBar:t.HDAListItemView.prototype.templates.titleBar,warnings:e})}(),{HDAListItemEdit:r}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(1),i(2))},function(e,t,i){var n,s;n=[i(85),i(118),i(18),i(5)],s=function(e,t,i,n){"use strict";var s=e.HDCAListItemView,a=s.extend({_getFoldoutPanelClass:function(){switch(this.model.get("collection_type")){case"list":return t.ListCollectionViewEdit;case"paired":return t.PairCollectionViewEdit;case"list:paired":return t.ListOfPairsCollectionViewEdit;case"list:list":return t.ListOfListsCollectionViewEdit}throw new TypeError("Uknown collection_type: "+this.model.get("collection_type"))},_renderPrimaryActions:function(){return this.log(this+"._renderPrimaryActions"),s.prototype._renderPrimaryActions.call(this).concat([this._renderDeleteButton()])},_renderDeleteButton:function(){var e=this,t=this.model.get("deleted");return i({title:n(t?"Dataset collection is already deleted":"Delete"),classes:"delete-btn",faIcon:"fa-times",disabled:t,onclick:function(){e.$el.find(".icon-btn.delete-btn").trigger("mouseout"),e.model.delete()}})},toString:function(){var e=this.model?this.model+"":"(no model)";return"HDCAListItemEdit("+e+")"}});return{HDCAListItemEdit:a}}.apply(t,n),!(void 0!==s&&(e.exports=s))},function(e,t,i){var n,s;(function(a,o,r){n=[i(4),i(21),i(52),i(82)],s=function(e,t,i,n){var s=a.View.extend({initialize:function(t){var i=this;this.setElement(o("
")),this.model=new a.Model,e.get({url:Galaxy.root+"history/"+t.action_id,success:function(e){e.dict_format=!0,r.each(e.operations,function(e){"Copy"==e.label&&(e.onclick=function(e){i._showCopyDialog(e)})}),i.model.set(e),i.render()}})},render:function(){var e=new t(this.model.attributes);this.$el.empty().append(e.$el)},_showCopyDialog:function(e){var t=new i.History({id:e});t.fetch().fail(function(){alert("History could not be fetched. Please contact an administrator")}).done(function(){n(t,{}).done(function(){window.parent&&window.parent.Galaxy&&window.parent.Galaxy.currHistoryPanel&&window.parent.Galaxy.currHistoryPanel.loadCurrentHistory(),window.location.reload(!0)})})}});return{View:s}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1),i(2))},function(e,t,i){var n,s;(function(a,o,r){n=[i(52),i(125),i(6),i(5)],s=function(e,t,i,n){"use strict";var s=i.SessionStorageModel.extend({defaults:{tagsEditorShown:!1,annotationEditorShown:!1,scrollPosition:0},toString:function(){return"HistoryViewPrefs("+JSON.stringify(this.toJSON())+")"}});s.storageKey=function(){return"history-panel"};var l=t.HistoryViewEdit,c=l.extend({className:l.prototype.className+" current-history-panel",HDCAViewClass:l.prototype.HDCAViewClass.extend({foldoutStyle:"drilldown"}),emptyMsg:[n("This history is empty"),". ",n("You can "),'',n("load your own data")," ",n(" or "),'',n("get data from an external source")," "].join(""),initialize:function(e){e=e||{},this.preferences=new s(a.extend({id:s.storageKey()},a.pick(e,a.keys(s.prototype.defaults)))),l.prototype.initialize.call(this,e),this.panelStack=[],this.currentContentId=e.currentContentId||null},_setUpListeners:function(){l.prototype._setUpListeners.call(this);var e=this;this.on("new-model",function(){e.preferences.set("scrollPosition",0)})},loadCurrentHistory:function(){return this.loadHistory(null,{url:Galaxy.root+"history/current_history_json"})},switchToHistory:function(e,t){return Galaxy.user.isAnonymous()?(this.trigger("error",n("You must be logged in to switch histories"),n("Anonymous user")),o.when()):this.loadHistory(e,{url:Galaxy.root+"history/set_as_current?id="+e})},createNewHistory:function(e){return Galaxy.user.isAnonymous()?(this.trigger("error",n("You must be logged in to create histories"),n("Anonymous user")),o.when()):this.loadHistory(null,{url:Galaxy.root+"history/create_new_current"})},setModel:function(e,t,i){return l.prototype.setModel.call(this,e,t,i),this.model&&this.model.id&&(this.log("checking for updates"),this.model.checkForUpdates()),this},_setUpModelListeners:function(){return l.prototype._setUpModelListeners.call(this),this.listenTo(this.model,{"change:nice_size change:size":function(){this.trigger("history-size-change",this,this.model,arguments)},"change:id":function(){this.once("loading-done",function(){this.model.checkForUpdates()})}})},_setUpCollectionListeners:function(){l.prototype._setUpCollectionListeners.call(this),this.listenTo(this.collection,"state:ready",function(e,t,i){e.get("visible")||this.collection.storage.includeHidden()||this.removeItemView(e)})},_setUpBehaviors:function(e){e=e||this.$el;var t=this;return l.prototype._setUpBehaviors.call(t,e),this._debouncedScrollCaptureHandler||(this._debouncedScrollCaptureHandler=a.debounce(function(){t.$el.is(":visible")&&t.preferences.set("scrollPosition",o(this).scrollTop())},40)),t.$scrollContainer(e).off("scroll",this._debouncedScrollCaptureHandler).on("scroll",this._debouncedScrollCaptureHandler),t},_buildNewRender:function(){if(!this.model)return o();var e=l.prototype._buildNewRender.call(this);return e.find(".search").prependTo(e.find("> .controls")),this._renderQuotaMessage(e),e},_renderQuotaMessage:function(e){return e=e||this.$el,o(this.templates.quotaMsg({},this)).prependTo(e.find(".messages"))},_renderTags:function(e){var t=this;l.prototype._renderTags.call(t,e),t.preferences.get("tagsEditorShown")&&t.tagsEditor.toggle(!0),t.listenTo(t.tagsEditor,"hiddenUntilActivated:shown hiddenUntilActivated:hidden",function(e){t.preferences.set("tagsEditorShown",e.hidden)})},_renderAnnotation:function(e){var t=this;l.prototype._renderAnnotation.call(t,e),t.preferences.get("annotationEditorShown")&&t.annotationEditor.toggle(!0),t.listenTo(t.annotationEditor,"hiddenUntilActivated:shown hiddenUntilActivated:hidden",function(e){t.preferences.set("annotationEditorShown",e.hidden)})},_swapNewRender:function(e){l.prototype._swapNewRender.call(this,e);var t=this;return a.delay(function(){var e=t.preferences.get("scrollPosition");e&&t.scrollTo(e,0)},10),this},_attachItems:function(e){l.prototype._attachItems.call(this,e);var t=this;return t.currentContentId&&t._setCurrentContentById(t.currentContentId),this},addItemView:function(e,t,i){var n=l.prototype.addItemView.call(this,e,t,i);return n&&this.panelStack.length?this._collapseDrilldownPanel():n},_setUpItemViewListeners:function(e){var t=this;return l.prototype._setUpItemViewListeners.call(t,e),t.listenTo(e,{"expanded:drilldown":function(e,t){this._expandDrilldownPanel(t)},"collapsed:drilldown":function(e,t){this._collapseDrilldownPanel(t)}})},setCurrentContent:function(e){this.$(".history-content.current-content").removeClass("current-content"),e?(e.$el.addClass("current-content"),this.currentContentId=e.model.id):this.currentContentId=null},_setCurrentContentById:function(e){var t=this.viewFromModelId(e)||null;this.setCurrentContent(t)},_expandDrilldownPanel:function(e){this.panelStack.push(e),this.$controls().add(this.$list()).hide(),e.parentName=this.model.get("name"),e.delegateEvents().render().$el.appendTo(this.$el)},_collapseDrilldownPanel:function(e){this.panelStack.pop(),this.$controls().add(this.$list()).show()},events:a.extend(a.clone(l.prototype.events),{"click .uploader-link":function(e){Galaxy.upload.show(e)},"click .get-data-link":function(e){var t=o(".toolMenuContainer");t.parent().scrollTop(0),t.find('span:contains("Get Data")').click()}}),listenToGalaxy:function(e){this.listenTo(e,{"center-frame:load":function(e){var t=e.fullpath,i=null,n={display:/datasets\/([a-f0-9]+)\/display/,edit:/datasets\/([a-f0-9]+)\/edit/,report_error:/dataset\/errors\?id=([a-f0-9]+)/,rerun:/tool_runner\/rerun\?id=([a-f0-9]+)/,show_params:/datasets\/([a-f0-9]+)\/show_params/};a.find(n,function(e,n){return i=a.result(t.match(e),1)}),this._setCurrentContentById(i?"dataset-"+i:null)},"center-panel:load":function(e){this._setCurrentContentById()}})},connectToQuotaMeter:function(e){return e?(this.listenTo(e,"quota:over",this.showQuotaMessage),this.listenTo(e,"quota:under",this.hideQuotaMessage),this.on("rendered rendered:initial",function(){e&&e.isOverQuota()&&this.showQuotaMessage()}),this):this},clearMessages:function(e){var t=a.isUndefined(e)?this.$messages().children('[class$="message"]'):o(e.currentTarget);return t=t.not(".quota-message"),t.fadeOut(this.fxSpeed,function(){o(this).remove()}),this},showQuotaMessage:function(){var e=this.$(".quota-message");e.is(":hidden")&&e.slideDown(this.fxSpeed)},hideQuotaMessage:function(){var e=this.$(".quota-message");e.is(":hidden")||e.slideUp(this.fxSpeed)},unhideHidden:function(){var e=this;return confirm(n("Really unhide all hidden datasets?"))?e.model.contents._filterAndUpdate({visible:!1,deleted:"",purged:""},{visible:!0}).done(function(){e.model.contents.includeHidden||e.renderItems()}):r.when()},deleteHidden:function(){var e=this;return confirm(n("Really delete all hidden datasets?"))?e.model.contents._filterAndUpdate({visible:!1,deleted:"",purged:""},{deleted:!0,visible:!0}):r.when()},toString:function(){return"CurrentHistoryView("+(this.model?this.model.get("name"):"")+")"}});return c.prototype.templates=function(){var e=i.wrapTemplate(['',n("You are over your disk quota"),". ",n("Tool execution is on hold until your disk usage drops below your allocated quota"),".","
"],"history");return a.extend(a.clone(l.prototype.templates),{quotaMsg:e})}(),{CurrentHistoryView:c}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(2),i(1),i(1))},function(e,t,i){var n,s;(function(a,o,r){n=[i(126),i(51),i(11),i(84),i(121),i(122),i(55),i(76),i(42),i(120),i(119),i(18),i(22),i(6),i(5),i(17)],
-s=function(e,t,i,n,s,l,c,d,h,u,p,f,g,m,v){"use strict";var _=e.HistoryView,y=_.extend({HDAViewClass:s.HDAListItemEdit,HDCAViewClass:l.HDCAListItemEdit,initialize:function(e){e=e||{},_.prototype.initialize.call(this,e),this.tagsEditor=null,this.dragItems=!0,this.annotationEditor=null,this.purgeAllowed=e.purgeAllowed||!1,this.annotationEditorShown=e.annotationEditorShown||!1,this.tagsEditorShown=e.tagsEditorShown||!1},_setUpListeners:function(){return _.prototype._setUpListeners.call(this),this.on({"droptarget:drop":function(e,t){this.dataDropped(t),this.dropTargetOff()},"view:attached view:removed":function(){this._renderCounts()},"search:loading-progress":this._renderSearchProgress,"search:searching":this._renderSearchFindings})},_setUpModelListeners:function(){return _.prototype._setUpModelListeners.call(this),this.listenTo(this.model,"change:size",this.updateHistoryDiskSize),this},_setUpCollectionListeners:function(){return _.prototype._setUpCollectionListeners.call(this),this.listenTo(this.collection,{"change:deleted":this._handleItemDeletedChange,"change:visible":this._handleItemVisibleChange,"change:purged":function(e){this.model.fetch()},"fetching-deleted":function(e){this.$("> .controls .deleted-count").html(""+v("loading...")+" ")},"fetching-hidden":function(e){this.$("> .controls .hidden-count").html(""+v("loading...")+" ")},"fetching-deleted-done fetching-hidden-done":this._renderCounts}),this},_buildNewRender:function(){var e=_.prototype._buildNewRender.call(this);return this.model?(Galaxy&&Galaxy.user&&Galaxy.user.id&&Galaxy.user.id===this.model.get("user_id")&&(this._renderTags(e),this._renderAnnotation(e)),e):e},updateHistoryDiskSize:function(){this.$(".history-size").text(this.model.get("nice_size"))},renderItems:function(e){var t=_.prototype.renderItems.call(this,e);return this.searchFor||this._renderCounts(e),t},_renderCounts:function(e){e=e instanceof a?e:this.$el;var t=this.templates.counts(this.model.toJSON(),this);return e.find("> .controls .subtitle").html(t)},_renderTags:function(e){var t=this;this.tagsEditor=new c.TagsEditor({model:this.model,el:e.find(".controls .tags-display"),onshowFirstTime:function(){this.render()},onshow:function(){t.toggleHDATagEditors(!0,t.fxSpeed)},onhide:function(){t.toggleHDATagEditors(!1,t.fxSpeed)},$activator:f({title:v("Edit history tags"),classes:"history-tag-btn",faIcon:"fa-tags"}).appendTo(e.find(".controls .actions"))})},_renderAnnotation:function(e){var t=this;this.annotationEditor=new d.AnnotationEditor({model:this.model,el:e.find(".controls .annotation-display"),onshowFirstTime:function(){this.render()},onshow:function(){t.toggleHDAAnnotationEditors(!0,t.fxSpeed)},onhide:function(){t.toggleHDAAnnotationEditors(!1,t.fxSpeed)},$activator:f({title:v("Edit history annotation"),classes:"history-annotate-btn",faIcon:"fa-comment"}).appendTo(e.find(".controls .actions"))})},_setUpBehaviors:function(e){if(e=e||this.$el,_.prototype._setUpBehaviors.call(this,e),this.model&&Galaxy.user&&!Galaxy.user.isAnonymous()&&Galaxy.user.id===this.model.get("user_id")){var t=this,i="> .controls .name";e.find(i).attr("title",v("Click to rename history")).tooltip({placement:"bottom"}).make_text_editable({on_finish:function(e){var n=t.model.get("name");e&&e!==n?(t.$el.find(i).text(e),t.model.save({name:e}).fail(function(){t.$el.find(i).text(t.model.previous("name"))})):t.$el.find(i).text(n)}})}},multiselectActions:function(){var e=this,t=[{html:v("Hide datasets"),func:function(){var t=n.HistoryDatasetAssociation.prototype.hide;e.getSelectedModels().ajaxQueue(t)}},{html:v("Unhide datasets"),func:function(){var t=n.HistoryDatasetAssociation.prototype.unhide;e.getSelectedModels().ajaxQueue(t)}},{html:v("Delete datasets"),func:function(){var t=n.HistoryDatasetAssociation.prototype.delete;e.getSelectedModels().ajaxQueue(t)}},{html:v("Undelete datasets"),func:function(){var t=n.HistoryDatasetAssociation.prototype.undelete;e.getSelectedModels().ajaxQueue(t)}}];return e.purgeAllowed&&t.push({html:v("Permanently delete datasets"),func:function(){if(confirm(v("This will permanently remove the data in your datasets. Are you sure?"))){var t=n.HistoryDatasetAssociation.prototype.purge;e.getSelectedModels().ajaxQueue(t)}}}),t=t.concat(e._collectionActions())},_collectionActions:function(){var e=this;return[{html:v("Build Dataset List"),func:function(){e.buildCollection("list")}},{html:v("Build Dataset Pair"),func:function(){e.buildCollection("paired")}},{html:v("Build List of Dataset Pairs"),func:function(){e.buildCollection("list:paired")}}]},buildCollection:function(e,t,i){var n,s=this,t=t||s.getSelectedModels(),i=i||!1;"list"==e?n=h.createListCollection:"paired"==e?n=u.createPairCollection:"list:paired"==e?n=p.createListOfPairsCollection:console.warn("Unknown collectionType encountered "+e),n(t,i).done(function(){s.model.refresh()})},_getItemViewOptions:function(e){var t=_.prototype._getItemViewOptions.call(this,e);return o.extend(t,{purgeAllowed:this.purgeAllowed,tagsEditorShown:this.tagsEditor&&!this.tagsEditor.hidden,annotationEditorShown:this.annotationEditor&&!this.annotationEditor.hidden}),t},_handleItemDeletedChange:function(e){e.get("deleted")?this._handleItemDeletion(e):this._handleItemUndeletion(e),this._renderCounts()},_handleItemDeletion:function(e){var t=this.model.get("contents_active");t.deleted+=1,t.active-=1,this.model.contents.includeDeleted||this.removeItemView(e),this.model.set("contents_active",t)},_handleItemUndeletion:function(e){var t=this.model.get("contents_active");t.deleted-=1,this.model.contents.includeDeleted||(t.active-=1),this.model.set("contents_active",t)},_handleItemVisibleChange:function(e){e.hidden()?this._handleItemHidden(e):this._handleItemUnhidden(e),this._renderCounts()},_handleItemHidden:function(e){var t=this.model.get("contents_active");t.hidden+=1,t.active-=1,this.model.contents.includeHidden||this.removeItemView(e),this.model.set("contents_active",t)},_handleItemUnhidden:function(e){var t=this.model.get("contents_active");t.hidden-=1,this.model.contents.includeHidden||(t.active-=1),this.model.set("contents_active",t)},toggleHDATagEditors:function(e,t){o.each(this.views,function(i){i.tagsEditor&&i.tagsEditor.toggle(e,t)})},toggleHDAAnnotationEditors:function(e,t){o.each(this.views,function(i){i.annotationEditor&&i.annotationEditor.toggle(e,t)})},events:o.extend(o.clone(_.prototype.events),{"click .show-selectors-btn":"toggleSelectors","click .toggle-deleted-link":function(e){this.toggleShowDeleted()},"click .toggle-hidden-link":function(e){this.toggleShowHidden()}}),_renderSearchProgress:function(e,t){var i=e+t;return this.$("> .controls .subtitle").html(["",v("Searching "),i,"/",this.model.contentsShown()," "].join(""))},_renderSearchFindings:function(){return this.$("> .controls .subtitle").html([v("Found"),this.views.length].join(" ")),this},dropTargetOn:function(){if(this.dropTarget)return this;this.dropTarget=!0;var e={dragenter:o.bind(this.dragenter,this),dragover:o.bind(this.dragover,this),dragleave:o.bind(this.dragleave,this),drop:o.bind(this.drop,this)},t=this._renderDropTarget();this.$list().before([this._renderDropTargetHelp(),t]);for(var i in e)e.hasOwnProperty(i)&&t.on(i,e[i]);return this},_renderDropTarget:function(){return this.$(".history-drop-target").remove(),r("
").addClass("history-drop-target")},_renderDropTargetHelp:function(){return this.$(".history-drop-target-help").remove(),r("
").addClass("history-drop-target-help").text(v("Drag datasets here to copy them to the current history"))},dropTargetOff:function(){if(!this.dropTarget)return this;this.dropTarget=!1;var e=this.$(".history-drop-target").get(0);for(var t in this._dropHandlers)this._dropHandlers.hasOwnProperty(t)&&e.off(t,this._dropHandlers[t]);return this.$(".history-drop-target").remove(),this.$(".history-drop-target-help").remove(),this},dropTargetToggle:function(){return this.dropTarget?this.dropTargetOff():this.dropTargetOn(),this},dragenter:function(e){e.preventDefault(),e.stopPropagation(),this.$(".history-drop-target").css("border","2px solid black")},dragover:function(e){e.preventDefault(),e.stopPropagation()},dragleave:function(e){e.preventDefault(),e.stopPropagation(),this.$(".history-drop-target").css("border","1px dashed black")},drop:function(e){e.preventDefault();var t=this,i=e.originalEvent.dataTransfer,n=i.getData("text");i.dropEffect="move";try{n=JSON.parse(n)}catch(e){t.warn("error parsing JSON from drop:",n)}return t.trigger("droptarget:drop",e,n,t),!1},dataDropped:function(e){var t=this;return o.isObject(e)&&"HistoryDatasetAssociation"===e.model_class&&e.id?0!==t.contents.currentPage?t.contents.fetchPage(0).then(function(){return t.model.contents.copy(e.id)}):t.model.contents.copy(e.id):a.when()},toString:function(){return"HistoryViewEdit("+(this.model?this.model.get("name"):"")+")"}});return y.prototype.templates=function(){var e=m.wrapTemplate(["<% var shown = Math.max( view.views.length, history.contents_active.active ) %>","<% if( shown ){ %>",'',"<%- shown %> ",v("shown")," ","<% } %>","<% if( history.contents_active.deleted ){ %>",'',"<% if( view.model.contents.includeDeleted ){ %>",'',v("hide deleted")," ","<% } else { %>","<%- history.contents_active.deleted %> ",'',v("deleted")," ","<% } %>"," ","<% } %>","<% if( history.contents_active.hidden ){ %>",'',"<% if( view.model.contents.includeHidden ){ %>",'',v("hide hidden")," ","<% } else { %>","<%- history.contents_active.hidden %> ",'',v("hidden")," ","<% } %>"," ","<% } %>"],"history");return o.extend(o.clone(_.prototype.templates),{counts:e})}(),{HistoryViewEdit:y}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(1),i(2),i(1))},function(e,t,i){var n,s;(function(a,o){n=[i(87),i(52),i(51),i(53),i(83),i(85),i(91),i(90),i(18),i(6),i(5),i(94)],s=function(e,t,i,n,s,r,l,c,d,h,u){"use strict";var p=e.ModelListPanel,f=p.extend({_logNamespace:"history",HDAViewClass:s.HDAListItemView,HDCAViewClass:r.HDCAListItemView,collectionClass:i.HistoryContents,modelCollectionKey:"contents",tagName:"div",className:p.prototype.className+" history-panel",emptyMsg:u("This history is empty"),noneFoundMsg:u("No matching datasets found"),searchPlaceholder:u("search datasets"),FETCH_COLLECTION_COUNTS_DELAY:2e3,initialize:function(e){p.prototype.initialize.call(this,e),this.linkTarget=e.linkTarget||"_blank"},_createDefaultCollection:function(){return new this.collectionClass([],{history:this.model})},freeModel:function(){return p.prototype.freeModel.call(this),this.model&&this.model.clearUpdateTimeout(),this},_setUpListeners:function(){p.prototype._setUpListeners.call(this),this.on({error:function(e,t,i,n,s){this.errorHandler(e,t,i,n,s)},"loading-done":function(){var e=this;a.delay(function(){e.model.contents.fetchCollectionCounts()},e.FETCH_COLLECTION_COUNTS_DELAY)},"views:ready view:attached view:removed":function(e){this._renderSelectButton()},"view:attached":function(e){this.scrollTo(0)}})},loadHistory:function(e,i,n){n=a.extend(n||{silent:!0}),this.info("loadHistory:",e,i,n);var s=this;return s.setModel(new t.History({id:e})),n.silent=!0,s.trigger("loading"),s.model.fetchWithContents(i,n).always(function(){s.render(),s.trigger("loading-done")})},refreshContents:function(e){return this.model?this.model.refresh(e):o.when()},_setUpCollectionListeners:function(){return p.prototype._setUpCollectionListeners.call(this),this.listenTo(this.collection,{"fetching-more":function(){this._toggleContentsLoadingIndicator(!0),this.$emptyMessage().hide()},"fetching-more-done":function(){this._toggleContentsLoadingIndicator(!1)}})},_showLoadingIndicator:function(e,t,i){var n=o('
');this.$el.html(n.text(e).slideDown(a.isUndefined(t)?this.fxSpeed:t))},_hideLoadingIndicator:function(e){this.$(".loading-indicator").slideUp(a.isUndefined(e)?this.fxSpeed+200:e,function(){o(this).remove()})},_buildNewRender:function(){var e=p.prototype._buildNewRender.call(this);return this._renderSelectButton(e),e},_renderSelectButton:function(e){if(e=e||this.$el,!this.multiselectActions().length)return null;if(!this.views.length)return this.hideSelectors(),e.find(".controls .actions .show-selectors-btn").remove(),null;var t=e.find(".controls .actions .show-selectors-btn");return t.length?t:d({title:u("Operations on multiple datasets"),classes:"show-selectors-btn",faIcon:"fa-check-square-o"}).prependTo(e.find(".controls .actions"))},_renderEmptyMessage:function(e){var t=this,i=t.$emptyMessage(e),n=t.model.get("contents_active").active<=0;return n?i.empty().append(t.emptyMsg).show():t.searchFor&&t.model.contents.haveSearchDetails()&&!t.views.length?i.empty().append(t.noneFoundMsg).show():(i.hide(),o())},$scrollContainer:function(e){return this.$list(e)},_toggleContentsLoadingIndicator:function(e){e?this.$list().html('
'):this.$list().find(".contents-loading-indicator").remove()},renderItems:function(e){e=e||this.$el;var t=this,i=t.$list(e);o(".tooltip").remove(),i.empty(),t.views=[];var n=t._filterCollection();return n.length?(t._renderPagination(e),t.views=t._renderSomeItems(n,i)):e.find("> .controls .list-pagination").empty(),t._renderEmptyMessage(e).toggle(!n.length),t.trigger("views:ready",t.views),t.views},_renderPagination:function(e){var t=e.find("> .controls .list-pagination");return this.searchFor||!this.model.contents.shouldPaginate()?t.empty():(t.html(this.templates.pagination({current:this.model.contents.currentPage+1,last:this.model.contents.getLastPage()+1},this)),t.find("select.pages").tooltip(),t)},_renderSomeItems:function(e,t){var i=this,n=[];return t.append(e.map(function(e){var t=i._createItemView(e);return n.push(t),i._renderItemView$el(t)})),n},_filterItem:function(e){var t=this,i=t.model.contents;return(i.includeHidden||!e.hidden())&&(i.includeDeleted||!e.isDeletedOrPurged())&&p.prototype._filterItem.call(t,e)},_getItemViewClass:function(e){var t=e.get("history_content_type");switch(t){case"dataset":return this.HDAViewClass;case"dataset_collection":return this.HDCAViewClass}throw new TypeError("Unknown history_content_type: "+t)},_getItemViewOptions:function(e){var t=p.prototype._getItemViewOptions.call(this,e);return a.extend(t,{linkTarget:this.linkTarget,expanded:this.model.contents.storage.isExpanded(e.id),hasUser:this.model.ownedByCurrUser()})},_setUpItemViewListeners:function(e){var t=this;return p.prototype._setUpItemViewListeners.call(t,e),t.listenTo(e,{expanded:function(e){t.model.contents.storage.addExpanded(e.model)},collapsed:function(e){t.model.contents.storage.removeExpanded(e.model)}})},collapseAll:function(){this.model.contents.storage.clearExpanded(),p.prototype.collapseAll.call(this)},getSelectedModels:function(){var e=p.prototype.getSelectedModels.call(this);return e.historyId=this.collection.historyId,e},events:a.extend(a.clone(p.prototype.events),{"click .show-selectors-btn":"toggleSelectors","click > .controls .prev":"_clickPrevPage","click > .controls .next":"_clickNextPage","change > .controls .pages":"_changePageSelect","click .messages [class$=message]":"clearMessages"}),_clickPrevPage:function(e){this.model.clearUpdateTimeout(),this.model.contents.fetchPrevPage()},_clickNextPage:function(e){this.model.clearUpdateTimeout(),this.model.contents.fetchNextPage()},_changePageSelect:function(e){this.model.clearUpdateTimeout();var t=o(e.currentTarget).val();this.model.contents.fetchPage(t)},toggleShowDeleted:function(e,t){e=void 0!==e?e:!this.model.contents.includeDeleted;var i=this,n=i.model.contents;return n.setIncludeDeleted(e,t),i.trigger("show-deleted",e),n.fetchCurrentPage({renderAll:!0}),e},toggleShowHidden:function(e,t,i){e=void 0!==e?e:!this.model.contents.includeHidden;var n=this,s=n.model.contents;return s.setIncludeHidden(e,i),n.trigger("show-hidden",e),s.fetchCurrentPage({renderAll:!0}),e},_firstSearch:function(e){var t=this,i="> .controls .search-input";if(this.log("onFirstSearch",e),t.model.contents.haveSearchDetails())return void t.searchItems(e);t.$(i).searchInput("toggle-loading"),t.searchFor=e;t.model.contents.progressivelyFetchDetails({silent:!0}).progress(function(e,i,n){t.renderItems(),t.trigger("search:loading-progress",i,n)}).always(function(){t.$el.find(i).searchInput("toggle-loading")}).done(function(){t.searchItems(e,"force")})},clearSearch:function(e){var t=this;return t.searchFor?(t.searchFor="",t.trigger("search:clear",t),t.$("> .controls .search-query").val(""),t.model.contents.fetchCurrentPage({silent:!0}).done(function(){t.renderItems()}),t):t},errorHandler:function(e,t,i){if(!t||0!==t.status||0!==t.readyState){if(this.error(e,t,i),a.isString(e)&&a.isString(t)){var n=e,s=t;return c.errorModal(n,s,i)}return t&&502===t.status?c.badGatewayErrorModal():c.ajaxErrorModal(e,t,i)}},clearMessages:function(e){var t=a.isUndefined(e)?this.$messages().children('[class$="message"]'):o(e.currentTarget);return t.fadeOut(this.fxSpeed,function(){o(this).remove()}),this},scrollToHid:function(e){return this.scrollToItem(a.first(this.viewsWhereModel({hid:e})))},ordinalIndicator:function(e){var t=e+"";switch(t.charAt(t.length-1)){case"1":return t+"st";case"2":return t+"nd";case"3":return t+"rd";default:return t+"th"}},toString:function(){return"HistoryView("+(this.model?this.model.get("name"):"")+")"}});return f.prototype.templates=function(){var e=h.wrapTemplate([""]),t=h.wrapTemplate(['','
','
<%- history.name %>
',"
",'
','
<%- history.nice_size %>
','
','
',"<% if( history.deleted && history.purged ){ %>",'
',u("This history has been purged and deleted"),"
","<% } else if( history.deleted ){ %>",'
',u("This history has been deleted"),"
","<% } else if( history.purged ){ %>",'
',u("This history has been purged"),"
","<% } %>","<% if( history.message ){ %>",'
messagesmall">',"<%= history.message.text %>","
","<% } %>","
",'
','
','
",'
','
','',u("All")," ",'',u("None")," ","
",'","
",'',"
"],"history"),i=h.wrapTemplate(['>previous ','',"<% _.range( 1, pages.last + 1 ).forEach( function( i ){ %>",'>',"<%- view.ordinalIndicator( i ) %> of <%- pages.last %> pages"," ","<% }); %>"," ",'>next '],"pages");return a.extend(a.clone(p.prototype.templates),{el:e,controls:t,pagination:i})}(),{HistoryView:f}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(2),i(1))},function(e,t,i){var n,s;(function(a,o){n=[i(22),i(82),i(6),i(5),i(27)],s=function(e,t,i,n,s){"use strict";function r(e,t,i){return o.clone(l).filter(function(n){return!(e&&!n.anon)&&(!(!t&&n.purge)&&(n.href&&(n.href=i+n.href,n.target=n.target||"galaxy_main"),n.confirm&&(n.func=function(){confirm(n.confirm)&&(galaxy_main.location=n.href)}),!0))})}var l=[{html:n("History Lists"),header:!0},{html:n("Saved Histories"),href:"histories/list",target:"_top"},{html:n("Histories Shared with Me"),href:"histories/list_shared",target:"_top"},{html:n("Current History"),header:!0,anon:!0},{html:n("Create New"),func:function(){Galaxy&&Galaxy.currHistoryPanel&&Galaxy.currHistoryPanel.createNewHistory()}},{html:n("Copy History"),func:function(){t(Galaxy.currHistoryPanel.model).done(function(){Galaxy.currHistoryPanel.loadCurrentHistory()})}},{html:n("Share or Publish"),href:"history/sharing"},{html:n("Show Structure"),href:"history/display_structured",anon:!0},{html:n("Extract Workflow"),href:"workflow/build_from_current_history"},{html:n("Delete"),anon:!0,func:function(){Galaxy&&Galaxy.currHistoryPanel&&confirm(n("Really delete the current history?"))&&(galaxy_main.window.location.href="history/delete?id="+Galaxy.currHistoryPanel.model.id)}},{html:n("Delete Permanently"),purge:!0,anon:!0,func:function(){Galaxy&&Galaxy.currHistoryPanel&&confirm(n("Really delete the current history permanently? This cannot be undone."))&&(galaxy_main.window.location.href="history/delete?purge=True&id="+Galaxy.currHistoryPanel.model.id)}},{html:n("Dataset Actions"),header:!0,anon:!0},{html:n("Copy Datasets"),href:"dataset/copy_datasets"},{html:n("Dataset Security"),href:"root/history_set_default_permissions"},{html:n("Resume Paused Jobs"),href:"history/resume_paused_jobs?current=True",anon:!0},{html:n("Collapse Expanded Datasets"),func:function(){Galaxy&&Galaxy.currHistoryPanel&&Galaxy.currHistoryPanel.collapseAll()}},{html:n("Unhide Hidden Datasets"),anon:!0,func:function(){Galaxy&&Galaxy.currHistoryPanel&&confirm(n("Really unhide all hidden datasets?"))&&a.post(Galaxy.root+"history/adjust_hidden",{user_action:"unhide"},function(){Galaxy.currHistoryPanel.loadCurrentHistory()})}},{html:n("Delete Hidden Datasets"),anon:!0,func:function(){Galaxy&&Galaxy.currHistoryPanel&&confirm(n("Really delete all hidden datasets?"))&&a.post(Galaxy.root+"history/adjust_hidden",{user_action:"delete"},function(){Galaxy.currHistoryPanel.loadCurrentHistory()})}},{html:n("Purge Deleted Datasets"),confirm:n("Really delete all deleted datasets permanently? This cannot be undone."),href:"history/purge_deleted_datasets",purge:!0,anon:!0},{html:n("Downloads"),header:!0},{html:n("Export Tool Citations"),href:"history/citations",anon:!0},{html:n("Export History to File"),href:"history/export_archive?preview=True",anon:!0},{html:n("Other Actions"),header:!0},{html:n("Import from File"),href:"history/import_archive"}];s.add({url:"api/webhooks/history-menu/all",async:!1,callback:function(e){var t=[];a.each(e.models,function(e,i){var s=i.toJSON();s.activate&&t.push({html:n(s.config.title),anon:!0})}),t.length>0&&(t.unshift({html:n("Webhooks"),header:!0}),a.merge(l,t))}});var c=function(t,i){i=i||{};var n=void 0===i.anonymous||i.anonymous,s=i.purgeAllowed||!1,a=r(n,s,Galaxy.root);return new e(t,a)};return c}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(1),i(2))},function(e,t,i){var n,s;(function(a,o,r){n=[i(4),i(21)],s=function(e,t){var i=a.View.extend({initialize:function(t){var i=this;this.setElement(o("
")),this.model=new a.Model,e.get({url:Galaxy.root+"page/list",success:function(e){e.dict_format=!0,i.model.set(e),i.render()}})},render:function(){var e=new t(this.model.attributes);this.$el.empty().append(e.$el),this.$el.append(this._templateShared())},_templateShared:function(){var e=o("
Pages shared with you by others "),t=this.model.attributes;if(t.shared_by_others&&t.shared_by_others.length>0){var i=o('');r.each(t.shared_by_others,function(e,t){var n=Galaxy.root+"page/display_by_username_and_slug?username="+e.username+"&slug="+e.slug;i.append(''+r.escape(e.title)+" "+r.escape(e.username)+" ")}),e.append(i)}else e.append("No pages have been shared with you.");return e}});return{View:i}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1),i(2))},function(e,t,i){var n,s;(function(a,o,r){n=[i(4),i(26),i(65),i(15),i(16)],s=function(e,t,i,n,s){return a.View.extend({status_classes:{init:"upload-icon-button fa fa-trash-o",queued:"upload-icon fa fa-spinner fa-spin",running:"upload-icon fa fa-spinner fa-spin",success:"upload-icon-button fa fa-check",error:"upload-icon-button fa fa-exclamation-triangle"},initialize:function(e,t){var i=this;this.app=e,this.model=t.model,this.setElement(this._template(t.model)),this.$mode=this.$(".upload-mode"),this.$title=this.$(".upload-title-extended"),this.$text=this.$(".upload-text"),this.$size=this.$(".upload-size"),this.$info_text=this.$(".upload-info-text"),this.$info_progress=this.$(".upload-info-progress"),this.$text_content=this.$(".upload-text-content"),this.$symbol=this.$(".upload-symbol"),this.$progress_bar=this.$(".upload-progress-bar"),this.$percentage=this.$(".upload-percentage"),this.settings=new n.View({title:"Upload configuration",container:this.$(".upload-settings"),placement:"bottom"});this.app.select_genome.value(),this.app.select_extension.value();this.$symbol.on("click",function(){i._removeRow()}),this.$text_content.on("change input",function(e){i.model.set({url_paste:o(e.target).val(),file_size:o(e.target).val().length})}),this.listenTo(this.model,"change:percentage",function(){i._refreshPercentage()}),this.listenTo(this.model,"change:status",function(){i._refreshStatus()}),this.listenTo(this.model,"change:info",function(){i._refreshInfo()}),this.listenTo(this.model,"change:file_size",function(){i._refreshFileSize()}),this.listenTo(this.model,"remove",function(){i.remove()}),this.app.collection.on("reset",function(){i.remove()})},render:function(){var t=this.model.attributes;this.$title.html(r.escape(t.file_name)),this.$size.html(e.bytesToString(t.file_size)),this.$mode.removeClass().addClass("upload-mode").addClass("text-primary"),"new"==t.file_mode?(this.$text.css({width:this.$el.width()-16+"px",top:this.$el.height()-8+"px"}).show(),this.$el.height(this.$el.height()-8+this.$text.height()+16),this.$mode.addClass("fa fa-edit")):"local"==t.file_mode?this.$mode.addClass("fa fa-laptop"):"ftp"==t.file_mode&&this.$mode.addClass("fa fa-folder-open-o")},_refreshInfo:function(){var e=this.model.get("info");e?this.$info_text.html("Failed: "+e).show():this.$info_text.hide()},_refreshPercentage:function(){var e=parseInt(this.model.get("percentage"));this.$progress_bar.css({width:e+"%"}),this.$percentage.html(100!=e?e+"%":"Adding to history...")},_refreshStatus:function(){var e=this.model.get("status");this.$symbol.removeClass().addClass("upload-symbol").addClass(this.status_classes[e]),this.model.set("enabled","init"==e);var t=this.model.get("enabled");this.$text_content.attr("disabled",!t),"success"==e&&(this.$el.addClass("success"),this.$percentage.html("100%")),"error"==e&&(this.$el.addClass("danger"),this.$info_progress.hide())},_refreshFileSize:function(){this.$size.html(e.bytesToString(this.model.get("file_size")))},_removeRow:function(){["init","success","error"].indexOf(this.model.get("status"))!==-1&&this.app.collection.remove(this.model)},_showSettings:function(){this.settings.visible?this.settings.hide():(this.settings.empty(),this.settings.append(new i(this).$el),this.settings.show())},_template:function(e){return'
You can tell Galaxy to download data from web by entering URL in this box (one per line). You can also directly paste the contents of a file.
'}})}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1),i(2))},function(e,t,i){var n,s;(function(a,o,r){n=[i(4),i(26),i(129),i(64),i(15),i(16),i(7),i(42),i(68)],s=function(e,t,i,n,s,l,c,d){return a.View.extend({upload_size:0,collection:new t.Collection,counter:{announce:0,success:0,error:0,running:0,reset:function(){this.announce=this.success=this.error=this.running=0}},initialize:function(e){var t=this;this.app=e,this.options=e.options,this.list_extensions=e.list_extensions,this.list_genomes=e.list_genomes,this.ui_button=e.ui_button,this.ftp_upload_site=e.currentFtp(),this.setElement(this._template()),this.btnLocal=new c.Button({id:"btn-local",title:"Choose local files",onclick:function(){t.uploadbox.select()},icon:"fa fa-laptop"}),this.btnFtp=new c.Button({id:"btn-ftp",title:"Choose FTP files",onclick:function(){t._eventFtp()},icon:"fa fa-folder-open-o"}),this.btnCreate=new c.Button({id:"btn-new",title:"Paste/Fetch data",onclick:function(){t._eventCreate()},icon:"fa fa-edit"}),this.btnStart=new c.Button({id:"btn-start",title:"Start",onclick:function(){t._eventStart()}}),this.btnBuild=new c.Button({id:"btn-build",title:"Build",onclick:function(){t._eventBuild()}}),this.btnStop=new c.Button({id:"btn-stop",title:"Pause",onclick:function(){t._eventStop()}}),this.btnReset=new c.Button({id:"btn-reset",title:"Reset",onclick:function(){t._eventReset()}}),this.btnClose=new c.Button({id:"btn-close",title:"Close",onclick:function(){t.app.modal.hide()}}),o.each([this.btnLocal,this.btnFtp,this.btnCreate,this.btnStop,this.btnReset,this.btnStart,this.btnBuild,this.btnClose],function(e){t.$(".upload-buttons").prepend(e.$el)}),this.uploadbox=this.$(".upload-box").uploadbox({url:this.app.options.nginx_upload_path,announce:function(e,i){t._eventAnnounce(e,i)},initialize:function(e){return t.app.toData([t.collection.get(e)],t.history_id)},progress:function(e,i){t._eventProgress(e,i)},success:function(e,i){t._eventSuccess(e,i)},error:function(e,i){t._eventError(e,i)},complete:function(){t._eventComplete()},ondragover:function(){t.$(".upload-box").addClass("highlight")},ondragleave:function(){t.$(".upload-box").removeClass("highlight")}}),console.log(this.list_extensions),this.ftp=new s.View({title:"FTP files",container:this.btnFtp.$el}),this.select_extension=new l.View({css:"upload-footer-selection-compressed",container:this.$(".upload-footer-extension"),data:o.filter(this.list_extensions,function(e){return!e.composite_files}),value:this.options.default_extension,onchange:function(e){t.updateExtension(e)}}),this.collectionType="list",this.select_collection=new l.View({css:"upload-footer-selection-compressed",container:this.$(".upload-footer-collection-type"),data:[{id:"list",text:"List"},{id:"paired",text:"Paired"},{id:"list:paired",text:"List of Pairs"}],value:"list",onchange:function(e){t.updateCollectionType(e)}}),this.$(".upload-footer-extension-info").on("click",function(e){t.showExtensionInfo({$el:r(e.target),title:t.select_extension.text(),extension:t.select_extension.value(),placement:"top"})}).on("mousedown",function(e){e.preventDefault()}),this.select_genome=new l.View({css:"upload-footer-selection",container:this.$(".upload-footer-genome"),data:this.list_genomes,value:this.options.default_genome,onchange:function(e){t.updateGenome(e)}}),this.collection.on("remove",function(e){t._eventRemove(e)}),this._updateScreen()},_eventAnnounce:function(e,n){this.counter.announce++;var s=new t.Model({id:e,file_name:n.name,file_size:n.size,file_mode:n.mode||"local",file_path:n.path,file_data:n,
-extension:this.select_extension.value(),genome:this.select_genome.value()});this.collection.add(s);var a=new i(this,{model:s});this.$(".upload-table > tbody:first").append(a.$el),this._updateScreen(),a.render()},_eventProgress:function(e,t){var i=this.collection.get(e);i.set("percentage",t),this.ui_button.model.set("percentage",this._uploadPercentage(t,i.get("file_size")))},_eventSuccess:function(e,t){var i=o.pluck(t.outputs,"hid"),n=this.collection.get(e);n.set({percentage:100,status:"success",hids:i}),this.ui_button.model.set("percentage",this._uploadPercentage(100,n.get("file_size"))),this.upload_completed+=100*n.get("file_size"),this.counter.announce--,this.counter.success++,this._updateScreen(),Galaxy.currHistoryPanel.refreshContents()},_eventError:function(e,t){var i=this.collection.get(e);i.set({percentage:100,status:"error",info:t}),this.ui_button.model.set({percentage:this._uploadPercentage(100,i.get("file_size")),status:"danger"}),this.upload_completed+=100*i.get("file_size"),this.counter.announce--,this.counter.error++,this._updateScreen()},_eventComplete:function(){this.collection.each(function(e){"queued"==e.get("status")&&e.set("status","init")}),this.counter.running=0,this._updateScreen()},_eventBuild:function(){var e=[];o.forEach(this.collection.models,function(t){e.push.apply(e,t.get("hids"))});var t=o.map(e,function(e){return Galaxy.currHistoryPanel.collection.getByHid(e)}),i=new Galaxy.currHistoryPanel.collection.constructor(t);i.historyId=Galaxy.currHistoryPanel.collection.historyId,Galaxy.currHistoryPanel.buildCollection(this.collectionType,i,!0),this.counter.running=0,this._updateScreen(),this._eventReset(),this.app.modal.hide()},_eventRemove:function(e){var t=e.get("status");"success"==t?this.counter.success--:"error"==t?this.counter.error--:this.counter.announce--,this.uploadbox.remove(e.id),this._updateScreen()},showExtensionInfo:function(e){var t=this,i=e.$el,n=e.extension,a=e.title,r=o.findWhere(t.list_extensions,{id:n});this.extension_popup&&this.extension_popup.remove(),this.extension_popup=new s.View({placement:e.placement||"bottom",container:i}),this.extension_popup.title(a),this.extension_popup.empty(),this.extension_popup.append(this._templateDescription(r)),this.extension_popup.show()},_eventFtp:function(){if(this.ftp.visible)this.ftp.hide();else{this.ftp.empty();var e=this;this.ftp.append(new n({collection:this.collection,ftp_upload_site:this.ftp_upload_site,onadd:function(t){e.uploadbox.add([{mode:"ftp",name:t.path,size:t.size,path:t.path}])},onremove:function(t){e.collection.remove(t)}}).$el),this.ftp.show()}},_eventCreate:function(){this.uploadbox.add([{name:"New File",size:0,mode:"new"}])},_eventStart:function(){if(!(0==this.counter.announce||this.counter.running>0)){var e=this;this.upload_size=0,this.upload_completed=0,this.collection.each(function(t){"init"==t.get("status")&&(t.set("status","queued"),e.upload_size+=t.get("file_size"))}),this.ui_button.model.set({percentage:0,status:"success"}),this.counter.running=this.counter.announce,this.history_id=this.app.currentHistory(),this.uploadbox.start(),this._updateScreen()}},_eventStop:function(){this.counter.running>0&&(this.ui_button.model.set("status","info"),r(".upload-top-info").html("Queue will pause after completing the current file..."),this.uploadbox.stop())},_eventReset:function(){0==this.counter.running&&(this.collection.reset(),this.counter.reset(),this.uploadbox.reset(),this.select_extension.value(this.options.default_extension),this.select_genome.value(this.options.default_genome),this.ui_button.model.set("percentage",0),this._updateScreen())},updateExtension:function(e,t){var i=this;this.collection.each(function(n){"init"!=n.get("status")||n.get("extension")!=i.options.default_extension&&t||n.set("extension",e)})},updateCollectionType:function(e){this.collectionType=e},updateGenome:function(e,t){var i=this;this.collection.each(function(n){"init"!=n.get("status")||n.get("genome")!=i.options.default_genome&&t||n.set("genome",e)})},_updateScreen:function(){var e="";e=0==this.counter.announce?this.uploadbox.compatible()?" ":"Browser does not support Drag & Drop. Try Firefox 4+, Chrome 7+, IE 10+, Opera 12+ or Safari 6+.":0==this.counter.running?"You added "+this.counter.announce+" file(s) to the queue. Add more files or click 'Start' to proceed.":"Please wait..."+this.counter.announce+" out of "+this.counter.running+" remaining.",this.$(".upload-top-info").html(e);var t=0==this.counter.running&&this.counter.announce+this.counter.success+this.counter.error>0,i=0==this.counter.running&&this.counter.announce>0,n=0==this.counter.running&&0==this.counter.announce&&this.counter.success>0&&0==this.counter.error,s=0==this.counter.running,a=this.counter.announce+this.counter.success+this.counter.error>0;this.btnReset[t?"enable":"disable"](),this.btnStart[i?"enable":"disable"](),this.btnStart.$el[i?"addClass":"removeClass"]("btn-primary"),this.btnBuild[n?"enable":"disable"](),this.btnBuild.$el[n?"addClass":"removeClass"]("btn-primary"),this.btnStop[this.counter.running>0?"enable":"disable"](),this.btnLocal[s?"enable":"disable"](),this.btnFtp[s?"enable":"disable"](),this.btnCreate[s?"enable":"disable"](),this.btnFtp.$el[this.ftp_upload_site?"show":"hide"](),this.$(".upload-table")[a?"show":"hide"](),this.$(".upload-helper")[a?"hide":"show"]()},_uploadPercentage:function(e,t){return(this.upload_completed+e*t)/this.upload_size},_templateDescription:function(e){if(e.description){var t=e.description;return e.description_url&&(t+=' (read more )'),t}return"There is no description available for this file extension."},_template:function(){return''}})}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(2),i(1))},function(e,t,i){var n,s;(function(a,o,r){n=[i(4),i(65),i(64),i(15),i(7),i(16),i(68)],s=function(e,t,i,n,s,l){return a.View.extend({status_classes:{init:"upload-mode fa fa-exclamation text-primary",ready:"upload-mode fa fa-check text-success",running:"upload-mode fa fa-spinner fa-spin",success:"upload-mode fa fa-check",error:"upload-mode fa fa-exclamation-triangle"},initialize:function(e,t){var i=this;this.app=e,this.model=t.model,this.setElement(this._template()),this.$source=this.$(".upload-source"),this.$settings=this.$(".upload-settings"),this.$status=this.$(".upload-status"),this.$text=this.$(".upload-text"),this.$text_content=this.$(".upload-text-content"),this.$info_text=this.$(".upload-info-text"),this.$info_progress=this.$(".upload-info-progress"),this.$file_name=this.$(".upload-file-name"),this.$file_desc=this.$(".upload-file-desc"),this.$file_size=this.$(".upload-file-size"),this.$progress_bar=this.$(".upload-progress-bar"),this.$percentage=this.$(".upload-percentage"),this.uploadinput=this.$el.uploadinput({ondragover:function(){i.model.get("enabled")&&i.$el.addClass("warning")},ondragleave:function(){i.$el.removeClass("warning")},onchange:function(e){"running"!=i.model.get("status")&&e&&e.length>0&&(i.model.reset({file_data:e[0],file_name:e[0].name,file_size:e[0].size,file_mode:e[0].mode||"local"}),i._refreshReady())}}),this.button_menu=new s.ButtonMenu({icon:"fa-caret-down",title:"Select",pull:"left"}),this.$source.append(this.button_menu.$el),this.button_menu.addMenu({icon:"fa-laptop",title:"Choose local file",onclick:function(){i.uploadinput.dialog()}}),this.app.ftp_upload_site&&this.button_menu.addMenu({icon:"fa-folder-open-o",title:"Choose FTP file",onclick:function(){i._showFtp()}}),this.button_menu.addMenu({icon:"fa-edit",title:"Paste/Fetch data",onclick:function(){i.model.reset({file_mode:"new",file_name:"New File"})}}),this.ftp=new n.View({title:"Choose FTP file:",container:this.$source.find(".ui-button-menu"),placement:"right"}),this.settings=new n.View({title:"Upload configuration",container:this.$settings,placement:"bottom"}),this.$text_content.on("change input",function(e){i.model.set({url_paste:o(e.target).val(),file_size:o(e.target).val().length}),i._refreshReady()}),this.$settings.on("click",function(e){i._showSettings()}).on("mousedown",function(e){e.preventDefault()}),this.listenTo(this.model,"change:percentage",function(){i._refreshPercentage()}),this.listenTo(this.model,"change:status",function(){i._refreshStatus()}),this.listenTo(this.model,"change:info",function(){i._refreshInfo()}),this.listenTo(this.model,"change:file_name",function(){i._refreshFileName()}),this.listenTo(this.model,"change:file_mode",function(){i._refreshMode()}),this.listenTo(this.model,"change:file_size",function(){i._refreshFileSize()}),this.listenTo(this.model,"remove",function(){i.remove()}),this.app.collection.on("reset",function(){i.remove()})},render:function(){this.$el.attr("id","upload-row-"+this.model.id),this.$file_name.html(r.escape(this.model.get("file_name")||"-")),this.$file_desc.html(this.model.get("file_desc")||"Unavailable"),this.$file_size.html(e.bytesToString(this.model.get("file_size"))),this.$status.removeClass().addClass(this.status_classes.init)},remove:function(){a.View.prototype.remove.apply(this)},_refreshReady:function(){this.app.collection.each(function(e){e.set("status",e.get("file_size")>0&&"ready"||"init")})},_refreshMode:function(){var e=this.model.get("file_mode");"new"==e?(this.height=this.$el.height(),this.$text.css({width:this.$el.width()-16+"px",top:this.$el.height()-8+"px"}).show(),this.$el.height(this.$el.height()-8+this.$text.height()+16),this.$text_content.val("").trigger("keyup")):(this.$el.height(this.height),this.$text.hide())},_refreshInfo:function(){var e=this.model.get("info");e?this.$info_text.html("Failed: "+e).show():this.$info_text.hide()},_refreshPercentage:function(){var e=parseInt(this.model.get("percentage"));0!=e?this.$progress_bar.css({width:e+"%"}):(this.$progress_bar.addClass("no-transition"),this.$progress_bar.css({width:"0%"}),this.$progress_bar[0].offsetHeight,this.$progress_bar.removeClass("no-transition")),this.$percentage.html(100!=e?e+"%":"Adding to history...")},_refreshStatus:function(){var e=this.model.get("status");this.$status.removeClass().addClass(this.status_classes[e]),this.model.set("enabled","running"!=e),this.$text_content.attr("disabled",!this.model.get("enabled")),this.$el.removeClass("success danger warning"),"running"!=e&&"ready"!=e||this.model.set("percentage",0),this.$source.find(".button")["running"==e?"addClass":"removeClass"]("disabled"),"success"==e&&(this.$el.addClass("success"),this.model.set("percentage",100),this.$percentage.html("100%")),"error"==e?(this.$el.addClass("danger"),this.model.set("percentage",0),this.$info_progress.hide(),this.$info_text.show()):(this.$info_progress.show(),this.$info_text.hide())},_refreshFileName:function(){this.$file_name.html(this.model.get("file_name")||"-")},_refreshFileSize:function(){this.$file_size.html(e.bytesToString(this.model.get("file_size")))},_showFtp:function(){if(this.ftp.visible)this.ftp.hide();else{var e=this;this.ftp.empty(),this.ftp.append(new i({ftp_upload_site:this.app.ftp_upload_site,onchange:function(t){e.ftp.hide(),"running"!=e.model.get("status")&&t&&(e.model.reset({file_mode:"ftp",file_name:t.path,file_size:t.size,file_path:t.path}),e._refreshReady())}}).$el),this.ftp.show()}},_showSettings:function(){this.settings.visible?this.settings.hide():(this.settings.empty(),this.settings.append(new t(this).$el),this.settings.show())},_template:function(){return'
You can tell Galaxy to download data from web by entering URL in this box (one per line). You can also directly paste the contents of a file.
'}})}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1),i(2))},function(e,t,i){var n,s;(function(a,o,r){n=[i(4),i(26),i(131),i(15),i(16),i(7)],s=function(e,t,i,n,s,l){return a.View.extend({collection:new t.Collection,initialize:function(e){var t=this;this.app=e,this.options=e.options,this.list_extensions=e.list_extensions,this.list_genomes=e.list_genomes,this.ftp_upload_site=e.currentFtp(),this.setElement(this._template()),this.btnStart=new l.Button({title:"Start",onclick:function(){t._eventStart()}}),this.btnClose=new l.Button({title:"Close",onclick:function(){t.app.modal.hide()}}),o.each([this.btnStart,this.btnClose],function(e){t.$(".upload-buttons").prepend(e.$el)}),this.select_extension=new s.View({css:"upload-footer-selection",container:this.$(".upload-footer-extension"),data:o.filter(this.list_extensions,function(e){return e.composite_files}),onchange:function(e){t.collection.reset();var i=o.findWhere(t.list_extensions,{id:e});i&&i.composite_files&&o.each(i.composite_files,function(e){t.collection.add({id:t.collection.size(),file_desc:e.description||e.name})})}}),this.$(".upload-footer-extension-info").on("click",function(e){t._showExtensionInfo({$el:r(e.target),title:t.select_extension.text(),extension:t.select_extension.value(),placement:"top"})}).on("mousedown",function(e){e.preventDefault()}),this.select_genome=new s.View({css:"upload-footer-selection",container:this.$(".upload-footer-genome"),data:this.list_genomes,value:this.options.default_genome}),this.listenTo(this.collection,"add",function(e){t._eventAnnounce(e)}),this.listenTo(this.collection,"change add",function(){t.render()}),this.select_extension.options.onchange(this.select_extension.value()),this.render()},render:function(){var e=this.collection.first();e&&"running"==e.get("status")?(this.select_genome.disable(),this.select_extension.disable()):(this.select_genome.enable(),this.select_extension.enable()),this.collection.where({status:"ready"}).length==this.collection.length&&this.collection.length>0?(this.btnStart.enable(),this.btnStart.$el.addClass("btn-primary")):(this.btnStart.disable(),this.btnStart.$el.removeClass("btn-primary")),this.$(".upload-table")[this.collection.length>0?"show":"hide"]()},_eventAnnounce:function(e){var t=new i(this,{model:e});this.$(".upload-table > tbody:first").append(t.$el),this.$(".upload-table")[this.collection.length>0?"show":"hide"](),t.render()},_eventStart:function(){var e=this;this.collection.each(function(t){t.set({genome:e.select_genome.value(),extension:e.select_extension.value()})}),r.uploadpost({url:this.app.options.nginx_upload_path,data:this.app.toData(this.collection.filter()),success:function(t){e._eventSuccess(t)},error:function(t){e._eventError(t)},progress:function(t){e._eventProgress(t)}})},_eventProgress:function(e){this.collection.each(function(t){t.set("percentage",e)})},_eventSuccess:function(e){this.collection.each(function(e){e.set("status","success")}),Galaxy.currHistoryPanel.refreshContents()},_eventError:function(e){this.collection.each(function(t){t.set({status:"error",info:e})})},_showExtensionInfo:function(e){var t=e.$el,i=e.extension,s=e.title,a=o.findWhere(this.list_extensions,{id:i});this.extension_popup&&this.extension_popup.remove(),this.extension_popup=new n.View({placement:e.placement||"bottom",container:t,destroy:!0}),this.extension_popup.title(s),this.extension_popup.empty(),this.extension_popup.append(this._templateDescription(a)),this.extension_popup.show()},_templateDescription:function(e){if(e.description){var t=e.description;return e.description_url&&(t+=' (read more )'),t}return"There is no description available for this file extension."},_template:function(){return'Description Name Size Settings Status
'}})}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(2),i(1))},function(e,t,i){var n,s;(function(a,o,r){n=[i(4),i(26),i(65),i(15),i(16)],s=function(e,t,i,n,s){return a.View.extend({status_classes:{init:"upload-icon-button fa fa-trash-o",queued:"upload-icon fa fa-spinner fa-spin",running:"upload-icon fa fa-spinner fa-spin",success:"upload-icon-button fa fa-check",error:"upload-icon-button fa fa-exclamation-triangle"},initialize:function(e,t){var i=this;this.app=e,this.model=t.model,this.setElement(this._template(t.model)),this.$mode=this.$(".upload-mode"),this.$title=this.$(".upload-title"),this.$text=this.$(".upload-text"),this.$size=this.$(".upload-size"),this.$info_text=this.$(".upload-info-text"),this.$info_progress=this.$(".upload-info-progress"),this.$text_content=this.$(".upload-text-content"),this.$settings=this.$(".upload-settings"),this.$symbol=this.$(".upload-symbol"),this.$progress_bar=this.$(".upload-progress-bar"),this.$percentage=this.$(".upload-percentage"),this.settings=new n.View({title:"Upload configuration",container:this.$(".upload-settings"),placement:"bottom"});var a=this.app.select_genome.value(),r=this.app.select_extension.value();this.select_genome=new s.View({css:"upload-genome",data:i.app.list_genomes,container:this.$(".upload-genome"),value:a,onchange:function(e){i.model.set("genome",e)}}),this.select_extension=new s.View({css:"upload-extension",data:i.app.list_extensions,container:this.$(".upload-extension"),value:r,onchange:function(e){i.model.set("extension",e)}}),this.model.set({genome:a,extension:r}),this.$symbol.on("click",function(){i._removeRow()}),this.$(".upload-extension-info").on("click",function(e){i.app.showExtensionInfo({$el:o(e.target),title:i.select_extension.text(),extension:i.select_extension.value()})}).on("mousedown",function(e){e.preventDefault()}),this.$settings.on("click",function(e){i._showSettings()}).on("mousedown",function(e){e.preventDefault()}),this.$text_content.on("change input",function(e){i.model.set({url_paste:o(e.target).val(),file_size:o(e.target).val().length})}),this.listenTo(this.model,"change:percentage",function(){i._refreshPercentage()}),this.listenTo(this.model,"change:status",function(){i._refreshStatus()}),this.listenTo(this.model,"change:info",function(){i._refreshInfo()}),this.listenTo(this.model,"change:genome",function(){i._refreshGenome()}),this.listenTo(this.model,"change:extension",function(){i._refreshExtension()}),this.listenTo(this.model,"change:file_size",function(){i._refreshFileSize()}),this.listenTo(this.model,"remove",function(){i.remove()}),this.app.collection.on("reset",function(){i.remove()})},render:function(){var t=this.model.attributes;this.$title.html(r.escape(t.file_name)),this.$size.html(e.bytesToString(t.file_size)),this.$mode.removeClass().addClass("upload-mode").addClass("text-primary"),"new"==t.file_mode?(this.$text.css({width:this.$el.width()-16+"px",top:this.$el.height()-8+"px"}).show(),this.$el.height(this.$el.height()-8+this.$text.height()+16),this.$mode.addClass("fa fa-edit")):"local"==t.file_mode?this.$mode.addClass("fa fa-laptop"):"ftp"==t.file_mode&&this.$mode.addClass("fa fa-folder-open-o")},remove:function(){this.select_genome.remove(),this.select_extension.remove(),a.View.prototype.remove.apply(this)},_refreshExtension:function(){this.select_extension.value(this.model.get("extension"))},_refreshGenome:function(){this.select_genome.value(this.model.get("genome"))},_refreshInfo:function(){var e=this.model.get("info");e?this.$info_text.html("Failed: "+e).show():this.$info_text.hide()},_refreshPercentage:function(){var e=parseInt(this.model.get("percentage"));this.$progress_bar.css({width:e+"%"}),this.$percentage.html(100!=e?e+"%":"Adding to history...")},_refreshStatus:function(){var e=this.model.get("status");this.$symbol.removeClass().addClass("upload-symbol").addClass(this.status_classes[e]),this.model.set("enabled","init"==e);var t=this.model.get("enabled");this.$text_content.attr("disabled",!t),t?(this.select_genome.enable(),this.select_extension.enable()):(this.select_genome.disable(),this.select_extension.disable()),"success"==e&&(this.$el.addClass("success"),this.$percentage.html("100%")),"error"==e&&(this.$el.addClass("danger"),this.$info_progress.hide())},_refreshFileSize:function(){this.$size.html(e.bytesToString(this.model.get("file_size")))},_removeRow:function(){["init","success","error"].indexOf(this.model.get("status"))!==-1&&this.app.collection.remove(this.model)},_showSettings:function(){this.settings.visible?this.settings.hide():(this.settings.empty(),this.settings.append(new i(this).$el),this.settings.show())},_template:function(e){return'
You can tell Galaxy to download data from web by entering URL in this box (one per line). You can also directly paste the contents of a file.
 
'}})}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1),i(2))},function(e,t,i){var n,s;(function(a,o,r){n=[i(4),i(26),i(133),i(64),i(15),i(16),i(7),i(68)],s=function(e,t,i,n,s,l,c){return a.View.extend({upload_size:0,collection:new t.Collection,counter:{announce:0,success:0,error:0,running:0,reset:function(){this.announce=this.success=this.error=this.running=0}},initialize:function(e){var t=this;this.app=e,this.options=e.options,this.list_extensions=e.list_extensions,this.list_genomes=e.list_genomes,this.ui_button=e.ui_button,this.ftp_upload_site=e.currentFtp(),this.setElement(this._template()),this.btnLocal=new c.Button({id:"btn-local",title:"Choose local file",onclick:function(){t.uploadbox.select()},icon:"fa fa-laptop"}),this.btnFtp=new c.Button({id:"btn-ftp",title:"Choose FTP file",onclick:function(){t._eventFtp()},icon:"fa fa-folder-open-o"}),this.btnCreate=new c.Button({id:"btn-new",title:"Paste/Fetch data",onclick:function(){t._eventCreate()},icon:"fa fa-edit"}),this.btnStart=new c.Button({id:"btn-start",title:"Start",onclick:function(){t._eventStart()}}),this.btnStop=new c.Button({id:"btn-stop",title:"Pause",onclick:function(){t._eventStop()}}),this.btnReset=new c.Button({id:"btn-reset",title:"Reset",onclick:function(){t._eventReset()}}),this.btnClose=new c.Button({id:"btn-close",title:"Close",onclick:function(){t.app.modal.hide()}}),o.each([this.btnLocal,this.btnFtp,this.btnCreate,this.btnStop,this.btnReset,this.btnStart,this.btnClose],function(e){t.$(".upload-buttons").prepend(e.$el)}),this.uploadbox=this.$(".upload-box").uploadbox({url:this.app.options.nginx_upload_path,announce:function(e,i){t._eventAnnounce(e,i)},initialize:function(e){return t.app.toData([t.collection.get(e)],t.history_id)},progress:function(e,i){t._eventProgress(e,i)},success:function(e,i){t._eventSuccess(e,i)},error:function(e,i){t._eventError(e,i)},complete:function(){t._eventComplete()},ondragover:function(){t.$(".upload-box").addClass("highlight")},ondragleave:function(){t.$(".upload-box").removeClass("highlight")}}),this.ftp=new s.View({title:"FTP files",container:this.btnFtp.$el}),this.select_extension=new l.View({css:"upload-footer-selection",container:this.$(".upload-footer-extension"),data:o.filter(this.list_extensions,function(e){return!e.composite_files}),value:this.options.default_extension,onchange:function(e){t.updateExtension(e)}}),this.$(".upload-footer-extension-info").on("click",function(e){t.showExtensionInfo({$el:r(e.target),title:t.select_extension.text(),extension:t.select_extension.value(),placement:"top"})}).on("mousedown",function(e){e.preventDefault()}),this.select_genome=new l.View({css:"upload-footer-selection",container:this.$(".upload-footer-genome"),data:this.list_genomes,value:this.options.default_genome,onchange:function(e){t.updateGenome(e)}}),this.collection.on("remove",function(e){t._eventRemove(e)}),this._updateScreen()},_eventAnnounce:function(e,n){this.counter.announce++;var s=new t.Model({id:e,file_name:n.name,file_size:n.size,file_mode:n.mode||"local",file_path:n.path,file_data:n});this.collection.add(s);var a=new i(this,{model:s});this.$(".upload-table > tbody:first").append(a.$el),this._updateScreen(),a.render()},_eventProgress:function(e,t){var i=this.collection.get(e);i.set("percentage",t),this.ui_button.model.set("percentage",this._uploadPercentage(t,i.get("file_size")))},_eventSuccess:function(e,t){var i=this.collection.get(e);i.set({percentage:100,status:"success"}),this.ui_button.model.set("percentage",this._uploadPercentage(100,i.get("file_size"))),this.upload_completed+=100*i.get("file_size"),this.counter.announce--,this.counter.success++,this._updateScreen(),Galaxy.currHistoryPanel.refreshContents()},_eventError:function(e,t){var i=this.collection.get(e);i.set({percentage:100,status:"error",info:t}),this.ui_button.model.set({percentage:this._uploadPercentage(100,i.get("file_size")),status:"danger"}),this.upload_completed+=100*i.get("file_size"),this.counter.announce--,this.counter.error++,this._updateScreen()},_eventComplete:function(){this.collection.each(function(e){"queued"==e.get("status")&&e.set("status","init")}),this.counter.running=0,this._updateScreen()},_eventRemove:function(e){var t=e.get("status");"success"==t?this.counter.success--:"error"==t?this.counter.error--:this.counter.announce--,this.uploadbox.remove(e.id),this._updateScreen()},showExtensionInfo:function(e){var t=this,i=e.$el,n=e.extension,a=e.title,r=o.findWhere(t.list_extensions,{id:n});this.extension_popup&&this.extension_popup.remove(),this.extension_popup=new s.View({placement:e.placement||"bottom",container:i}),this.extension_popup.title(a),this.extension_popup.empty(),this.extension_popup.append(this._templateDescription(r)),this.extension_popup.show()},_eventFtp:function(){if(this.ftp.visible)this.ftp.hide();else{this.ftp.empty();var e=this;this.ftp.append(new n({collection:this.collection,ftp_upload_site:this.ftp_upload_site,onadd:function(t){e.uploadbox.add([{mode:"ftp",name:t.path,size:t.size,path:t.path}])},onremove:function(t){e.collection.remove(t)}}).$el),this.ftp.show()}},_eventCreate:function(){this.uploadbox.add([{name:"New File",size:0,mode:"new"}])},_eventStart:function(){if(!(0==this.counter.announce||this.counter.running>0)){var e=this;this.upload_size=0,this.upload_completed=0,this.collection.each(function(t){"init"==t.get("status")&&(t.set("status","queued"),e.upload_size+=t.get("file_size"))}),this.ui_button.model.set({percentage:0,status:"success"}),this.counter.running=this.counter.announce,this.history_id=this.app.currentHistory(),this.uploadbox.start(),this._updateScreen()}},_eventStop:function(){this.counter.running>0&&(this.ui_button.model.set("status","info"),r(".upload-top-info").html("Queue will pause after completing the current file..."),this.uploadbox.stop())},_eventReset:function(){0==this.counter.running&&(this.collection.reset(),this.counter.reset(),this.uploadbox.reset(),this.select_extension.value(this.options.default_extension),this.select_genome.value(this.options.default_genome),this.ui_button.model.set("percentage",0),this._updateScreen())},updateExtension:function(e,t){var i=this;this.collection.each(function(n){"init"!=n.get("status")||n.get("extension")!=i.options.default_extension&&t||n.set("extension",e)})},updateGenome:function(e,t){var i=this;this.collection.each(function(n){"init"!=n.get("status")||n.get("genome")!=i.options.default_genome&&t||n.set("genome",e)})},_updateScreen:function(){var e="";e=0==this.counter.announce?this.uploadbox.compatible()?" ":"Browser does not support Drag & Drop. Try Firefox 4+, Chrome 7+, IE 10+, Opera 12+ or Safari 6+.":0==this.counter.running?"You added "+this.counter.announce+" file(s) to the queue. Add more files or click 'Start' to proceed.":"Please wait..."+this.counter.announce+" out of "+this.counter.running+" remaining.",this.$(".upload-top-info").html(e);var t=0==this.counter.running&&this.counter.announce+this.counter.success+this.counter.error>0,i=0==this.counter.running&&this.counter.announce>0,n=0==this.counter.running,s=this.counter.announce+this.counter.success+this.counter.error>0;this.btnReset[t?"enable":"disable"](),this.btnStart[i?"enable":"disable"](),this.btnStart.$el[i?"addClass":"removeClass"]("btn-primary"),this.btnStop[this.counter.running>0?"enable":"disable"](),this.btnLocal[n?"enable":"disable"](),this.btnFtp[n?"enable":"disable"](),this.btnCreate[n?"enable":"disable"](),this.btnFtp.$el[this.ftp_upload_site?"show":"hide"](),this.$(".upload-table")[s?"show":"hide"](),this.$(".upload-helper")[s?"hide":"show"]()},_uploadPercentage:function(e,t){return(this.upload_completed+e*t)/this.upload_size},_templateDescription:function(e){if(e.description){var t=e.description;return e.description_url&&(t+=' (read more )'),t}return"There is no description available for this file extension."},_template:function(){return'
Drop files here
Name Size Type Genome Settings Status
'}})}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(2),i(1))},function(e,t,i){var n,s;(function(i,a){n=[],s=function(){var e=i.View.extend({initialize:function(e){var t=this;this.model=e&&e.model||new i.Model({icon:"fa-upload",tooltip:"Download from URL or upload files from disk",
+i.reject()}})},s=new l(t),t.post_job_actions&&t.post_job_actions.length&&s.portlet.append(o("
").addClass("ui-form-element-disabled").append(o("
").addClass("ui-form-title").html("Job Post Actions ")).append(o("
").addClass("ui-form-preview").html(r.reduce(t.post_job_actions,function(e,t){return e+" "+t.short_str},""))));else{var c=["data_input","data_collection_input"].indexOf(t.step_type)!=-1;r.each(t.inputs,function(e){e.flavor="module",e.hide_label=c}),s=new n(e.merge({title:t.title,onchange:function(){r.each(i.links[t.index],function(e){i._refreshStep(e)})},inputs:t.inputs&&t.inputs.length>0?t.inputs:[{type:"hidden",name:"No options available.",ignore:null}]},t))}i.forms[t.index]=s,i._append(i.$steps,s.$el),i._refresh(),t.needs_refresh&&i._refreshStep(t),s.portlet[i.show_progress?"disable":"enable"](),i.show_progress&&i.execute_btn.model.set({wait:!0,wait_text:"Preparing...",percentage:100*(t.index+1)/i.steps.length}),Galaxy.emit.debug("tool-form-composite::initialize()",t.index+" : Workflow step state ready.",t),setTimeout(function(){a.resolve()},0)})},_refreshStep:function(e){var t=this,i=this.forms[e.index];i?(r.each(t.parms[e.index],function(e,n){if(e.step_linked||e.wp_linked){var s=i.field_list[i.data.match(n)];if(s){var a=void 0;if(e.step_linked)a={values:[]},r.each(e.step_linked,function(e){t._isDataStep(e)&&(value=t.forms[e.index].data.create().input,value&&r.each(value.values,function(e){a.values.push(e)}))}),!e.multiple&&a.values.length>0&&(a={values:[a.values[0]]});else if(e.wp_linked){a=e.value;for(var o=/\$\{(.+?)\}/g;match=o.exec(e.value);){var l=t.wp_form.field_list[t.wp_form.data.match(match[1])],c=l&&l.value();c&&(a=a.split(match[0]).join(c))}}void 0!==a&&s.value(a)}}}),i.trigger("change")):e.needs_refresh=!0},_refreshHistory:function(){var e=this,t=parent.Galaxy&&parent.Galaxy.currHistoryPanel&&parent.Galaxy.currHistoryPanel.model;this._refresh_history&&clearTimeout(this._refresh_history),t&&t.refresh().success(function(){0===t.numOfUnfinishedShownContents()&&(e._refresh_history=setTimeout(function(){e._refreshHistory()},t.UPDATE_DELAY))})},_execute:function(){var e=this;this.show_progress=!0,this._enabled(!1),this.deferred.execute(function(t){setTimeout(function(){t.resolve(),e._submit()},0)})},_submit:function(){var t=this,i=this.history_form.data.create(),n={new_history_name:i["new_history|name"]?i["new_history|name"]:null,history_id:i["new_history|name"]?null:this.model.get("history_id"),replacement_params:this.wp_form?this.wp_form.data.create():{},parameters:{},parameters_normalized:!0,batch:!0},s=!0;for(var a in this.forms){var r=this.forms[a],l=r.data.create(),c=t.steps[a],h=c.step_index;r.trigger("reset");for(var u in l){var p=l[u],f=r.data.match(u),g=(r.field_list[f],r.input_list[f]);if(!g.step_linked){if(s=this._isDataStep(c)?p&&p.values&&p.values.length>0:g.optional||g.is_workflow&&""!==p||!g.is_workflow&&null!==p,!s){r.highlight(f);break}n.parameters[h]=n.parameters[h]||{},n.parameters[h][u]=l[u]}}if(!s)break}s?(Galaxy.emit.debug("tool-form-composite::submit()","Validation complete.",n),e.request({type:"POST",url:Galaxy.root+"api/workflows/"+this.model.id+"/invocations",data:n,success:function(e){if(Galaxy.emit.debug("tool-form-composite::submit","Submission successful.",e),t.$el.children().hide(),t.$el.append(t._templateSuccess(e)),o.isArray(e)&&e.length>0){t.$el.append(o("
",{id:"webhook-view"}));new d.WebhookView({urlRoot:Galaxy.root+"api/webhooks/workflow",toolId:n.tool_id,toolVersion:n.tool_version})}t._refreshHistory()},error:function(e){Galaxy.emit.debug("tool-form-composite::submit","Submission failed.",e);var i=!1;if(e&&e.err_data)for(var s in t.forms){var a=t.forms[s],o=e.err_data[a.model.get("step_index")];if(o){var r=a.data.matchResponse(o);for(var l in r){a.highlight(l,r[l]),i=!0;break}}}i||t.modal.show({title:"Workflow submission failed",body:t._templateError(n,e&&e.err_msg),buttons:{Close:function(){t.modal.hide()}}})},complete:function(){t._enabled(!0)}})):(t._enabled(!0),Galaxy.emit.debug("tool-form-composite::submit()","Validation failed.",n))},_append:function(e,t){e.append("
").append(t)},_enabled:function(e){this.execute_btn.model.set({wait:!e,wait_text:"Sending...",percentage:-1}),this.wp_form&&this.wp_form.portlet[e?"enable":"disable"](),this.history_form&&this.history_form.portlet[e?"enable":"disable"](),r.each(this.forms,function(t){t&&t.portlet[e?"enable":"disable"]()})},_isDataStep:function(e){lst=o.isArray(e)?e:[e];for(var t=0;t0?o("
").addClass("donemessagelarge").append(o("
").html("Successfully invoked workflow "+e.sanitize(this.model.get("name"))+" "+(t.length>1?" "+t.length+" times ":"")+".")).append(o("
").append(" ").text("You can check the status of queued jobs and view the resulting data by refreshing the History pane. When the job has been run the status will change from 'running' to 'finished' if completed successfully or 'error' if problems were encountered.")):this._templateError(t,"Invalid success response. No invocations found.")},_templateError:function(e,t){return o("
").addClass("errormessagelarge").append(o("
").text("The server could not complete the request. Please contact the Galaxy Team if this error persists. "+(JSON.stringify(t)||""))).append(o(" ").text(JSON.stringify(e,null,4)))}});return{View:u}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1),i(2))},,function(e,t,i){var n,s;(function(a,o){n=[i(5)],s=function(e){"use strict";function t(t,i,n){return Galaxy.modal.show({title:i,body:t,closing_events:!0,buttons:{Ok:function(){Galaxy.modal.hide()}}}),Galaxy.modal.$el.addClass("error-modal"),n&&(Galaxy.modal.$(".error-details").add(Galaxy.modal.$('button:contains("Details")')).remove(),a("
").addClass("error-details").hide().appendTo(Galaxy.modal.$(".modal-content")).append([a("
").text(h),a(" ").text(JSON.stringify(n,null," "))]),a(''+e("Details")+" ").appendTo(Galaxy.modal.$(".buttons")).click(function(){Galaxy.modal.$(".error-details").toggle()})),Galaxy.modal}function i(i,n,s){if(i){if(i=e(i),n=e(n)||e("Error:"),window.Galaxy&&Galaxy.modal)return t(i,n,s);alert(n+"\n\n"+i),console.log("error details:",JSON.stringify(s))}}function n(){return i(e("You appear to be offline. Please check your connection and try again."),e("Offline?"))}function s(){return i(e("Galaxy is currently unreachable. Please try again in a few minutes.")+" "+c,e("Cannot connect to Galaxy"))}function r(t,n,s,a,o){a=a||d,a+=" "+c,o=o||e("An error occurred");var r=l(t,n,s);return i(a,o,r)}function l(e,t,i){return{raven:o.result(window.Raven,"lastEventId"),userAgent:navigator.userAgent,onLine:navigator.onLine,version:o.result(Galaxy.config,"version_major"),xhr:o.omit(t,o.functions(t)),options:o.omit(i,"xhr"),url:o.result(Galaxy.lastAjax,"url"),data:o.result(Galaxy.lastAjax,"data"),model:o.result(e,"toJSON",e+""),user:o.omit(o.result(Galaxy.user,"toJSON"),"email")}}var c=e("Please contact a Galaxy administrator if the problem persists."),d=e("An error occurred while updating information with the server."),h=e("The following information can assist the developers in finding the source of the error:");return{errorModal:i,offlineErrorModal:n,badGatewayErrorModal:s,ajaxErrorModal:r}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(1),i(2))},,,function(e,t,i){var n,s,a;(function(i,o){!function(i){s=[],n=i,a="function"==typeof n?n.apply(t,s):n,!(void 0!==a&&(e.exports=a))}(function(){i.fn.extend({hoverhighlight:function(e,t){return e=e||"body",this.length?(o(this).each(function(){var i=o(this),n=i.data("target");n&&i.mouseover(function(i){o(n,e).css({background:t})}).mouseout(function(e){o(n).css({background:""})})}),this):this}})})}).call(t,i(1),i(1))},function(e,t,i){var n,s,a;(function(i,o){!function(i){s=[],n=i,a="function"==typeof n?n.apply(t,s):n,!(void 0!==a&&(e.exports=a))}(function(){function e(e,n){function s(e){var t=i(this).parent().children("input");t.val("").trigger("searchInput.clear").blur(),n.onclear()}function a(e,t){return t?(i(this).trigger("search.search",t),void("function"==typeof n.onfirstsearch&&g?(g=!1,n.onfirstsearch(t)):n.onsearch(t))):s()}function r(){return[' "].join("")}function l(){return i(r()).focus(function(e){i(this).select()}).keyup(function(e){if(e.preventDefault(),e.stopPropagation(),e.which===u&&n.escWillClear)s.call(this,e);else{var t=i(this).val();(e.which===p||n.minSearchLen&&t.length>=n.minSearchLen)&&a.call(this,e,t)}}).val(n.initialVal)}function c(){return i([' '].join("")).tooltip({placement:"bottom"}).click(function(e){s.call(this,e)})}function d(){return i([' '].join("")).hide().tooltip({placement:"bottom"})}function h(){f.find(".search-loading").toggle(),f.find(".search-clear").toggle()}var u=27,p=13,f=i(e),g=!0,m={initialVal:"",name:"search",placeholder:"search",classes:"",onclear:function(){},onfirstsearch:null,onsearch:function(e){},minSearchLen:0,escWillClear:!0,oninit:function(){}};return"string"===o.type(n)?("toggle-loading"===n&&h(),f):("object"===o.type(n)&&(n=o.extend(!0,{},m,n)),f.addClass("search-input").prepend([l(),c(),d()]))}var t=window._l||function(e){return e};o.fn.extend({searchInput:function(t){return this.each(function(){return e(this,t)})}})})}).call(t,i(1),i(1))},,function(e,t,i){var n,s;n=[],s=function(){function e(e,t){var i=/(-?[0-9\.]+)/g,n=e.toString().toLowerCase()||"",s=t.toString().toLowerCase()||"",a=String.fromCharCode(0),o=n.replace(i,a+"$1"+a).split(a),r=s.replace(i,a+"$1"+a).split(a),l=new Date(n).getTime(),c=l?new Date(s).getTime():null;if(c){if(lc)return 1}for(var d,h,u=0,p=Math.max(o.length,r.length);uh)return 1}return 0}return e}.apply(t,n),!(void 0!==s&&(e.exports=s))},,,function(e,t,i){(function(t){var n=i(7),s=i(127);CurrentHistoryView=i(124).CurrentHistoryView,_l=i(5);var a=t.View.extend({initialize:function(e,i){var s=this;this.userIsAnonymous=Galaxy.user.isAnonymous(),this.allow_user_dataset_purge=i.config.allow_user_dataset_purge,this.root=i.root,this.historyView=new CurrentHistoryView({className:CurrentHistoryView.prototype.className+" middle",purgeAllowed:this.allow_user_dataset_purge,linkTarget:"galaxy_main"}),Galaxy.currHistoryPanel=this.historyView,Galaxy.currHistoryPanel.listenToGalaxy(Galaxy),this.buttonRefresh=new n.ButtonLink({id:"history-refresh-button",title:"Refresh history",cls:"panel-header-button",icon:"fa fa-refresh",onclick:function(){s.historyView.loadCurrentHistory()}}),this.buttonOptions=new n.ButtonLink({id:"history-options-button",title:"History options",cls:"panel-header-button",target:"galaxy_main",icon:"fa fa-cog",href:this.root+"root/history_options"}),this.buttonViewMulti=new n.ButtonLink({id:"history-view-multi-button",title:"View all histories",cls:"panel-header-button",icon:"fa fa-columns",href:this.root+"history/view_multiple"}),this.model=new t.Model({cls:"history-right-panel",title:_l("History"),buttons:[this.buttonRefresh,this.buttonOptions,this.buttonViewMulti]}),this.setElement(this._template()),this.historyView.setElement(this.$el),this.historyView.connectToQuotaMeter(Galaxy.quotaMeter),this.historyView.loadCurrentHistory(),Galaxy.listenTo(this.historyView,"history-size-change",function(){Galaxy.user.fetch({url:Galaxy.user.urlRoot()+"/"+(Galaxy.user.id||"current")})})},render:function(){this.optionsMenu=s(this.buttonOptions.$el,{anonymous:this.userIsAnonymous,purgeAllowed:this.allow_user_dataset_purge,root:this.root}),this.buttonViewMulti.$el[this.userIsAnonymous?"hide":"show"]()},_template:function(e){return['
'].join("")},toString:function(){return"historyPanel"}});e.exports=a}).call(t,i(3))},function(e,t,i){(function(t,n){var s=i(56),a=i(136),o=i(5),r=(i(88),t.View.extend({initialize:function(e,i){var n=i.config;this.root=i.root,this.stored_workflow_menu_entries=n.stored_workflow_menu_entries||[];var r=new s.ToolSearch({hidden:!1}),l=new s.ToolCollection(n.toolbox);this.tool_panel=new s.ToolPanel({tool_search:r,tools:l,layout:n.toolbox_in_panel}),this.tool_panel_view=new s.ToolPanelView({model:this.tool_panel}),this.upload_button=new a({nginx_upload_path:n.nginx_upload_path,ftp_upload_site:n.ftp_upload_site,default_genome:n.default_genome,default_extension:n.default_extension}),Galaxy.upload=this.upload_button,this.model=new t.Model({title:o("Tools"),buttons:[this.upload_button]}),this.setElement(this._template())},render:function(){var e=this;this.tool_panel.get("layout").size()>0&&(this.$el.prepend(this.tool_panel_view.$el),this.tool_panel_view.render()),e.$("#internal-workflows").append(e._templateAllWorkflow({title:o("All workflows"),href:"workflow"})),n.each(this.stored_workflow_menu_entries,function(t){e.$("#internal-workflows").append(e._templateWorkflowLink({title:t.stored_workflow.name,href:"workflow/run?id="+t.encoded_stored_workflow_id}))})},_templateTool:function(e){return['"].join("")},_templateAllWorkflow:function(e){return['"].join("")},_templateWorkflowLink:function(e){return['"].join("")},_template:function(){return['"].join("")},toString:function(){return"toolPanel"}}));e.exports=r}).call(t,i(3),i(2))},,,,,,,,,,,,,,,,,function(e,t,i){var n,s;(function(a,o){n=[i(40),i(80),i(6),i(5)],s=function(e,t,i,n){"use strict";var s=e.DCListItemView,r=s.extend({initialize:function(e){s.prototype.initialize.call(this,e)},toString:function(){var e=this.model?this.model+"":"(no model)";return"DCListItemEdit("+e+")"}}),l=e.DCEListItemView,c=l.extend({initialize:function(e){l.prototype.initialize.call(this,e)},toString:function(){var e=this.model?this.model+"":"(no model)";return"DCEListItemEdit("+e+")"}}),d=t.DatasetListItemEdit.extend({initialize:function(e){t.DatasetListItemEdit.prototype.initialize.call(this,e)},_fetchModelDetails:function(){var e=this;return e.model.inReadyState()&&!e.model.hasDetails()?e.model.fetch({silent:!0}):a.when()},_renderDeleteButton:function(){return null},toString:function(){var e=this.model?this.model+"":"(no model)";return"DatasetDCEListItemEdit("+e+")"}});d.prototype.templates=function(){return o.extend({},t.DatasetListItemEdit.prototype.templates,{titleBar:e.DatasetDCEListItemView.prototype.templates.titleBar})}();var h=e.NestedDCDCEListItemView.extend({toString:function(){var e=this.model?this.model+"":"(no model)";return"NestedDCDCEListItemEdit("+e+")"}});return{DCListItemEdit:r,DCEListItemEdit:c,DatasetDCEListItemEdit:d,NestedDCDCEListItemEdit:h}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(1),i(2))},function(e,t,i){var n,s;n=[i(79),i(41),i(117),i(6),i(55),i(19),i(5),i(18)],s=function(e,t,i,n,s,a,o){"use strict";var r=e.CollectionView,l=r.extend({DatasetDCEViewClass:i.DatasetDCEListItemEdit,NestedDCDCEViewClass:i.NestedDCDCEListItemEdit,initialize:function(e){r.prototype.initialize.call(this,e)},_setUpBehaviors:function(e){if(e=e||this.$el,r.prototype._setUpBehaviors.call(this,e),this.model&&Galaxy.user&&!Galaxy.user.isAnonymous()){this.tagsEditorShown=!0;var t=this,i="> .controls .name";e.find(i).attr("title",o("Click to rename collection")).tooltip({placement:"bottom"}).make_text_editable({on_finish:function(e){var n=t.model.get("name");e&&e!==n?(t.$el.find(i).text(e),t.model.save({name:e}).fail(function(){t.$el.find(i).text(t.model.previous("name"))})):t.$el.find(i).text(n)}}),this.tagsEditor=new s.TagsEditor({model:this.model,el:e.find(".tags-display"),onshowFirstTime:function(){this.render()},usePrompt:!1}),this.tagsEditor.toggle(!0)}},toString:function(){return"CollectionViewEdit("+(this.model?this.model.get("name"):"")+")"}}),c=l.extend({DatasetDCEViewClass:i.DatasetDCEListItemEdit,toString:function(){return"ListCollectionViewEdit("+(this.model?this.model.get("name"):"")+")"}}),d=c.extend({toString:function(){return"PairCollectionViewEdit("+(this.model?this.model.get("name"):"")+")"}}),h=d.extend({_setUpBehaviors:function(e){r.prototype._setUpBehaviors.call(this,e)},toString:function(){return"NestedPairCollectionViewEdit("+(this.model?this.model.get("name"):"")+")"}}),u=l.extend({NestedDCDCEViewClass:i.NestedDCDCEListItemEdit.extend({foldoutPanelClass:h}),toString:function(){return"ListOfPairsCollectionViewEdit("+(this.model?this.model.get("name"):"")+")"}}),p=l.extend({NestedDCDCEViewClass:i.NestedDCDCEListItemEdit.extend({foldoutPanelClass:h}),toString:function(){return"ListOfListsCollectionViewEdit("+(this.model?this.model.get("name"):"")+")"}});return{CollectionViewEdit:l,ListCollectionViewEdit:c,PairCollectionViewEdit:d,ListOfPairsCollectionViewEdit:u,ListOfListsCollectionViewEdit:p}}.apply(t,n),!(void 0!==s&&(e.exports=s))},function(e,t,i){var n,s;(function(a,o,r,l){n=[i(149),i(96),i(78),i(6),i(5),i(93)],s=function(e,t,i,n,s){"use strict";function c(e){function t(){return i.length||(i=[new RegExp(this.filters[0]),new RegExp(this.filters[1])]),i}e=e||{},e.createPair=e.createPair||function(e){e=e||{};var t=e.listA.splice(e.indexA,1)[0],i=e.listB.splice(e.indexB,1)[0],n=e.listB.indexOf(t),s=e.listA.indexOf(i);return n!==-1&&e.listB.splice(n,1),s!==-1&&e.listA.splice(s,1),this._pair(t,i,{silent:!0})};var i=[];return e.preprocessMatch=e.preprocessMatch||function(e){var i=t.call(this);return o.extend(e,{matchTo:e.matchTo.name.replace(i[0],""),possible:e.possible.name.replace(i[1],"")})},function(t){this.debug("autopair _strategy ---------------------------"),t=t||{};var i,n=t.listA,s=t.listB,a=0,o={score:0,index:null},r=[];for(this.debug("starting list lens:",n.length,s.length),this.debug("bestMatch (starting):",JSON.stringify(o,null," "));a=d?r.push(e.createPair.call(this,{listA:n,indexA:a,listB:s,indexB:o.index})):a+=1,!n.length||!s.length)return r}return this.debug("paired:",JSON.stringify(r,null," ")),this.debug("autopair _strategy ---------------------------"),r}}function d(e,t){var i=e.toJSON();return f(i,{historyId:e.historyId,defaultHideSourceItems:t})}var h="collections",u=a.View.extend(n.LoggableMixin).extend({_logNamespace:h,tagName:"li",className:"dataset paired",initialize:function(e){this.pair=e.pair||{}},template:o.template(['<%- pair.forward.name %> ','','<%- pair.name %> '," ",'<%- pair.reverse.name %> '].join("")),render:function(){return this.$el.attr("draggable",!0).data("pair",this.pair).html(this.template({pair:this.pair})).addClass("flex-column-container"),this},events:{dragstart:"_dragstart",dragend:"_dragend",dragover:"_sendToParent",drop:"_sendToParent"},_dragstart:function(e){e.currentTarget.style.opacity="0.4",e.originalEvent&&(e=e.originalEvent),e.dataTransfer.effectAllowed="move",e.dataTransfer.setData("text/plain",JSON.stringify(this.pair)),this.$el.parent().trigger("pair.dragstart",[this])},_dragend:function(e){e.currentTarget.style.opacity="1.0",this.$el.parent().trigger("pair.dragend",[this])},_sendToParent:function(e){this.$el.parent().trigger(e)},toString:function(){return"PairView("+this.pair.name+")"}}),p=a.View.extend(n.LoggableMixin).extend(i.CollectionCreatorMixin).extend({_logNamespace:h,className:"list-of-pairs-collection-creator collection-creator flex-row-container",initialize:function(e){this.metric("PairedCollectionCreator.initialize",e),e=o.defaults(e,{datasets:[],filters:this.DEFAULT_FILTERS,automaticallyPair:!0,strategy:"lcs",matchPercentage:.9,twoPassAutopairing:!0}),this.initialList=e.datasets,this.historyId=e.historyId,this.filters=this.commonFilters[e.filters]||this.commonFilters[this.DEFAULT_FILTERS],o.isArray(e.filters)&&(this.filters=e.filters),this.automaticallyPair=e.automaticallyPair,this.strategy=this.strategies[e.strategy]||this.strategies[this.DEFAULT_STRATEGY],o.isFunction(e.strategy)&&(this.strategy=e.strategy),this.matchPercentage=e.matchPercentage,this.twoPassAutopairing=e.twoPassAutopairing,this.removeExtensions=!0,this.oncancel=e.oncancel,this.oncreate=e.oncreate,this.autoscrollDist=e.autoscrollDist||24,this.unpairedPanelHidden=!1,this.pairedPanelHidden=!1,this.$dragging=null,this.blocking=!1,this._setUpCommonSettings(e),this._setUpBehaviors(),this._dataSetUp()},commonFilters:{illumina:["_1","_2"],Rs:["_R1","_R2"]},DEFAULT_FILTERS:"illumina",strategies:{simple:"autopairSimple",lcs:"autopairLCS",levenshtein:"autopairLevenshtein"},DEFAULT_STRATEGY:"lcs",_dataSetUp:function(){this.paired=[],this.unpaired=[],this.selectedIds=[],this._sortInitialList(),this._ensureIds(),this.unpaired=this.initialList.slice(0),this.automaticallyPair&&(this.autoPair(),this.once("rendered:initial",function(){this.trigger("autopair")}))},_sortInitialList:function(){this._sortDatasetList(this.initialList)},_sortDatasetList:function(e){return e.sort(function(e,i){return t(e.name,i.name)}),e},_ensureIds:function(){return this.initialList.forEach(function(e){e.hasOwnProperty("id")||(e.id=o.uniqueId())}),this.initialList},_splitByFilters:function(){function e(e,t){return t.test(e.name)}var t=this.filters.map(function(e){return new RegExp(e)}),i=[[],[]];return this.unpaired.forEach(function(n){t.forEach(function(t,s){e(n,t)&&i[s].push(n)})}),i},_addToUnpaired:function(e){var i=function(n,s){if(n===s)return n;var a=Math.floor((s-n)/2)+n,o=t(e.name,this.unpaired[a].name);if(o<0)return i(n,a);if(o>0)return i(a+1,s);for(;this.unpaired[a]&&this.unpaired[a].name===e.name;)a++;return a}.bind(this);this.unpaired.splice(i(0,this.unpaired.length),0,e)},autoPair:function(e){var t=this._splitByFilters(),i=[];return this.twoPassAutopairing&&(i=this.autopairSimple({listA:t[0],listB:t[1]}),t=this._splitByFilters()),e=e||this.strategy,t=this._splitByFilters(),i=i.concat(this[e].call(this,{listA:t[0],listB:t[1]}))},autopairSimple:c({scoreThreshold:function(){return 1},match:function(e){return e=e||{},e.matchTo===e.possible?{index:e.index,score:1}:e.bestMatch}}),autopairLevenshtein:c({scoreThreshold:function(){return this.matchPercentage},match:function(t){t=t||{};var i=e(t.matchTo,t.possible),n=1-i/Math.max(t.matchTo.length,t.possible.length);return n>t.bestMatch.score?{index:t.index,score:n}:t.bestMatch}}),autopairLCS:c({scoreThreshold:function(){return this.matchPercentage},match:function(e){e=e||{};var t=this._naiveStartingAndEndingLCS(e.matchTo,e.possible).length,i=t/Math.max(e.matchTo.length,e.possible.length);return i>e.bestMatch.score?{index:e.index,score:i}:e.bestMatch}}),_naiveStartingAndEndingLCS:function(e,t){for(var i="",n="",s=0,a=0;s=0&&a>=0&&e[s]===t[a];)n=[e[s],n].join(""),s-=1,a-=1;return i+n},_pair:function(e,t,i){i=i||{},this.debug("_pair:",e,t);var n=this._createPair(e,t,i.name);return this.paired.push(n),this.unpaired=o.without(this.unpaired,e,t),i.silent||this.trigger("pair:new",n),n},_createPair:function(e,t,i){if(!e||!t||e===t)throw new Error("Bad pairing: "+[JSON.stringify(e),JSON.stringify(t)]);return i=i||this._guessNameForPair(e,t),{forward:e,name:i,reverse:t}},_guessNameForPair:function(e,t,i){i=void 0!==i?i:this.removeExtensions;var n=e.name,s=t.name,a=this._naiveStartingAndEndingLCS(n.replace(new RegExp(this.filters[0]),""),s.replace(new RegExp(this.filters[1]),""));if(i){var o=a.lastIndexOf(".");if(o>0){var r=a.slice(o,a.length);a=a.replace(r,""),n=n.replace(r,""),s=s.replace(r,"")}}return a||n+" & "+s},_unpair:function(e,t){if(t=t||{},!e)throw new Error("Bad pair: "+JSON.stringify(e));return this.paired=o.without(this.paired,e),this._addToUnpaired(e.forward),this._addToUnpaired(e.reverse),t.silent||this.trigger("pair:unpair",[e]),e},unpairAll:function(){for(var e=[];this.paired.length;)e.push(this._unpair(this.paired[0],{silent:!0}));this.trigger("pair:unpair",e)},_pairToJSON:function(e,t){return t=t||"hda",{collection_type:"paired",src:"new_collection",name:e.name,element_identifiers:[{name:"forward",id:e.forward.id,src:t},{name:"reverse",id:e.reverse.id,src:t}]}},createList:function(e){var t=this,i=Galaxy.root+"api/histories/"+this.historyId+"/contents/dataset_collections",n={type:"dataset_collection",collection_type:"list:paired",hide_source_items:t.hideOriginals||!1,name:o.escape(e||t.$(".collection-name").val()),element_identifiers:t.paired.map(function(e){return t._pairToJSON(e)})};return t.blocking=!0,r.ajax(i,{type:"POST",contentType:"application/json",dataType:"json",data:JSON.stringify(n)}).always(function(){t.blocking=!1}).fail(function(e,i,n){t._ajaxErrHandler(e,i,n)}).done(function(e,i,n){t.trigger("collection:created",e,i,n),t.metric("collection:created",e),"function"==typeof t.oncreate&&t.oncreate.call(this,e,i,n)})},_ajaxErrHandler:function(e,t,i){this.error(e,t,i);var n=s("An error occurred while creating this collection");e&&(n+=0===e.readyState&&0===e.status?": "+s("Galaxy could not be reached and may be updating.")+s(" Try again in a few minutes."):e.responseJSON?""+JSON.stringify(e.responseJSON)+" ":": "+i),creator._showAlert(n,"alert-danger")},render:function(e,t){return this.$el.empty().html(this.templates.main()),this._renderHeader(e),this._renderMiddle(e),this._renderFooter(e),this._addPluginComponents(),this.trigger("rendered",this),this},_renderHeader:function(e,t){var i=this.$(".header").empty().html(this.templates.header()).find(".help-content").prepend(l(this.templates.helpContent()));return this._renderFilters(),i},_renderFilters:function(){return this.$(".forward-column .column-header input").val(this.filters[0]).add(this.$(".reverse-column .column-header input").val(this.filters[1]))},_renderMiddle:function(e,t){var i=this.$(".middle").empty().html(this.templates.middle());return this.unpairedPanelHidden?this.$(".unpaired-columns").hide():this.pairedPanelHidden&&this.$(".paired-columns").hide(),this._renderUnpaired(),this._renderPaired(),i},_renderUnpaired:function(e,t){var i,n,a=this,o=[],r=this._splitByFilters();return this.$(".forward-column .title").text([r[0].length,s("unpaired forward")].join(" ")),this.$(".forward-column .unpaired-info").text(this._renderUnpairedDisplayStr(this.unpaired.length-r[0].length)),this.$(".reverse-column .title").text([r[1].length,s("unpaired reverse")].join(" ")),this.$(".reverse-column .unpaired-info").text(this._renderUnpairedDisplayStr(this.unpaired.length-r[1].length)),this.$(".unpaired-columns .column-datasets").empty(),this.$(".autopair-link").toggle(0!==this.unpaired.length),0===this.unpaired.length?void this._renderUnpairedEmpty():(n=r[1].map(function(e,t){return void 0!==r[0][t]&&r[0][t]!==e&&o.push(a._renderPairButton()),a._renderUnpairedDataset(e)}),i=r[0].map(function(e){return a._renderUnpairedDataset(e)}),i.length||n.length?(this.$(".unpaired-columns .forward-column .column-datasets").append(i).add(this.$(".unpaired-columns .paired-column .column-datasets").append(o)).add(this.$(".unpaired-columns .reverse-column .column-datasets").append(n)),void this._adjUnpairedOnScrollbar()):void this._renderUnpairedNotShown())},_renderUnpairedDisplayStr:function(e){return["(",e," ",s("filtered out"),")"].join("")},_renderUnpairedDataset:function(e){return l(" ").attr("id","dataset-"+e.id).addClass("dataset unpaired").attr("draggable",!0).addClass(e.selected?"selected":"").append(l(" ").addClass("dataset-name").text(e.name)).data("dataset",e)},_renderPairButton:function(){return l(" ").addClass("dataset unpaired").append(l(" ").addClass("dataset-name").text(s("Pair these datasets")))},_renderUnpairedEmpty:function(){var e=l('
').text("("+s("no remaining unpaired datasets")+")");return this.$(".unpaired-columns .paired-column .column-datasets").empty().prepend(e),e},_renderUnpairedNotShown:function(){var e=l('
').text("("+s("no datasets were found matching the current filters")+")");return this.$(".unpaired-columns .paired-column .column-datasets").empty().prepend(e),e},_adjUnpairedOnScrollbar:function(){var e=this.$(".unpaired-columns").last(),t=this.$(".unpaired-columns .reverse-column .dataset").first();if(t.length){var i=e.offset().left+e.outerWidth(),n=t.offset().left+t.outerWidth(),s=Math.floor(i)-Math.floor(n);this.$(".unpaired-columns .forward-column").css("margin-left",s>0?s:0)}},_renderPaired:function(e,t){if(this.$(".paired-column-title .title").text([this.paired.length,s("paired")].join(" ")),this.$(".unpair-all-link").toggle(0!==this.paired.length),0===this.paired.length)return void this._renderPairedEmpty();this.$(".remove-extensions-link").show(),this.$(".paired-columns .column-datasets").empty();var i=this;this.paired.forEach(function(e,t){var n=new u({pair:e});i.$(".paired-columns .column-datasets").append(n.render().$el).append(['',' '," "].join(""))})},_renderPairedEmpty:function(){var e=l('
').text("("+s("no paired datasets yet")+")");return this.$(".paired-columns .column-datasets").empty().prepend(e),e},footerSettings:{".hide-originals":"hideOriginals",".remove-extensions":"removeExtensions"},_addPluginComponents:function(){this._chooseFiltersPopover(".choose-filters-link"),this.$(".help-content i").hoverhighlight(".collection-creator","rgba( 64, 255, 255, 1.0 )")},_chooseFiltersPopover:function(e){function t(e,t){return['',s("Forward"),": ",e,", ",s("Reverse"),": ",t," "].join("")}var i=l(o.template(['','
',s("Choose from the following filters to change which unpaired reads are shown in the display"),":
",o.values(this.commonFilters).map(function(e){return t(e[0],e[1])}).join(""),"
"].join(""))({}));return this.$(e).popover({container:".collection-creator",placement:"bottom",html:!0,content:i})},_validationWarning:function(e,t){var i="validation-warning";"name"===e&&(e=this.$(".collection-name").add(this.$(".collection-name-prompt")),this.$(".collection-name").focus().select()),t?(e=e||this.$("."+i),e.removeClass(i)):e.addClass(i)},_setUpBehaviors:function(){return this.once("rendered",function(){this.trigger("rendered:initial",this)}),this.on("pair:new",function(){
+this._renderUnpaired(),this._renderPaired(),this.$(".paired-columns").scrollTop(8e6)}),this.on("pair:unpair",function(e){this._renderUnpaired(),this._renderPaired(),this.splitView()}),this.on("filter-change",function(){this.filters=[this.$(".forward-unpaired-filter input").val(),this.$(".reverse-unpaired-filter input").val()],this.metric("filter-change",this.filters),this._renderFilters(),this._renderUnpaired()}),this.on("autopair",function(){this._renderUnpaired(),this._renderPaired();var e,t=null;this.paired.length?(t="alert-success",e=this.paired.length+" "+s("pairs created"),this.unpaired.length||(e+=": "+s("all datasets have been successfully paired"),this.hideUnpaired(),this.$(".collection-name").focus())):e=s(["Could not automatically create any pairs from the given dataset names.","You may want to choose or enter different filters and try auto-pairing again.","Close this message using the X on the right to view more help."].join(" ")),this._showAlert(e,t)}),this},events:{"click .more-help":"_clickMoreHelp","click .less-help":"_clickLessHelp","click .main-help":"_toggleHelp","click .header .alert button":"_hideAlert","click .forward-column .column-title":"_clickShowOnlyUnpaired","click .reverse-column .column-title":"_clickShowOnlyUnpaired","click .unpair-all-link":"_clickUnpairAll","change .forward-unpaired-filter input":function(e){this.trigger("filter-change")},"focus .forward-unpaired-filter input":function(e){l(e.currentTarget).select()},"click .autopair-link":"_clickAutopair","click .choose-filters .filter-choice":"_clickFilterChoice","click .clear-filters-link":"_clearFilters","change .reverse-unpaired-filter input":function(e){this.trigger("filter-change")},"focus .reverse-unpaired-filter input":function(e){l(e.currentTarget).select()},"click .forward-column .dataset.unpaired":"_clickUnpairedDataset","click .reverse-column .dataset.unpaired":"_clickUnpairedDataset","click .paired-column .dataset.unpaired":"_clickPairRow","click .unpaired-columns":"clearSelectedUnpaired","mousedown .unpaired-columns .dataset":"_mousedownUnpaired","click .paired-column-title":"_clickShowOnlyPaired","mousedown .flexible-partition-drag":"_startPartitionDrag","click .paired-columns .dataset.paired":"selectPair","click .paired-columns":"clearSelectedPaired","click .paired-columns .pair-name":"_clickPairName","click .unpair-btn":"_clickUnpair","dragover .paired-columns .column-datasets":"_dragoverPairedColumns","drop .paired-columns .column-datasets":"_dropPairedColumns","pair.dragstart .paired-columns .column-datasets":"_pairDragstart","pair.dragend .paired-columns .column-datasets":"_pairDragend","change .remove-extensions":function(e){this.toggleExtensions()},"change .collection-name":"_changeName","keydown .collection-name":"_nameCheckForEnter","change .hide-originals":"_changeHideOriginals","click .cancel-create":"_cancelCreate","click .create-collection":"_clickCreate"},_clickShowOnlyUnpaired:function(e){this.$(".paired-columns").is(":visible")?this.hidePaired():this.splitView()},_clickShowOnlyPaired:function(e){this.$(".unpaired-columns").is(":visible")?this.hideUnpaired():this.splitView()},hideUnpaired:function(e,t){this.unpairedPanelHidden=!0,this.pairedPanelHidden=!1,this._renderMiddle(e,t)},hidePaired:function(e,t){this.unpairedPanelHidden=!1,this.pairedPanelHidden=!0,this._renderMiddle(e,t)},splitView:function(e,t){return this.unpairedPanelHidden=this.pairedPanelHidden=!1,this._renderMiddle(e,t),this},_clickUnpairAll:function(e){this.metric("unpairAll"),this.unpairAll()},_clickAutopair:function(e){var t=this.autoPair();this.metric("autopair",t.length,this.unpaired.length),this.trigger("autopair")},_clickFilterChoice:function(e){var t=l(e.currentTarget);this.$(".forward-unpaired-filter input").val(t.data("forward")),this.$(".reverse-unpaired-filter input").val(t.data("reverse")),this._hideChooseFilters(),this.trigger("filter-change")},_hideChooseFilters:function(){this.$(".choose-filters-link").popover("hide"),this.$(".popover").css("display","none")},_clearFilters:function(e){this.$(".forward-unpaired-filter input").val(""),this.$(".reverse-unpaired-filter input").val(""),this.trigger("filter-change")},_clickUnpairedDataset:function(e){return e.stopPropagation(),this.toggleSelectUnpaired(l(e.currentTarget))},toggleSelectUnpaired:function(e,t){t=t||{};var i=e.data("dataset"),n=void 0!==t.force?t.force:!e.hasClass("selected");return e.length&&void 0!==i?(n?(e.addClass("selected"),t.waitToPair||this.pairAllSelected()):e.removeClass("selected"),e):e},pairAllSelected:function(e){e=e||{};var t=this,i=[],n=[],s=[];return t.$(".unpaired-columns .forward-column .dataset.selected").each(function(){i.push(l(this).data("dataset"))}),t.$(".unpaired-columns .reverse-column .dataset.selected").each(function(){n.push(l(this).data("dataset"))}),i.length=n.length=Math.min(i.length,n.length),i.forEach(function(e,i){try{s.push(t._pair(e,n[i],{silent:!0}))}catch(e){t.error(e)}}),s.length&&!e.silent&&this.trigger("pair:new",s),s},clearSelectedUnpaired:function(){this.$(".unpaired-columns .dataset.selected").removeClass("selected")},_mousedownUnpaired:function(e){if(e.shiftKey){var t=this,i=l(e.target).addClass("selected"),n=function(e){t.$(e.target).filter(".dataset").addClass("selected")};i.parent().on("mousemove",n),l(document).one("mouseup",function(e){i.parent().off("mousemove",n),t.pairAllSelected()})}},_clickPairRow:function(e){var t=l(e.currentTarget).index(),i=l(".unpaired-columns .forward-column .dataset").eq(t).data("dataset"),n=l(".unpaired-columns .reverse-column .dataset").eq(t).data("dataset");this._pair(i,n)},_startPartitionDrag:function(e){function t(e){n.$(".flexible-partition-drag").css("color",""),l("body").css("cursor","").unbind("mousemove",i)}function i(e){var t=e.pageY-s;n.adjPartition(t)||l("body").trigger("mouseup"),n._adjUnpairedOnScrollbar(),s+=t}var n=this,s=e.pageY;l("body").css("cursor","ns-resize"),n.$(".flexible-partition-drag").css("color","black"),l("body").mousemove(i),l("body").one("mouseup",t)},adjPartition:function(e){var t=this.$(".unpaired-columns"),i=this.$(".paired-columns"),n=parseInt(t.css("height"),10),s=parseInt(i.css("height"),10);n=Math.max(10,n+e),s-=e;var a=e<0;if(a){if(this.unpairedPanelHidden)return!1;if(n<=10)return this.hideUnpaired(),!1}else this.unpairedPanelHidden&&(t.show(),this.unpairedPanelHidden=!1);if(a)this.pairedPanelHidden&&(i.show(),this.pairedPanelHidden=!1);else{if(this.pairedPanelHidden)return!1;if(s<=15)return this.hidePaired(),!1}return t.css({height:n+"px",flex:"0 0 auto"}),!0},selectPair:function(e){e.stopPropagation(),l(e.currentTarget).toggleClass("selected")},clearSelectedPaired:function(e){this.$(".paired-columns .dataset.selected").removeClass("selected")},_clickPairName:function(e){e.stopPropagation();var t=l(e.currentTarget),i=t.parent().parent(),n=i.index(".dataset.paired"),s=this.paired[n],a=prompt("Enter a new name for the pair:",s.name);a&&(s.name=a,s.customizedName=!0,t.text(s.name))},_clickUnpair:function(e){var t=Math.floor(l(e.currentTarget).index(".unpair-btn"));this._unpair(this.paired[t])},_dragoverPairedColumns:function(e){e.preventDefault();var t=this.$(".paired-columns .column-datasets");this._checkForAutoscroll(t,e.originalEvent.clientY);var i=this._getNearestPairedDatasetLi(e.originalEvent.clientY);l(".element-drop-placeholder").remove();var n=l('
');i.length?i.before(n):t.append(n)},_checkForAutoscroll:function(e,t){var i=2,n=e.offset(),s=e.scrollTop(),a=t-n.top,o=n.top+e.outerHeight()-t;a>=0&&a=0&&oe&&a-o",e.name)},toString:function(){return"PairedCollectionCreator"},templates:o.extend({},i.CollectionCreatorMixin._creatorTemplates,{header:o.template(['",'','× ',' ',"
",'','
','
','
','',s("Unpaired forward")," ",' ',"
",'
',' ',"
","
","
",'
','
','
',s("Choose filters")," ",'
',s("Clear filters")," ",'
',s("Auto-pair")," ","
","
",'
','
','
','',s("Unpaired reverse")," ",' ',"
",'
',' ',"
","
","
","
"].join("")),middle:o.template(['",'",'"].join("")),footer:o.template(['','
','',s("Hide original elements"),"?",' '," ",'',s("Remove file extensions from pair names"),"?",' '," ","
",'
","
",'','
','
',s("Cancel")," ",'
','',s("Create a different kind of collection"),' '," ",'","
","
",'
','',s("Create list")," ","
","
"].join("")),helpContent:o.template(["",s(["Collections of paired datasets are ordered lists of dataset pairs (often forward and reverse reads). ","These collections can be passed to tools and workflows in order to have analyses done on each member of ","the entire group. This interface allows you to create a collection, choose which datasets are paired, ","and re-order the final collection."].join("")),"
","",s(['Unpaired datasets are shown in the unpaired section ',"(hover over the underlined words to highlight below). ",'Paired datasets are shown in the paired section .',"
To pair datasets, you can:","Click a dataset in the ",'forward column ',"to select it then click a dataset in the ",'reverse column .'," ",'Click one of the "Pair these datasets" buttons in the ','middle column ',"to pair the datasets in a particular row."," ",'Click "Auto-pair" ',"to have your datasets automatically paired based on name."," "," "].join("")),"","",s(["
You can filter what is shown in the unpaired sections by:","Entering partial dataset names in either the ",'forward filter or ','reverse filter .'," ","Choosing from a list of preset filters by clicking the ",'"Choose filters" link .'," ","Entering regular expressions to match dataset names. See: ",'MDN\'s JavaScript Regular Expression Tutorial . ',"Note: forward slashes (\\) are not needed."," ","Clearing the filters by clicking the ",'"Clear filters" link .'," "," "].join("")),"","",s(["To unpair individual dataset pairs, click the ",'unpair buttons ( ) . ','Click the "Unpair all" link to unpair all pairs.'].join("")),"
","",s(['You can include or remove the file extensions (e.g. ".fastq") from your pair names by toggling the ','"Remove file extensions from pair names?" control.'].join("")),"
","",s(['Once your collection is complete, enter a name and ','click "Create list" . ',"(Note: you do not have to pair all unpaired datasets to finish.)"].join("")),"
"].join(""))})}),f=function(e,t){var i,n=r.Deferred();if(t=o.defaults(t||{},{datasets:e,oncancel:function(){Galaxy.modal.hide(),n.reject("cancelled")},oncreate:function(e,t){Galaxy.modal.hide(),n.resolve(t)}}),!window.Galaxy||!Galaxy.modal)throw new Error("Galaxy or Galaxy.modal not found");return i=new p(t),Galaxy.modal.show({title:"Create a collection of paired datasets",body:i.$el,width:"80%",height:"800px",closing_events:!0}),i.render(),window.creator=i,n};return{PairedCollectionCreator:p,pairedCollectionCreatorModal:f,createListOfPairsCollection:d}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(2),i(1),i(1))},function(e,t,i){var n,s;(function(a,o,r){n=[i(42),i(50),i(6),i(5)],s=function(e,t,i,n){"use strict";function s(e,t){var i=e.toJSON(),n=u(i,{defaultHideSourceItems:t,creationFn:function(t,i,n){return t=[{name:"forward",src:"hda",id:t[0].id},{name:"reverse",src:"hda",id:t[1].id}],e.createHDCA(t,"paired",i,n)}});return n}var l="collections",c=a.View.extend(i.LoggableMixin).extend({_logNamespace:l,tagName:"li",className:"collection-element",initialize:function(e){this.element=e.element||{},this.identifier=e.identifier},render:function(){return this.$el.attr("data-element-id",this.element.id).html(this.template({identifier:this.identifier,element:this.element})),this},template:o.template(['<%- identifier %> ','<%- element.name %> '].join("")),destroy:function(){this.off(),this.$el.remove()},toString:function(){return"DatasetCollectionElementView()"}}),d=e.ListCollectionCreator,h=d.extend({elementViewClass:c,collectionClass:t.HistoryPairDatasetCollection,className:"pair-collection-creator collection-creator flex-row-container",_mangleDuplicateNames:function(){},render:function(e,t){return 2===this.workingElements.length?d.prototype.render.call(this,e,t):this._renderInvalid(e,t)},_renderList:function(e,t){var i=this,n=r("
"),s=i.$list();o.each(this.elementViews,function(e){e.destroy(),i.removeElementView(e)}),n.append(i._createForwardElementView().$el),n.append(i._createReverseElementView().$el),s.empty().append(n.children()),o.invoke(i.elementViews,"render")},_createForwardElementView:function(){return this._createElementView(this.workingElements[0],{identifier:"forward"})},_createReverseElementView:function(){return this._createElementView(this.workingElements[1],{identifier:"reverse"})},_createElementView:function(e,t){var i=new this.elementViewClass(o.extend(t,{element:e}));return this.elementViews.push(i),i},swap:function(){this.workingElements=[this.workingElements[1],this.workingElements[0]],this._renderList()},events:o.extend(o.clone(d.prototype.events),{"click .swap":"swap"}),templates:o.extend(o.clone(d.prototype.templates),{middle:o.template(['",'',"
"].join("")),helpContent:o.template(["",n(["Pair collections are permanent collections containing two datasets: one forward and one reverse. ","Often these are forward and reverse reads. The pair collections can be passed to tools and ","workflows in order to have analyses done on both datasets. This interface allows ","you to create a pair, name it, and swap which is forward and which reverse."].join("")),"
","","",n(['Click the "Swap" link to make your forward dataset the reverse ',"and the reverse dataset forward."].join(""))," ","",n(['Click the "Cancel" button to exit the interface.'].join(""))," "," ","",n(['Once your collection is complete, enter a name and ','click "Create list" .'].join("")),"
"].join("")),invalidInitial:o.template(['",'"].join(""))}),toString:function(){return"PairCollectionCreator"}}),u=function(t,i){return i=i||{},i.title=n("Create a collection from a pair of datasets"),e.collectionCreatorModal(t,i,h)};return{PairCollectionCreator:h,pairCollectionCreatorModal:u,createPairCollection:s}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(2),i(1))},function(e,t,i){var n,s;(function(a,o){n=[i(80),i(83),i(6),i(5)],s=function(e,t,i,n){"use strict";var s=e.DatasetListItemEdit,r=s.extend({className:s.prototype.className+" history-content",_fetchModelDetails:function(){var e=this;return e.model.inReadyState()&&!e.model.hasDetails()?e.model.fetch({silent:!0}):e.model.has("rerunnable")?a.when():e.model.fetch({silent:!0,data:{keys:["rerunnable","creating_job"].join(",")}})},events:o.extend(o.clone(s.prototype.events),{"click .unhide-link":function(e){return this.model.unhide(),!1}}),toString:function(){var e=this.model?this.model+"":"(no model)";return"HDAListItemEdit("+e+")"}});return r.prototype.templates=function(){var e=o.extend({},s.prototype.templates.warnings,{hidden:i.wrapTemplate(["<% if( !dataset.visible ){ %>",'","<% } %>"],"dataset")});return o.extend({},s.prototype.templates,{titleBar:t.HDAListItemView.prototype.templates.titleBar,warnings:e})}(),{HDAListItemEdit:r}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(1),i(2))},function(e,t,i){var n,s;n=[i(85),i(118),i(19),i(5)],s=function(e,t,i,n){"use strict";var s=e.HDCAListItemView,a=s.extend({_getFoldoutPanelClass:function(){switch(this.model.get("collection_type")){case"list":return t.ListCollectionViewEdit;case"paired":return t.PairCollectionViewEdit;case"list:paired":return t.ListOfPairsCollectionViewEdit;case"list:list":return t.ListOfListsCollectionViewEdit}throw new TypeError("Uknown collection_type: "+this.model.get("collection_type"))},_renderPrimaryActions:function(){return this.log(this+"._renderPrimaryActions"),s.prototype._renderPrimaryActions.call(this).concat([this._renderDeleteButton()])},_renderDeleteButton:function(){var e=this,t=this.model.get("deleted");return i({title:n(t?"Dataset collection is already deleted":"Delete"),classes:"delete-btn",faIcon:"fa-times",disabled:t,onclick:function(){e.$el.find(".icon-btn.delete-btn").trigger("mouseout"),e.model.delete()}})},toString:function(){var e=this.model?this.model+"":"(no model)";return"HDCAListItemEdit("+e+")"}});return{HDCAListItemEdit:a}}.apply(t,n),!(void 0!==s&&(e.exports=s))},function(e,t,i){var n,s;(function(a,o,r){n=[i(4),i(14),i(52),i(82)],s=function(e,t,i,n){var s=a.View.extend({initialize:function(t){var i=this;this.setElement(o("
")),this.model=new a.Model,e.get({url:Galaxy.root+"history/"+t.action_id,success:function(e){e.dict_format=!0,r.each(e.operations,function(e){"Copy"==e.label&&(e.onclick=function(e){i._showCopyDialog(e)})}),i.model.set(e),i.render()}})},render:function(){var e=new t(this.model.attributes);this.$el.empty().append(e.$el)},_showCopyDialog:function(e){var t=new i.History({id:e});t.fetch().fail(function(){alert("History could not be fetched. Please contact an administrator")}).done(function(){n(t,{}).done(function(){window.parent&&window.parent.Galaxy&&window.parent.Galaxy.currHistoryPanel&&window.parent.Galaxy.currHistoryPanel.loadCurrentHistory(),window.location.reload(!0)})})}});return{View:s}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1),i(2))},function(e,t,i){var n,s;(function(a,o,r){n=[i(52),i(125),i(6),i(5)],s=function(e,t,i,n){"use strict";var s=i.SessionStorageModel.extend({defaults:{tagsEditorShown:!1,annotationEditorShown:!1,scrollPosition:0},toString:function(){return"HistoryViewPrefs("+JSON.stringify(this.toJSON())+")"}});s.storageKey=function(){return"history-panel"};var l=t.HistoryViewEdit,c=l.extend({className:l.prototype.className+" current-history-panel",HDCAViewClass:l.prototype.HDCAViewClass.extend({foldoutStyle:"drilldown"}),emptyMsg:[n("This history is empty"),". ",n("You can "),'',n("load your own data")," ",n(" or "),'',n("get data from an external source")," "].join(""),initialize:function(e){e=e||{},this.preferences=new s(a.extend({id:s.storageKey()},a.pick(e,a.keys(s.prototype.defaults)))),l.prototype.initialize.call(this,e),this.panelStack=[],this.currentContentId=e.currentContentId||null},_setUpListeners:function(){l.prototype._setUpListeners.call(this);var e=this;this.on("new-model",function(){e.preferences.set("scrollPosition",0)})},loadCurrentHistory:function(){return this.loadHistory(null,{url:Galaxy.root+"history/current_history_json"})},switchToHistory:function(e,t){return Galaxy.user.isAnonymous()?(this.trigger("error",n("You must be logged in to switch histories"),n("Anonymous user")),o.when()):this.loadHistory(e,{url:Galaxy.root+"history/set_as_current?id="+e})},createNewHistory:function(e){return Galaxy.user.isAnonymous()?(this.trigger("error",n("You must be logged in to create histories"),n("Anonymous user")),o.when()):this.loadHistory(null,{url:Galaxy.root+"history/create_new_current"})},setModel:function(e,t,i){return l.prototype.setModel.call(this,e,t,i),this.model&&this.model.id&&(this.log("checking for updates"),this.model.checkForUpdates()),this},_setUpModelListeners:function(){return l.prototype._setUpModelListeners.call(this),this.listenTo(this.model,{"change:nice_size change:size":function(){this.trigger("history-size-change",this,this.model,arguments)},"change:id":function(){this.once("loading-done",function(){this.model.checkForUpdates()})}})},_setUpCollectionListeners:function(){l.prototype._setUpCollectionListeners.call(this),this.listenTo(this.collection,"state:ready",function(e,t,i){e.get("visible")||this.collection.storage.includeHidden()||this.removeItemView(e)})},_setUpBehaviors:function(e){e=e||this.$el;var t=this;return l.prototype._setUpBehaviors.call(t,e),this._debouncedScrollCaptureHandler||(this._debouncedScrollCaptureHandler=a.debounce(function(){t.$el.is(":visible")&&t.preferences.set("scrollPosition",o(this).scrollTop())},40)),t.$scrollContainer(e).off("scroll",this._debouncedScrollCaptureHandler).on("scroll",this._debouncedScrollCaptureHandler),t},_buildNewRender:function(){if(!this.model)return o();var e=l.prototype._buildNewRender.call(this);return e.find(".search").prependTo(e.find("> .controls")),this._renderQuotaMessage(e),e},_renderQuotaMessage:function(e){return e=e||this.$el,o(this.templates.quotaMsg({},this)).prependTo(e.find(".messages"))},_renderTags:function(e){var t=this;l.prototype._renderTags.call(t,e),t.preferences.get("tagsEditorShown")&&t.tagsEditor.toggle(!0),t.listenTo(t.tagsEditor,"hiddenUntilActivated:shown hiddenUntilActivated:hidden",function(e){t.preferences.set("tagsEditorShown",e.hidden)})},_renderAnnotation:function(e){var t=this;l.prototype._renderAnnotation.call(t,e),t.preferences.get("annotationEditorShown")&&t.annotationEditor.toggle(!0),t.listenTo(t.annotationEditor,"hiddenUntilActivated:shown hiddenUntilActivated:hidden",function(e){t.preferences.set("annotationEditorShown",e.hidden)})},_swapNewRender:function(e){l.prototype._swapNewRender.call(this,e);var t=this;return a.delay(function(){var e=t.preferences.get("scrollPosition");e&&t.scrollTo(e,0)},10),this},_attachItems:function(e){l.prototype._attachItems.call(this,e);var t=this;return t.currentContentId&&t._setCurrentContentById(t.currentContentId),this},addItemView:function(e,t,i){var n=l.prototype.addItemView.call(this,e,t,i);return n&&this.panelStack.length?this._collapseDrilldownPanel():n},_setUpItemViewListeners:function(e){var t=this;return l.prototype._setUpItemViewListeners.call(t,e),t.listenTo(e,{"expanded:drilldown":function(e,t){this._expandDrilldownPanel(t)},"collapsed:drilldown":function(e,t){this._collapseDrilldownPanel(t)}})},setCurrentContent:function(e){this.$(".history-content.current-content").removeClass("current-content"),e?(e.$el.addClass("current-content"),this.currentContentId=e.model.id):this.currentContentId=null},_setCurrentContentById:function(e){var t=this.viewFromModelId(e)||null;this.setCurrentContent(t)},_expandDrilldownPanel:function(e){this.panelStack.push(e),this.$controls().add(this.$list()).hide(),e.parentName=this.model.get("name"),e.delegateEvents().render().$el.appendTo(this.$el)},_collapseDrilldownPanel:function(e){this.panelStack.pop(),this.$controls().add(this.$list()).show()},events:a.extend(a.clone(l.prototype.events),{"click .uploader-link":function(e){Galaxy.upload.show(e)},"click .get-data-link":function(e){var t=o(".toolMenuContainer");t.parent().scrollTop(0),t.find('span:contains("Get Data")').click()}}),listenToGalaxy:function(e){this.listenTo(e,{"center-frame:load":function(e){var t=e.fullpath,i=null,n={display:/datasets\/([a-f0-9]+)\/display/,edit:/datasets\/([a-f0-9]+)\/edit/,report_error:/dataset\/errors\?id=([a-f0-9]+)/,rerun:/tool_runner\/rerun\?id=([a-f0-9]+)/,show_params:/datasets\/([a-f0-9]+)\/show_params/};a.find(n,function(e,n){return i=a.result(t.match(e),1)}),this._setCurrentContentById(i?"dataset-"+i:null)},"center-panel:load":function(e){this._setCurrentContentById()}})},connectToQuotaMeter:function(e){return e?(this.listenTo(e,"quota:over",this.showQuotaMessage),this.listenTo(e,"quota:under",this.hideQuotaMessage),this.on("rendered rendered:initial",function(){e&&e.isOverQuota()&&this.showQuotaMessage()}),this):this},clearMessages:function(e){var t=a.isUndefined(e)?this.$messages().children('[class$="message"]'):o(e.currentTarget);return t=t.not(".quota-message"),t.fadeOut(this.fxSpeed,function(){o(this).remove()}),this},showQuotaMessage:function(){var e=this.$(".quota-message");e.is(":hidden")&&e.slideDown(this.fxSpeed)},hideQuotaMessage:function(){var e=this.$(".quota-message");e.is(":hidden")||e.slideUp(this.fxSpeed)},unhideHidden:function(){var e=this;return confirm(n("Really unhide all hidden datasets?"))?e.model.contents._filterAndUpdate({visible:!1,deleted:"",purged:""},{visible:!0}).done(function(){e.model.contents.includeHidden||e.renderItems()}):r.when()},deleteHidden:function(){var e=this;return confirm(n("Really delete all hidden datasets?"))?e.model.contents._filterAndUpdate({visible:!1,deleted:"",purged:""},{deleted:!0,visible:!0}):r.when()},toString:function(){return"CurrentHistoryView("+(this.model?this.model.get("name"):"")+")"}});return c.prototype.templates=function(){var e=i.wrapTemplate(['',n("You are over your disk quota"),". ",n("Tool execution is on hold until your disk usage drops below your allocated quota"),".","
"],"history");return a.extend(a.clone(l.prototype.templates),{quotaMsg:e})}(),{CurrentHistoryView:c}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(2),i(1),i(1))},function(e,t,i){var n,s;(function(a,o,r){n=[i(126),i(51),i(11),i(84),i(121),i(122),i(55),i(76),i(42),i(120),i(119),i(19),i(22),i(6),i(5),i(18)],
+s=function(e,t,i,n,s,l,c,d,h,u,p,f,g,m,v){"use strict";var _=e.HistoryView,y=_.extend({HDAViewClass:s.HDAListItemEdit,HDCAViewClass:l.HDCAListItemEdit,initialize:function(e){e=e||{},_.prototype.initialize.call(this,e),this.tagsEditor=null,this.dragItems=!0,this.annotationEditor=null,this.purgeAllowed=e.purgeAllowed||!1,this.annotationEditorShown=e.annotationEditorShown||!1,this.tagsEditorShown=e.tagsEditorShown||!1},_setUpListeners:function(){return _.prototype._setUpListeners.call(this),this.on({"droptarget:drop":function(e,t){this.dataDropped(t),this.dropTargetOff()},"view:attached view:removed":function(){this._renderCounts()},"search:loading-progress":this._renderSearchProgress,"search:searching":this._renderSearchFindings})},_setUpModelListeners:function(){return _.prototype._setUpModelListeners.call(this),this.listenTo(this.model,"change:size",this.updateHistoryDiskSize),this},_setUpCollectionListeners:function(){return _.prototype._setUpCollectionListeners.call(this),this.listenTo(this.collection,{"change:deleted":this._handleItemDeletedChange,"change:visible":this._handleItemVisibleChange,"change:purged":function(e){this.model.fetch()},"fetching-deleted":function(e){this.$("> .controls .deleted-count").html(""+v("loading...")+" ")},"fetching-hidden":function(e){this.$("> .controls .hidden-count").html(""+v("loading...")+" ")},"fetching-deleted-done fetching-hidden-done":this._renderCounts}),this},_buildNewRender:function(){var e=_.prototype._buildNewRender.call(this);return this.model?(Galaxy&&Galaxy.user&&Galaxy.user.id&&Galaxy.user.id===this.model.get("user_id")&&(this._renderTags(e),this._renderAnnotation(e)),e):e},updateHistoryDiskSize:function(){this.$(".history-size").text(this.model.get("nice_size"))},renderItems:function(e){var t=_.prototype.renderItems.call(this,e);return this.searchFor||this._renderCounts(e),t},_renderCounts:function(e){e=e instanceof a?e:this.$el;var t=this.templates.counts(this.model.toJSON(),this);return e.find("> .controls .subtitle").html(t)},_renderTags:function(e){var t=this;this.tagsEditor=new c.TagsEditor({model:this.model,el:e.find(".controls .tags-display"),onshowFirstTime:function(){this.render()},onshow:function(){t.toggleHDATagEditors(!0,t.fxSpeed)},onhide:function(){t.toggleHDATagEditors(!1,t.fxSpeed)},$activator:f({title:v("Edit history tags"),classes:"history-tag-btn",faIcon:"fa-tags"}).appendTo(e.find(".controls .actions"))})},_renderAnnotation:function(e){var t=this;this.annotationEditor=new d.AnnotationEditor({model:this.model,el:e.find(".controls .annotation-display"),onshowFirstTime:function(){this.render()},onshow:function(){t.toggleHDAAnnotationEditors(!0,t.fxSpeed)},onhide:function(){t.toggleHDAAnnotationEditors(!1,t.fxSpeed)},$activator:f({title:v("Edit history annotation"),classes:"history-annotate-btn",faIcon:"fa-comment"}).appendTo(e.find(".controls .actions"))})},_setUpBehaviors:function(e){if(e=e||this.$el,_.prototype._setUpBehaviors.call(this,e),this.model&&Galaxy.user&&!Galaxy.user.isAnonymous()&&Galaxy.user.id===this.model.get("user_id")){var t=this,i="> .controls .name";e.find(i).attr("title",v("Click to rename history")).tooltip({placement:"bottom"}).make_text_editable({on_finish:function(e){var n=t.model.get("name");e&&e!==n?(t.$el.find(i).text(e),t.model.save({name:e}).fail(function(){t.$el.find(i).text(t.model.previous("name"))})):t.$el.find(i).text(n)}})}},multiselectActions:function(){var e=this,t=[{html:v("Hide datasets"),func:function(){var t=n.HistoryDatasetAssociation.prototype.hide;e.getSelectedModels().ajaxQueue(t)}},{html:v("Unhide datasets"),func:function(){var t=n.HistoryDatasetAssociation.prototype.unhide;e.getSelectedModels().ajaxQueue(t)}},{html:v("Delete datasets"),func:function(){var t=n.HistoryDatasetAssociation.prototype.delete;e.getSelectedModels().ajaxQueue(t)}},{html:v("Undelete datasets"),func:function(){var t=n.HistoryDatasetAssociation.prototype.undelete;e.getSelectedModels().ajaxQueue(t)}}];return e.purgeAllowed&&t.push({html:v("Permanently delete datasets"),func:function(){if(confirm(v("This will permanently remove the data in your datasets. Are you sure?"))){var t=n.HistoryDatasetAssociation.prototype.purge;e.getSelectedModels().ajaxQueue(t)}}}),t=t.concat(e._collectionActions())},_collectionActions:function(){var e=this;return[{html:v("Build Dataset List"),func:function(){e.buildCollection("list")}},{html:v("Build Dataset Pair"),func:function(){e.buildCollection("paired")}},{html:v("Build List of Dataset Pairs"),func:function(){e.buildCollection("list:paired")}}]},buildCollection:function(e,t,i){var n,s=this,t=t||s.getSelectedModels(),i=i||!1;"list"==e?n=h.createListCollection:"paired"==e?n=u.createPairCollection:"list:paired"==e?n=p.createListOfPairsCollection:console.warn("Unknown collectionType encountered "+e),n(t,i).done(function(){s.model.refresh()})},_getItemViewOptions:function(e){var t=_.prototype._getItemViewOptions.call(this,e);return o.extend(t,{purgeAllowed:this.purgeAllowed,tagsEditorShown:this.tagsEditor&&!this.tagsEditor.hidden,annotationEditorShown:this.annotationEditor&&!this.annotationEditor.hidden}),t},_handleItemDeletedChange:function(e){e.get("deleted")?this._handleItemDeletion(e):this._handleItemUndeletion(e),this._renderCounts()},_handleItemDeletion:function(e){var t=this.model.get("contents_active");t.deleted+=1,t.active-=1,this.model.contents.includeDeleted||this.removeItemView(e),this.model.set("contents_active",t)},_handleItemUndeletion:function(e){var t=this.model.get("contents_active");t.deleted-=1,this.model.contents.includeDeleted||(t.active-=1),this.model.set("contents_active",t)},_handleItemVisibleChange:function(e){e.hidden()?this._handleItemHidden(e):this._handleItemUnhidden(e),this._renderCounts()},_handleItemHidden:function(e){var t=this.model.get("contents_active");t.hidden+=1,t.active-=1,this.model.contents.includeHidden||this.removeItemView(e),this.model.set("contents_active",t)},_handleItemUnhidden:function(e){var t=this.model.get("contents_active");t.hidden-=1,this.model.contents.includeHidden||(t.active-=1),this.model.set("contents_active",t)},toggleHDATagEditors:function(e,t){o.each(this.views,function(i){i.tagsEditor&&i.tagsEditor.toggle(e,t)})},toggleHDAAnnotationEditors:function(e,t){o.each(this.views,function(i){i.annotationEditor&&i.annotationEditor.toggle(e,t)})},events:o.extend(o.clone(_.prototype.events),{"click .show-selectors-btn":"toggleSelectors","click .toggle-deleted-link":function(e){this.toggleShowDeleted()},"click .toggle-hidden-link":function(e){this.toggleShowHidden()}}),_renderSearchProgress:function(e,t){var i=e+t;return this.$("> .controls .subtitle").html(["",v("Searching "),i,"/",this.model.contentsShown()," "].join(""))},_renderSearchFindings:function(){return this.$("> .controls .subtitle").html([v("Found"),this.views.length].join(" ")),this},dropTargetOn:function(){if(this.dropTarget)return this;this.dropTarget=!0;var e={dragenter:o.bind(this.dragenter,this),dragover:o.bind(this.dragover,this),dragleave:o.bind(this.dragleave,this),drop:o.bind(this.drop,this)},t=this._renderDropTarget();this.$list().before([this._renderDropTargetHelp(),t]);for(var i in e)e.hasOwnProperty(i)&&t.on(i,e[i]);return this},_renderDropTarget:function(){return this.$(".history-drop-target").remove(),r("
").addClass("history-drop-target")},_renderDropTargetHelp:function(){return this.$(".history-drop-target-help").remove(),r("
").addClass("history-drop-target-help").text(v("Drag datasets here to copy them to the current history"))},dropTargetOff:function(){if(!this.dropTarget)return this;this.dropTarget=!1;var e=this.$(".history-drop-target").get(0);for(var t in this._dropHandlers)this._dropHandlers.hasOwnProperty(t)&&e.off(t,this._dropHandlers[t]);return this.$(".history-drop-target").remove(),this.$(".history-drop-target-help").remove(),this},dropTargetToggle:function(){return this.dropTarget?this.dropTargetOff():this.dropTargetOn(),this},dragenter:function(e){e.preventDefault(),e.stopPropagation(),this.$(".history-drop-target").css("border","2px solid black")},dragover:function(e){e.preventDefault(),e.stopPropagation()},dragleave:function(e){e.preventDefault(),e.stopPropagation(),this.$(".history-drop-target").css("border","1px dashed black")},drop:function(e){e.preventDefault();var t=this,i=e.originalEvent.dataTransfer,n=i.getData("text");i.dropEffect="move";try{n=JSON.parse(n)}catch(e){t.warn("error parsing JSON from drop:",n)}return t.trigger("droptarget:drop",e,n,t),!1},dataDropped:function(e){var t=this;return o.isObject(e)&&"HistoryDatasetAssociation"===e.model_class&&e.id?0!==t.contents.currentPage?t.contents.fetchPage(0).then(function(){return t.model.contents.copy(e.id)}):t.model.contents.copy(e.id):a.when()},toString:function(){return"HistoryViewEdit("+(this.model?this.model.get("name"):"")+")"}});return y.prototype.templates=function(){var e=m.wrapTemplate(["<% var shown = Math.max( view.views.length, history.contents_active.active ) %>","<% if( shown ){ %>",'',"<%- shown %> ",v("shown")," ","<% } %>","<% if( history.contents_active.deleted ){ %>",'',"<% if( view.model.contents.includeDeleted ){ %>",'',v("hide deleted")," ","<% } else { %>","<%- history.contents_active.deleted %> ",'',v("deleted")," ","<% } %>"," ","<% } %>","<% if( history.contents_active.hidden ){ %>",'',"<% if( view.model.contents.includeHidden ){ %>",'',v("hide hidden")," ","<% } else { %>","<%- history.contents_active.hidden %> ",'',v("hidden")," ","<% } %>"," ","<% } %>"],"history");return o.extend(o.clone(_.prototype.templates),{counts:e})}(),{HistoryViewEdit:y}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(1),i(2),i(1))},function(e,t,i){var n,s;(function(a,o){n=[i(87),i(52),i(51),i(53),i(83),i(85),i(91),i(90),i(19),i(6),i(5),i(94)],s=function(e,t,i,n,s,r,l,c,d,h,u){"use strict";var p=e.ModelListPanel,f=p.extend({_logNamespace:"history",HDAViewClass:s.HDAListItemView,HDCAViewClass:r.HDCAListItemView,collectionClass:i.HistoryContents,modelCollectionKey:"contents",tagName:"div",className:p.prototype.className+" history-panel",emptyMsg:u("This history is empty"),noneFoundMsg:u("No matching datasets found"),searchPlaceholder:u("search datasets"),FETCH_COLLECTION_COUNTS_DELAY:2e3,initialize:function(e){p.prototype.initialize.call(this,e),this.linkTarget=e.linkTarget||"_blank"},_createDefaultCollection:function(){return new this.collectionClass([],{history:this.model})},freeModel:function(){return p.prototype.freeModel.call(this),this.model&&this.model.clearUpdateTimeout(),this},_setUpListeners:function(){p.prototype._setUpListeners.call(this),this.on({error:function(e,t,i,n,s){this.errorHandler(e,t,i,n,s)},"loading-done":function(){var e=this;a.delay(function(){e.model.contents.fetchCollectionCounts()},e.FETCH_COLLECTION_COUNTS_DELAY)},"views:ready view:attached view:removed":function(e){this._renderSelectButton()},"view:attached":function(e){this.scrollTo(0)}})},loadHistory:function(e,i,n){n=a.extend(n||{silent:!0}),this.info("loadHistory:",e,i,n);var s=this;return s.setModel(new t.History({id:e})),n.silent=!0,s.trigger("loading"),s.model.fetchWithContents(i,n).always(function(){s.render(),s.trigger("loading-done")})},refreshContents:function(e){return this.model?this.model.refresh(e):o.when()},_setUpCollectionListeners:function(){return p.prototype._setUpCollectionListeners.call(this),this.listenTo(this.collection,{"fetching-more":function(){this._toggleContentsLoadingIndicator(!0),this.$emptyMessage().hide()},"fetching-more-done":function(){this._toggleContentsLoadingIndicator(!1)}})},_showLoadingIndicator:function(e,t,i){var n=o('
');this.$el.html(n.text(e).slideDown(a.isUndefined(t)?this.fxSpeed:t))},_hideLoadingIndicator:function(e){this.$(".loading-indicator").slideUp(a.isUndefined(e)?this.fxSpeed+200:e,function(){o(this).remove()})},_buildNewRender:function(){var e=p.prototype._buildNewRender.call(this);return this._renderSelectButton(e),e},_renderSelectButton:function(e){if(e=e||this.$el,!this.multiselectActions().length)return null;if(!this.views.length)return this.hideSelectors(),e.find(".controls .actions .show-selectors-btn").remove(),null;var t=e.find(".controls .actions .show-selectors-btn");return t.length?t:d({title:u("Operations on multiple datasets"),classes:"show-selectors-btn",faIcon:"fa-check-square-o"}).prependTo(e.find(".controls .actions"))},_renderEmptyMessage:function(e){var t=this,i=t.$emptyMessage(e),n=t.model.get("contents_active").active<=0;return n?i.empty().append(t.emptyMsg).show():t.searchFor&&t.model.contents.haveSearchDetails()&&!t.views.length?i.empty().append(t.noneFoundMsg).show():(i.hide(),o())},$scrollContainer:function(e){return this.$list(e)},_toggleContentsLoadingIndicator:function(e){e?this.$list().html('
'):this.$list().find(".contents-loading-indicator").remove()},renderItems:function(e){e=e||this.$el;var t=this,i=t.$list(e);o(".tooltip").remove(),i.empty(),t.views=[];var n=t._filterCollection();return n.length?(t._renderPagination(e),t.views=t._renderSomeItems(n,i)):e.find("> .controls .list-pagination").empty(),t._renderEmptyMessage(e).toggle(!n.length),t.trigger("views:ready",t.views),t.views},_renderPagination:function(e){var t=e.find("> .controls .list-pagination");return this.searchFor||!this.model.contents.shouldPaginate()?t.empty():(t.html(this.templates.pagination({current:this.model.contents.currentPage+1,last:this.model.contents.getLastPage()+1},this)),t.find("select.pages").tooltip(),t)},_renderSomeItems:function(e,t){var i=this,n=[];return t.append(e.map(function(e){var t=i._createItemView(e);return n.push(t),i._renderItemView$el(t)})),n},_filterItem:function(e){var t=this,i=t.model.contents;return(i.includeHidden||!e.hidden())&&(i.includeDeleted||!e.isDeletedOrPurged())&&p.prototype._filterItem.call(t,e)},_getItemViewClass:function(e){var t=e.get("history_content_type");switch(t){case"dataset":return this.HDAViewClass;case"dataset_collection":return this.HDCAViewClass}throw new TypeError("Unknown history_content_type: "+t)},_getItemViewOptions:function(e){var t=p.prototype._getItemViewOptions.call(this,e);return a.extend(t,{linkTarget:this.linkTarget,expanded:this.model.contents.storage.isExpanded(e.id),hasUser:this.model.ownedByCurrUser()})},_setUpItemViewListeners:function(e){var t=this;return p.prototype._setUpItemViewListeners.call(t,e),t.listenTo(e,{expanded:function(e){t.model.contents.storage.addExpanded(e.model)},collapsed:function(e){t.model.contents.storage.removeExpanded(e.model)}})},collapseAll:function(){this.model.contents.storage.clearExpanded(),p.prototype.collapseAll.call(this)},getSelectedModels:function(){var e=p.prototype.getSelectedModels.call(this);return e.historyId=this.collection.historyId,e},events:a.extend(a.clone(p.prototype.events),{"click .show-selectors-btn":"toggleSelectors","click > .controls .prev":"_clickPrevPage","click > .controls .next":"_clickNextPage","change > .controls .pages":"_changePageSelect","click .messages [class$=message]":"clearMessages"}),_clickPrevPage:function(e){this.model.clearUpdateTimeout(),this.model.contents.fetchPrevPage()},_clickNextPage:function(e){this.model.clearUpdateTimeout(),this.model.contents.fetchNextPage()},_changePageSelect:function(e){this.model.clearUpdateTimeout();var t=o(e.currentTarget).val();this.model.contents.fetchPage(t)},toggleShowDeleted:function(e,t){e=void 0!==e?e:!this.model.contents.includeDeleted;var i=this,n=i.model.contents;return n.setIncludeDeleted(e,t),i.trigger("show-deleted",e),n.fetchCurrentPage({renderAll:!0}),e},toggleShowHidden:function(e,t,i){e=void 0!==e?e:!this.model.contents.includeHidden;var n=this,s=n.model.contents;return s.setIncludeHidden(e,i),n.trigger("show-hidden",e),s.fetchCurrentPage({renderAll:!0}),e},_firstSearch:function(e){var t=this,i="> .controls .search-input";if(this.log("onFirstSearch",e),t.model.contents.haveSearchDetails())return void t.searchItems(e);t.$(i).searchInput("toggle-loading"),t.searchFor=e;t.model.contents.progressivelyFetchDetails({silent:!0}).progress(function(e,i,n){t.renderItems(),t.trigger("search:loading-progress",i,n)}).always(function(){t.$el.find(i).searchInput("toggle-loading")}).done(function(){t.searchItems(e,"force")})},clearSearch:function(e){var t=this;return t.searchFor?(t.searchFor="",t.trigger("search:clear",t),t.$("> .controls .search-query").val(""),t.model.contents.fetchCurrentPage({silent:!0}).done(function(){t.renderItems()}),t):t},errorHandler:function(e,t,i){if(!t||0!==t.status||0!==t.readyState){if(this.error(e,t,i),a.isString(e)&&a.isString(t)){var n=e,s=t;return c.errorModal(n,s,i)}return t&&502===t.status?c.badGatewayErrorModal():c.ajaxErrorModal(e,t,i)}},clearMessages:function(e){var t=a.isUndefined(e)?this.$messages().children('[class$="message"]'):o(e.currentTarget);return t.fadeOut(this.fxSpeed,function(){o(this).remove()}),this},scrollToHid:function(e){return this.scrollToItem(a.first(this.viewsWhereModel({hid:e})))},ordinalIndicator:function(e){var t=e+"";switch(t.charAt(t.length-1)){case"1":return t+"st";case"2":return t+"nd";case"3":return t+"rd";default:return t+"th"}},toString:function(){return"HistoryView("+(this.model?this.model.get("name"):"")+")"}});return f.prototype.templates=function(){var e=h.wrapTemplate([""]),t=h.wrapTemplate(['','
','
<%- history.name %>
',"
",'
','
<%- history.nice_size %>
','
','
',"<% if( history.deleted && history.purged ){ %>",'
',u("This history has been purged and deleted"),"
","<% } else if( history.deleted ){ %>",'
',u("This history has been deleted"),"
","<% } else if( history.purged ){ %>",'
',u("This history has been purged"),"
","<% } %>","<% if( history.message ){ %>",'
messagesmall">',"<%= history.message.text %>","
","<% } %>","
",'
','
','
",'
','
','',u("All")," ",'',u("None")," ","
",'","
",'',"
"],"history"),i=h.wrapTemplate(['>previous ','',"<% _.range( 1, pages.last + 1 ).forEach( function( i ){ %>",'>',"<%- view.ordinalIndicator( i ) %> of <%- pages.last %> pages"," ","<% }); %>"," ",'>next '],"pages");return a.extend(a.clone(p.prototype.templates),{el:e,controls:t,pagination:i})}(),{HistoryView:f}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(2),i(1))},function(e,t,i){var n,s;(function(a,o){n=[i(22),i(82),i(6),i(5),i(27)],s=function(e,t,i,n,s){"use strict";function r(e,t,i){return o.clone(l).filter(function(n){return!(e&&!n.anon)&&(!(!t&&n.purge)&&(n.href&&(n.href=i+n.href,n.target=n.target||"galaxy_main"),n.confirm&&(n.func=function(){confirm(n.confirm)&&(galaxy_main.location=n.href)}),!0))})}var l=[{html:n("History Lists"),header:!0},{html:n("Saved Histories"),href:"histories/list",target:"_top"},{html:n("Histories Shared with Me"),href:"histories/list_shared",target:"_top"},{html:n("Current History"),header:!0,anon:!0},{html:n("Create New"),func:function(){Galaxy&&Galaxy.currHistoryPanel&&Galaxy.currHistoryPanel.createNewHistory()}},{html:n("Copy History"),func:function(){t(Galaxy.currHistoryPanel.model).done(function(){Galaxy.currHistoryPanel.loadCurrentHistory()})}},{html:n("Share or Publish"),href:"history/sharing"},{html:n("Show Structure"),href:"history/display_structured",anon:!0},{html:n("Extract Workflow"),href:"workflow/build_from_current_history"},{html:n("Delete"),anon:!0,func:function(){Galaxy&&Galaxy.currHistoryPanel&&confirm(n("Really delete the current history?"))&&(galaxy_main.window.location.href="history/delete?id="+Galaxy.currHistoryPanel.model.id)}},{html:n("Delete Permanently"),purge:!0,anon:!0,func:function(){Galaxy&&Galaxy.currHistoryPanel&&confirm(n("Really delete the current history permanently? This cannot be undone."))&&(galaxy_main.window.location.href="history/delete?purge=True&id="+Galaxy.currHistoryPanel.model.id)}},{html:n("Dataset Actions"),header:!0,anon:!0},{html:n("Copy Datasets"),href:"dataset/copy_datasets"},{html:n("Dataset Security"),href:"root/history_set_default_permissions"},{html:n("Resume Paused Jobs"),href:"history/resume_paused_jobs?current=True",anon:!0},{html:n("Collapse Expanded Datasets"),func:function(){Galaxy&&Galaxy.currHistoryPanel&&Galaxy.currHistoryPanel.collapseAll()}},{html:n("Unhide Hidden Datasets"),anon:!0,func:function(){Galaxy&&Galaxy.currHistoryPanel&&confirm(n("Really unhide all hidden datasets?"))&&a.post(Galaxy.root+"history/adjust_hidden",{user_action:"unhide"},function(){Galaxy.currHistoryPanel.loadCurrentHistory()})}},{html:n("Delete Hidden Datasets"),anon:!0,func:function(){Galaxy&&Galaxy.currHistoryPanel&&confirm(n("Really delete all hidden datasets?"))&&a.post(Galaxy.root+"history/adjust_hidden",{user_action:"delete"},function(){Galaxy.currHistoryPanel.loadCurrentHistory()})}},{html:n("Purge Deleted Datasets"),confirm:n("Really delete all deleted datasets permanently? This cannot be undone."),href:"history/purge_deleted_datasets",purge:!0,anon:!0},{html:n("Downloads"),header:!0},{html:n("Export Tool Citations"),href:"history/citations",anon:!0},{html:n("Export History to File"),href:"history/export_archive?preview=True",anon:!0},{html:n("Other Actions"),header:!0},{html:n("Import from File"),href:"history/import_archive"}];s.add({url:"api/webhooks/history-menu/all",async:!1,callback:function(e){var t=[];a.each(e.models,function(e,i){var s=i.toJSON();s.activate&&t.push({html:n(s.config.title),anon:!0})}),t.length>0&&(t.unshift({html:n("Webhooks"),header:!0}),a.merge(l,t))}});var c=function(t,i){i=i||{};var n=void 0===i.anonymous||i.anonymous,s=i.purgeAllowed||!1,a=r(n,s,Galaxy.root);return new e(t,a)};return c}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(1),i(2))},function(e,t,i){var n,s;(function(a,o,r){n=[i(4),i(14)],s=function(e,t){var i=a.View.extend({initialize:function(t){var i=this;this.setElement(o("
")),this.model=new a.Model,e.get({url:Galaxy.root+"page/list",success:function(e){e.dict_format=!0,i.model.set(e),i.render()}})},render:function(){var e=new t(this.model.attributes);this.$el.empty().append(e.$el),this.$el.append(this._templateShared())},_templateShared:function(){var e=o("
Pages shared with you by others "),t=this.model.attributes;if(t.shared_by_others&&t.shared_by_others.length>0){var i=o('');r.each(t.shared_by_others,function(e,t){var n=Galaxy.root+"page/display_by_username_and_slug?username="+e.username+"&slug="+e.slug;i.append(''+r.escape(e.title)+" "+r.escape(e.username)+" ")}),e.append(i)}else e.append("No pages have been shared with you.");return e}});return{View:i}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1),i(2))},function(e,t,i){var n,s;(function(a,o,r){n=[i(4),i(26),i(65),i(16),i(17)],s=function(e,t,i,n,s){return a.View.extend({status_classes:{init:"upload-icon-button fa fa-trash-o",queued:"upload-icon fa fa-spinner fa-spin",running:"upload-icon fa fa-spinner fa-spin",success:"upload-icon-button fa fa-check",error:"upload-icon-button fa fa-exclamation-triangle"},initialize:function(e,t){var i=this;this.app=e,this.model=t.model,this.setElement(this._template(t.model)),this.$mode=this.$(".upload-mode"),this.$title=this.$(".upload-title-extended"),this.$text=this.$(".upload-text"),this.$size=this.$(".upload-size"),this.$info_text=this.$(".upload-info-text"),this.$info_progress=this.$(".upload-info-progress"),this.$text_content=this.$(".upload-text-content"),this.$symbol=this.$(".upload-symbol"),this.$progress_bar=this.$(".upload-progress-bar"),this.$percentage=this.$(".upload-percentage"),this.settings=new n.View({title:"Upload configuration",container:this.$(".upload-settings"),placement:"bottom"});this.app.select_genome.value(),this.app.select_extension.value();this.$symbol.on("click",function(){i._removeRow()}),this.$text_content.on("change input",function(e){i.model.set({url_paste:o(e.target).val(),file_size:o(e.target).val().length})}),this.listenTo(this.model,"change:percentage",function(){i._refreshPercentage()}),this.listenTo(this.model,"change:status",function(){i._refreshStatus()}),this.listenTo(this.model,"change:info",function(){i._refreshInfo()}),this.listenTo(this.model,"change:file_size",function(){i._refreshFileSize()}),this.listenTo(this.model,"remove",function(){i.remove()}),this.app.collection.on("reset",function(){i.remove()})},render:function(){var t=this.model.attributes;this.$title.html(r.escape(t.file_name)),this.$size.html(e.bytesToString(t.file_size)),this.$mode.removeClass().addClass("upload-mode").addClass("text-primary"),"new"==t.file_mode?(this.$text.css({width:this.$el.width()-16+"px",top:this.$el.height()-8+"px"}).show(),this.$el.height(this.$el.height()-8+this.$text.height()+16),this.$mode.addClass("fa fa-edit")):"local"==t.file_mode?this.$mode.addClass("fa fa-laptop"):"ftp"==t.file_mode&&this.$mode.addClass("fa fa-folder-open-o")},_refreshInfo:function(){var e=this.model.get("info");e?this.$info_text.html("Failed: "+e).show():this.$info_text.hide()},_refreshPercentage:function(){var e=parseInt(this.model.get("percentage"));this.$progress_bar.css({width:e+"%"}),this.$percentage.html(100!=e?e+"%":"Adding to history...")},_refreshStatus:function(){var e=this.model.get("status");this.$symbol.removeClass().addClass("upload-symbol").addClass(this.status_classes[e]),this.model.set("enabled","init"==e);var t=this.model.get("enabled");this.$text_content.attr("disabled",!t),"success"==e&&(this.$el.addClass("success"),this.$percentage.html("100%")),"error"==e&&(this.$el.addClass("danger"),this.$info_progress.hide())},_refreshFileSize:function(){this.$size.html(e.bytesToString(this.model.get("file_size")))},_removeRow:function(){["init","success","error"].indexOf(this.model.get("status"))!==-1&&this.app.collection.remove(this.model)},_showSettings:function(){this.settings.visible?this.settings.hide():(this.settings.empty(),this.settings.append(new i(this).$el),this.settings.show())},_template:function(e){return'
You can tell Galaxy to download data from web by entering URL in this box (one per line). You can also directly paste the contents of a file.
'}})}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1),i(2))},function(e,t,i){var n,s;(function(a,o,r){n=[i(4),i(26),i(129),i(64),i(16),i(17),i(7),i(42),i(68)],s=function(e,t,i,n,s,l,c,d){return a.View.extend({upload_size:0,collection:new t.Collection,counter:{announce:0,success:0,error:0,running:0,reset:function(){this.announce=this.success=this.error=this.running=0}},initialize:function(e){var t=this;this.app=e,this.options=e.options,this.list_extensions=e.list_extensions,this.list_genomes=e.list_genomes,this.ui_button=e.ui_button,this.ftp_upload_site=e.currentFtp(),this.setElement(this._template()),this.btnLocal=new c.Button({id:"btn-local",title:"Choose local files",onclick:function(){t.uploadbox.select()},icon:"fa fa-laptop"}),this.btnFtp=new c.Button({id:"btn-ftp",title:"Choose FTP files",onclick:function(){t._eventFtp()},icon:"fa fa-folder-open-o"}),this.btnCreate=new c.Button({id:"btn-new",title:"Paste/Fetch data",onclick:function(){t._eventCreate()},icon:"fa fa-edit"}),this.btnStart=new c.Button({id:"btn-start",title:"Start",onclick:function(){t._eventStart()}}),this.btnBuild=new c.Button({id:"btn-build",title:"Build",onclick:function(){t._eventBuild()}}),this.btnStop=new c.Button({id:"btn-stop",title:"Pause",onclick:function(){t._eventStop()}}),this.btnReset=new c.Button({id:"btn-reset",title:"Reset",onclick:function(){t._eventReset()}}),this.btnClose=new c.Button({id:"btn-close",title:"Close",onclick:function(){t.app.modal.hide()}}),o.each([this.btnLocal,this.btnFtp,this.btnCreate,this.btnStop,this.btnReset,this.btnStart,this.btnBuild,this.btnClose],function(e){t.$(".upload-buttons").prepend(e.$el)}),this.uploadbox=this.$(".upload-box").uploadbox({url:this.app.options.nginx_upload_path,announce:function(e,i){t._eventAnnounce(e,i)},initialize:function(e){return t.app.toData([t.collection.get(e)],t.history_id)},progress:function(e,i){t._eventProgress(e,i)},success:function(e,i){t._eventSuccess(e,i)},error:function(e,i){t._eventError(e,i)},complete:function(){t._eventComplete()},ondragover:function(){t.$(".upload-box").addClass("highlight")},ondragleave:function(){t.$(".upload-box").removeClass("highlight")}}),console.log(this.list_extensions),this.ftp=new s.View({title:"FTP files",container:this.btnFtp.$el}),this.select_extension=new l.View({css:"upload-footer-selection-compressed",container:this.$(".upload-footer-extension"),data:o.filter(this.list_extensions,function(e){return!e.composite_files}),value:this.options.default_extension,onchange:function(e){t.updateExtension(e)}}),this.collectionType="list",this.select_collection=new l.View({css:"upload-footer-selection-compressed",container:this.$(".upload-footer-collection-type"),data:[{id:"list",text:"List"},{id:"paired",text:"Paired"},{id:"list:paired",text:"List of Pairs"}],value:"list",onchange:function(e){t.updateCollectionType(e)}}),this.$(".upload-footer-extension-info").on("click",function(e){t.showExtensionInfo({$el:r(e.target),title:t.select_extension.text(),extension:t.select_extension.value(),placement:"top"})}).on("mousedown",function(e){e.preventDefault()}),this.select_genome=new l.View({css:"upload-footer-selection",container:this.$(".upload-footer-genome"),data:this.list_genomes,value:this.options.default_genome,onchange:function(e){t.updateGenome(e)}}),this.collection.on("remove",function(e){t._eventRemove(e)}),this._updateScreen()},_eventAnnounce:function(e,n){this.counter.announce++;var s=new t.Model({id:e,file_name:n.name,file_size:n.size,file_mode:n.mode||"local",file_path:n.path,file_data:n,
+extension:this.select_extension.value(),genome:this.select_genome.value()});this.collection.add(s);var a=new i(this,{model:s});this.$(".upload-table > tbody:first").append(a.$el),this._updateScreen(),a.render()},_eventProgress:function(e,t){var i=this.collection.get(e);i.set("percentage",t),this.ui_button.model.set("percentage",this._uploadPercentage(t,i.get("file_size")))},_eventSuccess:function(e,t){var i=o.pluck(t.outputs,"hid"),n=this.collection.get(e);n.set({percentage:100,status:"success",hids:i}),this.ui_button.model.set("percentage",this._uploadPercentage(100,n.get("file_size"))),this.upload_completed+=100*n.get("file_size"),this.counter.announce--,this.counter.success++,this._updateScreen(),Galaxy.currHistoryPanel.refreshContents()},_eventError:function(e,t){var i=this.collection.get(e);i.set({percentage:100,status:"error",info:t}),this.ui_button.model.set({percentage:this._uploadPercentage(100,i.get("file_size")),status:"danger"}),this.upload_completed+=100*i.get("file_size"),this.counter.announce--,this.counter.error++,this._updateScreen()},_eventComplete:function(){this.collection.each(function(e){"queued"==e.get("status")&&e.set("status","init")}),this.counter.running=0,this._updateScreen()},_eventBuild:function(){var e=[];o.forEach(this.collection.models,function(t){e.push.apply(e,t.get("hids"))});var t=o.map(e,function(e){return Galaxy.currHistoryPanel.collection.getByHid(e)}),i=new Galaxy.currHistoryPanel.collection.constructor(t);i.historyId=Galaxy.currHistoryPanel.collection.historyId,Galaxy.currHistoryPanel.buildCollection(this.collectionType,i,!0),this.counter.running=0,this._updateScreen(),this._eventReset(),this.app.modal.hide()},_eventRemove:function(e){var t=e.get("status");"success"==t?this.counter.success--:"error"==t?this.counter.error--:this.counter.announce--,this.uploadbox.remove(e.id),this._updateScreen()},showExtensionInfo:function(e){var t=this,i=e.$el,n=e.extension,a=e.title,r=o.findWhere(t.list_extensions,{id:n});this.extension_popup&&this.extension_popup.remove(),this.extension_popup=new s.View({placement:e.placement||"bottom",container:i}),this.extension_popup.title(a),this.extension_popup.empty(),this.extension_popup.append(this._templateDescription(r)),this.extension_popup.show()},_eventFtp:function(){if(this.ftp.visible)this.ftp.hide();else{this.ftp.empty();var e=this;this.ftp.append(new n({collection:this.collection,ftp_upload_site:this.ftp_upload_site,onadd:function(t){e.uploadbox.add([{mode:"ftp",name:t.path,size:t.size,path:t.path}])},onremove:function(t){e.collection.remove(t)}}).$el),this.ftp.show()}},_eventCreate:function(){this.uploadbox.add([{name:"New File",size:0,mode:"new"}])},_eventStart:function(){if(!(0==this.counter.announce||this.counter.running>0)){var e=this;this.upload_size=0,this.upload_completed=0,this.collection.each(function(t){"init"==t.get("status")&&(t.set("status","queued"),e.upload_size+=t.get("file_size"))}),this.ui_button.model.set({percentage:0,status:"success"}),this.counter.running=this.counter.announce,this.history_id=this.app.currentHistory(),this.uploadbox.start(),this._updateScreen()}},_eventStop:function(){this.counter.running>0&&(this.ui_button.model.set("status","info"),r(".upload-top-info").html("Queue will pause after completing the current file..."),this.uploadbox.stop())},_eventReset:function(){0==this.counter.running&&(this.collection.reset(),this.counter.reset(),this.uploadbox.reset(),this.select_extension.value(this.options.default_extension),this.select_genome.value(this.options.default_genome),this.ui_button.model.set("percentage",0),this._updateScreen())},updateExtension:function(e,t){var i=this;this.collection.each(function(n){"init"!=n.get("status")||n.get("extension")!=i.options.default_extension&&t||n.set("extension",e)})},updateCollectionType:function(e){this.collectionType=e},updateGenome:function(e,t){var i=this;this.collection.each(function(n){"init"!=n.get("status")||n.get("genome")!=i.options.default_genome&&t||n.set("genome",e)})},_updateScreen:function(){var e="";e=0==this.counter.announce?this.uploadbox.compatible()?" ":"Browser does not support Drag & Drop. Try Firefox 4+, Chrome 7+, IE 10+, Opera 12+ or Safari 6+.":0==this.counter.running?"You added "+this.counter.announce+" file(s) to the queue. Add more files or click 'Start' to proceed.":"Please wait..."+this.counter.announce+" out of "+this.counter.running+" remaining.",this.$(".upload-top-info").html(e);var t=0==this.counter.running&&this.counter.announce+this.counter.success+this.counter.error>0,i=0==this.counter.running&&this.counter.announce>0,n=0==this.counter.running&&0==this.counter.announce&&this.counter.success>0&&0==this.counter.error,s=0==this.counter.running,a=this.counter.announce+this.counter.success+this.counter.error>0;this.btnReset[t?"enable":"disable"](),this.btnStart[i?"enable":"disable"](),this.btnStart.$el[i?"addClass":"removeClass"]("btn-primary"),this.btnBuild[n?"enable":"disable"](),this.btnBuild.$el[n?"addClass":"removeClass"]("btn-primary"),this.btnStop[this.counter.running>0?"enable":"disable"](),this.btnLocal[s?"enable":"disable"](),this.btnFtp[s?"enable":"disable"](),this.btnCreate[s?"enable":"disable"](),this.btnFtp.$el[this.ftp_upload_site?"show":"hide"](),this.$(".upload-table")[a?"show":"hide"](),this.$(".upload-helper")[a?"hide":"show"]()},_uploadPercentage:function(e,t){return(this.upload_completed+e*t)/this.upload_size},_templateDescription:function(e){if(e.description){var t=e.description;return e.description_url&&(t+=' (read more )'),t}return"There is no description available for this file extension."},_template:function(){return''}})}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(2),i(1))},function(e,t,i){var n,s;(function(a,o,r){n=[i(4),i(65),i(64),i(16),i(7),i(17),i(68)],s=function(e,t,i,n,s,l){return a.View.extend({status_classes:{init:"upload-mode fa fa-exclamation text-primary",ready:"upload-mode fa fa-check text-success",running:"upload-mode fa fa-spinner fa-spin",success:"upload-mode fa fa-check",error:"upload-mode fa fa-exclamation-triangle"},initialize:function(e,t){var i=this;this.app=e,this.model=t.model,this.setElement(this._template()),this.$source=this.$(".upload-source"),this.$settings=this.$(".upload-settings"),this.$status=this.$(".upload-status"),this.$text=this.$(".upload-text"),this.$text_content=this.$(".upload-text-content"),this.$info_text=this.$(".upload-info-text"),this.$info_progress=this.$(".upload-info-progress"),this.$file_name=this.$(".upload-file-name"),this.$file_desc=this.$(".upload-file-desc"),this.$file_size=this.$(".upload-file-size"),this.$progress_bar=this.$(".upload-progress-bar"),this.$percentage=this.$(".upload-percentage"),this.uploadinput=this.$el.uploadinput({ondragover:function(){i.model.get("enabled")&&i.$el.addClass("warning")},ondragleave:function(){i.$el.removeClass("warning")},onchange:function(e){"running"!=i.model.get("status")&&e&&e.length>0&&(i.model.reset({file_data:e[0],file_name:e[0].name,file_size:e[0].size,file_mode:e[0].mode||"local"}),i._refreshReady())}}),this.button_menu=new s.ButtonMenu({icon:"fa-caret-down",title:"Select",pull:"left"}),this.$source.append(this.button_menu.$el),this.button_menu.addMenu({icon:"fa-laptop",title:"Choose local file",onclick:function(){i.uploadinput.dialog()}}),this.app.ftp_upload_site&&this.button_menu.addMenu({icon:"fa-folder-open-o",title:"Choose FTP file",onclick:function(){i._showFtp()}}),this.button_menu.addMenu({icon:"fa-edit",title:"Paste/Fetch data",onclick:function(){i.model.reset({file_mode:"new",file_name:"New File"})}}),this.ftp=new n.View({title:"Choose FTP file:",container:this.$source.find(".ui-button-menu"),placement:"right"}),this.settings=new n.View({title:"Upload configuration",container:this.$settings,placement:"bottom"}),this.$text_content.on("change input",function(e){i.model.set({url_paste:o(e.target).val(),file_size:o(e.target).val().length}),i._refreshReady()}),this.$settings.on("click",function(e){i._showSettings()}).on("mousedown",function(e){e.preventDefault()}),this.listenTo(this.model,"change:percentage",function(){i._refreshPercentage()}),this.listenTo(this.model,"change:status",function(){i._refreshStatus()}),this.listenTo(this.model,"change:info",function(){i._refreshInfo()}),this.listenTo(this.model,"change:file_name",function(){i._refreshFileName()}),this.listenTo(this.model,"change:file_mode",function(){i._refreshMode()}),this.listenTo(this.model,"change:file_size",function(){i._refreshFileSize()}),this.listenTo(this.model,"remove",function(){i.remove()}),this.app.collection.on("reset",function(){i.remove()})},render:function(){this.$el.attr("id","upload-row-"+this.model.id),this.$file_name.html(r.escape(this.model.get("file_name")||"-")),this.$file_desc.html(this.model.get("file_desc")||"Unavailable"),this.$file_size.html(e.bytesToString(this.model.get("file_size"))),this.$status.removeClass().addClass(this.status_classes.init)},remove:function(){a.View.prototype.remove.apply(this)},_refreshReady:function(){this.app.collection.each(function(e){e.set("status",e.get("file_size")>0&&"ready"||"init")})},_refreshMode:function(){var e=this.model.get("file_mode");"new"==e?(this.height=this.$el.height(),this.$text.css({width:this.$el.width()-16+"px",top:this.$el.height()-8+"px"}).show(),this.$el.height(this.$el.height()-8+this.$text.height()+16),this.$text_content.val("").trigger("keyup")):(this.$el.height(this.height),this.$text.hide())},_refreshInfo:function(){var e=this.model.get("info");e?this.$info_text.html("Failed: "+e).show():this.$info_text.hide()},_refreshPercentage:function(){var e=parseInt(this.model.get("percentage"));0!=e?this.$progress_bar.css({width:e+"%"}):(this.$progress_bar.addClass("no-transition"),this.$progress_bar.css({width:"0%"}),this.$progress_bar[0].offsetHeight,this.$progress_bar.removeClass("no-transition")),this.$percentage.html(100!=e?e+"%":"Adding to history...")},_refreshStatus:function(){var e=this.model.get("status");this.$status.removeClass().addClass(this.status_classes[e]),this.model.set("enabled","running"!=e),this.$text_content.attr("disabled",!this.model.get("enabled")),this.$el.removeClass("success danger warning"),"running"!=e&&"ready"!=e||this.model.set("percentage",0),this.$source.find(".button")["running"==e?"addClass":"removeClass"]("disabled"),"success"==e&&(this.$el.addClass("success"),this.model.set("percentage",100),this.$percentage.html("100%")),"error"==e?(this.$el.addClass("danger"),this.model.set("percentage",0),this.$info_progress.hide(),this.$info_text.show()):(this.$info_progress.show(),this.$info_text.hide())},_refreshFileName:function(){this.$file_name.html(this.model.get("file_name")||"-")},_refreshFileSize:function(){this.$file_size.html(e.bytesToString(this.model.get("file_size")))},_showFtp:function(){if(this.ftp.visible)this.ftp.hide();else{var e=this;this.ftp.empty(),this.ftp.append(new i({ftp_upload_site:this.app.ftp_upload_site,onchange:function(t){e.ftp.hide(),"running"!=e.model.get("status")&&t&&(e.model.reset({file_mode:"ftp",file_name:t.path,file_size:t.size,file_path:t.path}),e._refreshReady())}}).$el),this.ftp.show()}},_showSettings:function(){this.settings.visible?this.settings.hide():(this.settings.empty(),this.settings.append(new t(this).$el),this.settings.show())},_template:function(){return'
You can tell Galaxy to download data from web by entering URL in this box (one per line). You can also directly paste the contents of a file.
'}})}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1),i(2))},function(e,t,i){var n,s;(function(a,o,r){n=[i(4),i(26),i(131),i(16),i(17),i(7)],s=function(e,t,i,n,s,l){return a.View.extend({collection:new t.Collection,initialize:function(e){var t=this;this.app=e,this.options=e.options,this.list_extensions=e.list_extensions,this.list_genomes=e.list_genomes,this.ftp_upload_site=e.currentFtp(),this.setElement(this._template()),this.btnStart=new l.Button({title:"Start",onclick:function(){t._eventStart()}}),this.btnClose=new l.Button({title:"Close",onclick:function(){t.app.modal.hide()}}),o.each([this.btnStart,this.btnClose],function(e){t.$(".upload-buttons").prepend(e.$el)}),this.select_extension=new s.View({css:"upload-footer-selection",container:this.$(".upload-footer-extension"),data:o.filter(this.list_extensions,function(e){return e.composite_files}),onchange:function(e){t.collection.reset();var i=o.findWhere(t.list_extensions,{id:e});i&&i.composite_files&&o.each(i.composite_files,function(e){t.collection.add({id:t.collection.size(),file_desc:e.description||e.name})})}}),this.$(".upload-footer-extension-info").on("click",function(e){t._showExtensionInfo({$el:r(e.target),title:t.select_extension.text(),extension:t.select_extension.value(),placement:"top"})}).on("mousedown",function(e){e.preventDefault()}),this.select_genome=new s.View({css:"upload-footer-selection",container:this.$(".upload-footer-genome"),data:this.list_genomes,value:this.options.default_genome}),this.listenTo(this.collection,"add",function(e){t._eventAnnounce(e)}),this.listenTo(this.collection,"change add",function(){t.render()}),this.select_extension.options.onchange(this.select_extension.value()),this.render()},render:function(){var e=this.collection.first();e&&"running"==e.get("status")?(this.select_genome.disable(),this.select_extension.disable()):(this.select_genome.enable(),this.select_extension.enable()),this.collection.where({status:"ready"}).length==this.collection.length&&this.collection.length>0?(this.btnStart.enable(),this.btnStart.$el.addClass("btn-primary")):(this.btnStart.disable(),this.btnStart.$el.removeClass("btn-primary")),this.$(".upload-table")[this.collection.length>0?"show":"hide"]()},_eventAnnounce:function(e){var t=new i(this,{model:e});this.$(".upload-table > tbody:first").append(t.$el),this.$(".upload-table")[this.collection.length>0?"show":"hide"](),t.render()},_eventStart:function(){var e=this;this.collection.each(function(t){t.set({genome:e.select_genome.value(),extension:e.select_extension.value()})}),r.uploadpost({url:this.app.options.nginx_upload_path,data:this.app.toData(this.collection.filter()),success:function(t){e._eventSuccess(t)},error:function(t){e._eventError(t)},progress:function(t){e._eventProgress(t)}})},_eventProgress:function(e){this.collection.each(function(t){t.set("percentage",e)})},_eventSuccess:function(e){this.collection.each(function(e){e.set("status","success")}),Galaxy.currHistoryPanel.refreshContents()},_eventError:function(e){this.collection.each(function(t){t.set({status:"error",info:e})})},_showExtensionInfo:function(e){var t=e.$el,i=e.extension,s=e.title,a=o.findWhere(this.list_extensions,{id:i});this.extension_popup&&this.extension_popup.remove(),this.extension_popup=new n.View({placement:e.placement||"bottom",container:t,destroy:!0}),this.extension_popup.title(s),this.extension_popup.empty(),this.extension_popup.append(this._templateDescription(a)),this.extension_popup.show()},_templateDescription:function(e){if(e.description){var t=e.description;return e.description_url&&(t+=' (read more )'),t}return"There is no description available for this file extension."},_template:function(){return'Description Name Size Settings Status
'}})}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(2),i(1))},function(e,t,i){var n,s;(function(a,o,r){n=[i(4),i(26),i(65),i(16),i(17)],s=function(e,t,i,n,s){return a.View.extend({status_classes:{init:"upload-icon-button fa fa-trash-o",queued:"upload-icon fa fa-spinner fa-spin",running:"upload-icon fa fa-spinner fa-spin",success:"upload-icon-button fa fa-check",error:"upload-icon-button fa fa-exclamation-triangle"},initialize:function(e,t){var i=this;this.app=e,this.model=t.model,this.setElement(this._template(t.model)),this.$mode=this.$(".upload-mode"),this.$title=this.$(".upload-title"),this.$text=this.$(".upload-text"),this.$size=this.$(".upload-size"),this.$info_text=this.$(".upload-info-text"),this.$info_progress=this.$(".upload-info-progress"),this.$text_content=this.$(".upload-text-content"),this.$settings=this.$(".upload-settings"),this.$symbol=this.$(".upload-symbol"),this.$progress_bar=this.$(".upload-progress-bar"),this.$percentage=this.$(".upload-percentage"),this.settings=new n.View({title:"Upload configuration",container:this.$(".upload-settings"),placement:"bottom"});var a=this.app.select_genome.value(),r=this.app.select_extension.value();this.select_genome=new s.View({css:"upload-genome",data:i.app.list_genomes,container:this.$(".upload-genome"),value:a,onchange:function(e){i.model.set("genome",e)}}),this.select_extension=new s.View({css:"upload-extension",data:i.app.list_extensions,container:this.$(".upload-extension"),value:r,onchange:function(e){i.model.set("extension",e)}}),this.model.set({genome:a,extension:r}),this.$symbol.on("click",function(){i._removeRow()}),this.$(".upload-extension-info").on("click",function(e){i.app.showExtensionInfo({$el:o(e.target),title:i.select_extension.text(),extension:i.select_extension.value()})}).on("mousedown",function(e){e.preventDefault()}),this.$settings.on("click",function(e){i._showSettings()}).on("mousedown",function(e){e.preventDefault()}),this.$text_content.on("change input",function(e){i.model.set({url_paste:o(e.target).val(),file_size:o(e.target).val().length})}),this.listenTo(this.model,"change:percentage",function(){i._refreshPercentage()}),this.listenTo(this.model,"change:status",function(){i._refreshStatus()}),this.listenTo(this.model,"change:info",function(){i._refreshInfo()}),this.listenTo(this.model,"change:genome",function(){i._refreshGenome()}),this.listenTo(this.model,"change:extension",function(){i._refreshExtension()}),this.listenTo(this.model,"change:file_size",function(){i._refreshFileSize()}),this.listenTo(this.model,"remove",function(){i.remove()}),this.app.collection.on("reset",function(){i.remove()})},render:function(){var t=this.model.attributes;this.$title.html(r.escape(t.file_name)),this.$size.html(e.bytesToString(t.file_size)),this.$mode.removeClass().addClass("upload-mode").addClass("text-primary"),"new"==t.file_mode?(this.$text.css({width:this.$el.width()-16+"px",top:this.$el.height()-8+"px"}).show(),this.$el.height(this.$el.height()-8+this.$text.height()+16),this.$mode.addClass("fa fa-edit")):"local"==t.file_mode?this.$mode.addClass("fa fa-laptop"):"ftp"==t.file_mode&&this.$mode.addClass("fa fa-folder-open-o")},remove:function(){this.select_genome.remove(),this.select_extension.remove(),a.View.prototype.remove.apply(this)},_refreshExtension:function(){this.select_extension.value(this.model.get("extension"))},_refreshGenome:function(){this.select_genome.value(this.model.get("genome"))},_refreshInfo:function(){var e=this.model.get("info");e?this.$info_text.html("Failed: "+e).show():this.$info_text.hide()},_refreshPercentage:function(){var e=parseInt(this.model.get("percentage"));this.$progress_bar.css({width:e+"%"}),this.$percentage.html(100!=e?e+"%":"Adding to history...")},_refreshStatus:function(){var e=this.model.get("status");this.$symbol.removeClass().addClass("upload-symbol").addClass(this.status_classes[e]),this.model.set("enabled","init"==e);var t=this.model.get("enabled");this.$text_content.attr("disabled",!t),t?(this.select_genome.enable(),this.select_extension.enable()):(this.select_genome.disable(),this.select_extension.disable()),"success"==e&&(this.$el.addClass("success"),this.$percentage.html("100%")),"error"==e&&(this.$el.addClass("danger"),this.$info_progress.hide())},_refreshFileSize:function(){this.$size.html(e.bytesToString(this.model.get("file_size")))},_removeRow:function(){["init","success","error"].indexOf(this.model.get("status"))!==-1&&this.app.collection.remove(this.model)},_showSettings:function(){this.settings.visible?this.settings.hide():(this.settings.empty(),this.settings.append(new i(this).$el),this.settings.show())},_template:function(e){return'
You can tell Galaxy to download data from web by entering URL in this box (one per line). You can also directly paste the contents of a file.
 
'}})}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1),i(2))},function(e,t,i){var n,s;(function(a,o,r){n=[i(4),i(26),i(133),i(64),i(16),i(17),i(7),i(68)],s=function(e,t,i,n,s,l,c){return a.View.extend({upload_size:0,collection:new t.Collection,counter:{announce:0,success:0,error:0,running:0,reset:function(){this.announce=this.success=this.error=this.running=0}},initialize:function(e){var t=this;this.app=e,this.options=e.options,this.list_extensions=e.list_extensions,this.list_genomes=e.list_genomes,this.ui_button=e.ui_button,this.ftp_upload_site=e.currentFtp(),this.setElement(this._template()),this.btnLocal=new c.Button({id:"btn-local",title:"Choose local file",onclick:function(){t.uploadbox.select()},icon:"fa fa-laptop"}),this.btnFtp=new c.Button({id:"btn-ftp",title:"Choose FTP file",onclick:function(){t._eventFtp()},icon:"fa fa-folder-open-o"}),this.btnCreate=new c.Button({id:"btn-new",title:"Paste/Fetch data",onclick:function(){t._eventCreate()},icon:"fa fa-edit"}),this.btnStart=new c.Button({id:"btn-start",title:"Start",onclick:function(){t._eventStart()}}),this.btnStop=new c.Button({id:"btn-stop",title:"Pause",onclick:function(){t._eventStop()}}),this.btnReset=new c.Button({id:"btn-reset",title:"Reset",onclick:function(){t._eventReset()}}),this.btnClose=new c.Button({id:"btn-close",title:"Close",onclick:function(){t.app.modal.hide()}}),o.each([this.btnLocal,this.btnFtp,this.btnCreate,this.btnStop,this.btnReset,this.btnStart,this.btnClose],function(e){t.$(".upload-buttons").prepend(e.$el)}),this.uploadbox=this.$(".upload-box").uploadbox({url:this.app.options.nginx_upload_path,announce:function(e,i){t._eventAnnounce(e,i)},initialize:function(e){return t.app.toData([t.collection.get(e)],t.history_id)},progress:function(e,i){t._eventProgress(e,i)},success:function(e,i){t._eventSuccess(e,i)},error:function(e,i){t._eventError(e,i)},complete:function(){t._eventComplete()},ondragover:function(){t.$(".upload-box").addClass("highlight")},ondragleave:function(){t.$(".upload-box").removeClass("highlight")}}),this.ftp=new s.View({title:"FTP files",container:this.btnFtp.$el}),this.select_extension=new l.View({css:"upload-footer-selection",container:this.$(".upload-footer-extension"),data:o.filter(this.list_extensions,function(e){return!e.composite_files}),value:this.options.default_extension,onchange:function(e){t.updateExtension(e)}}),this.$(".upload-footer-extension-info").on("click",function(e){t.showExtensionInfo({$el:r(e.target),title:t.select_extension.text(),extension:t.select_extension.value(),placement:"top"})}).on("mousedown",function(e){e.preventDefault()}),this.select_genome=new l.View({css:"upload-footer-selection",container:this.$(".upload-footer-genome"),data:this.list_genomes,value:this.options.default_genome,onchange:function(e){t.updateGenome(e)}}),this.collection.on("remove",function(e){t._eventRemove(e)}),this._updateScreen()},_eventAnnounce:function(e,n){this.counter.announce++;var s=new t.Model({id:e,file_name:n.name,file_size:n.size,file_mode:n.mode||"local",file_path:n.path,file_data:n});this.collection.add(s);var a=new i(this,{model:s});this.$(".upload-table > tbody:first").append(a.$el),this._updateScreen(),a.render()},_eventProgress:function(e,t){var i=this.collection.get(e);i.set("percentage",t),this.ui_button.model.set("percentage",this._uploadPercentage(t,i.get("file_size")))},_eventSuccess:function(e,t){var i=this.collection.get(e);i.set({percentage:100,status:"success"}),this.ui_button.model.set("percentage",this._uploadPercentage(100,i.get("file_size"))),this.upload_completed+=100*i.get("file_size"),this.counter.announce--,this.counter.success++,this._updateScreen(),Galaxy.currHistoryPanel.refreshContents()},_eventError:function(e,t){var i=this.collection.get(e);i.set({percentage:100,status:"error",info:t}),this.ui_button.model.set({percentage:this._uploadPercentage(100,i.get("file_size")),status:"danger"}),this.upload_completed+=100*i.get("file_size"),this.counter.announce--,this.counter.error++,this._updateScreen()},_eventComplete:function(){this.collection.each(function(e){"queued"==e.get("status")&&e.set("status","init")}),this.counter.running=0,this._updateScreen()},_eventRemove:function(e){var t=e.get("status");"success"==t?this.counter.success--:"error"==t?this.counter.error--:this.counter.announce--,this.uploadbox.remove(e.id),this._updateScreen()},showExtensionInfo:function(e){var t=this,i=e.$el,n=e.extension,a=e.title,r=o.findWhere(t.list_extensions,{id:n});this.extension_popup&&this.extension_popup.remove(),this.extension_popup=new s.View({placement:e.placement||"bottom",container:i}),this.extension_popup.title(a),this.extension_popup.empty(),this.extension_popup.append(this._templateDescription(r)),this.extension_popup.show()},_eventFtp:function(){if(this.ftp.visible)this.ftp.hide();else{this.ftp.empty();var e=this;this.ftp.append(new n({collection:this.collection,ftp_upload_site:this.ftp_upload_site,onadd:function(t){e.uploadbox.add([{mode:"ftp",name:t.path,size:t.size,path:t.path}])},onremove:function(t){e.collection.remove(t)}}).$el),this.ftp.show()}},_eventCreate:function(){this.uploadbox.add([{name:"New File",size:0,mode:"new"}])},_eventStart:function(){if(!(0==this.counter.announce||this.counter.running>0)){var e=this;this.upload_size=0,this.upload_completed=0,this.collection.each(function(t){"init"==t.get("status")&&(t.set("status","queued"),e.upload_size+=t.get("file_size"))}),this.ui_button.model.set({percentage:0,status:"success"}),this.counter.running=this.counter.announce,this.history_id=this.app.currentHistory(),this.uploadbox.start(),this._updateScreen()}},_eventStop:function(){this.counter.running>0&&(this.ui_button.model.set("status","info"),r(".upload-top-info").html("Queue will pause after completing the current file..."),this.uploadbox.stop())},_eventReset:function(){0==this.counter.running&&(this.collection.reset(),this.counter.reset(),this.uploadbox.reset(),this.select_extension.value(this.options.default_extension),this.select_genome.value(this.options.default_genome),this.ui_button.model.set("percentage",0),this._updateScreen())},updateExtension:function(e,t){var i=this;this.collection.each(function(n){"init"!=n.get("status")||n.get("extension")!=i.options.default_extension&&t||n.set("extension",e)})},updateGenome:function(e,t){var i=this;this.collection.each(function(n){"init"!=n.get("status")||n.get("genome")!=i.options.default_genome&&t||n.set("genome",e)})},_updateScreen:function(){var e="";e=0==this.counter.announce?this.uploadbox.compatible()?" ":"Browser does not support Drag & Drop. Try Firefox 4+, Chrome 7+, IE 10+, Opera 12+ or Safari 6+.":0==this.counter.running?"You added "+this.counter.announce+" file(s) to the queue. Add more files or click 'Start' to proceed.":"Please wait..."+this.counter.announce+" out of "+this.counter.running+" remaining.",this.$(".upload-top-info").html(e);var t=0==this.counter.running&&this.counter.announce+this.counter.success+this.counter.error>0,i=0==this.counter.running&&this.counter.announce>0,n=0==this.counter.running,s=this.counter.announce+this.counter.success+this.counter.error>0;this.btnReset[t?"enable":"disable"](),this.btnStart[i?"enable":"disable"](),this.btnStart.$el[i?"addClass":"removeClass"]("btn-primary"),this.btnStop[this.counter.running>0?"enable":"disable"](),this.btnLocal[n?"enable":"disable"](),this.btnFtp[n?"enable":"disable"](),this.btnCreate[n?"enable":"disable"](),this.btnFtp.$el[this.ftp_upload_site?"show":"hide"](),this.$(".upload-table")[s?"show":"hide"](),this.$(".upload-helper")[s?"hide":"show"]()},_uploadPercentage:function(e,t){return(this.upload_completed+e*t)/this.upload_size},_templateDescription:function(e){if(e.description){var t=e.description;return e.description_url&&(t+=' (read more )'),t}return"There is no description available for this file extension."},_template:function(){return'
Drop files here
Name Size Type Genome Settings Status
'}})}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(2),i(1))},function(e,t,i){var n,s;(function(i,a){n=[],s=function(){var e=i.View.extend({initialize:function(e){var t=this;this.model=e&&e.model||new i.Model({icon:"fa-upload",tooltip:"Download from URL or upload files from disk",
label:"Load Data",percentage:0,status:"",onunload:function(){},onclick:function(){}}).set(e),this.setElement(this._template()),this.$progress=this.$(".progress-bar"),this.listenTo(this.model,"change",this.render,this),this.render(),a(window).on("beforeunload",function(){return t.model.get("onunload")()})},render:function(){var e=this.model.attributes;this.$el.off("click").on("click",function(t){e.onclick(t)}).tooltip({title:this.model.get("tooltip"),placement:"bottom"}),this.$progress.removeClass().addClass("progress-bar").addClass("progress-bar-notransition").addClass(""!=e.status&&"progress-bar-"+e.status).css({width:e.percentage+"%"})},_template:function(){return''}});return{View:e}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1))},function(e,t,i){var n,s;(function(a){n=[i(4),i(8),i(63),i(135),i(134),i(132),i(130)],s=function(e,t,i,n,s,o,r){return a.View.extend({options:{nginx_upload_path:"",ftp_upload_site:"n/a",default_genome:"?",default_extension:"auto",height:500,width:900,auto:{id:"auto",text:"Auto-detect",description:"This system will try to detect the file type automatically. If your file is not detected properly as one of the known formats, it most likely means that it has some format problems (e.g., different number of columns on different rows). You can still coerce the system to set your data to the format you think it should be. You can also upload compressed files, which will automatically be decompressed."}},list_extensions:[],list_genomes:[],initialize:function(t){var i=this;this.options=e.merge(t,this.options),this.ui_button=new n.View({onclick:function(e){e.preventDefault(),i.show()},onunload:function(){var e=i.ui_button.model.get("percentage",0);if(e>0&&e<100)return"Several uploads are queued."}}),this.setElement(this.ui_button.$el);var i=this;e.get({url:Galaxy.root+"api/datatypes?extension_only=False",success:function(e){for(key in e)i.list_extensions.push({id:e[key].extension,text:e[key].extension,description:e[key].description,description_url:e[key].description_url,composite_files:e[key].composite_files});i.list_extensions.sort(function(e,t){var i=e.text&&e.text.toLowerCase(),n=t.text&&t.text.toLowerCase();return i>n?1:it.text?1:e.text0){var n={};n.dbkey=e[0].get("genome",null),n.file_type=e[0].get("extension",null);for(var s in e){var a=e[s];if(a.set("status","running"),!(a.get("file_size")>0)){i.error_message="Upload content incomplete.",a.set("status","error"),a.set("info",i.error_message);break}var o="files_"+s+"|";switch(n[o+"type"]="upload_dataset",n[o+"space_to_tab"]=a.get("space_to_tab")&&"Yes"||null,n[o+"to_posix_lines"]=a.get("to_posix_lines")&&"Yes"||null,a.get("file_mode")){case"new":n[o+"url_paste"]=a.get("url_paste");break;case"ftp":n[o+"ftp_files"]=a.get("file_path");break;case"local":i.files.push({name:o+"file_data",file:a.get("file_data")})}}i.payload.inputs=JSON.stringify(n)}return i}})}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3))},function(e,t,i){var n,s;(function(a,o){n=[i(4),i(7),i(13),i(32)],s=function(e,t,i,n){var s=a.Collection.extend({comparator:function(e,t){return e=e.get("name"),t=t.get("name"),e>t?1:e ").append(o(" ").text("Current Custom Builds")).append(this.table.$el).append(this.$installed=o("
").append(o(" ").text("System Installed Builds").addClass("ui-margin-top")).append(this.installed_builds.$el)).append(o(" ").text("Add a Custom Build").addClass("ui-margin-top")).append(o(" ").addClass("ui-column").append(o("
").addClass("ui-column-left").append(this.message.$el).append(this.$form=o("
").addClass("ui-margin-top"))).append(this.$help=o("
").addClass("ui-column-right")))),this.listenTo(this.collection,"add remove reset",function(){i._renderTable()}),this.listenTo(this.model,"change",function(){i._renderForm()}),this.collection.fetch(),this.model.fetch()},render:function(){this._renderTable(),this._renderForm()},_renderTable:function(){var e=this;this.table.delAll(),this.collection.sort(),this.collection.each(function(i){e.table.add(i.id),e.table.add(i.get("name")),e.table.add(void 0!==i.get("count")?i.get("count"):"Processing..."),e.table.add(new t.ButtonIcon({icon:"fa-trash-o",cls:"ui-button-icon-plain",tooltip:"Delete custom build.",onclick:function(){i.destroy()}}).$el),e.table.append(i.id)})},_renderForm:function(){var e=this,n="fasta",s=new i({inputs:[{type:"text",name:"name",label:"Name",help:"Specify a build name e.g. Hamster."},{type:"text",name:"id",label:"Key",help:"Specify a build key e.g. hamster_v1."},{name:"len",type:"conditional",test_param:{name:"type",label:"Definition",help:"Provide the data source.",type:"select",value:n,data:[{value:"fasta",label:"FASTA-file from history"},{value:"file",label:"Len-file from disk"},{value:"text",label:"Len-file by copy/paste"}]},cases:[{value:"fasta",inputs:[{type:"select",name:"value",label:"FASTA-file",data:this.model.get("fasta_hdas")}]},{value:"file",inputs:[{type:"upload",name:"value",label:"Len-file",data:this.model.get("len_hdas")}]},{value:"text",inputs:[{type:"text",area:!0,name:"value",label:"Edit/Paste"}]}]}],buttons:{save:new t.Button({icon:"fa-save",tooltip:"Create new Build",title:"Save",cls:"ui-button btn btn-primary",floating:"clear",onclick:function(){var t=s.data.create();t.id&&t.name?e.collection.create(t,{wait:!0,success:function(t){t.get("message")?e.message.update({message:t.get("message"),status:"warning"}):e.message.update({message:"Successfully added a new custom build.",status:"success"})},error:function(t,i){var n=i&&i.responseJSON&&i.responseJSON.err_msg;e.message.update({message:n||"Failed to create custom build.",status:"danger"})}}):e.message.update({message:"All inputs are required.",status:"danger"})}})},onchange:function(){var t=s.data.match("len|type");if(t){var i=s.field_list[t];e._renderHelp(i.value())}}});this.$form.empty().append(s.$el);var a=this.model.get("installed_builds");a&&a.length?(this.$installed.show(),this.installed_builds.update(this.model.get("installed_builds"))):this.$installed.hide(),this._renderHelp(n)},_renderHelp:function(e){this.$help.empty().addClass("alert alert-info").html("fasta"==e?this._templateFasta():this._templateLen())},_templateLen:function(){return"Length Format The length format is two-column, separated by whitespace, of the form:
chrom/contig length of chrom/contig For example, the first few entries of mm9.len are as follows:
chr1 197195432\nchr2 181748087\nchr3 159599783\nchr4 155630120\nchr5 152537259 Trackster uses this information to populate the select box for chrom/contig, andto set the maximum basepair of the track browser. You may either upload a .len fileof this format (Len File option), or directly enter the information into the box (Len Entry option).
"},_templateFasta:function(){return"FASTA format This is a multi-fasta file from your current history that provides the genomesequences for each chromosome/contig in your build.
Here is a snippet from an example multi-fasta file:
>chr1\nATTATATATAAGACCACAGAGAGAATATTTTGCCCGG...\n\n>chr2\nGGCGGCCGCGGCGATATAGAACTACTCATTATATATA...\n\n... "}});return{View:r}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1))},function(e,t,i){var n,s;(function(a,o,r){n=[i(13),i(7)],s=function(e,t){var i=a.Model.extend({initialize:function(e){e=e||{},e.user_id=e.user_id||Galaxy.user.id,this.set({user_id:e.user_id,information:{title:"Manage information",description:"Edit your email, addresses and custom parameters or change your username.",url:"api/users/"+e.user_id+"/information/inputs",icon:"fa-user"},password:{title:"Change password",description:"Allows you to change your login credentials.",icon:"fa-unlock-alt",url:"api/users/"+e.user_id+"/password/inputs",submit_title:"Save password"},communication:{title:"Change communication settings",description:"Enable or disable the communication feature to chat with other users.",url:"api/users/"+e.user_id+"/communication/inputs",icon:"fa-comments-o"},permissions:{title:"Set dataset permissions for new histories",description:"Grant others default access to newly created histories. Changes made here will only affect histories created after these settings have been stored.",url:"api/users/"+e.user_id+"/permissions/inputs",icon:"fa-users",submit_title:"Save permissions"},api_key:{title:"Manage API key",description:"Access your current API key or create a new one.",url:"api/users/"+e.user_id+"/api_key/inputs",icon:"fa-key",submit_title:"Create a new key",submit_icon:"fa-check"},toolbox_filters:{title:"Manage Toolbox filters",description:"Customize your Toolbox by displaying or omitting sets of Tools.",url:"api/users/"+e.user_id+"/toolbox_filters/inputs",icon:"fa-filter",submit_title:"Save filters"},openids:{title:"Manage OpenIDs",description:"Associate OpenIDs with your account.",icon:"fa-openid",onclick:function(){window.location.href=Galaxy.root+"user/openid_manage?cntrller=user&use_panels=True"}},custom_builds:{title:"Manage custom builds",description:"Add or remove custom builds using history datasets.",icon:"fa-cubes",onclick:function(){window.location.href=Galaxy.root+"custom_builds"}},configure_menu:{title:"Configure workflow menu",description:"Configure your workflow items which appear in the Tool panel.",icon:"fa-cog",onclick:function(){window.location.href=Galaxy.root+"workflow/configure_menu"}},logout:{title:"Sign out",description:"Click here to sign out of all sessions.",icon:"fa-sign-out",onclick:function(){Galaxy.modal.show({title:"Sign out",body:"Do you want to continue and sign out of all active sessions?",buttons:{Cancel:function(){Galaxy.modal.hide()},"Sign out":function(){window.location.href=Galaxy.root+"user/logout"}}})}}})}}),n=a.View.extend({initialize:function(){this.model=new i,this.message=new t.Message,this.setElement("
"),this.render()},render:function(){var e=this,t=Galaxy.config;o.getJSON(Galaxy.root+"api/users/"+Galaxy.user.id,function(i){e.$preferences=o("
").addClass("ui-panel").append(e.message.$el).append(o(" ").append("User preferences")).append(o("
").append("You are logged in as "+r.escape(i.email)+" .")).append(e.$table=o("").addClass("ui-panel-table")),t.use_remote_user||(e._addLink("information"),e._addLink("password")),t.enable_communication_server&&e._addLink("communication"),e._addLink("custom_builds"),e._addLink("permissions"),e._addLink("api_key"),t.has_user_tool_filters&&e._addLink("toolbox_filters"),t.enable_openid&&!t.use_remote_user&&e._addLink("openids"),e._addLink("configure_menu"),e._addLink("logout"),e.$preferences.append(e._templateFooter(i)),e.$el.empty().append(e.$preferences)})},_addLink:function(e){var t=this.model.get(e),i=o(this._templateLink(t)),n=i.find("a");t.onclick?n.on("click",function(){t.onclick()}):n.attr("href",Galaxy.root+"user/"+e),this.$table.append(i)},_templateLink:function(e){return'
'+e.title+' '+e.description+"
"},_templateFooter:function(e){return''}}),s=a.View.extend({initialize:function(e){this.model=new i(e),this.page=this.model.get(e.form_id),this.setElement("
"),this.render()},render:function(){var i=this;o.ajax({url:Galaxy.root+this.page.url,type:"GET"}).done(function(n){var s=o.extend({},i.page,n),a=new e({title:s.title,icon:s.icon,inputs:s.inputs,operations:{submit:new t.ButtonIcon({tooltip:s.submit_tooltip,title:s.submit_title||"Save settings",icon:s.submit_icon||"fa-save",onclick:function(){i._submit(a,s)}})}});i.$el.empty().append(a.$el)}).fail(function(e){i.$el.empty().append(new t.Message({message:"Failed to load resource "+i.page.url+".",status:"danger",persistent:!0}).$el)})},_submit:function(e,t){o.ajax({url:Galaxy.root+t.url,data:JSON.stringify(e.data.create()),type:"PUT",contentType:"application/json"}).done(function(t){e.data.matchModel(t,function(t,i){e.field_list[i].value(t.value)}),e.message.update({message:t.message,status:"success"})}).fail(function(t){e.message.update({message:t.responseJSON.err_msg,status:"danger"})})}});return{View:n,Forms:s}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1),i(2))},,function(e,t,i){var n,s;(function(i,a,o){n=[],s=function(){var e=i.View.extend({initialize:function(e){this.setElement("
"),this.render()},render:function(){var e=this;a.getJSON(Galaxy.root+"api/workflows/menu/",function(t){var i=t.workflows,n=t.ids_in_menu,s=null;e.$el.empty().append(e._templateConfigWorkflowHeader()),s=e.$el.find(".configure-workflows"),s.append(e._templateActionButtons()),i.length>0?(s.append(e._templateConfigureWorkflow(e,i,n)),e.save_workflow_menu(e),e.make_checked(e,n),e.register_check_uncheck_all(e)):s.append(e._templateNoWorkflow())})},register_check_uncheck_all:function(e){var t=e.$el.find(".check-all-wf"),i=e.$el.find(".uncheck-all-wf");t.click(function(t){e.check_uncheck_all(e,!0)}),i.click(function(t){e.check_uncheck_all(e,!1)})},check_uncheck_all:function(e,t){a.each(e.$el.find(".wf-config-item"),function(){var e=a(this)[0];e.checked=t})},make_checked:function(e,t){a.each(e.$el.find(".wf-config-item"),function(){var e=a(this)[0];o.each(t,function(t){parseInt(e.value)===t&&(e.checked=!0)})})},save_workflow_menu:function(e){var t=e.$el.find(".wf-save-menu");t.click(function(t){var i=[];a.each(e.$el.find(".wf-config-item"),function(){var e=a(this)[0];(e.checked||"true"===e.checked)&&i.push(parseInt(e.value))}),a.ajax({type:"PUT",url:Galaxy.root+"api/workflows/menu/",data:JSON.stringify({workflow_ids:i}),contentType:"application/json"}).done(function(e){window.location=Galaxy.root+"user"})})},_templateActionButtons:function(){return''},_templateConfigureWorkflow:function(e,t,i){var n="",s="";return n+=' ',o.each(t,function(t){s=s+''+o.escape(t.name)+" "+(t.owner===Galaxy.user.attributes.username?"You":t.owner)+' '+t.number_of_steps+' '+e._templateInputCheckbox(e,t,i)+" "}),n=n+'
",n=n+'Back to User Preferences '},_templateNoWorkflow:function(){return' You do not have any accessible workflows.
'},_templateInputCheckbox:function(e,t){return' '},_templateConfigWorkflowHeader:function(){return''}});return{View:e}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(1),i(2))},function(e,t,i){var n,s;n=[],s=function(){return{tool:"fa-wrench",data_input:"fa-file-o",data_collection_input:"fa-folder-o",subworkflow:"fa-sitemap fa-rotate-270",pause:"fa-pause"}}.apply(t,n),!(void 0!==s&&(e.exports=s))},function(e,t,i){var n,s;(function(a,o,r){n=[i(4)],s=function(e){function t(t){var i=t.$el.find(".response-message"),n=e.getQueryString("status"),s=e.getQueryString("message");s&&null!==s&&""!==s?(i.addClass(n+"message"),i.html(""+a.escape(s)+"
")):i.html("")}var i=o.View.extend({initialize:function(){this.setElement("
"),this.render()},render:function(){var e=this,i=3;r.getJSON(Galaxy.root+"api/workflows/",function(n){var s=null;e.$el.empty().append(e._templateHeader()),t(e),s=e.$el.find(".user-workflows"),s.append(e._templateActionButtons()),n.length>0?(s.append(e._templateWorkflowTable(e,n)),e.adjust_actiondropdown(s),a.each(n,function(t){e.confirm_delete(e,t)}),e.search_workflow(e,e.$el.find(".search-wf"),e.$el.find(".workflow-search tr"),i)):s.append(e._templateNoWorkflow())})},confirm_delete:function(e,t){var i=e.$el.find(".link-confirm-"+t.id),n=e.$el.find(".link-confirm-shared-"+t.id);i.click(function(){return confirm("Are you sure you want to delete workflow '"+t.name+"'?")}),n.click(function(){return confirm("Are you sure you want to remove the shared workflow '"+t.name+"'?")})},search_workflow:function(e,t,i,n){t.on("keyup",function(){var e=r(this).val();if(e.length>=n){var t=new RegExp(e,"i");i.hide(),i.filter(function(){return t.test(r(this).text())}).show()}else i.show()})},adjust_actiondropdown:function(e){e.on("show.bs.dropdown",function(){e.css("overflow","inherit")}),e.on("hide.bs.dropdown",function(){e.css("overflow","auto")})},_templateNoWorkflow:function(){return' You have no workflows.
'},_templateActionButtons:function(){return''},_templateWorkflowTable:function(e,t){var i="",n="";return i+=' ',a.each(t,function(t){n=n+''+e._templateActions(t)+"
"+(t.owner===Galaxy.user.attributes.username?"You":t.owner)+" "+t.number_of_steps+" "+(t.published?"Yes":"No")+" "}),i+''+n+"
"},_templateActions:function(e){return e.owner===Galaxy.user.attributes.username?'':''},_templateHeader:function(){return''}}),n=o.View.extend({initialize:function(){this.setElement("
"),this.render()},render:function(){var e=this;r.getJSON(Galaxy.root+"workflow/upload_import_workflow",function(t){e.$el.empty().append(e._mainTemplate(e,t))})},_mainTemplate:function(e,t){return""}});return{View:i,ImportWorkflowView:n}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(2),i(3),i(1))},,,function(e,t,i){var n,s,a;(function(i,o){!function(i,o){s=[],n=o,a="function"==typeof n?n.apply(t,s):n,!(void 0!==a&&(e.exports=a))}(this,function(){function e(e,t){function n(){var i=['','
',' ','loading... ',"
","
"].join("\n"),n=o(i).hide().css(t.css||{position:"fixed"}),s=n.children(".loading-indicator-text");return t.cover?(n.css({"z-index":2,top:e.css("top"),bottom:e.css("bottom"),left:e.css("left"),right:e.css("right"),opacity:.5,"background-color":"white","text-align":"center"}),s=n.children(".loading-indicator-text").css({"margin-top":"20px"})):(s=n.children(".loading-indicator-text").css({margin:"12px 0px 0px 10px",opacity:"0.85",color:"grey"}),s.children(".loading-indicator-message").css({margin:"0px 8px 0px 0px","font-style":"italic"})),n}var s=this;return t=i.extend({cover:!1},t||{}),s.show=function(t,i,a){return t=t||"loading...",i=i||"fast",e.parent().find(".loading-indicator").remove(),s.$indicator=n().insertBefore(e),s.message(t),s.$indicator.fadeIn(i,a),s},s.message=function(e){s.$indicator.find("i").text(e)},s.hide=function(e,t){return e=e||"fast",s.$indicator&&s.$indicator.length?s.$indicator.fadeOut(e,function(){s.$indicator.remove(),t&&t()}):t&&t(),s},s}return e})}).call(t,i(1),i(1))},,function(e,t,i){var n,s;(function(i){n=[],s=function(){function e(e){var t=this;return t.deferred=i.Deferred(),t.queue=[],t.responses=[],t.numToProcess=0,t.running=!1,t.init(e||[]),t.start(),t}function t(t){var i=this;return i.names={},e.call(this,t),i}return e.prototype.init=function(e){var t=this;e.forEach(function(e){t.add(e)})},e.prototype.add=function(e){var t=this,i=this.queue.length;return this.numToProcess+=1,this.queue.push(function(){var n=i,s=e();s.done(function(e){t.deferred.notify({curr:n,total:t.numToProcess,response:e})}),s.always(function(e){t.responses.push(e),t.queue.length?t.queue.shift()():t.stop()})}),this},e.prototype.start=function(){return this.queue.length&&(this.running=!0,this.queue.shift()()),this},e.prototype.stop=function(e,t){return this.running=!1,this.queue=[],e?this.deferred.reject(t):this.deferred.resolve(this.responses),this.numToProcess=0,this.deferred=i.Deferred(),this},e.prototype.done=function(e){return this.deferred.done(e)},e.prototype.fail=function(e){return this.deferred.fail(e)},e.prototype.always=function(e){return this.deferred.always(e)},e.prototype.progress=function(e){return this.deferred.progress(e)},e.create=function(t){return new e(t).deferred},t.prototype=new e,t.prototype.constructor=t,t.prototype.add=function(t){if(!t.hasOwnProperty("name")||!t.hasOwnProperty("fn"))throw new Error('NamedAjaxQueue.add requires an object with both "name" and "fn": '+JSON.stringify(t));if(!this.names.hasOwnProperty(t.name))return this.names[t.name]=!0,e.prototype.add.call(this,t.fn)},t.prototype.clear=function(){return this.names={},this},t.create=function(e){return new t(e).deferred},{AjaxQueue:e,NamedAjaxQueue:t}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(1))},,function(e,t,i){var n,s;n=[],s=function(){function e(e,t){if(0===e.length)return t.length;if(0===t.length)return e.length;var i,n=[];for(i=0;i<=t.length;i++)n[i]=[i];var s;for(s=0;s<=e.length;s++)n[0][s]=s;for(i=1;i<=t.length;i++)for(s=1;s<=e.length;s++)t.charAt(i-1)===e.charAt(s-1)?n[i][s]=n[i-1][s-1]:n[i][s]=Math.min(n[i-1][s-1]+1,Math.min(n[i][s-1]+1,n[i-1][s]+1));return n[t.length][e.length]}return e}.apply(t,n),!(void 0!==s&&(e.exports=s))}]);
//# sourceMappingURL=analysis.bundled.js.map
\ No newline at end of file
diff --git a/static/scripts/bundled/analysis.bundled.js.map b/static/scripts/bundled/analysis.bundled.js.map
index 24886902a3e..e84d34727fb 100644
--- a/static/scripts/bundled/analysis.bundled.js.map
+++ b/static/scripts/bundled/analysis.bundled.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///analysis.bundled.js","webpack:///./galaxy/scripts/apps/analysis.js","webpack:///./galaxy/scripts/mvc/ui/ui-misc.js?fd98","webpack:///./galaxy/scripts/mvc/ui/ui-portlet.js?0568","webpack:///./galaxy/scripts/mvc/dataset/data.js?f841*","webpack:///./galaxy/scripts/mvc/dataset/states.js","webpack:///./galaxy/scripts/mvc/ui/ui-buttons.js?4ced","webpack:///./galaxy/scripts/mvc/form/form-view.js?db3b","webpack:///./galaxy/scripts/mvc/ui/icon-button.js?40a6*","webpack:///./galaxy/scripts/mvc/ui/ui-popover.js","webpack:///./galaxy/scripts/mvc/ui/ui-select.js","webpack:///./galaxy/scripts/ui/editable-text.js?53d0","webpack:///./galaxy/scripts/ui/fa-icon-button.js","webpack:///./galaxy/scripts/viz/trackster/util.js?c726","webpack:///./galaxy/scripts/mvc/citation/citation-model.js?63a3","webpack:///./galaxy/scripts/mvc/grid/grid-view.js?be4f","webpack:///./galaxy/scripts/mvc/ui/popup-menu.js?a948","webpack:///./galaxy/scripts/mvc/ui/ui-list.js?ecf1","webpack:///./galaxy/scripts/mvc/ui/ui-options.js?405a","webpack:///./galaxy/scripts/mvc/ui/ui-select-default.js?402d","webpack:///./galaxy/scripts/mvc/upload/upload-model.js","webpack:///./galaxy/scripts/mvc/form/form-data.js?6144","webpack:///./galaxy/scripts/mvc/tool/tool-form-base.js?81c1","webpack:///./galaxy/scripts/mvc/tool/tool-form.js?a6b7","webpack:///./galaxy/scripts/mvc/ui/ui-table.js?4ded","webpack:///./galaxy/scripts/utils/deferred.js?8fee","webpack:///./galaxy/scripts/libs/bibtex.js?8f2e","webpack:///./galaxy/scripts/mvc/citation/citation-view.js?b4c0","webpack:///./galaxy/scripts/mvc/collection/collection-li.js","webpack:///./galaxy/scripts/mvc/collection/collection-model.js","webpack:///./galaxy/scripts/mvc/collection/list-collection-creator.js","webpack:///./galaxy/scripts/mvc/dataset/dataset-li.js","webpack:///./galaxy/scripts/mvc/form/form-input.js?af7f","webpack:///./galaxy/scripts/mvc/form/form-parameters.js?0ee1","webpack:///./galaxy/scripts/mvc/form/form-repeat.js?7c22","webpack:///./galaxy/scripts/mvc/form/form-section.js?2ccb","webpack:///./galaxy/scripts/mvc/grid/grid-model.js?e551","webpack:///./galaxy/scripts/mvc/grid/grid-template.js?73e1","webpack:///./galaxy/scripts/mvc/history/hdca-model.js","webpack:///./galaxy/scripts/mvc/history/history-contents.js","webpack:///./galaxy/scripts/mvc/history/history-model.js","webpack:///./galaxy/scripts/mvc/history/history-preferences.js","webpack:///./galaxy/scripts/mvc/list/list-item.js","webpack:///./galaxy/scripts/mvc/tag.js","webpack:///./galaxy/scripts/mvc/tool/tools.js?fad9","webpack:///./galaxy/scripts/mvc/ui/ui-color-picker.js?fa1d","webpack:///./galaxy/scripts/mvc/ui/ui-drilldown.js?de06","webpack:///./galaxy/scripts/mvc/ui/ui-select-content.js?e092","webpack:///./galaxy/scripts/mvc/ui/ui-select-ftp.js?cf41","webpack:///./galaxy/scripts/mvc/ui/ui-select-library.js?fd76","webpack:///./galaxy/scripts/mvc/ui/ui-slider.js?93a7","webpack:///./galaxy/scripts/mvc/ui/ui-tabs.js?173b","webpack:///./galaxy/scripts/mvc/upload/upload-ftp.js","webpack:///./galaxy/scripts/mvc/upload/upload-settings.js","webpack:///./galaxy/scripts/utils/uploadbox.js","webpack:///./galaxy/scripts/mvc/annotation.js","webpack:///./galaxy/scripts/mvc/base/controlled-fetch-collection.js","webpack:///./galaxy/scripts/mvc/collection/base-creator.js","webpack:///./galaxy/scripts/mvc/collection/collection-view.js","webpack:///./galaxy/scripts/mvc/dataset/dataset-li-edit.js","webpack:///./galaxy/scripts/mvc/dataset/dataset-model.js","webpack:///./galaxy/scripts/mvc/history/copy-dialog.js","webpack:///./galaxy/scripts/mvc/history/hda-li.js","webpack:///./galaxy/scripts/mvc/history/hda-model.js","webpack:///./galaxy/scripts/mvc/history/hdca-li.js","webpack:///./galaxy/scripts/mvc/history/history-content-model.js","webpack:///./galaxy/scripts/mvc/list/list-view.js","webpack:///./galaxy/scripts/mvc/tool/tool-form-composite.js","webpack:///./galaxy/scripts/mvc/ui/error-modal.js","webpack:///./galaxy/scripts/ui/hoverhighlight.js","webpack:///./galaxy/scripts/ui/search-input.js","webpack:///./galaxy/scripts/utils/natural-sort.js","webpack:///./galaxy/scripts/apps/panels/history-panel.js","webpack:///./galaxy/scripts/apps/panels/tool-panel.js","webpack:///./galaxy/scripts/mvc/collection/collection-li-edit.js","webpack:///./galaxy/scripts/mvc/collection/collection-view-edit.js","webpack:///./galaxy/scripts/mvc/collection/list-of-pairs-collection-creator.js","webpack:///./galaxy/scripts/mvc/collection/pair-collection-creator.js","webpack:///./galaxy/scripts/mvc/history/hda-li-edit.js","webpack:///./galaxy/scripts/mvc/history/hdca-li-edit.js","webpack:///./galaxy/scripts/mvc/history/history-list.js","webpack:///./galaxy/scripts/mvc/history/history-view-edit-current.js","webpack:///./galaxy/scripts/mvc/history/history-view-edit.js","webpack:///./galaxy/scripts/mvc/history/history-view.js","webpack:///./galaxy/scripts/mvc/history/options-menu.js","webpack:///./galaxy/scripts/mvc/page/page-list.js","webpack:///./galaxy/scripts/mvc/upload/collection/collection-row.js","webpack:///./galaxy/scripts/mvc/upload/collection/collection-view.js","webpack:///./galaxy/scripts/mvc/upload/composite/composite-row.js","webpack:///./galaxy/scripts/mvc/upload/composite/composite-view.js","webpack:///./galaxy/scripts/mvc/upload/default/default-row.js","webpack:///./galaxy/scripts/mvc/upload/default/default-view.js","webpack:///./galaxy/scripts/mvc/upload/upload-button.js","webpack:///./galaxy/scripts/mvc/upload/upload-view.js","webpack:///./galaxy/scripts/mvc/user/user-custom-builds.js","webpack:///./galaxy/scripts/mvc/user/user-preferences.js","webpack:///./galaxy/scripts/mvc/workflow/workflow-configure-menu.js","webpack:///./galaxy/scripts/mvc/workflow/workflow-icons.js","webpack:///./galaxy/scripts/mvc/workflow/workflow.js","webpack:///./galaxy/scripts/ui/loading-indicator.js","webpack:///./galaxy/scripts/utils/ajax-queue.js","webpack:///./galaxy/scripts/utils/levenshtein.js"],"names":["webpackJsonp","module","exports","__webpack_require__","Backbone","_","jQuery","$","GalaxyApp","QUERY_STRING","ToolPanel","HistoryPanel","Page","ToolForm","UserPreferences","CustomBuilds","Tours","GridView","PageList","Workflows","HistoryList","WorkflowsConfigureMenu","ToolFormComposite","Utils","Ui","window","app","options","bootstrapped","Galaxy","debug","params","config","routingMessage","View","extend","initialize","this","message","msg_status","type","render","$el","html","escape","addClass","Router","page","push","url","data","__identifer","Math","random","toString","substr","isEmptyObject","indexOf","param","navigate","trigger","execute","callback","args","name","queryObj","parse","pop","authenticate","apply","loginRequired","routes","(/)","(/)root*","(/)tours(/)(:tour_id)","(/)user(/)","(/)user(/)(:form_id)","(/)workflow(/)","(/)workflow/run(/)","(/)pages(/)(:action_id)","(/)visualizations/list_published(/)","(/)workflows/list_published(/)","(/)histories(/)(:action_id)","(/)datasets(/)list(/)","(/)workflow/configure_menu(/)","(/)workflow/import_workflow","(/)custom_builds","require_login","display","user","id","show_tours","tour_id","giveTour","ToursView","show_user","show_user_form","form_id","Forms","user_id","show_visualizations","url_base","root","dict_format","show_workflows_published","show_histories","action_id","show_datasets","show_pages","show_workflows","show_run","_loadWorkflow","show_import_workflow","ImportWorkflowView","show_configure_menu","show_custom_builds","self","historyPanel","historyView","model","setTimeout","home","tool_id","job_id","toolPanel","upload","show","_loadCenterIframe","_loadToolForm","workflow_id","m_c","m_a","prop","get","getQueryString","style","success","response","error","error_msg","status","persistent","cls","Message","Left","Right","history","start","pushState","call","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","Select","Slider","Options","Drilldown","Buttons","Modal","Label","tagName","Model","setElement","listenTo","title","new_title","set","value","removeClass","fade","update","messageForDisplay","timeout","clearTimeout","fadeOut","UnescapedMessage","Input","placeholder","disabled","readonly","visible","area","color","events","input","new_val","undefined","attr","css","datalist","isArray","length","autocomplete","source","request","change","_onchange","val","each","attr_name","removeAttr","Hidden","append","$info","$hidden","text","hide","Upload","$file","$text","$wait","on","e","_readFile","file","target","files","reader","FileReader","onload","wait","result","readAsText","Button","ButtonDefault","ButtonIcon","ButtonCheck","ButtonMenu","ButtonLink","RadioButton","Checkbox","Radio","uid","icon","buttons","body","scrollable","nopadding","operations","collapsible","collapsible_button","collapsed","onchange_title","_template","$body","$title_text","$title_icon","$header","$content","$backdrop","$buttons","$operations","tooltip","onclick","attributes","off","collapse","expand","make_text_editable","on_finish","empty","item","header","fadeIn","enableButton","find","disableButton","hideOperation","showOperation","setOperation","height","setIcon","disable","enable","Frames","mod_icon_btn","DatasetMetadata","Dataset","defaults","hda_ldda","metadata","_set_metadata","keys","k","new_key","split","silent","get_metadata","attribute","urlRoot","TabularDataset","prototype","chunk_url","first_data_chunk","offset","at_eof","url_viz","get_next_chunk","next_chunk","Deferred","getJSON","chunk","rval","ck_data","resolve","DatasetCollection","Collection","TabularDatasetChunkedView","row_count","loading_chunk","TabularButtonTracksterView","expand_to_container","scroll_elt","attempt_to_fetch","func","scrolled_to_bottom","loading_indicator","when","then","_renderChunk","data_table","cellpadding","column_names","header_container","appendTo","header_row","join","j","first_chunk","scroll","_renderCell","cell_contents","index","colspan","$cell","column_types","_renderRow","line","cells","row","num_columns","slice","range","TopLevelTabularDatasetChunkedView","parents","p","scrollTop","EmbeddedTabularDatasetChunkedView","position","overflow","innerHeight","el","scrollHeight","col","chrom","end","dataset_id","genome_build","file_ext","search","str","array","match","parent","modal","frame","console","log","btn_viz","IconButtonView","IconButton","icon_class","mouseover tr","mouseleave","is_numeric","n","isNaN","parseFloat","isFinite","children","eq","btn_viz_pars","gene_region","left","top","click","add","createTabularDatasetChunkedView","dataset_config","parent_elt","embedded","view","STATES","UPLOAD","QUEUED","RUNNING","SETTING_METADATA","NEW","EMPTY","OK","PAUSED","FAILED_METADATA","NOT_VIEWABLE","DISCARDED","ERROR","READY_STATES","NOT_READY_STATES","floating","wait_text","wait_cls","percentage","$icon","$title","$progress","$progress_bar","placement","width","unwait","href","icons","onchange","total","$button","$menu","pull","onunload","tag","collection","$root","float","where","preventDefault","remove","submodel","suboptions","$link","divider","addMenu","merge","Portlet","FormSection","FormData","initial_errors","always_refresh","message_status","new_model","matchModel","node","input_id","input_list","isEqual","field","field_list","new_options","i","opt","label","emit","active","is_dynamic","highlight","input_element","element_list","portlet","$panel","filter","first","animate","errors","error_messages","matchResponse","Manager","_renderForm","create","current_check","checksum","refresh_on_change","new_check","reset","section","inputs","on_click","menu_options","is_menu_button","enabled","tooltip_config","bind","new_elem","template","toJSON","replaceWith","event","isFunction","buffer","IconButtonCollection","IconButtonMenuView","button","elt","make_popupmenu","create_icon_buttons_menu","global_config","map","button_config","optionsDefault","with_close","container","$close","is","has","_get_placement","newTitle","_get_width","$container","container_width","container_height","_get_height","container_position","parseInt","multiple","minimumInputLength","initialData","select_data","_refresh","_setValue","new_value","before","_getValue","after","select2","del","_getIndex","splice","key","select_opt","containerCssClass","ajax","dropdownCssClass","escapeMarkup","formatResult","formatSelection","initSelection","selected","dropdownAutoWidth","findIndex","__WEBPACK_AMD_DEFINE_FACTORY__","factory","fn","config_dict","num_cols","num_rows","use_textarea","help_text","input_elt","button_elt","set_text","new_text","cur_text","rows","cols","trim","keyup","keyCode","size","blur","stopPropagation","focus","select","faIconButton","tooltipConfig","classes","concat","faIcon","commatize","number","rgx","test","replace","is_deferred","d","ServerStateDeferred","ajax_settings","interval","success_fn","go","deferred","_go","get_random_color","colors","new_color","nr","ng","nb","other_color","or","og","ob","n_brightness","o_brightness","diff","brightness","r","g","b","difference","r1","g1","b1","r2","g2","b2","max","min","ok","num_tries","round","abs","parseBibtex","baseMVC","_l","BibtexParser","logNamespace","Citation","LoggableMixin","_logNamespace","content","parsed","err","reduce","all","current","_fields","entry","entries","rawFields","Fields","lowerKey","toLowerCase","entryType","EntryType","fields","BaseCitationCollection","partial","HistoryCitationCollection","history_id","ToolCitationCollection","ajaxSettings","traditional","GridModel","Templates","PopupMenu","grid","grid_config","add_tag_to_grid_filter","tag_name","tag_value","advanced_search","slideToggle","add_filter_condition","items","init_grid","use_panels","padding","handle_refresh","refresh_frames","inArray","currHistoryPanel","loadCurrentHistory","footer","use_hide_message","init_grid_elements","init_grid_controls","init_refresh_on_change","submit_operation","set_sort_condition","submit","column_key","text_input_obj","text_input","remove_filter_condition","set_categorical_filter","check_all_items","checkboxes","check_count","update_checked","rating","set_page","items_length","popup","operation","_add_operation","settings","operation_config","allowed","allow_popup","addItem","url_args","confirmation_text","confirm","encode_id","findItemByHtml","add_filter","t","filter_element","go_page_one","remove_filter","col_key","cur_sort","new_sort","substring","sort_arrow","category_filter","cur_value","filter_value","new_page","page_num","cur_page","operation_button","operation_name","number_of_checked_ids","findWhere","item_ids","chk_all","document","getElementById","checks","getElementsByTagName","checked","href_parts","href_parms_str","href_parms","can_async_op","update_grid","go_to","async","get_url_data","$div","closest","load","location","method","alert","response_text","insert","json","parseJSON","complete","menu","_renderAndShow","clickEvent","_getShownPosition","_setUpCloseBehavior","li","option","_templateOptions","check","menuWidth","x","pageX","scrollLeft","pageY","closePopup","contents","one","removeItem","findIndexByHtml","button_element","initial_options","convertedOptions","optionVal","optionKey","newOption","convertLinksToOptions","$parent","selector","elem","linkHref","linkTarget","confirmText","fromExistingDom","$buttonElement","$menuElement","menuElementLinkSelector","make_popup_menus","menuSelector","buttonSelectorBuildFn","popupMenusCreated","fromDom","optional","v","v_id","v_name","lst","isEmpty","_templateRow","Base","error_text","_changeValue","_changeWait","_changeData","_changeVisible","$message","$options","all_button","_templateOption","_messageShow","values","BaseIcons","pair","data2","empty_text","searchable","selectall","pagesize","_changeDisabled","_renderSearchable","_renderClassic","$select","$dropdown","$resize","$resize_icon","currentY","currentHeight","minHeight","prepend","_match","term","String","toUpperCase","order","tags","matched_tags","closeOnSelect","query","q","results","found","more","memo","exists","sorter","keep","sort","setOnChange","a","extension","genome","url_paste","info","file_name","file_mode","file_size","file_type","file_path","file_data","space_to_tab","to_posix_lines","clear","sum","JSON","stringify","flat_id","input_value","flat_dict","result_dict","convert","identifier","head","section_label","block_indices","block_prefix","block_label","pos","test_param","selectedCase","matchCase","flat","ignore","collapsible_value","payload","p_id","dict","_iterate","visitInputs","new_id","separator","Array","child","hasClass","truevalue","falsevalue","cases","prefix","context","cache","FormBase","CitationModel","CitationView","_buildForm","process","_buildModel","_destroy","description","version","_operations","_footer","hide_message","build_url","build_data","error_message","err_msg","redirect","large","Close","reject","versions_button","narrow","sustain_version","versions","menu_button","biostar_url","open","prompt","origin","requirements","requirements_visible","_templateRequirements","sharable_url","webhooks","webhook","activate","function","Function","_templateHelp","citations","$citations","citation_list_view","CitationListView","fetch","$tmpl","help","nreq","requirements_message","req","requirements_link","ToolFormBase","Webhooks","form","listen_to_history","customize","execute_btn","job_remap","postchange","current_state","tool_version","job_def","validate","action","$f","enctype","_templateSuccess","jobs","WebhookView","toolId","refreshContents","input_found","err_data","_templateError","job_inputs","batch_n","batch_src","job_input_id","input_field","input_def","batch","src","njobs","njobs_text","outputs","output","hid","ondblclick","onconfirm","selectable","cls_tr","$thead","$tbody","$tmessage","_row","dblclick","addHeader","appendHeader","align","wrapper","_commit","delAll","_onclick","old_value","_ondblclick","last","has_deferred","promise","always","state","charAt","ready","arg0","accumulator","tempStorage","parser","getErrors","STATES_","ENTRY_OR_JUNK","OBJECT_TYPE","ENTRY_KEY","KV_KEY","EQUALS","KV_VALUE","DATA_","CALLBACK_","CHAR_","LINE_","CHAR_IN_LINE_","SKIPWS_","SKIPCOMMENT_","PARSETMP_","SKIPTILLEOL_","VALBRACES_","BRACETYPE_","BRACECOUNT_","STATE_","ERRORS_","ENTRY_TYPES_","inproceedings","proceedings","article","techreport","misc","mastersthesis","book","phdthesis","incollection","unpublished","inbook","manual","periodical","booklet","masterthesis","conference","online","MACROS_","jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","processCharacter_","error_","processEntry_","f","raw","CHARCONV_","re","rep","len","processed","c","skip","ObjectType","AnotherIteration","ot","Key","EntryKey","Value","\"","{","delim","doneParsingValue","macro","citationModel","className","formattedReference","ref","authorsAndYear","_asSentence","author","year","pages","address","volume","journal","booktitle","howpublished","note","institution","_formatBookInfo","doiUrl","doi","chapter","editor","publisher","series","issn","renderCitation","click .citations-to-bibtex","click .citations-to-formatted","citation","citationView","rawTextarea","citationsElement","showFormatted","showBibtex","partialWarningElement","LIST_ITEM","DATASET_LI","BASE_MVC","FoldoutListItemView","ListItemView","DCListItemView","hasUser","_setUpListeners","changed","_renderSubtitle","templates","subtitle","_getFoldoutPanelOptions","$selector","modelString","warnings","wrapTemplate","purged","deleted","titleBarTemplate","subtitleTemplate","titleBar","DCEListItemView","logger","DatasetDCEListItemView","DatasetListItemView","_fetchModelDetails","inReadyState","hasDetails","NestedDCDCEListItemView","_swapNewRender","$newRender","DATASET_MODEL","DatasetCollectionElementMixin","model_class","element_identifier","element_index","element_type","_mergeObject","object","element_id","constructor","idAttribute","arguments","DatasetCollectionElement","DCECollection","DatasetDCE","DatasetAssociation","mixin","warn","_downloadQueryParameters","elements","objStr","DatasetDCECollection","SearchableModelMixin","collection_type","collectionClass","_createElementsModel","unset","element","parent_hdca_id","populated","isDeletedOrPurged","getVisibleContents","filters","create_time","Date","update_time","delete","save","undelete","searchAttributes","idAndName","ListDatasetCollection","PairDatasetCollection","NestedDCDCE","NestedDCDCECollection","NestedPairDCDCE","NestedPairDCDCECollection","ListPairedDatasetCollection","NestedListDCDCE","NestedListDCDCECollection","ListOfListsDatasetCollection","HDCA","baseCreator","UI_MODAL","naturalSort","createListCollection","defaultHideSourceItems","listCollectionCreatorModal","creationFn","hideSourceItems","history_content_type","createHDCA","DatasetCollectionElementView","toggle","toggleClass","discard","parentWidth","margin-right","destroy","click .name","click .discard","dragstart","dragend","dragover","drop","_click","ev","_clickName","_clickDiscard","_dragstart","originalEvent","dataTransfer","effectAllowed","setData","_dragend","_sendToParent","ListCollectionCreator","CollectionCreatorMixin","elementViewClass","HistoryListDatasetCollection","minElements","defaultAttributes","TypeError","oncreate","oncancel","autoscrollDist","highlightClr","footerSettings",".hide-originals","metric","creator","initialElements","_setUpCommonSettings","_instanceSetUp","_elementsSetUp","_setUpBehaviors","selectedIds","$dragging","blocking","invalidElements","workingElements","elementViews","_ensureElementIds","_validateElements","_mangleDuplicateNames","_sortElements","forEach","hasOwnProperty","uniqueId","problem","_isElementInvalid","validState","contains","SAFETY","counter","existingNames","currName","Error","list","speed","_renderInvalid","main","_renderHeader","_renderMiddle","_renderFooter","_addPluginComponents","invalidInitial","problems","helpContent","_invalidElementsAlert","$middle","middle","_renderList","hoverhighlight","_showAlert","_disableNameAndCreate","isUndefined","$list","_renderClearSelected","$tmp","removeElementView","elementView","_createElementView","invoke","_listenToElementView","addElementView","without","stopListening","_renderNoElementsLeft","noElementsLeft","_elementToJSON","createList","hideOriginals","fail","xhr","done","_errorHandler","once","readyState","responseJSON","click .more-help","click .less-help","click .main-help","click .header .alert button","click .reset","click .clear-selected","click .collection-elements","dragover .collection-elements","drop .collection-elements","collection-element.dragstart .collection-elements","collection-element.dragend .collection-elements","change .collection-name","keydown .collection-name","change .hide-originals","click .cancel-create","click .create-collection","clearSelectedElements","_dragoverElements","_checkForAutoscroll","clientY","$nearest","_getNearestElement","$placeholder","$element","y","AUTOSCROLL_SPEED","upperDist","lowerDist","outerHeight","WIGGLE","lis","toArray","$li","halfHeight","floor","_dropElements","dropEffect","insertBefore","insertAfter","_syncOrderToDom","newElements","_elementDragstart","_elementDragend","_creatorTemplates","collectionCreatorModal","CreatorClass","closing_events","_collectionCreator","_super","changedAttributes","expanded","_renderNametags","fxSpeed","_renderPrimaryActions","_renderDisplayButton","displayBtnData","urls","addDataset","_renderDetails","noAccess","$details","_renderSecondaryActions","_renderSummary","_renderDetailMessages","_renderDisplayApplications","summaryRenderFn","summaries","unknown","$warnings","detailMessages","templateFn","displayApplications","_renderDownloadButton","_renderShowParamsButton","show_params","hasData","download","_renderMetaFileDownloadButton","meta_file","meta_download","tpl","clone","click .display-btn","click .params-btn","click .download-btn","failed_metadata","detailsTemplate","noAccessTemplate","summaryTemplates","detailMessageTemplates","resubmitted","displayApplicationsTemplate","details","app_options","text_enable","text_disable","cls_enable","cls_disable","$field","$preview","$collapsible","$collapsible_text","$collapsible_icon","$error_text","$error","backdrop","help_argument","collapsible_state","SelectContent","SelectLibrary","SelectFtp","ColorPicker","types","password","data_column","genomebuild","data_collection","integer","boolean","drill_down","hidden","hidden_data","baseurl","library_data","ftpfile","fieldClass","_fieldSelect","_fieldText","_fieldData","extensions","flavor","is_workflow","SelectClass","_fieldDrilldown","str_value","_fieldSlider","precise","_fieldHidden","_fieldBoolean","_fieldColor","_fieldLibrary","_fieldFtp","_fieldUpload","button_new","onnew","button_delete","ondel","hideOptions","Repeat","InputElement","Parameters","parameters","_addConditional","_addRepeat","_addSection","_addRow","case_def","section_row","nonhidden","sub_section","_append","sub_section_id","block_index","repeat","n_cache","default","hide_label","text_value","collapsible_preview","argument","fixed","async_ops","categorical_filters","sort_key","show_item_checkboxes","num_pages","op","cur_val","condition","condition_index","url_data","pairs","get_url","tmpl","grid_header","grid_table","info_text","global_actions","show_popup","grid_filters","columns","column","extra","num_rows_rendered","encoded_id","current_item_id","nowrap","column_settings","column_config","link","attach_popup","label_id_prefix","use_paging","num_page_links","cur_page_num","page_link_range","min_page","min_offset","max_range","max_page","max_offset","page_index","allow_multiple","found_global","global_operation","legend","default_filter_dict","advanced_search_display","show_advanced_search_link","filterable","f_key","d_key","standard_search_display","grid_column_filter","column_label","is_text","temp_column","column_filter","seperator","cf_label","cf","cf_key","cf_arg","filter_key","sanitize","DC_MODEL","HISTORY_CONTENT","buildHDCASave","isNew","hcontentMixin","HistoryContentMixin","ListDC","PairDC","ListPairedDC","ListOfListsDC","HistoryPairDatasetCollection","HistoryListPairedDatasetCollection","HistoryListOfListsDatasetCollection","CONTROLLED_FETCH_COLLECTION","HDA_MODEL","HDCA_MODEL","HISTORY_PREFS","AJAX_QUEUE","PaginatedCollection","HistoryContents","attrs","HistoryDatasetAssociation","msg","validationError","limitPerPage","limitPerProgressiveFetch","historyId","models","setHistoryId","includeDeleted","includeHidden","newId","_setUpWebStorage","initialSettings","storage","HistoryPrefs","historyStorageKey","include-deleted","newVal","include-hidden","comparators","buildComparator","ascending","name-dsc","hid-asc","running","runningAndActive","getByHid","haveDetails","visibleAndUndeleted","setIncludeDeleted","setting","isBoolean","setIncludeHidden","prefs","expandedIds","_buildFetchData","_fetchParams","_buildFetchFilters","superFilters","getTotalItemCount","contentsShown","fetchUpdated","since","update_time-ge","toISOString","fetchDeleted","fetchHidden","fetchAllDetails","detailsFlag","fetchCollectionCounts","_filterAndUpdate","filterParams","updateWhat","updateArgs","fetched","modelArray","currJson","ajaxQueue","ajaxFn","AjaxQueue","reverse","isString","progressivelyFetchDetails","_recursivelyFetch","_options","detailKeys","limit","defer","notify","allFetched","limitPerCall","isCopyable","contentsJSON","copyableModelClasses","isObject","copy","contentType","LibraryDatasetDatasetAssociation","HistoryDatasetCollectionAssociation","elementIdentifiers","collectionType","hdca","hide_source_items","element_identifiers","haveSearchDetails","matches","matchesWhat","HISTORY_CONTENTS","UTILS","History","UPDATE_DELAY","contents_active","contents_states","contentsClass","searchAliases","historyJSON","_setUpCollectionListeners","updateTimeoutId","clearUpdateTimeout","change:id","makeArray","contentsActive","shown","nice_size","bytesToString","ownedByCurrUser","isAnonymous","numOfUnfinishedJobs","unfinishedJobIds","numOfUnfinishedShownContents","_fetchContentRelatedAttributes","contentRelatedAttrs","refresh","lastUpdateTime","fetchFn","currentPage","fetchPage","serverResponseDatetime","getResponseHeader","checkForUpdates","_delayThenUpdate","delay","nonReadyContentCount","historyData","fetchWithContents","contentsOptions","fetchContents","fetchCurrentPage","_delete","purge","allDatasets","postData","all_datasets","post","newHistory","setAsCurrent","_collectionSuper","InfinitelyScrollingCollection","HistoryCollection","limitOnFirstFetch","limitPerFetch","currentHistoryId","setUpListeners","change:deleted","copied","original","newData","setCurrent","set-as-current","oldCurrentId","fetchFirst","encoded_id-in","fetchMore","size-asc","currentHistory","unshift","hdas","historyOptions","xhrOptions","SessionStorageModel","show_deleted","show_hidden","addExpanded","removeExpanded","isExpanded","contentId","allExpanded","clearExpanded","storageKeyPrefix","clearAll","sessionStorage","ExpandableView","_buildNewRender","_queueNewRender","queue","next","$where","$newDetails","toggleExpanded","_expand","slideDown","slideUp","SelectableViewMixin","DraggableViewMixin","isSelectable","_renderWarnings","_renderTitleBar","showSelector","draggable","draggableOn","click .title-bar","keydown .title-bar","click .selector","_clickTitleBar","altKey","toggleSelect","_keyDownTitleBar","KEYCODE_SPACE","KEYCODE_RETURN","elTemplato","foldoutStyle","foldoutPanelClass","foldout","_createFoldoutPanel","_attachFoldout","FoldoutClass","_getFoldoutPanelClass","$whereTo","_expandByDrilldown","TagsEditor","HiddenUntilActivatedViewMixin","usePrompt","hiddenUntilActivated","$activator","$input","_getTagsUsed","_hashToName","startsWith","_nameToHash","tagsToCSV","tagsArray","added","_addNewTagToTagsUsed","newTag","tagsUsed","util","VisibilityMixin","is_visible","ToolParameter","num_samples","unescape","set_value","ToolParameterCollection","DataToolParameter","IntegerToolParameter","get_samples","d3","scale","linear","domain","ticks","FloatToolParameter","SelectToolParameter","subModelTypes","Tool","p_class","remove_inputs","tool","incompatible_inputs","only_samplable_inputs","valid_inputs","apply_search_results","set_input_value","set_input_values","inputs_dict","input_name","run","_run","rerun","target_dataset","regions","target_dataset_id","get_inputs_dict","input_dict","additional_params","run_deferred","ss_deferred","dataType","ToolCollection","ToolSectionLabel","ToolSection","elems","clear_search_results","cur_label","all_hidden","ToolSearch","search_hint_string","min_chars_for_search","clear_btn_url","clear_key","do_search","timer","ga","clear_search","tool_search","tools","layout","parse_elt","elt_dict","panel_elt","BaseView","update_visible","ToolLinkView","tool_link","formStyle","router","ToolSectionLabelView","ToolSectionView","update_open","panel_section","section_body","tool_view","label_view","click .toolSectionTitle > a","ToolSearchView","keyup :input","change :input","click #search-clear-btn","focus_and_select","query_changed","evData","which","ToolPanelView","handle_search_results","search_view","section_title_view","ToolFormView","tool_form","tool_panel_view","tool_form_view","show_tool","variable","standard","base","theme","$view","$value","_build","$boxes","_templateCheck","hex","rgb","_content","line_def","_templateContent","$line","$box","_templateBox","bottom","header_index","_setState","header_id","is_expanded","$subgroup","attach","iterate","level","has_options","new_header","$group","Batch","DISABLED","ENABLED","LINKED","Configurations","data_multiple","workflow_data","workflow_data_multiple","workflow_data_collection","module_data","module_data_collection","src_labels","hda","pagelimit","statustimer","button_product","$batch_div","$batch","linked","lastenter","_handleDrop","_changeCurrent","_changeType","id_list","_batch","$batchfield","batchmode","button_type","config_id","textify","button_data","button_width","margin-left","select_options","drop_data","getData","new_src","current_value","_handleDropStatus","map_over_type","List","ftpfile_list","Table","Libraries","LibraryDatasets","library_id","libraries","datasets","library_select","dataset_list","library_current","step","$slider","pressed","_isParameter","opts","has_slider","slider","ui","$nav","_add","_remove","_change","_reset","showTab","hideTab","tab_model","_template_tab","$href","class_add","class_remove","class_partial","onadd","onremove","ftp_files","_fill","_templateTable","$select_all","ftp_file","model_index","_find","_templateInfo","$it","filtered","path","ctime","ftp_upload_site","class_check","class_uncheck","$cover","$table","parameter","$checkbox","props","uploadpost","cnf","progress","maxfilesize","error_filesize","error_default","error_server","error_login","sizes","XMLHttpRequest","setRequestHeader","onreadystatechange","DONE","responseText","statusText","addEventListener","lengthComputable","loaded","send","uploadinput","ondragover","ondragleave","dialog","uploadbox","queue_running","current_index","queue_index","mode","duplicate","announce","queue_length","queue_stop","stop","configure","compatible","File","FileList","dragleave","m","AnnotationEditor","$annotation","newAnnotation","annotation","previous","ControlledFetchCollection","setOrder","changed-order","_buildFetchOptions","_fetchFiltersToAjaxData","pick","filterMap","qv","update_time-asc","create_time-asc","comparator","shouldPaginate","getLastPage","getPageCount","getPageLimitOffset","pageNum","constrainPageNum","fetchPrevPage","fetchNextPage","lastFetched","fetchedData","numFetched","fetchAll","fetchData","_validationWarning","what","VALIDATION_CLASS","_changeHideOriginals","_changeName","_getName","_nameCheckForEnter","_clickCreate","_clickMoreHelp","_clickLessHelp","_toggleHelp","alertClass","_hideAlert","_cancelCreate","instance","$footer","property","LIST_VIEW","DC_LI","ModelListPanel","CollectionView","DatasetDCEViewClass","NestedDCDCEViewClass","modelCollectionKey","panelStack","parentName","downloadUrl","panel","_filterCollection","_getItemViewClass","_getItemViewOptions","_setUpItemViewListeners","expanded:drilldown","drilldown","_expandDrilldownPanel","collapsed:drilldown","_collapseDrilldownPanel","click .navigation .back","close","controlsTemplate","controls","ListCollectionView","PairCollectionView","ListOfPairsCollectionView","ListOfListsCollectionView","TAGS","ANNOTATIONS","DatasetListItemEdit","purgeAllowed","tagsEditorShown","annotationEditorShown","actions","_renderEditButton","_renderDeleteButton","editBtnData","edit","deletedAlready","_renderTags","_renderAnnotation","_makeDbkeyEditLink","_renderToolHelpButton","datasetID","jobID","creating_job","parseToolBuild","helpString","parseHTML","parseToolID","_renderErrButton","_renderRerunButton","_renderVisualizationsButton","report_error","visualizations","$visualizations","_addScratchBookFn","addBack","$links","tagsEditor","onshowFirstTime","onshow","onhide","annotationEditor","editableDbkey","click .undelete-link","click .purge-link","click .edit-btn","click .delete-btn","click .rerun-btn","click .report-err-btn","click .visualization-btn","click .dbkey a","_clickUndeleteLink","_clickPurgeLink","visualizationsTemplate","searchableMixin","accessible","data_type","meta_files","misc_blurb","misc_info","_generateUrls","visualization","currModel","newState","dataset","responseObj","messageBuriedInUnfortunatelyFormattedError","format","database","blurb","nameAndId","DatasetAssociationCollection","ids","notReady","startingLength","responses","ajaxFns","chain","curr","shift","MODAL","ERROR_MODAL","CopyDialog","defaultName","submitLabel","errorMessage","progressive","activeLabel","allLabel","anonWarning","_showAjaxIndicator","indicator","margin-top","checkNameAndCopy","copyAllDatasets","ajaxErrorModal","rejectWith","autoClose","defaultCopyNameFn","nameFn","defaultCopyName","defaultCopyWhat","allowAll","originalClosingCallback","closing_callback","isAnon","copyWhat","cancelled","ImportDialog","historyCopyDialog","useImport","HDAListItemView","DATASET","DC_VIEW","HDCAListItemView","change:tags change:populated change:visible","isVisible","unhide","LoadingIndicator","ListPanel","viewClass","emptyMsg","noneFoundMsg","searchPlaceholder","searchFor","selecting","lastSelected","dragItems","views","_createDefaultCollection","$scrollContainer","loading","_showLoadingIndicator","loading-done","_hideLoadingIndicator","_setUpViewListeners","changes","renderAll","removed","renderItems","addItemView","removeItemView","view:selected","shiftKey","lastSelectedView","viewFromModelId","selectRange","showSelectors","view:de-selected","_renderControls","_renderTitle","_renderSearch","$controls","_renderMultiselectActionMenu","multiselectActions","$newMenu","$actions","$messages","$emptyMessage","freeViews","shownModels","itemModel","_createItemView","_attachItems","_renderEmptyMessage","_filterItem","every","matchesAll","ViewClass","_destroyItemView","_destroyItemViews","getSelectedModels","_renderItemView$el","expandAll","collapseAll","modelIndex","_attachView","useFx","_insertIntoListAt","$what","viewFromModel","viewsWhereModel","properties","isMatch","viewRange","viewA","viewB","indexA","indexB","searchInput","initialVal","onfirstsearch","_firstSearch","onsearch","searchItems","onclear","clearSearch","force","$search","THROTTLE_SELECTOR_FX_AT","hideSelectors","hideSelector","toggleSelectors","selectAll","deselectAll","deselect","getSelectedViews","scrollPosition","scrollTo","scrollToTop","scrollToItem","scrollToId","click .select-all","click .deselect-all","elTemplate","setModel","freeModel","oldModelId","_setUpModelListeners","Form","WorkflowIcons","$steps","_configure","resize","step_index","margin","_handleWorkflowParameter","exec","wp_name","wp_inputs","wp_count","links","forms","steps","parms","step_type","step_label","step_name","step_version","_isDataStep","sustain_repeats","sustain_conditionals","messages","hide_operations","needs_refresh","output_connections","output_connection","sub_step","input_step_index","connections_by_name","connection","step_linked","output_name","wp_input","wp_linked","post_job_actions","pja","action_arguments","arg","data_resolved","is_runtime_value","__class__","is_data_input","data_ref","default_value","_renderMessage","_renderParameters","_renderHistory","_renderStep","_execute","step_version_changes","wp_form","_refreshStep","history_form","short_str","is_simple_input","show_progress","source_step","wp_field","wp_value","_refreshHistory","_refresh_history","_enabled","_submit","history_form_data","new_history_name","replacement_params","parameters_normalized","validated","toolVersion","step_related_errors","_errorModal","Ok","DETAILS_MSG","errorModal","offlineErrorModal","badGatewayErrorModal","CONTACT_MSG","DEFAULT_AJAX_ERR_MSG","_ajaxDetails","raven","Raven","userAgent","navigator","onLine","omit","functions","lastAjax","scope","$this","targetSelector","mouseover","background","mouseout","parentNode","clearSearchInput","searchTerms","firstSearch","inputTemplate","KEYCODE_ESC","escWillClear","minSearchLen","$clearBtn","$loadingIndicator","toggleLoadingIndicator","$parentNode","inputVal","oninit","s","nC","fromCharCode","xN","yN","xD","getTime","yD","oFxNcL","oFyNcL","cLoc","numS","historyOptionsMenu","CurrentHistoryView","userIsAnonymous","allow_user_dataset_purge","listenToGalaxy","buttonRefresh","buttonOptions","buttonViewMulti","connectToQuotaMeter","quotaMeter","optionsMenu","anonymous","Tools","stored_workflow_menu_entries","toolbox","tool_panel","toolbox_in_panel","upload_button","nginx_upload_path","default_genome","default_extension","_templateAllWorkflow","menu_entry","_templateWorkflowLink","stored_workflow","encoded_stored_workflow_id","_templateTool","wf","DATASET_LI_EDIT","DCListItemEdit","DCEListItemEdit","DatasetDCEListItemEdit","NestedDCDCEListItemEdit","DC_EDIT","CollectionViewEdit","nameSelector","newName","previousName","ListCollectionViewEdit","PairCollectionViewEdit","NestedPairCollectionViewEdit","ListOfPairsCollectionViewEdit","ListOfListsCollectionViewEdit","levenshteinDistance","autoPairFnBuilder","getRegExps","_regexps","RegExp","createPair","listA","listB","aInBIndex","bInAIndex","_pair","preprocessMatch","regexps","matchTo","possible","bestMatch","score","paired","scoreThreshold","createListOfPairsCollection","pairedCollectionCreatorModal","PairView","currentTarget","opacity","PairedCollectionCreator","DEFAULT_FILTERS","automaticallyPair","strategy","matchPercentage","twoPassAutopairing","initialList","commonFilters","strategies","DEFAULT_STRATEGY","removeExtensions","unpairedPanelHidden","pairedPanelHidden","_dataSetUp","illumina","Rs","simple","lcs","levenshtein","unpaired","_sortInitialList","_ensureIds","autoPair","_sortDatasetList","_splitByFilters","_filter","regexFilters","stringFilter","_addToUnpaired","binSearchSortedIndex","low","hi","mid","compared","autopairSimple","autopairLevenshtein","distance","autopairLCS","_naiveStartingAndEndingLCS","s1","s2","fwdLCS","revLCS","fwd","rev","_createPair","_guessNameForPair","forward","fwdName","revName","lastDotIndex","lastIndexOf","_unpair","unpairAll","_pairToJSON","ajaxData","_ajaxErrHandler","_renderFilters","_renderUnpaired","_renderPaired","$fwd","$rev","$prd","_renderUnpairedDisplayStr","_renderUnpairedEmpty","_renderPairButton","_renderUnpairedDataset","_adjUnpairedOnScrollbar","_renderUnpairedNotShown","numFiltered","$msg","$unpairedColumns","$firstDataset","ucRight","outerWidth","dsRight","rightDiff","_renderPairedEmpty","pairView",".remove-extensions","_chooseFiltersPopover","filterChoice","val1","val2","$popoverContent","filterSet","popover","splitView","msgClass","hideUnpaired","click .forward-column .column-title","click .reverse-column .column-title","click .unpair-all-link","change .forward-unpaired-filter input","focus .forward-unpaired-filter input","click .autopair-link","click .choose-filters .filter-choice","click .clear-filters-link","change .reverse-unpaired-filter input","focus .reverse-unpaired-filter input","click .forward-column .dataset.unpaired","click .reverse-column .dataset.unpaired","click .paired-column .dataset.unpaired","click .unpaired-columns","mousedown .unpaired-columns .dataset","click .paired-column-title","mousedown .flexible-partition-drag","click .paired-columns .dataset.paired","click .paired-columns","click .paired-columns .pair-name","click .unpair-btn","dragover .paired-columns .column-datasets","drop .paired-columns .column-datasets","pair.dragstart .paired-columns .column-datasets","pair.dragend .paired-columns .column-datasets","change .remove-extensions","toggleExtensions","_clickShowOnlyUnpaired","hidePaired","_clickShowOnlyPaired","_clickUnpairAll","_clickAutopair","_clickFilterChoice","$selected","_hideChooseFilters","_clearFilters","_clickUnpairedDataset","toggleSelectUnpaired","$dataset","waitToPair","pairAllSelected","fwds","revs","clearSelectedUnpaired","_mousedownUnpaired","$startTarget","moveListener","_clickPairRow","rowIndex","_startPartitionDrag","endDrag","unbind","trackMouse","startingY","adjPartition","mousemove","adj","$unpaired","$paired","unpairedHi","pairedHi","movingUpwards","flex","selectPair","clearSelectedPaired","_clickPairName","$name","$pair","customizedName","_clickUnpair","pairIndex","_dragoverPairedColumns","_getNearestPairedDatasetLi","_dropPairedColumns","_syncPairsToDom","newPaired","_pairDragstart","_pairDragend","_printList","_printPair","LIST_CREATOR","createPairCollection","pairCollectionCreatorModal","PairedDatasetCollectionElementView","PairCollectionCreator","_createForwardElementView","_createReverseElementView","swap","click .swap","HDA_LI","HDAListItemEdit","click .unhide-link","HDCA_LI","DC_VIEW_EDIT","HDCAListItemEdit","HistoryModel","_showCopyDialog","reload","HISTORY_MODEL","HISTORY_VIEW_EDIT","HistoryViewPrefs","storageKey","HistoryViewEdit","HDCAViewClass","preferences","currentContentId","loadHistory","switchToHistory","createNewHistory","change:nice_size change:size","oldState","_debouncedScrollCaptureHandler","debounce","prependTo","_renderQuotaMessage","quotaMsg","_setCurrentContentById","setCurrentContent","delegateEvents","click .uploader-link","click .get-data-link","$toolMenu","galaxy","center-frame:load","pathToMatch","fullpath","hdaId","useToURLRegexMap","regex","use","center-panel:load","showQuotaMessage","hideQuotaMessage","isOverQuota","clearMessages","$target","not","unhideHidden","deleteHidden","quotaMsgTemplate","HISTORY_VIEW","HDA_LI_EDIT","HDCA_LI_EDIT","LIST_COLLECTION_CREATOR","PAIR_COLLECTION_CREATOR","LIST_OF_PAIRS_COLLECTION_CREATOR","HistoryView","HDAViewClass","droptarget:drop","dataDropped","dropTargetOff","view:attached view:removed","_renderCounts","search:loading-progress","_renderSearchProgress","search:searching","_renderSearchFindings","updateHistoryDiskSize","_handleItemDeletedChange","change:visible","_handleItemVisibleChange","change:purged","fetching-deleted","fetching-hidden","fetching-deleted-done fetching-hidden-done","counts","toggleHDATagEditors","toggleHDAAnnotationEditors","_collectionActions","buildCollection","selection","createFunc","_handleItemDeletion","_handleItemUndeletion","_handleItemHidden","_handleItemUnhidden","showOrHide","click .show-selectors-btn","click .toggle-deleted-link","toggleShowDeleted","click .toggle-hidden-link","toggleShowHidden","dropTargetOn","dropTarget","dropHandlers","dragenter","$dropTarget","_renderDropTarget","_renderDropTargetHelp","evName","_dropHandlers","dropTargetToggle","countsTemplate","USER","FETCH_COLLECTION_COUNTS_DELAY","errorHandler","views:ready view:attached view:removed","_renderSelectButton","view:attached","fetching-more","_toggleContentsLoadingIndicator","fetching-more-done","$indicator","$existing","$emptyMsg","_renderPagination","_renderSomeItems","$paginationControls","pagination","click > .controls .prev","click > .controls .next","change > .controls .pages","click .messages [class$=message]","_clickPrevPage","_clickNextPage","_changePageSelect","store","inputSelector","scrollToHid","ordinalIndicator","numStr","mainTemplate","paginationTemplate","buildMenu","menuOption","anon","galaxy_main","user_action","webhooks_menu","_templateShared","shared_by_others","display_url","username","slug","UploadModel","UploadSettings","Popover","status_classes","init","queued","$mode","$size","$info_text","$info_progress","$text_content","$symbol","$percentage","select_genome","select_extension","_removeRow","_refreshPercentage","_refreshStatus","_refreshInfo","_refreshFileSize","_showSettings","UploadRow","UploadFtp","upload_size","list_extensions","list_genomes","ui_button","currentFtp","btnLocal","btnFtp","_eventFtp","btnCreate","_eventCreate","btnStart","_eventStart","btnBuild","_eventBuild","btnStop","_eventStop","btnReset","_eventReset","btnClose","_eventAnnounce","toData","_eventProgress","_eventSuccess","_eventError","_eventComplete","ftp","ext","composite_files","updateExtension","select_collection","updateCollectionType","showExtensionInfo","updateGenome","_eventRemove","_updateScreen","upload_row","it","_uploadPercentage","hids","pluck","upload_completed","allHids","extension_popup","_templateDescription","defaults_only","enable_reset","enable_start","enable_build","enable_sources","show_table","description_url","$source","$settings","$status","$file_name","$file_desc","$file_size","_refreshReady","button_menu","_showFtp","_refreshFileName","_refreshMode","offsetHeight","file_desc","_showExtensionInfo","_refreshGenome","_refreshExtension","Tabs","UploadButton","UploadViewDefault","UploadViewComposite","UploadViewCollection","auto","datatypes","a_text","b_text","datatypes_disable_auto","genomes","current_user","tabs","default_view","composite_view","collection_view","title_separator","installed_builds","table","$installed","$form","$help","_renderTable","initial_type","_renderHelp","len_type","_templateFasta","_templateLen","information","submit_title","communication","permissions","api_key","submit_icon","toolbox_filters","openids","custom_builds","configure_menu","logout","Cancel","Sign out","$preferences","email","use_remote_user","_addLink","enable_communication_server","has_user_tool_filters","enable_openid","_templateFooter","$row","_templateLink","$a","nice_total_disk_usage","enable_quotas","quota","submit_tooltip","workflows","ids_in_menu","$el_config_worflow","_templateConfigWorkflowHeader","_templateActionButtons","_templateConfigureWorkflow","save_workflow_menu","make_checked","register_check_uncheck_all","_templateNoWorkflow","$el_check_all","$el_uncheck_all","check_uncheck_all","wf_checkbox","$el_save_workflow_menu","workflow_ids","tableHtml","trHtml","owner","number_of_steps","_templateInputCheckbox","data_input","data_collection_input","subworkflow","pause","build_messages","$el_message","min_query_length","$el_workflow","_templateHeader","_templateWorkflowTable","adjust_actiondropdown","confirm_delete","search_workflow","workflow","$el_wf_link","$el_shared_wf_link","$el_searchinput","$el_tabletr","min_querylen","regular_expression","_templateActions","published","_mainTemplate","myexperiment_target_url","cover","z-index","right","background-color","text-align","font-style","initialFunctions","numToProcess","NamedAjaxQueue","names","fnIndex","causeFail","obj","matrix"],"mappings":"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tB,qBAAsB,MACtB,kBAAmB,MACnB,wBAAyB,MACzB,uBAAwB,MACxB,YAAa,MACb,YAAa,MACb,aAAc,MACd,YAAa,MACb,YAAa,MACb,SAAU,MACV,SAAU,MACV,YAAa,MACb,YAAa,MACb,YAAa,MACb,aAAc,MACd,YAAa,MACb,YAAa,MACb,YAAa,MACb,aAAc,MACd,YAAa,MACb,SAAU,MACV,YAAa,MACb,YAAa,MACb,YAAa,MACb,aAAc,MACd,YAAa,MACb,YAAa,MACb,gBAAiB,MACjB,QAAS,MACT,YAAa,MACb,YAAa,MACb,aAAc,MACd,YAAa,MACb,YAAa,MACb,SAAU,MACV,SAAU,MACV,YAAa,MACb,YAAa,MACb,aAAc,MACd,YAAa,MACb,YAAa,MACb,SAAU,MACV,SAAU,MACV,YAAa,MACb,YAAa,MACb,YAAa,MACb,aAAc,MACd,YAAa,MACb,cAAe,MACf,cAAe,MACf,eAAgB,MAChB,cAAe,MACf,SAAU,MACV,YAAa,MACb,YAAa,MACb,YAAa,MACb,aAAc,MACd,YAAa,MACb,YAAa,MACb,UAAW,MACX,QAAS,MACT,YAAa,MACb,YAAa,MACb,aAAc,MACd,YAAa,MACb,YAAa,MACb,SAAU,MACV,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,aAAc,MACd,aAAc,MACd,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,SAAU,MACV,SAAU,MACV,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,aAAc,MACd,aAAc,MACd,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,aAAc,MACd,aAAc,MACd,YAAa,MACb,YAAa,MACb,cAAe,MACf,YAAa,MACb,cAAe,MACf,YAAa,MACb,cAAe,MACf,YAAa,MACb,YAAa,MACb,YAAa,MACb,QAAS,MACT,aAAc,MACd,eAAgB,MAChB,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,QAAS,MACT,QAAS,MACT,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,SAAU,MACV,SAAU,MACV,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,SAAU,MACV,SAAU,MACV,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,aAAc,MACd,aAAc,MACd,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,gBAAiB,MACjB,gBAAiB,MACjB,UAAW,MACX,qBAAsB,MACtB,YAAa,MACb,cAAe,MACf,eAAgB,MAChB,eAAgB,MAChB,cAAe,MACf,eAAgB,MAChB,iBAAkB,MAClB,gBAAiB,MACjB,eAAgB,MAChB,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,gBAAiB,MACjB,eAAgB,MAChB,cAAe,MACf,cAAe,MACf,gBAAiB,MACjB,cAAe,MACf,cAAe,MACf,eAAgB,MAChB,gBAAiB,MACjB,YAAa,MACb,cAAe,MACf,aAAc,MACd,cAAe,MACf,aAAc,MACd,cAAe,MACf,cAAe,MACf,gBAAiB,MACjB,eAAgB,MAChB,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,eAAgB,MAChB,cAAe,MACf,qBAAsB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B,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iB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","file":"analysis.bundled.js","sourcesContent":["webpackJsonp([3,1],[\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(Backbone, _) {var jQuery = __webpack_require__(1),\n\t $ = jQuery,\n\t GalaxyApp = __webpack_require__(35).GalaxyApp,\n\t QUERY_STRING = __webpack_require__(67),\n\t ToolPanel = __webpack_require__(100),\n\t HistoryPanel = __webpack_require__(99),\n\t Page = __webpack_require__(36),\n\t ToolForm = __webpack_require__(30),\n\t UserPreferences = __webpack_require__(138),\n\t CustomBuilds = __webpack_require__(137),\n\t Tours = __webpack_require__(89),\n\t GridView = __webpack_require__(21),\n\t PageList = __webpack_require__(128),\n\t Workflows = __webpack_require__(142),\n\t HistoryList = __webpack_require__(123),\n\t WorkflowsConfigureMenu = __webpack_require__(140),\n\t ToolFormComposite = __webpack_require__(88),\n\t Utils = __webpack_require__(4),\n\t Ui = __webpack_require__(7);\n\t\n\t/** define the 'Analyze Data'/analysis/main/home page for Galaxy\n\t * * has a masthead\n\t * * a left tool menu to allow the user to load tools in the center panel\n\t * * a right history menu that shows the user's current data\n\t * * a center panel\n\t * Both panels (generally) persist while the center panel shows any\n\t * UI needed for the current step of an analysis, like:\n\t * * tool forms to set tool parameters,\n\t * * tables showing the contents of datasets\n\t * * etc.\n\t */\n\twindow.app = function app(options, bootstrapped) {\n\t window.Galaxy = new GalaxyApp(options, bootstrapped);\n\t Galaxy.debug('analysis app');\n\t Galaxy.params = Galaxy.config.params;\n\t\n\t var routingMessage = Backbone.View.extend({\n\t initialize: function (options) {\n\t this.message = options.message || \"Undefined Message\";\n\t this.msg_status = options.type || 'info';\n\t this.render();\n\t },\n\t render: function () {\n\t this.$el.html(_.escape(this.message)).addClass(this.msg_status + \"message\");\n\t }\n\t });\n\t\n\t /** Routes */\n\t var Router = Backbone.Router.extend({\n\t // TODO: not many client routes at this point - fill and remove from server.\n\t // since we're at root here, this may be the last to be routed entirely on the client.\n\t initialize: function (page, options) {\n\t this.page = page;\n\t this.options = options;\n\t },\n\t\n\t /** helper to push a new navigation state */\n\t push: function (url, data) {\n\t data = data || {};\n\t data.__identifer = Math.random().toString(36).substr(2);\n\t if (!$.isEmptyObject(data)) {\n\t url += url.indexOf('?') == -1 ? '?' : '&';\n\t url += $.param(data, true);\n\t }\n\t this.navigate(url, { 'trigger': true });\n\t },\n\t\n\t /** override to parse query string into obj and send to each route */\n\t execute: function (callback, args, name) {\n\t Galaxy.debug('router execute:', callback, args, name);\n\t var queryObj = QUERY_STRING.parse(args.pop());\n\t args.push(queryObj);\n\t if (callback) {\n\t if (this.authenticate(args, name)) {\n\t callback.apply(this, args);\n\t } else {\n\t this.loginRequired();\n\t }\n\t }\n\t },\n\t\n\t routes: {\n\t '(/)': 'home',\n\t '(/)root*': 'home',\n\t '(/)tours(/)(:tour_id)': 'show_tours',\n\t '(/)user(/)': 'show_user',\n\t '(/)user(/)(:form_id)': 'show_user_form',\n\t '(/)workflow(/)': 'show_workflows',\n\t '(/)workflow/run(/)': 'show_run',\n\t '(/)pages(/)(:action_id)': 'show_pages',\n\t '(/)visualizations/list_published(/)': 'show_visualizations',\n\t '(/)workflows/list_published(/)': 'show_workflows_published',\n\t '(/)histories(/)(:action_id)': 'show_histories',\n\t '(/)datasets(/)list(/)': 'show_datasets',\n\t '(/)workflow/configure_menu(/)': 'show_configure_menu',\n\t '(/)workflow/import_workflow': 'show_import_workflow',\n\t '(/)custom_builds': 'show_custom_builds'\n\t },\n\t\n\t require_login: ['show_user', 'show_user_form', 'show_workflows', 'show_configure_menu'],\n\t\n\t loginRequired: function () {\n\t this.page.display(new routingMessage({ type: 'error', message: \"You must be logged in to make this request.\" }));\n\t },\n\t\n\t authenticate: function (args, name) {\n\t return Galaxy.user && Galaxy.user.id || this.require_login.indexOf(name) == -1;\n\t },\n\t\n\t show_tours: function (tour_id) {\n\t if (tour_id) {\n\t Tours.giveTour(tour_id);\n\t } else {\n\t this.page.display(new Tours.ToursView());\n\t }\n\t },\n\t\n\t show_user: function () {\n\t this.page.display(new UserPreferences.View());\n\t },\n\t\n\t show_user_form: function (form_id) {\n\t this.page.display(new UserPreferences.Forms({ form_id: form_id, user_id: Galaxy.params.id }));\n\t },\n\t\n\t show_visualizations: function () {\n\t this.page.display(new GridView({ url_base: Galaxy.root + 'visualization/list_published', dict_format: true }));\n\t },\n\t\n\t show_workflows_published: function () {\n\t this.page.display(new GridView({ url_base: Galaxy.root + 'workflow/list_published', dict_format: true }));\n\t },\n\t\n\t show_histories: function (action_id) {\n\t this.page.display(new HistoryList.View({ action_id: action_id }));\n\t },\n\t\n\t show_datasets: function () {\n\t this.page.display(new GridView({ url_base: Galaxy.root + 'dataset/list', dict_format: true }));\n\t },\n\t\n\t show_pages: function (action_id) {\n\t if (action_id == 'list') {\n\t this.page.display(new PageList.View());\n\t } else {\n\t this.page.display(new GridView({ url_base: Galaxy.root + 'page/list_published', dict_format: true }));\n\t }\n\t },\n\t\n\t show_workflows: function () {\n\t this.page.display(new Workflows.View());\n\t },\n\t\n\t show_run: function () {\n\t this._loadWorkflow();\n\t },\n\t\n\t show_import_workflow: function () {\n\t this.page.display(new Workflows.ImportWorkflowView());\n\t },\n\t\n\t show_configure_menu: function () {\n\t this.page.display(new WorkflowsConfigureMenu.View());\n\t },\n\t\n\t show_custom_builds: function () {\n\t var self = this;\n\t var historyPanel = this.page.historyPanel.historyView;\n\t if (!historyPanel || !historyPanel.model || !historyPanel.model.id) {\n\t window.setTimeout(function () {\n\t self.show_custom_builds();\n\t }, 500);\n\t return;\n\t }\n\t this.page.display(new CustomBuilds.View());\n\t },\n\t\n\t /** */\n\t home: function (params) {\n\t // TODO: to router, remove Globals\n\t // load a tool by id (tool_id) or rerun a previous tool execution (job_id)\n\t if (params.tool_id || params.job_id) {\n\t if (params.tool_id === 'upload1') {\n\t this.page.toolPanel.upload.show();\n\t this._loadCenterIframe('welcome');\n\t } else {\n\t this._loadToolForm(params);\n\t }\n\t } else {\n\t // show the workflow run form\n\t if (params.workflow_id) {\n\t this._loadWorkflow();\n\t // load the center iframe with controller.action: galaxy.org/?m_c=history&m_a=list -> history/list\n\t } else if (params.m_c) {\n\t this._loadCenterIframe(params.m_c + '/' + params.m_a);\n\t // show the workflow run form\n\t } else {\n\t this._loadCenterIframe('welcome');\n\t }\n\t }\n\t },\n\t\n\t /** load the center panel with a tool form described by the given params obj */\n\t _loadToolForm: function (params) {\n\t //TODO: load tool form code async\n\t params.id = params.tool_id;\n\t this.page.display(new ToolForm.View(params));\n\t },\n\t\n\t /** load the center panel iframe using the given url */\n\t _loadCenterIframe: function (url, root) {\n\t root = root || Galaxy.root;\n\t url = root + url;\n\t this.page.$('#galaxy_main').prop('src', url);\n\t },\n\t\n\t /** load workflow by its url in run mode */\n\t _loadWorkflow: function () {\n\t var self = this;\n\t Utils.get({\n\t url: Galaxy.root + 'api/workflows/' + Utils.getQueryString('id') + '/download',\n\t data: { 'style': 'run' },\n\t success: function (response) {\n\t self.page.display(new ToolFormComposite.View(response));\n\t },\n\t error: function (response) {\n\t var error_msg = \"Error occurred while loading the resource.\",\n\t options = { 'message': error_msg, 'status': 'error', 'persistent': true, 'cls': 'errormessage' };\n\t self.page.display(new Ui.Message(options));\n\t }\n\t });\n\t }\n\t });\n\t\n\t // render and start the router\n\t $(function () {\n\t\n\t Galaxy.page = new Page.View(_.extend(options, {\n\t Left: ToolPanel,\n\t Right: HistoryPanel,\n\t Router: Router\n\t }));\n\t\n\t // start the router - which will call any of the routes above\n\t Backbone.history.start({\n\t root: Galaxy.root,\n\t pushState: true\n\t });\n\t });\n\t};\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(2)))\n\n/***/ },\n/* 1 */,\n/* 2 */,\n/* 3 */,\n/* 4 */,\n/* 5 */,\n/* 6 */,\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, $, _) {/**\n\t * This class contains backbone wrappers for basic ui elements such as Images, Labels, Buttons, Input fields etc.\n\t */\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(4), __webpack_require__(25), __webpack_require__(62), __webpack_require__(24), __webpack_require__(58), __webpack_require__(12), __webpack_require__(8)], __WEBPACK_AMD_DEFINE_RESULT__ = function (Utils, Select, Slider, Options, Drilldown, Buttons, Modal) {\n\t\n\t /** Label wrapper */\n\t var Label = Backbone.View.extend({\n\t tagName: 'label',\n\t initialize: function (options) {\n\t this.model = options && options.model || new Backbone.Model(options);\n\t this.tagName = options.tagName || this.tagName;\n\t this.setElement($('<' + this.tagName + '/>'));\n\t this.listenTo(this.model, 'change', this.render, this);\n\t this.render();\n\t },\n\t title: function (new_title) {\n\t this.model.set('title', new_title);\n\t },\n\t value: function () {\n\t return this.model.get('title');\n\t },\n\t render: function () {\n\t this.$el.removeClass().addClass('ui-label').addClass(this.model.get('cls')).html(this.model.get('title'));\n\t return this;\n\t }\n\t });\n\t\n\t /** Displays messages used e.g. in the tool form */\n\t var Message = Backbone.View.extend({\n\t initialize: function (options) {\n\t this.model = options && options.model || new Backbone.Model({\n\t message: null,\n\t status: 'info',\n\t cls: '',\n\t persistent: false,\n\t fade: true\n\t }).set(options);\n\t this.listenTo(this.model, 'change', this.render, this);\n\t this.render();\n\t },\n\t update: function (options) {\n\t this.model.set(options);\n\t },\n\t render: function () {\n\t this.$el.removeClass().addClass('ui-message').addClass(this.model.get('cls'));\n\t var status = this.model.get('status');\n\t if (this.model.get('large')) {\n\t this.$el.addClass((status == 'success' && 'done' || status == 'danger' && 'error' || status) + 'messagelarge');\n\t } else {\n\t this.$el.addClass('alert').addClass('alert-' + status);\n\t }\n\t if (this.model.get('message')) {\n\t this.$el.html(this.messageForDisplay());\n\t this.$el[this.model.get('fade') ? 'fadeIn' : 'show']();\n\t this.timeout && window.clearTimeout(this.timeout);\n\t if (!this.model.get('persistent')) {\n\t var self = this;\n\t this.timeout = window.setTimeout(function () {\n\t self.model.set('message', '');\n\t }, 3000);\n\t }\n\t } else {\n\t this.$el.fadeOut();\n\t }\n\t return this;\n\t },\n\t messageForDisplay: function () {\n\t return _.escape(this.model.get('message'));\n\t }\n\t });\n\t\n\t var UnescapedMessage = Message.extend({\n\t messageForDisplay: function () {\n\t return this.model.get('message');\n\t }\n\t });\n\t\n\t /** Renders an input element used e.g. in the tool form */\n\t var Input = Backbone.View.extend({\n\t initialize: function (options) {\n\t this.model = options && options.model || new Backbone.Model({\n\t type: 'text',\n\t placeholder: '',\n\t disabled: false,\n\t readonly: false,\n\t visible: true,\n\t cls: '',\n\t area: false,\n\t color: null,\n\t style: null\n\t }).set(options);\n\t this.tagName = this.model.get('area') ? 'textarea' : 'input';\n\t this.setElement($('<' + this.tagName + '/>'));\n\t this.listenTo(this.model, 'change', this.render, this);\n\t this.render();\n\t },\n\t events: {\n\t 'input': '_onchange'\n\t },\n\t value: function (new_val) {\n\t new_val !== undefined && this.model.set('value', typeof new_val === 'string' ? new_val : '');\n\t return this.model.get('value');\n\t },\n\t render: function () {\n\t var self = this;\n\t this.$el.removeClass().addClass('ui-' + this.tagName).addClass(this.model.get('cls')).addClass(this.model.get('style')).attr('id', this.model.id).attr('type', this.model.get('type')).attr('placeholder', this.model.get('placeholder')).css('color', this.model.get('color') || '').css('border-color', this.model.get('color') || '');\n\t var datalist = this.model.get('datalist');\n\t if ($.isArray(datalist) && datalist.length > 0) {\n\t this.$el.autocomplete({ source: function (request, response) {\n\t response(self.model.get('datalist'));\n\t },\n\t change: function () {\n\t self._onchange();\n\t } });\n\t }\n\t if (this.model.get('value') !== this.$el.val()) {\n\t this.$el.val(this.model.get('value'));\n\t }\n\t _.each(['readonly', 'disabled'], function (attr_name) {\n\t self.model.get(attr_name) ? self.$el.attr(attr_name, true) : self.$el.removeAttr(attr_name);\n\t });\n\t this.$el[this.model.get('visible') ? 'show' : 'hide']();\n\t return this;\n\t },\n\t _onchange: function () {\n\t this.value(this.$el.val());\n\t this.model.get('onchange') && this.model.get('onchange')(this.model.get('value'));\n\t }\n\t });\n\t\n\t /** Creates a hidden element input field used e.g. in the tool form */\n\t var Hidden = Backbone.View.extend({\n\t initialize: function (options) {\n\t this.model = options && options.model || new Backbone.Model(options);\n\t this.setElement($('
').append(this.$info = $('
')).append(this.$hidden = $('
')));\n\t this.listenTo(this.model, 'change', this.render, this);\n\t this.render();\n\t },\n\t value: function (new_val) {\n\t new_val !== undefined && this.model.set('value', new_val);\n\t return this.model.get('value');\n\t },\n\t render: function () {\n\t this.$el.attr('id', this.model.id);\n\t this.$hidden.val(this.model.get('value'));\n\t this.model.get('info') ? this.$info.show().text(this.model.get('info')) : this.$info.hide();\n\t return this;\n\t }\n\t });\n\t\n\t /** Creates a upload element input field */\n\t var Upload = Backbone.View.extend({\n\t initialize: function (options) {\n\t var self = this;\n\t this.model = options && options.model || new Backbone.Model(options);\n\t this.setElement($('
').append(this.$info = $('
')).append(this.$file = $(' ').attr('type', 'file').addClass('ui-margin-bottom')).append(this.$text = $('').addClass('ui-textarea').attr('disabled', true)).append(this.$wait = $(' ').addClass('fa fa-spinner fa-spin')));\n\t this.listenTo(this.model, 'change', this.render, this);\n\t this.$file.on('change', function (e) {\n\t self._readFile(e);\n\t });\n\t this.render();\n\t },\n\t value: function (new_val) {\n\t new_val !== undefined && this.model.set('value', new_val);\n\t return this.model.get('value');\n\t },\n\t render: function () {\n\t this.$el.attr('id', this.model.id);\n\t this.model.get('info') ? this.$info.show().text(this.model.get('info')) : this.$info.hide();\n\t this.model.get('value') ? this.$text.text(this.model.get('value')).show() : this.$text.hide();\n\t this.model.get('wait') ? this.$wait.show() : this.$wait.hide();\n\t return this;\n\t },\n\t _readFile: function (e) {\n\t var self = this;\n\t var file = e.target.files && e.target.files[0];\n\t if (file) {\n\t var reader = new FileReader();\n\t reader.onload = function () {\n\t self.model.set({ wait: false, value: this.result });\n\t };\n\t this.model.set({ wait: true, value: null });\n\t reader.readAsText(file);\n\t }\n\t }\n\t });\n\t\n\t return {\n\t Button: Buttons.ButtonDefault,\n\t ButtonIcon: Buttons.ButtonIcon,\n\t ButtonCheck: Buttons.ButtonCheck,\n\t ButtonMenu: Buttons.ButtonMenu,\n\t ButtonLink: Buttons.ButtonLink,\n\t Input: Input,\n\t Label: Label,\n\t Message: Message,\n\t UnescapedMessage: UnescapedMessage,\n\t Upload: Upload,\n\t Modal: Modal,\n\t RadioButton: Options.RadioButton,\n\t Checkbox: Options.Checkbox,\n\t Radio: Options.Radio,\n\t Select: Select,\n\t Hidden: Hidden,\n\t Slider: Slider,\n\t Drilldown: Drilldown\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(1), __webpack_require__(2)))\n\n/***/ },\n/* 8 */,\n/* 9 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, _, $) {!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(4), __webpack_require__(7)], __WEBPACK_AMD_DEFINE_RESULT__ = function (Utils, Ui) {\n\t var View = Backbone.View.extend({\n\t visible: false,\n\t initialize: function (options) {\n\t var self = this;\n\t this.model = options && options.model || new Backbone.Model({\n\t id: Utils.uid(),\n\t cls: 'ui-portlet',\n\t title: '',\n\t icon: '',\n\t buttons: null,\n\t body: null,\n\t scrollable: true,\n\t nopadding: false,\n\t operations: null,\n\t collapsible: false,\n\t collapsible_button: false,\n\t collapsed: false,\n\t onchange_title: null\n\t }).set(options);\n\t this.setElement(this._template());\n\t\n\t // link all dom elements\n\t this.$body = this.$('.portlet-body');\n\t this.$title_text = this.$('.portlet-title-text');\n\t this.$title_icon = this.$('.portlet-title-icon');\n\t this.$header = this.$('.portlet-header');\n\t this.$content = this.$('.portlet-content');\n\t this.$backdrop = this.$('.portlet-backdrop');\n\t this.$buttons = this.$('.portlet-buttons');\n\t this.$operations = this.$('.portlet-operations');\n\t\n\t // add body to component list\n\t this.model.get('body') && this.append(this.model.get('body'));\n\t\n\t // add icon for collapsible option\n\t this.collapsible_button = new Ui.ButtonIcon({\n\t icon: 'fa-eye',\n\t tooltip: 'Collapse/Expand',\n\t cls: 'ui-button-icon-plain',\n\t onclick: function () {\n\t self[self.collapsed ? 'expand' : 'collapse']();\n\t }\n\t });\n\t this.render();\n\t },\n\t\n\t render: function () {\n\t var self = this;\n\t var options = this.model.attributes;\n\t this.$el.removeClass().addClass(options.cls).attr('id', options.id);\n\t this.$header[options.title ? 'show' : 'hide']();\n\t this.$title_text.html(options.title);\n\t _.each([this.$content, this.$body], function ($el) {\n\t $el[options.nopadding ? 'addClass' : 'removeClass']('no-padding');\n\t });\n\t\n\t // render title icon\n\t if (options.icon) {\n\t this.$title_icon.removeClass().addClass('portlet-title-icon fa').addClass(options.icon).show();\n\t } else {\n\t this.$title_icon.hide();\n\t }\n\t\n\t // make portlet collapsible\n\t this.$title_text[options.collapsible ? 'addClass' : 'removeClass']('no-highlight collapsible').off();\n\t if (options.collapsible) {\n\t this.$title_text.on('click', function () {\n\t self[self.collapsed ? 'expand' : 'collapse']();\n\t });\n\t options.collapsed ? this.collapse() : this.expand();\n\t }\n\t\n\t // allow title editing\n\t this.$title_text.prop('disabled', !options.onchange_title);\n\t options.onchange_title && this.$title_text.make_text_editable({\n\t on_finish: function (new_title) {\n\t options.onchange_title(new_title);\n\t }\n\t });\n\t\n\t // render buttons\n\t if (options.buttons) {\n\t this.$buttons.empty().show();\n\t $.each(this.model.get('buttons'), function (name, item) {\n\t item.$el.prop('id', name);\n\t self.$buttons.append(item.$el);\n\t });\n\t } else {\n\t this.$buttons.hide();\n\t }\n\t\n\t // render operations\n\t this.$operations.empty;\n\t if (options.collapsible_button) {\n\t this.$operations.append(this.collapsible_button.$el);\n\t }\n\t if (options.operations) {\n\t $.each(options.operations, function (name, item) {\n\t item.$el.prop('id', name);\n\t self.$operations.append(item.$el);\n\t });\n\t }\n\t return this;\n\t },\n\t\n\t /** Append new doms to body */\n\t append: function ($el) {\n\t this.$body.append($el);\n\t },\n\t\n\t /** Remove all content */\n\t empty: function () {\n\t this.$body.empty();\n\t },\n\t\n\t /** Return header element */\n\t header: function () {\n\t return this.$header;\n\t },\n\t\n\t /** Return body element */\n\t body: function () {\n\t return this.$body;\n\t },\n\t\n\t /** Show portlet */\n\t show: function () {\n\t this.visible = true;\n\t this.$el.fadeIn('fast');\n\t },\n\t\n\t /** Hide portlet */\n\t hide: function () {\n\t this.visible = false;\n\t this.$el.hide();\n\t },\n\t\n\t /** Enable a particular button */\n\t enableButton: function (id) {\n\t this.$buttons.find('#' + id).prop('disabled', false);\n\t },\n\t\n\t /** Disable a particular button */\n\t disableButton: function (id) {\n\t this.$buttons.find('#' + id).prop('disabled', true);\n\t },\n\t\n\t /** Hide a particular operation */\n\t hideOperation: function (id) {\n\t this.$operations.find('#' + id).hide();\n\t },\n\t\n\t /** Show a particular operation */\n\t showOperation: function (id) {\n\t this.$operations.find('#' + id).show();\n\t },\n\t\n\t /** Replaces the event callback of an existing operation */\n\t setOperation: function (id, callback) {\n\t this.$operations.find('#' + id).off('click').on('click', callback);\n\t },\n\t\n\t /** Change title */\n\t title: function (new_title) {\n\t new_title && this.$title_text.html(new_title);\n\t return this.$title_text.html();\n\t },\n\t\n\t /** Collapse portlet */\n\t collapse: function () {\n\t this.collapsed = true;\n\t this.$content.height('0%');\n\t this.$body.hide();\n\t this.collapsible_button.setIcon('fa-eye-slash');\n\t },\n\t\n\t /** Expand portlet */\n\t expand: function () {\n\t this.collapsed = false;\n\t this.$content.height('100%');\n\t this.$body.fadeIn('fast');\n\t this.collapsible_button.setIcon('fa-eye');\n\t },\n\t\n\t /** Disable content access */\n\t disable: function () {\n\t this.$backdrop.show();\n\t },\n\t\n\t /** Enable content access */\n\t enable: function () {\n\t this.$backdrop.hide();\n\t },\n\t\n\t _template: function () {\n\t return $('
').append($('
').addClass('portlet-header').append($('
').addClass('portlet-operations')).append($('
').addClass('portlet-title').append($(' ').addClass('portlet-title-icon')).append($(' ').addClass('portlet-title-text')))).append($('
').addClass('portlet-content').append($('
').addClass('portlet-body')).append($('
').addClass('portlet-buttons'))).append($('
').addClass('portlet-backdrop'));\n\t }\n\t });\n\t return {\n\t View: View\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(2), __webpack_require__(1)))\n\n/***/ },\n/* 10 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, _, $) {// Additional dependencies: jQuery, underscore.\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(8), __webpack_require__(31), __webpack_require__(14)], __WEBPACK_AMD_DEFINE_RESULT__ = function (Modal, Frames, mod_icon_btn) {\n\t\n\t /**\n\t * Dataset metedata.\n\t */\n\t var DatasetMetadata = Backbone.Model.extend({});\n\t\n\t /**\n\t * A dataset. In Galaxy, datasets are associated with a history, so\n\t * this object is also known as a HistoryDatasetAssociation.\n\t */\n\t var Dataset = Backbone.Model.extend({\n\t defaults: {\n\t id: '',\n\t type: '',\n\t name: '',\n\t hda_ldda: 'hda',\n\t metadata: null\n\t },\n\t\n\t initialize: function () {\n\t // Metadata can be passed in as a model or a set of attributes; if it's\n\t // already a model, there's no need to set metadata.\n\t if (!this.get('metadata')) {\n\t this._set_metadata();\n\t }\n\t\n\t // Update metadata on change.\n\t this.on('change', this._set_metadata, this);\n\t },\n\t\n\t _set_metadata: function () {\n\t var metadata = new DatasetMetadata();\n\t\n\t // Move metadata from dataset attributes to metadata object.\n\t _.each(_.keys(this.attributes), function (k) {\n\t if (k.indexOf('metadata_') === 0) {\n\t // Found metadata.\n\t var new_key = k.split('metadata_')[1];\n\t metadata.set(new_key, this.attributes[k]);\n\t delete this.attributes[k];\n\t }\n\t }, this);\n\t\n\t // Because this is an internal change, silence it.\n\t this.set('metadata', metadata, { 'silent': true });\n\t },\n\t\n\t /**\n\t * Returns dataset metadata for a given attribute.\n\t */\n\t get_metadata: function (attribute) {\n\t return this.attributes.metadata.get(attribute);\n\t },\n\t\n\t urlRoot: Galaxy.root + \"api/datasets\"\n\t });\n\t\n\t /**\n\t * A tabular dataset. This object extends dataset to provide incremental chunked data.\n\t */\n\t var TabularDataset = Dataset.extend({\n\t defaults: _.extend({}, Dataset.prototype.defaults, {\n\t chunk_url: null,\n\t first_data_chunk: null,\n\t offset: 0,\n\t at_eof: false\n\t }),\n\t\n\t initialize: function (options) {\n\t Dataset.prototype.initialize.call(this);\n\t\n\t // If first data chunk is available, next chunk is 1.\n\t if (this.attributes.first_data_chunk) {\n\t this.attributes.offset = this.attributes.first_data_chunk.offset;\n\t }\n\t this.attributes.chunk_url = Galaxy.root + 'dataset/display?dataset_id=' + this.id;\n\t this.attributes.url_viz = Galaxy.root + 'visualization';\n\t },\n\t\n\t /**\n\t * Returns a jQuery Deferred object that resolves to the next data chunk or null if at EOF.\n\t */\n\t get_next_chunk: function () {\n\t // If already at end of file, do nothing.\n\t if (this.attributes.at_eof) {\n\t return null;\n\t }\n\t\n\t // Get next chunk.\n\t var self = this,\n\t next_chunk = $.Deferred();\n\t $.getJSON(this.attributes.chunk_url, {\n\t offset: self.attributes.offset\n\t }).success(function (chunk) {\n\t var rval;\n\t if (chunk.ck_data !== '') {\n\t // Found chunk.\n\t rval = chunk;\n\t self.attributes.offset = chunk.offset;\n\t } else {\n\t // At EOF.\n\t self.attributes.at_eof = true;\n\t rval = null;\n\t }\n\t next_chunk.resolve(rval);\n\t });\n\t\n\t return next_chunk;\n\t }\n\t });\n\t\n\t var DatasetCollection = Backbone.Collection.extend({\n\t model: Dataset\n\t });\n\t\n\t /**\n\t * Provides a base for table-based, dynamic view of a tabular dataset.\n\t * Do not instantiate directly; use either TopLevelTabularDatasetChunkedView\n\t * or EmbeddedTabularDatasetChunkedView.\n\t */\n\t var TabularDatasetChunkedView = Backbone.View.extend({\n\t\n\t /**\n\t * Initialize view and, importantly, set a scroll element.\n\t */\n\t initialize: function (options) {\n\t // Row count for rendering.\n\t this.row_count = 0;\n\t this.loading_chunk = false;\n\t\n\t // load trackster button\n\t new TabularButtonTracksterView({\n\t model: options.model,\n\t $el: this.$el\n\t });\n\t },\n\t\n\t expand_to_container: function () {\n\t if (this.$el.height() < this.scroll_elt.height()) {\n\t this.attempt_to_fetch();\n\t }\n\t },\n\t\n\t attempt_to_fetch: function (func) {\n\t var self = this;\n\t if (!this.loading_chunk && this.scrolled_to_bottom()) {\n\t this.loading_chunk = true;\n\t this.loading_indicator.show();\n\t $.when(self.model.get_next_chunk()).then(function (result) {\n\t if (result) {\n\t self._renderChunk(result);\n\t self.loading_chunk = false;\n\t }\n\t self.loading_indicator.hide();\n\t self.expand_to_container();\n\t });\n\t }\n\t },\n\t\n\t render: function () {\n\t // Add loading indicator.\n\t this.loading_indicator = $('
').attr('id', 'loading_indicator');\n\t this.$el.append(this.loading_indicator);\n\t\n\t // Add data table and header.\n\t var data_table = $('').attr({\n\t id: 'content_table',\n\t cellpadding: 0\n\t });\n\t this.$el.append(data_table);\n\t var column_names = this.model.get_metadata('column_names'),\n\t header_container = $(' ').appendTo(data_table),\n\t header_row = $(' ').appendTo(header_container);\n\t if (column_names) {\n\t header_row.append('' + column_names.join(' ') + ' ');\n\t } else {\n\t for (var j = 1; j <= this.model.get_metadata('columns'); j++) {\n\t header_row.append('' + j + ' ');\n\t }\n\t }\n\t\n\t // Render first chunk.\n\t var self = this,\n\t first_chunk = this.model.get('first_data_chunk');\n\t if (first_chunk) {\n\t // First chunk is bootstrapped, so render now.\n\t this._renderChunk(first_chunk);\n\t } else {\n\t // No bootstrapping, so get first chunk and then render.\n\t $.when(self.model.get_next_chunk()).then(function (result) {\n\t self._renderChunk(result);\n\t });\n\t }\n\t\n\t // -- Show new chunks during scrolling. --\n\t\n\t // Set up chunk loading when scrolling using the scrolling element.\n\t this.scroll_elt.scroll(function () {\n\t self.attempt_to_fetch();\n\t });\n\t },\n\t\n\t /**\n\t * Returns true if user has scrolled to the bottom of the view.\n\t */\n\t scrolled_to_bottom: function () {\n\t return false;\n\t },\n\t\n\t // -- Helper functions. --\n\t\n\t _renderCell: function (cell_contents, index, colspan) {\n\t var $cell = $('').text(cell_contents);\n\t var column_types = this.model.get_metadata('column_types');\n\t if (colspan !== undefined) {\n\t $cell.attr('colspan', colspan).addClass('stringalign');\n\t } else if (column_types) {\n\t if (index < column_types.length) {\n\t if (column_types[index] === 'str' || column_types[index] === 'list') {\n\t /* Left align all str columns, right align the rest */\n\t $cell.addClass('stringalign');\n\t }\n\t }\n\t }\n\t return $cell;\n\t },\n\t\n\t _renderRow: function (line) {\n\t // Check length of cells to ensure this is a complete row.\n\t var cells = line.split('\\t'),\n\t row = $(' '),\n\t num_columns = this.model.get_metadata('columns');\n\t\n\t if (this.row_count % 2 !== 0) {\n\t row.addClass('dark_row');\n\t }\n\t\n\t if (cells.length === num_columns) {\n\t _.each(cells, function (cell_contents, index) {\n\t row.append(this._renderCell(cell_contents, index));\n\t }, this);\n\t } else if (cells.length > num_columns) {\n\t // SAM file or like format with optional metadata included.\n\t _.each(cells.slice(0, num_columns - 1), function (cell_contents, index) {\n\t row.append(this._renderCell(cell_contents, index));\n\t }, this);\n\t row.append(this._renderCell(cells.slice(num_columns - 1).join('\\t'), num_columns - 1));\n\t } else if (cells.length === 1) {\n\t // Comment line, just return the one cell.\n\t row.append(this._renderCell(line, 0, num_columns));\n\t } else {\n\t // cells.length is greater than one, but less than num_columns. Render cells and pad tds.\n\t // Possibly a SAM file or like format with optional metadata missing.\n\t // Could also be a tabular file with a line with missing columns.\n\t _.each(cells, function (cell_contents, index) {\n\t row.append(this._renderCell(cell_contents, index));\n\t }, this);\n\t _.each(_.range(num_columns - cells.length), function () {\n\t row.append($(''));\n\t });\n\t }\n\t\n\t this.row_count++;\n\t return row;\n\t },\n\t\n\t _renderChunk: function (chunk) {\n\t var data_table = this.$el.find('table');\n\t _.each(chunk.ck_data.split('\\n'), function (line, index) {\n\t if (line !== '') {\n\t data_table.append(this._renderRow(line));\n\t }\n\t }, this);\n\t }\n\t });\n\t\n\t /**\n\t * Tabular view that is placed at the top level of page. Scrolling occurs\n\t * view top-level elements outside of view.\n\t */\n\t var TopLevelTabularDatasetChunkedView = TabularDatasetChunkedView.extend({\n\t\n\t initialize: function (options) {\n\t TabularDatasetChunkedView.prototype.initialize.call(this, options);\n\t\n\t // Scrolling happens in top-level elements.\n\t scroll_elt = _.find(this.$el.parents(), function (p) {\n\t return $(p).css('overflow') === 'auto';\n\t });\n\t\n\t // If no scrolling element found, use window.\n\t if (!scroll_elt) {\n\t scroll_elt = window;\n\t }\n\t\n\t // Wrap scrolling element for easy access.\n\t this.scroll_elt = $(scroll_elt);\n\t },\n\t\n\t /**\n\t * Returns true if user has scrolled to the bottom of the view.\n\t */\n\t scrolled_to_bottom: function () {\n\t return this.$el.height() - this.scroll_elt.scrollTop() - this.scroll_elt.height() <= 0;\n\t }\n\t\n\t });\n\t\n\t /**\n\t * Tabular view tnat is embedded in a page. Scrolling occurs in view's el.\n\t */\n\t var EmbeddedTabularDatasetChunkedView = TabularDatasetChunkedView.extend({\n\t\n\t initialize: function (options) {\n\t TabularDatasetChunkedView.prototype.initialize.call(this, options);\n\t\n\t // Because view is embedded, set up div to do scrolling.\n\t this.scroll_elt = this.$el.css({\n\t position: 'relative',\n\t overflow: 'scroll',\n\t height: options.height || '500px'\n\t });\n\t },\n\t\n\t /**\n\t * Returns true if user has scrolled to the bottom of the view.\n\t */\n\t scrolled_to_bottom: function () {\n\t return this.$el.scrollTop() + this.$el.innerHeight() >= this.el.scrollHeight;\n\t }\n\t\n\t });\n\t\n\t /** Button for trackster visualization */\n\t var TabularButtonTracksterView = Backbone.View.extend({\n\t\n\t // gene region columns\n\t col: {\n\t chrom: null,\n\t start: null,\n\t end: null\n\t },\n\t\n\t // url for trackster\n\t url_viz: null,\n\t\n\t // dataset id\n\t dataset_id: null,\n\t\n\t // database key\n\t genome_build: null,\n\t\n\t // data type\n\t file_ext: null,\n\t\n\t // backbone initialize\n\t initialize: function (options) {\n\t // check if environment is available\n\t var Galaxy = parent.Galaxy;\n\t\n\t // link galaxy modal or create one\n\t if (Galaxy && Galaxy.modal) {\n\t this.modal = Galaxy.modal;\n\t }\n\t\n\t // link galaxy frames\n\t if (Galaxy && Galaxy.frame) {\n\t this.frame = Galaxy.frame;\n\t }\n\t\n\t // check\n\t if (!this.modal || !this.frame) {\n\t return;\n\t }\n\t\n\t // model/metadata\n\t var model = options.model;\n\t var metadata = model.get('metadata');\n\t\n\t // check for datatype\n\t if (!model.get('file_ext')) {\n\t return;\n\t }\n\t\n\t // get data type\n\t this.file_ext = model.get('file_ext');\n\t\n\t // check for bed-file format\n\t if (this.file_ext == 'bed') {\n\t // verify that metadata exists\n\t if (metadata.get('chromCol') && metadata.get('startCol') && metadata.get('endCol')) {\n\t // read in columns\n\t this.col.chrom = metadata.get('chromCol') - 1;\n\t this.col.start = metadata.get('startCol') - 1;\n\t this.col.end = metadata.get('endCol') - 1;\n\t } else {\n\t console.log('TabularButtonTrackster : Bed-file metadata incomplete.');\n\t return;\n\t }\n\t }\n\t\n\t // check for vcf-file format\n\t if (this.file_ext == 'vcf') {\n\t // search array\n\t function search(str, array) {\n\t for (var j = 0; j < array.length; j++) if (array[j].match(str)) return j;\n\t return -1;\n\t };\n\t\n\t // load\n\t this.col.chrom = search('Chrom', metadata.get('column_names'));\n\t this.col.start = search('Pos', metadata.get('column_names'));\n\t this.col.end = null;\n\t\n\t // verify that metadata exists\n\t if (this.col.chrom == -1 || this.col.start == -1) {\n\t console.log('TabularButtonTrackster : VCF-file metadata incomplete.');\n\t return;\n\t }\n\t }\n\t\n\t // check\n\t if (this.col.chrom === undefined) {\n\t return;\n\t }\n\t\n\t // get dataset id\n\t if (model.id) {\n\t this.dataset_id = model.id;\n\t } else {\n\t console.log('TabularButtonTrackster : Dataset identification is missing.');\n\t return;\n\t }\n\t\n\t // get url\n\t if (model.get('url_viz')) {\n\t this.url_viz = model.get('url_viz');\n\t } else {\n\t console.log('TabularButtonTrackster : Url for visualization controller is missing.');\n\t return;\n\t }\n\t\n\t // get genome_build / database key\n\t if (model.get('genome_build')) {\n\t this.genome_build = model.get('genome_build');\n\t }\n\t\n\t // create the icon\n\t var btn_viz = new mod_icon_btn.IconButtonView({\n\t model: new mod_icon_btn.IconButton({\n\t title: 'Visualize',\n\t icon_class: 'chart_curve',\n\t id: 'btn_viz'\n\t })\n\t });\n\t\n\t // set element\n\t this.setElement(options.$el);\n\t\n\t // add to element\n\t this.$el.append(btn_viz.render().$el);\n\t\n\t // hide the button\n\t this.hide();\n\t },\n\t\n\t /** Add event handlers */\n\t events: {\n\t 'mouseover tr': 'show',\n\t 'mouseleave': 'hide'\n\t },\n\t\n\t // show button\n\t show: function (e) {\n\t var self = this;\n\t\n\t // is numeric\n\t function is_numeric(n) {\n\t return !isNaN(parseFloat(n)) && isFinite(n);\n\t };\n\t\n\t // check\n\t if (this.col.chrom === null) return;\n\t\n\t // get selected data line\n\t var row = $(e.target).parent();\n\t\n\t // verify that location has been found\n\t var chrom = row.children().eq(this.col.chrom).html();\n\t var start = row.children().eq(this.col.start).html();\n\t\n\t // end is optional\n\t var end = this.col.end ? row.children().eq(this.col.end).html() : start;\n\t\n\t // double check location\n\t if (!chrom.match(\"^#\") && chrom !== \"\" && is_numeric(start)) {\n\t\n\t // get target gene region\n\t var btn_viz_pars = {\n\t dataset_id: this.dataset_id,\n\t gene_region: chrom + \":\" + start + \"-\" + end\n\t };\n\t\n\t // get button position\n\t var offset = row.offset();\n\t var left = offset.left - 10;\n\t var top = offset.top - $(window).scrollTop() + 3;\n\t\n\t // update css\n\t $('#btn_viz').css({ 'position': 'fixed', 'top': top + 'px', 'left': left + 'px' });\n\t $('#btn_viz').off('click');\n\t $('#btn_viz').click(function () {\n\t self.frame.add({\n\t title: 'Trackster',\n\t url: self.url_viz + '/trackster?' + $.param(btn_viz_pars)\n\t });\n\t });\n\t\n\t // show the button\n\t $('#btn_viz').show();\n\t } else {\n\t // hide the button\n\t $('#btn_viz').hide();\n\t }\n\t },\n\t\n\t /** hide button */\n\t hide: function () {\n\t this.$('#btn_viz').hide();\n\t }\n\t });\n\t\n\t // -- Utility functions. --\n\t\n\t /**\n\t * Create a model, attach it to a view, render view, and attach it to a parent element.\n\t */\n\t var createModelAndView = function (model, view, model_config, parent_elt) {\n\t // Create model, view.\n\t var a_view = new view({\n\t model: new model(model_config)\n\t });\n\t\n\t // Render view and add to parent element.\n\t a_view.render();\n\t if (parent_elt) {\n\t parent_elt.append(a_view.$el);\n\t }\n\t\n\t return a_view;\n\t };\n\t\n\t /**\n\t * Create a tabular dataset chunked view (and requisite tabular dataset model)\n\t * and appends to parent_elt.\n\t */\n\t var createTabularDatasetChunkedView = function (options) {\n\t // If no model, create and set model from dataset config.\n\t if (!options.model) {\n\t options.model = new TabularDataset(options.dataset_config);\n\t }\n\t\n\t var parent_elt = options.parent_elt;\n\t var embedded = options.embedded;\n\t\n\t // Clean up options so that only needed options are passed to view.\n\t delete options.embedded;\n\t delete options.parent_elt;\n\t delete options.dataset_config;\n\t\n\t // Create and set up view.\n\t var view = embedded ? new EmbeddedTabularDatasetChunkedView(options) : new TopLevelTabularDatasetChunkedView(options);\n\t view.render();\n\t\n\t if (parent_elt) {\n\t parent_elt.append(view.$el);\n\t // If we're sticking this in another element, once it's appended check\n\t // to make sure we've filled enough space.\n\t // Without this, the scroll elements don't work.\n\t view.expand_to_container();\n\t }\n\t\n\t return view;\n\t };\n\t\n\t return {\n\t Dataset: Dataset,\n\t TabularDataset: TabularDataset,\n\t DatasetCollection: DatasetCollection,\n\t TabularDatasetChunkedView: TabularDatasetChunkedView,\n\t createTabularDatasetChunkedView: createTabularDatasetChunkedView\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(2), __webpack_require__(1)))\n\n/***/ },\n/* 11 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () {\n\t\n\t 'use strict';\n\t //==============================================================================\n\t /** Map of possible HDA/collection/job states to their string equivalents.\n\t * A port of galaxy.model.Dataset.states.\n\t */\n\t\n\t var STATES = {\n\t // NOT ready states\n\t /** is uploading and not ready */\n\t UPLOAD: 'upload',\n\t /** the job that will produce the dataset queued in the runner */\n\t QUEUED: 'queued',\n\t /** the job that will produce the dataset is running */\n\t RUNNING: 'running',\n\t /** metadata for the dataset is being discovered/set */\n\t SETTING_METADATA: 'setting_metadata',\n\t\n\t // ready states\n\t /** was created without a tool */\n\t NEW: 'new',\n\t /** has no data */\n\t EMPTY: 'empty',\n\t /** has successfully completed running */\n\t OK: 'ok',\n\t\n\t /** the job that will produce the dataset paused */\n\t PAUSED: 'paused',\n\t /** metadata discovery/setting failed or errored (but otherwise ok) */\n\t FAILED_METADATA: 'failed_metadata',\n\t //TODO: not in trans.app.model.Dataset.states - is in database\n\t /** not accessible to the current user (i.e. due to permissions) */\n\t NOT_VIEWABLE: 'noPermission',\n\t /** deleted while uploading */\n\t DISCARDED: 'discarded',\n\t /** the tool producing this dataset failed */\n\t ERROR: 'error'\n\t };\n\t\n\t STATES.READY_STATES = [STATES.OK, STATES.EMPTY, STATES.PAUSED, STATES.FAILED_METADATA, STATES.NOT_VIEWABLE, STATES.DISCARDED, STATES.ERROR];\n\t\n\t STATES.NOT_READY_STATES = [STATES.UPLOAD, STATES.QUEUED, STATES.RUNNING, STATES.SETTING_METADATA, STATES.NEW];\n\t\n\t //==============================================================================\n\t return STATES;\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ },\n/* 12 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, $) {/** This module contains all button views. */\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(4)], __WEBPACK_AMD_DEFINE_RESULT__ = function (Utils) {\n\t /** This renders the default button which is used e.g. at the bottom of the upload modal. */\n\t var ButtonDefault = Backbone.View.extend({\n\t initialize: function (options) {\n\t this.model = options && options.model || new Backbone.Model({\n\t id: Utils.uid(),\n\t title: '',\n\t floating: 'right',\n\t icon: '',\n\t cls: 'btn btn-default',\n\t wait: false,\n\t wait_text: 'Sending...',\n\t wait_cls: 'btn btn-info',\n\t disabled: false,\n\t percentage: -1\n\t }).set(options);\n\t this.setElement($(' ').attr('type', 'button').append(this.$icon = $(' ')).append(this.$title = $(' ')).append(this.$progress = $('
').append(this.$progress_bar = $('
'))));\n\t this.listenTo(this.model, 'change', this.render, this);\n\t this.render();\n\t },\n\t\n\t render: function () {\n\t var self = this;\n\t var options = this.model.attributes;\n\t this.$el.removeClass().addClass('ui-button-default').addClass(options.disabled && 'disabled').attr('id', options.id).attr('disabled', options.disabled).css('float', options.floating).off('click').on('click', function () {\n\t $('.tooltip').hide();\n\t options.onclick && !self.disabled && options.onclick();\n\t }).tooltip({ title: options.tooltip, placement: 'bottom' });\n\t this.$progress.addClass('progress').css('display', options.percentage !== -1 ? 'block' : 'none');\n\t this.$progress_bar.addClass('progress-bar').css({ width: options.percentage + '%' });\n\t this.$icon.removeClass().addClass('icon fa');\n\t this.$title.removeClass().addClass('title');\n\t if (options.wait) {\n\t this.$el.addClass(options.wait_cls).prop('disabled', true);\n\t this.$icon.addClass('fa-spinner fa-spin ui-margin-right');\n\t this.$title.html(options.wait_text);\n\t } else {\n\t this.$el.addClass(options.cls);\n\t this.$icon.addClass(options.icon);\n\t this.$title.html(options.title);\n\t options.icon && options.title && this.$icon.addClass('ui-margin-right');\n\t }\n\t },\n\t\n\t /** Show button */\n\t show: function () {\n\t this.$el.show();\n\t },\n\t\n\t /** Hide button */\n\t hide: function () {\n\t this.$el.hide();\n\t },\n\t\n\t /** Disable button */\n\t disable: function () {\n\t this.model.set('disabled', true);\n\t },\n\t\n\t /** Enable button */\n\t enable: function () {\n\t this.model.set('disabled', false);\n\t },\n\t\n\t /** Show spinner to indicate that the button is not ready to be clicked */\n\t wait: function () {\n\t this.model.set('wait', true);\n\t },\n\t\n\t /** Hide spinner to indicate that the button is ready to be clicked */\n\t unwait: function () {\n\t this.model.set('wait', false);\n\t },\n\t\n\t /** Change icon */\n\t setIcon: function (icon) {\n\t this.model.set('icon', icon);\n\t }\n\t });\n\t\n\t /** This button allows the right-click/open-in-new-tab feature, its used e.g. for panel buttons. */\n\t var ButtonLink = ButtonDefault.extend({\n\t initialize: function (options) {\n\t this.model = options && options.model || new Backbone.Model({\n\t id: Utils.uid(),\n\t title: '',\n\t icon: '',\n\t cls: ''\n\t }).set(options);\n\t this.setElement($(' ').append(this.$icon = $(' ')));\n\t this.listenTo(this.model, 'change', this.render, this);\n\t this.render();\n\t },\n\t\n\t render: function () {\n\t var options = this.model.attributes;\n\t this.$el.removeClass().addClass(options.cls).attr({ id: options.id,\n\t href: options.href || 'javascript:void(0)',\n\t title: options.title,\n\t target: options.target || '_top',\n\t disabled: options.disabled }).tooltip({ placement: 'bottom' }).off('click').on('click', function () {\n\t options.onclick && !options.disabled && options.onclick();\n\t });\n\t this.$icon.removeClass().addClass(options.icon);\n\t }\n\t });\n\t\n\t /** The check button is used in the tool form and allows to distinguish between multiple states e.g. all, partially and nothing selected. */\n\t var ButtonCheck = Backbone.View.extend({\n\t initialize: function (options) {\n\t this.model = options && options.model || new Backbone.Model({\n\t id: Utils.uid(),\n\t title: 'Select/Unselect all',\n\t icons: ['fa-square-o', 'fa-minus-square-o', 'fa-check-square-o'],\n\t value: 0,\n\t onchange: function () {}\n\t }).set(options);\n\t this.setElement($('
').append(this.$icon = $(' ')).append(this.$title = $(' ')));\n\t this.listenTo(this.model, 'change', this.render, this);\n\t this.render();\n\t },\n\t\n\t render: function (options) {\n\t var self = this;\n\t var options = this.model.attributes;\n\t this.$el.addClass('ui-button-check').off('click').on('click', function () {\n\t self.model.set('value', self.model.get('value') === 0 && 2 || 0);\n\t options.onclick && options.onclick();\n\t });\n\t this.$title.html(options.title);\n\t this.$icon.removeClass().addClass('icon fa ui-margin-right').addClass(options.icons[options.value]);\n\t },\n\t\n\t /* Sets a new value and/or returns the value.\n\t * @param{Integer} new_val - Set a new value 0=unchecked, 1=partial and 2=checked.\n\t * OR:\n\t * @param{Integer} new_val - Number of selected options.\n\t * @param{Integer} total - Total number of available options.\n\t */\n\t value: function (new_val, total) {\n\t if (new_val !== undefined) {\n\t if (total && new_val !== 0) {\n\t new_val = new_val !== total && 1 || 2;\n\t }\n\t this.model.set('value', new_val);\n\t this.model.get('onchange')(this.model.get('value'));\n\t }\n\t return this.model.get('value');\n\t }\n\t });\n\t\n\t /** This renders a differently styled, more compact button version. */\n\t var ButtonIcon = ButtonDefault.extend({\n\t initialize: function (options) {\n\t this.model = options && options.model || new Backbone.Model({\n\t id: Utils.uid(),\n\t title: '',\n\t floating: 'right',\n\t icon: '',\n\t cls: 'ui-button-icon',\n\t disabled: false\n\t }).set(options);\n\t this.setElement($('
').append(this.$button = $('
').append(this.$icon = $(' ')).append(this.$title = $(' '))));\n\t this.listenTo(this.model, 'change', this.render, this);\n\t this.render();\n\t },\n\t\n\t render: function (options) {\n\t var self = this;\n\t var options = this.model.attributes;\n\t this.$el.removeClass().addClass(options.cls).addClass(options.disabled && 'disabled').attr('disabled', options.disabled).attr('id', options.id).css('float', options.floating).off('click').on('click', function () {\n\t $('.tooltip').hide();\n\t !options.disabled && options.onclick && options.onclick();\n\t });\n\t this.$button.addClass('button').tooltip({ title: options.tooltip, placement: 'bottom' });\n\t this.$icon.removeClass().addClass('icon fa').addClass(options.icon);\n\t this.$title.addClass('title').html(options.title);\n\t options.icon && options.title && this.$icon.addClass('ui-margin-right');\n\t }\n\t });\n\t\n\t /** This class creates a button with dropdown menu. */\n\t var ButtonMenu = ButtonDefault.extend({\n\t $menu: null,\n\t initialize: function (options) {\n\t this.model = options && options.model || new Backbone.Model({\n\t id: '',\n\t title: '',\n\t floating: 'right',\n\t pull: 'right',\n\t icon: null,\n\t onclick: null,\n\t cls: 'ui-button-icon ui-button-menu',\n\t tooltip: '',\n\t target: '',\n\t href: '',\n\t onunload: null,\n\t visible: true,\n\t tag: ''\n\t }).set(options);\n\t this.collection = new Backbone.Collection();\n\t this.setElement($('
').append(this.$root = $('
').append(this.$icon = $(' ')).append(this.$title = $(' '))));\n\t this.listenTo(this.model, 'change', this.render, this);\n\t this.listenTo(this.collection, 'change add remove reset', this.render, this);\n\t this.render();\n\t },\n\t\n\t render: function () {\n\t var self = this;\n\t var options = this.model.attributes;\n\t this.$el.removeClass().addClass('dropdown').addClass(options.cls).attr('id', options.id).css({ float: options.floating,\n\t display: options.visible && this.collection.where({ visible: true }).length > 0 ? 'block' : 'none' });\n\t this.$root.addClass('root button dropdown-toggle').attr('data-toggle', 'dropdown').tooltip({ title: options.tooltip, placement: 'bottom' }).off('click').on('click', function (e) {\n\t $('.tooltip').hide();\n\t e.preventDefault();\n\t options.onclick && options.onclick();\n\t });\n\t this.$icon.removeClass().addClass('icon fa').addClass(options.icon);\n\t this.$title.removeClass().addClass('title').html(options.title);\n\t options.icon && options.title && this.$icon.addClass('ui-margin-right');\n\t this.$menu && this.$menu.remove();\n\t if (this.collection.length > 0) {\n\t this.$menu = $('').addClass('menu dropdown-menu').addClass('pull-' + self.model.get('pull')).attr('role', 'menu');\n\t this.$el.append(this.$menu);\n\t }\n\t this.collection.each(function (submodel) {\n\t var suboptions = submodel.attributes;\n\t if (suboptions.visible) {\n\t var $link = $(' ').addClass('dropdown-item').attr({ href: suboptions.href, target: suboptions.target }).append($(' ').addClass('fa').addClass(suboptions.icon).css('display', suboptions.icon ? 'inline-block' : 'none')).append(suboptions.title).on('click', function (e) {\n\t if (suboptions.onclick) {\n\t e.preventDefault();\n\t suboptions.onclick();\n\t }\n\t });\n\t self.$menu.append($(' ').append($link));\n\t suboptions.divider && self.$menu.append($(' ').addClass('divider'));\n\t }\n\t });\n\t },\n\t\n\t /** Add a new menu item */\n\t addMenu: function (options) {\n\t this.collection.add(Utils.merge(options, {\n\t title: '',\n\t target: '',\n\t href: '',\n\t onclick: null,\n\t divider: false,\n\t visible: true,\n\t icon: null,\n\t cls: 'button-menu btn-group'\n\t }));\n\t }\n\t });\n\t\n\t return {\n\t ButtonDefault: ButtonDefault,\n\t ButtonLink: ButtonLink,\n\t ButtonIcon: ButtonIcon,\n\t ButtonCheck: ButtonCheck,\n\t ButtonMenu: ButtonMenu\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(1)))\n\n/***/ },\n/* 13 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, _, $) {/**\n\t This is the main class of the form plugin. It is referenced as 'app' in lower level modules.\n\t*/\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(4), __webpack_require__(9), __webpack_require__(7), __webpack_require__(47), __webpack_require__(28)], __WEBPACK_AMD_DEFINE_RESULT__ = function (Utils, Portlet, Ui, FormSection, FormData) {\n\t return Backbone.View.extend({\n\t initialize: function (options) {\n\t this.model = new Backbone.Model({\n\t initial_errors: false,\n\t cls: 'ui-portlet-limited',\n\t icon: null,\n\t always_refresh: true,\n\t message_status: 'warning'\n\t }).set(options);\n\t this.setElement('
');\n\t this.render();\n\t },\n\t\n\t /** Update available options */\n\t update: function (new_model) {\n\t var self = this;\n\t this.data.matchModel(new_model, function (node, input_id) {\n\t var input = self.input_list[input_id];\n\t if (input && input.options) {\n\t if (!_.isEqual(input.options, node.options)) {\n\t input.options = node.options;\n\t var field = self.field_list[input_id];\n\t if (field.update) {\n\t var new_options = [];\n\t if (['data', 'data_collection', 'drill_down'].indexOf(input.type) != -1) {\n\t new_options = input.options;\n\t } else {\n\t for (var i in node.options) {\n\t var opt = node.options[i];\n\t if (opt.length > 2) {\n\t new_options.push({ label: opt[0], value: opt[1] });\n\t }\n\t }\n\t }\n\t field.update(new_options);\n\t field.trigger('change');\n\t Galaxy.emit.debug('form-view::update()', 'Updating options for ' + input_id);\n\t }\n\t }\n\t }\n\t });\n\t },\n\t\n\t /** Set form into wait mode */\n\t wait: function (active) {\n\t for (var i in this.input_list) {\n\t var field = this.field_list[i];\n\t var input = this.input_list[i];\n\t if (input.is_dynamic && field.wait && field.unwait) {\n\t field[active ? 'wait' : 'unwait']();\n\t }\n\t }\n\t },\n\t\n\t /** Highlight and scroll to input element (currently only used for error notifications) */\n\t highlight: function (input_id, message, silent) {\n\t var input_element = this.element_list[input_id];\n\t if (input_element) {\n\t input_element.error(message || 'Please verify this parameter.');\n\t this.portlet.expand();\n\t this.trigger('expand', input_id);\n\t if (!silent) {\n\t var $panel = this.$el.parents().filter(function () {\n\t return ['auto', 'scroll'].indexOf($(this).css('overflow')) != -1;\n\t }).first();\n\t $panel.animate({ scrollTop: $panel.scrollTop() + input_element.$el.offset().top - 120 }, 500);\n\t }\n\t }\n\t },\n\t\n\t /** Highlights errors */\n\t errors: function (options) {\n\t this.trigger('reset');\n\t if (options && options.errors) {\n\t var error_messages = this.data.matchResponse(options.errors);\n\t for (var input_id in this.element_list) {\n\t var input = this.element_list[input_id];\n\t if (error_messages[input_id]) {\n\t this.highlight(input_id, error_messages[input_id], true);\n\t }\n\t }\n\t }\n\t },\n\t\n\t /** Render tool form */\n\t render: function () {\n\t var self = this;\n\t this.off('change');\n\t this.off('reset');\n\t // contains the dom field elements as created by the parameter factory i.e. form-parameters\n\t this.field_list = {};\n\t // contains input definitions/dictionaries as provided by the parameters to_dict() function through the api\n\t this.input_list = {};\n\t // contains the dom elements of each input element i.e. form-input which wraps the actual input field\n\t this.element_list = {};\n\t // converts the form into a json data structure\n\t this.data = new FormData.Manager(this);\n\t this._renderForm();\n\t this.data.create();\n\t this.model.get('initial_errors') && this.errors(this.model.attributes);\n\t // add listener which triggers on checksum change, and reset the form input wrappers\n\t var current_check = this.data.checksum();\n\t this.on('change', function (input_id) {\n\t var input = self.input_list[input_id];\n\t if (!input || input.refresh_on_change || self.model.get('always_refresh')) {\n\t var new_check = self.data.checksum();\n\t if (new_check != current_check) {\n\t current_check = new_check;\n\t self.model.get('onchange') && self.model.get('onchange')();\n\t }\n\t }\n\t });\n\t this.on('reset', function () {\n\t _.each(self.element_list, function (input_element) {\n\t input_element.reset();\n\t });\n\t });\n\t return this;\n\t },\n\t\n\t /** Renders/appends dom elements of the form */\n\t _renderForm: function () {\n\t $('.tooltip').remove();\n\t var options = this.model.attributes;\n\t this.message = new Ui.UnescapedMessage();\n\t this.section = new FormSection.View(this, { inputs: options.inputs });\n\t this.portlet = new Portlet.View({\n\t icon: options.icon,\n\t title: options.title,\n\t cls: options.cls,\n\t operations: options.operations,\n\t buttons: options.buttons,\n\t collapsible: options.collapsible,\n\t collapsed: options.collapsed,\n\t onchange_title: options.onchange_title\n\t });\n\t this.portlet.append(this.message.$el);\n\t this.portlet.append(this.section.$el);\n\t this.$el.empty();\n\t options.inputs && this.$el.append(this.portlet.$el);\n\t options.message && this.message.update({ persistent: true, status: options.message_status, message: options.message });\n\t Galaxy.emit.debug('form-view::initialize()', 'Completed');\n\t }\n\t });\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(2), __webpack_require__(1)))\n\n/***/ },\n/* 14 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, _, $) {!(__WEBPACK_AMD_DEFINE_ARRAY__ = [\n\t //jquery\n\t //backbone\n\t], __WEBPACK_AMD_DEFINE_RESULT__ = function () {\n\t //=============================================================================\n\t /**\n\t * backbone model for icon buttons\n\t */\n\t var IconButton = Backbone.Model.extend({\n\t defaults: {\n\t title: \"\",\n\t icon_class: \"\",\n\t on_click: null,\n\t menu_options: null,\n\t is_menu_button: true,\n\t id: null,\n\t href: null,\n\t target: null,\n\t enabled: true,\n\t visible: true,\n\t tooltip_config: {}\n\t }\n\t });\n\t\n\t /**\n\t * backbone view for icon buttons\n\t */\n\t var IconButtonView = Backbone.View.extend({\n\t\n\t initialize: function () {\n\t // better rendering this way\n\t this.model.attributes.tooltip_config = { placement: 'bottom' };\n\t this.model.bind('change', this.render, this);\n\t },\n\t\n\t render: function () {\n\t // hide tooltip\n\t this.$el.tooltip('hide');\n\t\n\t var new_elem = this.template(this.model.toJSON());\n\t // configure tooltip\n\t new_elem.tooltip(this.model.get('tooltip_config'));\n\t this.$el.replaceWith(new_elem);\n\t this.setElement(new_elem);\n\t return this;\n\t },\n\t\n\t events: {\n\t 'click': 'click'\n\t },\n\t\n\t click: function (event) {\n\t // if on_click pass to that function\n\t if (_.isFunction(this.model.get('on_click'))) {\n\t this.model.get('on_click')(event);\n\t return false;\n\t }\n\t // otherwise, bubble up ( to href or whatever )\n\t return true;\n\t },\n\t\n\t // generate html element\n\t template: function (options) {\n\t var buffer = 'title=\"' + options.title + '\" class=\"icon-button';\n\t\n\t if (options.is_menu_button) {\n\t buffer += ' menu-button';\n\t }\n\t\n\t buffer += ' ' + options.icon_class;\n\t\n\t if (!options.enabled) {\n\t buffer += '_disabled';\n\t }\n\t\n\t // close class tag\n\t buffer += '\"';\n\t\n\t if (options.id) {\n\t buffer += ' id=\"' + options.id + '\"';\n\t }\n\t\n\t buffer += ' href=\"' + options.href + '\"';\n\t // add target for href\n\t if (options.target) {\n\t buffer += ' target=\"' + options.target + '\"';\n\t }\n\t // set visibility\n\t if (!options.visible) {\n\t buffer += ' style=\"display: none;\"';\n\t }\n\t\n\t // enabled/disabled\n\t if (options.enabled) {\n\t buffer = ' ';\n\t } else {\n\t buffer = ' ';\n\t }\n\t\n\t // return element\n\t return $(buffer);\n\t }\n\t });\n\t\n\t // define collection\n\t var IconButtonCollection = Backbone.Collection.extend({\n\t model: IconButton\n\t });\n\t\n\t /**\n\t * menu with multiple icon buttons\n\t * views are not needed nor used for individual buttons\n\t */\n\t var IconButtonMenuView = Backbone.View.extend({\n\t\n\t tagName: 'div',\n\t\n\t initialize: function () {\n\t this.render();\n\t },\n\t\n\t render: function () {\n\t // initialize icon buttons\n\t var self = this;\n\t this.collection.each(function (button) {\n\t // create and add icon button to menu\n\t var elt = $(' ').attr('href', 'javascript:void(0)').attr('title', button.attributes.title).addClass('icon-button menu-button').addClass(button.attributes.icon_class).appendTo(self.$el).click(button.attributes.on_click);\n\t\n\t // configure tooltip\n\t if (button.attributes.tooltip_config) {\n\t elt.tooltip(button.attributes.tooltip_config);\n\t }\n\t\n\t // add popup menu to icon\n\t var menu_options = button.get('options');\n\t if (menu_options) {\n\t make_popupmenu(elt, menu_options);\n\t }\n\t });\n\t\n\t // return\n\t return this;\n\t }\n\t });\n\t\n\t /**\n\t * Returns an IconButtonMenuView for the provided configuration.\n\t * Configuration is a list of dictionaries where each dictionary\n\t * defines an icon button. Each dictionary must have the following\n\t * elements: icon_class, title, and on_click.\n\t */\n\t var create_icon_buttons_menu = function (config, global_config) {\n\t // initialize global configuration\n\t if (!global_config) global_config = {};\n\t\n\t // create and initialize menu\n\t var buttons = new IconButtonCollection(_.map(config, function (button_config) {\n\t return new IconButton(_.extend(button_config, global_config));\n\t }));\n\t\n\t // return menu\n\t return new IconButtonMenuView({ collection: buttons });\n\t };\n\t\n\t //=============================================================================\n\t return {\n\t IconButton: IconButton,\n\t IconButtonView: IconButtonView,\n\t IconButtonCollection: IconButtonCollection,\n\t IconButtonMenuView: IconButtonMenuView,\n\t create_icon_buttons_menu: create_icon_buttons_menu\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(2), __webpack_require__(1)))\n\n/***/ },\n/* 15 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, _, $) {/**\n\t * Popover wrapper\n\t*/\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(4)], __WEBPACK_AMD_DEFINE_RESULT__ = function (Utils) {\n\t var View = Backbone.View.extend({\n\t optionsDefault: {\n\t with_close: true,\n\t title: null,\n\t placement: 'top',\n\t container: 'body',\n\t body: null\n\t },\n\t\n\t initialize: function (options) {\n\t this.setElement(this._template());\n\t this.uid = Utils.uid();\n\t this.options = _.defaults(options || {}, this.optionsDefault);\n\t this.options.container.parent().append(this.el);\n\t this.$title = this.$('.popover-title-label');\n\t this.$close = this.$('.popover-close');\n\t this.$body = this.$('.popover-content');\n\t\n\t // add initial content\n\t this.options.body && this.append(this.options.body);\n\t\n\t // add event to hide if click is outside of popup and not on container\n\t var self = this;\n\t $('body').on('mousedown.' + this.uid, function (e) {\n\t // the 'is' for buttons that trigger popups\n\t // the 'has' for icons within a button that triggers a popup\n\t self.visible && !$(self.options.container).is(e.target) && !$(self.el).is(e.target) && $(self.el).has(e.target).length === 0 && self.hide();\n\t });\n\t },\n\t\n\t /**\n\t * Render popover\n\t */\n\t render: function () {\n\t this.$title.html(this.options.title);\n\t this.$el.removeClass().addClass('ui-popover popover fade in').addClass(this.options.placement);\n\t this.$el.css(this._get_placement(this.options.placement));\n\t\n\t // configure close option\n\t var self = this;\n\t if (this.options.with_close) {\n\t this.$close.on('click', function () {\n\t self.hide();\n\t }).show();\n\t } else {\n\t this.$close.off().hide();\n\t }\n\t },\n\t\n\t /**\n\t * Set the popover title\n\t * @params{ String } newTitle - New popover title\n\t */\n\t title: function (newTitle) {\n\t if (newTitle !== undefined) {\n\t this.options.title = newTitle;\n\t this.$title.html(newTitle);\n\t }\n\t },\n\t\n\t /**\n\t * Show popover\n\t */\n\t show: function () {\n\t this.render();\n\t this.$el.show();\n\t this.visible = true;\n\t },\n\t\n\t /**\n\t * Hide popover\n\t */\n\t hide: function () {\n\t this.$el.hide();\n\t this.visible = false;\n\t },\n\t\n\t /**\n\t * Append new content to the popover\n\t * @params{ Object } $el - Dom element\n\t */\n\t append: function ($el) {\n\t this.$body.append($el);\n\t },\n\t\n\t /**\n\t * Remove all content\n\t */\n\t empty: function () {\n\t this.$body.empty();\n\t },\n\t\n\t /**\n\t * Remove popover\n\t */\n\t remove: function () {\n\t $('body').off('mousedown.' + this.uid);\n\t this.$el.remove();\n\t },\n\t\n\t /**\n\t * Improve popover location/placement\n\t */\n\t _get_placement: function (placement) {\n\t // get popover dimensions\n\t var width = this._get_width(this.$el);\n\t var height = this.$el.height();\n\t\n\t // get container details\n\t var $container = this.options.container;\n\t var container_width = this._get_width($container);\n\t var container_height = this._get_height($container);\n\t var container_position = $container.position();\n\t\n\t // get position\n\t var top = left = 0;\n\t if (['top', 'bottom'].indexOf(placement) != -1) {\n\t left = container_position.left - width + (container_width + width) / 2;\n\t switch (placement) {\n\t case 'top':\n\t top = container_position.top - height - 5;\n\t break;\n\t case 'bottom':\n\t top = container_position.top + container_height + 5;\n\t break;\n\t }\n\t } else {\n\t top = container_position.top - height + (container_height + height) / 2;\n\t switch (placement) {\n\t case 'right':\n\t left = container_position.left + container_width;\n\t break;\n\t }\n\t }\n\t return { top: top, left: left };\n\t },\n\t\n\t /**\n\t * Returns padding/margin corrected width\n\t */\n\t _get_width: function ($el) {\n\t return $el.width() + parseInt($el.css('padding-left')) + parseInt($el.css('margin-left')) + parseInt($el.css('padding-right')) + parseInt($el.css('margin-right'));\n\t },\n\t\n\t /**\n\t * Returns padding corrected height\n\t */\n\t _get_height: function ($el) {\n\t return $el.height() + parseInt($el.css('padding-top')) + parseInt($el.css('padding-bottom'));\n\t },\n\t\n\t /**\n\t * Return the popover template\n\t */\n\t _template: function (options) {\n\t return '' + '
' + '
' + '
' + '
' + '
';\n\t }\n\t });\n\t\n\t return {\n\t View: View\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(2), __webpack_require__(1)))\n\n/***/ },\n/* 16 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, _) {// dependencies\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(4)], __WEBPACK_AMD_DEFINE_RESULT__ = function (Utils) {\n\t\n\t /**\n\t * A plugin for initializing select2 input items.\n\t * Make sure the select2 library itself is loaded beforehand.\n\t * Also the element to which select2 will be appended has to \n\t * be created before select2 initialization (and passed as option).\n\t */\n\t var View = Backbone.View.extend({\n\t // options\n\t optionsDefault: {\n\t css: '',\n\t placeholder: 'No data available',\n\t data: [],\n\t value: null,\n\t multiple: false,\n\t minimumInputLength: 0,\n\t // example format of initial data: \"id:name,55:anotherrole@role.com,27:role@role.com\"\n\t initialData: ''\n\t },\n\t\n\t // initialize\n\t initialize: function (options) {\n\t // configure options\n\t this.options = Utils.merge(options, this.optionsDefault);\n\t\n\t // create new element\n\t this.setElement(this._template(this.options));\n\t\n\t // check if container exists\n\t if (!this.options.container) {\n\t console.log('ui-select::initialize() : container not specified.');\n\t return;\n\t }\n\t\n\t // add to dom\n\t this.options.container.append(this.$el);\n\t\n\t // link selection dictionary\n\t this.select_data = this.options.data;\n\t\n\t // refresh\n\t this._refresh();\n\t\n\t if (!this.options.multiple) {\n\t // initial value\n\t if (this.options.value) {\n\t this._setValue(this.options.value);\n\t }\n\t\n\t // add change event\n\t var self = this;\n\t if (this.options.onchange) {\n\t this.$el.on('change', function () {\n\t self.options.onchange(self.value());\n\t });\n\t }\n\t }\n\t },\n\t\n\t // value\n\t value: function (new_value) {\n\t // get current id/value\n\t var before = this._getValue();\n\t\n\t // check if new_value is defined\n\t if (new_value !== undefined) {\n\t this._setValue(new_value);\n\t }\n\t\n\t // get current id/value\n\t var after = this._getValue();\n\t\n\t // fire onchange\n\t if (after != before && this.options.onchange) {\n\t this.options.onchange(after);\n\t }\n\t\n\t // return current value\n\t return after;\n\t },\n\t\n\t // label\n\t text: function () {\n\t return this.$el.select2('data').text;\n\t },\n\t\n\t // disabled\n\t disabled: function () {\n\t return !this.$el.select2('enable');\n\t },\n\t\n\t // enable\n\t enable: function () {\n\t this.$el.select2('enable', true);\n\t },\n\t\n\t // disable\n\t disable: function () {\n\t this.$el.select2('enable', false);\n\t },\n\t\n\t // add\n\t add: function (options) {\n\t // add options\n\t this.select_data.push({\n\t id: options.id,\n\t text: options.text\n\t });\n\t\n\t // refresh\n\t this._refresh();\n\t },\n\t\n\t // remove\n\t del: function (id) {\n\t // search option\n\t var index = this._getIndex(id);\n\t\n\t // check if found\n\t if (index != -1) {\n\t // remove options\n\t this.select_data.splice(index, 1);\n\t\n\t // refresh\n\t this._refresh();\n\t }\n\t },\n\t\n\t // remove\n\t remove: function () {\n\t this.$el.select2('destroy');\n\t },\n\t\n\t // update\n\t update: function (options) {\n\t // copy options\n\t this.select_data = [];\n\t for (var key in options.data) {\n\t this.select_data.push(options.data[key]);\n\t }\n\t\n\t // refresh\n\t this._refresh();\n\t },\n\t\n\t // refresh\n\t _refresh: function () {\n\t // add select2 data based on type of input\n\t if (!this.options.multiple) {\n\t var selected = this._getValue();\n\t var select_opt = {\n\t data: this.select_data,\n\t containerCssClass: this.options.css,\n\t placeholder: this.options.placeholder,\n\t dropdownAutoWidth: true\n\t };\n\t this.$el.select2(select_opt);\n\t // select previous value (if exists)\n\t this._setValue(selected);\n\t } else {\n\t var select_opt = {\n\t multiple: this.options.multiple,\n\t containerCssClass: this.options.css,\n\t placeholder: this.options.placeholder,\n\t minimumInputLength: this.options.minimumInputLength,\n\t ajax: this.options.ajax,\n\t dropdownCssClass: this.options.dropdownCssClass,\n\t escapeMarkup: this.options.escapeMarkup,\n\t formatResult: this.options.formatResult,\n\t formatSelection: this.options.formatSelection,\n\t initSelection: this.options.initSelection,\n\t initialData: this.options.initialData\n\t };\n\t this.$el.select2(select_opt);\n\t }\n\t },\n\t\n\t // get index\n\t _getIndex: function (value) {\n\t // returns the index of the searched value\n\t _.findIndex(this.select_data, { id: value });\n\t },\n\t\n\t // get value\n\t _getValue: function () {\n\t return this.$el.select2('val');\n\t },\n\t\n\t // set value\n\t _setValue: function (new_value) {\n\t var index = this._getIndex(new_value);\n\t if (index == -1) {\n\t if (this.select_data.length > 0) {\n\t new_value = this.select_data[0].id;\n\t }\n\t }\n\t this.$el.select2('val', new_value);\n\t },\n\t\n\t // element\n\t _template: function (options) {\n\t return '
';\n\t }\n\t });\n\t\n\t return {\n\t View: View\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(2)))\n\n/***/ },\n/* 17 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// from: https://raw.githubusercontent.com/umdjs/umd/master/jqueryPlugin.js\n\t// Uses AMD or browser globals to create a jQuery plugin.\n\t(function (factory) {\n\t if (true) {\n\t //TODO: So...this turns out to be an all or nothing thing. If I load jQuery in the define below, it will\n\t // (of course) wipe the old jquery *and all the plugins loaded into it*. So the define below *is still\n\t // relying on jquery being loaded globally* in order to preserve plugins.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else {\n\t // Browser globals\n\t factory(jQuery);\n\t }\n\t})(function (jQuery) {\n\t 'use_strict';\n\t\n\t var $ = jQuery;\n\t\n\t // ============================================================================\n\t /**\n\t * Make an element with text editable: (a) when user clicks on text, a textbox/area\n\t * is provided for editing; (b) when enter key pressed, element's text is set and on_finish\n\t * is called.\n\t */\n\t $.fn.make_text_editable = function (config_dict) {\n\t // Get config options.\n\t var num_cols = \"num_cols\" in config_dict ? config_dict.num_cols : 30,\n\t num_rows = \"num_rows\" in config_dict ? config_dict.num_rows : 4,\n\t use_textarea = \"use_textarea\" in config_dict ? config_dict.use_textarea : false,\n\t on_finish = \"on_finish\" in config_dict ? config_dict.on_finish : null,\n\t help_text = \"help_text\" in config_dict ? config_dict.help_text : null;\n\t\n\t // Add element behavior.\n\t var container = $(this);\n\t container.addClass(\"editable-text\").click(function (e) {\n\t // If there's already an input element, editing is active, so do nothing.\n\t if ($(this).children(\":input\").length > 0) {\n\t return;\n\t }\n\t\n\t container.removeClass(\"editable-text\");\n\t\n\t // Handler for setting element text.\n\t var set_text = function (new_text) {\n\t container.find(\":input\").remove();\n\t\n\t if (new_text !== \"\") {\n\t container.text(new_text);\n\t } else {\n\t // No text; need a line so that there is a click target.\n\t container.html(\"
\");\n\t }\n\t container.addClass(\"editable-text\");\n\t\n\t if (on_finish) {\n\t on_finish(new_text);\n\t }\n\t };\n\t\n\t // Create input element(s) for editing.\n\t var cur_text = \"cur_text\" in config_dict ? config_dict.cur_text : container.text(),\n\t input_elt,\n\t button_elt;\n\t\n\t if (use_textarea) {\n\t input_elt = $(\"
\").attr({ rows: num_rows, cols: num_cols }).text($.trim(cur_text)).keyup(function (e) {\n\t if (e.keyCode === 27) {\n\t // Escape key.\n\t set_text(cur_text);\n\t }\n\t });\n\t button_elt = $(\"
\").text(\"Done\").click(function () {\n\t set_text(input_elt.val());\n\t // Return false so that click does not propogate to container.\n\t return false;\n\t });\n\t } else {\n\t input_elt = $(\"
\").attr({ value: $.trim(cur_text), size: num_cols }).blur(function () {\n\t set_text(cur_text);\n\t }).keyup(function (e) {\n\t if (e.keyCode === 27) {\n\t // Escape key.\n\t $(this).trigger(\"blur\");\n\t } else if (e.keyCode === 13) {\n\t // Enter key.\n\t set_text($(this).val());\n\t }\n\t\n\t // Do not propogate event to avoid unwanted side effects.\n\t e.stopPropagation();\n\t });\n\t }\n\t\n\t // Replace text with input object(s) and focus & select.\n\t container.text(\"\");\n\t container.append(input_elt);\n\t if (button_elt) {\n\t container.append(button_elt);\n\t }\n\t input_elt.focus();\n\t input_elt.select();\n\t\n\t // Do not propogate to elements below b/c that blurs input and prevents it from being used.\n\t e.stopPropagation();\n\t });\n\t\n\t // Add help text if there some.\n\t if (help_text) {\n\t container.attr(\"title\", help_text).tooltip();\n\t }\n\t\n\t return container;\n\t };\n\t\n\t // ============================================================================\n\t});\n\n/***/ },\n/* 18 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function($, _) {(function (root, factory) {\n\t if (true) {\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else {\n\t root.faIconButton = factory();\n\t }\n\t})(this, function () {\n\t //============================================================================\n\t /** Returns a jQuery object containing a clickable font-awesome button.\n\t * options:\n\t * tooltipConfig : option map for bootstrap tool tip\n\t * classes : array of class names (will always be classed as icon-btn)\n\t * disabled : T/F - add the 'disabled' class?\n\t * title : tooltip/title string\n\t * target : optional href target\n\t * href : optional href\n\t * faIcon : which font awesome icon to use\n\t * onclick : function to call when the button is clicked\n\t */\n\t var faIconButton = function (options) {\n\t options = options || {};\n\t options.tooltipConfig = options.tooltipConfig || { placement: 'bottom' };\n\t\n\t options.classes = ['icon-btn'].concat(options.classes || []);\n\t if (options.disabled) {\n\t options.classes.push('disabled');\n\t }\n\t\n\t var html = ['
',\n\t // could go with something less specific here - like 'html'\n\t ' ', ' '].join('');\n\t var $button = $(html).tooltip(options.tooltipConfig);\n\t if (_.isFunction(options.onclick)) {\n\t $button.click(options.onclick);\n\t }\n\t return $button;\n\t };\n\t\n\t //============================================================================\n\t return faIconButton;\n\t});\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1), __webpack_require__(2)))\n\n/***/ },\n/* 19 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, $) {!(__WEBPACK_AMD_DEFINE_RESULT__ = function () {\n\t\n\t /**\n\t * Stringifies a number adding commas for digit grouping as per North America.\n\t */\n\t function commatize(number) {\n\t number += ''; // Convert to string\n\t var rgx = /(\\d+)(\\d{3})/;\n\t while (rgx.test(number)) {\n\t number = number.replace(rgx, '$1' + ',' + '$2');\n\t }\n\t return number;\n\t }\n\t\n\t /**\n\t * Helper to determine if object is jQuery deferred.\n\t */\n\t var is_deferred = function (d) {\n\t return 'promise' in d;\n\t };\n\t\n\t /**\n\t * Implementation of a server-state based deferred. Server is repeatedly polled, and when\n\t * condition is met, deferred is resolved.\n\t */\n\t var ServerStateDeferred = Backbone.Model.extend({\n\t defaults: {\n\t ajax_settings: {},\n\t interval: 1000,\n\t success_fn: function (result) {\n\t return true;\n\t }\n\t },\n\t\n\t /**\n\t * Returns a deferred that resolves when success function returns true.\n\t */\n\t go: function () {\n\t var deferred = $.Deferred(),\n\t self = this,\n\t ajax_settings = self.get('ajax_settings'),\n\t success_fn = self.get('success_fn'),\n\t interval = self.get('interval'),\n\t _go = function () {\n\t $.ajax(ajax_settings).success(function (result) {\n\t if (success_fn(result)) {\n\t // Result is good, so resolve.\n\t deferred.resolve(result);\n\t } else {\n\t // Result not good, try again.\n\t setTimeout(_go, interval);\n\t }\n\t });\n\t };\n\t _go();\n\t return deferred;\n\t }\n\t });\n\t\n\t /**\n\t * Returns a random color in hexadecimal format that is sufficiently different from a single color\n\t * or set of colors.\n\t * @param colors a color or list of colors in the format '#RRGGBB'\n\t */\n\t var get_random_color = function (colors) {\n\t // Default for colors is white.\n\t if (!colors) {\n\t colors = \"#ffffff\";\n\t }\n\t\n\t // If needed, create list of colors.\n\t if (typeof colors === \"string\") {\n\t colors = [colors];\n\t }\n\t\n\t // Convert colors to numbers.\n\t for (var i = 0; i < colors.length; i++) {\n\t colors[i] = parseInt(colors[i].slice(1), 16);\n\t }\n\t\n\t // -- Perceived brightness and difference formulas are from\n\t // -- http://www.w3.org/WAI/ER/WD-AERT/#color-contrast\n\t\n\t // Compute perceived color brightness (based on RGB-YIQ transformation):\n\t var brightness = function (r, g, b) {\n\t return (r * 299 + g * 587 + b * 114) / 1000;\n\t };\n\t\n\t // Compute color difference:\n\t var difference = function (r1, g1, b1, r2, g2, b2) {\n\t return Math.max(r1, r2) - Math.min(r1, r2) + (Math.max(g1, g2) - Math.min(g1, g2)) + (Math.max(b1, b2) - Math.min(b1, b2));\n\t };\n\t\n\t // Create new random color.\n\t var new_color,\n\t nr,\n\t ng,\n\t nb,\n\t other_color,\n\t or,\n\t og,\n\t ob,\n\t n_brightness,\n\t o_brightness,\n\t diff,\n\t ok = false,\n\t num_tries = 0;\n\t do {\n\t // New color is never white b/c random in [0,1)\n\t new_color = Math.round(Math.random() * 0xffffff);\n\t nr = (new_color & 0xff0000) >> 16;\n\t ng = (new_color & 0x00ff00) >> 8;\n\t nb = new_color & 0x0000ff;\n\t n_brightness = brightness(nr, ng, nb);\n\t ok = true;\n\t for (i = 0; i < colors.length; i++) {\n\t other_color = colors[i];\n\t or = (other_color & 0xff0000) >> 16;\n\t og = (other_color & 0x00ff00) >> 8;\n\t ob = other_color & 0x0000ff;\n\t o_brightness = brightness(or, og, ob);\n\t diff = difference(nr, ng, nb, or, og, ob);\n\t // These thresholds may need to be adjusted. Brightness difference range is 125;\n\t // color difference range is 500.\n\t if (Math.abs(n_brightness - o_brightness) < 40 || diff < 200) {\n\t ok = false;\n\t break;\n\t }\n\t }\n\t\n\t num_tries++;\n\t } while (!ok && num_tries <= 10);\n\t\n\t // Add 0x1000000 to left pad number with 0s.\n\t return '#' + (0x1000000 + new_color).toString(16).substr(1, 6);\n\t };\n\t\n\t return {\n\t commatize: commatize,\n\t is_deferred: is_deferred,\n\t ServerStateDeferred: ServerStateDeferred,\n\t get_random_color: get_random_color\n\t };\n\t}.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(1)))\n\n/***/ },\n/* 20 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, _) {!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(38), __webpack_require__(6), __webpack_require__(5)], __WEBPACK_AMD_DEFINE_RESULT__ = function (parseBibtex, baseMVC, _l) {\n\t /* global Backbone */\n\t // we use amd here to require, but bibtex uses a global or commonjs pattern.\n\t // webpack will load via commonjs and plain requirejs will load as global. Check both\n\t parseBibtex = parseBibtex || window.BibtexParser;\n\t\n\t var logNamespace = 'citation';\n\t //==============================================================================\n\t /** @class model for tool citations.\n\t * @name Citation\n\t * @augments Backbone.Model\n\t */\n\t var Citation = Backbone.Model.extend(baseMVC.LoggableMixin).extend({\n\t _logNamespace: logNamespace,\n\t\n\t defaults: {\n\t content: ''\n\t },\n\t\n\t initialize: function () {\n\t var parsed;\n\t try {\n\t // TODO: to model.parse/.validate\n\t parsed = parseBibtex(this.attributes.content);\n\t } catch (err) {\n\t return;\n\t }\n\t // bibtex returns successfully parsed in .entries and any parsing errors in .errors\n\t if (parsed.errors.length) {\n\t // the gen. form of these errors seems to be [ line, col, char, error message ]\n\t var errors = parsed.errors.reduce(function (all, current) {\n\t return all + '; ' + current;\n\t });\n\t // throw new Error( 'Error parsing bibtex: ' + errors );\n\t this.log('Error parsing bibtex: ' + errors);\n\t }\n\t\n\t this._fields = {};\n\t this.entry = _.first(parsed.entries);\n\t if (this.entry) {\n\t var rawFields = this.entry.Fields;\n\t for (var key in rawFields) {\n\t var value = rawFields[key];\n\t var lowerKey = key.toLowerCase();\n\t this._fields[lowerKey] = value;\n\t }\n\t }\n\t },\n\t entryType: function () {\n\t return this.entry ? this.entry.EntryType : undefined;\n\t },\n\t fields: function () {\n\t return this._fields;\n\t }\n\t });\n\t\n\t //==============================================================================\n\t /** @class Backbone collection of citations.\n\t */\n\t var BaseCitationCollection = Backbone.Collection.extend(baseMVC.LoggableMixin).extend({\n\t _logNamespace: logNamespace,\n\t\n\t /** root api url */\n\t urlRoot: Galaxy.root + 'api',\n\t partial: true, // Assume some tools in history/workflow may not be properly annotated yet.\n\t model: Citation\n\t });\n\t\n\t var HistoryCitationCollection = BaseCitationCollection.extend({\n\t /** complete api url */\n\t url: function () {\n\t return this.urlRoot + '/histories/' + this.history_id + '/citations';\n\t }\n\t });\n\t\n\t var ToolCitationCollection = BaseCitationCollection.extend({\n\t /** complete api url */\n\t url: function () {\n\t return this.urlRoot + '/tools/' + this.tool_id + '/citations';\n\t },\n\t partial: false });\n\t\n\t //==============================================================================\n\t\n\t return {\n\t Citation: Citation,\n\t HistoryCitationCollection: HistoryCitationCollection,\n\t ToolCitationCollection: ToolCitationCollection\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(2)))\n\n/***/ },\n/* 21 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(jQuery, Backbone, $, _) {// This is necessary so that, when nested arrays are used in ajax/post/get methods, square brackets ('[]') are\n\t// not appended to the identifier of a nested array.\n\tjQuery.ajaxSettings.traditional = true;\n\t\n\t// dependencies\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(4), __webpack_require__(48), __webpack_require__(49), __webpack_require__(22)], __WEBPACK_AMD_DEFINE_RESULT__ = function (Utils, GridModel, Templates, PopupMenu) {\n\t\n\t // grid view\n\t return Backbone.View.extend({\n\t\n\t // model\n\t grid: null,\n\t\n\t // Initialize\n\t initialize: function (grid_config) {\n\t this.dict_format = grid_config.dict_format;\n\t var self = this;\n\t window.add_tag_to_grid_filter = function (tag_name, tag_value) {\n\t // Put tag name and value together.\n\t var tag = tag_name + (tag_value !== undefined && tag_value !== \"\" ? \":\" + tag_value : \"\");\n\t var advanced_search = $('#advanced-search').is(\":visible\");\n\t if (!advanced_search) {\n\t $('#standard-search').slideToggle('fast');\n\t $('#advanced-search').slideToggle('fast');\n\t }\n\t self.add_filter_condition(\"tags\", tag);\n\t };\n\t\n\t // set element\n\t if (this.dict_format) {\n\t this.setElement('
');\n\t if (grid_config.url_base && !grid_config.items) {\n\t Utils.get({\n\t url: grid_config.url_base,\n\t success: function (response) {\n\t response.embedded = grid_config.embedded;\n\t self.init_grid(response);\n\t }\n\t });\n\t } else {\n\t this.init_grid(grid_config);\n\t }\n\t } else {\n\t this.setElement('#grid-container');\n\t this.init_grid(grid_config);\n\t }\n\t\n\t // fix padding\n\t if (grid_config.use_panels) {\n\t $('#center').css({\n\t padding: '10px',\n\t overflow: 'auto'\n\t });\n\t }\n\t },\n\t\n\t // refresh frames\n\t handle_refresh: function (refresh_frames) {\n\t if (refresh_frames) {\n\t if ($.inArray('history', refresh_frames) > -1) {\n\t if (top.Galaxy && top.Galaxy.currHistoryPanel) {\n\t top.Galaxy.currHistoryPanel.loadCurrentHistory();\n\t }\n\t }\n\t }\n\t },\n\t\n\t // Initialize\n\t init_grid: function (grid_config) {\n\t // link grid model\n\t this.grid = new GridModel(grid_config);\n\t\n\t // get options\n\t var options = this.grid.attributes;\n\t\n\t // handle refresh requests\n\t this.handle_refresh(options.refresh_frames);\n\t\n\t // strip protocol and domain\n\t var url = this.grid.get('url_base');\n\t url = url.replace(/^.*\\/\\/[^\\/]+/, '');\n\t this.grid.set('url_base', url);\n\t\n\t // append main template\n\t this.$el.html(Templates.grid(options));\n\t\n\t // update div contents\n\t this.$el.find('#grid-table-header').html(Templates.header(options));\n\t this.$el.find('#grid-table-body').html(Templates.body(options));\n\t this.$el.find('#grid-table-footer').html(Templates.footer(options));\n\t\n\t // update message\n\t if (options.message) {\n\t this.$el.find('#grid-message').html(Templates.message(options));\n\t var self = this;\n\t if (options.use_hide_message) {\n\t setTimeout(function () {\n\t self.$el.find('#grid-message').html('');\n\t }, 5000);\n\t }\n\t }\n\t\n\t // configure elements\n\t this.init_grid_elements();\n\t this.init_grid_controls();\n\t\n\t // attach global event handler\n\t // TODO: redundant (the onload/standard page handlers do this) - but needed because these are constructed after page ready\n\t init_refresh_on_change();\n\t },\n\t\n\t // Initialize grid controls\n\t init_grid_controls: function () {\n\t\n\t // link\n\t var self = this;\n\t\n\t // Initialize grid operation button.\n\t this.$el.find('.operation-button').each(function () {\n\t $(this).off();\n\t $(this).click(function () {\n\t self.submit_operation(this);\n\t return false;\n\t });\n\t });\n\t\n\t // Initialize text filters to select text on click and use normal font when user is typing.\n\t this.$el.find('input[type=text]').each(function () {\n\t $(this).off();\n\t $(this).click(function () {\n\t $(this).select();\n\t }).keyup(function () {\n\t $(this).css('font-style', 'normal');\n\t });\n\t });\n\t\n\t // Initialize sort links.\n\t this.$el.find('.sort-link').each(function () {\n\t $(this).off();\n\t $(this).click(function () {\n\t self.set_sort_condition($(this).attr('sort_key'));\n\t return false;\n\t });\n\t });\n\t\n\t // Initialize text filters.\n\t this.$el.find('.text-filter-form').each(function () {\n\t $(this).off();\n\t $(this).submit(function () {\n\t var column_key = $(this).attr('column_key');\n\t var text_input_obj = $('#input-' + column_key + '-filter');\n\t var text_input = text_input_obj.val();\n\t text_input_obj.val('');\n\t self.add_filter_condition(column_key, text_input);\n\t return false;\n\t });\n\t });\n\t\n\t // Initialize categorical filters.\n\t this.$el.find('.text-filter-val > a').each(function () {\n\t $(this).off();\n\t $(this).click(function () {\n\t // Remove visible element.\n\t $(this).parent().remove();\n\t\n\t // Remove filter condition.\n\t self.remove_filter_condition($(this).attr('filter_key'), $(this).attr('filter_val'));\n\t\n\t // Return\n\t return false;\n\t });\n\t });\n\t\n\t // Initialize categorical filters.\n\t this.$el.find('.categorical-filter > a').each(function () {\n\t $(this).off();\n\t $(this).click(function () {\n\t self.set_categorical_filter($(this).attr('filter_key'), $(this).attr('filter_val'));\n\t return false;\n\t });\n\t });\n\t\n\t // Initialize standard, advanced search toggles.\n\t this.$el.find('.advanced-search-toggle').each(function () {\n\t $(this).off();\n\t $(this).click(function () {\n\t self.$el.find('#standard-search').slideToggle('fast');\n\t self.$el.find('#advanced-search').slideToggle('fast');\n\t return false;\n\t });\n\t });\n\t\n\t // Add event to check all box\n\t this.$el.find('#check_all').off();\n\t this.$el.find('#check_all').on('click', function () {\n\t self.check_all_items();\n\t });\n\t },\n\t\n\t // Initialize grid elements.\n\t init_grid_elements: function () {\n\t // Initialize grid selection checkboxes.\n\t this.$el.find('.grid').each(function () {\n\t var checkboxes = $(this).find(\"input.grid-row-select-checkbox\");\n\t var check_count = $(this).find(\"span.grid-selected-count\");\n\t var update_checked = function () {\n\t check_count.text($(checkboxes).filter(\":checked\").length);\n\t };\n\t\n\t $(checkboxes).each(function () {\n\t $(this).change(update_checked);\n\t });\n\t update_checked();\n\t });\n\t\n\t // Initialize ratings.\n\t if (this.$el.find('.community_rating_star').length !== 0) this.$el.find('.community_rating_star').rating({});\n\t\n\t // get options\n\t var options = this.grid.attributes;\n\t var self = this;\n\t\n\t //\n\t // add page click events\n\t //\n\t this.$el.find('.page-link > a').each(function () {\n\t $(this).click(function () {\n\t self.set_page($(this).attr('page_num'));\n\t return false;\n\t });\n\t });\n\t\n\t //\n\t // add inbound/outbound events\n\t //\n\t this.$el.find('.use-target').each(function () {\n\t $(this).click(function (e) {\n\t self.execute({\n\t href: $(this).attr('href'),\n\t target: $(this).attr('target')\n\t });\n\t return false;\n\t });\n\t });\n\t\n\t // empty grid?\n\t var items_length = options.items.length;\n\t if (items_length == 0) {\n\t return;\n\t }\n\t\n\t // add operation popup menus\n\t _.each(options.items, function (item, index) {\n\t var button = self.$('#grid-' + index + '-popup').off();\n\t var popup = new PopupMenu(button);\n\t _.each(options['operations'], function (operation) {\n\t self._add_operation(popup, operation, item);\n\t });\n\t });\n\t },\n\t\n\t /** Add an operation to the items menu */\n\t _add_operation: function (popup, operation, item) {\n\t var self = this;\n\t var settings = item.operation_config[operation.label];\n\t if (settings.allowed && operation.allow_popup) {\n\t popup.addItem({\n\t html: operation.label,\n\t href: settings.url_args,\n\t target: settings.target,\n\t confirmation_text: operation.confirm,\n\t func: function (e) {\n\t e.preventDefault();\n\t var label = $(e.target).html();\n\t if (operation.onclick) {\n\t operation.onclick(item.encode_id);\n\t } else {\n\t self.execute(this.findItemByHtml(label));\n\t }\n\t }\n\t });\n\t }\n\t },\n\t\n\t // Add a condition to the grid filter; this adds the condition and refreshes the grid.\n\t add_filter_condition: function (name, value) {\n\t // Do nothing is value is empty.\n\t if (value === \"\") {\n\t return false;\n\t }\n\t\n\t // Add condition to grid.\n\t this.grid.add_filter(name, value, true);\n\t\n\t // Add button that displays filter and provides a button to delete it.\n\t var t = $(Templates.filter_element(name, value));\n\t var self = this;\n\t t.click(function () {\n\t // Remove visible element.\n\t $(this).remove();\n\t\n\t // Remove filter condition.\n\t self.remove_filter_condition(name, value);\n\t });\n\t\n\t // append to container\n\t var container = this.$el.find('#' + name + '-filtering-criteria');\n\t container.append(t);\n\t\n\t // execute\n\t this.go_page_one();\n\t this.execute();\n\t },\n\t\n\t // Remove a condition to the grid filter; this adds the condition and refreshes the grid.\n\t remove_filter_condition: function (name, value) {\n\t // Remove filter condition.\n\t this.grid.remove_filter(name, value);\n\t\n\t // Execute\n\t this.go_page_one();\n\t this.execute();\n\t },\n\t\n\t // Set sort condition for grid.\n\t set_sort_condition: function (col_key) {\n\t // Set new sort condition. New sort is col_key if sorting new column; if reversing sort on\n\t // currently sorted column, sort is reversed.\n\t var cur_sort = this.grid.get('sort_key');\n\t var new_sort = col_key;\n\t if (cur_sort.indexOf(col_key) !== -1) {\n\t // Reverse sort.\n\t if (cur_sort.substring(0, 1) !== '-') {\n\t new_sort = '-' + col_key;\n\t }\n\t }\n\t\n\t // Remove sort arrows elements.\n\t this.$el.find('.sort-arrow').remove();\n\t\n\t // Add sort arrow element to new sort column.\n\t var sort_arrow = new_sort.substring(0, 1) == '-' ? '↑' : '↓';\n\t var t = $('
' + sort_arrow + ' ').addClass('sort-arrow');\n\t\n\t // Add to header\n\t this.$el.find('#' + col_key + '-header').append(t);\n\t\n\t // Update grid.\n\t this.grid.set('sort_key', new_sort);\n\t this.go_page_one();\n\t this.execute();\n\t },\n\t\n\t // Set new value for categorical filter.\n\t set_categorical_filter: function (name, new_value) {\n\t // Update filter hyperlinks to reflect new filter value.\n\t var category_filter = this.grid.get('categorical_filters')[name],\n\t cur_value = this.grid.get('filters')[name];\n\t var self = this;\n\t this.$el.find('.' + name + '-filter').each(function () {\n\t var text = $.trim($(this).text());\n\t var filter = category_filter[text];\n\t var filter_value = filter[name];\n\t if (filter_value == new_value) {\n\t // Remove filter link since grid will be using this filter. It is assumed that\n\t // this element has a single child, a hyperlink/anchor with text.\n\t $(this).empty();\n\t $(this).addClass('current-filter');\n\t $(this).append(text);\n\t } else if (filter_value == cur_value) {\n\t // Add hyperlink for this filter since grid will no longer be using this filter. It is assumed that\n\t // this element has a single child, a hyperlink/anchor.\n\t $(this).empty();\n\t var t = $('
' + text + ' ');\n\t t.click(function () {\n\t self.set_categorical_filter(name, filter_value);\n\t });\n\t $(this).removeClass('current-filter');\n\t $(this).append(t);\n\t }\n\t });\n\t\n\t // Update grid.\n\t this.grid.add_filter(name, new_value);\n\t this.go_page_one();\n\t this.execute();\n\t },\n\t\n\t // Set page to view.\n\t set_page: function (new_page) {\n\t // Update page hyperlink to reflect new page.\n\t var self = this;\n\t this.$el.find('.page-link').each(function () {\n\t var id = $(this).attr('id'),\n\t page_num = parseInt(id.split('-')[2], 10),\n\t // Id has form 'page-link-
\n\t cur_page = self.grid.get('cur_page'),\n\t text;\n\t if (page_num === new_page) {\n\t // Remove link to page since grid will be on this page. It is assumed that\n\t // this element has a single child, a hyperlink/anchor with text.\n\t text = $(this).children().text();\n\t $(this).empty();\n\t $(this).addClass('inactive-link');\n\t $(this).text(text);\n\t } else if (page_num === cur_page) {\n\t // Add hyperlink to this page since grid will no longer be on this page. It is assumed that\n\t // this element has a single child, a hyperlink/anchor.\n\t text = $(this).text();\n\t $(this).empty();\n\t $(this).removeClass('inactive-link');\n\t var t = $('' + text + ' ');\n\t t.click(function () {\n\t self.set_page(page_num);\n\t });\n\t $(this).append(t);\n\t }\n\t });\n\t\n\t if (new_page === 'all') {\n\t this.grid.set('cur_page', new_page);\n\t } else {\n\t this.grid.set('cur_page', parseInt(new_page, 10));\n\t }\n\t this.execute();\n\t },\n\t\n\t // confirmation/submission of operation request\n\t submit_operation: function (operation_button, confirmation_text) {\n\t // identify operation\n\t var operation_name = $(operation_button).val();\n\t\n\t // verify in any item is selected\n\t var number_of_checked_ids = this.$el.find('input[name=\"id\"]:checked').length;\n\t if (!number_of_checked_ids > 0) {\n\t return false;\n\t }\n\t\n\t // Check to see if there's grid confirmation text for this operation\n\t var operation = _.findWhere(this.grid.attributes.operations, { label: operation_name });\n\t if (operation && !confirmation_text) {\n\t confirmation_text = operation.confirm || '';\n\t }\n\t\n\t // collect ids\n\t var item_ids = [];\n\t this.$el.find('input[name=id]:checked').each(function () {\n\t item_ids.push($(this).val());\n\t });\n\t\n\t // execute operation\n\t this.execute({\n\t operation: operation_name,\n\t id: item_ids,\n\t confirmation_text: confirmation_text\n\t });\n\t\n\t // return\n\t return true;\n\t },\n\t\n\t check_all_items: function () {\n\t var chk_all = document.getElementById('check_all'),\n\t checks = document.getElementsByTagName('input'),\n\t total = 0,\n\t i;\n\t if (chk_all.checked === true) {\n\t for (i = 0; i < checks.length; i++) {\n\t if (checks[i].name.indexOf('id') !== -1) {\n\t checks[i].checked = true;\n\t total++;\n\t }\n\t }\n\t } else {\n\t for (i = 0; i < checks.length; i++) {\n\t if (checks[i].name.indexOf('id') !== -1) {\n\t checks[i].checked = false;\n\t }\n\t }\n\t }\n\t this.init_grid_elements();\n\t },\n\t\n\t // Go back to page one; this is useful when a filter is applied.\n\t go_page_one: function () {\n\t // Need to go back to page 1 if not showing all.\n\t var cur_page = this.grid.get('cur_page');\n\t if (cur_page !== null && cur_page !== undefined && cur_page !== 'all') {\n\t this.grid.set('cur_page', 1);\n\t }\n\t },\n\t\n\t //\n\t // execute operations and hyperlink requests\n\t //\n\t execute: function (options) {\n\t // get url\n\t var id = null;\n\t var href = null;\n\t var operation = null;\n\t var confirmation_text = null;\n\t var target = null;\n\t\n\t // check for options\n\t if (options) {\n\t // get options\n\t href = options.href;\n\t operation = options.operation;\n\t id = options.id;\n\t confirmation_text = options.confirmation_text;\n\t target = options.target;\n\t\n\t // check if input contains the operation tag\n\t if (href !== undefined && href.indexOf('operation=') != -1) {\n\t // Get operation, id in hyperlink's href.\n\t var href_parts = href.split(\"?\");\n\t if (href_parts.length > 1) {\n\t var href_parms_str = href_parts[1];\n\t var href_parms = href_parms_str.split(\"&\");\n\t for (var index = 0; index < href_parms.length; index++) {\n\t if (href_parms[index].indexOf('operation') != -1) {\n\t // Found operation parm; get operation value.\n\t operation = href_parms[index].split('=')[1];\n\t operation = operation.replace(/\\+/g, ' ');\n\t } else if (href_parms[index].indexOf('id') != -1) {\n\t // Found id parm; get id value.\n\t id = href_parms[index].split('=')[1];\n\t }\n\t }\n\t }\n\t }\n\t }\n\t\n\t // check for operation details\n\t if (operation && id) {\n\t // show confirmation box\n\t if (confirmation_text && confirmation_text != '' && confirmation_text != 'None' && confirmation_text != 'null') if (!confirm(confirmation_text)) return false;\n\t\n\t // use small characters for operation?!\n\t operation = operation.toLowerCase();\n\t\n\t // Update grid.\n\t this.grid.set({\n\t operation: operation,\n\t item_ids: id\n\t });\n\t\n\t // Do operation. If operation cannot be performed asynchronously, redirect to location.\n\t if (this.grid.can_async_op(operation) || this.dict_format) {\n\t this.update_grid();\n\t } else {\n\t this.go_to(target, href);\n\t }\n\t\n\t // done\n\t return false;\n\t }\n\t\n\t // refresh grid\n\t if (href) {\n\t this.go_to(target, href);\n\t return false;\n\t }\n\t\n\t // refresh grid\n\t if (this.grid.get('async') || this.dict_format) {\n\t this.update_grid();\n\t } else {\n\t this.go_to(target, href);\n\t }\n\t\n\t // done\n\t return false;\n\t },\n\t\n\t // go to url\n\t go_to: function (target, href) {\n\t // get aysnc status\n\t var async = this.grid.get('async');\n\t this.grid.set('async', false);\n\t\n\t // get slide status\n\t advanced_search = this.$el.find('#advanced-search').is(':visible');\n\t this.grid.set('advanced_search', advanced_search);\n\t\n\t // get default url\n\t if (!href) {\n\t href = this.grid.get('url_base') + '?' + $.param(this.grid.get_url_data());\n\t }\n\t\n\t // clear grid of transient request attributes.\n\t this.grid.set({\n\t operation: undefined,\n\t item_ids: undefined,\n\t async: async\n\t });\n\t switch (target) {\n\t case 'inbound':\n\t // this currently assumes that there is only a single grid shown at a time\n\t var $div = $('.grid-header').closest('.inbound');\n\t if ($div.length !== 0) {\n\t $div.load(href);\n\t return;\n\t }\n\t break;\n\t case 'top':\n\t window.top.location = href;\n\t break;\n\t default:\n\t window.location = href;\n\t }\n\t },\n\t\n\t // Update grid.\n\t update_grid: function () {\n\t // If there's an operation, do POST; otherwise, do GET.\n\t var method = this.grid.get('operation') ? 'POST' : 'GET';\n\t\n\t // Show overlay to indicate loading and prevent user actions.\n\t this.$el.find('.loading-elt-overlay').show();\n\t var self = this;\n\t $.ajax({\n\t type: method,\n\t url: self.grid.get('url_base'),\n\t data: self.grid.get_url_data(),\n\t error: function (response) {\n\t alert('Grid refresh failed');\n\t },\n\t success: function (response_text) {\n\t\n\t // backup\n\t var embedded = self.grid.get('embedded');\n\t var insert = self.grid.get('insert');\n\t\n\t // request new configuration\n\t var json = self.dict_format ? response_text : $.parseJSON(response_text);\n\t\n\t // update\n\t json.embedded = embedded;\n\t json.insert = insert;\n\t\n\t // Initialize new grid config\n\t self.init_grid(json);\n\t\n\t // Hide loading overlay.\n\t self.$el.find('.loading-elt-overlay').hide();\n\t },\n\t complete: function () {\n\t // Clear grid of transient request attributes.\n\t self.grid.set({\n\t operation: undefined,\n\t item_ids: undefined\n\t });\n\t }\n\t });\n\t }\n\t });\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1), __webpack_require__(3), __webpack_require__(1), __webpack_require__(2)))\n\n/***/ },\n/* 22 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, $, _, jQuery) {!(__WEBPACK_AMD_DEFINE_ARRAY__ = [\n\t //jquery\n\t //backbone\n\t], __WEBPACK_AMD_DEFINE_RESULT__ = function () {\n\t // =============================================================================\n\t /**\n\t * view for a popup menu\n\t */\n\t var PopupMenu = Backbone.View.extend({\n\t //TODO: maybe better as singleton off the Galaxy obj\n\t /** Cache the desired button element and options, set up the button click handler\n\t * NOTE: attaches this view as HTML/jQ data on the button for later use.\n\t */\n\t initialize: function ($button, options) {\n\t // default settings\n\t this.$button = $button;\n\t if (!this.$button.length) {\n\t this.$button = $('
');\n\t }\n\t this.options = options || [];\n\t this.$button.data('popupmenu', this);\n\t\n\t // set up button click -> open menu behavior\n\t var menu = this;\n\t this.$button.click(function (event) {\n\t // if there's already a menu open, remove it\n\t $('.popmenu-wrapper').remove();\n\t menu._renderAndShow(event);\n\t return false;\n\t });\n\t },\n\t\n\t // render the menu, append to the page body at the click position, and set up the 'click-away' handlers, show\n\t _renderAndShow: function (clickEvent) {\n\t this.render();\n\t this.$el.appendTo('body').css(this._getShownPosition(clickEvent)).show();\n\t this._setUpCloseBehavior();\n\t },\n\t\n\t // render the menu\n\t // this menu doesn't attach itself to the DOM ( see _renderAndShow )\n\t render: function () {\n\t // render the menu body absolute and hidden, fill with template\n\t this.$el.addClass('popmenu-wrapper').hide().css({ position: 'absolute' }).html(this.template(this.$button.attr('id'), this.options));\n\t\n\t // set up behavior on each link/anchor elem\n\t if (this.options.length) {\n\t var menu = this;\n\t //precondition: there should be one option per li\n\t this.$el.find('li').each(function (i, li) {\n\t var option = menu.options[i];\n\t\n\t // if the option has 'func', call that function when the anchor is clicked\n\t if (option.func) {\n\t $(this).children('a.popupmenu-option').click(function (event) {\n\t option.func.call(menu, event, option);\n\t // We must preventDefault otherwise clicking \"cancel\"\n\t // on a purge or something still navigates and causes\n\t // the action.\n\t event.preventDefault();\n\t // bubble up so that an option click will call the close behavior\n\t });\n\t }\n\t });\n\t }\n\t return this;\n\t },\n\t\n\t template: function (id, options) {\n\t return [''].join('');\n\t },\n\t\n\t _templateOptions: function (options) {\n\t if (!options.length) {\n\t return '(no options) ';\n\t }\n\t return _.map(options, function (option) {\n\t if (option.divider) {\n\t return ' ';\n\t } else if (option.header) {\n\t return ['', option.html, ' '].join('');\n\t }\n\t var href = option.href || 'javascript:void(0);',\n\t target = option.target ? ' target=\"' + option.target + '\"' : '',\n\t check = option.checked ? ' ' : '';\n\t return [' '].join('');\n\t }).join('');\n\t },\n\t\n\t // get the absolute position/offset for the menu\n\t _getShownPosition: function (clickEvent) {\n\t\n\t // display menu horiz. centered on click...\n\t var menuWidth = this.$el.width();\n\t var x = clickEvent.pageX - menuWidth / 2;\n\t\n\t // adjust to handle horiz. scroll and window dimensions ( draw entirely on visible screen area )\n\t x = Math.min(x, $(document).scrollLeft() + $(window).width() - menuWidth - 5);\n\t x = Math.max(x, $(document).scrollLeft() + 5);\n\t return {\n\t top: clickEvent.pageY,\n\t left: x\n\t };\n\t },\n\t\n\t // bind an event handler to all available frames so that when anything is clicked\n\t // the menu is removed from the DOM and the event handler unbinds itself\n\t _setUpCloseBehavior: function () {\n\t var menu = this;\n\t //TODO: alternately: focus hack, blocking overlay, jquery.blockui\n\t\n\t // function to close popup and unbind itself\n\t function closePopup(event) {\n\t $(document).off('click.close_popup');\n\t if (window && window.parent !== window) {\n\t try {\n\t $(window.parent.document).off(\"click.close_popup\");\n\t } catch (err) {}\n\t } else {\n\t try {\n\t $('iframe#galaxy_main').contents().off(\"click.close_popup\");\n\t } catch (err) {}\n\t }\n\t menu.remove();\n\t }\n\t\n\t $('html').one(\"click.close_popup\", closePopup);\n\t if (window && window.parent !== window) {\n\t try {\n\t $(window.parent.document).find('html').one(\"click.close_popup\", closePopup);\n\t } catch (err) {}\n\t } else {\n\t try {\n\t $('iframe#galaxy_main').contents().one(\"click.close_popup\", closePopup);\n\t } catch (err) {}\n\t }\n\t },\n\t\n\t // add a menu option/item at the given index\n\t addItem: function (item, index) {\n\t // append to end if no index\n\t index = index >= 0 ? index : this.options.length;\n\t this.options.splice(index, 0, item);\n\t return this;\n\t },\n\t\n\t // remove a menu option/item at the given index\n\t removeItem: function (index) {\n\t if (index >= 0) {\n\t this.options.splice(index, 1);\n\t }\n\t return this;\n\t },\n\t\n\t // search for a menu option by its html\n\t findIndexByHtml: function (html) {\n\t for (var i = 0; i < this.options.length; i++) {\n\t if (_.has(this.options[i], 'html') && this.options[i].html === html) {\n\t return i;\n\t }\n\t }\n\t return null;\n\t },\n\t\n\t // search for a menu option by its html\n\t findItemByHtml: function (html) {\n\t return this.options[this.findIndexByHtml(html)];\n\t },\n\t\n\t // string representation\n\t toString: function () {\n\t return 'PopupMenu';\n\t }\n\t });\n\t /** shortcut to new for when you don't need to preserve the ref */\n\t PopupMenu.create = function _create($button, options) {\n\t return new PopupMenu($button, options);\n\t };\n\t\n\t // -----------------------------------------------------------------------------\n\t // the following class functions are bridges from the original make_popupmenu and make_popup_menus\n\t // to the newer backbone.js PopupMenu\n\t\n\t /** Create a PopupMenu from simple map initial_options activated by clicking button_element.\n\t * Converts initial_options to object array used by PopupMenu.\n\t * @param {jQuery|DOMElement} button_element element which, when clicked, activates menu\n\t * @param {Object} initial_options map of key -> values, where\n\t * key is option text, value is fn to call when option is clicked\n\t * @returns {PopupMenu} the PopupMenu created\n\t */\n\t PopupMenu.make_popupmenu = function (button_element, initial_options) {\n\t var convertedOptions = [];\n\t _.each(initial_options, function (optionVal, optionKey) {\n\t var newOption = { html: optionKey };\n\t\n\t // keys with null values indicate: header\n\t if (optionVal === null) {\n\t // !optionVal? (null only?)\n\t newOption.header = true;\n\t\n\t // keys with function values indicate: a menu option\n\t } else if (jQuery.type(optionVal) === 'function') {\n\t newOption.func = optionVal;\n\t }\n\t //TODO:?? any other special optionVals?\n\t // there was no divider option originally\n\t convertedOptions.push(newOption);\n\t });\n\t return new PopupMenu($(button_element), convertedOptions);\n\t };\n\t\n\t /** Find all anchors in $parent (using selector) and covert anchors into a PopupMenu options map.\n\t * @param {jQuery} $parent the element that contains the links to convert to options\n\t * @param {String} selector jq selector string to find links\n\t * @returns {Object[]} the options array to initialize a PopupMenu\n\t */\n\t //TODO: lose parent and selector, pass in array of links, use map to return options\n\t PopupMenu.convertLinksToOptions = function ($parent, selector) {\n\t $parent = $($parent);\n\t selector = selector || 'a';\n\t var options = [];\n\t $parent.find(selector).each(function (elem, i) {\n\t var option = {},\n\t $link = $(elem);\n\t\n\t // convert link text to the option text (html) and the href into the option func\n\t option.html = $link.text();\n\t if ($link.attr('href')) {\n\t var linkHref = $link.attr('href'),\n\t linkTarget = $link.attr('target'),\n\t confirmText = $link.attr('confirm');\n\t\n\t option.func = function () {\n\t // if there's a \"confirm\" attribute, throw up a confirmation dialog, and\n\t // if the user cancels - do nothing\n\t if (confirmText && !confirm(confirmText)) {\n\t return;\n\t }\n\t\n\t // if there's no confirm attribute, or the user accepted the confirm dialog:\n\t switch (linkTarget) {\n\t // relocate the center panel\n\t case '_parent':\n\t window.parent.location = linkHref;\n\t break;\n\t\n\t // relocate the entire window\n\t case '_top':\n\t window.top.location = linkHref;\n\t break;\n\t\n\t // relocate this panel\n\t default:\n\t window.location = linkHref;\n\t }\n\t };\n\t }\n\t options.push(option);\n\t });\n\t return options;\n\t };\n\t\n\t /** Create a single popupmenu from existing DOM button and anchor elements\n\t * @param {jQuery} $buttonElement the element that when clicked will open the menu\n\t * @param {jQuery} $menuElement the element that contains the anchors to convert into a menu\n\t * @param {String} menuElementLinkSelector jq selector string used to find anchors to be made into menu options\n\t * @returns {PopupMenu} the PopupMenu (Backbone View) that can render, control the menu\n\t */\n\t PopupMenu.fromExistingDom = function ($buttonElement, $menuElement, menuElementLinkSelector) {\n\t $buttonElement = $($buttonElement);\n\t $menuElement = $($menuElement);\n\t var options = PopupMenu.convertLinksToOptions($menuElement, menuElementLinkSelector);\n\t // we're done with the menu (having converted it to an options map)\n\t $menuElement.remove();\n\t return new PopupMenu($buttonElement, options);\n\t };\n\t\n\t /** Create all popupmenus within a document or a more specific element\n\t * @param {DOMElement} parent the DOM element in which to search for popupmenus to build (defaults to document)\n\t * @param {String} menuSelector jq selector string to find popupmenu menu elements (defaults to \"div[popupmenu]\")\n\t * @param {Function} buttonSelectorBuildFn the function to build the jq button selector.\n\t * Will be passed $menuElement, parent.\n\t * (Defaults to return '#' + $menuElement.attr( 'popupmenu' ); )\n\t * @returns {PopupMenu[]} array of popupmenus created\n\t */\n\t PopupMenu.make_popup_menus = function (parent, menuSelector, buttonSelectorBuildFn) {\n\t parent = parent || document;\n\t // orig. Glx popupmenu menus have a (non-std) attribute 'popupmenu'\n\t // which contains the id of the button that activates the menu\n\t menuSelector = menuSelector || 'div[popupmenu]';\n\t // default to (orig. Glx) matching button to menu by using the popupmenu attr of the menu as the id of the button\n\t buttonSelectorBuildFn = buttonSelectorBuildFn || function ($menuElement, parent) {\n\t return '#' + $menuElement.attr('popupmenu');\n\t };\n\t\n\t // aggregate and return all PopupMenus\n\t var popupMenusCreated = [];\n\t $(parent).find(menuSelector).each(function () {\n\t var $menuElement = $(this),\n\t $buttonElement = $(parent).find(buttonSelectorBuildFn($menuElement, parent));\n\t popupMenusCreated.push(PopupMenu.fromDom($buttonElement, $menuElement));\n\t $buttonElement.addClass('popup');\n\t });\n\t return popupMenusCreated;\n\t };\n\t\n\t // =============================================================================\n\t return PopupMenu;\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(1), __webpack_require__(2), __webpack_require__(1)))\n\n/***/ },\n/* 23 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, $) {// dependencies\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(4), __webpack_require__(9), __webpack_require__(7)], __WEBPACK_AMD_DEFINE_RESULT__ = function (Utils, Portlet, Ui) {\n\t\n\t // ui list element\n\t var View = Backbone.View.extend({\n\t // create portlet to keep track of selected list elements\n\t initialize: function (options) {\n\t // link this\n\t var self = this;\n\t\n\t // initialize options\n\t this.options = options;\n\t this.name = options.name || 'element';\n\t this.multiple = options.multiple || false;\n\t\n\t // create message handler\n\t this.message = new Ui.Message();\n\t\n\t // create portlet\n\t this.portlet = new Portlet.View({ cls: 'ui-portlet-section' });\n\t\n\t // create select field containing the options which can be inserted into the list\n\t this.select = new Ui.Select.View({ optional: options.optional });\n\t\n\t // create insert new list element button\n\t this.button = new Ui.ButtonIcon({\n\t icon: 'fa fa-sign-in',\n\t floating: 'left',\n\t tooltip: 'Insert new ' + this.name,\n\t onclick: function () {\n\t self.add({\n\t id: self.select.value(),\n\t name: self.select.text()\n\t });\n\t }\n\t });\n\t\n\t // build main element\n\t this.setElement(this._template(options));\n\t this.$('.ui-list-message').append(this.message.$el);\n\t this.$('.ui-list-portlet').append(this.portlet.$el);\n\t this.$('.ui-list-button').append(this.button.$el);\n\t this.$('.ui-list-select').append(this.select.$el);\n\t },\n\t\n\t /** Return/Set currently selected list elements */\n\t value: function (val) {\n\t // set new value\n\t if (val !== undefined) {\n\t this.portlet.empty();\n\t if ($.isArray(val)) {\n\t for (var i in val) {\n\t var v = val[i];\n\t var v_id = null;\n\t var v_name = null;\n\t if ($.type(v) != 'string') {\n\t v_id = v.id;\n\t v_name = v.name;\n\t } else {\n\t v_id = v_name = v;\n\t }\n\t if (v_id != null) {\n\t this.add({\n\t id: v_id,\n\t name: v_name\n\t });\n\t }\n\t }\n\t }\n\t this._refresh();\n\t }\n\t // get current value\n\t var lst = [];\n\t this.$('.ui-list-id').each(function () {\n\t lst.push({\n\t id: $(this).prop('id'),\n\t name: $(this).find('.ui-list-name').html()\n\t });\n\t });\n\t if (lst.length == 0) {\n\t return null;\n\t }\n\t return lst;\n\t },\n\t\n\t /** Add row */\n\t add: function (options) {\n\t var self = this;\n\t if (this.$('[id=\"' + options.id + '\"]').length === 0) {\n\t if (!Utils.isEmpty(options.id)) {\n\t var $el = $(this._templateRow({\n\t id: options.id,\n\t name: options.name\n\t }));\n\t $el.on('click', function () {\n\t $el.remove();\n\t self._refresh();\n\t });\n\t $el.on('mouseover', function () {\n\t $el.addClass('portlet-highlight');\n\t });\n\t $el.on('mouseout', function () {\n\t $el.removeClass('portlet-highlight');\n\t });\n\t this.portlet.append($el);\n\t this._refresh();\n\t } else {\n\t this.message.update({ message: 'Please select a valid ' + this.name + '.', status: 'danger' });\n\t }\n\t } else {\n\t this.message.update({ message: 'This ' + this.name + ' is already in the list.' });\n\t }\n\t },\n\t\n\t /** Update available options */\n\t update: function (options) {\n\t this.select.update(options);\n\t },\n\t\n\t /** Refresh view */\n\t _refresh: function () {\n\t if (this.$('.ui-list-id').length > 0) {\n\t !this.multiple && this.button.disable();\n\t this.$('.ui-list-portlet').show();\n\t } else {\n\t this.button.enable();\n\t this.$('.ui-list-portlet').hide();\n\t }\n\t this.options.onchange && this.options.onchange();\n\t },\n\t\n\t /** Main Template */\n\t _template: function (options) {\n\t return '' + '
' + '' + '' + '
' + '
' + '
' + '
';\n\t },\n\t\n\t /** Row Template */\n\t _templateRow: function (options) {\n\t return '
' + ' ' + '' + options.name + ' ' + '
';\n\t }\n\t });\n\t\n\t return {\n\t View: View\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(1)))\n\n/***/ },\n/* 24 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, $, _) {/** Base class for options based ui elements **/\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(4), __webpack_require__(12)], __WEBPACK_AMD_DEFINE_RESULT__ = function (Utils, Buttons) {\n\t var Base = Backbone.View.extend({\n\t initialize: function (options) {\n\t var self = this;\n\t this.model = options && options.model || new Backbone.Model({\n\t visible: true,\n\t data: [],\n\t id: Utils.uid(),\n\t error_text: 'No options available.',\n\t wait_text: 'Please wait...',\n\t multiple: false,\n\t optional: false,\n\t onchange: function () {}\n\t }).set(options);\n\t this.listenTo(this.model, 'change:value', this._changeValue, this);\n\t this.listenTo(this.model, 'change:wait', this._changeWait, this);\n\t this.listenTo(this.model, 'change:data', this._changeData, this);\n\t this.listenTo(this.model, 'change:visible', this._changeVisible, this);\n\t this.on('change', function () {\n\t self.model.get('onchange')(self.value());\n\t });\n\t this.render();\n\t },\n\t\n\t render: function () {\n\t var self = this;\n\t this.$el.empty().removeClass().addClass('ui-options').append(this.$message = $('
')).append(this.$menu = $('
').addClass('ui-options-menu')).append(this.$options = $(this._template()));\n\t\n\t // add select/unselect all button\n\t this.all_button = null;\n\t if (this.model.get('multiple')) {\n\t this.all_button = new Buttons.ButtonCheck({\n\t onclick: function () {\n\t self.$('input').prop('checked', self.all_button.value() !== 0);\n\t self.value(self._getValue());\n\t self.trigger('change');\n\t }\n\t });\n\t this.$menu.append(this.all_button.$el);\n\t }\n\t\n\t // finalize dom\n\t this._changeData();\n\t this._changeWait();\n\t this._changeVisible();\n\t },\n\t\n\t /** Update available options */\n\t update: function (options) {\n\t this.model.set('data', options);\n\t },\n\t\n\t _changeData: function () {\n\t var self = this;\n\t this.$options.empty();\n\t if (this._templateOptions) {\n\t this.$options.append(this._templateOptions(this.model.get('data')));\n\t } else {\n\t _.each(this.model.get('data'), function (option) {\n\t self.$options.append($(self._templateOption(option)).addClass('ui-option').tooltip({ title: option.tooltip, placement: 'bottom' }));\n\t });\n\t }\n\t var self = this;\n\t this.$('input').on('change', function () {\n\t self.value(self._getValue());\n\t self.trigger('change');\n\t });\n\t this._changeValue();\n\t this._changeWait();\n\t },\n\t\n\t _changeVisible: function () {\n\t this.$el[this.model.get('visible') ? 'show' : 'hide']();\n\t },\n\t\n\t _changeWait: function () {\n\t if (this.model.get('wait')) {\n\t if (this.length() === 0) {\n\t this._messageShow(this.model.get('wait_text'), 'info');\n\t this.$options.hide();\n\t this.$menu.hide();\n\t }\n\t } else {\n\t if (this.length() === 0) {\n\t this._messageShow(this.model.get('error_text'), 'danger');\n\t this.$options.hide();\n\t this.$menu.hide();\n\t } else {\n\t this.$message.hide();\n\t this.$options.css('display', 'inline-block');\n\t this.$menu.show();\n\t }\n\t }\n\t },\n\t\n\t _changeValue: function () {\n\t this._setValue(this.model.get('value'));\n\t if (this._getValue() === null && !this.model.get('multiple') && !this.model.get('optional')) {\n\t this._setValue(this.first());\n\t }\n\t this.all_button && this.all_button.value($.isArray(this._getValue()) ? this._getValue().length : 0, this.length());\n\t },\n\t\n\t /** Return/Set current selection */\n\t value: function (new_value) {\n\t new_value !== undefined && this.model.set('value', new_value);\n\t return this._getValue();\n\t },\n\t\n\t /** Return first available option */\n\t first: function () {\n\t var options = this.$('input').first();\n\t return options.length > 0 ? options.val() : null;\n\t },\n\t\n\t /** Show a spinner indicating that the select options are currently loaded */\n\t wait: function () {\n\t this.model.set('wait', true);\n\t },\n\t\n\t /** Hide spinner indicating that the request has been completed */\n\t unwait: function () {\n\t this.model.set('wait', false);\n\t },\n\t\n\t /** Returns the number of options */\n\t length: function () {\n\t return this.$('.ui-option').length;\n\t },\n\t\n\t /** Set value to dom */\n\t _setValue: function (new_value) {\n\t var self = this;\n\t if (new_value !== undefined) {\n\t this.$('input').prop('checked', false);\n\t if (new_value !== null) {\n\t var values = $.isArray(new_value) ? new_value : [new_value];\n\t _.each(values, function (v) {\n\t self.$('input[value=\"' + v + '\"]').first().prop('checked', true);\n\t });\n\t }\n\t }\n\t },\n\t\n\t /** Return current selection */\n\t _getValue: function () {\n\t var selected = [];\n\t this.$(':checked').each(function () {\n\t selected.push($(this).val());\n\t });\n\t if (Utils.isEmpty(selected)) {\n\t return null;\n\t }\n\t return this.model.get('multiple') ? selected : selected[0];\n\t },\n\t\n\t /** Show message instead if options */\n\t _messageShow: function (text, status) {\n\t this.$message.show().removeClass().addClass('ui-message alert alert-' + status).html(text);\n\t },\n\t\n\t /** Main template function */\n\t _template: function () {\n\t return $('
').addClass('ui-options-list');\n\t }\n\t });\n\t\n\t /** Iconized **/\n\t var BaseIcons = Base.extend({\n\t _templateOption: function (pair) {\n\t var id = Utils.uid();\n\t return $('
').addClass('ui-option').append($('
').attr({\n\t id: id,\n\t type: this.model.get('type'),\n\t name: this.model.id,\n\t value: pair.value })).append($('
').addClass('ui-options-label').attr('for', id).html(pair.label));\n\t }\n\t });\n\t\n\t /** Radio button field **/\n\t var Radio = {};\n\t Radio.View = BaseIcons.extend({\n\t initialize: function (options) {\n\t options.type = 'radio';\n\t BaseIcons.prototype.initialize.call(this, options);\n\t }\n\t });\n\t\n\t /** Checkbox options field **/\n\t var Checkbox = {};\n\t Checkbox.View = BaseIcons.extend({\n\t initialize: function (options) {\n\t options.type = 'checkbox';\n\t options.multiple = true;\n\t BaseIcons.prototype.initialize.call(this, options);\n\t }\n\t });\n\t\n\t /** Radio button options field styled as classic buttons **/\n\t var RadioButton = {};\n\t RadioButton.View = Base.extend({\n\t initialize: function (options) {\n\t Base.prototype.initialize.call(this, options);\n\t },\n\t\n\t /** Set current value */\n\t _setValue: function (new_value) {\n\t if (new_value !== undefined) {\n\t this.$('input').prop('checked', false);\n\t this.$('label').removeClass('active');\n\t this.$('[value=\"' + new_value + '\"]').prop('checked', true).closest('label').addClass('active');\n\t }\n\t },\n\t\n\t /** Template for a single option */\n\t _templateOption: function (pair) {\n\t var $el = $('
').addClass('btn btn-default');\n\t pair.icon && $el.append($('
').addClass('fa').addClass(pair.icon).addClass(!pair.label && 'no-padding'));\n\t $el.append($('
').attr({ type: 'radio', name: this.model.id, value: pair.value }));\n\t pair.label && $el.append(pair.label);\n\t return $el;\n\t },\n\t\n\t /** Main template function */\n\t _template: function () {\n\t return $('
').addClass('btn-group ui-radiobutton').attr('data-toggle', 'buttons');\n\t }\n\t });\n\t\n\t return {\n\t Base: Base,\n\t BaseIcons: BaseIcons,\n\t Radio: Radio,\n\t RadioButton: RadioButton,\n\t Checkbox: Checkbox\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(1), __webpack_require__(2)))\n\n/***/ },\n/* 25 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, $, _) {/**\n\t * This class creates/wraps a default html select field as backbone class.\n\t */\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(4), __webpack_require__(12)], __WEBPACK_AMD_DEFINE_RESULT__ = function (Utils, Buttons) {\n\t var View = Backbone.View.extend({\n\t initialize: function (options) {\n\t var self = this;\n\t this.data = [];\n\t this.data2 = [];\n\t this.model = options && options.model || new Backbone.Model({\n\t id: Utils.uid(),\n\t cls: 'ui-select',\n\t error_text: 'No options available',\n\t empty_text: 'Nothing selected',\n\t visible: true,\n\t wait: false,\n\t multiple: false,\n\t searchable: true,\n\t optional: false,\n\t disabled: false,\n\t onchange: function () {},\n\t value: null,\n\t selectall: true,\n\t pagesize: 20\n\t }).set(options);\n\t this.on('change', function () {\n\t self.model.get('onchange') && self.model.get('onchange')(self.value());\n\t });\n\t this.listenTo(this.model, 'change:data', this._changeData, this);\n\t this.listenTo(this.model, 'change:disabled', this._changeDisabled, this);\n\t this.listenTo(this.model, 'change:wait', this._changeWait, this);\n\t this.listenTo(this.model, 'change:visible', this._changeVisible, this);\n\t this.listenTo(this.model, 'change:value', this._changeValue, this);\n\t this.listenTo(this.model, 'change:multiple change:searchable change:cls change:id', this.render, this);\n\t this.render();\n\t },\n\t\n\t render: function () {\n\t var self = this;\n\t this.model.get('searchable') ? this._renderSearchable() : this._renderClassic();\n\t this.$el.addClass(this.model.get('cls')).attr('id', this.model.get('id'));\n\t this.$select.empty().addClass('select').attr('id', this.model.get('id') + '_select').prop('multiple', this.model.get('multiple')).on('change', function () {\n\t self.value(self._getValue());\n\t self.trigger('change');\n\t });\n\t this._changeData();\n\t this._changeWait();\n\t this._changeVisible();\n\t this._changeDisabled();\n\t },\n\t\n\t /** Renders the classic selection field */\n\t _renderClassic: function () {\n\t var self = this;\n\t this.$el.addClass(this.model.get('multiple') ? 'ui-select-multiple' : 'ui-select').append(this.$select = $('
')).append(this.$dropdown = $('
')).append(this.$resize = $('
').append(this.$resize_icon = $('
')));\n\t if (this.model.get('multiple')) {\n\t this.$dropdown.hide();\n\t this.$resize_icon.addClass('fa fa-angle-double-right fa-rotate-45').show();\n\t this.$resize.removeClass().addClass('icon-resize').show().off('mousedown').on('mousedown', function (event) {\n\t var currentY = event.pageY;\n\t var currentHeight = self.$select.height();\n\t self.minHeight = self.minHeight || currentHeight;\n\t $('#dd-helper').show().on('mousemove', function (event) {\n\t self.$select.height(Math.max(currentHeight + (event.pageY - currentY), self.minHeight));\n\t }).on('mouseup mouseleave', function () {\n\t $('#dd-helper').hide().off();\n\t });\n\t });\n\t } else {\n\t this.$dropdown.show();\n\t this.$resize.hide();\n\t this.$resize_icon.hide();\n\t }\n\t },\n\t\n\t /** Renders the default select2 field */\n\t _renderSearchable: function () {\n\t var self = this;\n\t this.$el.append(this.$select = $('
')).append(this.$dropdown = $('
'));\n\t this.$dropdown.hide();\n\t if (!this.model.get('multiple')) {\n\t this.$dropdown.show().on('click', function () {\n\t self.$select.select2 && self.$select.select2('open');\n\t });\n\t }\n\t this.all_button = null;\n\t if (this.model.get('multiple') && this.model.get('selectall')) {\n\t this.all_button = new Buttons.ButtonCheck({\n\t onclick: function () {\n\t var new_value = [];\n\t self.all_button.value() !== 0 && _.each(self.model.get('data'), function (option) {\n\t new_value.push(option.value);\n\t });\n\t self.value(new_value);\n\t self.trigger('change');\n\t }\n\t });\n\t this.$el.prepend(this.all_button.$el);\n\t }\n\t },\n\t\n\t /** Matches a search term with a given text */\n\t _match: function (term, text) {\n\t return !term || term == '' || String(text).toUpperCase().indexOf(term.toUpperCase()) >= 0;\n\t },\n\t\n\t /** Updates the selection options */\n\t _changeData: function () {\n\t var self = this;\n\t this.data = [];\n\t if (!this.model.get('multiple') && this.model.get('optional')) {\n\t this.data.push({ value: '__null__', label: self.model.get('empty_text') });\n\t }\n\t _.each(this.model.get('data'), function (option) {\n\t self.data.push(option);\n\t });\n\t if (this.length() == 0) {\n\t this.data.push({ value: '__null__', label: this.model.get('error_text') });\n\t }\n\t if (this.model.get('searchable')) {\n\t this.data2 = [];\n\t _.each(this.data, function (option, index) {\n\t self.data2.push({ order: index, id: option.value, text: option.label, tags: option.tags });\n\t });\n\t this.$select.data('select2') && this.$select.select2('destroy');\n\t this.matched_tags = {};\n\t this.$select.select2({\n\t data: self.data2,\n\t closeOnSelect: !this.model.get('multiple'),\n\t multiple: this.model.get('multiple'),\n\t query: function (q) {\n\t self.matched_tags = {};\n\t var pagesize = self.model.get('pagesize');\n\t var results = _.filter(self.data2, function (e) {\n\t var found = false;\n\t _.each(e.tags, function (tag) {\n\t if (self._match(q.term, tag)) {\n\t found = self.matched_tags[tag] = true;\n\t }\n\t });\n\t return found || self._match(q.term, e.text);\n\t });\n\t q.callback({\n\t results: results.slice((q.page - 1) * pagesize, q.page * pagesize),\n\t more: results.length >= q.page * pagesize\n\t });\n\t },\n\t formatResult: function (result) {\n\t return _.escape(result.text) + '
';\n\t }\n\t });\n\t this.$('.select2-container .select2-search input').off('blur');\n\t } else {\n\t this.$select.find('option').remove();\n\t _.each(this.data, function (option) {\n\t self.$select.append($('
').attr('value', option.value).html(_.escape(option.label)));\n\t });\n\t }\n\t this.model.set('disabled', this.length() == 0);\n\t this._changeValue();\n\t },\n\t\n\t /** Handles field enabling/disabling, usually used when no options are available */\n\t _changeDisabled: function () {\n\t if (this.model.get('searchable')) {\n\t this.$select.select2(this.model.get('disabled') ? 'disable' : 'enable');\n\t } else {\n\t this.$select.prop('disabled', this.model.get('disabled'));\n\t }\n\t },\n\t\n\t /** Searchable fields may display a spinner e.g. while waiting for a server response */\n\t _changeWait: function () {\n\t this.$dropdown.removeClass().addClass('icon-dropdown fa').addClass(this.model.get('wait') ? 'fa-spinner fa-spin' : 'fa-caret-down');\n\t },\n\t\n\t /** Handles field visibility */\n\t _changeVisible: function () {\n\t this.$el[this.model.get('visible') ? 'show' : 'hide']();\n\t this.$select[this.model.get('visible') ? 'show' : 'hide']();\n\t },\n\t\n\t /** Synchronizes the model value with the actually selected field value */\n\t _changeValue: function () {\n\t this._setValue(this.model.get('value'));\n\t if (this.model.get('multiple')) {\n\t if (this.all_button) {\n\t var value = this._getValue();\n\t this.all_button.value($.isArray(value) ? value.length : 0, this.length());\n\t }\n\t } else if (this._getValue() === null && !this.model.get('optional')) {\n\t this._setValue(this.first());\n\t }\n\t },\n\t\n\t /** Return/Set current selection */\n\t value: function (new_value) {\n\t new_value !== undefined && this.model.set('value', new_value);\n\t return this._getValue();\n\t },\n\t\n\t /** Return the first select option */\n\t first: function () {\n\t return this.data.length > 0 ? this.data[0].value : null;\n\t },\n\t\n\t /** Check if a value is an existing option */\n\t exists: function (value) {\n\t return _.findWhere(this.data, { value: value });\n\t },\n\t\n\t /** Return the label/text of the current selection */\n\t text: function () {\n\t var v = this._getValue();\n\t var d = this.exists($.isArray(v) ? v[0] : v);\n\t return d ? d.label : '';\n\t },\n\t\n\t /** Show the select field */\n\t show: function () {\n\t this.model.set('visible', true);\n\t },\n\t\n\t /** Hide the select field */\n\t hide: function () {\n\t this.model.set('visible', false);\n\t },\n\t\n\t /** Show a spinner indicating that the select options are currently loaded */\n\t wait: function () {\n\t this.model.set('wait', true);\n\t },\n\t\n\t /** Hide spinner indicating that the request has been completed */\n\t unwait: function () {\n\t this.model.set('wait', false);\n\t },\n\t\n\t /** Returns true if the field is disabled */\n\t disabled: function () {\n\t return this.model.get('disabled');\n\t },\n\t\n\t /** Enable the select field */\n\t enable: function () {\n\t this.model.set('disabled', false);\n\t },\n\t\n\t /** Disable the select field */\n\t disable: function () {\n\t this.model.set('disabled', true);\n\t },\n\t\n\t /** Update all available options at once */\n\t add: function (options, sorter) {\n\t _.each(this.model.get('data'), function (v) {\n\t v.keep && !_.findWhere(options, { value: v.value }) && options.push(v);\n\t });\n\t sorter && options && options.sort(sorter);\n\t this.model.set('data', options);\n\t },\n\t\n\t /** Update available options */\n\t update: function (options) {\n\t this.model.set('data', options);\n\t },\n\t\n\t /** Set the custom onchange callback function */\n\t setOnChange: function (callback) {\n\t this.model.set('onchange', callback);\n\t },\n\t\n\t /** Number of available options */\n\t length: function () {\n\t return $.isArray(this.model.get('data')) ? this.model.get('data').length : 0;\n\t },\n\t\n\t /** Set value to dom */\n\t _setValue: function (new_value) {\n\t var self = this;\n\t if (new_value === null || new_value === undefined) {\n\t new_value = '__null__';\n\t }\n\t if (this.model.get('multiple')) {\n\t new_value = $.isArray(new_value) ? new_value : [new_value];\n\t } else if ($.isArray(new_value)) {\n\t if (new_value.length > 0) {\n\t new_value = new_value[0];\n\t } else {\n\t new_value = '__null__';\n\t }\n\t }\n\t if (this.model.get('searchable')) {\n\t if ($.isArray(new_value)) {\n\t val = [];\n\t _.each(new_value, function (v) {\n\t var d = _.findWhere(self.data2, { id: v });\n\t d && val.push(d);\n\t });\n\t new_value = val;\n\t } else {\n\t var d = _.findWhere(this.data2, { id: new_value });\n\t new_value = d;\n\t }\n\t this.$select.select2('data', new_value);\n\t } else {\n\t this.$select.val(new_value);\n\t }\n\t },\n\t\n\t /** Get value from dom */\n\t _getValue: function () {\n\t var val = null;\n\t if (this.model.get('searchable')) {\n\t var selected = this.$select.select2('data');\n\t if (selected) {\n\t if ($.isArray(selected)) {\n\t val = [];\n\t selected.sort(function (a, b) {\n\t return a.order - b.order;\n\t });\n\t _.each(selected, function (v) {\n\t val.push(v.id);\n\t });\n\t } else {\n\t val = selected.id;\n\t }\n\t }\n\t } else {\n\t val = this.$select.val();\n\t }\n\t return Utils.isEmpty(val) ? null : val;\n\t }\n\t });\n\t\n\t return {\n\t View: View\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(1), __webpack_require__(2)))\n\n/***/ },\n/* 26 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone) {!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () {\n\t var Model = Backbone.Model.extend({\n\t defaults: {\n\t extension: 'auto',\n\t genome: '?',\n\t url_paste: '',\n\t status: 'init',\n\t info: null,\n\t file_name: '',\n\t file_mode: '',\n\t file_size: 0,\n\t file_type: null,\n\t file_path: '',\n\t file_data: null,\n\t percentage: 0,\n\t space_to_tab: false,\n\t to_posix_lines: true,\n\t enabled: true\n\t },\n\t reset: function (attr) {\n\t this.clear().set(this.defaults).set(attr);\n\t }\n\t });\n\t var Collection = Backbone.Collection.extend({ model: Model });\n\t return { Model: Model, Collection: Collection };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3)))\n\n/***/ },\n/* 27 */,\n/* 28 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, $, _) {/* This class maps the form dom to an api compatible javascript dictionary. */\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(4)], __WEBPACK_AMD_DEFINE_RESULT__ = function (Utils) {\n\t var Manager = Backbone.Model.extend({\n\t initialize: function (app) {\n\t this.app = app;\n\t },\n\t\n\t /** Creates a checksum. */\n\t checksum: function () {\n\t var sum = '';\n\t var self = this;\n\t this.app.section.$el.find('.section-row').each(function () {\n\t var id = $(this).attr('id');\n\t var field = self.app.field_list[id];\n\t if (field) {\n\t sum += id + ':' + JSON.stringify(field.value && field.value()) + ':' + field.collapsed + ';';\n\t }\n\t });\n\t return sum;\n\t },\n\t\n\t /** Convert dom into a dictionary of flat id/value pairs used e.g. on job submission. */\n\t create: function () {\n\t var self = this;\n\t\n\t // get raw dictionary from dom\n\t var dict = {};\n\t this._iterate(this.app.section.$el, dict);\n\t\n\t // add to result dictionary, label elements\n\t var result_dict = {};\n\t this.flat_dict = {};\n\t function add(flat_id, input_id, input_value) {\n\t self.flat_dict[flat_id] = input_id;\n\t result_dict[flat_id] = input_value;\n\t self.app.element_list[input_id] && self.app.element_list[input_id].$el.attr('tour_id', flat_id);\n\t }\n\t // converter between raw dictionary and job dictionary\n\t function convert(identifier, head) {\n\t for (var index in head) {\n\t var node = head[index];\n\t if (node.input) {\n\t var input = node.input;\n\t var flat_id = identifier;\n\t if (identifier != '') {\n\t flat_id += '|';\n\t }\n\t flat_id += input.name;\n\t switch (input.type) {\n\t case 'repeat':\n\t var section_label = 'section-';\n\t var block_indices = [];\n\t var block_prefix = null;\n\t for (var block_label in node) {\n\t var pos = block_label.indexOf(section_label);\n\t if (pos != -1) {\n\t pos += section_label.length;\n\t block_indices.push(parseInt(block_label.substr(pos)));\n\t if (!block_prefix) {\n\t block_prefix = block_label.substr(0, pos);\n\t }\n\t }\n\t }\n\t block_indices.sort(function (a, b) {\n\t return a - b;\n\t });\n\t var index = 0;\n\t for (var i in block_indices) {\n\t convert(flat_id + '_' + index++, node[block_prefix + block_indices[i]]);\n\t }\n\t break;\n\t case 'conditional':\n\t var value = self.app.field_list[input.id].value();\n\t add(flat_id + '|' + input.test_param.name, input.id, value);\n\t var selectedCase = matchCase(input, value);\n\t if (selectedCase != -1) {\n\t convert(flat_id, head[input.id + '-section-' + selectedCase]);\n\t }\n\t break;\n\t case 'section':\n\t convert(!input.flat && flat_id || '', node);\n\t break;\n\t default:\n\t var field = self.app.field_list[input.id];\n\t if (field && field.value) {\n\t var value = field.value();\n\t if (input.ignore === undefined || input.ignore != value) {\n\t if (field.collapsed && input.collapsible_value) {\n\t value = input.collapsible_value;\n\t }\n\t add(flat_id, input.id, value);\n\t if (input.payload) {\n\t for (var p_id in input.payload) {\n\t add(p_id, input.id, input.payload[p_id]);\n\t }\n\t }\n\t }\n\t }\n\t }\n\t }\n\t }\n\t }\n\t convert('', dict);\n\t return result_dict;\n\t },\n\t\n\t /** Matches flat ids to corresponding input element\n\t * @param{string} flat_id - Flat input id to be looked up.\n\t */\n\t match: function (flat_id) {\n\t return this.flat_dict && this.flat_dict[flat_id];\n\t },\n\t\n\t /** Match conditional values to selected cases\n\t */\n\t matchCase: function (input, value) {\n\t return matchCase(input, value);\n\t },\n\t\n\t /** Matches a new tool model to the current input elements e.g. used to update dynamic options\n\t */\n\t matchModel: function (model, callback) {\n\t var self = this;\n\t visitInputs(model.inputs, function (input, name) {\n\t self.flat_dict[name] && callback(input, self.flat_dict[name]);\n\t });\n\t },\n\t\n\t /** Matches identifier from api response to input elements e.g. used to display validation errors\n\t */\n\t matchResponse: function (response) {\n\t var result = {};\n\t var self = this;\n\t function search(id, head) {\n\t if (typeof head === 'string') {\n\t var input_id = self.flat_dict[id];\n\t input_id && (result[input_id] = head);\n\t } else {\n\t for (var i in head) {\n\t var new_id = i;\n\t if (id !== '') {\n\t var separator = '|';\n\t if (head instanceof Array) {\n\t separator = '_';\n\t }\n\t new_id = id + separator + new_id;\n\t }\n\t search(new_id, head[i]);\n\t }\n\t }\n\t }\n\t search('', response);\n\t return result;\n\t },\n\t\n\t /** Map dom tree to dictionary tree with input elements.\n\t */\n\t _iterate: function (parent, dict) {\n\t var self = this;\n\t var children = $(parent).children();\n\t children.each(function () {\n\t var child = this;\n\t var id = $(child).attr('id');\n\t if ($(child).hasClass('section-row')) {\n\t var input = self.app.input_list[id];\n\t dict[id] = input && { input: input } || {};\n\t self._iterate(child, dict[id]);\n\t } else {\n\t self._iterate(child, dict);\n\t }\n\t });\n\t }\n\t });\n\t\n\t /** Match conditional values to selected cases\n\t * @param{dict} input - Definition of conditional input parameter\n\t * @param{dict} value - Current value\n\t */\n\t var matchCase = function (input, value) {\n\t if (input.test_param.type == 'boolean') {\n\t if (value == 'true') {\n\t value = input.test_param.truevalue || 'true';\n\t } else {\n\t value = input.test_param.falsevalue || 'false';\n\t }\n\t }\n\t for (var i in input.cases) {\n\t if (input.cases[i].value == value) {\n\t return i;\n\t }\n\t }\n\t return -1;\n\t };\n\t\n\t /** Visits tool inputs\n\t * @param{dict} inputs - Nested dictionary of input elements\n\t * @param{dict} callback - Called with the mapped dictionary object and corresponding model node\n\t */\n\t var visitInputs = function (inputs, callback, prefix, context) {\n\t context = $.extend(true, {}, context);\n\t _.each(inputs, function (input) {\n\t if (input && input.type && input.name) {\n\t context[input.name] = input;\n\t }\n\t });\n\t for (var key in inputs) {\n\t var node = inputs[key];\n\t node.name = node.name || key;\n\t var name = prefix ? prefix + '|' + node.name : node.name;\n\t switch (node.type) {\n\t case 'repeat':\n\t _.each(node.cache, function (cache, j) {\n\t visitInputs(cache, callback, name + '_' + j, context);\n\t });\n\t break;\n\t case 'conditional':\n\t if (node.test_param) {\n\t callback(node.test_param, name + '|' + node.test_param.name, context);\n\t var selectedCase = matchCase(node, node.test_param.value);\n\t if (selectedCase != -1) {\n\t visitInputs(node.cases[selectedCase].inputs, callback, name, context);\n\t } else {\n\t Galaxy.emit.debug('form-data::visitInputs() - Invalid case for ' + name + '.');\n\t }\n\t } else {\n\t Galaxy.emit.debug('form-data::visitInputs() - Conditional test parameter missing for ' + name + '.');\n\t }\n\t break;\n\t case 'section':\n\t visitInputs(node.inputs, callback, name, context);\n\t break;\n\t default:\n\t callback(node, name, context);\n\t }\n\t }\n\t };\n\t\n\t return {\n\t Manager: Manager,\n\t visitInputs: visitInputs\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(1), __webpack_require__(2)))\n\n/***/ },\n/* 29 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function($, _) {/**\n\t This is the base class of the tool form plugin. This class is e.g. inherited by the regular and the workflow tool form.\n\t*/\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(4), __webpack_require__(33), __webpack_require__(7), __webpack_require__(13), __webpack_require__(20), __webpack_require__(39)], __WEBPACK_AMD_DEFINE_RESULT__ = function (Utils, Deferred, Ui, FormBase, CitationModel, CitationView) {\n\t return FormBase.extend({\n\t initialize: function (options) {\n\t var self = this;\n\t this.deferred = new Deferred();\n\t FormBase.prototype.initialize.call(this, options);\n\t if (this.model.get('inputs')) {\n\t this._buildForm(this.model.attributes);\n\t } else {\n\t this.deferred.execute(function (process) {\n\t self._buildModel(process, self.model.attributes, true);\n\t });\n\t }\n\t // listen to history panel\n\t if (this.model.get('listen_to_history') && parent.Galaxy && parent.Galaxy.currHistoryPanel) {\n\t this.listenTo(parent.Galaxy.currHistoryPanel.collection, 'change', function () {\n\t self.model.get('onchange')();\n\t });\n\t }\n\t // destroy dom elements\n\t this.$el.on('remove', function () {\n\t self._destroy();\n\t });\n\t },\n\t\n\t /** Wait for deferred build processes before removal */\n\t _destroy: function () {\n\t var self = this;\n\t this.$el.off().hide();\n\t this.deferred.execute(function () {\n\t FormBase.prototype.remove.call(self);\n\t Galaxy.emit.debug('tool-form-base::_destroy()', 'Destroy view.');\n\t });\n\t },\n\t\n\t /** Build form */\n\t _buildForm: function (options) {\n\t var self = this;\n\t this.model.set(options);\n\t this.model.set({\n\t title: options.title || '
' + options.name + ' ' + options.description + ' (Galaxy Version ' + options.version + ')',\n\t operations: !this.model.get('hide_operations') && this._operations(),\n\t onchange: function () {\n\t self.deferred.reset();\n\t self.deferred.execute(function (process) {\n\t self.model.get('postchange')(process, self);\n\t });\n\t }\n\t });\n\t this.model.get('customize') && this.model.get('customize')(this);\n\t this.render();\n\t if (!this.model.get('collapsible')) {\n\t this.$el.append($('
').addClass('ui-margin-top-large').append(this._footer()));\n\t }\n\t },\n\t\n\t /** Builds a new model through api call and recreates the entire form */\n\t _buildModel: function (process, new_options, hide_message) {\n\t var self = this;\n\t var options = this.model.attributes;\n\t options.version = new_options.version;\n\t options.id = new_options.id;\n\t\n\t // build request url\n\t var build_url = '';\n\t var build_data = {};\n\t var job_id = '';\n\t // When re-running a job the job_id is found in the new_options object.\n\t // When re-running a job and requesting a new tool_version,\n\t // the job_id is in the options object.\n\t if (new_options.job_id) {\n\t job_id = new_options.job_id;\n\t } else if (options.job_id) {\n\t job_id = options.job_id;\n\t }\n\t if (job_id) {\n\t build_url = Galaxy.root + 'api/jobs/' + job_id + '/build_for_rerun';\n\t } else {\n\t build_url = Galaxy.root + 'api/tools/' + options.id + '/build';\n\t build_data = $.extend({}, Galaxy.params);\n\t build_data['tool_id'] && delete build_data['tool_id'];\n\t }\n\t options.version && (build_data['tool_version'] = options.version);\n\t\n\t // get initial model\n\t Utils.get({\n\t url: build_url,\n\t data: build_data,\n\t success: function (data) {\n\t if (!data.display) {\n\t window.location = Galaxy.root;\n\t return;\n\t }\n\t self._buildForm(data);\n\t !hide_message && self.message.update({\n\t status: 'success',\n\t message: 'Now you are using \\'' + options.name + '\\' version ' + options.version + ', id \\'' + options.id + '\\'.',\n\t persistent: false\n\t });\n\t Galaxy.emit.debug('tool-form-base::_buildModel()', 'Initial tool model ready.', data);\n\t process.resolve();\n\t },\n\t error: function (response, status) {\n\t var error_message = response && response.err_msg || 'Uncaught error.';\n\t if (status == 401) {\n\t window.location = Galaxy.root + 'user/login?' + $.param({ redirect: Galaxy.root + '?tool_id=' + options.id });\n\t } else if (self.$el.is(':empty')) {\n\t self.$el.prepend(new Ui.Message({\n\t message: error_message,\n\t status: 'danger',\n\t persistent: true,\n\t large: true\n\t }).$el);\n\t } else {\n\t Galaxy.modal && Galaxy.modal.show({\n\t title: 'Tool request failed',\n\t body: error_message,\n\t buttons: {\n\t 'Close': function () {\n\t Galaxy.modal.hide();\n\t }\n\t }\n\t });\n\t }\n\t Galaxy.emit.debug('tool-form-base::_buildModel()', 'Initial tool model request failed.', response);\n\t process.reject();\n\t }\n\t });\n\t },\n\t\n\t /** Create tool operation menu */\n\t _operations: function () {\n\t var self = this;\n\t var options = this.model.attributes;\n\t\n\t // button for version selection\n\t var versions_button = new Ui.ButtonMenu({\n\t icon: 'fa-cubes',\n\t title: !options.narrow && 'Versions' || null,\n\t tooltip: 'Select another tool version'\n\t });\n\t if (!options.sustain_version && options.versions && options.versions.length > 1) {\n\t for (var i in options.versions) {\n\t var version = options.versions[i];\n\t if (version != options.version) {\n\t versions_button.addMenu({\n\t title: 'Switch to ' + version,\n\t version: version,\n\t icon: 'fa-cube',\n\t onclick: function () {\n\t // here we update the tool version (some tools encode the version also in the id)\n\t var id = options.id.replace(options.version, this.version);\n\t var version = this.version;\n\t // queue model request\n\t self.deferred.reset();\n\t self.deferred.execute(function (process) {\n\t self._buildModel(process, { id: id, version: version });\n\t });\n\t }\n\t });\n\t }\n\t }\n\t } else {\n\t versions_button.$el.hide();\n\t }\n\t\n\t // button for options e.g. search, help\n\t var menu_button = new Ui.ButtonMenu({\n\t icon: 'fa-caret-down',\n\t title: !options.narrow && 'Options' || null,\n\t tooltip: 'View available options'\n\t });\n\t if (options.biostar_url) {\n\t menu_button.addMenu({\n\t icon: 'fa-question-circle',\n\t title: 'Question?',\n\t onclick: function () {\n\t window.open(options.biostar_url + '/p/new/post/');\n\t }\n\t });\n\t menu_button.addMenu({\n\t icon: 'fa-search',\n\t title: 'Search',\n\t onclick: function () {\n\t window.open(options.biostar_url + '/local/search/page/?q=' + options.name);\n\t }\n\t });\n\t };\n\t menu_button.addMenu({\n\t icon: 'fa-share',\n\t title: 'Share',\n\t onclick: function () {\n\t prompt('Copy to clipboard: Ctrl+C, Enter', window.location.origin + Galaxy.root + 'root?tool_id=' + options.id);\n\t }\n\t });\n\t\n\t // add admin operations\n\t if (Galaxy.user && Galaxy.user.get('is_admin')) {\n\t menu_button.addMenu({\n\t icon: 'fa-download',\n\t title: 'Download',\n\t onclick: function () {\n\t window.location.href = Galaxy.root + 'api/tools/' + options.id + '/download';\n\t }\n\t });\n\t menu_button.addMenu({\n\t icon: 'fa-refresh',\n\t title: 'Reload XML',\n\t onclick: function () {\n\t Utils.get({\n\t url: Galaxy.root + 'api/tools/' + options.id + '/reload',\n\t success: function (response) {\n\t self.message.update({ persistent: false, message: 'Tool XML has been reloaded.', status: 'success' });\n\t },\n\t error: function (response) {\n\t self.message.update({ persistent: false, message: response.err_msg, status: 'danger' });\n\t }\n\t });\n\t }\n\t });\n\t }\n\t\n\t // button for version selection\n\t if (options.requirements && options.requirements.length > 0) {\n\t menu_button.addMenu({\n\t icon: 'fa-info-circle',\n\t title: 'Requirements',\n\t onclick: function () {\n\t if (!this.requirements_visible || self.portlet.collapsed) {\n\t this.requirements_visible = true;\n\t self.portlet.expand();\n\t self.message.update({ persistent: true, message: self._templateRequirements(options), status: 'info' });\n\t } else {\n\t this.requirements_visible = false;\n\t self.message.update({ message: '' });\n\t }\n\t }\n\t });\n\t }\n\t\n\t // add toolshed url\n\t if (options.sharable_url) {\n\t menu_button.addMenu({\n\t icon: 'fa-external-link',\n\t title: 'See in Tool Shed',\n\t onclick: function () {\n\t window.open(options.sharable_url);\n\t }\n\t });\n\t }\n\t\n\t // add tool menu webhooks\n\t $.getJSON('/api/webhooks/tool-menu/all', function (webhooks) {\n\t _.each(webhooks, function (webhook) {\n\t if (webhook.activate && webhook.config.function) {\n\t menu_button.addMenu({\n\t icon: webhook.config.icon,\n\t title: webhook.config.title,\n\t onclick: function () {\n\t var func = new Function('options', webhook.config.function);\n\t func(options);\n\t }\n\t });\n\t }\n\t });\n\t });\n\t\n\t return {\n\t menu: menu_button,\n\t versions: versions_button\n\t };\n\t },\n\t\n\t /** Create footer */\n\t _footer: function () {\n\t var options = this.model.attributes;\n\t var $el = $('
').append(this._templateHelp(options));\n\t if (options.citations) {\n\t var $citations = $('
');\n\t var citations = new CitationModel.ToolCitationCollection();\n\t citations.tool_id = options.id;\n\t var citation_list_view = new CitationView.CitationListView({ el: $citations, collection: citations });\n\t citation_list_view.render();\n\t citations.fetch();\n\t $el.append($citations);\n\t }\n\t return $el;\n\t },\n\t\n\t /** Templates */\n\t _templateHelp: function (options) {\n\t var $tmpl = $('
').addClass('ui-form-help').append(options.help);\n\t $tmpl.find('a').attr('target', '_blank');\n\t return $tmpl;\n\t },\n\t\n\t _templateRequirements: function (options) {\n\t var nreq = options.requirements.length;\n\t if (nreq > 0) {\n\t var requirements_message = 'This tool requires ';\n\t _.each(options.requirements, function (req, i) {\n\t requirements_message += req.name + (req.version ? ' (Version ' + req.version + ')' : '') + (i < nreq - 2 ? ', ' : i == nreq - 2 ? ' and ' : '');\n\t });\n\t var requirements_link = $('
').attr('target', '_blank').attr('href', 'https://galaxyproject.org/tools/requirements/').text('here');\n\t return $('
').append(requirements_message + '. Click ').append(requirements_link).append(' for more information.');\n\t }\n\t return 'No requirements found.';\n\t }\n\t });\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1), __webpack_require__(2)))\n\n/***/ },\n/* 30 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, $, _) {/* This is the regular tool form */\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(4), __webpack_require__(7), __webpack_require__(8), __webpack_require__(29), __webpack_require__(27)], __WEBPACK_AMD_DEFINE_RESULT__ = function (Utils, Ui, Modal, ToolFormBase, Webhooks) {\n\t var View = Backbone.View.extend({\n\t initialize: function (options) {\n\t var self = this;\n\t this.modal = parent.Galaxy.modal || new Modal.View();\n\t this.form = new ToolFormBase(Utils.merge({\n\t listen_to_history: true,\n\t always_refresh: false,\n\t customize: function (form) {\n\t var options = form.model.attributes;\n\t // build execute button\n\t options.buttons = {\n\t execute: execute_btn = new Ui.Button({\n\t icon: 'fa-check',\n\t tooltip: 'Execute: ' + options.name + ' (' + options.version + ')',\n\t title: 'Execute',\n\t cls: 'ui-button btn btn-primary',\n\t floating: 'clear',\n\t onclick: function () {\n\t execute_btn.wait();\n\t form.portlet.disable();\n\t self.submit(options, function () {\n\t execute_btn.unwait();\n\t form.portlet.enable();\n\t });\n\t }\n\t })\n\t };\n\t // remap feature\n\t if (options.job_id && options.job_remap) {\n\t options.inputs.push({\n\t label: 'Resume dependencies from this job',\n\t name: 'rerun_remap_job_id',\n\t type: 'select',\n\t display: 'radio',\n\t ignore: '__ignore__',\n\t value: '__ignore__',\n\t options: [['Yes', options.job_id], ['No', '__ignore__']],\n\t help: 'The previous run of this tool failed and other tools were waiting for it to finish successfully. Use this option to resume those tools using the new output(s) of this tool run.'\n\t });\n\t }\n\t },\n\t postchange: function (process, form) {\n\t var self = this;\n\t var current_state = {\n\t tool_id: form.model.get('id'),\n\t tool_version: form.model.get('version'),\n\t inputs: $.extend(true, {}, form.data.create())\n\t };\n\t form.wait(true);\n\t Galaxy.emit.debug('tool-form::postchange()', 'Sending current state.', current_state);\n\t Utils.request({\n\t type: 'POST',\n\t url: Galaxy.root + 'api/tools/' + form.model.get('id') + '/build',\n\t data: current_state,\n\t success: function (data) {\n\t form.update(data);\n\t form.wait(false);\n\t Galaxy.emit.debug('tool-form::postchange()', 'Received new model.', data);\n\t process.resolve();\n\t },\n\t error: function (response) {\n\t Galaxy.emit.debug('tool-form::postchange()', 'Refresh request failed.', response);\n\t process.reject();\n\t }\n\t });\n\t }\n\t }, options));\n\t this.deferred = this.form.deferred;\n\t this.setElement('
');\n\t this.$el.append(this.form.$el);\n\t },\n\t\n\t /** Submit a regular job.\n\t * @param{dict} options - Specifies tool id and version\n\t * @param{function} callback - Called when request has completed\n\t */\n\t submit: function (options, callback) {\n\t var self = this;\n\t var job_def = {\n\t tool_id: options.id,\n\t tool_version: options.version,\n\t inputs: this.form.data.create()\n\t };\n\t this.form.trigger('reset');\n\t if (!self.validate(job_def)) {\n\t Galaxy.emit.debug('tool-form::submit()', 'Submission canceled. Validation failed.');\n\t callback && callback();\n\t return;\n\t }\n\t if (options.action !== Galaxy.root + 'tool_runner/index') {\n\t var $f = $('
').attr({ action: options.action, method: options.method, enctype: options.enctype });\n\t _.each(job_def.inputs, function (value, key) {\n\t $f.append($('
').attr({ 'name': key, 'value': value }));\n\t });\n\t $f.hide().appendTo('body').submit().remove();\n\t callback && callback();\n\t return;\n\t }\n\t Galaxy.emit.debug('tool-form::submit()', 'Validation complete.', job_def);\n\t Utils.request({\n\t type: 'POST',\n\t url: Galaxy.root + 'api/tools',\n\t data: job_def,\n\t success: function (response) {\n\t callback && callback();\n\t self.$el.children().hide();\n\t self.$el.append(self._templateSuccess(response));\n\t // Show Webhook if job is running\n\t if (response.jobs && response.jobs.length > 0) {\n\t self.$el.append($('
', { id: 'webhook-view' }));\n\t var WebhookApp = new Webhooks.WebhookView({\n\t urlRoot: Galaxy.root + 'api/webhooks/tool',\n\t toolId: job_def.tool_id\n\t });\n\t }\n\t parent.Galaxy && parent.Galaxy.currHistoryPanel && parent.Galaxy.currHistoryPanel.refreshContents();\n\t },\n\t error: function (response) {\n\t callback && callback();\n\t Galaxy.emit.debug('tool-form::submit', 'Submission failed.', response);\n\t var input_found = false;\n\t if (response && response.err_data) {\n\t var error_messages = self.form.data.matchResponse(response.err_data);\n\t for (var input_id in error_messages) {\n\t self.form.highlight(input_id, error_messages[input_id]);\n\t input_found = true;\n\t break;\n\t }\n\t }\n\t if (!input_found) {\n\t self.modal.show({\n\t title: 'Job submission failed',\n\t body: self._templateError(job_def, response && response.err_msg),\n\t buttons: { 'Close': function () {\n\t self.modal.hide();\n\t } }\n\t });\n\t }\n\t }\n\t });\n\t },\n\t\n\t /** Validate job dictionary.\n\t * @param{dict} job_def - Job execution dictionary\n\t */\n\t validate: function (job_def) {\n\t var job_inputs = job_def.inputs;\n\t var batch_n = -1;\n\t var batch_src = null;\n\t for (var job_input_id in job_inputs) {\n\t var input_value = job_inputs[job_input_id];\n\t var input_id = this.form.data.match(job_input_id);\n\t var input_field = this.form.field_list[input_id];\n\t var input_def = this.form.input_list[input_id];\n\t if (!input_id || !input_def || !input_field) {\n\t Galaxy.emit.debug('tool-form::validate()', 'Retrieving input objects failed.');\n\t continue;\n\t }\n\t if (!input_def.optional && input_value == null) {\n\t this.form.highlight(input_id);\n\t return false;\n\t }\n\t if (input_value && input_value.batch) {\n\t var n = input_value.values.length;\n\t var src = n > 0 && input_value.values[0] && input_value.values[0].src;\n\t if (src) {\n\t if (batch_src === null) {\n\t batch_src = src;\n\t } else if (batch_src !== src) {\n\t this.form.highlight(input_id, 'Please select either dataset or dataset list fields for all batch mode fields.');\n\t return false;\n\t }\n\t }\n\t if (batch_n === -1) {\n\t batch_n = n;\n\t } else if (batch_n !== n) {\n\t this.form.highlight(input_id, 'Please make sure that you select the same number of inputs for all batch mode fields. This field contains
' + n + ' selection(s) while a previous field contains
' + batch_n + ' .');\n\t return false;\n\t }\n\t }\n\t }\n\t return true;\n\t },\n\t\n\t _templateSuccess: function (response) {\n\t if (response.jobs && response.jobs.length > 0) {\n\t var njobs = response.jobs.length;\n\t var njobs_text = njobs == 1 ? '1 job has' : njobs + ' jobs have';\n\t var $message = $('
').addClass('donemessagelarge').append($('
').text(njobs_text + ' been successfully added to the queue - resulting in the following datasets:'));\n\t _.each(response.outputs, function (output) {\n\t $message.append($('
').addClass('messagerow').append($('
').text(output.hid + ': ' + output.name)));\n\t });\n\t $message.append($('
').append('
').text('You can check the status of queued jobs and view the resulting data by refreshing the History pane. When the job has been run the status will change from \\'running\\' to \\'finished\\' if completed successfully or \\'error\\' if problems were encountered.'));\n\t return $message;\n\t } else {\n\t return this._templateError(response, 'Invalid success response. No jobs found.');\n\t }\n\t },\n\t\n\t _templateError: function (response, err_msg) {\n\t return $('
').addClass('errormessagelarge').append($('
').text('The server could not complete the request. Please contact the Galaxy Team if this error persists. ' + (err_msg || ''))).append($('
').text(JSON.stringify(response, null, 4)));\n\t }\n\t });\n\t\n\t return {\n\t View: View\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(1), __webpack_require__(2)))\n\n/***/ },\n/* 31 */,\n/* 32 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, $) {/** This class creates a ui table element. */\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(4)], __WEBPACK_AMD_DEFINE_RESULT__ = function (Utils) {\n\t var View = Backbone.View.extend({\n\t initialize: function (options) {\n\t this.options = Utils.merge(options, {\n\t content: 'No content available.',\n\t onchange: null,\n\t ondblclick: null,\n\t onconfirm: null,\n\t cls: 'ui-table',\n\t selectable: true,\n\t cls_tr: ''\n\t });\n\t this.setElement(this._template());\n\t this.$thead = this.$('thead');\n\t this.$tbody = this.$('tbody');\n\t this.$tmessage = this.$('tmessage');\n\t this.row = this._row();\n\t this.row_count = 0;\n\t },\n\t\n\t events: {\n\t 'click': '_onclick',\n\t 'dblclick': '_ondblclick'\n\t },\n\t\n\t /** Add cell to header row */\n\t addHeader: function ($el) {\n\t this.row.append($('
').append($el));\n\t },\n\t\n\t /** Append header row to table */\n\t appendHeader: function () {\n\t this.$thead.append(this.row);\n\t this.row = $('
');\n\t },\n\t\n\t /** Add cell to row */\n\t add: function ($el, width, align) {\n\t var wrapper = $('
');\n\t if (width) {\n\t wrapper.css('width', width);\n\t }\n\t if (align) {\n\t wrapper.css('text-align', align);\n\t }\n\t this.row.append(wrapper.append($el));\n\t },\n\t\n\t /** Append row to table */\n\t append: function (id, fade) {\n\t this._commit(id, fade, false);\n\t },\n\t\n\t /** Prepend row to table */\n\t prepend: function (id, fade) {\n\t this._commit(id, fade, true);\n\t },\n\t\n\t /** Helper to get row element */\n\t get: function (id) {\n\t return this.$('#' + id);\n\t },\n\t\n\t /** Delete row by id */\n\t del: function (id) {\n\t var item = this.$tbody.find('#' + id);\n\t if (item.length > 0) {\n\t item.remove();\n\t this.row_count--;\n\t this._refresh();\n\t }\n\t },\n\t\n\t /** Delete all rows */\n\t delAll: function () {\n\t this.$tbody.empty();\n\t this.row_count = 0;\n\t this._refresh();\n\t },\n\t\n\t /** Set a value i.e. selects/highlights a particular row by id */\n\t value: function (new_value) {\n\t if (this.options.selectable) {\n\t this.before = this.$tbody.find('.current').attr('id');\n\t if (new_value !== undefined) {\n\t this.$tbody.find('tr').removeClass('current');\n\t if (new_value) {\n\t this.$tbody.find('#' + new_value).addClass('current');\n\t }\n\t }\n\t var after = this.$tbody.find('.current').attr('id');\n\t if (after === undefined) {\n\t return null;\n\t } else {\n\t if (after != this.before && this.options.onchange) {\n\t this.options.onchange(new_value);\n\t }\n\t return after;\n\t }\n\t }\n\t },\n\t\n\t /** Return the number of rows */\n\t size: function () {\n\t return this.$tbody.find('tr').length;\n\t },\n\t\n\t /** Helper to append rows */\n\t _commit: function (id, fade, prepend) {\n\t this.del(id);\n\t this.row.attr('id', id);\n\t if (prepend) {\n\t this.$tbody.prepend(this.row);\n\t } else {\n\t this.$tbody.append(this.row);\n\t }\n\t if (fade) {\n\t this.row.hide();\n\t this.row.fadeIn();\n\t }\n\t this.row = this._row();\n\t this.row_count++;\n\t this._refresh();\n\t },\n\t\n\t /** Helper to create new row */\n\t _row: function () {\n\t return $('
');\n\t },\n\t\n\t /** Handles onclick events */\n\t _onclick: function (e) {\n\t var old_value = this.value();\n\t var new_value = $(e.target).closest('tr').attr('id');\n\t if (new_value != '') {\n\t if (new_value && old_value != new_value) {\n\t if (this.options.onconfirm) {\n\t this.options.onconfirm(new_value);\n\t } else {\n\t this.value(new_value);\n\t }\n\t }\n\t }\n\t },\n\t\n\t /** Handles ondblclick events */\n\t _ondblclick: function (e) {\n\t var value = this.value();\n\t if (value && this.options.ondblclick) {\n\t this.options.ondblclick(value);\n\t }\n\t },\n\t\n\t /** Refresh helper */\n\t _refresh: function () {\n\t if (this.row_count == 0) {\n\t this.$tmessage.show();\n\t } else {\n\t this.$tmessage.hide();\n\t }\n\t },\n\t\n\t /** Template */\n\t _template: function () {\n\t return '
' + '
' + '
' + this.options.content + ' ' + '
';\n\t }\n\t });\n\t\n\t return {\n\t View: View\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(1)))\n\n/***/ },\n/* 33 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, $) {/**\n\t * This class defines a queue to ensure that multiple deferred callbacks are executed sequentially.\n\t */\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(4)], __WEBPACK_AMD_DEFINE_RESULT__ = function (Utils) {\n\t return Backbone.Model.extend({\n\t initialize: function () {\n\t this.active = {};\n\t this.last = null;\n\t },\n\t\n\t /** Adds a callback to the queue. Upon execution a deferred object is parsed to the callback i.e. callback( deferred ).\n\t * If the callback does not take any arguments, the deferred is resolved instantly.\n\t */\n\t execute: function (callback) {\n\t var self = this;\n\t var id = Utils.uid();\n\t var has_deferred = callback.length > 0;\n\t\n\t // register process\n\t this.active[id] = true;\n\t\n\t // deferred process\n\t var process = $.Deferred();\n\t process.promise().always(function () {\n\t delete self.active[id];\n\t has_deferred && Galaxy.emit.debug('deferred::execute()', this.state().charAt(0).toUpperCase() + this.state().slice(1) + ' ' + id);\n\t });\n\t\n\t // deferred queue\n\t $.when(this.last).always(function () {\n\t if (self.active[id]) {\n\t has_deferred && Galaxy.emit.debug('deferred::execute()', 'Running ' + id);\n\t callback(process);\n\t !has_deferred && process.resolve();\n\t } else {\n\t process.reject();\n\t }\n\t });\n\t this.last = process.promise();\n\t },\n\t\n\t /** Resets the promise queue. All currently queued but unexecuted callbacks/promises will be rejected.\n\t */\n\t reset: function () {\n\t Galaxy.emit.debug('deferred::execute()', 'Reset');\n\t for (var i in this.active) {\n\t this.active[i] = false;\n\t }\n\t },\n\t\n\t /** Returns true if all processes are done.\n\t */\n\t ready: function () {\n\t return $.isEmptyObject(this.active);\n\t }\n\t });\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(1)))\n\n/***/ },\n/* 34 */,\n/* 35 */,\n/* 36 */,\n/* 37 */,\n/* 38 */\n/***/ function(module, exports) {\n\n\t/**\n\t * Parser.js\n\t * Copyright 2012-13 Mayank Lahiri\n\t * mlahiri@gmail.com\n\t * Released under the BSD License.\n\t *\n\t * A forgiving Bibtex parser that can:\n\t * \n\t * (1) operate in streaming or block mode, extracting entries as dictionaries. \n\t * (2) convert Latex special characters to UTF-8.\n\t * (3) best-effort parse malformed entries.\n\t * (4) run in a CommonJS environment or a browser, without any dependencies.\n\t * (5) be advanced-compiled by Google Closure Compiler.\n\t * \n\t * Handwritten as a labor of love, not auto-generated from a grammar. \n\t *\n\t * Modes of usage:\n\t *\n\t * (1) Synchronous, string\n\t *\n\t * var entries = BibtexParser(text);\n\t * console.log(entries);\n\t *\n\t * (2) Asynchronous, stream\n\t *\n\t * var entryCallback = function(entry) { console.log(entry); }\n\t * var parser = new BibtexParser(entryCallback);\n\t * parser.parse(chunk1);\n\t * parser.parse(chunk2);\n\t * ...\n\t * \n\t * @param {text|function(Object)} arg Either a Bibtex string or callback \n\t * function for processing parsed entries.\n\t * @constructor\n\t */\n\tfunction BibtexParser(arg0) {\n\t // Determine how this function is to be used\n\t if (typeof arg0 == 'string') {\n\t // Passed a string, synchronous call without 'new'\n\t var tempStorage = {};\n\t var entries = [];\n\t function accumulator(entry) {\n\t entries.push(entry);\n\t }\n\t var parser = BibtexParser.call(tempStorage, accumulator);\n\t parser.parse(arg0);\n\t return {\n\t 'entries': entries,\n\t 'errors': parser.getErrors()\n\t };\n\t }\n\t if (typeof arg0 != 'function') {\n\t throw 'Invalid parser construction.';\n\t }\n\t\n\t /** @enum {number} */\n\t this.STATES_ = {\n\t ENTRY_OR_JUNK: 0,\n\t OBJECT_TYPE: 1,\n\t ENTRY_KEY: 2,\n\t KV_KEY: 3,\n\t EQUALS: 4,\n\t KV_VALUE: 5\n\t };\n\t /** @private */this.DATA_ = {};\n\t /** @private */this.CALLBACK_ = arg0;\n\t /** @private */this.CHAR_ = 0;\n\t /** @private */this.LINE_ = 1;\n\t /** @private */this.CHAR_IN_LINE_ = 0;\n\t /** @private */this.SKIPWS_ = true;\n\t /** @private */this.SKIPCOMMENT_ = true;\n\t /** @private */this.PARSETMP_ = {};\n\t /** @private */this.SKIPTILLEOL_ = false;\n\t /** @private */this.VALBRACES_ = null;\n\t /** @private */this.BRACETYPE_ = null;\n\t /** @private */this.BRACECOUNT_ = 0;\n\t /** @private */this.STATE_ = this.STATES_.ENTRY_OR_JUNK;\n\t /** @private */this.ERRORS_ = [];\n\t /** @private */this.ENTRY_TYPES_ = {\n\t 'inproceedings': 1,\n\t 'proceedings': 2,\n\t 'article': 3,\n\t 'techreport': 4,\n\t 'misc': 5,\n\t 'mastersthesis': 6,\n\t 'book': 7,\n\t 'phdthesis': 8,\n\t 'incollection': 9,\n\t 'unpublished': 10,\n\t 'inbook': 11,\n\t 'manual': 12,\n\t 'periodical': 13,\n\t 'booklet': 14,\n\t 'masterthesis': 15,\n\t 'conference': 16,\n\t 'online': 998 // Galaxy MOD: Handle @online entries for preprints.\n\t , 'data': 999 // Galaxy MOD: Handle @data citations coming from figshare.\n\t };\n\t /** @private */this.MACROS_ = {\n\t 'jan': 'January',\n\t 'feb': 'February',\n\t 'mar': 'March',\n\t 'apr': 'April',\n\t 'may': 'May',\n\t 'jun': 'June',\n\t 'jul': 'July',\n\t 'aug': 'August',\n\t 'sep': 'September',\n\t 'oct': 'October',\n\t 'nov': 'November',\n\t 'dec': 'December',\n\t 'Jan': 'January',\n\t 'Feb': 'February',\n\t 'Mar': 'March',\n\t 'Apr': 'April',\n\t 'May': 'May',\n\t 'Jun': 'June',\n\t 'Jul': 'July',\n\t 'Aug': 'August',\n\t 'Sep': 'September',\n\t 'Oct': 'October',\n\t 'Nov': 'November',\n\t 'Dec': 'December'\n\t };\n\t\n\t /**\n\t * Gets an array of all errors encountered during parsing.\n\t * Array entries are of the format:\n\t * [ line number, character in line, character in stream, error text ]\n\t *\n\t * @returns Array
\n\t * @public\n\t */\n\t this.getErrors = function () {\n\t return this.ERRORS_;\n\t };\n\t\n\t /**\n\t * Processes a chunk of data\n\t * @public\n\t */\n\t this.parse = function (chunk) {\n\t for (var i = 0; i < chunk.length; i++) this.processCharacter_(chunk[i]);\n\t };\n\t\n\t /**\n\t * Logs error at current stream position.\n\t *\n\t * @private\n\t */\n\t this.error_ = function (text) {\n\t this.ERRORS_.push([this.LINE_, this.CHAR_IN_LINE_, this.CHAR_, text]);\n\t };\n\t\n\t /**\n\t * Called after an entire entry has been parsed from the stream.\n\t * Performs post-processing and invokes the entry callback pointed to by\n\t * this.CALLBACK_. Parsed (but unprocessed) entry data is in this.DATA_.\n\t */\n\t this.processEntry_ = function () {\n\t var data = this.DATA_;\n\t if (data.Fields) for (var f in data.Fields) {\n\t var raw = data.Fields[f];\n\t\n\t // Convert Latex/Bibtex special characters to UTF-8 equivalents\n\t for (var i = 0; i < this.CHARCONV_.length; i++) {\n\t var re = this.CHARCONV_[i][0];\n\t var rep = this.CHARCONV_[i][1];\n\t raw = raw.replace(re, rep);\n\t }\n\t\n\t // Basic substitutions\n\t raw = raw.replace(/[\\n\\r\\t]/g, ' ').replace(/\\s\\s+/g, ' ').replace(/^\\s+|\\s+$/g, '');\n\t\n\t // Remove braces and backslashes\n\t var len = raw.length;\n\t var processed = '';\n\t for (var i = 0; i < len; i++) {\n\t var c = raw[i];\n\t var skip = false;\n\t if (c == '\\\\' && i < len - 1) c = raw[++i];else {\n\t if (c == '{' || c == '}') skip = true;\n\t }\n\t if (!skip) processed += c;\n\t }\n\t data.Fields[f] = processed;\n\t }\n\t\n\t if (data.ObjectType == 'string') {\n\t for (var f in data.Fields) {\n\t this.MACROS_[f] = data.Fields[f];\n\t }\n\t } else {\n\t // Parsed a new Bibtex entry\n\t this.CALLBACK_(data);\n\t }\n\t };\n\t\n\t /**\n\t * Processes next character in the stream, invoking the callback after \n\t * each entry has been found and processed.\n\t * \n\t * @private\n\t * @param {string} c Next character in input stream\n\t */\n\t this.processCharacter_ = function (c) {\n\t // Housekeeping\n\t this.CHAR_++;\n\t this.CHAR_IN_LINE_++;\n\t if (c == '\\n') {\n\t this.LINE_++;\n\t this.CHAR_IN_LINE_ = 1;\n\t }\n\t\n\t // Convenience states for skipping whitespace when needed\n\t if (this.SKIPTILLEOL_) {\n\t if (c == '\\n') this.SKIPTILLEOL_ = false;\n\t return;\n\t }\n\t if (this.SKIPCOMMENT_ && c == '%') {\n\t this.SKIPTILLEOL_ = true;\n\t return;\n\t }\n\t if (this.SKIPWS_ && /\\s/.test(c)) return;\n\t this.SKIPWS_ = false;\n\t this.SKIPCOMMENT_ = false;\n\t this.SKIPTILLEOL_ = false;\n\t\n\t // Main state machine\n\t var AnotherIteration = true;\n\t while (AnotherIteration) {\n\t //console.log(this.LINE_, this.CHAR_IN_LINE_, this.STATE_, c)\n\t AnotherIteration = false;\n\t switch (this.STATE_) {\n\t // -- Scan for an object marker ('@')\n\t // -- Reset temporary data structure in case previous entry was garbled\n\t case this.STATES_.ENTRY_OR_JUNK:\n\t if (c == '@') {\n\t // SUCCESS: Parsed a valid start-of-object marker.\n\t // NEXT_STATE: OBJECT_TYPE\n\t this.STATE_ = this.STATES_.OBJECT_TYPE;\n\t this.DATA_ = {\n\t ObjectType: ''\n\t };\n\t }\n\t this.BRACETYPE_ = null;\n\t this.SKIPWS_ = true;\n\t this.SKIPCOMMENT_ = true;\n\t break;\n\t\n\t // Start at first non-whitespace character after start-of-object '@'\n\t // -- Accept [A-Za-z], break on non-matching character\n\t // -- Populate this.DATA_.EntryType and this.DATA_.ObjectType\n\t case this.STATES_.OBJECT_TYPE:\n\t if (/[A-Za-z]/.test(c)) {\n\t this.DATA_.ObjectType += c.toLowerCase();\n\t this.SKIPWS_ = true;\n\t this.SKIPCOMMENT_ = true;\n\t } else {\n\t // Break from state and validate object type\n\t var ot = this.DATA_.ObjectType;\n\t if (ot == 'comment') {\n\t this.STATE_ = this.STATES_.ENTRY_OR_JUNK;\n\t } else {\n\t if (ot == 'string') {\n\t this.DATA_.ObjectType = ot;\n\t this.DATA_.Fields = {};\n\t this.BRACETYPE_ = c;\n\t this.BRACECOUNT_ = 1;\n\t this.STATE_ = this.STATES_.KV_KEY;\n\t this.SKIPWS_ = true;\n\t this.SKIPCOMMENT_ = true;\n\t this.PARSETMP_ = {\n\t Key: ''\n\t };\n\t } else {\n\t if (ot == 'preamble') {\n\t this.STATE_ = this.STATES_.ENTRY_OR_JUNK;\n\t } else {\n\t if (ot in this.ENTRY_TYPES_) {\n\t // SUCCESS: Parsed a valid object type.\n\t // NEXT_STATE: ENTRY_KEY\n\t this.DATA_.ObjectType = 'entry';\n\t this.DATA_.EntryType = ot;\n\t this.DATA_.EntryKey = '';\n\t this.STATE_ = this.STATES_.ENTRY_KEY;\n\t AnotherIteration = true;\n\t } else {\n\t // ERROR: Unrecognized object type.\n\t // NEXT_STATE: ENTRY_OR_JUNK\n\t this.error_('Unrecognized object type: \"' + this.DATA_.ObjectType + '\"');\n\t this.STATE_ = this.STATES_.ENTRY_OR_JUNK;\n\t }\n\t }\n\t }\n\t }\n\t }\n\t break;\n\t\n\t // Start at first non-alphabetic character after an entry type\n\t // -- Populate this.DATA_.EntryKey\n\t case this.STATES_.ENTRY_KEY:\n\t if ((c === '{' || c === '(') && this.BRACETYPE_ == null) {\n\t this.BRACETYPE_ = c;\n\t this.BRACECOUNT_ = 1;\n\t this.SKIPWS_ = true;\n\t this.SKIPCOMMENT_ = true;\n\t break;\n\t }\n\t if (/[,%\\s]/.test(c)) {\n\t if (this.DATA_.EntryKey.length < 1) {\n\t // Skip comments and whitespace before entry key\n\t this.SKIPWS_ = true;\n\t this.SKIPCOMMENT_ = true;\n\t } else {\n\t if (this.BRACETYPE_ == null) {\n\t // ERROR: No opening brace for object\n\t // NEXT_STATE: ENTRY_OR_JUNK\n\t this.error_('No opening brace for object.');\n\t this.STATE_ = this.STATES_.ENTRY_OR_JUNK;\n\t } else {\n\t // SUCCESS: Parsed an entry key\n\t // NEXT_STATE: KV_KEY\n\t this.SKIPWS_ = true;\n\t this.SKIPCOMMENT_ = true;\n\t AnotherIteration = true;\n\t this.STATE_ = this.STATES_.KV_KEY;\n\t this.PARSETMP_.Key = '';\n\t this.DATA_.Fields = {};\n\t }\n\t }\n\t } else {\n\t this.DATA_.EntryKey += c;\n\t this.SKIPWS_ = false;\n\t this.SKIPCOMMENT_ = false;\n\t }\n\t break;\n\t\n\t // Start at first non-whitespace/comment character after entry key.\n\t // -- Populate this.PARSETMP_.Key\n\t case this.STATES_.KV_KEY:\n\t // Test for end of entry\n\t if (c == '}' && this.BRACETYPE_ == '{' || c == ')' && this.BRACETYPE_ == '(') {\n\t // SUCCESS: Parsed an entry, possible incomplete\n\t // NEXT_STATE: ENTRY_OR_JUNK\n\t this.processEntry_();\n\t this.SKIPWS_ = true;\n\t this.SKIPCOMMENT_ = true;\n\t this.STATE_ = this.STATES_.ENTRY_OR_JUNK;\n\t break;\n\t }\n\t if (/[\\-A-Za-z:]/.test(c)) {\n\t // Add to key\n\t this.PARSETMP_.Key += c;\n\t this.SKIPWS_ = false;\n\t this.SKIPCOMMENT_ = false;\n\t } else {\n\t // Either end of key or we haven't encountered start of key\n\t if (this.PARSETMP_.Key.length < 1) {\n\t // Keep going till we see a key\n\t this.SKIPWS_ = true;\n\t this.SKIPCOMMENT_ = true;\n\t } else {\n\t // SUCCESS: Found full key in K/V pair\n\t // NEXT_STATE: EQUALS\n\t this.SKIPWS_ = true;\n\t this.SKIPCOMMENT_ = true;\n\t this.STATE_ = this.STATES_.EQUALS;\n\t AnotherIteration = true;\n\t }\n\t }\n\t break;\n\t\n\t // Start at first non-alphabetic character after K/V pair key.\n\t case this.STATES_.EQUALS:\n\t if (c == '}' && this.BRACETYPE_ == '{' || c == ')' && this.BRACETYPE_ == '(') {\n\t // ERROR: K/V pair with key but no value\n\t // NEXT_STATE: ENTRY_OR_JUNK\n\t this.error_('Key-value pair has key \"' + this.PARSETMP_.Key + '\", but no value.');\n\t this.processEntry_();\n\t this.SKIPWS_ = true;\n\t this.SKIPCOMMENT_ = true;\n\t this.STATE_ = this.STATES_.ENTRY_OR_JUNK;\n\t break;\n\t }\n\t if (c == '=') {\n\t // SUCCESS: found an equal signs separating key and value\n\t // NEXT_STATE: KV_VALUE\n\t this.SKIPWS_ = true;\n\t this.SKIPCOMMENT_ = true;\n\t this.STATE_ = this.STATES_.KV_VALUE;\n\t this.PARSETMP_.Value = '';\n\t this.VALBRACES_ = { '\"': [], '{': [] };\n\t }\n\t break;\n\t\n\t // Start at first non-whitespace/comment character after '=' \n\t // -- Populate this.PARSETMP_.Value\n\t case this.STATES_.KV_VALUE:\n\t var delim = this.VALBRACES_;\n\t var val = this.PARSETMP_.Value;\n\t var doneParsingValue = false;\n\t\n\t // Test for special characters\n\t if (c == '\"' || c == '{' || c == '}' || c == ',') {\n\t if (c == ',') {\n\t // This comma can mean:\n\t // (1) just another comma literal\n\t // (2) end of a macro reference\n\t if (0 === delim['\"'].length + delim['{'].length) {\n\t // end of a macro reference\n\t var macro = this.PARSETMP_.Value.trim();\n\t if (macro in this.MACROS_) {\n\t // Successful macro reference\n\t this.PARSETMP_.Value = this.MACROS_[macro];\n\t } else {\n\t // Reference to an undefined macro\n\t this.error_('Reference to an undefined macro: ' + macro);\n\t }\n\t doneParsingValue = true;\n\t }\n\t }\n\t if (c == '\"') {\n\t // This quote can mean:\n\t // (1) opening delimiter\n\t // (2) closing delimiter\n\t // (3) literal, if we have a '{' on the stack\n\t if (0 === delim['\"'].length + delim['{'].length) {\n\t // opening delimiter\n\t delim['\"'].push(this.CHAR_);\n\t this.SKIPWS_ = false;\n\t this.SKIPCOMMENT_ = false;\n\t break;\n\t }\n\t if (delim['\"'].length == 1 && delim['{'].length == 0 && (val.length == 0 || val[val.length - 1] != '\\\\')) {\n\t // closing delimiter\n\t doneParsingValue = true;\n\t } else {\n\t // literal, add to value\n\t }\n\t }\n\t if (c == '{') {\n\t // This brace can mean:\n\t // (1) opening delimiter\n\t // (2) stacked verbatim delimiter\n\t if (val.length == 0 || val[val.length - 1] != '\\\\') {\n\t delim['{'].push(this.CHAR_);\n\t this.SKIPWS_ = false;\n\t this.SKIPCOMMENT_ = false;\n\t } else {\n\t // literal, add to value\n\t }\n\t }\n\t if (c == '}') {\n\t // This brace can mean:\n\t // (1) closing delimiter\n\t // (2) closing stacked verbatim delimiter\n\t // (3) end of object definition if value was a macro\n\t if (0 === delim['\"'].length + delim['{'].length) {\n\t // end of object definition, after macro\n\t var macro = this.PARSETMP_.Value.trim();\n\t if (macro in this.MACROS_) {\n\t // Successful macro reference\n\t this.PARSETMP_.Value = this.MACROS_[macro];\n\t } else {\n\t // Reference to an undefined macro\n\t this.error_('Reference to an undefined macro: ' + macro);\n\t }\n\t AnotherIteration = true;\n\t doneParsingValue = true;\n\t } else {\n\t if (val.length == 0 || val[val.length - 1] != '\\\\') {\n\t if (delim['{'].length > 0) {\n\t // pop stack for stacked verbatim delimiter\n\t delim['{'].splice(delim['{'].length - 1, 1);\n\t if (0 == delim['{'].length + delim['\"'].length) {\n\t // closing delimiter\n\t doneParsingValue = true;\n\t } else {\n\t // end verbatim block\n\t }\n\t }\n\t } else {\n\t // literal, add to value\n\t }\n\t }\n\t }\n\t }\n\t\n\t // If here, then we are either done parsing the value or \n\t // have a literal that should be added to the value.\n\t if (doneParsingValue) {\n\t // SUCCESS: value parsed\n\t // NEXT_STATE: KV_KEY\n\t this.SKIPWS_ = true;\n\t this.SKIPCOMMENT_ = true;\n\t this.STATE_ = this.STATES_.KV_KEY;\n\t this.DATA_.Fields[this.PARSETMP_.Key] = this.PARSETMP_.Value;\n\t this.PARSETMP_ = { Key: '' };\n\t this.VALBRACES_ = null;\n\t } else {\n\t this.PARSETMP_.Value += c;\n\t }\n\t break;\n\t } // end switch (this.STATE_)\n\t } // end while(AnotherIteration)\n\t }; // end function processCharacter \n\t\n\t /** @private */this.CHARCONV_ = [[/\\\\space /g, '\\u0020'], [/\\\\textdollar /g, '\\u0024'], [/\\\\textquotesingle /g, '\\u0027'], [/\\\\ast /g, '\\u002A'], [/\\\\textbackslash /g, '\\u005C'], [/\\\\\\^\\{\\}/g, '\\u005E'], [/\\\\textasciigrave /g, '\\u0060'], [/\\\\lbrace /g, '\\u007B'], [/\\\\vert /g, '\\u007C'], [/\\\\rbrace /g, '\\u007D'], [/\\\\textasciitilde /g, '\\u007E'], [/\\\\textexclamdown /g, '\\u00A1'], [/\\\\textcent /g, '\\u00A2'], [/\\\\textsterling /g, '\\u00A3'], [/\\\\textcurrency /g, '\\u00A4'], [/\\\\textyen /g, '\\u00A5'], [/\\\\textbrokenbar /g, '\\u00A6'], [/\\\\textsection /g, '\\u00A7'], [/\\\\textasciidieresis /g, '\\u00A8'], [/\\\\textcopyright /g, '\\u00A9'], [/\\\\textordfeminine /g, '\\u00AA'], [/\\\\guillemotleft /g, '\\u00AB'], [/\\\\lnot /g, '\\u00AC'], [/\\\\textregistered /g, '\\u00AE'], [/\\\\textasciimacron /g, '\\u00AF'], [/\\\\textdegree /g, '\\u00B0'], [/\\\\pm /g, '\\u00B1'], [/\\\\textasciiacute /g, '\\u00B4'], [/\\\\mathrm\\{\\\\mu\\}/g, '\\u00B5'], [/\\\\textparagraph /g, '\\u00B6'], [/\\\\cdot /g, '\\u00B7'], [/\\\\c\\{\\}/g, '\\u00B8'], [/\\\\textordmasculine /g, '\\u00BA'], [/\\\\guillemotright /g, '\\u00BB'], [/\\\\textonequarter /g, '\\u00BC'], [/\\\\textonehalf /g, '\\u00BD'], [/\\\\textthreequarters /g, '\\u00BE'], [/\\\\textquestiondown /g, '\\u00BF'], [/\\\\`\\{A\\}/g, '\\u00C0'], [/\\\\'\\{A\\}/g, '\\u00C1'], [/\\\\\\^\\{A\\}/g, '\\u00C2'], [/\\\\~\\{A\\}/g, '\\u00C3'], [/\\\\\"\\{A\\}/g, '\\u00C4'], [/\\\\AA /g, '\\u00C5'], [/\\\\AE /g, '\\u00C6'], [/\\\\c\\{C\\}/g, '\\u00C7'], [/\\\\`\\{E\\}/g, '\\u00C8'], [/\\\\'\\{E\\}/g, '\\u00C9'], [/\\\\\\^\\{E\\}/g, '\\u00CA'], [/\\\\\"\\{E\\}/g, '\\u00CB'], [/\\\\`\\{I\\}/g, '\\u00CC'], [/\\\\'\\{I\\}/g, '\\u00CD'], [/\\\\\\^\\{I\\}/g, '\\u00CE'], [/\\\\\"\\{I\\}/g, '\\u00CF'], [/\\\\DH /g, '\\u00D0'], [/\\\\~\\{N\\}/g, '\\u00D1'], [/\\\\`\\{O\\}/g, '\\u00D2'], [/\\\\'\\{O\\}/g, '\\u00D3'], [/\\\\\\^\\{O\\}/g, '\\u00D4'], [/\\\\~\\{O\\}/g, '\\u00D5'], [/\\\\\"\\{O\\}/g, '\\u00D6'], [/\\\\texttimes /g, '\\u00D7'], [/\\\\O /g, '\\u00D8'], [/\\\\`\\{U\\}/g, '\\u00D9'], [/\\\\'\\{U\\}/g, '\\u00DA'], [/\\\\\\^\\{U\\}/g, '\\u00DB'], [/\\\\\"\\{U\\}/g, '\\u00DC'], [/\\\\'\\{Y\\}/g, '\\u00DD'], [/\\\\TH /g, '\\u00DE'], [/\\\\ss /g, '\\u00DF'], [/\\\\`\\{a\\}/g, '\\u00E0'], [/\\\\'\\{a\\}/g, '\\u00E1'], [/\\\\\\^\\{a\\}/g, '\\u00E2'], [/\\\\~\\{a\\}/g, '\\u00E3'], [/\\\\\"\\{a\\}/g, '\\u00E4'], [/\\\\aa /g, '\\u00E5'], [/\\\\ae /g, '\\u00E6'], [/\\\\c\\{c\\}/g, '\\u00E7'], [/\\\\`\\{e\\}/g, '\\u00E8'], [/\\\\'\\{e\\}/g, '\\u00E9'], [/\\\\\\^\\{e\\}/g, '\\u00EA'], [/\\\\\"\\{e\\}/g, '\\u00EB'], [/\\\\`\\{\\\\i\\}/g, '\\u00EC'], [/\\\\'\\{\\\\i\\}/g, '\\u00ED'], [/\\\\\\^\\{\\\\i\\}/g, '\\u00EE'], [/\\\\\"\\{\\\\i\\}/g, '\\u00EF'], [/\\\\dh /g, '\\u00F0'], [/\\\\~\\{n\\}/g, '\\u00F1'], [/\\\\`\\{o\\}/g, '\\u00F2'], [/\\\\'\\{o\\}/g, '\\u00F3'], [/\\\\\\^\\{o\\}/g, '\\u00F4'], [/\\\\~\\{o\\}/g, '\\u00F5'], [/\\\\\"\\{o\\}/g, '\\u00F6'], [/\\\\div /g, '\\u00F7'], [/\\\\o /g, '\\u00F8'], [/\\\\`\\{u\\}/g, '\\u00F9'], [/\\\\'\\{u\\}/g, '\\u00FA'], [/\\\\\\^\\{u\\}/g, '\\u00FB'], [/\\\\\"\\{u\\}/g, '\\u00FC'], [/\\\\'\\{y\\}/g, '\\u00FD'], [/\\\\th /g, '\\u00FE'], [/\\\\\"\\{y\\}/g, '\\u00FF'], [/\\\\=\\{A\\}/g, '\\u0100'], [/\\\\=\\{a\\}/g, '\\u0101'], [/\\\\u\\{A\\}/g, '\\u0102'], [/\\\\u\\{a\\}/g, '\\u0103'], [/\\\\k\\{A\\}/g, '\\u0104'], [/\\\\k\\{a\\}/g, '\\u0105'], [/\\\\'\\{C\\}/g, '\\u0106'], [/\\\\'\\{c\\}/g, '\\u0107'], [/\\\\\\^\\{C\\}/g, '\\u0108'], [/\\\\\\^\\{c\\}/g, '\\u0109'], [/\\\\.\\{C\\}/g, '\\u010A'], [/\\\\.\\{c\\}/g, '\\u010B'], [/\\\\v\\{C\\}/g, '\\u010C'], [/\\\\v\\{c\\}/g, '\\u010D'], [/\\\\v\\{D\\}/g, '\\u010E'], [/\\\\v\\{d\\}/g, '\\u010F'], [/\\\\DJ /g, '\\u0110'], [/\\\\dj /g, '\\u0111'], [/\\\\=\\{E\\}/g, '\\u0112'], [/\\\\=\\{e\\}/g, '\\u0113'], [/\\\\u\\{E\\}/g, '\\u0114'], [/\\\\u\\{e\\}/g, '\\u0115'], [/\\\\.\\{E\\}/g, '\\u0116'], [/\\\\.\\{e\\}/g, '\\u0117'], [/\\\\k\\{E\\}/g, '\\u0118'], [/\\\\k\\{e\\}/g, '\\u0119'], [/\\\\v\\{E\\}/g, '\\u011A'], [/\\\\v\\{e\\}/g, '\\u011B'], [/\\\\\\^\\{G\\}/g, '\\u011C'], [/\\\\\\^\\{g\\}/g, '\\u011D'], [/\\\\u\\{G\\}/g, '\\u011E'], [/\\\\u\\{g\\}/g, '\\u011F'], [/\\\\.\\{G\\}/g, '\\u0120'], [/\\\\.\\{g\\}/g, '\\u0121'], [/\\\\c\\{G\\}/g, '\\u0122'], [/\\\\c\\{g\\}/g, '\\u0123'], [/\\\\\\^\\{H\\}/g, '\\u0124'], [/\\\\\\^\\{h\\}/g, '\\u0125'], [/\\\\Elzxh /g, '\\u0127'], [/\\\\~\\{I\\}/g, '\\u0128'], [/\\\\~\\{\\\\i\\}/g, '\\u0129'], [/\\\\=\\{I\\}/g, '\\u012A'], [/\\\\=\\{\\\\i\\}/g, '\\u012B'], [/\\\\u\\{I\\}/g, '\\u012C'], [/\\\\u\\{\\\\i\\}/g, '\\u012D'], [/\\\\k\\{I\\}/g, '\\u012E'], [/\\\\k\\{i\\}/g, '\\u012F'], [/\\\\.\\{I\\}/g, '\\u0130'], [/\\\\i /g, '\\u0131'], [/\\\\\\^\\{J\\}/g, '\\u0134'], [/\\\\\\^\\{\\\\j\\}/g, '\\u0135'], [/\\\\c\\{K\\}/g, '\\u0136'], [/\\\\c\\{k\\}/g, '\\u0137'], [/\\\\'\\{L\\}/g, '\\u0139'], [/\\\\'\\{l\\}/g, '\\u013A'], [/\\\\c\\{L\\}/g, '\\u013B'], [/\\\\c\\{l\\}/g, '\\u013C'], [/\\\\v\\{L\\}/g, '\\u013D'], [/\\\\v\\{l\\}/g, '\\u013E'], [/\\\\L /g, '\\u0141'], [/\\\\l /g, '\\u0142'], [/\\\\'\\{N\\}/g, '\\u0143'], [/\\\\'\\{n\\}/g, '\\u0144'], [/\\\\c\\{N\\}/g, '\\u0145'], [/\\\\c\\{n\\}/g, '\\u0146'], [/\\\\v\\{N\\}/g, '\\u0147'], [/\\\\v\\{n\\}/g, '\\u0148'], [/\\\\NG /g, '\\u014A'], [/\\\\ng /g, '\\u014B'], [/\\\\=\\{O\\}/g, '\\u014C'], [/\\\\=\\{o\\}/g, '\\u014D'], [/\\\\u\\{O\\}/g, '\\u014E'], [/\\\\u\\{o\\}/g, '\\u014F'], [/\\\\H\\{O\\}/g, '\\u0150'], [/\\\\H\\{o\\}/g, '\\u0151'], [/\\\\OE /g, '\\u0152'], [/\\\\oe /g, '\\u0153'], [/\\\\'\\{R\\}/g, '\\u0154'], [/\\\\'\\{r\\}/g, '\\u0155'], [/\\\\c\\{R\\}/g, '\\u0156'], [/\\\\c\\{r\\}/g, '\\u0157'], [/\\\\v\\{R\\}/g, '\\u0158'], [/\\\\v\\{r\\}/g, '\\u0159'], [/\\\\'\\{S\\}/g, '\\u015A'], [/\\\\'\\{s\\}/g, '\\u015B'], [/\\\\\\^\\{S\\}/g, '\\u015C'], [/\\\\\\^\\{s\\}/g, '\\u015D'], [/\\\\c\\{S\\}/g, '\\u015E'], [/\\\\c\\{s\\}/g, '\\u015F'], [/\\\\v\\{S\\}/g, '\\u0160'], [/\\\\v\\{s\\}/g, '\\u0161'], [/\\\\c\\{T\\}/g, '\\u0162'], [/\\\\c\\{t\\}/g, '\\u0163'], [/\\\\v\\{T\\}/g, '\\u0164'], [/\\\\v\\{t\\}/g, '\\u0165'], [/\\\\~\\{U\\}/g, '\\u0168'], [/\\\\~\\{u\\}/g, '\\u0169'], [/\\\\=\\{U\\}/g, '\\u016A'], [/\\\\=\\{u\\}/g, '\\u016B'], [/\\\\u\\{U\\}/g, '\\u016C'], [/\\\\u\\{u\\}/g, '\\u016D'], [/\\\\r\\{U\\}/g, '\\u016E'], [/\\\\r\\{u\\}/g, '\\u016F'], [/\\\\H\\{U\\}/g, '\\u0170'], [/\\\\H\\{u\\}/g, '\\u0171'], [/\\\\k\\{U\\}/g, '\\u0172'], [/\\\\k\\{u\\}/g, '\\u0173'], [/\\\\\\^\\{W\\}/g, '\\u0174'], [/\\\\\\^\\{w\\}/g, '\\u0175'], [/\\\\\\^\\{Y\\}/g, '\\u0176'], [/\\\\\\^\\{y\\}/g, '\\u0177'], [/\\\\\"\\{Y\\}/g, '\\u0178'], [/\\\\'\\{Z\\}/g, '\\u0179'], [/\\\\'\\{z\\}/g, '\\u017A'], [/\\\\.\\{Z\\}/g, '\\u017B'], [/\\\\.\\{z\\}/g, '\\u017C'], [/\\\\v\\{Z\\}/g, '\\u017D'], [/\\\\v\\{z\\}/g, '\\u017E'], [/\\\\texthvlig /g, '\\u0195'], [/\\\\textnrleg /g, '\\u019E'], [/\\\\eth /g, '\\u01AA'], [/\\\\textdoublepipe /g, '\\u01C2'], [/\\\\'\\{g\\}/g, '\\u01F5'], [/\\\\Elztrna /g, '\\u0250'], [/\\\\Elztrnsa /g, '\\u0252'], [/\\\\Elzopeno /g, '\\u0254'], [/\\\\Elzrtld /g, '\\u0256'], [/\\\\Elzschwa /g, '\\u0259'], [/\\\\varepsilon /g, '\\u025B'], [/\\\\Elzpgamma /g, '\\u0263'], [/\\\\Elzpbgam /g, '\\u0264'], [/\\\\Elztrnh /g, '\\u0265'], [/\\\\Elzbtdl /g, '\\u026C'], [/\\\\Elzrtll /g, '\\u026D'], [/\\\\Elztrnm /g, '\\u026F'], [/\\\\Elztrnmlr /g, '\\u0270'], [/\\\\Elzltlmr /g, '\\u0271'], [/\\\\Elzltln /g, '\\u0272'], [/\\\\Elzrtln /g, '\\u0273'], [/\\\\Elzclomeg /g, '\\u0277'], [/\\\\textphi /g, '\\u0278'], [/\\\\Elztrnr /g, '\\u0279'], [/\\\\Elztrnrl /g, '\\u027A'], [/\\\\Elzrttrnr /g, '\\u027B'], [/\\\\Elzrl /g, '\\u027C'], [/\\\\Elzrtlr /g, '\\u027D'], [/\\\\Elzfhr /g, '\\u027E'], [/\\\\Elzrtls /g, '\\u0282'], [/\\\\Elzesh /g, '\\u0283'], [/\\\\Elztrnt /g, '\\u0287'], [/\\\\Elzrtlt /g, '\\u0288'], [/\\\\Elzpupsil /g, '\\u028A'], [/\\\\Elzpscrv /g, '\\u028B'], [/\\\\Elzinvv /g, '\\u028C'], [/\\\\Elzinvw /g, '\\u028D'], [/\\\\Elztrny /g, '\\u028E'], [/\\\\Elzrtlz /g, '\\u0290'], [/\\\\Elzyogh /g, '\\u0292'], [/\\\\Elzglst /g, '\\u0294'], [/\\\\Elzreglst /g, '\\u0295'], [/\\\\Elzinglst /g, '\\u0296'], [/\\\\textturnk /g, '\\u029E'], [/\\\\Elzdyogh /g, '\\u02A4'], [/\\\\Elztesh /g, '\\u02A7'], [/\\\\textasciicaron /g, '\\u02C7'], [/\\\\Elzverts /g, '\\u02C8'], [/\\\\Elzverti /g, '\\u02CC'], [/\\\\Elzlmrk /g, '\\u02D0'], [/\\\\Elzhlmrk /g, '\\u02D1'], [/\\\\Elzsbrhr /g, '\\u02D2'], [/\\\\Elzsblhr /g, '\\u02D3'], [/\\\\Elzrais /g, '\\u02D4'], [/\\\\Elzlow /g, '\\u02D5'], [/\\\\textasciibreve /g, '\\u02D8'], [/\\\\textperiodcentered /g, '\\u02D9'], [/\\\\r\\{\\}/g, '\\u02DA'], [/\\\\k\\{\\}/g, '\\u02DB'], [/\\\\texttildelow /g, '\\u02DC'], [/\\\\H\\{\\}/g, '\\u02DD'], [/\\\\tone\\{55\\}/g, '\\u02E5'], [/\\\\tone\\{44\\}/g, '\\u02E6'], [/\\\\tone\\{33\\}/g, '\\u02E7'], [/\\\\tone\\{22\\}/g, '\\u02E8'], [/\\\\tone\\{11\\}/g, '\\u02E9'], [/\\\\cyrchar\\\\C/g, '\\u030F'], [/\\\\Elzpalh /g, '\\u0321'], [/\\\\Elzrh /g, '\\u0322'], [/\\\\Elzsbbrg /g, '\\u032A'], [/\\\\Elzxl /g, '\\u0335'], [/\\\\Elzbar /g, '\\u0336'], [/\\\\'\\{A\\}/g, '\\u0386'], [/\\\\'\\{E\\}/g, '\\u0388'], [/\\\\'\\{H\\}/g, '\\u0389'], [/\\\\'\\{\\}\\{I\\}/g, '\\u038A'], [/\\\\'\\{\\}O/g, '\\u038C'], [/\\\\mathrm\\{'Y\\}/g, '\\u038E'], [/\\\\mathrm\\{'\\\\Omega\\}/g, '\\u038F'], [/\\\\acute\\{\\\\ddot\\{\\\\iota\\}\\}/g, '\\u0390'], [/\\\\Alpha /g, '\\u0391'], [/\\\\Beta /g, '\\u0392'], [/\\\\Gamma /g, '\\u0393'], [/\\\\Delta /g, '\\u0394'], [/\\\\Epsilon /g, '\\u0395'], [/\\\\Zeta /g, '\\u0396'], [/\\\\Eta /g, '\\u0397'], [/\\\\Theta /g, '\\u0398'], [/\\\\Iota /g, '\\u0399'], [/\\\\Kappa /g, '\\u039A'], [/\\\\Lambda /g, '\\u039B'], [/\\\\Xi /g, '\\u039E'], [/\\\\Pi /g, '\\u03A0'], [/\\\\Rho /g, '\\u03A1'], [/\\\\Sigma /g, '\\u03A3'], [/\\\\Tau /g, '\\u03A4'], [/\\\\Upsilon /g, '\\u03A5'], [/\\\\Phi /g, '\\u03A6'], [/\\\\Chi /g, '\\u03A7'], [/\\\\Psi /g, '\\u03A8'], [/\\\\Omega /g, '\\u03A9'], [/\\\\mathrm\\{\\\\ddot\\{I\\}\\}/g, '\\u03AA'], [/\\\\mathrm\\{\\\\ddot\\{Y\\}\\}/g, '\\u03AB'], [/\\\\'\\{\\$\\\\alpha\\$\\}/g, '\\u03AC'], [/\\\\acute\\{\\\\epsilon\\}/g, '\\u03AD'], [/\\\\acute\\{\\\\eta\\}/g, '\\u03AE'], [/\\\\acute\\{\\\\iota\\}/g, '\\u03AF'], [/\\\\acute\\{\\\\ddot\\{\\\\upsilon\\}\\}/g, '\\u03B0'], [/\\\\alpha /g, '\\u03B1'], [/\\\\beta /g, '\\u03B2'], [/\\\\gamma /g, '\\u03B3'], [/\\\\delta /g, '\\u03B4'], [/\\\\epsilon /g, '\\u03B5'], [/\\\\zeta /g, '\\u03B6'], [/\\\\eta /g, '\\u03B7'], [/\\\\texttheta /g, '\\u03B8'], [/\\\\iota /g, '\\u03B9'], [/\\\\kappa /g, '\\u03BA'], [/\\\\lambda /g, '\\u03BB'], [/\\\\mu /g, '\\u03BC'], [/\\\\nu /g, '\\u03BD'], [/\\\\xi /g, '\\u03BE'], [/\\\\pi /g, '\\u03C0'], [/\\\\rho /g, '\\u03C1'], [/\\\\varsigma /g, '\\u03C2'], [/\\\\sigma /g, '\\u03C3'], [/\\\\tau /g, '\\u03C4'], [/\\\\upsilon /g, '\\u03C5'], [/\\\\varphi /g, '\\u03C6'], [/\\\\chi /g, '\\u03C7'], [/\\\\psi /g, '\\u03C8'], [/\\\\omega /g, '\\u03C9'], [/\\\\ddot\\{\\\\iota\\}/g, '\\u03CA'], [/\\\\ddot\\{\\\\upsilon\\}/g, '\\u03CB'], [/\\\\'\\{o\\}/g, '\\u03CC'], [/\\\\acute\\{\\\\upsilon\\}/g, '\\u03CD'], [/\\\\acute\\{\\\\omega\\}/g, '\\u03CE'], [/\\\\Pisymbol\\{ppi022\\}\\{87\\}/g, '\\u03D0'], [/\\\\textvartheta /g, '\\u03D1'], [/\\\\Upsilon /g, '\\u03D2'], [/\\\\phi /g, '\\u03D5'], [/\\\\varpi /g, '\\u03D6'], [/\\\\Stigma /g, '\\u03DA'], [/\\\\Digamma /g, '\\u03DC'], [/\\\\digamma /g, '\\u03DD'], [/\\\\Koppa /g, '\\u03DE'], [/\\\\Sampi /g, '\\u03E0'], [/\\\\varkappa /g, '\\u03F0'], [/\\\\varrho /g, '\\u03F1'], [/\\\\textTheta /g, '\\u03F4'], [/\\\\backepsilon /g, '\\u03F6'], [/\\\\cyrchar\\\\CYRYO /g, '\\u0401'], [/\\\\cyrchar\\\\CYRDJE /g, '\\u0402'], [/\\\\cyrchar\\{\\\\'\\\\CYRG\\}/g, '\\u0403'], [/\\\\cyrchar\\\\CYRIE /g, '\\u0404'], [/\\\\cyrchar\\\\CYRDZE /g, '\\u0405'], [/\\\\cyrchar\\\\CYRII /g, '\\u0406'], [/\\\\cyrchar\\\\CYRYI /g, '\\u0407'], [/\\\\cyrchar\\\\CYRJE /g, '\\u0408'], [/\\\\cyrchar\\\\CYRLJE /g, '\\u0409'], [/\\\\cyrchar\\\\CYRNJE /g, '\\u040A'], [/\\\\cyrchar\\\\CYRTSHE /g, '\\u040B'], [/\\\\cyrchar\\{\\\\'\\\\CYRK\\}/g, '\\u040C'], [/\\\\cyrchar\\\\CYRUSHRT /g, '\\u040E'], [/\\\\cyrchar\\\\CYRDZHE /g, '\\u040F'], [/\\\\cyrchar\\\\CYRA /g, '\\u0410'], [/\\\\cyrchar\\\\CYRB /g, '\\u0411'], [/\\\\cyrchar\\\\CYRV /g, '\\u0412'], [/\\\\cyrchar\\\\CYRG /g, '\\u0413'], [/\\\\cyrchar\\\\CYRD /g, '\\u0414'], [/\\\\cyrchar\\\\CYRE /g, '\\u0415'], [/\\\\cyrchar\\\\CYRZH /g, '\\u0416'], [/\\\\cyrchar\\\\CYRZ /g, '\\u0417'], [/\\\\cyrchar\\\\CYRI /g, '\\u0418'], [/\\\\cyrchar\\\\CYRISHRT /g, '\\u0419'], [/\\\\cyrchar\\\\CYRK /g, '\\u041A'], [/\\\\cyrchar\\\\CYRL /g, '\\u041B'], [/\\\\cyrchar\\\\CYRM /g, '\\u041C'], [/\\\\cyrchar\\\\CYRN /g, '\\u041D'], [/\\\\cyrchar\\\\CYRO /g, '\\u041E'], [/\\\\cyrchar\\\\CYRP /g, '\\u041F'], [/\\\\cyrchar\\\\CYRR /g, '\\u0420'], [/\\\\cyrchar\\\\CYRS /g, '\\u0421'], [/\\\\cyrchar\\\\CYRT /g, '\\u0422'], [/\\\\cyrchar\\\\CYRU /g, '\\u0423'], [/\\\\cyrchar\\\\CYRF /g, '\\u0424'], [/\\\\cyrchar\\\\CYRH /g, '\\u0425'], [/\\\\cyrchar\\\\CYRC /g, '\\u0426'], [/\\\\cyrchar\\\\CYRCH /g, '\\u0427'], [/\\\\cyrchar\\\\CYRSH /g, '\\u0428'], [/\\\\cyrchar\\\\CYRSHCH /g, '\\u0429'], [/\\\\cyrchar\\\\CYRHRDSN /g, '\\u042A'], [/\\\\cyrchar\\\\CYRERY /g, '\\u042B'], [/\\\\cyrchar\\\\CYRSFTSN /g, '\\u042C'], [/\\\\cyrchar\\\\CYREREV /g, '\\u042D'], [/\\\\cyrchar\\\\CYRYU /g, '\\u042E'], [/\\\\cyrchar\\\\CYRYA /g, '\\u042F'], [/\\\\cyrchar\\\\cyra /g, '\\u0430'], [/\\\\cyrchar\\\\cyrb /g, '\\u0431'], [/\\\\cyrchar\\\\cyrv /g, '\\u0432'], [/\\\\cyrchar\\\\cyrg /g, '\\u0433'], [/\\\\cyrchar\\\\cyrd /g, '\\u0434'], [/\\\\cyrchar\\\\cyre /g, '\\u0435'], [/\\\\cyrchar\\\\cyrzh /g, '\\u0436'], [/\\\\cyrchar\\\\cyrz /g, '\\u0437'], [/\\\\cyrchar\\\\cyri /g, '\\u0438'], [/\\\\cyrchar\\\\cyrishrt /g, '\\u0439'], [/\\\\cyrchar\\\\cyrk /g, '\\u043A'], [/\\\\cyrchar\\\\cyrl /g, '\\u043B'], [/\\\\cyrchar\\\\cyrm /g, '\\u043C'], [/\\\\cyrchar\\\\cyrn /g, '\\u043D'], [/\\\\cyrchar\\\\cyro /g, '\\u043E'], [/\\\\cyrchar\\\\cyrp /g, '\\u043F'], [/\\\\cyrchar\\\\cyrr /g, '\\u0440'], [/\\\\cyrchar\\\\cyrs /g, '\\u0441'], [/\\\\cyrchar\\\\cyrt /g, '\\u0442'], [/\\\\cyrchar\\\\cyru /g, '\\u0443'], [/\\\\cyrchar\\\\cyrf /g, '\\u0444'], [/\\\\cyrchar\\\\cyrh /g, '\\u0445'], [/\\\\cyrchar\\\\cyrc /g, '\\u0446'], [/\\\\cyrchar\\\\cyrch /g, '\\u0447'], [/\\\\cyrchar\\\\cyrsh /g, '\\u0448'], [/\\\\cyrchar\\\\cyrshch /g, '\\u0449'], [/\\\\cyrchar\\\\cyrhrdsn /g, '\\u044A'], [/\\\\cyrchar\\\\cyrery /g, '\\u044B'], [/\\\\cyrchar\\\\cyrsftsn /g, '\\u044C'], [/\\\\cyrchar\\\\cyrerev /g, '\\u044D'], [/\\\\cyrchar\\\\cyryu /g, '\\u044E'], [/\\\\cyrchar\\\\cyrya /g, '\\u044F'], [/\\\\cyrchar\\\\cyryo /g, '\\u0451'], [/\\\\cyrchar\\\\cyrdje /g, '\\u0452'], [/\\\\cyrchar\\{\\\\'\\\\cyrg\\}/g, '\\u0453'], [/\\\\cyrchar\\\\cyrie /g, '\\u0454'], [/\\\\cyrchar\\\\cyrdze /g, '\\u0455'], [/\\\\cyrchar\\\\cyrii /g, '\\u0456'], [/\\\\cyrchar\\\\cyryi /g, '\\u0457'], [/\\\\cyrchar\\\\cyrje /g, '\\u0458'], [/\\\\cyrchar\\\\cyrlje /g, '\\u0459'], [/\\\\cyrchar\\\\cyrnje /g, '\\u045A'], [/\\\\cyrchar\\\\cyrtshe /g, '\\u045B'], [/\\\\cyrchar\\{\\\\'\\\\cyrk\\}/g, '\\u045C'], [/\\\\cyrchar\\\\cyrushrt /g, '\\u045E'], [/\\\\cyrchar\\\\cyrdzhe /g, '\\u045F'], [/\\\\cyrchar\\\\CYROMEGA /g, '\\u0460'], [/\\\\cyrchar\\\\cyromega /g, '\\u0461'], [/\\\\cyrchar\\\\CYRYAT /g, '\\u0462'], [/\\\\cyrchar\\\\CYRIOTE /g, '\\u0464'], [/\\\\cyrchar\\\\cyriote /g, '\\u0465'], [/\\\\cyrchar\\\\CYRLYUS /g, '\\u0466'], [/\\\\cyrchar\\\\cyrlyus /g, '\\u0467'], [/\\\\cyrchar\\\\CYRIOTLYUS /g, '\\u0468'], [/\\\\cyrchar\\\\cyriotlyus /g, '\\u0469'], [/\\\\cyrchar\\\\CYRBYUS /g, '\\u046A'], [/\\\\cyrchar\\\\CYRIOTBYUS /g, '\\u046C'], [/\\\\cyrchar\\\\cyriotbyus /g, '\\u046D'], [/\\\\cyrchar\\\\CYRKSI /g, '\\u046E'], [/\\\\cyrchar\\\\cyrksi /g, '\\u046F'], [/\\\\cyrchar\\\\CYRPSI /g, '\\u0470'], [/\\\\cyrchar\\\\cyrpsi /g, '\\u0471'], [/\\\\cyrchar\\\\CYRFITA /g, '\\u0472'], [/\\\\cyrchar\\\\CYRIZH /g, '\\u0474'], [/\\\\cyrchar\\\\CYRUK /g, '\\u0478'], [/\\\\cyrchar\\\\cyruk /g, '\\u0479'], [/\\\\cyrchar\\\\CYROMEGARND /g, '\\u047A'], [/\\\\cyrchar\\\\cyromegarnd /g, '\\u047B'], [/\\\\cyrchar\\\\CYROMEGATITLO /g, '\\u047C'], [/\\\\cyrchar\\\\cyromegatitlo /g, '\\u047D'], [/\\\\cyrchar\\\\CYROT /g, '\\u047E'], [/\\\\cyrchar\\\\cyrot /g, '\\u047F'], [/\\\\cyrchar\\\\CYRKOPPA /g, '\\u0480'], [/\\\\cyrchar\\\\cyrkoppa /g, '\\u0481'], [/\\\\cyrchar\\\\cyrthousands /g, '\\u0482'], [/\\\\cyrchar\\\\cyrhundredthousands /g, '\\u0488'], [/\\\\cyrchar\\\\cyrmillions /g, '\\u0489'], [/\\\\cyrchar\\\\CYRSEMISFTSN /g, '\\u048C'], [/\\\\cyrchar\\\\cyrsemisftsn /g, '\\u048D'], [/\\\\cyrchar\\\\CYRRTICK /g, '\\u048E'], [/\\\\cyrchar\\\\cyrrtick /g, '\\u048F'], [/\\\\cyrchar\\\\CYRGUP /g, '\\u0490'], [/\\\\cyrchar\\\\cyrgup /g, '\\u0491'], [/\\\\cyrchar\\\\CYRGHCRS /g, '\\u0492'], [/\\\\cyrchar\\\\cyrghcrs /g, '\\u0493'], [/\\\\cyrchar\\\\CYRGHK /g, '\\u0494'], [/\\\\cyrchar\\\\cyrghk /g, '\\u0495'], [/\\\\cyrchar\\\\CYRZHDSC /g, '\\u0496'], [/\\\\cyrchar\\\\cyrzhdsc /g, '\\u0497'], [/\\\\cyrchar\\\\CYRZDSC /g, '\\u0498'], [/\\\\cyrchar\\\\cyrzdsc /g, '\\u0499'], [/\\\\cyrchar\\\\CYRKDSC /g, '\\u049A'], [/\\\\cyrchar\\\\cyrkdsc /g, '\\u049B'], [/\\\\cyrchar\\\\CYRKVCRS /g, '\\u049C'], [/\\\\cyrchar\\\\cyrkvcrs /g, '\\u049D'], [/\\\\cyrchar\\\\CYRKHCRS /g, '\\u049E'], [/\\\\cyrchar\\\\cyrkhcrs /g, '\\u049F'], [/\\\\cyrchar\\\\CYRKBEAK /g, '\\u04A0'], [/\\\\cyrchar\\\\cyrkbeak /g, '\\u04A1'], [/\\\\cyrchar\\\\CYRNDSC /g, '\\u04A2'], [/\\\\cyrchar\\\\cyrndsc /g, '\\u04A3'], [/\\\\cyrchar\\\\CYRNG /g, '\\u04A4'], [/\\\\cyrchar\\\\cyrng /g, '\\u04A5'], [/\\\\cyrchar\\\\CYRPHK /g, '\\u04A6'], [/\\\\cyrchar\\\\cyrphk /g, '\\u04A7'], [/\\\\cyrchar\\\\CYRABHHA /g, '\\u04A8'], [/\\\\cyrchar\\\\cyrabhha /g, '\\u04A9'], [/\\\\cyrchar\\\\CYRSDSC /g, '\\u04AA'], [/\\\\cyrchar\\\\cyrsdsc /g, '\\u04AB'], [/\\\\cyrchar\\\\CYRTDSC /g, '\\u04AC'], [/\\\\cyrchar\\\\cyrtdsc /g, '\\u04AD'], [/\\\\cyrchar\\\\CYRY /g, '\\u04AE'], [/\\\\cyrchar\\\\cyry /g, '\\u04AF'], [/\\\\cyrchar\\\\CYRYHCRS /g, '\\u04B0'], [/\\\\cyrchar\\\\cyryhcrs /g, '\\u04B1'], [/\\\\cyrchar\\\\CYRHDSC /g, '\\u04B2'], [/\\\\cyrchar\\\\cyrhdsc /g, '\\u04B3'], [/\\\\cyrchar\\\\CYRTETSE /g, '\\u04B4'], [/\\\\cyrchar\\\\cyrtetse /g, '\\u04B5'], [/\\\\cyrchar\\\\CYRCHRDSC /g, '\\u04B6'], [/\\\\cyrchar\\\\cyrchrdsc /g, '\\u04B7'], [/\\\\cyrchar\\\\CYRCHVCRS /g, '\\u04B8'], [/\\\\cyrchar\\\\cyrchvcrs /g, '\\u04B9'], [/\\\\cyrchar\\\\CYRSHHA /g, '\\u04BA'], [/\\\\cyrchar\\\\cyrshha /g, '\\u04BB'], [/\\\\cyrchar\\\\CYRABHCH /g, '\\u04BC'], [/\\\\cyrchar\\\\cyrabhch /g, '\\u04BD'], [/\\\\cyrchar\\\\CYRABHCHDSC /g, '\\u04BE'], [/\\\\cyrchar\\\\cyrabhchdsc /g, '\\u04BF'], [/\\\\cyrchar\\\\CYRpalochka /g, '\\u04C0'], [/\\\\cyrchar\\\\CYRKHK /g, '\\u04C3'], [/\\\\cyrchar\\\\cyrkhk /g, '\\u04C4'], [/\\\\cyrchar\\\\CYRNHK /g, '\\u04C7'], [/\\\\cyrchar\\\\cyrnhk /g, '\\u04C8'], [/\\\\cyrchar\\\\CYRCHLDSC /g, '\\u04CB'], [/\\\\cyrchar\\\\cyrchldsc /g, '\\u04CC'], [/\\\\cyrchar\\\\CYRAE /g, '\\u04D4'], [/\\\\cyrchar\\\\cyrae /g, '\\u04D5'], [/\\\\cyrchar\\\\CYRSCHWA /g, '\\u04D8'], [/\\\\cyrchar\\\\cyrschwa /g, '\\u04D9'], [/\\\\cyrchar\\\\CYRABHDZE /g, '\\u04E0'], [/\\\\cyrchar\\\\cyrabhdze /g, '\\u04E1'], [/\\\\cyrchar\\\\CYROTLD /g, '\\u04E8'], [/\\\\cyrchar\\\\cyrotld /g, '\\u04E9'], [/\\\\hspace\\{0.6em\\}/g, '\\u2002'], [/\\\\hspace\\{1em\\}/g, '\\u2003'], [/\\\\hspace\\{0.33em\\}/g, '\\u2004'], [/\\\\hspace\\{0.25em\\}/g, '\\u2005'], [/\\\\hspace\\{0.166em\\}/g, '\\u2006'], [/\\\\hphantom\\{0\\}/g, '\\u2007'], [/\\\\hphantom\\{,\\}/g, '\\u2008'], [/\\\\hspace\\{0.167em\\}/g, '\\u2009'], [/\\\\mkern1mu /g, '\\u200A'], [/\\\\textendash /g, '\\u2013'], [/\\\\textemdash /g, '\\u2014'], [/\\\\rule\\{1em\\}\\{1pt\\}/g, '\\u2015'], [/\\\\Vert /g, '\\u2016'], [/\\\\Elzreapos /g, '\\u201B'], [/\\\\textquotedblleft /g, '\\u201C'], [/\\\\textquotedblright /g, '\\u201D'], [/\\\\textdagger /g, '\\u2020'], [/\\\\textdaggerdbl /g, '\\u2021'], [/\\\\textbullet /g, '\\u2022'], [/\\\\ldots /g, '\\u2026'], [/\\\\textperthousand /g, '\\u2030'], [/\\\\textpertenthousand /g, '\\u2031'], [/\\\\backprime /g, '\\u2035'], [/\\\\guilsinglleft /g, '\\u2039'], [/\\\\guilsinglright /g, '\\u203A'], [/\\\\mkern4mu /g, '\\u205F'], [/\\\\nolinebreak /g, '\\u2060'], [/\\\\ensuremath\\{\\\\Elzpes\\}/g, '\\u20A7'], [/\\\\mbox\\{\\\\texteuro\\} /g, '\\u20AC'], [/\\\\dddot /g, '\\u20DB'], [/\\\\ddddot /g, '\\u20DC'], [/\\\\mathbb\\{C\\}/g, '\\u2102'], [/\\\\mathscr\\{g\\}/g, '\\u210A'], [/\\\\mathscr\\{H\\}/g, '\\u210B'], [/\\\\mathfrak\\{H\\}/g, '\\u210C'], [/\\\\mathbb\\{H\\}/g, '\\u210D'], [/\\\\hslash /g, '\\u210F'], [/\\\\mathscr\\{I\\}/g, '\\u2110'], [/\\\\mathfrak\\{I\\}/g, '\\u2111'], [/\\\\mathscr\\{L\\}/g, '\\u2112'], [/\\\\mathscr\\{l\\}/g, '\\u2113'], [/\\\\mathbb\\{N\\}/g, '\\u2115'], [/\\\\cyrchar\\\\textnumero /g, '\\u2116'], [/\\\\wp /g, '\\u2118'], [/\\\\mathbb\\{P\\}/g, '\\u2119'], [/\\\\mathbb\\{Q\\}/g, '\\u211A'], [/\\\\mathscr\\{R\\}/g, '\\u211B'], [/\\\\mathfrak\\{R\\}/g, '\\u211C'], [/\\\\mathbb\\{R\\}/g, '\\u211D'], [/\\\\Elzxrat /g, '\\u211E'], [/\\\\texttrademark /g, '\\u2122'], [/\\\\mathbb\\{Z\\}/g, '\\u2124'], [/\\\\Omega /g, '\\u2126'], [/\\\\mho /g, '\\u2127'], [/\\\\mathfrak\\{Z\\}/g, '\\u2128'], [/\\\\ElsevierGlyph\\{2129\\}/g, '\\u2129'], [/\\\\AA /g, '\\u212B'], [/\\\\mathscr\\{B\\}/g, '\\u212C'], [/\\\\mathfrak\\{C\\}/g, '\\u212D'], [/\\\\mathscr\\{e\\}/g, '\\u212F'], [/\\\\mathscr\\{E\\}/g, '\\u2130'], [/\\\\mathscr\\{F\\}/g, '\\u2131'], [/\\\\mathscr\\{M\\}/g, '\\u2133'], [/\\\\mathscr\\{o\\}/g, '\\u2134'], [/\\\\aleph /g, '\\u2135'], [/\\\\beth /g, '\\u2136'], [/\\\\gimel /g, '\\u2137'], [/\\\\daleth /g, '\\u2138'], [/\\\\textfrac\\{1\\}\\{3\\}/g, '\\u2153'], [/\\\\textfrac\\{2\\}\\{3\\}/g, '\\u2154'], [/\\\\textfrac\\{1\\}\\{5\\}/g, '\\u2155'], [/\\\\textfrac\\{2\\}\\{5\\}/g, '\\u2156'], [/\\\\textfrac\\{3\\}\\{5\\}/g, '\\u2157'], [/\\\\textfrac\\{4\\}\\{5\\}/g, '\\u2158'], [/\\\\textfrac\\{1\\}\\{6\\}/g, '\\u2159'], [/\\\\textfrac\\{5\\}\\{6\\}/g, '\\u215A'], [/\\\\textfrac\\{1\\}\\{8\\}/g, '\\u215B'], [/\\\\textfrac\\{3\\}\\{8\\}/g, '\\u215C'], [/\\\\textfrac\\{5\\}\\{8\\}/g, '\\u215D'], [/\\\\textfrac\\{7\\}\\{8\\}/g, '\\u215E'], [/\\\\leftarrow /g, '\\u2190'], [/\\\\uparrow /g, '\\u2191'], [/\\\\rightarrow /g, '\\u2192'], [/\\\\downarrow /g, '\\u2193'], [/\\\\leftrightarrow /g, '\\u2194'], [/\\\\updownarrow /g, '\\u2195'], [/\\\\nwarrow /g, '\\u2196'], [/\\\\nearrow /g, '\\u2197'], [/\\\\searrow /g, '\\u2198'], [/\\\\swarrow /g, '\\u2199'], [/\\\\nleftarrow /g, '\\u219A'], [/\\\\nrightarrow /g, '\\u219B'], [/\\\\arrowwaveright /g, '\\u219C'], [/\\\\arrowwaveright /g, '\\u219D'], [/\\\\twoheadleftarrow /g, '\\u219E'], [/\\\\twoheadrightarrow /g, '\\u21A0'], [/\\\\leftarrowtail /g, '\\u21A2'], [/\\\\rightarrowtail /g, '\\u21A3'], [/\\\\mapsto /g, '\\u21A6'], [/\\\\hookleftarrow /g, '\\u21A9'], [/\\\\hookrightarrow /g, '\\u21AA'], [/\\\\looparrowleft /g, '\\u21AB'], [/\\\\looparrowright /g, '\\u21AC'], [/\\\\leftrightsquigarrow /g, '\\u21AD'], [/\\\\nleftrightarrow /g, '\\u21AE'], [/\\\\Lsh /g, '\\u21B0'], [/\\\\Rsh /g, '\\u21B1'], [/\\\\ElsevierGlyph\\{21B3\\}/g, '\\u21B3'], [/\\\\curvearrowleft /g, '\\u21B6'], [/\\\\curvearrowright /g, '\\u21B7'], [/\\\\circlearrowleft /g, '\\u21BA'], [/\\\\circlearrowright /g, '\\u21BB'], [/\\\\leftharpoonup /g, '\\u21BC'], [/\\\\leftharpoondown /g, '\\u21BD'], [/\\\\upharpoonright /g, '\\u21BE'], [/\\\\upharpoonleft /g, '\\u21BF'], [/\\\\rightharpoonup /g, '\\u21C0'], [/\\\\rightharpoondown /g, '\\u21C1'], [/\\\\downharpoonright /g, '\\u21C2'], [/\\\\downharpoonleft /g, '\\u21C3'], [/\\\\rightleftarrows /g, '\\u21C4'], [/\\\\dblarrowupdown /g, '\\u21C5'], [/\\\\leftrightarrows /g, '\\u21C6'], [/\\\\leftleftarrows /g, '\\u21C7'], [/\\\\upuparrows /g, '\\u21C8'], [/\\\\rightrightarrows /g, '\\u21C9'], [/\\\\downdownarrows /g, '\\u21CA'], [/\\\\leftrightharpoons /g, '\\u21CB'], [/\\\\rightleftharpoons /g, '\\u21CC'], [/\\\\nLeftarrow /g, '\\u21CD'], [/\\\\nLeftrightarrow /g, '\\u21CE'], [/\\\\nRightarrow /g, '\\u21CF'], [/\\\\Leftarrow /g, '\\u21D0'], [/\\\\Uparrow /g, '\\u21D1'], [/\\\\Rightarrow /g, '\\u21D2'], [/\\\\Downarrow /g, '\\u21D3'], [/\\\\Leftrightarrow /g, '\\u21D4'], [/\\\\Updownarrow /g, '\\u21D5'], [/\\\\Lleftarrow /g, '\\u21DA'], [/\\\\Rrightarrow /g, '\\u21DB'], [/\\\\rightsquigarrow /g, '\\u21DD'], [/\\\\DownArrowUpArrow /g, '\\u21F5'], [/\\\\forall /g, '\\u2200'], [/\\\\complement /g, '\\u2201'], [/\\\\partial /g, '\\u2202'], [/\\\\exists /g, '\\u2203'], [/\\\\nexists /g, '\\u2204'], [/\\\\varnothing /g, '\\u2205'], [/\\\\nabla /g, '\\u2207'], [/\\\\in /g, '\\u2208'], [/\\\\not\\\\in /g, '\\u2209'], [/\\\\ni /g, '\\u220B'], [/\\\\not\\\\ni /g, '\\u220C'], [/\\\\prod /g, '\\u220F'], [/\\\\coprod /g, '\\u2210'], [/\\\\sum /g, '\\u2211'], [/\\\\mp /g, '\\u2213'], [/\\\\dotplus /g, '\\u2214'], [/\\\\setminus /g, '\\u2216'], [/\\\\circ /g, '\\u2218'], [/\\\\bullet /g, '\\u2219'], [/\\\\surd /g, '\\u221A'], [/\\\\propto /g, '\\u221D'], [/\\\\infty /g, '\\u221E'], [/\\\\rightangle /g, '\\u221F'], [/\\\\angle /g, '\\u2220'], [/\\\\measuredangle /g, '\\u2221'], [/\\\\sphericalangle /g, '\\u2222'], [/\\\\mid /g, '\\u2223'], [/\\\\nmid /g, '\\u2224'], [/\\\\parallel /g, '\\u2225'], [/\\\\nparallel /g, '\\u2226'], [/\\\\wedge /g, '\\u2227'], [/\\\\vee /g, '\\u2228'], [/\\\\cap /g, '\\u2229'], [/\\\\cup /g, '\\u222A'], [/\\\\int /g, '\\u222B'], [/\\\\int\\\\!\\\\int /g, '\\u222C'], [/\\\\int\\\\!\\\\int\\\\!\\\\int /g, '\\u222D'], [/\\\\oint /g, '\\u222E'], [/\\\\surfintegral /g, '\\u222F'], [/\\\\volintegral /g, '\\u2230'], [/\\\\clwintegral /g, '\\u2231'], [/\\\\ElsevierGlyph\\{2232\\}/g, '\\u2232'], [/\\\\ElsevierGlyph\\{2233\\}/g, '\\u2233'], [/\\\\therefore /g, '\\u2234'], [/\\\\because /g, '\\u2235'], [/\\\\Colon /g, '\\u2237'], [/\\\\ElsevierGlyph\\{2238\\}/g, '\\u2238'], [/\\\\mathbin\\{\\{:\\}\\\\!\\\\!\\{\\-\\}\\\\!\\\\!\\{:\\}\\}/g, '\\u223A'], [/\\\\homothetic /g, '\\u223B'], [/\\\\sim /g, '\\u223C'], [/\\\\backsim /g, '\\u223D'], [/\\\\lazysinv /g, '\\u223E'], [/\\\\wr /g, '\\u2240'], [/\\\\not\\\\sim /g, '\\u2241'], [/\\\\ElsevierGlyph\\{2242\\}/g, '\\u2242'], [/\\\\NotEqualTilde /g, '\\u2242-00338'], [/\\\\simeq /g, '\\u2243'], [/\\\\not\\\\simeq /g, '\\u2244'], [/\\\\cong /g, '\\u2245'], [/\\\\approxnotequal /g, '\\u2246'], [/\\\\not\\\\cong /g, '\\u2247'], [/\\\\approx /g, '\\u2248'], [/\\\\not\\\\approx /g, '\\u2249'], [/\\\\approxeq /g, '\\u224A'], [/\\\\tildetrpl /g, '\\u224B'], [/\\\\not\\\\apid /g, '\\u224B-00338'], [/\\\\allequal /g, '\\u224C'], [/\\\\asymp /g, '\\u224D'], [/\\\\Bumpeq /g, '\\u224E'], [/\\\\NotHumpDownHump /g, '\\u224E-00338'], [/\\\\bumpeq /g, '\\u224F'], [/\\\\NotHumpEqual /g, '\\u224F-00338'], [/\\\\doteq /g, '\\u2250'], [/\\\\not\\\\doteq/g, '\\u2250-00338'], [/\\\\doteqdot /g, '\\u2251'], [/\\\\fallingdotseq /g, '\\u2252'], [/\\\\risingdotseq /g, '\\u2253'], [/\\\\eqcirc /g, '\\u2256'], [/\\\\circeq /g, '\\u2257'], [/\\\\estimates /g, '\\u2259'], [/\\\\ElsevierGlyph\\{225A\\}/g, '\\u225A'], [/\\\\starequal /g, '\\u225B'], [/\\\\triangleq /g, '\\u225C'], [/\\\\ElsevierGlyph\\{225F\\}/g, '\\u225F'], [/\\\\not =/g, '\\u2260'], [/\\\\equiv /g, '\\u2261'], [/\\\\not\\\\equiv /g, '\\u2262'], [/\\\\leq /g, '\\u2264'], [/\\\\geq /g, '\\u2265'], [/\\\\leqq /g, '\\u2266'], [/\\\\geqq /g, '\\u2267'], [/\\\\lneqq /g, '\\u2268'], [/\\\\lvertneqq /g, '\\u2268-0FE00'], [/\\\\gneqq /g, '\\u2269'], [/\\\\gvertneqq /g, '\\u2269-0FE00'], [/\\\\ll /g, '\\u226A'], [/\\\\NotLessLess /g, '\\u226A-00338'], [/\\\\gg /g, '\\u226B'], [/\\\\NotGreaterGreater /g, '\\u226B-00338'], [/\\\\between /g, '\\u226C'], [/\\\\not\\\\kern\\-0.3em\\\\times /g, '\\u226D'], [/\\\\not/g, '\\u226F'], [/\\\\not\\\\leq /g, '\\u2270'], [/\\\\not\\\\geq /g, '\\u2271'], [/\\\\lessequivlnt /g, '\\u2272'], [/\\\\greaterequivlnt /g, '\\u2273'], [/\\\\ElsevierGlyph\\{2274\\}/g, '\\u2274'], [/\\\\ElsevierGlyph\\{2275\\}/g, '\\u2275'], [/\\\\lessgtr /g, '\\u2276'], [/\\\\gtrless /g, '\\u2277'], [/\\\\notlessgreater /g, '\\u2278'], [/\\\\notgreaterless /g, '\\u2279'], [/\\\\prec /g, '\\u227A'], [/\\\\succ /g, '\\u227B'], [/\\\\preccurlyeq /g, '\\u227C'], [/\\\\succcurlyeq /g, '\\u227D'], [/\\\\precapprox /g, '\\u227E'], [/\\\\NotPrecedesTilde /g, '\\u227E-00338'], [/\\\\succapprox /g, '\\u227F'], [/\\\\NotSucceedsTilde /g, '\\u227F-00338'], [/\\\\not\\\\prec /g, '\\u2280'], [/\\\\not\\\\succ /g, '\\u2281'], [/\\\\subset /g, '\\u2282'], [/\\\\supset /g, '\\u2283'], [/\\\\not\\\\subset /g, '\\u2284'], [/\\\\not\\\\supset /g, '\\u2285'], [/\\\\subseteq /g, '\\u2286'], [/\\\\supseteq /g, '\\u2287'], [/\\\\not\\\\subseteq /g, '\\u2288'], [/\\\\not\\\\supseteq /g, '\\u2289'], [/\\\\subsetneq /g, '\\u228A'], [/\\\\varsubsetneqq /g, '\\u228A-0FE00'], [/\\\\supsetneq /g, '\\u228B'], [/\\\\varsupsetneq /g, '\\u228B-0FE00'], [/\\\\uplus /g, '\\u228E'], [/\\\\sqsubset /g, '\\u228F'], [/\\\\NotSquareSubset /g, '\\u228F-00338'], [/\\\\sqsupset /g, '\\u2290'], [/\\\\NotSquareSuperset /g, '\\u2290-00338'], [/\\\\sqsubseteq /g, '\\u2291'], [/\\\\sqsupseteq /g, '\\u2292'], [/\\\\sqcap /g, '\\u2293'], [/\\\\sqcup /g, '\\u2294'], [/\\\\oplus /g, '\\u2295'], [/\\\\ominus /g, '\\u2296'], [/\\\\otimes /g, '\\u2297'], [/\\\\oslash /g, '\\u2298'], [/\\\\odot /g, '\\u2299'], [/\\\\circledcirc /g, '\\u229A'], [/\\\\circledast /g, '\\u229B'], [/\\\\circleddash /g, '\\u229D'], [/\\\\boxplus /g, '\\u229E'], [/\\\\boxminus /g, '\\u229F'], [/\\\\boxtimes /g, '\\u22A0'], [/\\\\boxdot /g, '\\u22A1'], [/\\\\vdash /g, '\\u22A2'], [/\\\\dashv /g, '\\u22A3'], [/\\\\top /g, '\\u22A4'], [/\\\\perp /g, '\\u22A5'], [/\\\\truestate /g, '\\u22A7'], [/\\\\forcesextra /g, '\\u22A8'], [/\\\\Vdash /g, '\\u22A9'], [/\\\\Vvdash /g, '\\u22AA'], [/\\\\VDash /g, '\\u22AB'], [/\\\\nvdash /g, '\\u22AC'], [/\\\\nvDash /g, '\\u22AD'], [/\\\\nVdash /g, '\\u22AE'], [/\\\\nVDash /g, '\\u22AF'], [/\\\\vartriangleleft /g, '\\u22B2'], [/\\\\vartriangleright /g, '\\u22B3'], [/\\\\trianglelefteq /g, '\\u22B4'], [/\\\\trianglerighteq /g, '\\u22B5'], [/\\\\original /g, '\\u22B6'], [/\\\\image /g, '\\u22B7'], [/\\\\multimap /g, '\\u22B8'], [/\\\\hermitconjmatrix /g, '\\u22B9'], [/\\\\intercal /g, '\\u22BA'], [/\\\\veebar /g, '\\u22BB'], [/\\\\rightanglearc /g, '\\u22BE'], [/\\\\ElsevierGlyph\\{22C0\\}/g, '\\u22C0'], [/\\\\ElsevierGlyph\\{22C1\\}/g, '\\u22C1'], [/\\\\bigcap /g, '\\u22C2'], [/\\\\bigcup /g, '\\u22C3'], [/\\\\diamond /g, '\\u22C4'], [/\\\\cdot /g, '\\u22C5'], [/\\\\star /g, '\\u22C6'], [/\\\\divideontimes /g, '\\u22C7'], [/\\\\bowtie /g, '\\u22C8'], [/\\\\ltimes /g, '\\u22C9'], [/\\\\rtimes /g, '\\u22CA'], [/\\\\leftthreetimes /g, '\\u22CB'], [/\\\\rightthreetimes /g, '\\u22CC'], [/\\\\backsimeq /g, '\\u22CD'], [/\\\\curlyvee /g, '\\u22CE'], [/\\\\curlywedge /g, '\\u22CF'], [/\\\\Subset /g, '\\u22D0'], [/\\\\Supset /g, '\\u22D1'], [/\\\\Cap /g, '\\u22D2'], [/\\\\Cup /g, '\\u22D3'], [/\\\\pitchfork /g, '\\u22D4'], [/\\\\lessdot /g, '\\u22D6'], [/\\\\gtrdot /g, '\\u22D7'], [/\\\\verymuchless /g, '\\u22D8'], [/\\\\verymuchgreater /g, '\\u22D9'], [/\\\\lesseqgtr /g, '\\u22DA'], [/\\\\gtreqless /g, '\\u22DB'], [/\\\\curlyeqprec /g, '\\u22DE'], [/\\\\curlyeqsucc /g, '\\u22DF'], [/\\\\not\\\\sqsubseteq /g, '\\u22E2'], [/\\\\not\\\\sqsupseteq /g, '\\u22E3'], [/\\\\Elzsqspne /g, '\\u22E5'], [/\\\\lnsim /g, '\\u22E6'], [/\\\\gnsim /g, '\\u22E7'], [/\\\\precedesnotsimilar /g, '\\u22E8'], [/\\\\succnsim /g, '\\u22E9'], [/\\\\ntriangleleft /g, '\\u22EA'], [/\\\\ntriangleright /g, '\\u22EB'], [/\\\\ntrianglelefteq /g, '\\u22EC'], [/\\\\ntrianglerighteq /g, '\\u22ED'], [/\\\\vdots /g, '\\u22EE'], [/\\\\cdots /g, '\\u22EF'], [/\\\\upslopeellipsis /g, '\\u22F0'], [/\\\\downslopeellipsis /g, '\\u22F1'], [/\\\\barwedge /g, '\\u2305'], [/\\\\perspcorrespond /g, '\\u2306'], [/\\\\lceil /g, '\\u2308'], [/\\\\rceil /g, '\\u2309'], [/\\\\lfloor /g, '\\u230A'], [/\\\\rfloor /g, '\\u230B'], [/\\\\recorder /g, '\\u2315'], [/\\\\mathchar\"2208/g, '\\u2316'], [/\\\\ulcorner /g, '\\u231C'], [/\\\\urcorner /g, '\\u231D'], [/\\\\llcorner /g, '\\u231E'], [/\\\\lrcorner /g, '\\u231F'], [/\\\\frown /g, '\\u2322'], [/\\\\smile /g, '\\u2323'], [/\\\\langle /g, '\\u2329'], [/\\\\rangle /g, '\\u232A'], [/\\\\ElsevierGlyph\\{E838\\}/g, '\\u233D'], [/\\\\Elzdlcorn /g, '\\u23A3'], [/\\\\lmoustache /g, '\\u23B0'], [/\\\\rmoustache /g, '\\u23B1'], [/\\\\textvisiblespace /g, '\\u2423'], [/\\\\ding\\{172\\}/g, '\\u2460'], [/\\\\ding\\{173\\}/g, '\\u2461'], [/\\\\ding\\{174\\}/g, '\\u2462'], [/\\\\ding\\{175\\}/g, '\\u2463'], [/\\\\ding\\{176\\}/g, '\\u2464'], [/\\\\ding\\{177\\}/g, '\\u2465'], [/\\\\ding\\{178\\}/g, '\\u2466'], [/\\\\ding\\{179\\}/g, '\\u2467'], [/\\\\ding\\{180\\}/g, '\\u2468'], [/\\\\ding\\{181\\}/g, '\\u2469'], [/\\\\circledS /g, '\\u24C8'], [/\\\\Elzdshfnc /g, '\\u2506'], [/\\\\Elzsqfnw /g, '\\u2519'], [/\\\\diagup /g, '\\u2571'], [/\\\\ding\\{110\\}/g, '\\u25A0'], [/\\\\square /g, '\\u25A1'], [/\\\\blacksquare /g, '\\u25AA'], [/\\\\fbox\\{~~\\}/g, '\\u25AD'], [/\\\\Elzvrecto /g, '\\u25AF'], [/\\\\ElsevierGlyph\\{E381\\}/g, '\\u25B1'], [/\\\\ding\\{115\\}/g, '\\u25B2'], [/\\\\bigtriangleup /g, '\\u25B3'], [/\\\\blacktriangle /g, '\\u25B4'], [/\\\\vartriangle /g, '\\u25B5'], [/\\\\blacktriangleright /g, '\\u25B8'], [/\\\\triangleright /g, '\\u25B9'], [/\\\\ding\\{116\\}/g, '\\u25BC'], [/\\\\bigtriangledown /g, '\\u25BD'], [/\\\\blacktriangledown /g, '\\u25BE'], [/\\\\triangledown /g, '\\u25BF'], [/\\\\blacktriangleleft /g, '\\u25C2'], [/\\\\triangleleft /g, '\\u25C3'], [/\\\\ding\\{117\\}/g, '\\u25C6'], [/\\\\lozenge /g, '\\u25CA'], [/\\\\bigcirc /g, '\\u25CB'], [/\\\\ding\\{108\\}/g, '\\u25CF'], [/\\\\Elzcirfl /g, '\\u25D0'], [/\\\\Elzcirfr /g, '\\u25D1'], [/\\\\Elzcirfb /g, '\\u25D2'], [/\\\\ding\\{119\\}/g, '\\u25D7'], [/\\\\Elzrvbull /g, '\\u25D8'], [/\\\\Elzsqfl /g, '\\u25E7'], [/\\\\Elzsqfr /g, '\\u25E8'], [/\\\\Elzsqfse /g, '\\u25EA'], [/\\\\bigcirc /g, '\\u25EF'], [/\\\\ding\\{72\\}/g, '\\u2605'], [/\\\\ding\\{73\\}/g, '\\u2606'], [/\\\\ding\\{37\\}/g, '\\u260E'], [/\\\\ding\\{42\\}/g, '\\u261B'], [/\\\\ding\\{43\\}/g, '\\u261E'], [/\\\\rightmoon /g, '\\u263E'], [/\\\\mercury /g, '\\u263F'], [/\\\\venus /g, '\\u2640'], [/\\\\male /g, '\\u2642'], [/\\\\jupiter /g, '\\u2643'], [/\\\\saturn /g, '\\u2644'], [/\\\\uranus /g, '\\u2645'], [/\\\\neptune /g, '\\u2646'], [/\\\\pluto /g, '\\u2647'], [/\\\\aries /g, '\\u2648'], [/\\\\taurus /g, '\\u2649'], [/\\\\gemini /g, '\\u264A'], [/\\\\cancer /g, '\\u264B'], [/\\\\leo /g, '\\u264C'], [/\\\\virgo /g, '\\u264D'], [/\\\\libra /g, '\\u264E'], [/\\\\scorpio /g, '\\u264F'], [/\\\\sagittarius /g, '\\u2650'], [/\\\\capricornus /g, '\\u2651'], [/\\\\aquarius /g, '\\u2652'], [/\\\\pisces /g, '\\u2653'], [/\\\\ding\\{171\\}/g, '\\u2660'], [/\\\\diamond /g, '\\u2662'], [/\\\\ding\\{168\\}/g, '\\u2663'], [/\\\\ding\\{170\\}/g, '\\u2665'], [/\\\\ding\\{169\\}/g, '\\u2666'], [/\\\\quarternote /g, '\\u2669'], [/\\\\eighthnote /g, '\\u266A'], [/\\\\flat /g, '\\u266D'], [/\\\\natural /g, '\\u266E'], [/\\\\sharp /g, '\\u266F'], [/\\\\ding\\{33\\}/g, '\\u2701'], [/\\\\ding\\{34\\}/g, '\\u2702'], [/\\\\ding\\{35\\}/g, '\\u2703'], [/\\\\ding\\{36\\}/g, '\\u2704'], [/\\\\ding\\{38\\}/g, '\\u2706'], [/\\\\ding\\{39\\}/g, '\\u2707'], [/\\\\ding\\{40\\}/g, '\\u2708'], [/\\\\ding\\{41\\}/g, '\\u2709'], [/\\\\ding\\{44\\}/g, '\\u270C'], [/\\\\ding\\{45\\}/g, '\\u270D'], [/\\\\ding\\{46\\}/g, '\\u270E'], [/\\\\ding\\{47\\}/g, '\\u270F'], [/\\\\ding\\{48\\}/g, '\\u2710'], [/\\\\ding\\{49\\}/g, '\\u2711'], [/\\\\ding\\{50\\}/g, '\\u2712'], [/\\\\ding\\{51\\}/g, '\\u2713'], [/\\\\ding\\{52\\}/g, '\\u2714'], [/\\\\ding\\{53\\}/g, '\\u2715'], [/\\\\ding\\{54\\}/g, '\\u2716'], [/\\\\ding\\{55\\}/g, '\\u2717'], [/\\\\ding\\{56\\}/g, '\\u2718'], [/\\\\ding\\{57\\}/g, '\\u2719'], [/\\\\ding\\{58\\}/g, '\\u271A'], [/\\\\ding\\{59\\}/g, '\\u271B'], [/\\\\ding\\{60\\}/g, '\\u271C'], [/\\\\ding\\{61\\}/g, '\\u271D'], [/\\\\ding\\{62\\}/g, '\\u271E'], [/\\\\ding\\{63\\}/g, '\\u271F'], [/\\\\ding\\{64\\}/g, '\\u2720'], [/\\\\ding\\{65\\}/g, '\\u2721'], [/\\\\ding\\{66\\}/g, '\\u2722'], [/\\\\ding\\{67\\}/g, '\\u2723'], [/\\\\ding\\{68\\}/g, '\\u2724'], [/\\\\ding\\{69\\}/g, '\\u2725'], [/\\\\ding\\{70\\}/g, '\\u2726'], [/\\\\ding\\{71\\}/g, '\\u2727'], [/\\\\ding\\{73\\}/g, '\\u2729'], [/\\\\ding\\{74\\}/g, '\\u272A'], [/\\\\ding\\{75\\}/g, '\\u272B'], [/\\\\ding\\{76\\}/g, '\\u272C'], [/\\\\ding\\{77\\}/g, '\\u272D'], [/\\\\ding\\{78\\}/g, '\\u272E'], [/\\\\ding\\{79\\}/g, '\\u272F'], [/\\\\ding\\{80\\}/g, '\\u2730'], [/\\\\ding\\{81\\}/g, '\\u2731'], [/\\\\ding\\{82\\}/g, '\\u2732'], [/\\\\ding\\{83\\}/g, '\\u2733'], [/\\\\ding\\{84\\}/g, '\\u2734'], [/\\\\ding\\{85\\}/g, '\\u2735'], [/\\\\ding\\{86\\}/g, '\\u2736'], [/\\\\ding\\{87\\}/g, '\\u2737'], [/\\\\ding\\{88\\}/g, '\\u2738'], [/\\\\ding\\{89\\}/g, '\\u2739'], [/\\\\ding\\{90\\}/g, '\\u273A'], [/\\\\ding\\{91\\}/g, '\\u273B'], [/\\\\ding\\{92\\}/g, '\\u273C'], [/\\\\ding\\{93\\}/g, '\\u273D'], [/\\\\ding\\{94\\}/g, '\\u273E'], [/\\\\ding\\{95\\}/g, '\\u273F'], [/\\\\ding\\{96\\}/g, '\\u2740'], [/\\\\ding\\{97\\}/g, '\\u2741'], [/\\\\ding\\{98\\}/g, '\\u2742'], [/\\\\ding\\{99\\}/g, '\\u2743'], [/\\\\ding\\{100\\}/g, '\\u2744'], [/\\\\ding\\{101\\}/g, '\\u2745'], [/\\\\ding\\{102\\}/g, '\\u2746'], [/\\\\ding\\{103\\}/g, '\\u2747'], [/\\\\ding\\{104\\}/g, '\\u2748'], [/\\\\ding\\{105\\}/g, '\\u2749'], [/\\\\ding\\{106\\}/g, '\\u274A'], [/\\\\ding\\{107\\}/g, '\\u274B'], [/\\\\ding\\{109\\}/g, '\\u274D'], [/\\\\ding\\{111\\}/g, '\\u274F'], [/\\\\ding\\{112\\}/g, '\\u2750'], [/\\\\ding\\{113\\}/g, '\\u2751'], [/\\\\ding\\{114\\}/g, '\\u2752'], [/\\\\ding\\{118\\}/g, '\\u2756'], [/\\\\ding\\{120\\}/g, '\\u2758'], [/\\\\ding\\{121\\}/g, '\\u2759'], [/\\\\ding\\{122\\}/g, '\\u275A'], [/\\\\ding\\{123\\}/g, '\\u275B'], [/\\\\ding\\{124\\}/g, '\\u275C'], [/\\\\ding\\{125\\}/g, '\\u275D'], [/\\\\ding\\{126\\}/g, '\\u275E'], [/\\\\ding\\{161\\}/g, '\\u2761'], [/\\\\ding\\{162\\}/g, '\\u2762'], [/\\\\ding\\{163\\}/g, '\\u2763'], [/\\\\ding\\{164\\}/g, '\\u2764'], [/\\\\ding\\{165\\}/g, '\\u2765'], [/\\\\ding\\{166\\}/g, '\\u2766'], [/\\\\ding\\{167\\}/g, '\\u2767'], [/\\\\ding\\{182\\}/g, '\\u2776'], [/\\\\ding\\{183\\}/g, '\\u2777'], [/\\\\ding\\{184\\}/g, '\\u2778'], [/\\\\ding\\{185\\}/g, '\\u2779'], [/\\\\ding\\{186\\}/g, '\\u277A'], [/\\\\ding\\{187\\}/g, '\\u277B'], [/\\\\ding\\{188\\}/g, '\\u277C'], [/\\\\ding\\{189\\}/g, '\\u277D'], [/\\\\ding\\{190\\}/g, '\\u277E'], [/\\\\ding\\{191\\}/g, '\\u277F'], [/\\\\ding\\{192\\}/g, '\\u2780'], [/\\\\ding\\{193\\}/g, '\\u2781'], [/\\\\ding\\{194\\}/g, '\\u2782'], [/\\\\ding\\{195\\}/g, '\\u2783'], [/\\\\ding\\{196\\}/g, '\\u2784'], [/\\\\ding\\{197\\}/g, '\\u2785'], [/\\\\ding\\{198\\}/g, '\\u2786'], [/\\\\ding\\{199\\}/g, '\\u2787'], [/\\\\ding\\{200\\}/g, '\\u2788'], [/\\\\ding\\{201\\}/g, '\\u2789'], [/\\\\ding\\{202\\}/g, '\\u278A'], [/\\\\ding\\{203\\}/g, '\\u278B'], [/\\\\ding\\{204\\}/g, '\\u278C'], [/\\\\ding\\{205\\}/g, '\\u278D'], [/\\\\ding\\{206\\}/g, '\\u278E'], [/\\\\ding\\{207\\}/g, '\\u278F'], [/\\\\ding\\{208\\}/g, '\\u2790'], [/\\\\ding\\{209\\}/g, '\\u2791'], [/\\\\ding\\{210\\}/g, '\\u2792'], [/\\\\ding\\{211\\}/g, '\\u2793'], [/\\\\ding\\{212\\}/g, '\\u2794'], [/\\\\ding\\{216\\}/g, '\\u2798'], [/\\\\ding\\{217\\}/g, '\\u2799'], [/\\\\ding\\{218\\}/g, '\\u279A'], [/\\\\ding\\{219\\}/g, '\\u279B'], [/\\\\ding\\{220\\}/g, '\\u279C'], [/\\\\ding\\{221\\}/g, '\\u279D'], [/\\\\ding\\{222\\}/g, '\\u279E'], [/\\\\ding\\{223\\}/g, '\\u279F'], [/\\\\ding\\{224\\}/g, '\\u27A0'], [/\\\\ding\\{225\\}/g, '\\u27A1'], [/\\\\ding\\{226\\}/g, '\\u27A2'], [/\\\\ding\\{227\\}/g, '\\u27A3'], [/\\\\ding\\{228\\}/g, '\\u27A4'], [/\\\\ding\\{229\\}/g, '\\u27A5'], [/\\\\ding\\{230\\}/g, '\\u27A6'], [/\\\\ding\\{231\\}/g, '\\u27A7'], [/\\\\ding\\{232\\}/g, '\\u27A8'], [/\\\\ding\\{233\\}/g, '\\u27A9'], [/\\\\ding\\{234\\}/g, '\\u27AA'], [/\\\\ding\\{235\\}/g, '\\u27AB'], [/\\\\ding\\{236\\}/g, '\\u27AC'], [/\\\\ding\\{237\\}/g, '\\u27AD'], [/\\\\ding\\{238\\}/g, '\\u27AE'], [/\\\\ding\\{239\\}/g, '\\u27AF'], [/\\\\ding\\{241\\}/g, '\\u27B1'], [/\\\\ding\\{242\\}/g, '\\u27B2'], [/\\\\ding\\{243\\}/g, '\\u27B3'], [/\\\\ding\\{244\\}/g, '\\u27B4'], [/\\\\ding\\{245\\}/g, '\\u27B5'], [/\\\\ding\\{246\\}/g, '\\u27B6'], [/\\\\ding\\{247\\}/g, '\\u27B7'], [/\\\\ding\\{248\\}/g, '\\u27B8'], [/\\\\ding\\{249\\}/g, '\\u27B9'], [/\\\\ding\\{250\\}/g, '\\u27BA'], [/\\\\ding\\{251\\}/g, '\\u27BB'], [/\\\\ding\\{252\\}/g, '\\u27BC'], [/\\\\ding\\{253\\}/g, '\\u27BD'], [/\\\\ding\\{254\\}/g, '\\u27BE'], [/\\\\longleftarrow /g, '\\u27F5'], [/\\\\longrightarrow /g, '\\u27F6'], [/\\\\longleftrightarrow /g, '\\u27F7'], [/\\\\Longleftarrow /g, '\\u27F8'], [/\\\\Longrightarrow /g, '\\u27F9'], [/\\\\Longleftrightarrow /g, '\\u27FA'], [/\\\\longmapsto /g, '\\u27FC'], [/\\\\sim\\\\joinrel\\\\leadsto/g, '\\u27FF'], [/\\\\ElsevierGlyph\\{E212\\}/g, '\\u2905'], [/\\\\UpArrowBar /g, '\\u2912'], [/\\\\DownArrowBar /g, '\\u2913'], [/\\\\ElsevierGlyph\\{E20C\\}/g, '\\u2923'], [/\\\\ElsevierGlyph\\{E20D\\}/g, '\\u2924'], [/\\\\ElsevierGlyph\\{E20B\\}/g, '\\u2925'], [/\\\\ElsevierGlyph\\{E20A\\}/g, '\\u2926'], [/\\\\ElsevierGlyph\\{E211\\}/g, '\\u2927'], [/\\\\ElsevierGlyph\\{E20E\\}/g, '\\u2928'], [/\\\\ElsevierGlyph\\{E20F\\}/g, '\\u2929'], [/\\\\ElsevierGlyph\\{E210\\}/g, '\\u292A'], [/\\\\ElsevierGlyph\\{E21C\\}/g, '\\u2933'], [/\\\\ElsevierGlyph\\{E21D\\}/g, '\\u2933-00338'], [/\\\\ElsevierGlyph\\{E21A\\}/g, '\\u2936'], [/\\\\ElsevierGlyph\\{E219\\}/g, '\\u2937'], [/\\\\Elolarr /g, '\\u2940'], [/\\\\Elorarr /g, '\\u2941'], [/\\\\ElzRlarr /g, '\\u2942'], [/\\\\ElzrLarr /g, '\\u2944'], [/\\\\Elzrarrx /g, '\\u2947'], [/\\\\LeftRightVector /g, '\\u294E'], [/\\\\RightUpDownVector /g, '\\u294F'], [/\\\\DownLeftRightVector /g, '\\u2950'], [/\\\\LeftUpDownVector /g, '\\u2951'], [/\\\\LeftVectorBar /g, '\\u2952'], [/\\\\RightVectorBar /g, '\\u2953'], [/\\\\RightUpVectorBar /g, '\\u2954'], [/\\\\RightDownVectorBar /g, '\\u2955'], [/\\\\DownLeftVectorBar /g, '\\u2956'], [/\\\\DownRightVectorBar /g, '\\u2957'], [/\\\\LeftUpVectorBar /g, '\\u2958'], [/\\\\LeftDownVectorBar /g, '\\u2959'], [/\\\\LeftTeeVector /g, '\\u295A'], [/\\\\RightTeeVector /g, '\\u295B'], [/\\\\RightUpTeeVector /g, '\\u295C'], [/\\\\RightDownTeeVector /g, '\\u295D'], [/\\\\DownLeftTeeVector /g, '\\u295E'], [/\\\\DownRightTeeVector /g, '\\u295F'], [/\\\\LeftUpTeeVector /g, '\\u2960'], [/\\\\LeftDownTeeVector /g, '\\u2961'], [/\\\\UpEquilibrium /g, '\\u296E'], [/\\\\ReverseUpEquilibrium /g, '\\u296F'], [/\\\\RoundImplies /g, '\\u2970'], [/\\\\ElsevierGlyph\\{E214\\}/g, '\\u297C'], [/\\\\ElsevierGlyph\\{E215\\}/g, '\\u297D'], [/\\\\Elztfnc /g, '\\u2980'], [/\\\\ElsevierGlyph\\{3018\\}/g, '\\u2985'], [/\\\\Elroang /g, '\\u2986'], [/\\\\ElsevierGlyph\\{E291\\}/g, '\\u2994'], [/\\\\Elzddfnc /g, '\\u2999'], [/\\\\Angle /g, '\\u299C'], [/\\\\Elzlpargt /g, '\\u29A0'], [/\\\\ElsevierGlyph\\{E260\\}/g, '\\u29B5'], [/\\\\ElsevierGlyph\\{E61B\\}/g, '\\u29B6'], [/\\\\ElzLap /g, '\\u29CA'], [/\\\\Elzdefas /g, '\\u29CB'], [/\\\\LeftTriangleBar /g, '\\u29CF'], [/\\\\NotLeftTriangleBar /g, '\\u29CF-00338'], [/\\\\RightTriangleBar /g, '\\u29D0'], [/\\\\NotRightTriangleBar /g, '\\u29D0-00338'], [/\\\\ElsevierGlyph\\{E372\\}/g, '\\u29DC'], [/\\\\blacklozenge /g, '\\u29EB'], [/\\\\RuleDelayed /g, '\\u29F4'], [/\\\\Elxuplus /g, '\\u2A04'], [/\\\\ElzThr /g, '\\u2A05'], [/\\\\Elxsqcup /g, '\\u2A06'], [/\\\\ElzInf /g, '\\u2A07'], [/\\\\ElzSup /g, '\\u2A08'], [/\\\\ElzCint /g, '\\u2A0D'], [/\\\\clockoint /g, '\\u2A0F'], [/\\\\ElsevierGlyph\\{E395\\}/g, '\\u2A10'], [/\\\\sqrint /g, '\\u2A16'], [/\\\\ElsevierGlyph\\{E25A\\}/g, '\\u2A25'], [/\\\\ElsevierGlyph\\{E25B\\}/g, '\\u2A2A'], [/\\\\ElsevierGlyph\\{E25C\\}/g, '\\u2A2D'], [/\\\\ElsevierGlyph\\{E25D\\}/g, '\\u2A2E'], [/\\\\ElzTimes /g, '\\u2A2F'], [/\\\\ElsevierGlyph\\{E25E\\}/g, '\\u2A34'], [/\\\\ElsevierGlyph\\{E25E\\}/g, '\\u2A35'], [/\\\\ElsevierGlyph\\{E259\\}/g, '\\u2A3C'], [/\\\\amalg /g, '\\u2A3F'], [/\\\\ElzAnd /g, '\\u2A53'], [/\\\\ElzOr /g, '\\u2A54'], [/\\\\ElsevierGlyph\\{E36E\\}/g, '\\u2A55'], [/\\\\ElOr /g, '\\u2A56'], [/\\\\perspcorrespond /g, '\\u2A5E'], [/\\\\Elzminhat /g, '\\u2A5F'], [/\\\\ElsevierGlyph\\{225A\\}/g, '\\u2A63'], [/\\\\stackrel\\{*\\}\\{=\\}/g, '\\u2A6E'], [/\\\\Equal /g, '\\u2A75'], [/\\\\leqslant /g, '\\u2A7D'], [/\\\\nleqslant /g, '\\u2A7D-00338'], [/\\\\geqslant /g, '\\u2A7E'], [/\\\\ngeqslant /g, '\\u2A7E-00338'], [/\\\\lessapprox /g, '\\u2A85'], [/\\\\gtrapprox /g, '\\u2A86'], [/\\\\lneq /g, '\\u2A87'], [/\\\\gneq /g, '\\u2A88'], [/\\\\lnapprox /g, '\\u2A89'], [/\\\\gnapprox /g, '\\u2A8A'], [/\\\\lesseqqgtr /g, '\\u2A8B'], [/\\\\gtreqqless /g, '\\u2A8C'], [/\\\\eqslantless /g, '\\u2A95'], [/\\\\eqslantgtr /g, '\\u2A96'], [/\\\\Pisymbol\\{ppi020\\}\\{117\\}/g, '\\u2A9D'], [/\\\\Pisymbol\\{ppi020\\}\\{105\\}/g, '\\u2A9E'], [/\\\\NestedLessLess /g, '\\u2AA1'], [/\\\\NotNestedLessLess /g, '\\u2AA1-00338'], [/\\\\NestedGreaterGreater /g, '\\u2AA2'], [/\\\\NotNestedGreaterGreater /g, '\\u2AA2-00338'], [/\\\\preceq /g, '\\u2AAF'], [/\\\\not\\\\preceq /g, '\\u2AAF-00338'], [/\\\\succeq /g, '\\u2AB0'], [/\\\\not\\\\succeq /g, '\\u2AB0-00338'], [/\\\\precneqq /g, '\\u2AB5'], [/\\\\succneqq /g, '\\u2AB6'], [/\\\\precapprox /g, '\\u2AB7'], [/\\\\succapprox /g, '\\u2AB8'], [/\\\\precnapprox /g, '\\u2AB9'], [/\\\\succnapprox /g, '\\u2ABA'], [/\\\\subseteqq /g, '\\u2AC5'], [/\\\\nsubseteqq /g, '\\u2AC5-00338'], [/\\\\supseteqq /g, '\\u2AC6'], [/\\\\nsupseteqq/g, '\\u2AC6-00338'], [/\\\\subsetneqq /g, '\\u2ACB'], [/\\\\supsetneqq /g, '\\u2ACC'], [/\\\\ElsevierGlyph\\{E30D\\}/g, '\\u2AEB'], [/\\\\Elztdcol /g, '\\u2AF6'], [/\\\\ElsevierGlyph\\{300A\\}/g, '\\u300A'], [/\\\\ElsevierGlyph\\{300B\\}/g, '\\u300B'], [/\\\\ElsevierGlyph\\{3018\\}/g, '\\u3018'], [/\\\\ElsevierGlyph\\{3019\\}/g, '\\u3019'], [/\\\\openbracketleft /g, '\\u301A'], [/\\\\openbracketright /g, '\\u301B']];\n\t\n\t return this;\n\t} // end function BibtexParser\n\t\n\tif (typeof module !== 'undefined' && module.exports) {\n\t module.exports = BibtexParser;\n\t}\n\n/***/ },\n/* 39 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone) {!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(6), __webpack_require__(20), __webpack_require__(5)], __WEBPACK_AMD_DEFINE_RESULT__ = function (baseMVC, citationModel, _l) {\n\t\n\t var CitationView = Backbone.View.extend({\n\t tagName: 'div',\n\t className: 'citations',\n\t render: function () {\n\t this.$el.append(\"\" + this.formattedReference() + \"
\");\n\t return this;\n\t },\n\t formattedReference: function () {\n\t var model = this.model;\n\t var entryType = model.entryType();\n\t var fields = model.fields();\n\t\n\t var ref = \"\";\n\t // Code inspired by...\n\t // https://github.com/vkaravir/bib-publication-list/blob/master/src/bib-publication-list.js\n\t var authorsAndYear = this._asSentence((fields.author ? fields.author : \"\") + (fields.year ? \" (\" + fields.year + \")\" : \"\")) + \" \";\n\t var title = fields.title || \"\";\n\t var pages = fields.pages ? \"pp. \" + fields.pages : \"\";\n\t var address = fields.address;\n\t if (entryType == \"article\") {\n\t var volume = (fields.volume ? fields.volume : \"\") + (fields.number ? \" (\" + fields.number + \")\" : \"\") + (pages ? \", \" + pages : \"\");\n\t ref = authorsAndYear + this._asSentence(title) + (fields.journal ? \"In \" + fields.journal + \", \" : \"\") + this._asSentence(volume) + this._asSentence(fields.address) + \"<\\/em>\";\n\t } else if (entryType == \"inproceedings\" || entryType == \"proceedings\") {\n\t ref = authorsAndYear + this._asSentence(title) + (fields.booktitle ? \"In \" + fields.booktitle + \", \" : \"\") + (pages ? pages : \"\") + (address ? \", \" + address : \"\") + \".<\\/em>\";\n\t } else if (entryType == \"mastersthesis\" || entryType == \"phdthesis\") {\n\t ref = authorsAndYear + this._asSentence(title) + (fields.howpublished ? fields.howpublished + \". \" : \"\") + (fields.note ? fields.note + \".\" : \"\");\n\t } else if (entryType == \"techreport\") {\n\t ref = authorsAndYear + this._asSentence(title) + this._asSentence(fields.institution) + this._asSentence(fields.number) + this._asSentence(fields.type);\n\t } else if (entryType == \"book\" || entryType == \"inbook\" || entryType == \"incollection\") {\n\t ref = authorsAndYear + \" \" + this._formatBookInfo(fields);\n\t } else {\n\t ref = authorsAndYear + \" \" + this._asSentence(title) + this._asSentence(fields.howpublished) + this._asSentence(fields.note);\n\t }\n\t var doiUrl = \"\";\n\t if (fields.doi) {\n\t doiUrl = 'http://dx.doi.org/' + fields.doi;\n\t ref += '[doi:' + fields.doi + \" ]\";\n\t }\n\t var url = fields.url || doiUrl;\n\t if (url) {\n\t ref += '[Link ]';\n\t }\n\t return ref;\n\t },\n\t _formatBookInfo: function (fields) {\n\t var info = \"\";\n\t if (fields.chapter) {\n\t info += fields.chapter + \" in \";\n\t }\n\t if (fields.title) {\n\t info += \"\" + fields.title + \"<\\/em>\";\n\t }\n\t if (fields.editor) {\n\t info += \", Edited by \" + fields.editor + \", \";\n\t }\n\t if (fields.publisher) {\n\t info += \", \" + fields.publisher;\n\t }\n\t if (fields.pages) {\n\t info += \", pp. \" + fields.pages + \"\";\n\t }\n\t if (fields.series) {\n\t info += \", \" + fields.series + \"<\\/em>\";\n\t }\n\t if (fields.volume) {\n\t info += \", Vol.\" + fields.volume;\n\t }\n\t if (fields.issn) {\n\t info += \", ISBN: \" + fields.issn;\n\t }\n\t return info + \".\";\n\t },\n\t _asSentence: function (str) {\n\t return str && str.trim() ? str + \". \" : \"\";\n\t }\n\t });\n\t\n\t var CitationListView = Backbone.View.extend({\n\t el: '#citations',\n\t /**\n\t * Set up view.\n\t */\n\t initialize: function () {\n\t this.listenTo(this.collection, 'add', this.renderCitation);\n\t },\n\t\n\t events: {\n\t 'click .citations-to-bibtex': 'showBibtex',\n\t 'click .citations-to-formatted': 'showFormatted'\n\t },\n\t\n\t renderCitation: function (citation) {\n\t var citationView = new CitationView({ model: citation });\n\t this.$(\".citations-formatted\").append(citationView.render().el);\n\t var rawTextarea = this.$(\".citations-bibtex-text\");\n\t rawTextarea.val(rawTextarea.val() + \"\\n\\r\" + citation.attributes.content);\n\t },\n\t\n\t render: function () {\n\t this.$el.html(this.citationsElement());\n\t this.collection.each(function (item) {\n\t this.renderCitation(item);\n\t }, this);\n\t this.showFormatted();\n\t },\n\t\n\t showBibtex: function () {\n\t this.$(\".citations-to-formatted\").show();\n\t this.$(\".citations-to-bibtex\").hide();\n\t this.$(\".citations-bibtex\").show();\n\t this.$(\".citations-formatted\").hide();\n\t this.$(\".citations-bibtex-text\").select();\n\t },\n\t\n\t showFormatted: function () {\n\t this.$(\".citations-to-formatted\").hide();\n\t this.$(\".citations-to-bibtex\").show();\n\t this.$(\".citations-bibtex\").hide();\n\t this.$(\".citations-formatted\").show();\n\t },\n\t\n\t partialWarningElement: function () {\n\t if (this.collection.partial) {\n\t return ['', '
Warning: This is a experimental feature. Most Galaxy tools will not annotate', ' citations explicitly at this time. When writing up your analysis, please manually', ' review your histories and find all references', ' that should be cited in order to completely describe your work. Also, please remember to', '
cite Galaxy .', '
'].join('');\n\t } else {\n\t return '';\n\t }\n\t },\n\t\n\t citationsElement: function () {\n\t return [''].join('');\n\t }\n\t });\n\t\n\t //==============================================================================\n\t return {\n\t CitationView: CitationView,\n\t CitationListView: CitationListView\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3)))\n\n/***/ },\n/* 40 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(_, $, jQuery) {!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(54), __webpack_require__(43), __webpack_require__(6), __webpack_require__(5)], __WEBPACK_AMD_DEFINE_RESULT__ = function (LIST_ITEM, DATASET_LI, BASE_MVC, _l) {\n\t\n\t 'use strict';\n\t //==============================================================================\n\t\n\t var FoldoutListItemView = LIST_ITEM.FoldoutListItemView,\n\t ListItemView = LIST_ITEM.ListItemView;\n\t /** @class Read only view for DatasetCollection.\n\t */\n\t var DCListItemView = FoldoutListItemView.extend(\n\t /** @lends DCListItemView.prototype */{\n\t\n\t className: FoldoutListItemView.prototype.className + \" dataset-collection\",\n\t id: function () {\n\t return ['dataset_collection', this.model.get('id')].join('-');\n\t },\n\t\n\t /** override to add linkTarget */\n\t initialize: function (attributes) {\n\t this.linkTarget = attributes.linkTarget || '_blank';\n\t this.hasUser = attributes.hasUser;\n\t FoldoutListItemView.prototype.initialize.call(this, attributes);\n\t },\n\t\n\t /** event listeners */\n\t _setUpListeners: function () {\n\t FoldoutListItemView.prototype._setUpListeners.call(this);\n\t this.listenTo(this.model, 'change', function (model, options) {\n\t // if the model has changed deletion status render it entirely\n\t if (_.has(model.changed, 'deleted')) {\n\t this.render();\n\t\n\t // if the model has been decorated after the fact with the element count,\n\t // render the subtitle where the count is displayed\n\t } else if (_.has(model.changed, 'element_count')) {\n\t this.$('> .title-bar .subtitle').replaceWith(this._renderSubtitle());\n\t }\n\t });\n\t },\n\t\n\t // ......................................................................... rendering\n\t /** render a subtitle to show the user what sort of collection this is */\n\t _renderSubtitle: function () {\n\t return $(this.templates.subtitle(this.model.toJSON(), this));\n\t },\n\t\n\t // ......................................................................... foldout\n\t /** override to add linktarget to sub-panel */\n\t _getFoldoutPanelOptions: function () {\n\t var options = FoldoutListItemView.prototype._getFoldoutPanelOptions.call(this);\n\t return _.extend(options, {\n\t linkTarget: this.linkTarget,\n\t hasUser: this.hasUser\n\t });\n\t },\n\t\n\t /** override to not catch sub-panel selectors */\n\t $selector: function () {\n\t return this.$('> .selector');\n\t },\n\t\n\t // ......................................................................... misc\n\t /** String representation */\n\t toString: function () {\n\t var modelString = this.model ? this.model + '' : '(no model)';\n\t return 'DCListItemView(' + modelString + ')';\n\t }\n\t });\n\t\n\t // ............................................................................ TEMPLATES\n\t /** underscore templates */\n\t DCListItemView.prototype.templates = function () {\n\t\n\t var warnings = _.extend({}, FoldoutListItemView.prototype.templates.warnings, {\n\t error: BASE_MVC.wrapTemplate([\n\t // error during index fetch - show error on dataset\n\t '<% if( model.error ){ %>', '', _l('There was an error getting the data for this collection'), ': <%- model.error %>', '
', '<% } %>']),\n\t purged: BASE_MVC.wrapTemplate(['<% if( model.purged ){ %>', '', _l('This collection has been deleted and removed from disk'), '
', '<% } %>']),\n\t deleted: BASE_MVC.wrapTemplate([\n\t // deleted not purged\n\t '<% if( model.deleted && !model.purged ){ %>', '', _l('This collection has been deleted'), '
', '<% } %>'])\n\t });\n\t\n\t // use element identifier\n\t var titleBarTemplate = BASE_MVC.wrapTemplate(['', '
', '<%- collection.element_identifier || collection.name %> ', '
', '
', '
'], 'collection');\n\t\n\t // use element identifier\n\t var subtitleTemplate = BASE_MVC.wrapTemplate(['', '<% var countText = collection.element_count? ( collection.element_count + \" \" ) : \"\"; %>', '<% if( collection.collection_type === \"list\" ){ %>', _l('a list of <%- countText %>datasets'), '<% } else if( collection.collection_type === \"paired\" ){ %>', _l('a pair of datasets'), '<% } else if( collection.collection_type === \"list:paired\" ){ %>', _l('a list of <%- countText %>dataset pairs'), '<% } else if( collection.collection_type === \"list:list\" ){ %>', _l('a list of <%- countText %>dataset lists'), '<% } %>', '
'], 'collection');\n\t\n\t return _.extend({}, FoldoutListItemView.prototype.templates, {\n\t warnings: warnings,\n\t titleBar: titleBarTemplate,\n\t subtitle: subtitleTemplate\n\t });\n\t }();\n\t\n\t //==============================================================================\n\t /** @class Read only view for DatasetCollectionElement.\n\t */\n\t var DCEListItemView = ListItemView.extend(\n\t /** @lends DCEListItemView.prototype */{\n\t\n\t /** add the DCE class to the list item */\n\t className: ListItemView.prototype.className + \" dataset-collection-element\",\n\t\n\t /** set up */\n\t initialize: function (attributes) {\n\t if (attributes.logger) {\n\t this.logger = this.model.logger = attributes.logger;\n\t }\n\t this.log('DCEListItemView.initialize:', attributes);\n\t ListItemView.prototype.initialize.call(this, attributes);\n\t },\n\t\n\t // ......................................................................... misc\n\t /** String representation */\n\t toString: function () {\n\t var modelString = this.model ? this.model + '' : '(no model)';\n\t return 'DCEListItemView(' + modelString + ')';\n\t }\n\t });\n\t\n\t // ............................................................................ TEMPLATES\n\t /** underscore templates */\n\t DCEListItemView.prototype.templates = function () {\n\t\n\t // use the element identifier here - since that will persist and the user will need it\n\t var titleBarTemplate = BASE_MVC.wrapTemplate(['', '
', '<%- element.element_identifier %> ', '
', '
', '
'], 'element');\n\t\n\t return _.extend({}, ListItemView.prototype.templates, {\n\t titleBar: titleBarTemplate\n\t });\n\t }();\n\t\n\t //==============================================================================\n\t /** @class Read only view for a DatasetCollectionElement that is also an DatasetAssociation\n\t * (a dataset contained in a dataset collection).\n\t */\n\t var DatasetDCEListItemView = DATASET_LI.DatasetListItemView.extend(\n\t /** @lends DatasetDCEListItemView.prototype */{\n\t\n\t className: DATASET_LI.DatasetListItemView.prototype.className + \" dataset-collection-element\",\n\t\n\t /** set up */\n\t initialize: function (attributes) {\n\t if (attributes.logger) {\n\t this.logger = this.model.logger = attributes.logger;\n\t }\n\t this.log('DatasetDCEListItemView.initialize:', attributes);\n\t DATASET_LI.DatasetListItemView.prototype.initialize.call(this, attributes);\n\t },\n\t\n\t /** In this override, only get details if in the ready state.\n\t * Note: fetch with no 'change' event triggering to prevent automatic rendering.\n\t */\n\t _fetchModelDetails: function () {\n\t var view = this;\n\t if (view.model.inReadyState() && !view.model.hasDetails()) {\n\t return view.model.fetch({ silent: true });\n\t }\n\t return jQuery.when();\n\t },\n\t\n\t // ......................................................................... misc\n\t /** String representation */\n\t toString: function () {\n\t var modelString = this.model ? this.model + '' : '(no model)';\n\t return 'DatasetDCEListItemView(' + modelString + ')';\n\t }\n\t });\n\t\n\t // ............................................................................ TEMPLATES\n\t /** underscore templates */\n\t DatasetDCEListItemView.prototype.templates = function () {\n\t\n\t // use the element identifier here and not the dataset name\n\t //TODO:?? can we steal the DCE titlebar?\n\t var titleBarTemplate = BASE_MVC.wrapTemplate(['', '
', '
', '<%- element.element_identifier %> ', '
', '
'], 'element');\n\t\n\t return _.extend({}, DATASET_LI.DatasetListItemView.prototype.templates, {\n\t titleBar: titleBarTemplate\n\t });\n\t }();\n\t\n\t //==============================================================================\n\t /** @class Read only view for a DatasetCollectionElement that is also a DatasetCollection\n\t * (a nested DC).\n\t */\n\t var NestedDCDCEListItemView = DCListItemView.extend(\n\t /** @lends NestedDCDCEListItemView.prototype */{\n\t\n\t className: DCListItemView.prototype.className + \" dataset-collection-element\",\n\t\n\t /** In this override, add the state as a class for use with state-based CSS */\n\t _swapNewRender: function ($newRender) {\n\t DCListItemView.prototype._swapNewRender.call(this, $newRender);\n\t var state = this.model.get('state') || 'ok';\n\t this.$el.addClass('state-' + state);\n\t return this.$el;\n\t },\n\t\n\t // ......................................................................... misc\n\t /** String representation */\n\t toString: function () {\n\t var modelString = this.model ? this.model + '' : '(no model)';\n\t return 'NestedDCDCEListItemView(' + modelString + ')';\n\t }\n\t });\n\t\n\t //==============================================================================\n\t return {\n\t DCListItemView: DCListItemView,\n\t DCEListItemView: DCEListItemView,\n\t DatasetDCEListItemView: DatasetDCEListItemView,\n\t NestedDCDCEListItemView: NestedDCDCEListItemView\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2), __webpack_require__(1), __webpack_require__(1)))\n\n/***/ },\n/* 41 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(_, Backbone, jQuery) {!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(81), __webpack_require__(6), __webpack_require__(5)], __WEBPACK_AMD_DEFINE_RESULT__ = function (DATASET_MODEL, BASE_MVC, _l) {\n\t 'use strict';\n\t\n\t //==============================================================================\n\t /*\n\t Notes:\n\t \n\t Terminology:\n\t DatasetCollection/DC : a container of datasets or nested DatasetCollections\n\t Element/DatasetCollectionElement/DCE : an item contained in a DatasetCollection\n\t HistoryDatasetCollectionAssociation/HDCA: a DatasetCollection contained in a history\n\t \n\t \n\t This all seems too complex unfortunately:\n\t \n\t - Terminology collision between DatasetCollections (DCs) and Backbone Collections.\n\t - In the DatasetCollections API JSON, DC Elements use a 'Has A' stucture to *contain*\n\t either a dataset or a nested DC. This would make the hierarchy much taller. I've\n\t decided to merge the contained JSON with the DC element json - making the 'has a'\n\t relation into an 'is a' relation. This seems simpler to me and allowed a lot of\n\t DRY in both models and views, but may make tracking or tracing within these models\n\t more difficult (since DatasetCollectionElements are now *also* DatasetAssociations\n\t or DatasetCollections (nested)). This also violates the rule of thumb about\n\t favoring aggregation over inheritance.\n\t - Currently, there are three DatasetCollection subclasses: List, Pair, and ListPaired.\n\t These each should a) be usable on their own, b) be usable in the context of\n\t nesting within a collection model (at least in the case of ListPaired), and\n\t c) be usable within the context of other container models (like History or\n\t LibraryFolder, etc.). I've tried to separate/extract classes in order to\n\t handle those three situations, but it's proven difficult to do in a simple,\n\t readable manner.\n\t - Ideally, histories and libraries would inherit from the same server models as\n\t dataset collections do since they are (in essence) dataset collections themselves -\n\t making the whole nested structure simpler. This would be a large, error-prone\n\t refactoring and migration.\n\t \n\t Many of the classes and heirarchy are meant as extension points so, while the\n\t relations and flow may be difficult to understand initially, they'll allow us to\n\t handle the growth or flux dataset collection in the future (w/o actually implementing\n\t any YAGNI).\n\t \n\t */\n\t //_________________________________________________________________________________________________ ELEMENTS\n\t /** @class mixin for Dataset collection elements.\n\t * When collection elements are passed from the API, the underlying element is\n\t * in a sub-object 'object' (IOW, a DCE representing an HDA will have HDA json in element.object).\n\t * This mixin uses the constructor and parse methods to merge that JSON with the DCE attribtues\n\t * effectively changing a DCE from a container to a subclass (has a --> is a).\n\t */\n\t\n\t var DatasetCollectionElementMixin = {\n\t\n\t /** default attributes used by elements in a dataset collection */\n\t defaults: {\n\t model_class: 'DatasetCollectionElement',\n\t element_identifier: null,\n\t element_index: null,\n\t element_type: null\n\t },\n\t\n\t /** merge the attributes of the sub-object 'object' into this model */\n\t _mergeObject: function (attributes) {\n\t // if we don't preserve and correct ids here, the element id becomes the object id\n\t // and collision in backbone's _byId will occur and only\n\t _.extend(attributes, attributes.object, { element_id: attributes.id });\n\t delete attributes.object;\n\t return attributes;\n\t },\n\t\n\t /** override to merge this.object into this */\n\t constructor: function (attributes, options) {\n\t // console.debug( '\\t DatasetCollectionElement.constructor:', attributes, options );\n\t attributes = this._mergeObject(attributes);\n\t this.idAttribute = 'element_id';\n\t Backbone.Model.apply(this, arguments);\n\t },\n\t\n\t /** when the model is fetched, merge this.object into this */\n\t parse: function (response, options) {\n\t var attributes = response;\n\t attributes = this._mergeObject(attributes);\n\t return attributes;\n\t }\n\t };\n\t\n\t /** @class Concrete class of Generic DatasetCollectionElement */\n\t var DatasetCollectionElement = Backbone.Model.extend(BASE_MVC.LoggableMixin).extend(DatasetCollectionElementMixin).extend({ _logNamespace: 'collections' });\n\t\n\t //==============================================================================\n\t /** @class Base/Abstract Backbone collection for Generic DCEs. */\n\t var DCECollection = Backbone.Collection.extend(BASE_MVC.LoggableMixin).extend(\n\t /** @lends DCECollection.prototype */{\n\t _logNamespace: 'collections',\n\t\n\t model: DatasetCollectionElement,\n\t\n\t /** String representation. */\n\t toString: function () {\n\t return ['DatasetCollectionElementCollection(', this.length, ')'].join('');\n\t }\n\t });\n\t\n\t //==============================================================================\n\t /** @class Backbone model for a dataset collection element that is a dataset (HDA).\n\t */\n\t var DatasetDCE = DATASET_MODEL.DatasetAssociation.extend(BASE_MVC.mixin(DatasetCollectionElementMixin,\n\t /** @lends DatasetDCE.prototype */{\n\t\n\t /** url fn */\n\t url: function () {\n\t // won't always be an hda\n\t if (!this.has('history_id')) {\n\t console.warn('no endpoint for non-hdas within a collection yet');\n\t // (a little silly since this api endpoint *also* points at hdas)\n\t return Galaxy.root + 'api/datasets';\n\t }\n\t return Galaxy.root + 'api/histories/' + this.get('history_id') + '/contents/' + this.get('id');\n\t },\n\t\n\t defaults: _.extend({}, DATASET_MODEL.DatasetAssociation.prototype.defaults, DatasetCollectionElementMixin.defaults),\n\t\n\t _downloadQueryParameters: function () {\n\t return '?to_ext=' + this.get('file_ext') + '&hdca_id=' + this.get('parent_hdca_id') + '&element_identifier=' + this.get('element_identifier');\n\t },\n\t\n\t // because all objects have constructors (as this hashmap would even if this next line wasn't present)\n\t // the constructor in hcontentMixin won't be attached by BASE_MVC.mixin to this model\n\t // - re-apply manually for now\n\t /** call the mixin constructor */\n\t constructor: function (attributes, options) {\n\t this.debug('\\t DatasetDCE.constructor:', attributes, options);\n\t //DATASET_MODEL.DatasetAssociation.prototype.constructor.call( this, attributes, options );\n\t DatasetCollectionElementMixin.constructor.call(this, attributes, options);\n\t },\n\t\n\t /** Does this model already contain detailed data (as opposed to just summary level data)? */\n\t hasDetails: function () {\n\t return this.elements && this.elements.length;\n\t },\n\t\n\t /** String representation. */\n\t toString: function () {\n\t var objStr = this.get('element_identifier');\n\t return ['DatasetDCE(', objStr, ')'].join('');\n\t }\n\t }));\n\t\n\t //==============================================================================\n\t /** @class DCECollection of DatasetDCE's (a list of datasets, a pair of datasets).\n\t */\n\t var DatasetDCECollection = DCECollection.extend(\n\t /** @lends DatasetDCECollection.prototype */{\n\t model: DatasetDCE,\n\t\n\t /** String representation. */\n\t toString: function () {\n\t return ['DatasetDCECollection(', this.length, ')'].join('');\n\t }\n\t });\n\t\n\t //_________________________________________________________________________________________________ COLLECTIONS\n\t /** @class Backbone model for Dataset Collections.\n\t * The DC API returns an array of JSON objects under the attribute elements.\n\t * This model:\n\t * - removes that array/attribute ('elements') from the model,\n\t * - creates a bbone collection (of the class defined in the 'collectionClass' attribute),\n\t * - passes that json onto the bbone collection\n\t * - caches the bbone collection in this.elements\n\t */\n\t var DatasetCollection = Backbone.Model.extend(BASE_MVC.LoggableMixin).extend(BASE_MVC.SearchableModelMixin).extend( /** @lends DatasetCollection.prototype */{\n\t _logNamespace: 'collections',\n\t\n\t /** default attributes for a model */\n\t defaults: {\n\t /* 'list', 'paired', or 'list:paired' */\n\t collection_type: null,\n\t //??\n\t deleted: false\n\t },\n\t\n\t /** Which class to use for elements */\n\t collectionClass: DCECollection,\n\t\n\t /** set up: create elements instance var and (on changes to elements) update them */\n\t initialize: function (model, options) {\n\t this.debug(this + '(DatasetCollection).initialize:', model, options, this);\n\t this.elements = this._createElementsModel();\n\t this.on('change:elements', function () {\n\t this.log('change:elements');\n\t //TODO: prob. better to update the collection instead of re-creating it\n\t this.elements = this._createElementsModel();\n\t });\n\t },\n\t\n\t /** move elements model attribute to full collection */\n\t _createElementsModel: function () {\n\t this.debug(this + '._createElementsModel', this.collectionClass, this.get('elements'), this.elements);\n\t //TODO: same patterns as DatasetCollectionElement _createObjectModel - refactor to BASE_MVC.hasSubModel?\n\t var elements = this.get('elements') || [];\n\t this.unset('elements', { silent: true });\n\t var self = this;\n\t _.each(elements, function (element, index) {\n\t _.extend(element, { \"parent_hdca_id\": self.get(\"id\") });\n\t });\n\t this.elements = new this.collectionClass(elements);\n\t //this.debug( 'collectionClass:', this.collectionClass + '', this.elements );\n\t return this.elements;\n\t },\n\t\n\t // ........................................................................ common queries\n\t /** pass the elements back within the model json when this is serialized */\n\t toJSON: function () {\n\t var json = Backbone.Model.prototype.toJSON.call(this);\n\t if (this.elements) {\n\t json.elements = this.elements.toJSON();\n\t }\n\t return json;\n\t },\n\t\n\t /** Is this collection in a 'ready' state no processing (for the collection) is left\n\t * to do on the server.\n\t */\n\t inReadyState: function () {\n\t var populated = this.get('populated');\n\t return this.isDeletedOrPurged() || populated;\n\t },\n\t\n\t //TODO:?? the following are the same interface as DatasetAssociation - can we combine?\n\t /** Does the DC contain any elements yet? Is a fetch() required? */\n\t hasDetails: function () {\n\t return this.elements.length !== 0;\n\t },\n\t\n\t /** Given the filters, what models in this.elements would be returned? */\n\t getVisibleContents: function (filters) {\n\t // filters unused for now\n\t return this.elements;\n\t },\n\t\n\t // ........................................................................ ajax\n\t /** override to use actual Dates objects for create/update times */\n\t parse: function (response, options) {\n\t var parsed = Backbone.Model.prototype.parse.call(this, response, options);\n\t if (parsed.create_time) {\n\t parsed.create_time = new Date(parsed.create_time);\n\t }\n\t if (parsed.update_time) {\n\t parsed.update_time = new Date(parsed.update_time);\n\t }\n\t return parsed;\n\t },\n\t\n\t /** save this dataset, _Mark_ing it as deleted (just a flag) */\n\t 'delete': function (options) {\n\t if (this.get('deleted')) {\n\t return jQuery.when();\n\t }\n\t return this.save({ deleted: true }, options);\n\t },\n\t /** save this dataset, _Mark_ing it as undeleted */\n\t undelete: function (options) {\n\t if (!this.get('deleted') || this.get('purged')) {\n\t return jQuery.when();\n\t }\n\t return this.save({ deleted: false }, options);\n\t },\n\t\n\t /** Is this collection deleted or purged? */\n\t isDeletedOrPurged: function () {\n\t return this.get('deleted') || this.get('purged');\n\t },\n\t\n\t // ........................................................................ searchable\n\t /** searchable attributes for collections */\n\t searchAttributes: ['name', 'tags'],\n\t\n\t // ........................................................................ misc\n\t /** String representation */\n\t toString: function () {\n\t var idAndName = [this.get('id'), this.get('name') || this.get('element_identifier')];\n\t return 'DatasetCollection(' + idAndName.join(',') + ')';\n\t }\n\t });\n\t\n\t //==============================================================================\n\t /** Model for a DatasetCollection containing datasets (non-nested).\n\t */\n\t var ListDatasetCollection = DatasetCollection.extend(\n\t /** @lends ListDatasetCollection.prototype */{\n\t\n\t /** override since we know the collection will only contain datasets */\n\t collectionClass: DatasetDCECollection,\n\t\n\t /** String representation. */\n\t toString: function () {\n\t return 'List' + DatasetCollection.prototype.toString.call(this);\n\t }\n\t });\n\t\n\t //==============================================================================\n\t /** Model for a DatasetCollection containing fwd/rev datasets (a list of 2).\n\t */\n\t var PairDatasetCollection = ListDatasetCollection.extend(\n\t /** @lends PairDatasetCollection.prototype */{\n\t\n\t /** String representation. */\n\t toString: function () {\n\t return 'Pair' + DatasetCollection.prototype.toString.call(this);\n\t }\n\t });\n\t\n\t //_________________________________________________________________________________________________ NESTED COLLECTIONS\n\t // this is where things get weird, man. Weird.\n\t //TODO: it might be possible to compact all the following...I think.\n\t //==============================================================================\n\t /** @class Backbone model for a Generic DatasetCollectionElement that is also a DatasetCollection\n\t * (a nested collection). Currently only list:paired.\n\t */\n\t var NestedDCDCE = DatasetCollection.extend(BASE_MVC.mixin(DatasetCollectionElementMixin,\n\t /** @lends NestedDCDCE.prototype */{\n\t\n\t // because all objects have constructors (as this hashmap would even if this next line wasn't present)\n\t // the constructor in hcontentMixin won't be attached by BASE_MVC.mixin to this model\n\t // - re-apply manually it now\n\t /** call the mixin constructor */\n\t constructor: function (attributes, options) {\n\t this.debug('\\t NestedDCDCE.constructor:', attributes, options);\n\t DatasetCollectionElementMixin.constructor.call(this, attributes, options);\n\t },\n\t\n\t /** String representation. */\n\t toString: function () {\n\t var objStr = this.object ? '' + this.object : this.get('element_identifier');\n\t return ['NestedDCDCE(', objStr, ')'].join('');\n\t }\n\t }));\n\t\n\t //==============================================================================\n\t /** @class Backbone collection containing Generic NestedDCDCE's (nested dataset collections).\n\t */\n\t var NestedDCDCECollection = DCECollection.extend(\n\t /** @lends NestedDCDCECollection.prototype */{\n\t\n\t /** This is a collection of nested collections */\n\t model: NestedDCDCE,\n\t\n\t /** String representation. */\n\t toString: function () {\n\t return ['NestedDCDCECollection(', this.length, ')'].join('');\n\t }\n\t });\n\t\n\t //==============================================================================\n\t /** @class Backbone model for a paired dataset collection within a list:paired dataset collection.\n\t */\n\t var NestedPairDCDCE = PairDatasetCollection.extend(BASE_MVC.mixin(DatasetCollectionElementMixin,\n\t /** @lends NestedPairDCDCE.prototype */{\n\t //TODO:?? possibly rename to NestedDatasetCollection?\n\t\n\t // because all objects have constructors (as this hashmap would even if this next line wasn't present)\n\t // the constructor in hcontentMixin won't be attached by BASE_MVC.mixin to this model\n\t // - re-apply manually it now\n\t /** This is both a collection and a collection element - call the constructor */\n\t constructor: function (attributes, options) {\n\t this.debug('\\t NestedPairDCDCE.constructor:', attributes, options);\n\t //DatasetCollection.constructor.call( this, attributes, options );\n\t DatasetCollectionElementMixin.constructor.call(this, attributes, options);\n\t },\n\t\n\t /** String representation. */\n\t toString: function () {\n\t var objStr = this.object ? '' + this.object : this.get('element_identifier');\n\t return ['NestedPairDCDCE(', objStr, ')'].join('');\n\t }\n\t }));\n\t\n\t //==============================================================================\n\t /** @class Backbone collection for a backbone collection containing paired dataset collections.\n\t */\n\t var NestedPairDCDCECollection = NestedDCDCECollection.extend(\n\t /** @lends PairDCDCECollection.prototype */{\n\t\n\t /** We know this collection is composed of only nested pair collections */\n\t model: NestedPairDCDCE,\n\t\n\t /** String representation. */\n\t toString: function () {\n\t return ['NestedPairDCDCECollection(', this.length, ')'].join('');\n\t }\n\t });\n\t\n\t //==============================================================================\n\t /** @class Backbone Model for a DatasetCollection (list) that contains DatasetCollections (pairs).\n\t */\n\t var ListPairedDatasetCollection = DatasetCollection.extend(\n\t /** @lends ListPairedDatasetCollection.prototype */{\n\t\n\t /** list:paired is the only collection that itself contains collections */\n\t collectionClass: NestedPairDCDCECollection,\n\t\n\t /** String representation. */\n\t toString: function () {\n\t return ['ListPairedDatasetCollection(', this.get('name'), ')'].join('');\n\t }\n\t });\n\t\n\t //==============================================================================\n\t /** @class Backbone model for a list dataset collection within a list:list dataset collection. */\n\t var NestedListDCDCE = ListDatasetCollection.extend(BASE_MVC.mixin(DatasetCollectionElementMixin,\n\t /** @lends NestedListDCDCE.prototype */{\n\t\n\t /** This is both a collection and a collection element - call the constructor */\n\t constructor: function (attributes, options) {\n\t this.debug('\\t NestedListDCDCE.constructor:', attributes, options);\n\t DatasetCollectionElementMixin.constructor.call(this, attributes, options);\n\t },\n\t\n\t /** String representation. */\n\t toString: function () {\n\t var objStr = this.object ? '' + this.object : this.get('element_identifier');\n\t return ['NestedListDCDCE(', objStr, ')'].join('');\n\t }\n\t }));\n\t\n\t //==============================================================================\n\t /** @class Backbone collection containing list dataset collections. */\n\t var NestedListDCDCECollection = NestedDCDCECollection.extend({\n\t\n\t /** We know this collection is composed of only nested pair collections */\n\t model: NestedListDCDCE,\n\t\n\t /** String representation. */\n\t toString: function () {\n\t return ['NestedListDCDCECollection(', this.length, ')'].join('');\n\t }\n\t });\n\t\n\t //==============================================================================\n\t /** @class Backbone Model for a DatasetCollection (list) that contains other lists. */\n\t var ListOfListsDatasetCollection = DatasetCollection.extend({\n\t\n\t /** list:paired is the only collection that itself contains collections */\n\t collectionClass: NestedListDCDCECollection,\n\t\n\t /** String representation. */\n\t toString: function () {\n\t return ['ListOfListsDatasetCollection(', this.get('name'), ')'].join('');\n\t }\n\t });\n\t\n\t //==============================================================================\n\t return {\n\t ListDatasetCollection: ListDatasetCollection,\n\t PairDatasetCollection: PairDatasetCollection,\n\t ListPairedDatasetCollection: ListPairedDatasetCollection,\n\t ListOfListsDatasetCollection: ListOfListsDatasetCollection\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2), __webpack_require__(3), __webpack_require__(1)))\n\n/***/ },\n/* 42 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, _, $, jQuery) {\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(50), __webpack_require__(11), __webpack_require__(6), __webpack_require__(78), __webpack_require__(8), __webpack_require__(96), __webpack_require__(5), __webpack_require__(93)], __WEBPACK_AMD_DEFINE_RESULT__ = function (HDCA, STATES, BASE_MVC, baseCreator, UI_MODAL, naturalSort, _l) {\n\t\n\t 'use strict';\n\t\n\t var logNamespace = 'collections';\n\t\n\t /*==============================================================================\n\t TODO:\n\t use proper Element model and not just json\n\t straighten out createFn, collection.createHDCA\n\t possibly stop using modals for this\n\t It would be neat to do a drag and drop\n\t \n\t ==============================================================================*/\n\t /** A view for both DatasetDCEs and NestedDCDCEs\n\t * (things that implement collection-model:DatasetCollectionElementMixin)\n\t */\n\t var DatasetCollectionElementView = Backbone.View.extend(BASE_MVC.LoggableMixin).extend({\n\t _logNamespace: logNamespace,\n\t\n\t //TODO: use proper class (DatasetDCE or NestedDCDCE (or the union of both))\n\t tagName: 'li',\n\t className: 'collection-element',\n\t\n\t initialize: function (attributes) {\n\t this.element = attributes.element || {};\n\t this.selected = attributes.selected || false;\n\t },\n\t\n\t render: function () {\n\t this.$el.attr('data-element-id', this.element.id).attr('draggable', true).html(this.template({ element: this.element }));\n\t if (this.selected) {\n\t this.$el.addClass('selected');\n\t }\n\t return this;\n\t },\n\t\n\t //TODO: lots of unused space in the element - possibly load details and display them horiz.\n\t template: _.template(['', '<%- element.name %>', ' ', '', _l('Discard'), ' '].join('')),\n\t\n\t /** select this element and pub */\n\t select: function (toggle) {\n\t this.$el.toggleClass('selected', toggle);\n\t this.trigger('select', {\n\t source: this,\n\t selected: this.$el.hasClass('selected')\n\t });\n\t },\n\t\n\t /** animate the removal of this element and pub */\n\t discard: function () {\n\t var view = this,\n\t parentWidth = this.$el.parent().width();\n\t this.$el.animate({ 'margin-right': parentWidth }, 'fast', function () {\n\t view.trigger('discard', {\n\t source: view\n\t });\n\t view.destroy();\n\t });\n\t },\n\t\n\t /** remove the DOM and any listeners */\n\t destroy: function () {\n\t this.off();\n\t this.$el.remove();\n\t },\n\t\n\t events: {\n\t 'click': '_click',\n\t 'click .name': '_clickName',\n\t 'click .discard': '_clickDiscard',\n\t\n\t 'dragstart': '_dragstart',\n\t 'dragend': '_dragend',\n\t 'dragover': '_sendToParent',\n\t 'drop': '_sendToParent'\n\t },\n\t\n\t /** select when the li is clicked */\n\t _click: function (ev) {\n\t ev.stopPropagation();\n\t this.select(ev);\n\t },\n\t\n\t /** rename a pair when the name is clicked */\n\t _clickName: function (ev) {\n\t ev.stopPropagation();\n\t ev.preventDefault();\n\t var promptString = [_l('Enter a new name for the element'), ':\\n(', _l('Note that changing the name here will not rename the dataset'), ')'].join(''),\n\t response = prompt(_l('Enter a new name for the element') + ':', this.element.name);\n\t if (response) {\n\t this.element.name = response;\n\t this.render();\n\t }\n\t //TODO: cancelling with ESC leads to closure of the creator...\n\t },\n\t\n\t /** discard when the discard button is clicked */\n\t _clickDiscard: function (ev) {\n\t ev.stopPropagation();\n\t this.discard();\n\t },\n\t\n\t /** dragging pairs for re-ordering */\n\t _dragstart: function (ev) {\n\t if (ev.originalEvent) {\n\t ev = ev.originalEvent;\n\t }\n\t ev.dataTransfer.effectAllowed = 'move';\n\t ev.dataTransfer.setData('text/plain', JSON.stringify(this.element));\n\t\n\t this.$el.addClass('dragging');\n\t this.$el.parent().trigger('collection-element.dragstart', [this]);\n\t },\n\t\n\t /** dragging for re-ordering */\n\t _dragend: function (ev) {\n\t this.$el.removeClass('dragging');\n\t this.$el.parent().trigger('collection-element.dragend', [this]);\n\t },\n\t\n\t /** manually bubble up an event to the parent/container */\n\t _sendToParent: function (ev) {\n\t this.$el.parent().trigger(ev);\n\t },\n\t\n\t /** string rep */\n\t toString: function () {\n\t return 'DatasetCollectionElementView()';\n\t }\n\t });\n\t\n\t // ============================================================================\n\t /** An interface for building collections.\n\t */\n\t var ListCollectionCreator = Backbone.View.extend(BASE_MVC.LoggableMixin).extend(baseCreator.CollectionCreatorMixin).extend({\n\t _logNamespace: logNamespace,\n\t\n\t /** the class used to display individual elements */\n\t elementViewClass: DatasetCollectionElementView,\n\t /** the class this creator will create and save */\n\t collectionClass: HDCA.HistoryListDatasetCollection,\n\t className: 'list-collection-creator collection-creator flex-row-container',\n\t\n\t /** minimum number of valid elements to start with in order to build a collection of this type */\n\t minElements: 1,\n\t\n\t defaultAttributes: {\n\t //TODO: remove - use new collectionClass().save()\n\t /** takes elements and creates the proper collection - returns a promise */\n\t creationFn: function () {\n\t throw new TypeError('no creation fn for creator');\n\t },\n\t /** fn to call when the collection is created (scoped to this) */\n\t oncreate: function () {},\n\t /** fn to call when the cancel button is clicked (scoped to this) - if falsy, no btn is displayed */\n\t oncancel: function () {},\n\t /** distance from list edge to begin autoscrolling list */\n\t autoscrollDist: 24,\n\t /** Color passed to hoverhighlight */\n\t highlightClr: 'rgba( 64, 255, 255, 1.0 )'\n\t },\n\t\n\t footerSettings: {\n\t '.hide-originals': 'hideOriginals'\n\t },\n\t\n\t /** set up initial options, instance vars, behaviors */\n\t initialize: function (attributes) {\n\t this.metric('ListCollectionCreator.initialize', attributes);\n\t var creator = this;\n\t _.each(this.defaultAttributes, function (value, key) {\n\t value = attributes[key] || value;\n\t creator[key] = value;\n\t });\n\t\n\t /** unordered, original list - cache to allow reversal */\n\t creator.initialElements = attributes.elements || [];\n\t\n\t this._setUpCommonSettings(attributes);\n\t this._instanceSetUp();\n\t this._elementsSetUp();\n\t this._setUpBehaviors();\n\t },\n\t\n\t /** set up instance vars */\n\t _instanceSetUp: function () {\n\t /** Ids of elements that have been selected by the user - to preserve over renders */\n\t this.selectedIds = {};\n\t /** DOM elements currently being dragged */\n\t this.$dragging = null;\n\t /** Used for blocking UI events during ajax/operations (don't post twice) */\n\t this.blocking = false;\n\t },\n\t\n\t // ------------------------------------------------------------------------ process raw list\n\t /** set up main data */\n\t _elementsSetUp: function () {\n\t //this.debug( '-- _dataSetUp' );\n\t /** a list of invalid elements and the reasons they aren't valid */\n\t this.invalidElements = [];\n\t //TODO: handle fundamental problem of syncing DOM, views, and list here\n\t /** data for list in progress */\n\t this.workingElements = [];\n\t /** views for workingElements */\n\t this.elementViews = [];\n\t\n\t // copy initial list, sort, add ids if needed\n\t this.workingElements = this.initialElements.slice(0);\n\t this._ensureElementIds();\n\t this._validateElements();\n\t this._mangleDuplicateNames();\n\t this._sortElements();\n\t },\n\t\n\t /** add ids to dataset objs in initial list if none */\n\t _ensureElementIds: function () {\n\t this.workingElements.forEach(function (element) {\n\t if (!element.hasOwnProperty('id')) {\n\t element.id = _.uniqueId();\n\t }\n\t });\n\t return this.workingElements;\n\t },\n\t\n\t /** separate working list into valid and invalid elements for this collection */\n\t _validateElements: function () {\n\t var creator = this,\n\t existingNames = {};\n\t creator.invalidElements = [];\n\t\n\t this.workingElements = this.workingElements.filter(function (element) {\n\t var problem = creator._isElementInvalid(element);\n\t if (problem) {\n\t creator.invalidElements.push({\n\t element: element,\n\t text: problem\n\t });\n\t }\n\t return !problem;\n\t });\n\t return this.workingElements;\n\t },\n\t\n\t /** describe what is wrong with a particular element if anything */\n\t _isElementInvalid: function (element) {\n\t if (element.history_content_type !== 'dataset') {\n\t return _l(\"is not a dataset\");\n\t }\n\t var validState = element.state === STATES.OK || _.contains(STATES.NOT_READY_STATES, element.state);\n\t if (!validState) {\n\t return _l(\"has errored, is paused, or is not accessible\");\n\t }\n\t if (element.deleted || element.purged) {\n\t return _l(\"has been deleted or purged\");\n\t }\n\t return null;\n\t },\n\t\n\t /** mangle duplicate names using a mac-like '(counter)' addition to any duplicates */\n\t _mangleDuplicateNames: function () {\n\t var SAFETY = 900,\n\t counter = 1,\n\t existingNames = {};\n\t this.workingElements.forEach(function (element) {\n\t var currName = element.name;\n\t while (existingNames.hasOwnProperty(currName)) {\n\t currName = element.name + ' (' + counter + ')';\n\t counter += 1;\n\t if (counter >= SAFETY) {\n\t throw new Error('Safety hit in while loop - thats impressive');\n\t }\n\t }\n\t element.name = currName;\n\t existingNames[element.name] = true;\n\t });\n\t },\n\t\n\t /** sort a list of elements */\n\t _sortElements: function (list) {\n\t // // currently only natural sort by name\n\t // this.workingElements.sort( function( a, b ){ return naturalSort( a.name, b.name ); });\n\t // return this.workingElements;\n\t },\n\t\n\t // ------------------------------------------------------------------------ rendering\n\t // templates : ListCollectionCreator.templates,\n\t /** render the entire interface */\n\t render: function (speed, callback) {\n\t //this.debug( '-- _render' );\n\t if (this.workingElements.length < this.minElements) {\n\t return this._renderInvalid(speed, callback);\n\t }\n\t\n\t this.$el.empty().html(this.templates.main());\n\t this._renderHeader(speed);\n\t this._renderMiddle(speed);\n\t this._renderFooter(speed);\n\t this._addPluginComponents();\n\t this.$('.collection-name').focus();\n\t this.trigger('rendered', this);\n\t return this;\n\t },\n\t\n\t /** render a simplified interface aimed at telling the user why they can't move forward */\n\t _renderInvalid: function (speed, callback) {\n\t //this.debug( '-- _render' );\n\t this.$el.empty().html(this.templates.invalidInitial({\n\t problems: this.invalidElements,\n\t elements: this.workingElements\n\t }));\n\t if (typeof this.oncancel === 'function') {\n\t this.$('.cancel-create.btn').show();\n\t }\n\t this.trigger('rendered', this);\n\t return this;\n\t },\n\t\n\t /** render the header section */\n\t _renderHeader: function (speed, callback) {\n\t var $header = this.$('.header').empty().html(this.templates.header()).find('.help-content').prepend($(this.templates.helpContent()));\n\t //TODO: should only show once despite calling _renderHeader again\n\t if (this.invalidElements.length) {\n\t this._invalidElementsAlert();\n\t }\n\t return $header;\n\t },\n\t\n\t /** render the middle including the elements */\n\t _renderMiddle: function (speed, callback) {\n\t var $middle = this.$('.middle').empty().html(this.templates.middle());\n\t this._renderList(speed);\n\t return $middle;\n\t },\n\t\n\t /** add any jQuery/bootstrap/custom plugins to elements rendered */\n\t _addPluginComponents: function () {\n\t this.$('.help-content i').hoverhighlight('.collection-creator', this.highlightClr);\n\t },\n\t\n\t /** build and show an alert describing any elements that could not be included due to problems */\n\t _invalidElementsAlert: function () {\n\t this._showAlert(this.templates.invalidElements({ problems: this.invalidElements }), 'alert-warning');\n\t },\n\t\n\t _disableNameAndCreate: function (disable) {\n\t disable = !_.isUndefined(disable) ? disable : true;\n\t if (disable) {\n\t this.$('.collection-name').prop('disabled', true);\n\t this.$('.create-collection').toggleClass('disabled', true);\n\t // } else {\n\t // this.$( '.collection-name' ).prop( 'disabled', false );\n\t // this.$( '.create-collection' ).removeClass( 'disable' );\n\t }\n\t },\n\t\n\t // ------------------------------------------------------------------------ rendering elements\n\t /** conv. to the main list display DOM */\n\t $list: function () {\n\t return this.$('.collection-elements');\n\t },\n\t\n\t /** show or hide the clear selected control based on the num of selected elements */\n\t _renderClearSelected: function () {\n\t if (_.size(this.selectedIds)) {\n\t this.$('.collection-elements-controls > .clear-selected').show();\n\t } else {\n\t this.$('.collection-elements-controls > .clear-selected').hide();\n\t }\n\t },\n\t\n\t /** render the elements in order (or a warning if no elements found) */\n\t _renderList: function (speed, callback) {\n\t //this.debug( '-- _renderList' );\n\t var creator = this,\n\t $tmp = jQuery('
'),\n\t $list = creator.$list();\n\t\n\t _.each(this.elementViews, function (view) {\n\t view.destroy();\n\t creator.removeElementView(view);\n\t });\n\t\n\t // if( !this.workingElements.length ){\n\t // this._renderNoValidElements();\n\t // return;\n\t // }\n\t\n\t creator.workingElements.forEach(function (element) {\n\t var elementView = creator._createElementView(element);\n\t $tmp.append(elementView.$el);\n\t });\n\t\n\t creator._renderClearSelected();\n\t $list.empty().append($tmp.children());\n\t _.invoke(creator.elementViews, 'render');\n\t\n\t if ($list.height() > $list.css('max-height')) {\n\t $list.css('border-width', '1px 0px 1px 0px');\n\t } else {\n\t $list.css('border-width', '0px');\n\t }\n\t },\n\t\n\t /** create an element view, cache in elementViews, set up listeners, and return */\n\t _createElementView: function (element) {\n\t var elementView = new this.elementViewClass({\n\t //TODO: use non-generic class or not all\n\t // model : COLLECTION.DatasetDCE( element )\n\t element: element,\n\t selected: _.has(this.selectedIds, element.id)\n\t });\n\t this.elementViews.push(elementView);\n\t this._listenToElementView(elementView);\n\t return elementView;\n\t },\n\t\n\t /** listen to any element events */\n\t _listenToElementView: function (view) {\n\t var creator = this;\n\t creator.listenTo(view, {\n\t select: function (data) {\n\t var element = data.source.element;\n\t if (data.selected) {\n\t creator.selectedIds[element.id] = true;\n\t } else {\n\t delete creator.selectedIds[element.id];\n\t }\n\t creator.trigger('elements:select', data);\n\t },\n\t discard: function (data) {\n\t creator.trigger('elements:discard', data);\n\t }\n\t });\n\t },\n\t\n\t /** add a new element view based on the json in element */\n\t addElementView: function (element) {\n\t //TODO: workingElements is sorted, add element in appropo index\n\t // add element, sort elements, find element index\n\t // var view = this._createElementView( element );\n\t // return view;\n\t },\n\t\n\t /** stop listening to view and remove from caches */\n\t removeElementView: function (view) {\n\t delete this.selectedIds[view.element.id];\n\t this._renderClearSelected();\n\t\n\t this.elementViews = _.without(this.elementViews, view);\n\t this.stopListening(view);\n\t },\n\t\n\t /** render a message in the list that no elements remain to create a collection */\n\t _renderNoElementsLeft: function () {\n\t this._disableNameAndCreate(true);\n\t this.$('.collection-elements').append(this.templates.noElementsLeft());\n\t },\n\t\n\t // /** render a message in the list that no valid elements were found to create a collection */\n\t // _renderNoValidElements : function(){\n\t // this._disableNameAndCreate( true );\n\t // this.$( '.collection-elements' ).append( this.templates.noValidElements() );\n\t // },\n\t\n\t // ------------------------------------------------------------------------ API\n\t /** convert element into JSON compatible with the collections API */\n\t _elementToJSON: function (element) {\n\t // return element.toJSON();\n\t return element;\n\t },\n\t\n\t /** create the collection via the API\n\t * @returns {jQuery.xhr Object} the jquery ajax request\n\t */\n\t createList: function (name) {\n\t if (!this.workingElements.length) {\n\t var message = _l('No valid elements for final list') + '. ';\n\t message += '' + _l('Cancel') + ' ';\n\t message += _l('or');\n\t message += ' ' + _l('start over') + ' .';\n\t this._showAlert(message);\n\t return;\n\t }\n\t\n\t var creator = this,\n\t elements = this.workingElements.map(function (element) {\n\t return creator._elementToJSON(element);\n\t });\n\t\n\t creator.blocking = true;\n\t return creator.creationFn(elements, name, creator.hideOriginals).always(function () {\n\t creator.blocking = false;\n\t }).fail(function (xhr, status, message) {\n\t creator.trigger('error', {\n\t xhr: xhr,\n\t status: status,\n\t message: _l('An error occurred while creating this collection')\n\t });\n\t }).done(function (response, message, xhr) {\n\t creator.trigger('collection:created', response, message, xhr);\n\t creator.metric('collection:created', response);\n\t if (typeof creator.oncreate === 'function') {\n\t creator.oncreate.call(this, response, message, xhr);\n\t }\n\t });\n\t },\n\t\n\t // ------------------------------------------------------------------------ events\n\t /** set up event handlers on self */\n\t _setUpBehaviors: function () {\n\t this.on('error', this._errorHandler);\n\t\n\t this.once('rendered', function () {\n\t this.trigger('rendered:initial', this);\n\t });\n\t\n\t this.on('elements:select', function (data) {\n\t this._renderClearSelected();\n\t });\n\t\n\t this.on('elements:discard', function (data) {\n\t var element = data.source.element;\n\t this.removeElementView(data.source);\n\t\n\t this.workingElements = _.without(this.workingElements, element);\n\t if (!this.workingElements.length) {\n\t this._renderNoElementsLeft();\n\t }\n\t });\n\t\n\t //this.on( 'all', function(){\n\t // this.info( arguments );\n\t //});\n\t return this;\n\t },\n\t\n\t /** handle errors with feedback and details to the user (if available) */\n\t _errorHandler: function (data) {\n\t this.error(data);\n\t\n\t var creator = this;\n\t content = data.message || _l('An error occurred');\n\t if (data.xhr) {\n\t var xhr = data.xhr,\n\t message = data.message;\n\t if (xhr.readyState === 0 && xhr.status === 0) {\n\t content += ': ' + _l('Galaxy could not be reached and may be updating.') + _l(' Try again in a few minutes.');\n\t } else if (xhr.responseJSON) {\n\t content += ':' + JSON.stringify(xhr.responseJSON) + ' ';\n\t } else {\n\t content += ': ' + message;\n\t }\n\t }\n\t creator._showAlert(content, 'alert-danger');\n\t },\n\t\n\t events: {\n\t // header\n\t 'click .more-help': '_clickMoreHelp',\n\t 'click .less-help': '_clickLessHelp',\n\t 'click .main-help': '_toggleHelp',\n\t 'click .header .alert button': '_hideAlert',\n\t\n\t 'click .reset': 'reset',\n\t 'click .clear-selected': 'clearSelectedElements',\n\t\n\t // elements - selection\n\t 'click .collection-elements': 'clearSelectedElements',\n\t\n\t // elements - drop target\n\t // 'dragenter .collection-elements': '_dragenterElements',\n\t // 'dragleave .collection-elements': '_dragleaveElements',\n\t 'dragover .collection-elements': '_dragoverElements',\n\t 'drop .collection-elements': '_dropElements',\n\t\n\t // these bubble up from the elements as custom events\n\t 'collection-element.dragstart .collection-elements': '_elementDragstart',\n\t 'collection-element.dragend .collection-elements': '_elementDragend',\n\t\n\t // footer\n\t 'change .collection-name': '_changeName',\n\t 'keydown .collection-name': '_nameCheckForEnter',\n\t 'change .hide-originals': '_changeHideOriginals',\n\t 'click .cancel-create': '_cancelCreate',\n\t 'click .create-collection': '_clickCreate' //,\n\t },\n\t\n\t // ........................................................................ elements\n\t /** reset all data to the initial state */\n\t reset: function () {\n\t this._instanceSetUp();\n\t this._elementsSetUp();\n\t this.render();\n\t },\n\t\n\t /** deselect all elements */\n\t clearSelectedElements: function (ev) {\n\t this.$('.collection-elements .collection-element').removeClass('selected');\n\t this.$('.collection-elements-controls > .clear-selected').hide();\n\t },\n\t\n\t //_dragenterElements : function( ev ){\n\t // //this.debug( '_dragenterElements:', ev );\n\t //},\n\t //TODO: if selected are dragged out of the list area - remove the placeholder - cuz it won't work anyway\n\t // _dragleaveElements : function( ev ){\n\t // //this.debug( '_dragleaveElements:', ev );\n\t // },\n\t\n\t /** track the mouse drag over the list adding a placeholder to show where the drop would occur */\n\t _dragoverElements: function (ev) {\n\t //this.debug( '_dragoverElements:', ev );\n\t ev.preventDefault();\n\t\n\t var $list = this.$list();\n\t this._checkForAutoscroll($list, ev.originalEvent.clientY);\n\t var $nearest = this._getNearestElement(ev.originalEvent.clientY);\n\t\n\t //TODO: no need to re-create - move instead\n\t this.$('.element-drop-placeholder').remove();\n\t var $placeholder = $('
');\n\t if (!$nearest.length) {\n\t $list.append($placeholder);\n\t } else {\n\t $nearest.before($placeholder);\n\t }\n\t },\n\t\n\t /** If the mouse is near enough to the list's top or bottom, scroll the list */\n\t _checkForAutoscroll: function ($element, y) {\n\t var AUTOSCROLL_SPEED = 2,\n\t offset = $element.offset(),\n\t scrollTop = $element.scrollTop(),\n\t upperDist = y - offset.top,\n\t lowerDist = offset.top + $element.outerHeight() - y;\n\t if (upperDist >= 0 && upperDist < this.autoscrollDist) {\n\t $element.scrollTop(scrollTop - AUTOSCROLL_SPEED);\n\t } else if (lowerDist >= 0 && lowerDist < this.autoscrollDist) {\n\t $element.scrollTop(scrollTop + AUTOSCROLL_SPEED);\n\t }\n\t },\n\t\n\t /** get the nearest element based on the mouse's Y coordinate.\n\t * If the y is at the end of the list, return an empty jQuery object.\n\t */\n\t _getNearestElement: function (y) {\n\t var WIGGLE = 4,\n\t lis = this.$('.collection-elements li.collection-element').toArray();\n\t for (var i = 0; i < lis.length; i++) {\n\t var $li = $(lis[i]),\n\t top = $li.offset().top,\n\t halfHeight = Math.floor($li.outerHeight() / 2) + WIGGLE;\n\t if (top + halfHeight > y && top - halfHeight < y) {\n\t return $li;\n\t }\n\t }\n\t return $();\n\t },\n\t\n\t /** drop (dragged/selected elements) onto the list, re-ordering the internal list */\n\t _dropElements: function (ev) {\n\t if (ev.originalEvent) {\n\t ev = ev.originalEvent;\n\t }\n\t // both required for firefox\n\t ev.preventDefault();\n\t ev.dataTransfer.dropEffect = 'move';\n\t\n\t // insert before the nearest element or after the last.\n\t var $nearest = this._getNearestElement(ev.clientY);\n\t if ($nearest.length) {\n\t this.$dragging.insertBefore($nearest);\n\t } else {\n\t // no nearest before - insert after last element\n\t this.$dragging.insertAfter(this.$('.collection-elements .collection-element').last());\n\t }\n\t // resync the creator's list based on the new DOM order\n\t this._syncOrderToDom();\n\t return false;\n\t },\n\t\n\t /** resync the creator's list of elements based on the DOM order */\n\t _syncOrderToDom: function () {\n\t var creator = this,\n\t newElements = [];\n\t //TODO: doesn't seem wise to use the dom to store these - can't we sync another way?\n\t this.$('.collection-elements .collection-element').each(function () {\n\t var id = $(this).attr('data-element-id'),\n\t element = _.findWhere(creator.workingElements, { id: id });\n\t if (element) {\n\t newElements.push(element);\n\t } else {\n\t console.error('missing element: ', id);\n\t }\n\t });\n\t this.workingElements = newElements;\n\t this._renderList();\n\t },\n\t\n\t /** drag communication with element sub-views: dragstart */\n\t _elementDragstart: function (ev, element) {\n\t // auto select the element causing the event and move all selected\n\t element.select(true);\n\t this.$dragging = this.$('.collection-elements .collection-element.selected');\n\t },\n\t\n\t /** drag communication with element sub-views: dragend - remove the placeholder */\n\t _elementDragend: function (ev, element) {\n\t $('.element-drop-placeholder').remove();\n\t this.$dragging = null;\n\t },\n\t\n\t // ------------------------------------------------------------------------ templates\n\t //TODO: move to require text plugin and load these as text\n\t //TODO: underscore currently unnecc. bc no vars are used\n\t //TODO: better way of localizing text-nodes in long strings\n\t /** underscore template fns attached to class */\n\t templates: _.extend({}, baseCreator.CollectionCreatorMixin._creatorTemplates, {\n\t\n\t /** the header (not including help text) */\n\t header: _.template(['', '', '× ', ' ', '
'].join('')),\n\t\n\t /** the middle: element list */\n\t middle: _.template(['', '', '
'].join('')),\n\t\n\t /** creation and cancel controls */\n\t footer: _.template(['', '
', '', _l('Hide original elements'), '?', ' ', ' ', '
', '
', '
', '
', _l('Name'), ':
', '
', '
', '', '
', '
', _l('Cancel'), ' ', '
', '', _l('Create a different kind of collection'), ' ', ' ', '', '
', '
', '
', '', _l('Create list'), ' ', '
', '
'].join('')),\n\t\n\t /** help content */\n\t helpContent: _.template(['', _l(['Collections of datasets are permanent, ordered lists of datasets that can be passed to tools and ', 'workflows in order to have analyses done on each member of the entire group. This interface allows ', 'you to create a collection and re-order the final collection.'].join('')), '
', '', '', _l(['Rename elements in the list by clicking on ', 'the existing name .'].join('')), ' ', '', _l(['Discard elements from the final created list by clicking on the ', '\"Discard\" button.'].join('')), ' ', '', _l(['Reorder the list by clicking and dragging elements. Select multiple elements by clicking on ', 'them and you can then move those selected by dragging the ', 'entire group. Deselect them by clicking them again or by clicking the ', 'the \"Clear selected\" link.'].join('')), ' ', '', _l(['Click the \"Start over\" link to begin again as if you had just opened ', 'the interface.'].join('')), ' ', '', _l(['Click the \"Cancel\" button to exit the interface.'].join('')), ' ', ' ', '', _l(['Once your collection is complete, enter a name and ', 'click \"Create list\" .'].join('')), '
'].join('')),\n\t\n\t /** shown in list when all elements are discarded */\n\t invalidElements: _.template([_l('The following selections could not be included due to problems:'), '<% _.each( problems, function( problem ){ %>', '<%- problem.element.name %> : <%- problem.text %> ', '<% }); %> '].join('')),\n\t\n\t /** shown in list when all elements are discarded */\n\t noElementsLeft: _.template(['', _l('No elements left! '), _l('Would you like to '), '', _l('start over'), ' ?', ' '].join('')),\n\t\n\t /** a simplified page communicating what went wrong and why the user needs to reselect something else */\n\t invalidInitial: _.template(['', ''].join(''))\n\t }),\n\t\n\t // ------------------------------------------------------------------------ misc\n\t /** string rep */\n\t toString: function () {\n\t return 'ListCollectionCreator';\n\t }\n\t });\n\t\n\t //=============================================================================\n\t /** Create a modal and load its body with the given CreatorClass creator type\n\t * @returns {Deferred} resolved when creator has built a collection.\n\t */\n\t var collectionCreatorModal = function _collectionCreatorModal(elements, options, CreatorClass) {\n\t\n\t var deferred = jQuery.Deferred(),\n\t modal = Galaxy.modal || new UI_MODAL.View(),\n\t creator;\n\t\n\t options = _.defaults(options || {}, {\n\t elements: elements,\n\t oncancel: function () {\n\t modal.hide();\n\t deferred.reject('cancelled');\n\t },\n\t oncreate: function (creator, response) {\n\t modal.hide();\n\t deferred.resolve(response);\n\t }\n\t });\n\t\n\t creator = new CreatorClass(options);\n\t modal.show({\n\t title: options.title || _l('Create a collection'),\n\t body: creator.$el,\n\t width: '80%',\n\t height: '100%',\n\t closing_events: true\n\t });\n\t creator.render();\n\t window._collectionCreator = creator;\n\t\n\t //TODO: remove modal header\n\t return deferred;\n\t };\n\t\n\t /** List collection flavor of collectionCreatorModal. */\n\t var listCollectionCreatorModal = function _listCollectionCreatorModal(elements, options) {\n\t options = options || {};\n\t options.title = _l('Create a collection from a list of datasets');\n\t return collectionCreatorModal(elements, options, ListCollectionCreator);\n\t };\n\t\n\t //==============================================================================\n\t /** Use a modal to create a list collection, then add it to the given history contents.\n\t * @returns {Deferred} resolved when the collection is added to the history.\n\t */\n\t function createListCollection(contents, defaultHideSourceItems) {\n\t var elements = contents.toJSON(),\n\t promise = listCollectionCreatorModal(elements, {\n\t defaultHideSourceItems: defaultHideSourceItems,\n\t creationFn: function (elements, name, hideSourceItems) {\n\t elements = elements.map(function (element) {\n\t return {\n\t id: element.id,\n\t name: element.name,\n\t //TODO: this allows for list:list even if the filter above does not - reconcile\n\t src: element.history_content_type === 'dataset' ? 'hda' : 'hdca'\n\t };\n\t });\n\t return contents.createHDCA(elements, 'list', name, hideSourceItems);\n\t }\n\t });\n\t return promise;\n\t }\n\t\n\t //==============================================================================\n\t return {\n\t DatasetCollectionElementView: DatasetCollectionElementView,\n\t ListCollectionCreator: ListCollectionCreator,\n\t\n\t collectionCreatorModal: collectionCreatorModal,\n\t listCollectionCreatorModal: listCollectionCreatorModal,\n\t createListCollection: createListCollection\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(2), __webpack_require__(1), __webpack_require__(1)))\n\n/***/ },\n/* 43 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(_, jQuery, Backbone, $) {!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(54), __webpack_require__(11), __webpack_require__(18), __webpack_require__(6), __webpack_require__(5)], __WEBPACK_AMD_DEFINE_RESULT__ = function (LIST_ITEM, STATES, faIconButton, BASE_MVC, _l) {\n\t 'use strict';\n\t\n\t var logNamespace = 'dataset';\n\t /*==============================================================================\n\t TODO:\n\t straighten out state rendering and templates used\n\t inaccessible/STATES.NOT_VIEWABLE is a special case\n\t simplify button rendering\n\t \n\t ==============================================================================*/\n\t var _super = LIST_ITEM.ListItemView;\n\t /** @class Read only list view for either LDDAs, HDAs, or HDADCEs.\n\t * Roughly, any DatasetInstance (and not a raw Dataset).\n\t */\n\t var DatasetListItemView = _super.extend(\n\t /** @lends DatasetListItemView.prototype */{\n\t _logNamespace: logNamespace,\n\t\n\t className: _super.prototype.className + \" dataset\",\n\t //TODO:?? doesn't exactly match an hda's type_id\n\t id: function () {\n\t return ['dataset', this.model.get('id')].join('-');\n\t },\n\t\n\t /** Set up: instance vars, options, and event handlers */\n\t initialize: function (attributes) {\n\t if (attributes.logger) {\n\t this.logger = this.model.logger = attributes.logger;\n\t }\n\t this.log(this + '.initialize:', attributes);\n\t _super.prototype.initialize.call(this, attributes);\n\t\n\t /** where should pages from links be displayed? (default to new tab/window) */\n\t this.linkTarget = attributes.linkTarget || '_blank';\n\t },\n\t\n\t /** event listeners */\n\t _setUpListeners: function () {\n\t _super.prototype._setUpListeners.call(this);\n\t var self = this;\n\t\n\t // re-rendering on any model changes\n\t return self.listenTo(self.model, {\n\t 'change': function (model) {\n\t // if the model moved into the ready state and is expanded without details, fetch those details now\n\t if (self.model.changedAttributes().state && self.model.inReadyState() && self.expanded && !self.model.hasDetails()) {\n\t // normally, will render automatically (due to fetch -> change),\n\t // but! setting_metadata sometimes doesn't cause any other changes besides state\n\t // so, not rendering causes it to seem frozen in setting_metadata state\n\t self.model.fetch({ silent: true }).done(function () {\n\t self.render();\n\t });\n\t } else {\n\t if (_.has(model.changed, 'tags') && _.keys(model.changed).length === 1) {\n\t // If only the tags have changed, rerender specifically\n\t // the titlebar region. Otherwise default to the full\n\t // render.\n\t self.$('.nametags').html(self._renderNametags());\n\t } else {\n\t self.render();\n\t }\n\t }\n\t }\n\t });\n\t },\n\t\n\t // ......................................................................... expandable\n\t /** In this override, only get details if in the ready state, get rerunnable if in other states.\n\t * Note: fetch with no 'change' event triggering to prevent automatic rendering.\n\t */\n\t _fetchModelDetails: function () {\n\t var view = this;\n\t if (view.model.inReadyState() && !view.model.hasDetails()) {\n\t return view.model.fetch({ silent: true });\n\t }\n\t return jQuery.when();\n\t },\n\t\n\t // ......................................................................... removal\n\t /** Remove this view's html from the DOM and remove all event listeners.\n\t * @param {Number or String} speed jq effect speed\n\t * @param {Function} callback an optional function called when removal is done (scoped to this view)\n\t */\n\t remove: function (speed, callback) {\n\t var view = this;\n\t speed = speed || this.fxSpeed;\n\t this.$el.fadeOut(speed, function () {\n\t Backbone.View.prototype.remove.call(view);\n\t if (callback) {\n\t callback.call(view);\n\t }\n\t });\n\t },\n\t\n\t // ......................................................................... rendering\n\t /* TODO:\n\t dataset states are the issue primarily making dataset rendering complex\n\t each state should have it's own way of displaying/set of details\n\t often with different actions that can be applied\n\t throw in deleted/purged/visible and things get complicated easily\n\t I've considered (a couple of times) - creating a view for each state\n\t - but recreating the view during an update...seems wrong\n\t */\n\t /** In this override, add the dataset state as a class for use with state-based CSS */\n\t _swapNewRender: function ($newRender) {\n\t _super.prototype._swapNewRender.call(this, $newRender);\n\t if (this.model.has('state')) {\n\t this.$el.addClass('state-' + this.model.get('state'));\n\t }\n\t return this.$el;\n\t },\n\t\n\t // ................................................................................ titlebar\n\t /** In this override, add the dataset display button. */\n\t _renderPrimaryActions: function () {\n\t // render just the display for read-only\n\t return [this._renderDisplayButton()];\n\t },\n\t\n\t /** Render icon-button to display dataset data */\n\t _renderDisplayButton: function () {\n\t // don't show display if not viewable or not accessible\n\t var state = this.model.get('state');\n\t if (state === STATES.NOT_VIEWABLE || state === STATES.DISCARDED || !this.model.get('accessible')) {\n\t return null;\n\t }\n\t\n\t var displayBtnData = {\n\t target: this.linkTarget,\n\t classes: 'display-btn'\n\t };\n\t\n\t // show a disabled display if the data's been purged\n\t if (this.model.get('purged')) {\n\t displayBtnData.disabled = true;\n\t displayBtnData.title = _l('Cannot display datasets removed from disk');\n\t\n\t // disable if still uploading\n\t } else if (state === STATES.UPLOAD) {\n\t displayBtnData.disabled = true;\n\t displayBtnData.title = _l('This dataset must finish uploading before it can be viewed');\n\t\n\t // disable if still new\n\t } else if (state === STATES.NEW) {\n\t displayBtnData.disabled = true;\n\t displayBtnData.title = _l('This dataset is not yet viewable');\n\t } else {\n\t displayBtnData.title = _l('View data');\n\t\n\t // default link for dataset\n\t displayBtnData.href = this.model.urls.display;\n\t\n\t // add frame manager option onclick event\n\t var self = this;\n\t displayBtnData.onclick = function (ev) {\n\t if (Galaxy.frame && Galaxy.frame.active) {\n\t // Add dataset to frames.\n\t Galaxy.frame.addDataset(self.model.get('id'));\n\t ev.preventDefault();\n\t }\n\t };\n\t }\n\t displayBtnData.faIcon = 'fa-eye';\n\t return faIconButton(displayBtnData);\n\t },\n\t\n\t // ......................................................................... rendering details\n\t /** Render the enclosing div of the hda body and, if expanded, the html in the body\n\t * @returns {jQuery} rendered DOM\n\t */\n\t _renderDetails: function () {\n\t //TODO: generalize to be allow different details for each state\n\t\n\t // no access - render nothing but a message\n\t if (this.model.get('state') === STATES.NOT_VIEWABLE) {\n\t return $(this.templates.noAccess(this.model.toJSON(), this));\n\t }\n\t\n\t var $details = _super.prototype._renderDetails.call(this);\n\t $details.find('.actions .left').empty().append(this._renderSecondaryActions());\n\t $details.find('.summary').html(this._renderSummary()).prepend(this._renderDetailMessages());\n\t $details.find('.display-applications').html(this._renderDisplayApplications());\n\t\n\t this._setUpBehaviors($details);\n\t return $details;\n\t },\n\t\n\t /** Defer to the appropo summary rendering fn based on state */\n\t _renderSummary: function () {\n\t var json = this.model.toJSON(),\n\t summaryRenderFn = this.templates.summaries[json.state];\n\t summaryRenderFn = summaryRenderFn || this.templates.summaries.unknown;\n\t return summaryRenderFn(json, this);\n\t },\n\t\n\t /** Render messages to be displayed only when the details are shown */\n\t _renderDetailMessages: function () {\n\t var view = this,\n\t $warnings = $('
'),\n\t json = view.model.toJSON();\n\t //TODO:! unordered (map)\n\t _.each(view.templates.detailMessages, function (templateFn) {\n\t $warnings.append($(templateFn(json, view)));\n\t });\n\t return $warnings;\n\t },\n\t\n\t /** Render the external display application links */\n\t _renderDisplayApplications: function () {\n\t if (this.model.isDeletedOrPurged()) {\n\t return '';\n\t }\n\t // render both old and new display apps using the same template\n\t return [this.templates.displayApplications(this.model.get('display_apps'), this), this.templates.displayApplications(this.model.get('display_types'), this)].join('');\n\t },\n\t\n\t // ......................................................................... secondary/details actions\n\t /** A series of links/buttons for less commonly used actions: re-run, info, etc. */\n\t _renderSecondaryActions: function () {\n\t this.debug('_renderSecondaryActions');\n\t switch (this.model.get('state')) {\n\t case STATES.NOT_VIEWABLE:\n\t return [];\n\t case STATES.OK:\n\t case STATES.FAILED_METADATA:\n\t case STATES.ERROR:\n\t return [this._renderDownloadButton(), this._renderShowParamsButton()];\n\t }\n\t return [this._renderShowParamsButton()];\n\t },\n\t\n\t /** Render icon-button to show the input and output (stdout/err) for the job that created this.\n\t * @returns {jQuery} rendered DOM\n\t */\n\t _renderShowParamsButton: function () {\n\t // gen. safe to show in all cases\n\t return faIconButton({\n\t title: _l('View details'),\n\t classes: 'params-btn',\n\t href: this.model.urls.show_params,\n\t target: this.linkTarget,\n\t faIcon: 'fa-info-circle',\n\t onclick: function (ev) {\n\t if (Galaxy.frame && Galaxy.frame.active) {\n\t Galaxy.frame.add({ title: 'Dataset details', url: this.href });\n\t ev.preventDefault();\n\t ev.stopPropagation();\n\t }\n\t }\n\t });\n\t },\n\t\n\t /** Render icon-button/popupmenu to download the data (and/or the associated meta files (bai, etc.)) for this.\n\t * @returns {jQuery} rendered DOM\n\t */\n\t _renderDownloadButton: function () {\n\t // don't show anything if the data's been purged\n\t if (this.model.get('purged') || !this.model.hasData()) {\n\t return null;\n\t }\n\t\n\t // return either: a popupmenu with links to download assoc. meta files (if there are meta files)\n\t // or a single download icon-button (if there are no meta files)\n\t if (!_.isEmpty(this.model.get('meta_files'))) {\n\t return this._renderMetaFileDownloadButton();\n\t }\n\t\n\t return $(['', ' ', ' '].join(''));\n\t },\n\t\n\t /** Render the download button which opens a dropdown with links to download assoc. meta files (indeces, etc.) */\n\t _renderMetaFileDownloadButton: function () {\n\t var urls = this.model.urls;\n\t return $([''].join('\\n'));\n\t },\n\t\n\t _renderNametags: function () {\n\t var tpl = _.template(['<% _.each(_.sortBy(_.uniq(tags), function(x) { return x }), function(tag){ %>', '<% if (tag.indexOf(\"name:\") == 0){ %>', '<%- tag.slice(5) %> ', '<% } %>', '<% }); %>'].join(''));\n\t return tpl({ tags: this.model.get('tags') });\n\t },\n\t\n\t // ......................................................................... misc\n\t events: _.extend(_.clone(_super.prototype.events), {\n\t 'click .display-btn': function (ev) {\n\t this.trigger('display', this, ev);\n\t },\n\t 'click .params-btn': function (ev) {\n\t this.trigger('params', this, ev);\n\t },\n\t 'click .download-btn': function (ev) {\n\t this.trigger('download', this, ev);\n\t }\n\t }),\n\t\n\t // ......................................................................... misc\n\t /** String representation */\n\t toString: function () {\n\t var modelString = this.model ? this.model + '' : '(no model)';\n\t return 'DatasetListItemView(' + modelString + ')';\n\t }\n\t });\n\t\n\t // ............................................................................ TEMPLATES\n\t /** underscore templates */\n\t DatasetListItemView.prototype.templates = function () {\n\t //TODO: move to require text! plugin\n\t\n\t var warnings = _.extend({}, _super.prototype.templates.warnings, {\n\t failed_metadata: BASE_MVC.wrapTemplate([\n\t // failed metadata is rendered as a warning on an otherwise ok dataset view\n\t '<% if( model.state === \"failed_metadata\" ){ %>', '', _l('An error occurred setting the metadata for this dataset'), '
', '<% } %>']),\n\t error: BASE_MVC.wrapTemplate([\n\t // error during index fetch - show error on dataset\n\t '<% if( model.error ){ %>', '', _l('There was an error getting the data for this dataset'), ': <%- model.error %>', '
', '<% } %>']),\n\t purged: BASE_MVC.wrapTemplate(['<% if( model.purged ){ %>', '', _l('This dataset has been deleted and removed from disk'), '
', '<% } %>']),\n\t deleted: BASE_MVC.wrapTemplate([\n\t // deleted not purged\n\t '<% if( model.deleted && !model.purged ){ %>', '', _l('This dataset has been deleted'), '
', '<% } %>'])\n\t\n\t //NOTE: hidden warning is only needed for HDAs\n\t });\n\t\n\t var detailsTemplate = BASE_MVC.wrapTemplate(['', '
', '
',\n\t\n\t // do not display tags, annotation, display apps, or peek when deleted\n\t '<% if( !dataset.deleted && !dataset.purged ){ %>', '
', '
', '
', '<% if( dataset.peek ){ %>', '
<%= dataset.peek %> ', '<% } %>', '<% } %>', '
'], 'dataset');\n\t\n\t var noAccessTemplate = BASE_MVC.wrapTemplate(['', '
', _l('You do not have permission to view this dataset'), '
', '
'], 'dataset');\n\t\n\t //TODO: still toooooooooooooo complex - rework\n\t var summaryTemplates = {};\n\t summaryTemplates[STATES.OK] = summaryTemplates[STATES.FAILED_METADATA] = BASE_MVC.wrapTemplate(['<% if( dataset.misc_blurb ){ %>', '', '<%- dataset.misc_blurb %> ', '
', '<% } %>', '<% if( dataset.file_ext ){ %>', '', '', _l('format'), ' ', '<%- dataset.file_ext %> ', '
', '<% } %>', '<% if( dataset.metadata_dbkey ){ %>', '', '', _l('database'), ' ', '', '<%- dataset.metadata_dbkey %>', ' ', '
', '<% } %>', '<% if( dataset.misc_info ){ %>', '', '<%- dataset.misc_info %> ', '
', '<% } %>'], 'dataset');\n\t summaryTemplates[STATES.NEW] = BASE_MVC.wrapTemplate(['', _l('This is a new dataset and not all of its data are available yet'), '
'], 'dataset');\n\t summaryTemplates[STATES.NOT_VIEWABLE] = BASE_MVC.wrapTemplate(['', _l('You do not have permission to view this dataset'), '
'], 'dataset');\n\t summaryTemplates[STATES.DISCARDED] = BASE_MVC.wrapTemplate(['', _l('The job creating this dataset was cancelled before completion'), '
'], 'dataset');\n\t summaryTemplates[STATES.QUEUED] = BASE_MVC.wrapTemplate(['', _l('This job is waiting to run'), '
'], 'dataset');\n\t summaryTemplates[STATES.RUNNING] = BASE_MVC.wrapTemplate(['', _l('This job is currently running'), '
'], 'dataset');\n\t summaryTemplates[STATES.UPLOAD] = BASE_MVC.wrapTemplate(['', _l('This dataset is currently uploading'), '
'], 'dataset');\n\t summaryTemplates[STATES.SETTING_METADATA] = BASE_MVC.wrapTemplate(['', _l('Metadata is being auto-detected'), '
'], 'dataset');\n\t summaryTemplates[STATES.PAUSED] = BASE_MVC.wrapTemplate(['', _l('This job is paused. Use the \"Resume Paused Jobs\" in the history menu to resume'), '
'], 'dataset');\n\t summaryTemplates[STATES.ERROR] = BASE_MVC.wrapTemplate(['<% if( !dataset.purged ){ %>', '<%- dataset.misc_blurb %>
', '<% } %>', '', _l('An error occurred with this dataset'), ': ', '<%- dataset.misc_info %>
'], 'dataset');\n\t summaryTemplates[STATES.EMPTY] = BASE_MVC.wrapTemplate(['', _l('No data'), ': <%- dataset.misc_blurb %>
'], 'dataset');\n\t summaryTemplates.unknown = BASE_MVC.wrapTemplate(['Error: unknown dataset state: \"<%- dataset.state %>\"
'], 'dataset');\n\t\n\t // messages to be displayed only within the details section ('below the fold')\n\t var detailMessageTemplates = {\n\t resubmitted: BASE_MVC.wrapTemplate([\n\t // deleted not purged\n\t '<% if( model.resubmitted ){ %>', '', _l('The job creating this dataset has been resubmitted'), '
', '<% } %>'])\n\t };\n\t\n\t // this is applied to both old and new style display apps\n\t var displayApplicationsTemplate = BASE_MVC.wrapTemplate(['<% _.each( apps, function( app ){ %>', '', '
<%- app.label %> ', '
', '<% _.each( app.links, function( link ){ %>', '\" href=\"<%- link.href %>\">', '<% print( _l( link.text ) ); %>', ' ', '<% }); %>', ' ', '
', '<% }); %>'], 'apps');\n\t\n\t return _.extend({}, _super.prototype.templates, {\n\t warnings: warnings,\n\t details: detailsTemplate,\n\t noAccess: noAccessTemplate,\n\t summaries: summaryTemplates,\n\t detailMessages: detailMessageTemplates,\n\t displayApplications: displayApplicationsTemplate\n\t });\n\t }();\n\t\n\t // ============================================================================\n\t return {\n\t DatasetListItemView: DatasetListItemView\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2), __webpack_require__(1), __webpack_require__(3), __webpack_require__(1)))\n\n/***/ },\n/* 44 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, $, _) {/**\n\t This class creates a form input element wrapper\n\t*/\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () {\n\t return Backbone.View.extend({\n\t initialize: function (app, options) {\n\t this.app = app;\n\t this.app_options = app.model ? app.model.attributes : {};\n\t this.field = options && options.field || new Backbone.View();\n\t this.model = options && options.model || new Backbone.Model({\n\t text_enable: this.app_options.text_enable || 'Enable',\n\t text_disable: this.app_options.text_disable || 'Disable',\n\t cls_enable: this.app_options.cls_enable || 'fa fa-caret-square-o-down',\n\t cls_disable: this.app_options.cls_disable || 'fa fa-caret-square-o-up',\n\t always_refresh: this.app_options.always_refresh\n\t }).set(options);\n\t\n\t // set element and link components\n\t this.setElement(this._template());\n\t this.$field = this.$('.ui-form-field');\n\t this.$info = this.$('.ui-form-info');\n\t this.$preview = this.$('.ui-form-preview');\n\t this.$collapsible = this.$('.ui-form-collapsible');\n\t this.$collapsible_text = this.$('.ui-form-collapsible-text');\n\t this.$collapsible_icon = this.$('.ui-form-collapsible-icon');\n\t this.$title = this.$('.ui-form-title');\n\t this.$title_text = this.$('.ui-form-title-text');\n\t this.$error_text = this.$('.ui-form-error-text');\n\t this.$error = this.$('.ui-form-error');\n\t this.$backdrop = this.$('.ui-form-backdrop');\n\t\n\t // add field element\n\t this.$field.prepend(this.field.$el);\n\t\n\t // decide wether to expand or collapse fields\n\t var collapsible_value = this.model.get('collapsible_value');\n\t this.field.collapsed = collapsible_value !== undefined && JSON.stringify(this.model.get('value')) == JSON.stringify(collapsible_value);\n\t this.listenTo(this.model, 'change', this.render, this);\n\t this.render();\n\t\n\t // add click handler\n\t var self = this;\n\t this.$collapsible.on('click', function () {\n\t self.field.collapsed = !self.field.collapsed;\n\t app.trigger && app.trigger('change');\n\t self.render();\n\t });\n\t\n\t // hide error on value change\n\t if (this.field.model && !this.model.get('always_refresh')) {\n\t this.listenTo(this.field.model, 'change:value', function () {\n\t self.reset();\n\t });\n\t }\n\t },\n\t\n\t /** Set backdrop for input element */\n\t backdrop: function () {\n\t this.model.set('backdrop', true);\n\t },\n\t\n\t /** Set error text */\n\t error: function (text) {\n\t this.model.set('error_text', text);\n\t },\n\t\n\t /** Reset this view */\n\t reset: function () {\n\t !this.model.get('fixed') && this.model.set('error_text', null);\n\t },\n\t\n\t render: function () {\n\t // render help\n\t $('.tooltip').hide();\n\t var help_text = this.model.get('help', '');\n\t var help_argument = this.model.get('argument');\n\t if (help_argument && help_text.indexOf('(' + help_argument + ')') == -1) {\n\t help_text += ' (' + help_argument + ')';\n\t }\n\t this.$info.html(help_text);\n\t // render visibility\n\t this.$el[this.model.get('hidden') ? 'hide' : 'show']();\n\t // render preview view for collapsed fields\n\t this.$preview[this.field.collapsed && this.model.get('collapsible_preview') || this.model.get('disabled') ? 'show' : 'hide']().html(_.escape(this.model.get('text_value')));\n\t // render error messages\n\t var error_text = this.model.get('error_text');\n\t this.$error[error_text ? 'show' : 'hide']();\n\t this.$el[error_text ? 'addClass' : 'removeClass']('ui-error');\n\t this.$error_text.html(error_text);\n\t // render backdrop\n\t this.$backdrop[this.model.get('backdrop') ? 'show' : 'hide']();\n\t // render input field\n\t this.field.collapsed || this.model.get('disabled') ? this.$field.hide() : this.$field.show();\n\t // render input field color and style\n\t this.field.model && this.field.model.set({ 'color': this.model.get('color'), 'style': this.model.get('style') });\n\t // render collapsible options\n\t if (!this.model.get('disabled') && this.model.get('collapsible_value') !== undefined) {\n\t var collapsible_state = this.field.collapsed ? 'enable' : 'disable';\n\t this.$title_text.hide();\n\t this.$collapsible.show();\n\t this.$collapsible_text.text(this.model.get('label'));\n\t this.$collapsible_icon.removeClass().addClass('icon').addClass(this.model.get('cls_' + collapsible_state)).attr('data-original-title', this.model.get('text_' + collapsible_state)).tooltip({ placement: 'bottom' });\n\t } else {\n\t this.$title_text.show().text(this.model.get('label'));\n\t this.$collapsible.hide();\n\t }\n\t },\n\t\n\t _template: function () {\n\t return $('
').addClass('ui-form-element').append($('
').addClass('ui-form-error ui-error').append($(' ').addClass('fa fa-arrow-down')).append($(' ').addClass('ui-form-error-text'))).append($('
').addClass('ui-form-title').append($('
').addClass('ui-form-collapsible').append($(' ').addClass('ui-form-collapsible-icon')).append($(' ').addClass('ui-form-collapsible-text'))).append($(' ').addClass('ui-form-title-text'))).append($('
').addClass('ui-form-field').append($(' ').addClass('ui-form-info')).append($('
').addClass('ui-form-backdrop'))).append($('
').addClass('ui-form-preview'));\n\t }\n\t });\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(1), __webpack_require__(2)))\n\n/***/ },\n/* 45 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, _, $) {/**\n\t This class creates input elements. New input parameter types should be added to the types dictionary.\n\t*/\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(4), __webpack_require__(7), __webpack_require__(59), __webpack_require__(61), __webpack_require__(60), __webpack_require__(57)], __WEBPACK_AMD_DEFINE_RESULT__ = function (Utils, Ui, SelectContent, SelectLibrary, SelectFtp, ColorPicker) {\n\t\n\t // create form view\n\t return Backbone.Model.extend({\n\t /** Available parameter types */\n\t types: {\n\t 'text': '_fieldText',\n\t 'password': '_fieldText',\n\t 'select': '_fieldSelect',\n\t 'data_column': '_fieldSelect',\n\t 'genomebuild': '_fieldSelect',\n\t 'data': '_fieldData',\n\t 'data_collection': '_fieldData',\n\t 'integer': '_fieldSlider',\n\t 'float': '_fieldSlider',\n\t 'boolean': '_fieldBoolean',\n\t 'drill_down': '_fieldDrilldown',\n\t 'color': '_fieldColor',\n\t 'hidden': '_fieldHidden',\n\t 'hidden_data': '_fieldHidden',\n\t 'baseurl': '_fieldHidden',\n\t 'library_data': '_fieldLibrary',\n\t 'ftpfile': '_fieldFtp',\n\t 'upload': '_fieldUpload'\n\t },\n\t\n\t /** Returns an input field for a given field type */\n\t create: function (input_def) {\n\t var fieldClass = this.types[input_def.type];\n\t var field = typeof this[fieldClass] === 'function' ? this[fieldClass].call(this, input_def) : null;\n\t if (!field) {\n\t field = input_def.options ? this._fieldSelect(input_def) : this._fieldText(input_def);\n\t Galaxy.emit.debug('form-parameters::_addRow()', 'Auto matched field type (' + input_def.type + ').');\n\t }\n\t input_def.value === undefined && (input_def.value = null);\n\t field.value(input_def.value);\n\t return field;\n\t },\n\t\n\t /** Data input field */\n\t _fieldData: function (input_def) {\n\t return new SelectContent.View({\n\t id: 'field-' + input_def.id,\n\t extensions: input_def.extensions,\n\t optional: input_def.optional,\n\t multiple: input_def.multiple,\n\t type: input_def.type,\n\t flavor: input_def.flavor,\n\t data: input_def.options,\n\t onchange: input_def.onchange\n\t });\n\t },\n\t\n\t /** Select/Checkbox/Radio options field */\n\t _fieldSelect: function (input_def) {\n\t // show text field e.g. in workflow editor\n\t if (input_def.is_workflow) {\n\t return this._fieldText(input_def);\n\t }\n\t\n\t // customize properties\n\t if (input_def.type == 'data_column') {\n\t input_def.error_text = 'Missing columns in referenced dataset.';\n\t }\n\t\n\t // identify available options\n\t var data = input_def.data;\n\t if (!data) {\n\t data = [];\n\t _.each(input_def.options, function (option) {\n\t data.push({ label: option[0], value: option[1] });\n\t });\n\t }\n\t\n\t // identify display type\n\t var SelectClass = Ui.Select;\n\t switch (input_def.display) {\n\t case 'checkboxes':\n\t SelectClass = Ui.Checkbox;\n\t break;\n\t case 'radio':\n\t SelectClass = Ui.Radio;\n\t break;\n\t case 'radiobutton':\n\t SelectClass = Ui.RadioButton;\n\t break;\n\t }\n\t\n\t // create select field\n\t return new SelectClass.View({\n\t id: 'field-' + input_def.id,\n\t data: data,\n\t error_text: input_def.error_text || 'No options available',\n\t multiple: input_def.multiple,\n\t optional: input_def.optional,\n\t onchange: input_def.onchange,\n\t searchable: input_def.flavor !== 'workflow'\n\t });\n\t },\n\t\n\t /** Drill down options field */\n\t _fieldDrilldown: function (input_def) {\n\t // show text field e.g. in workflow editor\n\t if (input_def.is_workflow) {\n\t return this._fieldText(input_def);\n\t }\n\t\n\t // create drill down field\n\t return new Ui.Drilldown.View({\n\t id: 'field-' + input_def.id,\n\t data: input_def.options,\n\t display: input_def.display,\n\t optional: input_def.optional,\n\t onchange: input_def.onchange\n\t });\n\t },\n\t\n\t /** Text input field */\n\t _fieldText: function (input_def) {\n\t // field replaces e.g. a select field\n\t if (input_def.options && input_def.data) {\n\t input_def.area = input_def.multiple;\n\t if (Utils.isEmpty(input_def.value)) {\n\t input_def.value = null;\n\t } else {\n\t if ($.isArray(input_def.value)) {\n\t var str_value = '';\n\t for (var i in input_def.value) {\n\t str_value += String(input_def.value[i]);\n\t if (!input_def.multiple) {\n\t break;\n\t }\n\t str_value += '\\n';\n\t }\n\t input_def.value = str_value;\n\t }\n\t }\n\t }\n\t // create input element\n\t return new Ui.Input({\n\t id: 'field-' + input_def.id,\n\t type: input_def.type,\n\t area: input_def.area,\n\t readonly: input_def.readonly,\n\t placeholder: input_def.placeholder,\n\t datalist: input_def.datalist,\n\t onchange: input_def.onchange\n\t });\n\t },\n\t\n\t /** Slider field */\n\t _fieldSlider: function (input_def) {\n\t return new Ui.Slider.View({\n\t id: 'field-' + input_def.id,\n\t precise: input_def.type == 'float',\n\t is_workflow: input_def.is_workflow,\n\t min: input_def.min,\n\t max: input_def.max,\n\t onchange: input_def.onchange\n\t });\n\t },\n\t\n\t /** Hidden field */\n\t _fieldHidden: function (input_def) {\n\t return new Ui.Hidden({\n\t id: 'field-' + input_def.id,\n\t info: input_def.info\n\t });\n\t },\n\t\n\t /** Boolean field */\n\t _fieldBoolean: function (input_def) {\n\t return new Ui.RadioButton.View({\n\t id: 'field-' + input_def.id,\n\t data: [{ label: 'Yes', value: 'true' }, { label: 'No', value: 'false' }],\n\t onchange: input_def.onchange\n\t });\n\t },\n\t\n\t /** Color picker field */\n\t _fieldColor: function (input_def) {\n\t return new ColorPicker({\n\t id: 'field-' + input_def.id,\n\t onchange: input_def.onchange\n\t });\n\t },\n\t\n\t /** Library dataset field */\n\t _fieldLibrary: function (input_def) {\n\t return new SelectLibrary.View({\n\t id: 'field-' + input_def.id,\n\t optional: input_def.optional,\n\t multiple: input_def.multiple,\n\t onchange: input_def.onchange\n\t });\n\t },\n\t\n\t /** FTP file field */\n\t _fieldFtp: function (input_def) {\n\t return new SelectFtp.View({\n\t id: 'field-' + input_def.id,\n\t optional: input_def.optional,\n\t multiple: input_def.multiple,\n\t onchange: input_def.onchange\n\t });\n\t },\n\t\n\t /** Upload file field */\n\t _fieldUpload: function (input_def) {\n\t return new Ui.Upload({\n\t id: 'field-' + input_def.id,\n\t onchange: input_def.onchange\n\t });\n\t }\n\t });\n\t\n\t return {\n\t View: View\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(2), __webpack_require__(1)))\n\n/***/ },\n/* 46 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, $, _) {/** This class creates a ui component which enables the dynamic creation of portlets */\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(4), __webpack_require__(9), __webpack_require__(7)], __WEBPACK_AMD_DEFINE_RESULT__ = function (Utils, Portlet, Ui) {\n\t var View = Backbone.View.extend({\n\t initialize: function (options) {\n\t this.list = {};\n\t this.options = Utils.merge(options, {\n\t title: 'Repeat',\n\t empty_text: 'Not available.',\n\t max: null,\n\t min: null\n\t });\n\t this.button_new = new Ui.ButtonIcon({\n\t icon: 'fa-plus',\n\t title: 'Insert ' + this.options.title,\n\t tooltip: 'Add new ' + this.options.title + ' block',\n\t floating: 'clear',\n\t cls: 'ui-button-icon form-repeat-add',\n\t onclick: function () {\n\t options.onnew && options.onnew();\n\t }\n\t });\n\t this.setElement($('
').append(this.$list = $('
')).append($('
').append(this.button_new.$el)));\n\t },\n\t\n\t /** Number of repeat blocks */\n\t size: function () {\n\t return _.size(this.list);\n\t },\n\t\n\t /** Add new repeat block */\n\t add: function (options) {\n\t if (!options.id || this.list[options.id]) {\n\t Galaxy.emit.debug('form-repeat::add()', 'Duplicate or invalid repeat block id.');\n\t return;\n\t }\n\t var button_delete = new Ui.ButtonIcon({\n\t icon: 'fa-trash-o',\n\t tooltip: 'Delete this repeat block',\n\t cls: 'ui-button-icon-plain form-repeat-delete',\n\t onclick: function () {\n\t options.ondel && options.ondel();\n\t }\n\t });\n\t var portlet = new Portlet.View({\n\t id: options.id,\n\t title: 'placeholder',\n\t cls: options.cls || 'ui-portlet-repeat',\n\t operations: { button_delete: button_delete }\n\t });\n\t portlet.append(options.$el);\n\t portlet.$el.addClass('section-row').hide();\n\t this.list[options.id] = portlet;\n\t this.$list.append(portlet.$el.fadeIn('fast'));\n\t this.options.max > 0 && this.size() >= this.options.max && this.button_new.disable();\n\t this._refresh();\n\t },\n\t\n\t /** Delete repeat block */\n\t del: function (id) {\n\t if (!this.list[id]) {\n\t Galaxy.emit.debug('form-repeat::del()', 'Invalid repeat block id.');\n\t return;\n\t }\n\t this.$list.find('#' + id).remove();\n\t delete this.list[id];\n\t this.button_new.enable();\n\t this._refresh();\n\t },\n\t\n\t /** Remove all */\n\t delAll: function () {\n\t for (var id in this.list) {\n\t this.del(id);\n\t }\n\t },\n\t\n\t /** Hides add/del options */\n\t hideOptions: function () {\n\t this.button_new.$el.hide();\n\t _.each(this.list, function (portlet) {\n\t portlet.hideOperation('button_delete');\n\t });\n\t _.isEmpty(this.list) && this.$el.append($('
').addClass('ui-form-info').html(this.options.empty_text));\n\t },\n\t\n\t /** Refresh view */\n\t _refresh: function () {\n\t var index = 0;\n\t for (var id in this.list) {\n\t var portlet = this.list[id];\n\t portlet.title(++index + ': ' + this.options.title);\n\t portlet[this.size() > this.options.min ? 'showOperation' : 'hideOperation']('button_delete');\n\t }\n\t }\n\t });\n\t\n\t return {\n\t View: View\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(1), __webpack_require__(2)))\n\n/***/ },\n/* 47 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, $, _, jQuery) {/**\n\t This class creates a form section and populates it with input elements. It also handles repeat blocks and conditionals by recursively creating new sub sections.\n\t*/\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(4), __webpack_require__(7), __webpack_require__(9), __webpack_require__(46), __webpack_require__(44), __webpack_require__(45)], __WEBPACK_AMD_DEFINE_RESULT__ = function (Utils, Ui, Portlet, Repeat, InputElement, Parameters) {\n\t var View = Backbone.View.extend({\n\t initialize: function (app, options) {\n\t this.app = app;\n\t this.inputs = options.inputs;\n\t this.parameters = new Parameters();\n\t this.setElement($('
'));\n\t this.render();\n\t },\n\t\n\t /** Render section view */\n\t render: function () {\n\t var self = this;\n\t this.$el.empty();\n\t _.each(this.inputs, function (input) {\n\t self.add(input);\n\t });\n\t },\n\t\n\t /** Add a new input element */\n\t add: function (input) {\n\t var input_def = jQuery.extend(true, {}, input);\n\t input_def.id = input.id = Utils.uid();\n\t this.app.input_list[input_def.id] = input_def;\n\t switch (input_def.type) {\n\t case 'conditional':\n\t this._addConditional(input_def);\n\t break;\n\t case 'repeat':\n\t this._addRepeat(input_def);\n\t break;\n\t case 'section':\n\t this._addSection(input_def);\n\t break;\n\t default:\n\t this._addRow(input_def);\n\t }\n\t },\n\t\n\t /** Add a conditional block */\n\t _addConditional: function (input_def) {\n\t var self = this;\n\t input_def.test_param.id = input_def.id;\n\t this.app.model.get('sustain_conditionals') && (input_def.test_param.disabled = true);\n\t var field = this._addRow(input_def.test_param);\n\t\n\t // set onchange event for test parameter\n\t field.model && field.model.set('onchange', function (value) {\n\t var selectedCase = self.app.data.matchCase(input_def, value);\n\t for (var i in input_def.cases) {\n\t var case_def = input_def.cases[i];\n\t var section_row = self.$('#' + input_def.id + '-section-' + i);\n\t var nonhidden = false;\n\t for (var j in case_def.inputs) {\n\t if (!case_def.inputs[j].hidden) {\n\t nonhidden = true;\n\t break;\n\t }\n\t }\n\t if (i == selectedCase && nonhidden) {\n\t section_row.fadeIn('fast');\n\t } else {\n\t section_row.hide();\n\t }\n\t }\n\t self.app.trigger('change');\n\t });\n\t\n\t // add conditional sub sections\n\t for (var i in input_def.cases) {\n\t var sub_section = new View(this.app, { inputs: input_def.cases[i].inputs });\n\t this._append(sub_section.$el.addClass('ui-form-section'), input_def.id + '-section-' + i);\n\t }\n\t\n\t // trigger refresh on conditional input field after all input elements have been created\n\t field.trigger('change');\n\t },\n\t\n\t /** Add a repeat block */\n\t _addRepeat: function (input_def) {\n\t var self = this;\n\t var block_index = 0;\n\t\n\t // create repeat block element\n\t var repeat = new Repeat.View({\n\t title: input_def.title || 'Repeat',\n\t min: input_def.min,\n\t max: input_def.max,\n\t onnew: function () {\n\t create(input_def.inputs);self.app.trigger('change');\n\t }\n\t });\n\t\n\t // helper function to create new repeat blocks\n\t function create(inputs) {\n\t var sub_section_id = input_def.id + '-section-' + block_index++;\n\t var sub_section = new View(self.app, { inputs: inputs });\n\t repeat.add({ id: sub_section_id,\n\t $el: sub_section.$el,\n\t ondel: function () {\n\t repeat.del(sub_section_id);self.app.trigger('change');\n\t } });\n\t }\n\t\n\t //\n\t // add parsed/minimum number of repeat blocks\n\t //\n\t var n_cache = _.size(input_def.cache);\n\t for (var i = 0; i < Math.max(Math.max(n_cache, input_def.min || 0), input_def.default || 0); i++) {\n\t create(i < n_cache ? input_def.cache[i] : input_def.inputs);\n\t }\n\t\n\t // hide options\n\t this.app.model.get('sustain_repeats') && repeat.hideOptions();\n\t\n\t // create input field wrapper\n\t var input_element = new InputElement(this.app, {\n\t label: input_def.title || input_def.name,\n\t help: input_def.help,\n\t field: repeat\n\t });\n\t this._append(input_element.$el, input_def.id);\n\t },\n\t\n\t /** Add a customized section */\n\t _addSection: function (input_def) {\n\t var portlet = new Portlet.View({\n\t title: input_def.title || input_def.name,\n\t cls: 'ui-portlet-section',\n\t collapsible: true,\n\t collapsible_button: true,\n\t collapsed: !input_def.expanded\n\t });\n\t portlet.append(new View(this.app, { inputs: input_def.inputs }).$el);\n\t portlet.append($('
').addClass('ui-form-info').html(input_def.help));\n\t this.app.on('expand', function (input_id) {\n\t portlet.$('#' + input_id).length > 0 && portlet.expand();\n\t });\n\t this._append(portlet.$el, input_def.id);\n\t },\n\t\n\t /** Add a single input field element */\n\t _addRow: function (input_def) {\n\t var self = this;\n\t var id = input_def.id;\n\t input_def.onchange = input_def.onchange || function () {\n\t self.app.trigger('change', id);\n\t };\n\t var field = this.parameters.create(input_def);\n\t this.app.field_list[id] = field;\n\t var input_element = new InputElement(this.app, {\n\t name: input_def.name,\n\t label: input_def.hide_label ? '' : input_def.label || input_def.name,\n\t value: input_def.value,\n\t text_value: input_def.text_value,\n\t collapsible_value: input_def.collapsible_value,\n\t collapsible_preview: input_def.collapsible_preview,\n\t help: input_def.help,\n\t argument: input_def.argument,\n\t disabled: input_def.disabled,\n\t color: input_def.color,\n\t style: input_def.style,\n\t backdrop: input_def.backdrop,\n\t hidden: input_def.hidden,\n\t fixed: input_def.fixed,\n\t field: field\n\t });\n\t this.app.element_list[id] = input_element;\n\t this._append(input_element.$el, input_def.id);\n\t return field;\n\t },\n\t\n\t /** Append a new element to the form i.e. input element, repeat block, conditionals etc. */\n\t _append: function ($el, id) {\n\t this.$el.append($el.addClass('section-row').attr('id', id));\n\t }\n\t });\n\t\n\t return {\n\t View: View\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(1), __webpack_require__(2), __webpack_require__(1)))\n\n/***/ },\n/* 48 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, _, $) {// dependencies\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () {\n\t\n\t // grid model\n\t return Backbone.Model.extend({\n\t defaults: {\n\t url_base: '',\n\t async: false,\n\t async_ops: [],\n\t categorical_filters: [],\n\t filters: {},\n\t sort_key: null,\n\t show_item_checkboxes: false,\n\t advanced_search: false,\n\t cur_page: 1,\n\t num_pages: 1,\n\t operation: undefined,\n\t item_ids: undefined\n\t },\n\t\n\t /**\n\t * Return true if operation can be done asynchronously.\n\t */\n\t can_async_op: function (op) {\n\t return _.indexOf(this.attributes.async_ops, op) !== -1;\n\t },\n\t\n\t /**\n\t * Add filtering criterion.\n\t */\n\t add_filter: function (key, value, append) {\n\t // Update URL arg with new condition. \n\t if (append) {\n\t // Update or append value.\n\t var cur_val = this.attributes.filters[key],\n\t new_val;\n\t if (cur_val === null || cur_val === undefined) {\n\t new_val = value;\n\t } else if (typeof cur_val == 'string') {\n\t if (cur_val == 'All') {\n\t new_val = value;\n\t } else {\n\t // Replace string with array.\n\t var values = [];\n\t values[0] = cur_val;\n\t values[1] = value;\n\t new_val = values;\n\t }\n\t } else {\n\t // Current value is an array.\n\t new_val = cur_val;\n\t new_val.push(value);\n\t }\n\t this.attributes.filters[key] = new_val;\n\t } else {\n\t // Replace value.\n\t this.attributes.filters[key] = value;\n\t }\n\t },\n\t\n\t /**\n\t * Remove filtering criterion.\n\t */\n\t remove_filter: function (key, condition) {\n\t var cur_val = this.attributes.filters[key];\n\t if (cur_val === null || cur_val === undefined) {\n\t return false;\n\t }\n\t\n\t if (typeof cur_val === 'string') {\n\t // overwrite/remove condition.\n\t this.attributes.filters[key] = '';\n\t } else {\n\t // filter contains an array of conditions.\n\t var condition_index = _.indexOf(cur_val, condition);\n\t if (condition_index !== -1) {\n\t cur_val[condition_index] = '';\n\t }\n\t }\n\t },\n\t\n\t /**\n\t * Returns URL data for obtaining a new grid.\n\t */\n\t get_url_data: function () {\n\t var url_data = {\n\t async: this.attributes.async,\n\t sort: this.attributes.sort_key,\n\t page: this.attributes.cur_page,\n\t show_item_checkboxes: this.attributes.show_item_checkboxes,\n\t advanced_search: this.attributes.advanced_search\n\t };\n\t\n\t // Add operation, item_ids only if they have values.\n\t if (this.attributes.operation) {\n\t url_data.operation = this.attributes.operation;\n\t }\n\t if (this.attributes.item_ids) {\n\t url_data.id = this.attributes.item_ids;\n\t }\n\t\n\t // Add filter arguments to data, placing \"f-\" in front of all arguments.\n\t var self = this;\n\t _.each(_.pairs(self.attributes.filters), function (k) {\n\t url_data['f-' + k[0]] = k[1];\n\t });\n\t\n\t return url_data;\n\t },\n\t\n\t // Return URL for obtaining a new grid\n\t get_url: function (args) {\n\t return this.get('url_base') + \"?\" + $.param(this.get_url_data()) + '&' + $.param(args);\n\t }\n\t\n\t });\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(2), __webpack_require__(1)))\n\n/***/ },\n/* 49 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(jQuery) {// dependencies\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(4)], __WEBPACK_AMD_DEFINE_RESULT__ = function (Utils) {\n\t\n\t // grid view templates\n\t return {\n\t // template\n\t grid: function (options) {\n\t var tmpl = '';\n\t if (options.embedded) {\n\t tmpl = this.grid_header(options) + this.grid_table(options);\n\t } else {\n\t tmpl = '
' + '' + '' + '' + this.grid_header(options) + ' ' + ' ' + ' ' + ' ' + '' + ' ' + ' ' + ' ' + ' ' + '
' + this.grid_table(options);\n\t }\n\t\n\t // add info text\n\t if (options.info_text) {\n\t tmpl += '' + options.info_text + '
';\n\t }\n\t\n\t // return\n\t return tmpl;\n\t },\n\t\n\t // template\n\t grid_table: function (options) {\n\t return '';\n\t },\n\t\n\t // template\n\t grid_header: function (options) {\n\t var tmpl = '';\n\t\n\t // return template\n\t return tmpl;\n\t },\n\t\n\t // template\n\t header: function (options) {\n\t\n\t // start\n\t var tmpl = '';\n\t\n\t // add checkbox\n\t if (options.show_item_checkboxes) {\n\t tmpl += '';\n\t if (options.items.length > 0) {\n\t tmpl += ' ' + ' ';\n\t }\n\t tmpl += ' ';\n\t }\n\t\n\t // create header elements\n\t for (var i in options.columns) {\n\t var column = options.columns[i];\n\t if (column.visible) {\n\t tmpl += '';\n\t if (column.href) {\n\t tmpl += '' + column.label + ' ';\n\t } else {\n\t tmpl += column.label;\n\t }\n\t tmpl += '' + column.extra + ' ' + ' ';\n\t }\n\t }\n\t\n\t // finalize\n\t tmpl += ' ';\n\t\n\t // return template\n\t return tmpl;\n\t },\n\t\n\t // template\n\t body: function (options) {\n\t // initialize\n\t var tmpl = '';\n\t var num_rows_rendered = 0;\n\t var items_length = options.items.length;\n\t\n\t // empty grid?\n\t if (items_length == 0) {\n\t // No results.\n\t tmpl += 'No Items ';\n\t num_rows_rendered = 1;\n\t }\n\t\n\t // create rows\n\t for (var i in options.items) {\n\t\n\t // encode ids\n\t var item = options.items[i];\n\t var encoded_id = item.encode_id;\n\t var popupmenu_id = 'grid-' + i + '-popup';\n\t\n\t // Tag current\n\t tmpl += '';\n\t\n\t // Item selection column\n\t if (options.show_item_checkboxes) {\n\t tmpl += '' + ' ' + ' ';\n\t }\n\t\n\t // Data columns\n\t for (j in options.columns) {\n\t var column = options.columns[j];\n\t if (column.visible) {\n\t // Nowrap\n\t var nowrap = '';\n\t if (column.nowrap) {\n\t nowrap = 'style=\"white-space:nowrap;\"';\n\t }\n\t\n\t // get column settings\n\t var column_settings = item.column_config[column.label];\n\t\n\t // load attributes\n\t var link = column_settings.link;\n\t var value = column_settings.value;\n\t var target = column_settings.target;\n\t\n\t // unescape value\n\t if (jQuery.type(value) === 'string') {\n\t value = value.replace(/\\/\\//g, '/');\n\t }\n\t\n\t // Attach popup menu?\n\t var id = '';\n\t var cls = '';\n\t if (column.attach_popup) {\n\t id = 'grid-' + i + '-popup';\n\t cls = 'menubutton';\n\t if (link != '') {\n\t cls += ' split';\n\t }\n\t cls += ' popup';\n\t }\n\t\n\t // Check for row wrapping\n\t tmpl += '';\n\t\n\t // Link\n\t if (link) {\n\t if (options.operations.length != 0) {\n\t tmpl += '';\n\t }\n\t tmpl += '';\n\t if (options.operations.length != 0) {\n\t tmpl += '
';\n\t }\n\t } else {\n\t tmpl += '' + (value || '') + '
';\n\t }\n\t tmpl += ' ';\n\t }\n\t }\n\t tmpl += ' ';\n\t num_rows_rendered++;\n\t }\n\t return tmpl;\n\t },\n\t\n\t // template\n\t footer: function (options) {\n\t\n\t // create template string\n\t var tmpl = '';\n\t\n\t // paging\n\t if (options.use_paging && options.num_pages > 1) {\n\t // get configuration\n\t var num_page_links = options.num_page_links;\n\t var cur_page_num = options.cur_page_num;\n\t var num_pages = options.num_pages;\n\t\n\t // First pass on min page.\n\t var page_link_range = num_page_links / 2;\n\t var min_page = cur_page_num - page_link_range;\n\t var min_offset = 0;\n\t if (min_page <= 0) {\n\t // Min page is too low.\n\t min_page = 1;\n\t min_offset = page_link_range - (cur_page_num - min_page);\n\t }\n\t\n\t // Set max page.\n\t var max_range = page_link_range + min_offset;\n\t var max_page = cur_page_num + max_range;\n\t if (max_page <= num_pages) {\n\t // Max page is fine.\n\t max_offset = 0;\n\t } else {\n\t // Max page is too high.\n\t max_page = num_pages;\n\t // +1 to account for the +1 in the loop below.\n\t max_offset = max_range - (max_page + 1 - cur_page_num);\n\t }\n\t\n\t // Second and final pass on min page to add any unused\n\t // offset from max to min.\n\t if (max_offset != 0) {\n\t min_page -= max_offset;\n\t if (min_page < 1) {\n\t min_page = 1;\n\t }\n\t }\n\t\n\t // template header\n\t tmpl += '';\n\t if (options.show_item_checkboxes) {\n\t tmpl += ' ';\n\t }\n\t tmpl += '' + '' + 'Page:';\n\t\n\t if (min_page > 1) {\n\t tmpl += '1 ...';\n\t }\n\t\n\t // create page urls\n\t for (var page_index = min_page; page_index < max_page + 1; page_index++) {\n\t\n\t if (page_index == options.cur_page_num) {\n\t tmpl += '' + page_index + ' ';\n\t } else {\n\t tmpl += '' + page_index + ' ';\n\t }\n\t }\n\t\n\t // show last page\n\t if (max_page < num_pages) {\n\t tmpl += '...' + '' + num_pages + ' ';\n\t }\n\t tmpl += ' ';\n\t\n\t // Show all link\n\t tmpl += ' | Show All ' + ' ' + ' ';\n\t }\n\t\n\t // Grid operations for multiple items.\n\t if (options.show_item_checkboxes) {\n\t // start template\n\t tmpl += '' + ' ' + ' ' + '' + 'For selected items: ';\n\t\n\t // configure buttons for operations\n\t for (i in options.operations) {\n\t var operation = options.operations[i];\n\t if (operation.allow_multiple) {\n\t tmpl += ' ';\n\t }\n\t }\n\t\n\t // finalize template\n\t tmpl += ' ' + ' ';\n\t }\n\t\n\t // count global operations\n\t var found_global = false;\n\t for (i in options.operations) {\n\t if (options.operations[i].global_operation) {\n\t found_global = true;\n\t break;\n\t }\n\t }\n\t\n\t // add global operations\n\t if (found_global) {\n\t tmpl += '' + '';\n\t for (i in options.operations) {\n\t var operation = options.operations[i];\n\t if (operation.global_operation) {\n\t tmpl += '' + operation.label + ' ';\n\t }\n\t }\n\t tmpl += ' ' + ' ';\n\t }\n\t\n\t // add legend\n\t if (options.legend) {\n\t tmpl += '' + '' + options.legend + ' ' + ' ';\n\t }\n\t\n\t // return\n\t return tmpl;\n\t },\n\t\n\t // template\n\t message: function (options) {\n\t return '' + '
' + options.message + '
' + '
' + '';\n\t },\n\t\n\t // template\n\t grid_filters: function (options) {\n\t\n\t // get filters\n\t var default_filter_dict = options.default_filter_dict;\n\t var filters = options.filters;\n\t\n\t // show advanced search if flag set or if there are filters for advanced search fields\n\t var advanced_search_display = 'none';\n\t if (options.advanced_search) {\n\t advanced_search_display = 'block';\n\t }\n\t\n\t // identify columns with advanced filtering\n\t var show_advanced_search_link = false;\n\t for (var i in options.columns) {\n\t var column = options.columns[i];\n\t if (column.filterable == 'advanced') {\n\t var column_key = column.key;\n\t var f_key = filters[column_key];\n\t var d_key = default_filter_dict[column_key];\n\t if (f_key && d_key && f_key != d_key) {\n\t advanced_search_display = 'block';\n\t }\n\t show_advanced_search_link = true;\n\t }\n\t }\n\t\n\t // hide standard search if advanced is shown\n\t var standard_search_display = 'block';\n\t if (advanced_search_display == 'block') {\n\t standard_search_display = 'none';\n\t }\n\t\n\t //\n\t // standard search\n\t //\n\t var tmpl = '' + '
' + '' + '' + '';\n\t\n\t // add standard filters\n\t for (var i in options.columns) {\n\t var column = options.columns[i];\n\t if (column.filterable == 'standard') {\n\t tmpl += this.grid_column_filter(options, column);\n\t }\n\t }\n\t\n\t // finalize standard search\n\t tmpl += '
' + ' ' + ' ' + '' + '';\n\t\n\t // show advanced search link in standard display\n\t if (show_advanced_search_link) {\n\t tmpl += 'Advanced Search ';\n\t }\n\t\n\t // finalize standard search display\n\t tmpl += ' ' + ' ' + '
' + '
';\n\t\n\t //\n\t // advanced search\n\t //\n\t tmpl += '' + '
' + '' + '' + 'Close Advanced Search ' + ' ' + ' ';\n\t\n\t // add advanced filters\n\t for (var i in options.columns) {\n\t var column = options.columns[i];\n\t if (column.filterable == 'advanced') {\n\t tmpl += this.grid_column_filter(options, column);\n\t }\n\t }\n\t\n\t // finalize advanced search template\n\t tmpl += '
' + '
';\n\t\n\t // return template\n\t return tmpl;\n\t },\n\t\n\t // template\n\t grid_column_filter: function (options, column) {\n\t\n\t // collect parameters\n\t var default_filter_dict = options.default_filter_dict;\n\t var filters = options.filters;\n\t var column_label = column.label;\n\t var column_key = column.key;\n\t if (column.filterable == 'advanced') {\n\t column_label = column_label.toLowerCase();\n\t }\n\t\n\t // start\n\t var tmpl = '';\n\t\n\t if (column.filterable == 'advanced') {\n\t tmpl += '' + column_label + ': ';\n\t }\n\t tmpl += '';\n\t if (column.is_text) {\n\t tmpl += '';\n\t } else {\n\t // filter criteria\n\t tmpl += '';\n\t\n\t // add category filters\n\t var seperator = false;\n\t for (cf_label in options.categorical_filters[column_key]) {\n\t // get category filter\n\t var cf = options.categorical_filters[column_key][cf_label];\n\t\n\t // each filter will have only a single argument, so get that single argument\n\t var cf_key = '';\n\t var cf_arg = '';\n\t for (key in cf) {\n\t cf_key = key;\n\t cf_arg = cf[key];\n\t }\n\t\n\t // add seperator\n\t if (seperator) {\n\t tmpl += ' | ';\n\t }\n\t seperator = true;\n\t\n\t // add category\n\t var filter = filters[column_key];\n\t if (filter && cf[column_key] && filter == cf_arg) {\n\t tmpl += '' + cf_label + ' ';\n\t } else {\n\t tmpl += '' + '' + cf_label + ' ' + ' ';\n\t }\n\t }\n\t tmpl += ' ';\n\t }\n\t tmpl += ' ' + ' ';\n\t\n\t // return template\n\t return tmpl;\n\t },\n\t\n\t // template for filter items\n\t filter_element: function (filter_key, filter_value) {\n\t filter_value = Utils.sanitize(filter_value);\n\t return '' + filter_value + '' + ' ' + ' ' + ' ';\n\t }\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))\n\n/***/ },\n/* 50 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(_) {!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(41), __webpack_require__(86), __webpack_require__(5)], __WEBPACK_AMD_DEFINE_RESULT__ = function (DC_MODEL, HISTORY_CONTENT, _l) {\n\t\n\t 'use strict';\n\t\n\t /*==============================================================================\n\t \n\t Models for DatasetCollections contained within a history.\n\t \n\t TODO:\n\t these might be compactable to one class if some duplication with\n\t collection-model is used.\n\t \n\t ==============================================================================*/\n\t\n\t var hcontentMixin = HISTORY_CONTENT.HistoryContentMixin,\n\t ListDC = DC_MODEL.ListDatasetCollection,\n\t PairDC = DC_MODEL.PairDatasetCollection,\n\t ListPairedDC = DC_MODEL.ListPairedDatasetCollection,\n\t ListOfListsDC = DC_MODEL.ListOfListsDatasetCollection;\n\t\n\t //==============================================================================\n\t /** Override to post to contents route w/o id. */\n\t function buildHDCASave(_super) {\n\t return function _save(attributes, options) {\n\t if (this.isNew()) {\n\t options = options || {};\n\t options.url = this.urlRoot + this.get('history_id') + '/contents';\n\t attributes = attributes || {};\n\t attributes.type = 'dataset_collection';\n\t }\n\t return _super.call(this, attributes, options);\n\t };\n\t }\n\t\n\t //==============================================================================\n\t /** @class Backbone model for List Dataset Collection within a History.\n\t */\n\t var HistoryListDatasetCollection = ListDC.extend(hcontentMixin).extend(\n\t /** @lends HistoryListDatasetCollection.prototype */{\n\t\n\t defaults: _.extend(_.clone(ListDC.prototype.defaults), {\n\t history_content_type: 'dataset_collection',\n\t collection_type: 'list',\n\t model_class: 'HistoryDatasetCollectionAssociation'\n\t }),\n\t\n\t /** Override to post to contents route w/o id. */\n\t save: buildHDCASave(ListDC.prototype.save),\n\t\n\t /** String representation. */\n\t toString: function () {\n\t return 'History' + ListDC.prototype.toString.call(this);\n\t }\n\t });\n\t\n\t //==============================================================================\n\t /** @class Backbone model for Pair Dataset Collection within a History.\n\t * @constructs\n\t */\n\t var HistoryPairDatasetCollection = PairDC.extend(hcontentMixin).extend(\n\t /** @lends HistoryPairDatasetCollection.prototype */{\n\t\n\t defaults: _.extend(_.clone(PairDC.prototype.defaults), {\n\t history_content_type: 'dataset_collection',\n\t collection_type: 'paired',\n\t model_class: 'HistoryDatasetCollectionAssociation'\n\t }),\n\t\n\t /** Override to post to contents route w/o id. */\n\t save: buildHDCASave(PairDC.prototype.save),\n\t\n\t /** String representation. */\n\t toString: function () {\n\t return 'History' + PairDC.prototype.toString.call(this);\n\t }\n\t });\n\t\n\t //==============================================================================\n\t /** @class Backbone model for List of Pairs Dataset Collection within a History. */\n\t var HistoryListPairedDatasetCollection = ListPairedDC.extend(hcontentMixin).extend({\n\t\n\t defaults: _.extend(_.clone(ListPairedDC.prototype.defaults), {\n\t history_content_type: 'dataset_collection',\n\t collection_type: 'list:paired',\n\t model_class: 'HistoryDatasetCollectionAssociation'\n\t }),\n\t\n\t /** Override to post to contents route w/o id. */\n\t save: buildHDCASave(ListPairedDC.prototype.save),\n\t\n\t /** String representation. */\n\t toString: function () {\n\t return 'History' + ListPairedDC.prototype.toString.call(this);\n\t }\n\t });\n\t\n\t //==============================================================================\n\t /** @class Backbone model for List of Lists Dataset Collection within a History. */\n\t var HistoryListOfListsDatasetCollection = ListOfListsDC.extend(hcontentMixin).extend({\n\t\n\t defaults: _.extend(_.clone(ListOfListsDC.prototype.defaults), {\n\t history_content_type: 'dataset_collection',\n\t collection_type: 'list:list',\n\t model_class: 'HistoryDatasetCollectionAssociation'\n\t }),\n\t\n\t /** Override to post to contents route w/o id. */\n\t save: buildHDCASave(ListOfListsDC.prototype.save),\n\t\n\t /** String representation. */\n\t toString: function () {\n\t return ['HistoryListOfListsDatasetCollection(', this.get('name'), ')'].join('');\n\t }\n\t });\n\t\n\t //==============================================================================\n\t return {\n\t HistoryListDatasetCollection: HistoryListDatasetCollection,\n\t HistoryPairDatasetCollection: HistoryPairDatasetCollection,\n\t HistoryListPairedDatasetCollection: HistoryListPairedDatasetCollection,\n\t HistoryListOfListsDatasetCollection: HistoryListOfListsDatasetCollection\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ },\n/* 51 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(_, jQuery, Backbone) {!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(77), __webpack_require__(84), __webpack_require__(50), __webpack_require__(53), __webpack_require__(6), __webpack_require__(147)], __WEBPACK_AMD_DEFINE_RESULT__ = function (CONTROLLED_FETCH_COLLECTION, HDA_MODEL, HDCA_MODEL, HISTORY_PREFS, BASE_MVC, AJAX_QUEUE) {\n\t 'use strict';\n\t\n\t //==============================================================================\n\t\n\t var _super = CONTROLLED_FETCH_COLLECTION.PaginatedCollection;\n\t /** @class Backbone collection for history content.\n\t * NOTE: history content seems like a dataset collection, but differs in that it is mixed:\n\t * each element can be either an HDA (dataset) or a DatasetCollection and co-exist on\n\t * the same level.\n\t * Dataset collections on the other hand are not mixed and (so far) can only contain either\n\t * HDAs or child dataset collections on one level.\n\t * This is why this does not inherit from any of the DatasetCollections (currently).\n\t */\n\t var HistoryContents = _super.extend(BASE_MVC.LoggableMixin).extend({\n\t _logNamespace: 'history',\n\t\n\t // ........................................................................ composite collection\n\t /** since history content is a mix, override model fn into a factory, creating based on history_content_type */\n\t model: function (attrs, options) {\n\t if (attrs.history_content_type === \"dataset\") {\n\t return new HDA_MODEL.HistoryDatasetAssociation(attrs, options);\n\t } else if (attrs.history_content_type === \"dataset_collection\") {\n\t switch (attrs.collection_type) {\n\t case 'list':\n\t return new HDCA_MODEL.HistoryListDatasetCollection(attrs, options);\n\t case 'paired':\n\t return new HDCA_MODEL.HistoryPairDatasetCollection(attrs, options);\n\t case 'list:paired':\n\t return new HDCA_MODEL.HistoryListPairedDatasetCollection(attrs, options);\n\t case 'list:list':\n\t return new HDCA_MODEL.HistoryListOfListsDatasetCollection(attrs, options);\n\t }\n\t // This is a hack inside a hack:\n\t // Raise a plain object with validationError to fake a model.validationError\n\t // (since we don't have a model to use validate with)\n\t // (the outer hack being the mixed content/model function in this collection)\n\t var msg = 'Unknown collection_type: ' + attrs.collection_type;\n\t console.warn(msg, attrs);\n\t return { validationError: msg };\n\t }\n\t return { validationError: 'Unknown history_content_type: ' + attrs.history_content_type };\n\t },\n\t\n\t // ........................................................................ set up\n\t limitPerPage: 500,\n\t\n\t /** @type {Integer} how many contents per call to fetch when using progressivelyFetchDetails */\n\t limitPerProgressiveFetch: 500,\n\t\n\t /** @type {String} order used here and when fetching from server */\n\t order: 'hid',\n\t\n\t /** root api url */\n\t urlRoot: Galaxy.root + 'api/histories',\n\t\n\t /** complete api url */\n\t url: function () {\n\t return this.urlRoot + '/' + this.historyId + '/contents';\n\t },\n\t\n\t /** Set up */\n\t initialize: function (models, options) {\n\t options = options || {};\n\t _super.prototype.initialize.call(this, models, options);\n\t\n\t this.history = options.history || null;\n\t this.setHistoryId(options.historyId || null);\n\t /** @type {Boolean} does this collection contain and fetch deleted elements */\n\t this.includeDeleted = options.includeDeleted || this.includeDeleted;\n\t /** @type {Boolean} does this collection contain and fetch non-visible elements */\n\t this.includeHidden = options.includeHidden || this.includeHidden;\n\t\n\t // backbonejs uses collection.model.prototype.idAttribute to determine if a model is *already* in a collection\n\t // and either merged or replaced. In this case, our 'model' is a function so we need to add idAttribute\n\t // manually here - if we don't, contents will not merge but be replaced/swapped.\n\t this.model.prototype.idAttribute = 'type_id';\n\t },\n\t\n\t setHistoryId: function (newId) {\n\t this.historyId = newId;\n\t this._setUpWebStorage();\n\t },\n\t\n\t /** Set up client side storage. Currently PersistanStorage keyed under 'history:' */\n\t _setUpWebStorage: function (initialSettings) {\n\t // TODO: use initialSettings\n\t if (!this.historyId) {\n\t return;\n\t }\n\t this.storage = new HISTORY_PREFS.HistoryPrefs({\n\t id: HISTORY_PREFS.HistoryPrefs.historyStorageKey(this.historyId)\n\t });\n\t this.trigger('new-storage', this.storage, this);\n\t\n\t this.on({\n\t 'include-deleted': function (newVal) {\n\t this.storage.includeDeleted(newVal);\n\t },\n\t 'include-hidden': function (newVal) {\n\t this.storage.includeHidden(newVal);\n\t }\n\t });\n\t\n\t this.includeDeleted = this.storage.includeDeleted() || false;\n\t this.includeHidden = this.storage.includeHidden() || false;\n\t return this;\n\t },\n\t\n\t // ........................................................................ common queries\n\t /** @type {Object} map of collection available sorting orders containing comparator fns */\n\t comparators: _.extend(_.clone(_super.prototype.comparators), {\n\t 'name': BASE_MVC.buildComparator('name', { ascending: true }),\n\t 'name-dsc': BASE_MVC.buildComparator('name', { ascending: false }),\n\t 'hid': BASE_MVC.buildComparator('hid', { ascending: false }),\n\t 'hid-asc': BASE_MVC.buildComparator('hid', { ascending: true })\n\t }),\n\t\n\t /** Get every model in this collection not in a 'ready' state (running). */\n\t running: function () {\n\t return this.filter(function (c) {\n\t return !c.inReadyState();\n\t });\n\t },\n\t\n\t /** return contents that are not ready and not deleted/hidden */\n\t runningAndActive: function () {\n\t return this.filter(function (c) {\n\t return !c.inReadyState() && c.get('visible')\n\t // TODO: deletedOrPurged?\n\t && !c.get('deleted');\n\t });\n\t },\n\t\n\t /** Get the model with the given hid\n\t * @param {Int} hid the hid to search for\n\t * @returns {HistoryDatasetAssociation} the model with the given hid or undefined if not found\n\t */\n\t getByHid: function (hid) {\n\t // note: there *can* be more than one content with a given hid, this finds the first based on order\n\t return this.findWhere({ hid: hid });\n\t },\n\t\n\t /** return true if all contents have details */\n\t haveDetails: function () {\n\t return this.all(function (c) {\n\t return c.hasDetails();\n\t });\n\t },\n\t\n\t // ........................................................................ hidden / deleted\n\t /** return a new contents collection of only hidden items */\n\t hidden: function () {\n\t return this.filter(function (c) {\n\t return c.hidden();\n\t });\n\t },\n\t\n\t /** return a new contents collection of only hidden items */\n\t deleted: function () {\n\t return this.filter(function (c) {\n\t return c.get('deleted');\n\t });\n\t },\n\t\n\t /** return a new contents collection of only hidden items */\n\t visibleAndUndeleted: function () {\n\t return this.filter(function (c) {\n\t return c.get('visible') &&\n\t // TODO: deletedOrPurged?\n\t !c.get('deleted');\n\t });\n\t },\n\t\n\t /** create a setter in order to publish the change */\n\t setIncludeDeleted: function (setting, options) {\n\t if (_.isBoolean(setting) && setting !== this.includeDeleted) {\n\t this.includeDeleted = setting;\n\t if (_.result(options, 'silent')) {\n\t return;\n\t }\n\t this.trigger('include-deleted', setting, this);\n\t }\n\t },\n\t\n\t /** create a setter in order to publish the change */\n\t setIncludeHidden: function (setting, options) {\n\t if (_.isBoolean(setting) && setting !== this.includeHidden) {\n\t this.includeHidden = setting;\n\t options = options || {};\n\t if (_.result(options, 'silent')) {\n\t return;\n\t }\n\t this.trigger('include-hidden', setting, this);\n\t }\n\t },\n\t\n\t // ........................................................................ ajax\n\t // ............ controlled fetch collection\n\t /** override to get expanded ids from sessionStorage and pass to API as details */\n\t fetch: function (options) {\n\t options = options || {};\n\t if (this.historyId && !options.details) {\n\t var prefs = HISTORY_PREFS.HistoryPrefs.get(this.historyId).toJSON();\n\t if (!_.isEmpty(prefs.expandedIds)) {\n\t options.details = _.values(prefs.expandedIds).join(',');\n\t }\n\t }\n\t return _super.prototype.fetch.call(this, options);\n\t },\n\t\n\t // ............. ControlledFetch stuff\n\t /** override to include the API versioning flag */\n\t _buildFetchData: function (options) {\n\t return _.extend(_super.prototype._buildFetchData.call(this, options), {\n\t v: 'dev'\n\t });\n\t },\n\t\n\t /** Extend to include details and version */\n\t _fetchParams: _super.prototype._fetchParams.concat([\n\t // TODO: remove (the need for) both\n\t /** version */\n\t 'v',\n\t /** dataset ids to get full details of */\n\t 'details']),\n\t\n\t /** override to add deleted/hidden filters */\n\t _buildFetchFilters: function (options) {\n\t var superFilters = _super.prototype._buildFetchFilters.call(this, options) || {};\n\t var filters = {};\n\t if (!this.includeDeleted) {\n\t filters.deleted = false;\n\t filters.purged = false;\n\t }\n\t if (!this.includeHidden) {\n\t filters.visible = true;\n\t }\n\t return _.defaults(superFilters, filters);\n\t },\n\t\n\t // ............ paginated collection\n\t getTotalItemCount: function () {\n\t return this.history.contentsShown();\n\t },\n\t\n\t // ............ history contents specific ajax\n\t /** override to filter requested contents to those updated after the Date 'since' */\n\t fetchUpdated: function (since, options) {\n\t if (since) {\n\t options = options || { filters: {} };\n\t options.remove = false;\n\t options.filters = {\n\t 'update_time-ge': since.toISOString(),\n\t // workflows will produce hidden datasets (non-output datasets) that still\n\t // need to be updated in the collection or they'll update forever\n\t // we can remove the default visible filter by using an 'empty' value\n\t visible: ''\n\t };\n\t }\n\t return this.fetch(options);\n\t },\n\t\n\t /** fetch all the deleted==true contents of this collection */\n\t fetchDeleted: function (options) {\n\t options = options || {};\n\t var self = this;\n\t options.filters = _.extend(options.filters, {\n\t // all deleted, purged or not\n\t deleted: true,\n\t purged: undefined\n\t });\n\t options.remove = false;\n\t\n\t self.trigger('fetching-deleted', self);\n\t return self.fetch(options).always(function () {\n\t self.trigger('fetching-deleted-done', self);\n\t });\n\t },\n\t\n\t /** fetch all the visible==false contents of this collection */\n\t fetchHidden: function (options) {\n\t options = options || {};\n\t var self = this;\n\t options.filters = _.extend(options.filters, {\n\t visible: false\n\t });\n\t options.remove = false;\n\t\n\t self.trigger('fetching-hidden', self);\n\t return self.fetch(options).always(function () {\n\t self.trigger('fetching-hidden-done', self);\n\t });\n\t },\n\t\n\t /** fetch detailed model data for all contents in this collection */\n\t fetchAllDetails: function (options) {\n\t options = options || {};\n\t var detailsFlag = { details: 'all' };\n\t options.data = _.extend(options.data || {}, detailsFlag);\n\t return this.fetch(options);\n\t },\n\t\n\t /** specialty fetch method for retrieving the element_counts of all hdcas in the history */\n\t fetchCollectionCounts: function (options) {\n\t options = options || {};\n\t options.keys = ['type_id', 'element_count'].join(',');\n\t options.filters = _.extend(options.filters || {}, {\n\t history_content_type: 'dataset_collection'\n\t });\n\t options.remove = false;\n\t return this.fetch(options);\n\t },\n\t\n\t // ............. quasi-batch ops\n\t // TODO: to batch\n\t /** helper that fetches using filterParams then calls save on each fetched using updateWhat as the save params */\n\t _filterAndUpdate: function (filterParams, updateWhat) {\n\t var self = this;\n\t var idAttribute = self.model.prototype.idAttribute;\n\t var updateArgs = [updateWhat];\n\t\n\t return self.fetch({ filters: filterParams, remove: false }).then(function (fetched) {\n\t // convert filtered json array to model array\n\t fetched = fetched.reduce(function (modelArray, currJson, i) {\n\t var model = self.get(currJson[idAttribute]);\n\t return model ? modelArray.concat(model) : modelArray;\n\t }, []);\n\t return self.ajaxQueue('save', updateArgs, fetched);\n\t });\n\t },\n\t\n\t /** using a queue, perform ajaxFn on each of the models in this collection */\n\t ajaxQueue: function (ajaxFn, args, collection) {\n\t collection = collection || this.models;\n\t return new AJAX_QUEUE.AjaxQueue(collection.slice().reverse().map(function (content, i) {\n\t var fn = _.isString(ajaxFn) ? content[ajaxFn] : ajaxFn;\n\t return function () {\n\t return fn.apply(content, args);\n\t };\n\t })).deferred;\n\t },\n\t\n\t /** fetch contents' details in batches of limitPerCall - note: only get searchable details here */\n\t progressivelyFetchDetails: function (options) {\n\t options = options || {};\n\t var deferred = jQuery.Deferred();\n\t var self = this;\n\t var limit = options.limitPerCall || self.limitPerProgressiveFetch;\n\t // TODO: only fetch tags and annotations if specifically requested\n\t var searchAttributes = HDA_MODEL.HistoryDatasetAssociation.prototype.searchAttributes;\n\t var detailKeys = searchAttributes.join(',');\n\t\n\t function _recursivelyFetch(offset) {\n\t offset = offset || 0;\n\t var _options = _.extend(_.clone(options), {\n\t view: 'summary',\n\t keys: detailKeys,\n\t limit: limit,\n\t offset: offset,\n\t reset: offset === 0,\n\t remove: false\n\t });\n\t\n\t _.defer(function () {\n\t self.fetch.call(self, _options).fail(deferred.reject).done(function (response) {\n\t deferred.notify(response, limit, offset);\n\t if (response.length !== limit) {\n\t self.allFetched = true;\n\t deferred.resolve(response, limit, offset);\n\t } else {\n\t _recursivelyFetch(offset + limit);\n\t }\n\t });\n\t });\n\t }\n\t _recursivelyFetch();\n\t return deferred;\n\t },\n\t\n\t /** does some bit of JSON represent something that can be copied into this contents collection */\n\t isCopyable: function (contentsJSON) {\n\t var copyableModelClasses = ['HistoryDatasetAssociation', 'HistoryDatasetCollectionAssociation'];\n\t return _.isObject(contentsJSON) && contentsJSON.id && _.contains(copyableModelClasses, contentsJSON.model_class);\n\t },\n\t\n\t /** copy an existing, accessible hda into this collection */\n\t copy: function (json) {\n\t // TODO: somehow showhorn all this into 'save'\n\t var id, type, contentType;\n\t if (_.isString(json)) {\n\t id = json;\n\t contentType = 'hda';\n\t type = 'dataset';\n\t } else {\n\t id = json.id;\n\t contentType = {\n\t 'HistoryDatasetAssociation': 'hda',\n\t 'LibraryDatasetDatasetAssociation': 'ldda',\n\t 'HistoryDatasetCollectionAssociation': 'hdca'\n\t }[json.model_class] || 'hda';\n\t type = contentType === 'hdca' ? 'dataset_collection' : 'dataset';\n\t }\n\t var collection = this,\n\t xhr = jQuery.ajax(this.url(), {\n\t method: 'POST',\n\t contentType: 'application/json',\n\t data: JSON.stringify({\n\t content: id,\n\t source: contentType,\n\t type: type\n\t })\n\t }).done(function (response) {\n\t collection.add([response], { parse: true });\n\t }).fail(function (error, status, message) {\n\t collection.trigger('error', collection, xhr, {}, 'Error copying contents', { type: type, id: id, source: contentType });\n\t });\n\t return xhr;\n\t },\n\t\n\t /** create a new HDCA in this collection */\n\t createHDCA: function (elementIdentifiers, collectionType, name, hideSourceItems, options) {\n\t // normally collection.create returns the new model, but we need the promise from the ajax, so we fake create\n\t //precondition: elementIdentifiers is an array of plain js objects\n\t // in the proper form to create the collectionType\n\t var hdca = this.model({\n\t history_content_type: 'dataset_collection',\n\t collection_type: collectionType,\n\t history_id: this.historyId,\n\t name: name,\n\t hide_source_items: hideSourceItems || false,\n\t // should probably be able to just send in a bunch of json here and restruct per class\n\t // note: element_identifiers is now (incorrectly) an attribute\n\t element_identifiers: elementIdentifiers\n\t // do not create the model on the client until the ajax returns\n\t });\n\t return hdca.save(options);\n\t },\n\t\n\t // ........................................................................ searching\n\t /** return true if all contents have the searchable attributes */\n\t haveSearchDetails: function () {\n\t return this.allFetched && this.all(function (content) {\n\t // null (which is a valid returned annotation value)\n\t // will return false when using content.has( 'annotation' )\n\t //TODO: a bit hacky - formalize\n\t return _.has(content.attributes, 'annotation');\n\t });\n\t },\n\t\n\t /** return a new collection of contents whose attributes contain the substring matchesWhat */\n\t matches: function (matchesWhat) {\n\t return this.filter(function (content) {\n\t return content.matches(matchesWhat);\n\t });\n\t },\n\t\n\t // ........................................................................ misc\n\t /** In this override, copy the historyId to the clone */\n\t clone: function () {\n\t var clone = Backbone.Collection.prototype.clone.call(this);\n\t clone.historyId = this.historyId;\n\t return clone;\n\t },\n\t\n\t /** String representation. */\n\t toString: function () {\n\t return ['HistoryContents(', [this.historyId, this.length].join(), ')'].join('');\n\t }\n\t });\n\t\n\t //==============================================================================\n\t return {\n\t HistoryContents: HistoryContents\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2), __webpack_require__(1), __webpack_require__(3)))\n\n/***/ },\n/* 52 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, jQuery, _, $) {\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(51), __webpack_require__(53), __webpack_require__(77), __webpack_require__(4), __webpack_require__(6), __webpack_require__(5)], __WEBPACK_AMD_DEFINE_RESULT__ = function (HISTORY_CONTENTS, HISTORY_PREFS, CONTROLLED_FETCH_COLLECTION, UTILS, BASE_MVC, _l) {\n\t 'use strict';\n\t\n\t //==============================================================================\n\t /** @class Model for a Galaxy history resource - both a record of user\n\t * tool use and a collection of the datasets those tools produced.\n\t * @name History\n\t * @augments Backbone.Model\n\t */\n\t\n\t var History = Backbone.Model.extend(BASE_MVC.LoggableMixin).extend(BASE_MVC.mixin(BASE_MVC.SearchableModelMixin, /** @lends History.prototype */{\n\t _logNamespace: 'history',\n\t\n\t /** ms between fetches when checking running jobs/datasets for updates */\n\t UPDATE_DELAY: 4000,\n\t\n\t // values from api (may need more)\n\t defaults: {\n\t model_class: 'History',\n\t id: null,\n\t name: 'Unnamed History',\n\t state: 'new',\n\t\n\t deleted: false,\n\t contents_active: {},\n\t contents_states: {}\n\t },\n\t\n\t urlRoot: Galaxy.root + 'api/histories',\n\t\n\t contentsClass: HISTORY_CONTENTS.HistoryContents,\n\t\n\t /** What model fields to search with */\n\t searchAttributes: ['name', 'annotation', 'tags'],\n\t\n\t /** Adding title and singular tag */\n\t searchAliases: {\n\t title: 'name',\n\t tag: 'tags'\n\t },\n\t\n\t // ........................................................................ set up/tear down\n\t /** Set up the model\n\t * @param {Object} historyJSON model data for this History\n\t * @param {Object} options any extra settings including logger\n\t */\n\t initialize: function (historyJSON, options) {\n\t options = options || {};\n\t this.logger = options.logger || null;\n\t this.log(this + \".initialize:\", historyJSON, options);\n\t\n\t /** HistoryContents collection of the HDAs contained in this history. */\n\t this.contents = new this.contentsClass([], {\n\t history: this,\n\t historyId: this.get('id'),\n\t order: options.order\n\t });\n\t\n\t this._setUpListeners();\n\t this._setUpCollectionListeners();\n\t\n\t /** cached timeout id for the dataset updater */\n\t this.updateTimeoutId = null;\n\t },\n\t\n\t /** set up any event listeners for this history including those to the contained HDAs\n\t * events: error:contents if an error occurred with the contents collection\n\t */\n\t _setUpListeners: function () {\n\t // if the model's id changes ('current' or null -> an actual id), update the contents history_id\n\t return this.on({\n\t 'error': function (model, xhr, options, msg, details) {\n\t this.clearUpdateTimeout();\n\t },\n\t 'change:id': function (model, newId) {\n\t if (this.contents) {\n\t this.contents.historyId = newId;\n\t }\n\t }\n\t });\n\t },\n\t\n\t /** event handlers for the contents submodels */\n\t _setUpCollectionListeners: function () {\n\t if (!this.contents) {\n\t return this;\n\t }\n\t // bubble up errors\n\t return this.listenTo(this.contents, {\n\t 'error': function () {\n\t this.trigger.apply(this, jQuery.makeArray(arguments));\n\t }\n\t });\n\t },\n\t\n\t // ........................................................................ derived attributes\n\t /** */\n\t contentsShown: function () {\n\t var contentsActive = this.get('contents_active');\n\t var shown = contentsActive.active || 0;\n\t shown += this.contents.includeDeleted ? contentsActive.deleted : 0;\n\t shown += this.contents.includeHidden ? contentsActive.hidden : 0;\n\t return shown;\n\t },\n\t\n\t /** convert size in bytes to a more human readable version */\n\t nice_size: function () {\n\t var size = this.get('size');\n\t return size ? UTILS.bytesToString(size, true, 2) : _l('(empty)');\n\t },\n\t\n\t /** override to add nice_size */\n\t toJSON: function () {\n\t return _.extend(Backbone.Model.prototype.toJSON.call(this), {\n\t nice_size: this.nice_size()\n\t });\n\t },\n\t\n\t /** override to allow getting nice_size */\n\t get: function (key) {\n\t if (key === 'nice_size') {\n\t return this.nice_size();\n\t }\n\t return Backbone.Model.prototype.get.apply(this, arguments);\n\t },\n\t\n\t // ........................................................................ common queries\n\t /** T/F is this history owned by the current user (Galaxy.user)\n\t * Note: that this will return false for an anon user even if the history is theirs.\n\t */\n\t ownedByCurrUser: function () {\n\t // no currUser\n\t if (!Galaxy || !Galaxy.user) {\n\t return false;\n\t }\n\t // user is anon or history isn't owned\n\t if (Galaxy.user.isAnonymous() || Galaxy.user.id !== this.get('user_id')) {\n\t return false;\n\t }\n\t return true;\n\t },\n\t\n\t /** Return the number of running jobs assoc with this history (note: unknown === 0) */\n\t numOfUnfinishedJobs: function () {\n\t var unfinishedJobIds = this.get('non_ready_jobs');\n\t return unfinishedJobIds ? unfinishedJobIds.length : 0;\n\t },\n\t\n\t /** Return the number of running hda/hdcas in this history (note: unknown === 0) */\n\t numOfUnfinishedShownContents: function () {\n\t return this.contents.runningAndActive().length || 0;\n\t },\n\t\n\t // ........................................................................ updates\n\t _fetchContentRelatedAttributes: function () {\n\t var contentRelatedAttrs = ['size', 'non_ready_jobs', 'contents_active', 'hid_counter'];\n\t return this.fetch({ data: $.param({ keys: contentRelatedAttrs.join(',') }) });\n\t },\n\t\n\t /** check for any changes since the last time we updated (or fetch all if ) */\n\t refresh: function (options) {\n\t // console.log( this + '.refresh' );\n\t options = options || {};\n\t var self = this;\n\t\n\t // note if there was no previous update time, all summary contents will be fetched\n\t var lastUpdateTime = self.lastUpdateTime;\n\t // if we don't flip this, then a fully-fetched list will not be re-checked via fetch\n\t this.contents.allFetched = false;\n\t var fetchFn = self.contents.currentPage !== 0 ? function () {\n\t return self.contents.fetchPage(self.contents.currentPage);\n\t } : function () {\n\t return self.contents.fetchUpdated(lastUpdateTime);\n\t };\n\t // note: if there was no previous update time, all summary contents will be fetched\n\t return fetchFn().done(function (response, status, xhr) {\n\t var serverResponseDatetime;\n\t try {\n\t serverResponseDatetime = new Date(xhr.getResponseHeader('Date'));\n\t } catch (err) {}\n\t self.lastUpdateTime = serverResponseDatetime || new Date();\n\t self.checkForUpdates(options);\n\t });\n\t },\n\t\n\t /** continuously fetch updated contents every UPDATE_DELAY ms if this history's datasets or jobs are unfinished */\n\t checkForUpdates: function (options) {\n\t // console.log( this + '.checkForUpdates' );\n\t options = options || {};\n\t var delay = this.UPDATE_DELAY;\n\t var self = this;\n\t if (!self.id) {\n\t return;\n\t }\n\t\n\t function _delayThenUpdate() {\n\t // prevent buildup of updater timeouts by clearing previous if any, then set new and cache id\n\t self.clearUpdateTimeout();\n\t self.updateTimeoutId = setTimeout(function () {\n\t self.refresh(options);\n\t }, delay);\n\t }\n\t\n\t // if there are still datasets in the non-ready state, recurse into this function with the new time\n\t var nonReadyContentCount = this.numOfUnfinishedShownContents();\n\t // console.log( 'nonReadyContentCount:', nonReadyContentCount );\n\t if (nonReadyContentCount > 0) {\n\t _delayThenUpdate();\n\t } else {\n\t // no datasets are running, but currently runnning jobs may still produce new datasets\n\t // see if the history has any running jobs and continue to update if so\n\t // (also update the size for the user in either case)\n\t self._fetchContentRelatedAttributes().done(function (historyData) {\n\t // console.log( 'non_ready_jobs:', historyData.non_ready_jobs );\n\t if (self.numOfUnfinishedJobs() > 0) {\n\t _delayThenUpdate();\n\t } else {\n\t // otherwise, let listeners know that all updates have stopped\n\t self.trigger('ready');\n\t }\n\t });\n\t }\n\t },\n\t\n\t /** clear the timeout and the cached timeout id */\n\t clearUpdateTimeout: function () {\n\t if (this.updateTimeoutId) {\n\t clearTimeout(this.updateTimeoutId);\n\t this.updateTimeoutId = null;\n\t }\n\t },\n\t\n\t // ........................................................................ ajax\n\t /** override to use actual Dates objects for create/update times */\n\t parse: function (response, options) {\n\t var parsed = Backbone.Model.prototype.parse.call(this, response, options);\n\t if (parsed.create_time) {\n\t parsed.create_time = new Date(parsed.create_time);\n\t }\n\t if (parsed.update_time) {\n\t parsed.update_time = new Date(parsed.update_time);\n\t }\n\t return parsed;\n\t },\n\t\n\t /** fetch this histories data (using options) then it's contents (using contentsOptions) */\n\t fetchWithContents: function (options, contentsOptions) {\n\t options = options || {};\n\t var self = this;\n\t\n\t // console.log( this + '.fetchWithContents' );\n\t // TODO: push down to a base class\n\t options.view = 'dev-detailed';\n\t\n\t // fetch history then use history data to fetch (paginated) contents\n\t return this.fetch(options).then(function getContents(history) {\n\t self.contents.history = self;\n\t self.contents.setHistoryId(history.id);\n\t return self.fetchContents(contentsOptions);\n\t });\n\t },\n\t\n\t /** fetch this histories contents, adjusting options based on the stored history preferences */\n\t fetchContents: function (options) {\n\t options = options || {};\n\t var self = this;\n\t\n\t // we're updating, reset the update time\n\t self.lastUpdateTime = new Date();\n\t return self.contents.fetchCurrentPage(options);\n\t },\n\t\n\t /** save this history, _Mark_ing it as deleted (just a flag) */\n\t _delete: function (options) {\n\t if (this.get('deleted')) {\n\t return jQuery.when();\n\t }\n\t return this.save({ deleted: true }, options);\n\t },\n\t /** purge this history, _Mark_ing it as purged and removing all dataset data from the server */\n\t purge: function (options) {\n\t if (this.get('purged')) {\n\t return jQuery.when();\n\t }\n\t return this.save({ deleted: true, purged: true }, options);\n\t },\n\t /** save this history, _Mark_ing it as undeleted */\n\t undelete: function (options) {\n\t if (!this.get('deleted')) {\n\t return jQuery.when();\n\t }\n\t return this.save({ deleted: false }, options);\n\t },\n\t\n\t /** Make a copy of this history on the server\n\t * @param {Boolean} current if true, set the copy as the new current history (default: true)\n\t * @param {String} name name of new history (default: none - server sets to: Copy of )\n\t * @fires copied passed this history and the response JSON from the copy\n\t * @returns {xhr}\n\t */\n\t copy: function (current, name, allDatasets) {\n\t current = current !== undefined ? current : true;\n\t if (!this.id) {\n\t throw new Error('You must set the history ID before copying it.');\n\t }\n\t\n\t var postData = { history_id: this.id };\n\t if (current) {\n\t postData.current = true;\n\t }\n\t if (name) {\n\t postData.name = name;\n\t }\n\t if (!allDatasets) {\n\t postData.all_datasets = false;\n\t }\n\t postData.view = 'dev-detailed';\n\t\n\t var history = this;\n\t var copy = jQuery.post(this.urlRoot, postData);\n\t // if current - queue to setAsCurrent before firing 'copied'\n\t if (current) {\n\t return copy.then(function (response) {\n\t var newHistory = new History(response);\n\t return newHistory.setAsCurrent().done(function () {\n\t history.trigger('copied', history, response);\n\t });\n\t });\n\t }\n\t return copy.done(function (response) {\n\t history.trigger('copied', history, response);\n\t });\n\t },\n\t\n\t setAsCurrent: function () {\n\t var history = this,\n\t xhr = jQuery.getJSON(Galaxy.root + 'history/set_as_current?id=' + this.id);\n\t\n\t xhr.done(function () {\n\t history.trigger('set-as-current', history);\n\t });\n\t return xhr;\n\t },\n\t\n\t // ........................................................................ misc\n\t toString: function () {\n\t return 'History(' + this.get('id') + ',' + this.get('name') + ')';\n\t }\n\t }));\n\t\n\t //==============================================================================\n\t var _collectionSuper = CONTROLLED_FETCH_COLLECTION.InfinitelyScrollingCollection;\n\t /** @class A collection of histories (per user)\n\t * that maintains the current history as the first in the collection.\n\t * New or copied histories become the current history.\n\t */\n\t var HistoryCollection = _collectionSuper.extend(BASE_MVC.LoggableMixin).extend({\n\t _logNamespace: 'history',\n\t\n\t model: History,\n\t /** @type {String} initial order used by collection */\n\t order: 'update_time',\n\t /** @type {Number} limit used for the first fetch (or a reset) */\n\t limitOnFirstFetch: 10,\n\t /** @type {Number} limit used for each subsequent fetch */\n\t limitPerFetch: 10,\n\t\n\t initialize: function (models, options) {\n\t options = options || {};\n\t this.log('HistoryCollection.initialize', models, options);\n\t _collectionSuper.prototype.initialize.call(this, models, options);\n\t\n\t /** @type {boolean} should deleted histories be included */\n\t this.includeDeleted = options.includeDeleted || false;\n\t\n\t /** @type {String} encoded id of the history that's current */\n\t this.currentHistoryId = options.currentHistoryId;\n\t\n\t this.setUpListeners();\n\t // note: models are sent to reset *after* this fn ends; up to this point\n\t // the collection *is empty*\n\t },\n\t\n\t urlRoot: Galaxy.root + 'api/histories',\n\t url: function () {\n\t return this.urlRoot;\n\t },\n\t\n\t /** set up reflexive event handlers */\n\t setUpListeners: function setUpListeners() {\n\t return this.on({\n\t // when a history is deleted, remove it from the collection (if optionally set to do so)\n\t 'change:deleted': function (history) {\n\t // TODO: this becomes complicated when more filters are used\n\t this.debug('change:deleted', this.includeDeleted, history.get('deleted'));\n\t if (!this.includeDeleted && history.get('deleted')) {\n\t this.remove(history);\n\t }\n\t },\n\t // listen for a history copy, setting it to current\n\t 'copied': function (original, newData) {\n\t this.setCurrent(new History(newData, []));\n\t },\n\t // when a history is made current, track the id in the collection\n\t 'set-as-current': function (history) {\n\t var oldCurrentId = this.currentHistoryId;\n\t this.trigger('no-longer-current', oldCurrentId);\n\t this.currentHistoryId = history.id;\n\t }\n\t });\n\t },\n\t\n\t /** override to change view */\n\t _buildFetchData: function (options) {\n\t return _.extend(_collectionSuper.prototype._buildFetchData.call(this, options), {\n\t view: 'dev-detailed'\n\t });\n\t },\n\t\n\t /** override to filter out deleted and purged */\n\t _buildFetchFilters: function (options) {\n\t var superFilters = _collectionSuper.prototype._buildFetchFilters.call(this, options) || {};\n\t var filters = {};\n\t if (!this.includeDeleted) {\n\t filters.deleted = false;\n\t filters.purged = false;\n\t } else {\n\t // force API to return both deleted and non\n\t //TODO: when the API is updated, remove this\n\t filters.deleted = null;\n\t }\n\t return _.defaults(superFilters, filters);\n\t },\n\t\n\t /** override to fetch current as well (as it may be outside the first 10, etc.) */\n\t fetchFirst: function (options) {\n\t var self = this;\n\t // TODO: batch?\n\t var xhr = $.when();\n\t if (this.currentHistoryId) {\n\t xhr = _collectionSuper.prototype.fetchFirst.call(self, {\n\t silent: true,\n\t limit: 1,\n\t filters: {\n\t // without these a deleted current history will return [] here and block the other xhr\n\t 'purged': '',\n\t 'deleted': '',\n\t 'encoded_id-in': this.currentHistoryId\n\t }\n\t });\n\t }\n\t return xhr.then(function () {\n\t options = options || {};\n\t options.offset = 0;\n\t return self.fetchMore(options);\n\t });\n\t },\n\t\n\t /** @type {Object} map of collection available sorting orders containing comparator fns */\n\t comparators: _.extend(_.clone(_collectionSuper.prototype.comparators), {\n\t 'name': BASE_MVC.buildComparator('name', { ascending: true }),\n\t 'name-dsc': BASE_MVC.buildComparator('name', { ascending: false }),\n\t 'size': BASE_MVC.buildComparator('size', { ascending: false }),\n\t 'size-asc': BASE_MVC.buildComparator('size', { ascending: true })\n\t }),\n\t\n\t /** override to always have the current history first */\n\t sort: function (options) {\n\t options = options || {};\n\t var silent = options.silent;\n\t var currentHistory = this.remove(this.get(this.currentHistoryId));\n\t _collectionSuper.prototype.sort.call(this, _.defaults({ silent: true }, options));\n\t this.unshift(currentHistory, { silent: true });\n\t if (!silent) {\n\t this.trigger('sort', this, options);\n\t }\n\t return this;\n\t },\n\t\n\t /** create a new history and by default set it to be the current history */\n\t create: function create(data, hdas, historyOptions, xhrOptions) {\n\t //TODO: .create is actually a collection function that's overridden here\n\t var collection = this,\n\t xhr = jQuery.getJSON(Galaxy.root + 'history/create_new_current');\n\t return xhr.done(function (newData) {\n\t collection.setCurrent(new History(newData, [], historyOptions || {}));\n\t });\n\t },\n\t\n\t /** set the current history to the given history, placing it first in the collection.\n\t * Pass standard bbone options for use in unshift.\n\t * @triggers new-current passed history and this collection\n\t */\n\t setCurrent: function (history, options) {\n\t options = options || {};\n\t // new histories go in the front\n\t this.unshift(history, options);\n\t this.currentHistoryId = history.get('id');\n\t if (!options.silent) {\n\t this.trigger('new-current', history, this);\n\t }\n\t return this;\n\t },\n\t\n\t toString: function toString() {\n\t return 'HistoryCollection(' + this.length + ',current:' + this.currentHistoryId + ')';\n\t }\n\t });\n\t\n\t //==============================================================================\n\t return {\n\t History: History,\n\t HistoryCollection: HistoryCollection\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(1), __webpack_require__(2), __webpack_require__(1)))\n\n/***/ },\n/* 53 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(_) {!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(6)], __WEBPACK_AMD_DEFINE_RESULT__ = function (BASE_MVC) {\n\t\n\t 'use strict';\n\t\n\t var logNamespace = 'history';\n\t\n\t // ============================================================================\n\t /** session storage for individual history preferences */\n\t var HistoryPrefs = BASE_MVC.SessionStorageModel.extend(\n\t /** @lends HistoryPrefs.prototype */{\n\t //TODO:?? move to user prefs?\n\t defaults: {\n\t //TODO:?? expandedIds to array?\n\t expandedIds: {},\n\t show_deleted: false,\n\t show_hidden: false\n\t },\n\t\n\t /** add an hda id to the hash of expanded hdas */\n\t addExpanded: function (model) {\n\t //TODO: use type_id and not model\n\t var current = this.get('expandedIds');\n\t current[model.id] = model.get('id');\n\t this.save('expandedIds', current);\n\t },\n\t\n\t /** remove an hda id from the hash of expanded hdas */\n\t removeExpanded: function (model) {\n\t var current = this.get('expandedIds');\n\t delete current[model.id];\n\t this.save('expandedIds', current);\n\t },\n\t\n\t isExpanded: function (contentId) {\n\t return _.result(this.get('expandedIds'), contentId, false);\n\t },\n\t\n\t allExpanded: function () {\n\t return _.values(this.get('expandedIds'));\n\t },\n\t\n\t clearExpanded: function () {\n\t this.set('expandedIds', {});\n\t },\n\t\n\t includeDeleted: function (val) {\n\t // moving the invocation here so other components don't need to know the key\n\t // TODO: change this key later\n\t if (!_.isUndefined(val)) {\n\t this.set('show_deleted', val);\n\t }\n\t return this.get('show_deleted');\n\t },\n\t\n\t includeHidden: function (val) {\n\t // TODO: change this key later\n\t if (!_.isUndefined(val)) {\n\t this.set('show_hidden', val);\n\t }\n\t return this.get('show_hidden');\n\t },\n\t\n\t toString: function () {\n\t return 'HistoryPrefs(' + this.id + ')';\n\t }\n\t\n\t }, {\n\t // ........................................................................ class vars\n\t // class lvl for access w/o instantiation\n\t storageKeyPrefix: 'history:',\n\t\n\t /** key string to store each histories settings under */\n\t historyStorageKey: function historyStorageKey(historyId) {\n\t if (!historyId) {\n\t throw new Error('HistoryPrefs.historyStorageKey needs valid id: ' + historyId);\n\t }\n\t // single point of change\n\t return HistoryPrefs.storageKeyPrefix + historyId;\n\t },\n\t\n\t /** return the existing storage for the history with the given id (or create one if it doesn't exist) */\n\t get: function get(historyId) {\n\t return new HistoryPrefs({ id: HistoryPrefs.historyStorageKey(historyId) });\n\t },\n\t\n\t /** clear all history related items in sessionStorage */\n\t clearAll: function clearAll(historyId) {\n\t for (var key in sessionStorage) {\n\t if (key.indexOf(HistoryPrefs.storageKeyPrefix) === 0) {\n\t sessionStorage.removeItem(key);\n\t }\n\t }\n\t }\n\t });\n\t\n\t //==============================================================================\n\t return {\n\t HistoryPrefs: HistoryPrefs\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ },\n/* 54 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, $, _, jQuery) {!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(6), __webpack_require__(5)], __WEBPACK_AMD_DEFINE_RESULT__ = function (BASE_MVC, _l) {\n\t\n\t 'use strict';\n\t\n\t var logNamespace = 'list';\n\t //==============================================================================\n\t /** A view which, when first rendered, shows only summary data/attributes, but\n\t * can be expanded to show further details (and optionally fetch those\n\t * details from the server).\n\t */\n\t var ExpandableView = Backbone.View.extend(BASE_MVC.LoggableMixin).extend({\n\t _logNamespace: logNamespace,\n\t\n\t //TODO: Although the reasoning behind them is different, this shares a lot with HiddenUntilActivated above: combine them\n\t //PRECONDITION: model must have method hasDetails\n\t //PRECONDITION: subclasses must have templates.el and templates.details\n\t\n\t initialize: function (attributes) {\n\t /** are the details of this view expanded/shown or not? */\n\t this.expanded = attributes.expanded || false;\n\t this.log('\\t expanded:', this.expanded);\n\t this.fxSpeed = attributes.fxSpeed !== undefined ? attributes.fxSpeed : this.fxSpeed;\n\t },\n\t\n\t // ........................................................................ render main\n\t /** jq fx speed */\n\t fxSpeed: 'fast',\n\t\n\t /** Render this content, set up ui.\n\t * @param {Number or String} speed the speed of the render\n\t */\n\t render: function (speed) {\n\t var $newRender = this._buildNewRender();\n\t this._setUpBehaviors($newRender);\n\t this._queueNewRender($newRender, speed);\n\t return this;\n\t },\n\t\n\t /** Build a temp div containing the new children for the view's $el.\n\t * If the view is already expanded, build the details as well.\n\t */\n\t _buildNewRender: function () {\n\t // create a new render using a skeleton template, render title buttons, render body, and set up events, etc.\n\t var $newRender = $(this.templates.el(this.model.toJSON(), this));\n\t if (this.expanded) {\n\t this.$details($newRender).replaceWith(this._renderDetails().show());\n\t }\n\t return $newRender;\n\t },\n\t\n\t /** Fade out the old el, swap in the new contents, then fade in.\n\t * @param {Number or String} speed jq speed to use for rendering effects\n\t * @fires rendered when rendered\n\t */\n\t _queueNewRender: function ($newRender, speed) {\n\t speed = speed === undefined ? this.fxSpeed : speed;\n\t var view = this;\n\t\n\t if (speed === 0) {\n\t view._swapNewRender($newRender);\n\t view.trigger('rendered', view);\n\t } else {\n\t $(view).queue('fx', [function (next) {\n\t view.$el.fadeOut(speed, next);\n\t }, function (next) {\n\t view._swapNewRender($newRender);\n\t next();\n\t }, function (next) {\n\t view.$el.fadeIn(speed, next);\n\t }, function (next) {\n\t view.trigger('rendered', view);\n\t next();\n\t }]);\n\t }\n\t },\n\t\n\t /** empty out the current el, move the $newRender's children in */\n\t _swapNewRender: function ($newRender) {\n\t return this.$el.empty().attr('class', _.isFunction(this.className) ? this.className() : this.className).append($newRender.children());\n\t },\n\t\n\t /** set up js behaviors, event handlers for elements within the given container\n\t * @param {jQuery} $container jq object that contains the elements to process (defaults to this.$el)\n\t */\n\t _setUpBehaviors: function ($where) {\n\t $where = $where || this.$el;\n\t // set up canned behavior on children (bootstrap, popupmenus, editable_text, etc.)\n\t //make_popup_menus( $where );\n\t $where.find('[title]').tooltip({ placement: 'bottom' });\n\t },\n\t\n\t // ......................................................................... details\n\t /** shortcut to details DOM (as jQ) */\n\t $details: function ($where) {\n\t $where = $where || this.$el;\n\t return $where.find('> .details');\n\t },\n\t\n\t /** build the DOM for the details and set up behaviors on it */\n\t _renderDetails: function () {\n\t var $newDetails = $(this.templates.details(this.model.toJSON(), this));\n\t this._setUpBehaviors($newDetails);\n\t return $newDetails;\n\t },\n\t\n\t // ......................................................................... expansion/details\n\t /** Show or hide the details\n\t * @param {Boolean} expand if true, expand; if false, collapse\n\t */\n\t toggleExpanded: function (expand) {\n\t expand = expand === undefined ? !this.expanded : expand;\n\t if (expand) {\n\t this.expand();\n\t } else {\n\t this.collapse();\n\t }\n\t return this;\n\t },\n\t\n\t /** Render and show the full, detailed body of this view including extra data and controls.\n\t * note: if the model does not have detailed data, fetch that data before showing the body\n\t * @fires expanded when a body has been expanded\n\t */\n\t expand: function () {\n\t var view = this;\n\t return view._fetchModelDetails().always(function () {\n\t view._expand();\n\t });\n\t },\n\t\n\t /** Check for model details and, if none, fetch them.\n\t * @returns {jQuery.promise} the model.fetch.xhr if details are being fetched, an empty promise if not\n\t */\n\t _fetchModelDetails: function () {\n\t if (!this.model.hasDetails()) {\n\t return this.model.fetch();\n\t }\n\t return jQuery.when();\n\t },\n\t\n\t /** Inner fn called when expand (public) has fetched the details */\n\t _expand: function () {\n\t var view = this,\n\t $newDetails = view._renderDetails();\n\t view.$details().replaceWith($newDetails);\n\t // needs to be set after the above or the slide will not show\n\t view.expanded = true;\n\t view.$details().slideDown(view.fxSpeed, function () {\n\t view.trigger('expanded', view);\n\t });\n\t },\n\t\n\t /** Hide the body/details of an HDA.\n\t * @fires collapsed when a body has been collapsed\n\t */\n\t collapse: function () {\n\t this.debug(this + '(ExpandableView).collapse');\n\t var view = this;\n\t view.expanded = false;\n\t this.$details().slideUp(view.fxSpeed, function () {\n\t view.trigger('collapsed', view);\n\t });\n\t }\n\t\n\t });\n\t\n\t //==============================================================================\n\t /** A view that is displayed in some larger list/grid/collection.\n\t * Inherits from Expandable, Selectable, Draggable.\n\t * The DOM contains warnings, a title bar, and a series of primary action controls.\n\t * Primary actions are meant to be easily accessible item functions (such as delete)\n\t * that are rendered in the title bar.\n\t *\n\t * Details are rendered when the user clicks the title bar or presses enter/space when\n\t * the title bar is in focus.\n\t *\n\t * Designed as a base class for history panel contents - but usable elsewhere (I hope).\n\t */\n\t var ListItemView = ExpandableView.extend(BASE_MVC.mixin(BASE_MVC.SelectableViewMixin, BASE_MVC.DraggableViewMixin, {\n\t\n\t tagName: 'div',\n\t className: 'list-item',\n\t\n\t /** Set up the base class and all mixins */\n\t initialize: function (attributes) {\n\t ExpandableView.prototype.initialize.call(this, attributes);\n\t BASE_MVC.SelectableViewMixin.initialize.call(this, attributes);\n\t BASE_MVC.DraggableViewMixin.initialize.call(this, attributes);\n\t this._setUpListeners();\n\t },\n\t\n\t /** event listeners */\n\t _setUpListeners: function () {\n\t // hide the primary actions in the title bar when selectable and narrow\n\t this.on('selectable', function (isSelectable) {\n\t if (isSelectable) {\n\t this.$('.primary-actions').hide();\n\t } else {\n\t this.$('.primary-actions').show();\n\t }\n\t }, this);\n\t return this;\n\t },\n\t\n\t // ........................................................................ rendering\n\t /** In this override, call methods to build warnings, titlebar and primary actions */\n\t _buildNewRender: function () {\n\t var $newRender = ExpandableView.prototype._buildNewRender.call(this);\n\t $newRender.children('.warnings').replaceWith(this._renderWarnings());\n\t $newRender.children('.title-bar').replaceWith(this._renderTitleBar());\n\t $newRender.children('.primary-actions').append(this._renderPrimaryActions());\n\t $newRender.find('> .title-bar .subtitle').replaceWith(this._renderSubtitle());\n\t return $newRender;\n\t },\n\t\n\t /** In this override, render the selector controls and set up dragging before the swap */\n\t _swapNewRender: function ($newRender) {\n\t ExpandableView.prototype._swapNewRender.call(this, $newRender);\n\t if (this.selectable) {\n\t this.showSelector(0);\n\t }\n\t if (this.draggable) {\n\t this.draggableOn();\n\t }\n\t return this.$el;\n\t },\n\t\n\t /** Render any warnings the item may need to show (e.g. \"I'm deleted\") */\n\t _renderWarnings: function () {\n\t var view = this,\n\t $warnings = $('
'),\n\t json = view.model.toJSON();\n\t //TODO:! unordered (map)\n\t _.each(view.templates.warnings, function (templateFn) {\n\t $warnings.append($(templateFn(json, view)));\n\t });\n\t return $warnings;\n\t },\n\t\n\t /** Render the title bar (the main/exposed SUMMARY dom element) */\n\t _renderTitleBar: function () {\n\t return $(this.templates.titleBar(this.model.toJSON(), this));\n\t },\n\t\n\t /** Return an array of jQ objects containing common/easily-accessible item controls */\n\t _renderPrimaryActions: function () {\n\t // override this\n\t return [];\n\t },\n\t\n\t /** Render the title bar (the main/exposed SUMMARY dom element) */\n\t _renderSubtitle: function () {\n\t return $(this.templates.subtitle(this.model.toJSON(), this));\n\t },\n\t\n\t // ......................................................................... events\n\t /** event map */\n\t events: {\n\t // expand the body when the title is clicked or when in focus and space or enter is pressed\n\t 'click .title-bar': '_clickTitleBar',\n\t 'keydown .title-bar': '_keyDownTitleBar',\n\t 'click .selector': 'toggleSelect'\n\t },\n\t\n\t /** expand when the title bar is clicked */\n\t _clickTitleBar: function (event) {\n\t event.stopPropagation();\n\t if (event.altKey) {\n\t this.toggleSelect(event);\n\t if (!this.selectable) {\n\t this.showSelector();\n\t }\n\t } else {\n\t this.toggleExpanded();\n\t }\n\t },\n\t\n\t /** expand when the title bar is in focus and enter or space is pressed */\n\t _keyDownTitleBar: function (event) {\n\t // bail (with propagation) if keydown and not space or enter\n\t var KEYCODE_SPACE = 32,\n\t KEYCODE_RETURN = 13;\n\t if (event && event.type === 'keydown' && (event.keyCode === KEYCODE_SPACE || event.keyCode === KEYCODE_RETURN)) {\n\t this.toggleExpanded();\n\t event.stopPropagation();\n\t return false;\n\t }\n\t return true;\n\t },\n\t\n\t // ......................................................................... misc\n\t /** String representation */\n\t toString: function () {\n\t var modelString = this.model ? this.model + '' : '(no model)';\n\t return 'ListItemView(' + modelString + ')';\n\t }\n\t }));\n\t\n\t // ............................................................................ TEMPLATES\n\t /** underscore templates */\n\t ListItemView.prototype.templates = function () {\n\t\n\t var elTemplato = BASE_MVC.wrapTemplate(['',\n\t // errors, messages, etc.\n\t '
',\n\t\n\t // multi-select checkbox\n\t '
', ' ', '
',\n\t // space for title bar buttons - gen. floated to the right\n\t '
', '
',\n\t\n\t // expandable area for more details\n\t '
', '
']);\n\t\n\t var warnings = {};\n\t\n\t var titleBarTemplate = BASE_MVC.wrapTemplate([\n\t // adding a tabindex here allows focusing the title bar and the use of keydown to expand the dataset display\n\t '',\n\t //TODO: prob. belongs in dataset-list-item\n\t '
', '
', '<%- element.name %> ', '
', '
', '
'], 'element');\n\t\n\t var subtitleTemplate = BASE_MVC.wrapTemplate([\n\t // override this\n\t '
']);\n\t\n\t var detailsTemplate = BASE_MVC.wrapTemplate([\n\t // override this\n\t '
']);\n\t\n\t return {\n\t el: elTemplato,\n\t warnings: warnings,\n\t titleBar: titleBarTemplate,\n\t subtitle: subtitleTemplate,\n\t details: detailsTemplate\n\t };\n\t }();\n\t\n\t //==============================================================================\n\t /** A view that is displayed in some larger list/grid/collection.\n\t * *AND* can display some sub-list of it's own when expanded (e.g. dataset collections).\n\t * This list will 'foldout' when the item is expanded depending on this.foldoutStyle:\n\t * If 'foldout': will expand vertically to show the nested list\n\t * If 'drilldown': will overlay the parent list\n\t *\n\t * Inherits from ListItemView.\n\t *\n\t * _renderDetails does the work of creating this.details: a sub-view that shows the nested list\n\t */\n\t var FoldoutListItemView = ListItemView.extend({\n\t\n\t /** If 'foldout': show the sub-panel inside the expanded item\n\t * If 'drilldown': only fire events and handle by pub-sub\n\t * (allow the panel containing this item to attach it, hide itself, etc.)\n\t */\n\t foldoutStyle: 'foldout',\n\t /** Panel view class to instantiate for the sub-panel */\n\t foldoutPanelClass: null,\n\t\n\t /** override to:\n\t * add attributes foldoutStyle and foldoutPanelClass for config poly\n\t * disrespect attributes.expanded if drilldown\n\t */\n\t initialize: function (attributes) {\n\t if (this.foldoutStyle === 'drilldown') {\n\t this.expanded = false;\n\t }\n\t this.foldoutStyle = attributes.foldoutStyle || this.foldoutStyle;\n\t this.foldoutPanelClass = attributes.foldoutPanelClass || this.foldoutPanelClass;\n\t\n\t ListItemView.prototype.initialize.call(this, attributes);\n\t this.foldout = this._createFoldoutPanel();\n\t },\n\t\n\t /** in this override, attach the foldout panel when rendering details */\n\t _renderDetails: function () {\n\t if (this.foldoutStyle === 'drilldown') {\n\t return $();\n\t }\n\t var $newDetails = ListItemView.prototype._renderDetails.call(this);\n\t return this._attachFoldout(this.foldout, $newDetails);\n\t },\n\t\n\t /** In this override, handle collection expansion. */\n\t _createFoldoutPanel: function () {\n\t var model = this.model;\n\t var FoldoutClass = this._getFoldoutPanelClass(model),\n\t options = this._getFoldoutPanelOptions(model),\n\t foldout = new FoldoutClass(_.extend(options, {\n\t model: model\n\t }));\n\t return foldout;\n\t },\n\t\n\t /** Stub to return proper foldout panel class */\n\t _getFoldoutPanelClass: function () {\n\t // override\n\t return this.foldoutPanelClass;\n\t },\n\t\n\t /** Stub to return proper foldout panel options */\n\t _getFoldoutPanelOptions: function () {\n\t return {\n\t // propagate foldout style down\n\t foldoutStyle: this.foldoutStyle,\n\t fxSpeed: this.fxSpeed\n\t };\n\t },\n\t\n\t /** Render the foldout panel inside the view, hiding controls */\n\t _attachFoldout: function (foldout, $whereTo) {\n\t $whereTo = $whereTo || this.$('> .details');\n\t this.foldout = foldout.render(0);\n\t foldout.$('> .controls').hide();\n\t return $whereTo.append(foldout.$el);\n\t },\n\t\n\t /** In this override, branch on foldoutStyle to show expanded */\n\t expand: function () {\n\t var view = this;\n\t return view._fetchModelDetails().always(function () {\n\t if (view.foldoutStyle === 'foldout') {\n\t view._expand();\n\t } else if (view.foldoutStyle === 'drilldown') {\n\t view._expandByDrilldown();\n\t }\n\t });\n\t },\n\t\n\t /** For drilldown, set up close handler and fire expanded:drilldown\n\t * containing views can listen to this and handle other things\n\t * (like hiding themselves) by listening for expanded/collapsed:drilldown\n\t */\n\t _expandByDrilldown: function () {\n\t var view = this;\n\t // attachment and rendering done by listener\n\t view.listenTo(view.foldout, 'close', function () {\n\t view.trigger('collapsed:drilldown', view, view.foldout);\n\t });\n\t view.trigger('expanded:drilldown', view, view.foldout);\n\t }\n\t\n\t });\n\t\n\t // ............................................................................ TEMPLATES\n\t /** underscore templates */\n\t FoldoutListItemView.prototype.templates = function () {\n\t\n\t var detailsTemplate = BASE_MVC.wrapTemplate(['',\n\t // override with more info (that goes above the panel)\n\t '
'], 'collection');\n\t\n\t return _.extend({}, ListItemView.prototype.templates, {\n\t details: detailsTemplate\n\t });\n\t }();\n\t\n\t //==============================================================================\n\t return {\n\t ExpandableView: ExpandableView,\n\t ListItemView: ListItemView,\n\t FoldoutListItemView: FoldoutListItemView\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(1), __webpack_require__(2), __webpack_require__(1)))\n\n/***/ },\n/* 55 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, _) {!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(6), __webpack_require__(5)], __WEBPACK_AMD_DEFINE_RESULT__ = function (baseMVC, _l) {\n\t // =============================================================================\n\t /** A view on any model that has a 'tags' attribute (a list of tag strings)\n\t * Incorporates the select2 jQuery plugin for tags display/editing:\n\t * http://ivaynberg.github.io/select2/\n\t */\n\t var TagsEditor = Backbone.View.extend(baseMVC.LoggableMixin).extend(baseMVC.HiddenUntilActivatedViewMixin).extend({\n\t\n\t tagName: 'div',\n\t className: 'tags-display',\n\t\n\t /** Set up listeners, parse options */\n\t initialize: function (options) {\n\t //console.debug( this, options );\n\t // only listen to the model only for changes to tags - re-render\n\t if (options.usePrompt === false) {\n\t this.label = '';\n\t } else {\n\t this.label = '' + _l('Tags') + ' ';\n\t }\n\t this.hiddenUntilActivated(options.$activator, options);\n\t },\n\t\n\t /** Build the DOM elements, call select to on the created input, and set up behaviors */\n\t render: function () {\n\t var self = this;\n\t this.$el.html(this._template());\n\t\n\t this.$input().select2({\n\t placeholder: 'Add tags',\n\t width: '100%',\n\t tags: function () {\n\t // initialize possible tags in the dropdown based on all the tags the user has used so far\n\t return self._getTagsUsed();\n\t }\n\t });\n\t\n\t this._setUpBehaviors();\n\t return this;\n\t },\n\t\n\t _hashToName: function (tag) {\n\t if (tag.startsWith('#')) {\n\t return 'name:' + tag.slice(1);\n\t }\n\t return tag;\n\t },\n\t\n\t _nameToHash: function (tag) {\n\t if (tag.startsWith('name:')) {\n\t tag = '#' + tag.slice(5);\n\t }\n\t return tag;\n\t },\n\t\n\t /** @returns {String} the html text used to build the view's DOM */\n\t _template: function () {\n\t return [this.label,\n\t // set up initial tags by adding as CSV to input vals (necc. to init select2)\n\t ' '].join('');\n\t },\n\t\n\t /** @returns {String} the sorted, comma-separated tags from the model */\n\t tagsToCSV: function () {\n\t var self = this;\n\t var tagsArray = this.model.get('tags');\n\t if (!_.isArray(tagsArray) || _.isEmpty(tagsArray)) {\n\t return '';\n\t }\n\t return tagsArray.map(function (tag) {\n\t return _.escape(self._nameToHash(tag));\n\t }).sort().join(',');\n\t },\n\t\n\t /** @returns {jQuery} the input for this view */\n\t $input: function () {\n\t return this.$el.find('input.tags-input');\n\t },\n\t\n\t /** @returns {String[]} all tags used by the current user */\n\t _getTagsUsed: function () {\n\t //TODO: global\n\t var self = this;\n\t return _.map(Galaxy.user.get('tags_used'), self._nameToHash);\n\t },\n\t\n\t /** set up any event listeners on the view's DOM (mostly handled by select2) */\n\t _setUpBehaviors: function () {\n\t var self = this;\n\t this.$input().on('change', function (event) {\n\t // Modify any 'hashtag' 'nametags'\n\t event.val = _.map(event.val, self._hashToName);\n\t // save the model's tags in either remove or added event\n\t self.model.save({ tags: event.val });\n\t // if it's new, add the tag to the users tags\n\t if (event.added) {\n\t //??: solve weird behavior in FF on test.galaxyproject.org where\n\t // event.added.text is string object: 'String{ 0=\"o\", 1=\"n\", 2=\"e\" }'\n\t self._addNewTagToTagsUsed(event.added.text + '');\n\t }\n\t });\n\t },\n\t\n\t /** add a new tag (if not already there) to the list of all tags used by the user\n\t * @param {String} newTag the tag to add to the list of used\n\t */\n\t _addNewTagToTagsUsed: function (newTag) {\n\t //TODO: global\n\t var tagsUsed = Galaxy.user.get('tags_used');\n\t if (!_.contains(tagsUsed, newTag)) {\n\t tagsUsed.push(newTag);\n\t tagsUsed.sort();\n\t Galaxy.user.set('tags_used', tagsUsed);\n\t }\n\t },\n\t\n\t /** shut down event listeners and remove this view's DOM */\n\t remove: function () {\n\t this.$input.off();\n\t this.stopListening(this.model);\n\t Backbone.View.prototype.remove.call(this);\n\t },\n\t\n\t /** string rep */\n\t toString: function () {\n\t return ['TagsEditor(', this.model + '', ')'].join('');\n\t }\n\t });\n\t\n\t // =============================================================================\n\t return {\n\t TagsEditor: TagsEditor\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(2)))\n\n/***/ },\n/* 56 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, $) {/**\n\t * Model, view, and controller objects for Galaxy tools and tool panel.\n\t */\n\t\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(2), __webpack_require__(19), __webpack_require__(10), __webpack_require__(30)], __WEBPACK_AMD_DEFINE_RESULT__ = function (_, util, data, ToolForm) {\n\t 'use strict';\n\t\n\t /**\n\t * Mixin for tracking model visibility.\n\t */\n\t\n\t var VisibilityMixin = {\n\t hidden: false,\n\t\n\t show: function () {\n\t this.set(\"hidden\", false);\n\t },\n\t\n\t hide: function () {\n\t this.set(\"hidden\", true);\n\t },\n\t\n\t toggle: function () {\n\t this.set(\"hidden\", !this.get(\"hidden\"));\n\t },\n\t\n\t is_visible: function () {\n\t return !this.attributes.hidden;\n\t }\n\t\n\t };\n\t\n\t /**\n\t * A tool parameter.\n\t */\n\t var ToolParameter = Backbone.Model.extend({\n\t defaults: {\n\t name: null,\n\t label: null,\n\t type: null,\n\t value: null,\n\t html: null,\n\t num_samples: 5\n\t },\n\t\n\t initialize: function (options) {\n\t this.attributes.html = unescape(this.attributes.html);\n\t },\n\t\n\t copy: function () {\n\t return new ToolParameter(this.toJSON());\n\t },\n\t\n\t set_value: function (value) {\n\t this.set('value', value || '');\n\t }\n\t });\n\t\n\t var ToolParameterCollection = Backbone.Collection.extend({\n\t model: ToolParameter\n\t });\n\t\n\t /**\n\t * A data tool parameter.\n\t */\n\t var DataToolParameter = ToolParameter.extend({});\n\t\n\t /**\n\t * An integer tool parameter.\n\t */\n\t var IntegerToolParameter = ToolParameter.extend({\n\t set_value: function (value) {\n\t this.set('value', parseInt(value, 10));\n\t },\n\t\n\t /**\n\t * Returns samples from a tool input.\n\t */\n\t get_samples: function () {\n\t return d3.scale.linear().domain([this.get('min'), this.get('max')]).ticks(this.get('num_samples'));\n\t }\n\t });\n\t\n\t var FloatToolParameter = IntegerToolParameter.extend({\n\t set_value: function (value) {\n\t this.set('value', parseFloat(value));\n\t }\n\t });\n\t\n\t /**\n\t * A select tool parameter.\n\t */\n\t var SelectToolParameter = ToolParameter.extend({\n\t /**\n\t * Returns tool options.\n\t */\n\t get_samples: function () {\n\t return _.map(this.get('options'), function (option) {\n\t return option[0];\n\t });\n\t }\n\t });\n\t\n\t // Set up dictionary of parameter types.\n\t ToolParameter.subModelTypes = {\n\t 'integer': IntegerToolParameter,\n\t 'float': FloatToolParameter,\n\t 'data': DataToolParameter,\n\t 'select': SelectToolParameter\n\t };\n\t\n\t /**\n\t * A Galaxy tool.\n\t */\n\t var Tool = Backbone.Model.extend({\n\t // Default attributes.\n\t defaults: {\n\t id: null,\n\t name: null,\n\t description: null,\n\t target: null,\n\t inputs: [],\n\t outputs: []\n\t },\n\t\n\t urlRoot: Galaxy.root + 'api/tools',\n\t\n\t initialize: function (options) {\n\t\n\t // Set parameters.\n\t this.set('inputs', new ToolParameterCollection(_.map(options.inputs, function (p) {\n\t var p_class = ToolParameter.subModelTypes[p.type] || ToolParameter;\n\t return new p_class(p);\n\t })));\n\t },\n\t\n\t /**\n\t *\n\t */\n\t toJSON: function () {\n\t var rval = Backbone.Model.prototype.toJSON.call(this);\n\t\n\t // Convert inputs to JSON manually.\n\t rval.inputs = this.get('inputs').map(function (i) {\n\t return i.toJSON();\n\t });\n\t return rval;\n\t },\n\t\n\t /**\n\t * Removes inputs of a particular type; this is useful because not all inputs can be handled by\n\t * client and server yet.\n\t */\n\t remove_inputs: function (types) {\n\t var tool = this,\n\t incompatible_inputs = tool.get('inputs').filter(function (input) {\n\t return types.indexOf(input.get('type')) !== -1;\n\t });\n\t tool.get('inputs').remove(incompatible_inputs);\n\t },\n\t\n\t /**\n\t * Returns object copy, optionally including only inputs that can be sampled.\n\t */\n\t copy: function (only_samplable_inputs) {\n\t var copy = new Tool(this.toJSON());\n\t\n\t // Return only samplable inputs if flag is set.\n\t if (only_samplable_inputs) {\n\t var valid_inputs = new Backbone.Collection();\n\t copy.get('inputs').each(function (input) {\n\t if (input.get_samples()) {\n\t valid_inputs.push(input);\n\t }\n\t });\n\t copy.set('inputs', valid_inputs);\n\t }\n\t\n\t return copy;\n\t },\n\t\n\t apply_search_results: function (results) {\n\t _.indexOf(results, this.attributes.id) !== -1 ? this.show() : this.hide();\n\t return this.is_visible();\n\t },\n\t\n\t /**\n\t * Set a tool input's value.\n\t */\n\t set_input_value: function (name, value) {\n\t this.get('inputs').find(function (input) {\n\t return input.get('name') === name;\n\t }).set('value', value);\n\t },\n\t\n\t /**\n\t * Set many input values at once.\n\t */\n\t set_input_values: function (inputs_dict) {\n\t var self = this;\n\t _.each(_.keys(inputs_dict), function (input_name) {\n\t self.set_input_value(input_name, inputs_dict[input_name]);\n\t });\n\t },\n\t\n\t /**\n\t * Run tool; returns a Deferred that resolves to the tool's output(s).\n\t */\n\t run: function () {\n\t return this._run();\n\t },\n\t\n\t /**\n\t * Rerun tool using regions and a target dataset.\n\t */\n\t rerun: function (target_dataset, regions) {\n\t return this._run({\n\t action: 'rerun',\n\t target_dataset_id: target_dataset.id,\n\t regions: regions\n\t });\n\t },\n\t\n\t /**\n\t * Returns input dict for tool's inputs.\n\t */\n\t get_inputs_dict: function () {\n\t var input_dict = {};\n\t this.get('inputs').each(function (input) {\n\t input_dict[input.get('name')] = input.get('value');\n\t });\n\t return input_dict;\n\t },\n\t\n\t /**\n\t * Run tool; returns a Deferred that resolves to the tool's output(s).\n\t * NOTE: this method is a helper method and should not be called directly.\n\t */\n\t _run: function (additional_params) {\n\t // Create payload.\n\t var payload = _.extend({\n\t tool_id: this.id,\n\t inputs: this.get_inputs_dict()\n\t }, additional_params);\n\t\n\t // Because job may require indexing datasets, use server-side\n\t // deferred to ensure that job is run. Also use deferred that\n\t // resolves to outputs from tool.\n\t var run_deferred = $.Deferred(),\n\t ss_deferred = new util.ServerStateDeferred({\n\t ajax_settings: {\n\t url: this.urlRoot,\n\t data: JSON.stringify(payload),\n\t dataType: \"json\",\n\t contentType: 'application/json',\n\t type: \"POST\"\n\t },\n\t interval: 2000,\n\t success_fn: function (response) {\n\t return response !== \"pending\";\n\t }\n\t });\n\t\n\t // Run job and resolve run_deferred to tool outputs.\n\t $.when(ss_deferred.go()).then(function (result) {\n\t run_deferred.resolve(new data.DatasetCollection(result));\n\t });\n\t return run_deferred;\n\t }\n\t });\n\t _.extend(Tool.prototype, VisibilityMixin);\n\t\n\t /**\n\t * Tool view.\n\t */\n\t var ToolView = Backbone.View.extend({});\n\t\n\t /**\n\t * Wrap collection of tools for fast access/manipulation.\n\t */\n\t var ToolCollection = Backbone.Collection.extend({\n\t model: Tool\n\t });\n\t\n\t /**\n\t * Label or section header in tool panel.\n\t */\n\t var ToolSectionLabel = Backbone.Model.extend(VisibilityMixin);\n\t\n\t /**\n\t * Section of tool panel with elements (labels and tools).\n\t */\n\t var ToolSection = Backbone.Model.extend({\n\t defaults: {\n\t elems: [],\n\t open: false\n\t },\n\t\n\t clear_search_results: function () {\n\t _.each(this.attributes.elems, function (elt) {\n\t elt.show();\n\t });\n\t\n\t this.show();\n\t this.set(\"open\", false);\n\t },\n\t\n\t apply_search_results: function (results) {\n\t var all_hidden = true,\n\t cur_label;\n\t _.each(this.attributes.elems, function (elt) {\n\t if (elt instanceof ToolSectionLabel) {\n\t cur_label = elt;\n\t cur_label.hide();\n\t } else if (elt instanceof Tool) {\n\t if (elt.apply_search_results(results)) {\n\t all_hidden = false;\n\t if (cur_label) {\n\t cur_label.show();\n\t }\n\t }\n\t }\n\t });\n\t\n\t if (all_hidden) {\n\t this.hide();\n\t } else {\n\t this.show();\n\t this.set(\"open\", true);\n\t }\n\t }\n\t });\n\t _.extend(ToolSection.prototype, VisibilityMixin);\n\t\n\t /**\n\t * Tool search that updates results when query is changed. Result value of null\n\t * indicates that query was not run; if not null, results are from search using\n\t * query.\n\t */\n\t var ToolSearch = Backbone.Model.extend({\n\t defaults: {\n\t search_hint_string: \"search tools\",\n\t min_chars_for_search: 3,\n\t clear_btn_url: \"\",\n\t visible: true,\n\t query: \"\",\n\t results: null,\n\t // ESC (27) will clear the input field and tool search filters\n\t clear_key: 27\n\t },\n\t\n\t urlRoot: Galaxy.root + 'api/tools',\n\t\n\t initialize: function () {\n\t this.on(\"change:query\", this.do_search);\n\t },\n\t\n\t /**\n\t * Do the search and update the results.\n\t */\n\t do_search: function () {\n\t var query = this.attributes.query;\n\t\n\t // If query is too short, do not search.\n\t if (query.length < this.attributes.min_chars_for_search) {\n\t this.set(\"results\", null);\n\t return;\n\t }\n\t\n\t // Do search via AJAX.\n\t var q = query;\n\t // Stop previous ajax-request\n\t if (this.timer) {\n\t clearTimeout(this.timer);\n\t }\n\t // Start a new ajax-request in X ms\n\t $(\"#search-clear-btn\").hide();\n\t $(\"#search-spinner\").show();\n\t var self = this;\n\t this.timer = setTimeout(function () {\n\t // log the search to analytics if present\n\t if (typeof ga !== 'undefined') {\n\t ga('send', 'pageview', Galaxy.root + '?q=' + q);\n\t }\n\t $.get(self.urlRoot, { q: q }, function (data) {\n\t self.set(\"results\", data);\n\t $(\"#search-spinner\").hide();\n\t $(\"#search-clear-btn\").show();\n\t }, \"json\");\n\t }, 400);\n\t },\n\t\n\t clear_search: function () {\n\t this.set(\"query\", \"\");\n\t this.set(\"results\", null);\n\t }\n\t\n\t });\n\t _.extend(ToolSearch.prototype, VisibilityMixin);\n\t\n\t /**\n\t * Tool Panel.\n\t */\n\t var ToolPanel = Backbone.Model.extend({\n\t\n\t initialize: function (options) {\n\t this.attributes.tool_search = options.tool_search;\n\t this.attributes.tool_search.on(\"change:results\", this.apply_search_results, this);\n\t this.attributes.tools = options.tools;\n\t this.attributes.layout = new Backbone.Collection(this.parse(options.layout));\n\t },\n\t\n\t /**\n\t * Parse tool panel dictionary and return collection of tool panel elements.\n\t */\n\t parse: function (response) {\n\t // Recursive function to parse tool panel elements.\n\t var self = this,\n\t\n\t // Helper to recursively parse tool panel.\n\t parse_elt = function (elt_dict) {\n\t var type = elt_dict.model_class;\n\t // There are many types of tools; for now, anything that ends in 'Tool'\n\t // is treated as a generic tool.\n\t if (type.indexOf('Tool') === type.length - 4) {\n\t return self.attributes.tools.get(elt_dict.id);\n\t } else if (type === 'ToolSection') {\n\t // Parse elements.\n\t var elems = _.map(elt_dict.elems, parse_elt);\n\t elt_dict.elems = elems;\n\t return new ToolSection(elt_dict);\n\t } else if (type === 'ToolSectionLabel') {\n\t return new ToolSectionLabel(elt_dict);\n\t }\n\t };\n\t\n\t return _.map(response, parse_elt);\n\t },\n\t\n\t clear_search_results: function () {\n\t this.get('layout').each(function (panel_elt) {\n\t if (panel_elt instanceof ToolSection) {\n\t panel_elt.clear_search_results();\n\t } else {\n\t // Label or tool, so just show.\n\t panel_elt.show();\n\t }\n\t });\n\t },\n\t\n\t apply_search_results: function () {\n\t var results = this.get('tool_search').get('results');\n\t if (results === null) {\n\t this.clear_search_results();\n\t return;\n\t }\n\t\n\t var cur_label = null;\n\t this.get('layout').each(function (panel_elt) {\n\t if (panel_elt instanceof ToolSectionLabel) {\n\t cur_label = panel_elt;\n\t cur_label.hide();\n\t } else if (panel_elt instanceof Tool) {\n\t if (panel_elt.apply_search_results(results)) {\n\t if (cur_label) {\n\t cur_label.show();\n\t }\n\t }\n\t } else {\n\t // Starting new section, so clear current label.\n\t cur_label = null;\n\t panel_elt.apply_search_results(results);\n\t }\n\t });\n\t }\n\t });\n\t\n\t /**\n\t * View classes for Galaxy tools and tool panel.\n\t *\n\t * Views use the templates defined below for rendering. Views update as needed\n\t * based on (a) model/collection events and (b) user interactions; in this sense,\n\t * they are controllers are well and the HTML is the real view in the MVC architecture.\n\t */\n\t\n\t /**\n\t * Base view that handles visibility based on model's hidden attribute.\n\t */\n\t var BaseView = Backbone.View.extend({\n\t initialize: function () {\n\t this.model.on(\"change:hidden\", this.update_visible, this);\n\t this.update_visible();\n\t },\n\t update_visible: function () {\n\t this.model.attributes.hidden ? this.$el.hide() : this.$el.show();\n\t }\n\t });\n\t\n\t /**\n\t * Link to a tool.\n\t */\n\t var ToolLinkView = BaseView.extend({\n\t tagName: 'div',\n\t\n\t render: function () {\n\t // create element\n\t var $link = $('
');\n\t $link.append(templates.tool_link(this.model.toJSON()));\n\t\n\t var formStyle = this.model.get('form_style', null);\n\t // open upload dialog for upload tool\n\t if (this.model.id === 'upload1') {\n\t $link.find('a').on('click', function (e) {\n\t e.preventDefault();\n\t Galaxy.upload.show();\n\t });\n\t } else if (formStyle === 'regular') {\n\t // regular tools\n\t var self = this;\n\t $link.find('a').on('click', function (e) {\n\t e.preventDefault();\n\t Galaxy.router.push('/', { tool_id: self.model.id, version: self.model.get('version') });\n\t });\n\t }\n\t\n\t // add element\n\t this.$el.append($link);\n\t return this;\n\t }\n\t });\n\t\n\t /**\n\t * Panel label/section header.\n\t */\n\t var ToolSectionLabelView = BaseView.extend({\n\t tagName: 'div',\n\t className: 'toolPanelLabel',\n\t\n\t render: function () {\n\t this.$el.append($(\" \").text(this.model.attributes.text));\n\t return this;\n\t }\n\t });\n\t\n\t /**\n\t * Panel section.\n\t */\n\t var ToolSectionView = BaseView.extend({\n\t tagName: 'div',\n\t className: 'toolSectionWrapper',\n\t\n\t initialize: function () {\n\t BaseView.prototype.initialize.call(this);\n\t this.model.on(\"change:open\", this.update_open, this);\n\t },\n\t\n\t render: function () {\n\t // Build using template.\n\t this.$el.append(templates.panel_section(this.model.toJSON()));\n\t\n\t // Add tools to section.\n\t var section_body = this.$el.find(\".toolSectionBody\");\n\t _.each(this.model.attributes.elems, function (elt) {\n\t if (elt instanceof Tool) {\n\t var tool_view = new ToolLinkView({ model: elt, className: \"toolTitle\" });\n\t tool_view.render();\n\t section_body.append(tool_view.$el);\n\t } else if (elt instanceof ToolSectionLabel) {\n\t var label_view = new ToolSectionLabelView({ model: elt });\n\t label_view.render();\n\t section_body.append(label_view.$el);\n\t } else {\n\t // TODO: handle nested section bodies?\n\t }\n\t });\n\t return this;\n\t },\n\t\n\t events: {\n\t 'click .toolSectionTitle > a': 'toggle'\n\t },\n\t\n\t /**\n\t * Toggle visibility of tool section.\n\t */\n\t toggle: function () {\n\t this.model.set(\"open\", !this.model.attributes.open);\n\t },\n\t\n\t /**\n\t * Update whether section is open or close.\n\t */\n\t update_open: function () {\n\t this.model.attributes.open ? this.$el.children(\".toolSectionBody\").slideDown(\"fast\") : this.$el.children(\".toolSectionBody\").slideUp(\"fast\");\n\t }\n\t });\n\t\n\t var ToolSearchView = Backbone.View.extend({\n\t tagName: 'div',\n\t id: 'tool-search',\n\t className: 'bar',\n\t\n\t events: {\n\t 'click': 'focus_and_select',\n\t 'keyup :input': 'query_changed',\n\t 'change :input': 'query_changed',\n\t 'click #search-clear-btn': 'clear'\n\t },\n\t\n\t render: function () {\n\t this.$el.append(templates.tool_search(this.model.toJSON()));\n\t if (!this.model.is_visible()) {\n\t this.$el.hide();\n\t }\n\t\n\t // Adjust top for issue 2907 depending on whether the messagebox is visible.\n\t if ($(\"#messagebox\").is(\":visible\")) {\n\t this.$el.css(\"top\", \"95px\");\n\t }\n\t\n\t this.$el.find('[title]').tooltip();\n\t return this;\n\t },\n\t\n\t focus_and_select: function () {\n\t this.$el.find(\":input\").focus().select();\n\t },\n\t\n\t clear: function () {\n\t this.model.clear_search();\n\t this.$el.find(\":input\").val('');\n\t this.focus_and_select();\n\t return false;\n\t },\n\t\n\t query_changed: function (evData) {\n\t // check for the 'clear key' (ESC) first\n\t if (this.model.attributes.clear_key && this.model.attributes.clear_key === evData.which) {\n\t this.clear();\n\t return false;\n\t }\n\t this.model.set(\"query\", this.$el.find(\":input\").val());\n\t }\n\t });\n\t\n\t /**\n\t * Tool panel view. Events triggered include:\n\t * tool_link_click(click event, tool_model)\n\t */\n\t var ToolPanelView = Backbone.View.extend({\n\t tagName: 'div',\n\t className: 'toolMenu',\n\t\n\t /**\n\t * Set up view.\n\t */\n\t initialize: function () {\n\t this.model.get('tool_search').on(\"change:results\", this.handle_search_results, this);\n\t },\n\t\n\t render: function () {\n\t var self = this;\n\t\n\t // Render search.\n\t var search_view = new ToolSearchView({ model: this.model.get('tool_search') });\n\t search_view.render();\n\t self.$el.append(search_view.$el);\n\t\n\t // Render panel.\n\t this.model.get('layout').each(function (panel_elt) {\n\t if (panel_elt instanceof ToolSection) {\n\t var section_title_view = new ToolSectionView({ model: panel_elt });\n\t section_title_view.render();\n\t self.$el.append(section_title_view.$el);\n\t } else if (panel_elt instanceof Tool) {\n\t var tool_view = new ToolLinkView({ model: panel_elt, className: \"toolTitleNoSection\" });\n\t tool_view.render();\n\t self.$el.append(tool_view.$el);\n\t } else if (panel_elt instanceof ToolSectionLabel) {\n\t var label_view = new ToolSectionLabelView({ model: panel_elt });\n\t label_view.render();\n\t self.$el.append(label_view.$el);\n\t }\n\t });\n\t\n\t // Setup tool link click eventing.\n\t self.$el.find(\"a.tool-link\").click(function (e) {\n\t // Tool id is always the first class.\n\t var tool_id = $(this).attr('class').split(/\\s+/)[0],\n\t tool = self.model.get('tools').get(tool_id);\n\t\n\t self.trigger(\"tool_link_click\", e, tool);\n\t });\n\t\n\t return this;\n\t },\n\t\n\t handle_search_results: function () {\n\t var results = this.model.get('tool_search').get('results');\n\t if (results && results.length === 0) {\n\t $(\"#search-no-results\").show();\n\t } else {\n\t $(\"#search-no-results\").hide();\n\t }\n\t }\n\t });\n\t\n\t /**\n\t * View for working with a tool: setting parameters and inputs and executing the tool.\n\t */\n\t var ToolFormView = Backbone.View.extend({\n\t className: 'toolForm',\n\t\n\t render: function () {\n\t this.$el.children().remove();\n\t this.$el.append(templates.tool_form(this.model.toJSON()));\n\t }\n\t });\n\t\n\t /**\n\t * Integrated tool menu + tool execution.\n\t */\n\t var IntegratedToolMenuAndView = Backbone.View.extend({\n\t className: 'toolMenuAndView',\n\t\n\t initialize: function () {\n\t this.tool_panel_view = new ToolPanelView({ collection: this.collection });\n\t this.tool_form_view = new ToolFormView();\n\t },\n\t\n\t render: function () {\n\t // Render and append tool panel.\n\t this.tool_panel_view.render();\n\t this.tool_panel_view.$el.css(\"float\", \"left\");\n\t this.$el.append(this.tool_panel_view.$el);\n\t\n\t // Append tool form view.\n\t this.tool_form_view.$el.hide();\n\t this.$el.append(this.tool_form_view.$el);\n\t\n\t // On tool link click, show tool.\n\t var self = this;\n\t this.tool_panel_view.on(\"tool_link_click\", function (e, tool) {\n\t // Prevents click from activating link:\n\t e.preventDefault();\n\t // Show tool that was clicked on:\n\t self.show_tool(tool);\n\t });\n\t },\n\t\n\t /**\n\t * Fetch and display tool.\n\t */\n\t show_tool: function (tool) {\n\t var self = this;\n\t tool.fetch().done(function () {\n\t self.tool_form_view.model = tool;\n\t self.tool_form_view.render();\n\t self.tool_form_view.$el.show();\n\t $('#left').width(\"650px\");\n\t });\n\t }\n\t });\n\t\n\t // TODO: move into relevant views\n\t var templates = {\n\t // the search bar at the top of the tool panel\n\t tool_search: _.template([' \" autocomplete=\"off\" type=\"text\" />', ' ',\n\t //TODO: replace with icon\n\t ' '].join('')),\n\t\n\t // the category level container in the tool panel (e.g. 'Get Data', 'Text Manipulation')\n\t panel_section: _.template(['', '\" class=\"toolSectionBody\" style=\"display: none;\">', '
', '
'].join('')),\n\t\n\t // a single tool's link in the tool panel; will load the tool form in the center panel\n\t tool_link: _.template(['
', '<% _.each( labels, function( label ){ %>', '\">', '<%- label %>', ' ', '<% }); %>', ' ', '
tool-link\" href=\"<%= link %>\" target=\"<%- target %>\" minsizehint=\"<%- min_width %>\">', '<%- name %>', ' ', ' <%- description %>'].join('')),\n\t\n\t // the tool form for entering tool parameters, viewing help and executing the tool\n\t // loaded when a tool link is clicked in the tool panel\n\t tool_form: _.template(['
<%- tool.name %> (version <%- tool.version %>)
', '
', '<% _.each( tool.inputs, function( input ){ %>', '
', '<% }); %>', '
', '
', ' ', '
', '
'].join(''), { variable: 'tool' })\n\t };\n\t\n\t // Exports\n\t return {\n\t ToolParameter: ToolParameter,\n\t IntegerToolParameter: IntegerToolParameter,\n\t SelectToolParameter: SelectToolParameter,\n\t Tool: Tool,\n\t ToolCollection: ToolCollection,\n\t ToolSearch: ToolSearch,\n\t ToolPanel: ToolPanel,\n\t ToolPanelView: ToolPanelView,\n\t ToolFormView: ToolFormView\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(1)))\n\n/***/ },\n/* 57 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, $) {/** Renders the color picker used e.g. in the tool form **/\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(4)], __WEBPACK_AMD_DEFINE_RESULT__ = function (Utils) {\n\t return Backbone.View.extend({\n\t colors: {\n\t standard: ['c00000', 'ff0000', 'ffc000', 'ffff00', '92d050', '00b050', '00b0f0', '0070c0', '002060', '7030a0'],\n\t base: ['ffffff', '000000', 'eeece1', '1f497d', '4f81bd', 'c0504d', '9bbb59', '8064a2', '4bacc6', 'f79646'],\n\t theme: [['f2f2f2', '7f7f7f', 'ddd9c3', 'c6d9f0', 'dbe5f1', 'f2dcdb', 'ebf1dd', 'e5e0ec', 'dbeef3', 'fdeada'], ['d8d8d8', '595959', 'c4bd97', '8db3e2', 'b8cce4', 'e5b9b7', 'd7e3bc', 'ccc1d9', 'b7dde8', 'fbd5b5'], ['bfbfbf', '3f3f3f', '938953', '548dd4', '95b3d7', 'd99694', 'c3d69b', 'b2a2c7', '92cddc', 'fac08f'], ['a5a5a5', '262626', '494429', '17365d', '366092', '953734', '76923c', '5f497a', '31859b', 'e36c09'], ['7f7f7e', '0c0c0c', '1d1b10', '0f243e', '244061', '632423', '4f6128', '3f3151', '205867', '974806']]\n\t },\n\t\n\t initialize: function (options) {\n\t this.options = Utils.merge(options, {});\n\t this.setElement(this._template());\n\t this.$panel = this.$('.ui-color-picker-panel');\n\t this.$view = this.$('.ui-color-picker-view');\n\t this.$value = this.$('.ui-color-picker-value');\n\t this.$header = this.$('.ui-color-picker-header');\n\t this._build();\n\t this.visible = false;\n\t this.value(this.options.value);\n\t this.$boxes = this.$('.ui-color-picker-box');\n\t var self = this;\n\t this.$boxes.on('click', function () {\n\t self.value($(this).css('background-color'));\n\t self.$header.trigger('click');\n\t });\n\t this.$header.on('click', function () {\n\t self.visible = !self.visible;\n\t if (self.visible) {\n\t self.$view.fadeIn('fast');\n\t } else {\n\t self.$view.fadeOut('fast');\n\t }\n\t });\n\t },\n\t\n\t /** Get/set value */\n\t value: function (new_val) {\n\t if (new_val !== undefined && new_val !== null) {\n\t this.$value.css('background-color', new_val);\n\t this.$('.ui-color-picker-box').empty();\n\t this.$(this._getValue()).html(this._templateCheck());\n\t this.options.onchange && this.options.onchange(new_val);\n\t }\n\t return this._getValue();\n\t },\n\t\n\t /** Get value from dom */\n\t _getValue: function () {\n\t var rgb = this.$value.css('background-color');\n\t rgb = rgb.match(/^rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)$/);\n\t if (rgb) {\n\t function hex(x) {\n\t return ('0' + parseInt(x).toString(16)).slice(-2);\n\t }\n\t return '#' + hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]);\n\t } else {\n\t return null;\n\t }\n\t },\n\t\n\t /** Build color panel */\n\t _build: function () {\n\t this._content({ colors: this.colors.base });\n\t for (var i in this.colors.theme) {\n\t var line_def = {};\n\t if (i == 0) {\n\t line_def['bottom'] = true;\n\t } else if (i != this.colors.theme.length - 1) {\n\t line_def['top'] = true;\n\t line_def['bottom'] = true;\n\t } else {\n\t line_def['top'] = true;\n\t }\n\t line_def['colors'] = this.colors.theme[i];\n\t this._content(line_def);\n\t }\n\t this._content({ colors: this.colors.standard });\n\t },\n\t\n\t /** Create content */\n\t _content: function (options) {\n\t var colors = options.colors;\n\t var $content = $(this._templateContent());\n\t var $line = $content.find('.line');\n\t this.$panel.append($content);\n\t for (var i in colors) {\n\t var $box = $(this._templateBox(colors[i]));\n\t if (options.top) {\n\t $box.css('border-top', 'none');\n\t $box.css('border-top-left-radius', '0px');\n\t $box.css('border-top-right-radius', '0px');\n\t }\n\t if (options.bottom) {\n\t $box.css('border-bottom', 'none');\n\t $box.css('border-bottom-left-radius', '0px');\n\t $box.css('border-bottom-right-radius', '0px');\n\t }\n\t $line.append($box);\n\t }\n\t return $content;\n\t },\n\t\n\t /** Check icon */\n\t _templateCheck: function () {\n\t return '
';\n\t },\n\t\n\t /** Content template */\n\t _templateContent: function () {\n\t return '
' + '
' + '
';\n\t },\n\t\n\t /** Box template */\n\t _templateBox: function (color) {\n\t return '
';\n\t },\n\t\n\t /** Main template */\n\t _template: function () {\n\t return '
' + '