jquery-tablesorter 1.17.2 → 1.17.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/lib/jquery-tablesorter/version.rb +1 -1
  4. data/vendor/assets/javascripts/jquery-tablesorter/addons/pager/jquery.tablesorter.pager.js +76 -71
  5. data/vendor/assets/javascripts/jquery-tablesorter/extras/jquery.dragtable.mod.js +1 -1
  6. data/vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.combined.js +2647 -2576
  7. data/vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.js +174 -119
  8. data/vendor/assets/javascripts/jquery-tablesorter/jquery.tablesorter.widgets.js +2487 -2471
  9. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date-extract.js +15 -15
  10. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date-iso8601.js +1 -1
  11. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date-month.js +4 -4
  12. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date-range.js +1 -1
  13. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date-two-digit-year.js +12 -12
  14. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date-weekday.js +4 -4
  15. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-date.js +1 -1
  16. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-duration.js +1 -1
  17. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-feet-inch-fraction.js +6 -6
  18. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-file-type.js +22 -22
  19. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-globalize.js +1 -1
  20. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-ignore-articles.js +15 -15
  21. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-image.js +3 -3
  22. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-input-select.js +10 -3
  23. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-metric.js +2 -2
  24. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-named-numbers.js +3 -3
  25. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-network.js +1 -1
  26. data/vendor/assets/javascripts/jquery-tablesorter/parsers/parser-roman.js +4 -4
  27. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-alignChar.js +122 -121
  28. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-build-table.js +13 -13
  29. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-chart.js +2 -2
  30. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-columnSelector.js +324 -324
  31. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-columns.js +60 -60
  32. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-editable.js +219 -219
  33. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-filter-formatter-html5.js +360 -361
  34. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-filter-formatter-jui.js +666 -666
  35. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-filter-formatter-select2.js +124 -124
  36. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-filter-type-insideRange.js +1 -1
  37. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-filter.js +1448 -1433
  38. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-formatter.js +1 -1
  39. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-grouping.js +213 -213
  40. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-headerTitles.js +3 -3
  41. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-math.js +271 -216
  42. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-output.js +339 -320
  43. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-pager.js +1057 -1045
  44. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-print.js +109 -109
  45. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-reflow.js +114 -115
  46. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-resizable.js +360 -359
  47. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-saveSort.js +59 -59
  48. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-scroller.js +818 -806
  49. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-sort2Hash.js +128 -0
  50. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-sortTbodies.js +195 -195
  51. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-staticRow.js +90 -90
  52. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-stickyHeaders.js +257 -257
  53. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-storage.js +76 -76
  54. data/vendor/assets/javascripts/jquery-tablesorter/widgets/widget-uitheme.js +170 -170
  55. metadata +3 -3
  56. data/vendor/assets/javascripts/jquery-tablesorter/extras/jquery.quicksearch.js +0 -195
@@ -4,120 +4,120 @@
4
4
  /*jshint browser:true, jquery:true, unused:false */
5
5
  /*global jQuery: false */
