diff --git a/dashboard-ui/thirdparty/jquerymobile-1.4.5/jqm.table.css b/dashboard-ui/thirdparty/jquerymobile-1.4.5/jqm.table.css
new file mode 100644
index 0000000000..948de9e3a5
--- /dev/null
+++ b/dashboard-ui/thirdparty/jquerymobile-1.4.5/jqm.table.css
@@ -0,0 +1,108 @@
+.ui-table {
+ border: 0;
+ border-collapse: collapse;
+ padding: 0;
+ width: 100%;
+}
+.ui-table th,
+.ui-table td {
+ line-height: 1.5em;
+ text-align: left;
+ padding: .4em .5em;
+ vertical-align:top;
+}
+.ui-table th .ui-btn,
+.ui-table td .ui-btn {
+ line-height: normal;
+}
+.ui-table th {
+ font-weight: bold;
+}
+.ui-table caption {
+ text-align: left;
+ margin-bottom: 1.4em;
+ opacity: .5;
+}
+
+
+/*
+ Styles for the table columntoggle mode
+*/
+.ui-table-reflow td .ui-table-cell-label,
+.ui-table-reflow th .ui-table-cell-label {
+ display: none;
+}
+
+/* Mobile first styles: Begin with the stacked presentation at narrow widths */
+@media only all {
+ /* Hide the table headers */
+ .ui-table-reflow thead td,
+ .ui-table-reflow thead th {
+ display: none;
+ }
+ /* Show the table cells as a block level element */
+ .ui-table-reflow td,
+ .ui-table-reflow th {
+ text-align: left;
+ display: block;
+ }
+ /* Add a fair amount of top margin to visually separate each row when stacked */
+ .ui-table-reflow tbody th {
+ margin-top: 3em;
+ }
+ /* Make the label elements a percentage width */
+ .ui-table-reflow td .ui-table-cell-label,
+ .ui-table-reflow th .ui-table-cell-label {
+ padding: .4em;
+ min-width: 30%;
+ display: inline-block;
+ margin: -.4em 1em -.4em -.4em;
+ }
+ /* For grouped headers, have a different style to visually separate the levels by classing the first label in each col group */
+ .ui-table-reflow th .ui-table-cell-label-top,
+ .ui-table-reflow td .ui-table-cell-label-top {
+ display: block;
+ padding: .4em 0;
+ margin: .4em 0;
+ text-transform: uppercase;
+ font-size: .9em;
+ font-weight: normal;
+ }
+}
+
+
+/* Breakpoint to show as a standard table at 560px (35em x 16px) or wider */
+@media ( min-width: 35em ) {
+
+ /* Show the table header rows */
+ .ui-table-reflow.ui-responsive td,
+ .ui-table-reflow.ui-responsive th,
+ .ui-table-reflow.ui-responsive tbody th,
+ .ui-table-reflow.ui-responsive tbody td,
+ .ui-table-reflow.ui-responsive thead td,
+ .ui-table-reflow.ui-responsive thead th {
+ display: table-cell;
+ margin: 0;
+ }
+
+ /* Hide the labels in each cell */
+ .ui-table-reflow.ui-responsive td .ui-table-cell-label,
+ .ui-table-reflow.ui-responsive th .ui-table-cell-label {
+ display: none;
+ }
+}
+
+
+/* Hack to make IE9 and WP7.5 treat cells like block level elements, scoped to ui-responsive class */
+/* Applied in a max-width media query up to the table layout breakpoint so we don't need to negate this*/
+@media ( max-width: 35em ) {
+ .ui-table-reflow.ui-responsive td,
+ .ui-table-reflow.ui-responsive th {
+ width: 100%;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ float: left;
+ clear: left;
+ }
+}
\ No newline at end of file
diff --git a/dashboard-ui/thirdparty/jquerymobile-1.4.5/jqm.table.js b/dashboard-ui/thirdparty/jquerymobile-1.4.5/jqm.table.js
new file mode 100644
index 0000000000..b194ec764f
--- /dev/null
+++ b/dashboard-ui/thirdparty/jquerymobile-1.4.5/jqm.table.js
@@ -0,0 +1,167 @@
+(function ($, undefined) {
+
+ $.widget("mobile.table", {
+ options: {
+ classes: {
+ table: "ui-table"
+ },
+ enhanced: false
+ },
+
+ _create: function () {
+ if (!this.options.enhanced) {
+ this.element.addClass(this.options.classes.table);
+ }
+
+ // extend here, assign on refresh > _setHeaders
+ $.extend(this, {
+
+ // Expose headers and allHeaders properties on the widget
+ // headers references the THs within the first TR in the table
+ headers: undefined,
+
+ // allHeaders references headers, plus all THs in the thead, which may
+ // include several rows, or not
+ allHeaders: undefined
+ });
+
+ this._refresh(true);
+ },
+
+ _setHeaders: function () {
+ var trs = this.element.find("thead tr");
+
+ this.headers = this.element.find("tr:eq(0)").children();
+ this.allHeaders = this.headers.add(trs.children());
+ },
+
+ refresh: function () {
+ this._refresh();
+ },
+
+ rebuild: $.noop,
+
+ _refresh: function ( /* create */) {
+ var table = this.element,
+ trs = table.find("thead tr");
+
+ // updating headers on refresh (fixes #5880)
+ this._setHeaders();
+
+ // Iterate over the trs
+ trs.each(function () {
+ var columnCount = 0;
+
+ // Iterate over the children of the tr
+ $(this).children().each(function () {
+ var span = parseInt(this.getAttribute("colspan"), 10),
+ selector = ":nth-child(" + (columnCount + 1) + ")",
+ j;
+
+ this.setAttribute("data-" + $.mobile.ns + "colstart", columnCount + 1);
+
+ if (span) {
+ for (j = 0; j < span - 1; j++) {
+ columnCount++;
+ selector += ", :nth-child(" + (columnCount + 1) + ")";
+ }
+ }
+
+ // Store "cells" data on header as a reference to all cells in the
+ // same column as this TH
+ $(this).jqmData("cells", table.find("tr").not(trs.eq(0)).not(this).children(selector));
+
+ columnCount++;
+ });
+ });
+ }
+ });
+
+})(jQuery);
+
+
+(function ($, undefined) {
+
+ $.widget("mobile.table", $.mobile.table, {
+ options: {
+ mode: "reflow",
+ classes: $.extend($.mobile.table.prototype.options.classes, {
+ reflowTable: "ui-table-reflow",
+ cellLabels: "ui-table-cell-label"
+ })
+ },
+
+ _create: function () {
+ this._super();
+
+ // If it's not reflow mode, return here.
+ if (this.options.mode !== "reflow") {
+ return;
+ }
+
+ if (!this.options.enhanced) {
+ this.element.addClass(this.options.classes.reflowTable);
+
+ this._updateReflow();
+ }
+ },
+
+ rebuild: function () {
+ this._super();
+
+ if (this.options.mode === "reflow") {
+ this._refresh(false);
+ }
+ },
+
+ _refresh: function (create) {
+ this._super(create);
+ if (!create && this.options.mode === "reflow") {
+ this._updateReflow();
+ }
+ },
+
+ _updateReflow: function () {
+ var table = this,
+ opts = this.options;
+
+ // get headers in reverse order so that top-level headers are appended last
+ $(table.allHeaders.get().reverse()).each(function () {
+ var cells = $(this).jqmData("cells"),
+ colstart = $.mobile.getAttribute(this, "colstart"),
+ hierarchyClass = cells.not(this).filter("thead th").length && " ui-table-cell-label-top",
+ contents = $(this).clone().contents(),
+ iteration, filter;
+
+ if (contents.length > 0) {
+
+ if (hierarchyClass) {
+ iteration = parseInt(this.getAttribute("colspan"), 10);
+ filter = "";
+
+ if (iteration) {
+ filter = "td:nth-child(" + iteration + "n + " + (colstart) + ")";
+ }
+
+ table._addLabels(cells.filter(filter),
+ opts.classes.cellLabels + hierarchyClass, contents);
+ } else {
+ table._addLabels(cells, opts.classes.cellLabels, contents);
+ }
+
+ }
+ });
+ },
+
+ _addLabels: function (cells, label, contents) {
+ if (contents.length === 1 && contents[0].nodeName.toLowerCase() === "abbr") {
+ contents = contents.eq(0).attr("title");
+ }
+ // .not fixes #6006
+ cells
+ .not(":has(b." + label + ")")
+ .prepend($("").append(contents));
+ }
+ });
+
+})(jQuery);
\ No newline at end of file
diff --git a/dashboard-ui/thirdparty/jquerymobile-1.4.5/jquery.mobile.custom.js b/dashboard-ui/thirdparty/jquerymobile-1.4.5/jquery.mobile.custom.js
index 63daab48b1..b4b7bee425 100644
--- a/dashboard-ui/thirdparty/jquerymobile-1.4.5/jquery.mobile.custom.js
+++ b/dashboard-ui/thirdparty/jquerymobile-1.4.5/jquery.mobile.custom.js
@@ -11097,173 +11097,5 @@ $.widget( "mobile.popup", $.mobile.popup, {
})( jQuery );
-(function( $, undefined ) {
-
-$.widget( "mobile.table", {
- options: {
- classes: {
- table: "ui-table"
- },
- enhanced: false
- },
-
- _create: function() {
- if ( !this.options.enhanced ) {
- this.element.addClass( this.options.classes.table );
- }
-
- // extend here, assign on refresh > _setHeaders
- $.extend( this, {
-
- // Expose headers and allHeaders properties on the widget
- // headers references the THs within the first TR in the table
- headers: undefined,
-
- // allHeaders references headers, plus all THs in the thead, which may
- // include several rows, or not
- allHeaders: undefined
- });
-
- this._refresh( true );
- },
-
- _setHeaders: function() {
- var trs = this.element.find( "thead tr" );
-
- this.headers = this.element.find( "tr:eq(0)" ).children();
- this.allHeaders = this.headers.add( trs.children() );
- },
-
- refresh: function() {
- this._refresh();
- },
-
- rebuild: $.noop,
-
- _refresh: function( /* create */ ) {
- var table = this.element,
- trs = table.find( "thead tr" );
-
- // updating headers on refresh (fixes #5880)
- this._setHeaders();
-
- // Iterate over the trs
- trs.each( function() {
- var columnCount = 0;
-
- // Iterate over the children of the tr
- $( this ).children().each( function() {
- var span = parseInt( this.getAttribute( "colspan" ), 10 ),
- selector = ":nth-child(" + ( columnCount + 1 ) + ")",
- j;
-
- this.setAttribute( "data-" + $.mobile.ns + "colstart", columnCount + 1 );
-
- if ( span ) {
- for( j = 0; j < span - 1; j++ ) {
- columnCount++;
- selector += ", :nth-child(" + ( columnCount + 1 ) + ")";
- }
- }
-
- // Store "cells" data on header as a reference to all cells in the
- // same column as this TH
- $( this ).jqmData( "cells", table.find( "tr" ).not( trs.eq( 0 ) ).not( this ).children( selector ) );
-
- columnCount++;
- });
- });
- }
-});
-
-})( jQuery );
-
-
-(function( $, undefined ) {
-
-$.widget( "mobile.table", $.mobile.table, {
- options: {
- mode: "reflow",
- classes: $.extend( $.mobile.table.prototype.options.classes, {
- reflowTable: "ui-table-reflow",
- cellLabels: "ui-table-cell-label"
- })
- },
-
- _create: function() {
- this._super();
-
- // If it's not reflow mode, return here.
- if ( this.options.mode !== "reflow" ) {
- return;
- }
-
- if ( !this.options.enhanced ) {
- this.element.addClass( this.options.classes.reflowTable );
-
- this._updateReflow();
- }
- },
-
- rebuild: function() {
- this._super();
-
- if ( this.options.mode === "reflow" ) {
- this._refresh( false );
- }
- },
-
- _refresh: function( create ) {
- this._super( create );
- if ( !create && this.options.mode === "reflow" ) {
- this._updateReflow( );
- }
- },
-
- _updateReflow: function() {
- var table = this,
- opts = this.options;
-
- // get headers in reverse order so that top-level headers are appended last
- $( table.allHeaders.get().reverse() ).each( function() {
- var cells = $( this ).jqmData( "cells" ),
- colstart = $.mobile.getAttribute( this, "colstart" ),
- hierarchyClass = cells.not( this ).filter( "thead th" ).length && " ui-table-cell-label-top",
- contents = $( this ).clone().contents(),
- iteration, filter;
-
- if ( contents.length > 0 ) {
-
- if ( hierarchyClass ) {
- iteration = parseInt( this.getAttribute( "colspan" ), 10 );
- filter = "";
-
- if ( iteration ) {
- filter = "td:nth-child("+ iteration +"n + " + ( colstart ) +")";
- }
-
- table._addLabels( cells.filter( filter ),
- opts.classes.cellLabels + hierarchyClass, contents );
- } else {
- table._addLabels( cells, opts.classes.cellLabels, contents );
- }
-
- }
- });
- },
-
- _addLabels: function( cells, label, contents ) {
- if ( contents.length === 1 && contents[ 0 ].nodeName.toLowerCase() === "abbr" ) {
- contents = contents.eq( 0 ).attr( "title" );
- }
- // .not fixes #6006
- cells
- .not( ":has(b." + label + ")" )
- .prepend( $( "" ).append( contents ) );
- }
-});
-
-})( jQuery );
-
}));
\ No newline at end of file
diff --git a/dashboard-ui/thirdparty/jquerymobile-1.4.5/jquery.mobile.custom.structure.css b/dashboard-ui/thirdparty/jquerymobile-1.4.5/jquery.mobile.custom.structure.css
index 29a644e6c0..98dc346bd6 100644
--- a/dashboard-ui/thirdparty/jquerymobile-1.4.5/jquery.mobile.custom.structure.css
+++ b/dashboard-ui/thirdparty/jquerymobile-1.4.5/jquery.mobile.custom.structure.css
@@ -2408,114 +2408,4 @@ ol.ui-listview > li img:first-child + * ~ * {
M21=0.7071067811865477,
M22=0.7071067811865474,
SizingMethod='auto expand');
-}
-
-
-.ui-table {
- border: 0;
- border-collapse: collapse;
- padding: 0;
- width: 100%;
-}
-.ui-table th,
-.ui-table td {
- line-height: 1.5em;
- text-align: left;
- padding: .4em .5em;
- vertical-align:top;
-}
-.ui-table th .ui-btn,
-.ui-table td .ui-btn {
- line-height: normal;
-}
-.ui-table th {
- font-weight: bold;
-}
-.ui-table caption {
- text-align: left;
- margin-bottom: 1.4em;
- opacity: .5;
-}
-
-
-/*
- Styles for the table columntoggle mode
-*/
-.ui-table-reflow td .ui-table-cell-label,
-.ui-table-reflow th .ui-table-cell-label {
- display: none;
-}
-
-/* Mobile first styles: Begin with the stacked presentation at narrow widths */
-@media only all {
- /* Hide the table headers */
- .ui-table-reflow thead td,
- .ui-table-reflow thead th {
- display: none;
- }
- /* Show the table cells as a block level element */
- .ui-table-reflow td,
- .ui-table-reflow th {
- text-align: left;
- display: block;
- }
- /* Add a fair amount of top margin to visually separate each row when stacked */
- .ui-table-reflow tbody th {
- margin-top: 3em;
- }
- /* Make the label elements a percentage width */
- .ui-table-reflow td .ui-table-cell-label,
- .ui-table-reflow th .ui-table-cell-label {
- padding: .4em;
- min-width: 30%;
- display: inline-block;
- margin: -.4em 1em -.4em -.4em;
- }
- /* For grouped headers, have a different style to visually separate the levels by classing the first label in each col group */
- .ui-table-reflow th .ui-table-cell-label-top,
- .ui-table-reflow td .ui-table-cell-label-top {
- display: block;
- padding: .4em 0;
- margin: .4em 0;
- text-transform: uppercase;
- font-size: .9em;
- font-weight: normal;
- }
-}
-
-
-/* Breakpoint to show as a standard table at 560px (35em x 16px) or wider */
-@media ( min-width: 35em ) {
-
- /* Show the table header rows */
- .ui-table-reflow.ui-responsive td,
- .ui-table-reflow.ui-responsive th,
- .ui-table-reflow.ui-responsive tbody th,
- .ui-table-reflow.ui-responsive tbody td,
- .ui-table-reflow.ui-responsive thead td,
- .ui-table-reflow.ui-responsive thead th {
- display: table-cell;
- margin: 0;
- }
-
- /* Hide the labels in each cell */
- .ui-table-reflow.ui-responsive td .ui-table-cell-label,
- .ui-table-reflow.ui-responsive th .ui-table-cell-label {
- display: none;
- }
-}
-
-
-/* Hack to make IE9 and WP7.5 treat cells like block level elements, scoped to ui-responsive class */
-/* Applied in a max-width media query up to the table layout breakpoint so we don't need to negate this*/
-@media ( max-width: 35em ) {
- .ui-table-reflow.ui-responsive td,
- .ui-table-reflow.ui-responsive th {
- width: 100%;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- float: left;
- clear: left;
- }
}
\ No newline at end of file
diff --git a/dashboard-ui/vulcanize-out.html b/dashboard-ui/vulcanize-out.html
index 8e267385d7..7a63133d03 100644
--- a/dashboard-ui/vulcanize-out.html
+++ b/dashboard-ui/vulcanize-out.html
@@ -11362,6 +11362,7 @@ The `aria-labelledby` attribute will be set to the header element, if one exists
/**
* Returns the currently focused item.
+ * @type {?Object}
*/
focusedItem: {
observer: '_focusedItemChanged',