6
6
  ;(function($){
7
- "use strict";
8
-
9
- var ts = $.tablesorter,
10
-
11
- printTable = ts.printTable = {
12
-
13
- event : 'printTable',
14
- basicStyle : 'table, tr, td, th { border : solid 1px black; border-collapse : collapse; } td, th { padding: 2px; }',
15
-
16
- init : function(c) {
17
- c.$table
18
- .unbind(printTable.event)
19
- .bind(printTable.event, function(){
20
- // explicitly use table.config.widgetOptions because we want
21
- // the most up-to-date values; not the "wo" from initialization
22
- printTable.process(c, c.widgetOptions);
7
+ 'use strict';
8
+
9
+ var ts = $.tablesorter,
10
+
11
+ printTable = ts.printTable = {
12
+
13
+ event : 'printTable',
14
+ basicStyle : 'table, tr, td, th { border : solid 1px black; border-collapse : collapse; } td, th { padding: 2px; }',
15
+
16
+ init : function(c) {
17
+ c.$table
18
+ .unbind(printTable.event)
19
+ .bind(printTable.event, function(){
20
+ // explicitly use table.config.widgetOptions because we want
21
+ // the most up-to-date values; not the 'wo' from initialization
22
+ printTable.process(c, c.widgetOptions);
23
+ });
24
+ },
25
+
26
+ process : function(c, wo) {
27
+ var $this,
28
+ $table = $('<div/>').append(c.$table.clone()),
29
+ printStyle = printTable.basicStyle + 'table { width: 100% }' +
30
+ // hide filter row
31
+ '.tablesorter-filter-row { display: none }' +
32
+ // hide sort arrows
33
+ '.tablesorter-header { background-image: none !important; }';
34
+
35
+ // replace content with data-attribute content
36
+ $table.find('[' + wo.print_dataAttrib + ']').each(function(){
37
+ $this = $(this);
38
+ $this.text( $this.attr(wo.print_dataAttrib) );
23
39
  });
24
- },
25
-
26
- process : function(c, wo) {
27
- var $this,
28
- $table = $('<div/>').append(c.$table.clone()),
29
- printStyle = printTable.basicStyle + 'table { width: 100% }' +
30
- // hide filter row
31
- '.tablesorter-filter-row { display: none }' +
32
- // hide sort arrows
33
- '.tablesorter-header { background-image: none !important; }';
34
-
35
- // replace content with data-attribute content
36
- $table.find('[' + wo.print_dataAttrib + ']').each(function(){
37
- $this = $(this);
38
- $this.text( $this.attr(wo.print_dataAttrib) );
39
- });
40
-
41
- // === rows ===
42
- // Assume "visible" means rows hidden by the pager (rows set to "display:none")
43
- // or hidden by a class name which is added to the wo.print_extraCSS definition
44
- if (/a/i.test(wo.print_rows)) {
45
- // force show of all rows
46
- printStyle += 'tbody tr { display: table-row !important; }';
47
- } else if (/f/i.test(wo.print_rows)) {
48
- // add definition to show all non-filtered rows (cells hidden by the pager)
49
- printStyle += 'tbody tr:not(.' + (wo.filter_filteredRow || 'filtered') + ') { display: table-row !important; }';
50
- }
51
40
 
52
- // === columns ===
53
- // columnSelector -> c.selector.$style
54
- // Assume "visible" means hidden columns have a "display:none" style, or a class name
55
- // add the definition to the wo.print_extraCSS option
56
- if (/s/i.test(wo.print_columns) && c.selector && c.widgets.indexOf('columnSelector') >= 0) {
57
- // show selected (visible) columns; make a copy of the columnSelector widget css (not media queries)
58
- printStyle += wo.columnSelector_mediaquery && c.selector.auto ? '' : c.selector.$style.text();
59
- } else if (/a/i.test(wo.print_columns)) {
60
- // force show all cells
61
- printStyle += 'td, th { display: table-cell !important; }';
41
+ // === rows ===
42
+ // Assume 'visible' means rows hidden by the pager (rows set to 'display:none')
43
+ // or hidden by a class name which is added to the wo.print_extraCSS definition
44
+ if (/a/i.test(wo.print_rows)) {
45
+ // force show of all rows
46
+ printStyle += 'tbody tr { display: table-row !important; }';
47
+ } else if (/f/i.test(wo.print_rows)) {
48
+ // add definition to show all non-filtered rows (cells hidden by the pager)
49
+ printStyle += 'tbody tr:not(.' + (wo.filter_filteredRow || 'filtered') + ') { display: table-row !important; }';
50
+ }
51
+
52
+ // === columns ===
53
+ // columnSelector -> c.selector.$style
54
+ // Assume 'visible' means hidden columns have a 'display:none' style, or a class name
55
+ // add the definition to the wo.print_extraCSS option
56
+ if (/s/i.test(wo.print_columns) && c.selector && c.widgets.indexOf('columnSelector') >= 0) {
57
+ // show selected (visible) columns; make a copy of the columnSelector widget css (not media queries)
58
+ printStyle += wo.columnSelector_mediaquery && c.selector.auto ? '' : c.selector.$style.text();
59
+ } else if (/a/i.test(wo.print_columns)) {
60
+ // force show all cells
61
+ printStyle += 'td, th { display: table-cell !important; }';
62
+ }
63
+
64
+ printStyle += wo.print_extraCSS;
65
+
66
+ // callback function
67
+ if ( $.isFunction(wo.print_callback) ) {
68
+ wo.print_callback( c, $table, printStyle );
69
+ } else {
70
+ printTable.printOutput(c, $table.html(), printStyle);
71
+ }
72
+
73
+ }, // end process
74
+
75
+ printOutput : function(c, data, style) {
76
+ var wo = c.widgetOptions,
77
+ generator = window.open('', wo.print_title, 'width=500,height=300'),
78
+ t = wo.print_title || c.$table.find('caption').text() || c.$table[0].id || document.title || 'table';
79
+ generator.document.write(
80
+ '<html><head><title>' + t + '</title>' +
81
+ ( wo.print_styleSheet ? '<link rel="stylesheet" href="' + wo.print_styleSheet + '">' : '' ) +
82
+ '<style>' + style + '</style>' +
83
+ '</head><body>' + data + '</body></html>'
84
+ );
85
+ generator.document.close();
86
+ generator.print();
87
+ generator.close();
88
+ return true;
89
+ },
90
+
91
+ remove : function(c) {
92
+ c.$table.off(printTable.event);
62
93
  }
63
94
 
64
- printStyle += wo.print_extraCSS;
65
-
66
- // callback function
67
- if ( $.isFunction(wo.print_callback) ) {
68
- wo.print_callback( c, $table, printStyle );
69
- } else {
70
- printTable.printOutput(c, $table.html(), printStyle);
95
+ };
96
+
97
+ ts.addWidget({
98
+ id: 'print',
99
+ options: {
100
+ print_title : '', // this option > caption > table id > 'table'
101
+ print_dataAttrib : 'data-name', // header attrib containing modified header name
102
+ print_rows : 'filtered', // (a)ll, (v)isible or (f)iltered
103
+ print_columns : 'selected', // (a)ll or (s)elected (if columnSelector widget is added)
104
+ print_extraCSS : '', // add any extra css definitions for the popup window here
105
+ print_styleSheet : '', // add the url of your print stylesheet
106
+ // callback executed when processing completes
107
+ // to continue printing, use the following function:
108
+ // function( config, $table, printStyle ) {
109
+ // // do something to the table or printStyle string
110
+ // $.tablesorter.printTable.printOutput( config, $table.html(), printStyle );
111
+ // }
112
+ print_callback : null
113
+ },
114
+ init: function(table, thisWidget, c) {
115
+ printTable.init(c);
116
+ },
117
+ remove: function(table, c){
118
+ printTable.remove(c);
71
119
  }
72
120
 
73
- }, // end process
74
-
75
- printOutput : function(c, data, style) {
76
- var wo = c.widgetOptions,
77
- generator = window.open('', wo.print_title, 'width=500,height=300'),
78
- t = wo.print_title || c.$table.find('caption').text() || c.$table[0].id || document.title || 'table';
79
- generator.document.write(
80
- '<html><head><title>' + t + '</title>' +
81
- ( wo.print_styleSheet ? '<link rel="stylesheet" href="' + wo.print_styleSheet + '">' : '' ) +
82
- '<style>' + style + '</style>' +
83
- '</head><body>' + data + '</body></html>'
84
- );
85
- generator.document.close();
86
- generator.print();
87
- generator.close();
88
- return true;
89
- },
90
-
91
- remove : function(c) {
92
- c.$table.off(printTable.event);
93
- }
94
-
95
- };
96
-
97
- ts.addWidget({
98
- id: 'print',
99
- options: {
100
- print_title : '', // this option > caption > table id > "table"
101
- print_dataAttrib : 'data-name', // header attrib containing modified header name
102
- print_rows : 'filtered', // (a)ll, (v)isible or (f)iltered
103
- print_columns : 'selected', // (a)ll or (s)elected (if columnSelector widget is added)
104
- print_extraCSS : '', // add any extra css definitions for the popup window here
105
- print_styleSheet : '', // add the url of your print stylesheet
106
- // callback executed when processing completes
107
- // to continue printing, use the following function:
108
- // function( config, $table, printStyle ) {
109
- // // do something to the table or printStyle string
110
- // $.tablesorter.printTable.printOutput( config, $table.html(), printStyle );
111
- // }
112
- print_callback : null
113
- },
114
- init: function(table, thisWidget, c) {
115
- printTable.init(c);
116
- },
117
- remove: function(table, c){
118
- printTable.remove(c);
119
- }
120
-
121
- });
121
+ });
122
122
 
123
123
  })(jQuery);
@@ -50,131 +50,130 @@
50
50
  /*jshint browser:true, jquery:true, unused:false */
51
51
  /*global jQuery: false */
52
52
  ;(function($){
53
- "use strict";
53
+ 'use strict';
54
54
 
55
- var ts = $.tablesorter,
55
+ var ts = $.tablesorter,
56
56
 
57
- tablereflow = {
58
- // simple reflow
59
- // add data-attribute to each cell which shows when media query is active
60
- // this widget DOES NOT WORK on a table with multiple thead rows
61
- init : function(table, c, wo) {
62
- var $this,
63
- title = wo.reflow_dataAttrib,
64
- header = wo.reflow_headerAttrib,
65
- headers = [];
66
- c.$table
67
- .addClass(wo.reflow_className)
68
- .off('refresh.tsreflow updateComplete.tsreflow2')
69
- // emulate jQuery Mobile refresh
70
- // https://api.jquerymobile.com/table-reflow/#method-refresh
71
- .on('refresh.tsreflow updateComplete.tsreflow2', function(){
72
- tablereflow.init(table, c, wo);
73
- });
74
- c.$headers.each(function(){
75
- $this = $(this);
76
- headers.push( $.trim( $this.attr(header) || $this.text() ) );
77
- });
78
- c.$tbodies.children().each(function(){
79
- $(this).children().each(function(i){
80
- $(this).attr(title, headers[i]);
57
+ tablereflow = {
58
+ // simple reflow
59
+ // add data-attribute to each cell which shows when media query is active
60
+ // this widget DOES NOT WORK on a table with multiple thead rows
61
+ init : function(table, c, wo) {
62
+ var $this,
63
+ title = wo.reflow_dataAttrib,
64
+ header = wo.reflow_headerAttrib,
65
+ headers = [];
66
+ c.$table
67
+ .addClass(wo.reflow_className)
68
+ .off('refresh.tsreflow updateComplete.tsreflow2')
69
+ // emulate jQuery Mobile refresh
70
+ // https://api.jquerymobile.com/table-reflow/#method-refresh
71
+ .on('refresh.tsreflow updateComplete.tsreflow2', function(){
72
+ tablereflow.init(table, c, wo);
73
+ });
74
+ c.$headers.each(function(){
75
+ $this = $(this);
76
+ headers.push( $.trim( $this.attr(header) || $this.text() ) );
81
77
  });
82
- });
83
- },
84
- init2: function(table, c, wo) {
85
- var $this, $tbody, i, $hdr, txt, len,
86
- cols = c.columns,
87
- header = wo.reflow2_headerAttrib,
88
- headers = [];
89
- c.$table
90
- .addClass(wo.reflow2_className)
91
- .off('refresh.tsreflow2 updateComplete.tsreflow2')
92
- // emulate jQuery Mobile refresh
93
- // https://api.jquerymobile.com/table-reflow/#method-refresh
94
- .on('refresh.tsreflow2 updateComplete.tsreflow2', function(){
95
- tablereflow.init2(table, c, wo);
78
+ c.$tbodies.children().each(function(){
79
+ $(this).children().each(function(i){
80
+ $(this).attr(title, headers[i]);
81
+ });
96
82
  });
83
+ },
84
+ init2: function(table, c, wo) {
85
+ var $this, $tbody, i, $hdr, txt, len,
86
+ cols = c.columns,
87
+ header = wo.reflow2_headerAttrib,
88
+ headers = [];
89
+ c.$table
90
+ .addClass(wo.reflow2_className)
91
+ .off('refresh.tsreflow2 updateComplete.tsreflow2')
92
+ // emulate jQuery Mobile refresh
93
+ // https://api.jquerymobile.com/table-reflow/#method-refresh
94
+ .on('refresh.tsreflow2 updateComplete.tsreflow2', function(){
95
+ tablereflow.init2(table, c, wo);
96
+ });
97
97
 
98
- // add <b> to every table cell with thead cell contents
99
- for (i = 0; i < cols; i++) {
100
- $hdr = c.$headers.filter('[data-column="' + i + '"]');
101
- if ($hdr.length > 1) {
102
- txt = [];
103
- /*jshint loopfunc:true */
104
- $hdr.each(function(){
98
+ // add <b> to every table cell with thead cell contents
99
+ for (i = 0; i < cols; i++) {
100
+ $hdr = c.$headers.filter('[data-column="' + i + '"]');
101
+ if ($hdr.length > 1) {
102
+ txt = [];
103
+ /*jshint loopfunc:true */
104
+ $hdr.each(function(){
105
+ $this = $(this);
106
+ if (!$this.hasClass(wo.reflow2_classIgnore)) {
107
+ txt.push( $this.attr(header) || $this.text() );
108
+ }
109
+ });
110
+ } else {
111
+ txt = [ $hdr.attr(header) || $hdr.text() ];
112
+ }
113
+ headers.push( txt );
114
+ }
115
+ // include 'remove-me' class so these additional elements are removed before updating
116
+ txt = '<b class="' + c.selectorRemove.slice(1) + ' ' + wo.reflow2_labelClass;
117
+ c.$tbodies.children().each(function(){
118
+ $tbody = ts.processTbody(table, $(this), true);
119
+ $tbody.children().each(function(j){
105
120
  $this = $(this);
106
- if (!$this.hasClass(wo.reflow2_classIgnore)) {
107
- txt.push( $this.attr(header) || $this.text() );
121
+ len = headers[j].length;
122
+ i = len - 1;
123
+ while (i >= 0) {
124
+ $this.prepend(txt + (i === 0 && len > 1 ? ' ' + wo.reflow2_labelTop : '') + '">' + headers[j][i] + '</b>');
125
+ i--;
108
126
  }
109
127
  });
110
- } else {
111
- txt = [ $hdr.attr(header) || $hdr.text() ];
112
- }
113
- headers.push( txt );
114
- }
115
- // include "remove-me" class so these additional elements are removed before updating
116
- txt = '<b class="' + c.selectorRemove.slice(1) + ' ' + wo.reflow2_labelClass;
117
- c.$tbodies.children().each(function(){
118
- $tbody = ts.processTbody(table, $(this), true);
119
- $tbody.children().each(function(j){
120
- $this = $(this);
121
- len = headers[j].length;
122
- i = len - 1;
123
- while (i >= 0) {
124
- $this.prepend(txt + (i === 0 && len > 1 ? ' ' + wo.reflow2_labelTop : '') + '">' + headers[j][i] + '</b>');
125
- i--;
126
- }
128
+ ts.processTbody(table, $tbody, false);
127
129
  });
128
- ts.processTbody(table, $tbody, false);
129
- });
130
- },
131
- remove : function(table, c, wo) {
132
- c.$table.removeClass(wo.reflow_className);
133
- },
134
- remove2 : function(table, c, wo) {
135
- c.$table.removeClass(wo.reflow2_className);
136
- }
137
- };
138
-
139
- ts.addWidget({
140
- id: "reflow",
141
- options: {
142
- // class name added to make it responsive (class name within media query)
143
- reflow_className : 'ui-table-reflow',
144
- // header attribute containing modified header name
145
- reflow_headerAttrib : 'data-name',
146
- // data attribute added to each tbody cell
147
- reflow_dataAttrib : 'data-title'
148
- },
149
- init: function(table, thisWidget, c, wo) {
150
- tablereflow.init(table, c, wo);
151
- },
152
- remove: function(table, c, wo){
153
- tablereflow.remove(table, c, wo);
154
- }
155
- });
130
+ },
131
+ remove : function(table, c, wo) {
132
+ c.$table.removeClass(wo.reflow_className);
133
+ },
134
+ remove2 : function(table, c, wo) {
135
+ c.$table.removeClass(wo.reflow2_className);
136
+ }
137
+ };
156
138
 
157
- ts.addWidget({
158
- id: "reflow2",
159
- options: {
160
- // class name added to make it responsive (class name within media query)
161
- reflow2_className : 'ui-table-reflow',
162
- // ignore header cell content with this class name
163
- reflow2_classIgnore : 'ui-table-reflow-ignore',
164
- // header attribute containing modified header name
165
- reflow2_headerAttrib : 'data-name',
166
- // class name applied to thead labels
167
- reflow2_labelClass : 'ui-table-cell-label',
168
- // class name applied to first row thead label
169
- reflow2_labelTop : 'ui-table-cell-label-top'
170
- },
171
- init: function(table, thisWidget, c, wo) {
172
- tablereflow.init2(table, c, wo);
173
- },
174
- remove: function(table, c, wo){
175
- tablereflow.remove2(table, c, wo);
176
- }
177
- });
139
+ ts.addWidget({
140
+ id: 'reflow',
141
+ options: {
142
+ // class name added to make it responsive (class name within media query)
143
+ reflow_className : 'ui-table-reflow',
144
+ // header attribute containing modified header name
145
+ reflow_headerAttrib : 'data-name',
146
+ // data attribute added to each tbody cell
147
+ reflow_dataAttrib : 'data-title'
148
+ },
149
+ init: function(table, thisWidget, c, wo) {
150
+ tablereflow.init(table, c, wo);
151
+ },
152
+ remove: function(table, c, wo){
153
+ tablereflow.remove(table, c, wo);
154
+ }
155
+ });
178
156
 
157
+ ts.addWidget({
158
+ id: 'reflow2',
159
+ options: {
160
+ // class name added to make it responsive (class name within media query)
161
+ reflow2_className : 'ui-table-reflow',
162
+ // ignore header cell content with this class name
163
+ reflow2_classIgnore : 'ui-table-reflow-ignore',
164
+ // header attribute containing modified header name
165
+ reflow2_headerAttrib : 'data-name',
166
+ // class name applied to thead labels
167
+ reflow2_labelClass : 'ui-table-cell-label',
168
+ // class name applied to first row thead label
169
+ reflow2_labelTop : 'ui-table-cell-label-top'
170
+ },
171
+ init: function(table, thisWidget, c, wo) {
172
+ tablereflow.init2(table, c, wo);
173
+ },
174
+ remove: function(table, c, wo){
175
+ tablereflow.remove2(table, c, wo);
176
+ }
177
+ });
179
178
 
180
179
  })(jQuery);