diff --git a/dist/starter.html b/dist/starter.html
new file mode 100644
index 00000000..e6313b6a
--- /dev/null
+++ b/dist/starter.html
@@ -0,0 +1,514 @@
+
+
+
+ tablefilter v0.0.11 - Starter
+
+
+tablefilter v0.0.11
+
+
+
+
+
+
+ country |
+ isocode |
+ year |
+ POP |
+ XRAT |
+ PPP |
+ cgdp |
+ cc |
+ ci |
+
+
+
+
+ Benin |
+ BEN |
+ 1998 |
+ 5950.33 |
+ 589.9517822 |
+ 190.95 |
+ 1178.46 |
+ 90.98 |
+ 7.55 |
+
+
+ Benin |
+ BEN |
+ 1999 |
+ 6109.53 |
+ 615.6990967 |
+ 200.19 |
+ 1174.90 |
+ 92.61 |
+ 7.86 |
+
+
+ Benin |
+ BEN |
+ 2000 |
+ 6272.00 |
+ 711.9763184 |
+ 200.61 |
+ 1224.74 |
+ 92.27 |
+ 8.25 |
+
+
+ Burkina Faso |
+ BFA |
+ 1994 |
+ 9755.03 |
+ 555.2047119 |
+ 125.76 |
+ 838.76 |
+ 79.81 |
+ 6.57 |
+
+
+ Burkina Faso |
+ BFA |
+ 1995 |
+ 9988.00 |
+ 499.148407 |
+ 136.65 |
+ 860.89 |
+ 80.41 |
+ 9.29 |
+
+
+ Burkina Faso |
+ BFA |
+ 1996 |
+ 10225.00 |
+ 511.5523987 |
+ 144.18 |
+ 881.11 |
+ 80.40 |
+ 12.12 |
+
+
+ Burkina Faso |
+ BFA |
+ 1997 |
+ 10473.53 |
+ 583.6693726 |
+ 141.78 |
+ 899.01 |
+ 76.94 |
+ 14.94 |
+
+
+ Russia |
+ RUS |
+ 1998 |
+ 146899.01 |
+ 9.705082893 |
+ 2.64 |
+ 7086.39 |
+ 67.73 |
+ 9.20 |
+
+
+ Russia |
+ RUS |
+ 1999 |
+ 146308.99 |
+ 24.6199398 |
+ 4.03 |
+ 8074.70 |
+ 57.35 |
+ 8.81 |
+
+
+ Russia |
+ RUS |
+ 2000 |
+ 145555.01 |
+ 28.12916946 |
+ 4.85 |
+ 9995.91 |
+ 54.74 |
+ 8.79 |
+
+
+ Rwanda |
+ RWA |
+ 1994 |
+ 6230.00 |
+ 194.517 |
+ 50.39 |
+ 529.48 |
+ 132.16 |
+ 4.48 |
+
+
+ Rwanda |
+ RWA |
+ 1995 |
+ 6400.00 |
+ 262.1975098 |
+ 70.67 |
+ 746.34 |
+ 92.77 |
+ 3.08 |
+
+
+ Rwanda |
+ RWA |
+ 1996 |
+ 6727.00 |
+ 306.8200073 |
+ 77.90 |
+ 823.25 |
+ 89.71 |
+ 3.21 |
+
+
+ Rwanda |
+ RWA |
+ 1997 |
+ 7895.18 |
+ 301.5297852 |
+ 84.13 |
+ 847.79 |
+ 91.44 |
+ 3.72 |
+
+
+ Rwanda |
+ RWA |
+ 1998 |
+ 8105.00 |
+ 312.3140869 |
+ 85.32 |
+ 914.22 |
+ 89.34 |
+ 4.22 |
+
+
+ El Salvador |
+ SLV |
+ 1995 |
+ 5669.00 |
+ 8.754583359 |
+ 3.54 |
+ 4143.59 |
+ 89.31 |
+ 10.35 |
+
+
+ El Salvador |
+ SLV |
+ 1996 |
+ 5798.00 |
+ 8.755000114 |
+ 3.69 |
+ 4235.79 |
+ 88.77 |
+ 7.79 |
+
+
+ El Salvador |
+ SLV |
+ 1997 |
+ 5911.00 |
+ 8.756250381 |
+ 3.74 |
+ 4408.41 |
+ 87.05 |
+ 7.90 |
+
+
+ Slovak Republic |
+ SVK |
+ 2000 |
+ 5401.00 |
+ 46.0352 |
+ 13.02 |
+ 12618.53 |
+ 52.22 |
+ 24.78 |
+
+
+ Slovenia |
+ SVN |
+ 1994 |
+ 1988.90 |
+ 128.8085938 |
+ 79.97 |
+ 11662.12 |
+ 53.21 |
+ 19.87 |
+
+
+ Slovenia |
+ SVN |
+ 1995 |
+ 1990.00 |
+ 118.5185013 |
+ 89.03 |
+ 12574.96 |
+ 54.46 |
+ 23.11 |
+
+
+ Slovenia |
+ SVN |
+ 1996 |
+ 1991.00 |
+ 135.3643036 |
+ 97.27 |
+ 13151.51 |
+ 54.32 |
+ 23.23 |
+
+
+ Slovenia |
+ SVN |
+ 1997 |
+ 1985.96 |
+ 159.6882935 |
+ 103.96 |
+ 14143.02 |
+ 53.24 |
+ 24.14 |
+
+
+ Slovenia |
+ SVN |
+ 1998 |
+ 1982.60 |
+ 166.134201 |
+ 108.93 |
+ 15067.34 |
+ 52.82 |
+ 25.35 |
+
+
+ Zambia |
+ ZMB |
+ 1994 |
+ 8740.72 |
+ 669.3706055 |
+ 307.48 |
+ 834.19 |
+ 75.43 |
+ 9.86 |
+
+
+ Zambia |
+ ZMB |
+ 1995 |
+ 8980.00 |
+ 864.1192017 |
+ 402.40 |
+ 829.37 |
+ 76.55 |
+ 10.31 |
+
+
+ Zambia |
+ ZMB |
+ 1996 |
+ 9214.40 |
+ 1207.900024 |
+ 515.01 |
+ 838.05 |
+ 78.74 |
+ 10.99 |
+
+
+ Zambia |
+ ZMB |
+ 1997 |
+ 9443.21 |
+ 1314.498047 |
+ 596.97 |
+ 851.47 |
+ 77.59 |
+ 12.15 |
+
+
+ Zambia |
+ ZMB |
+ 1998 |
+ 9665.71 |
+ 1862.06897 |
+ 744.91 |
+ 800.69 |
+ 85.12 |
+ 13.75 |
+
+
+ Zambia |
+ ZMB |
+ 1999 |
+ 9881.21 |
+ 2388.019043 |
+ 941.87 |
+ 765.24 |
+ 91.82 |
+ 15.30 |
+
+
+ Zambia |
+ ZMB |
+ 2000 |
+ 10089.00 |
+ 3110.843994 |
+ 1157.63 |
+ 840.97 |
+ 86.33 |
+ 15.38 |
+
+
+ Zimbabwe |
+ ZWE |
+ 1994 |
+ 10775.35 |
+ 8.151538849 |
+ 2.01 |
+ 2586.84 |
+ 60.10 |
+ 18.53 |
+
+
+ Zimbabwe |
+ ZWE |
+ 1995 |
+ 11011.00 |
+ 8.66537571 |
+ 2.15 |
+ 2603.37 |
+ 66.89 |
+ 15.03 |
+
+
+ Zimbabwe |
+ ZWE |
+ 1996 |
+ 11242.16 |
+ 10.00234985 |
+ 2.64 |
+ 2860.23 |
+ 72.06 |
+ 11.32 |
+
+
+ Zimbabwe |
+ ZWE |
+ 1997 |
+ 11923.52 |
+ 12.11128998 |
+ 3.17 |
+ 2727.06 |
+ 82.82 |
+ 11.01 |
+
+
+ Zimbabwe |
+ ZWE |
+ 1998 |
+ 12153.85 |
+ 23.67910957 |
+ 4.06 |
+ 2799.85 |
+ 77.66 |
+ 10.75 |
+
+
+ Zimbabwe |
+ ZWE |
+ 1999 |
+ 12388.32 |
+ 38.30120087 |
+ 6.12 |
+ 2770.48 |
+ 76.89 |
+ 10.73 |
+
+
+ Zimbabwe |
+ ZWE |
+ 2000 |
+ 12627.00 |
+ 44.41791916 |
+ 9.48 |
+ 2607.03 |
+ 69.23 |
+ 8.62 |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dist/tablefilter/style/colsVisibility.css b/dist/tablefilter/style/colsVisibility.css
index 3417d8ef..626314a1 100644
--- a/dist/tablefilter/style/colsVisibility.css
+++ b/dist/tablefilter/style/colsVisibility.css
@@ -1,6 +1,6 @@
/**
* tablefilter v0.0.11 by Max Guglielmi
- * build date: 2015-11-15T01:59:42.793Z
+ * build date: 2015-11-16T10:31:33.931Z
* MIT License
*/
span.colVisSpan{text-align:left;}span.colVisSpan a.colVis{display:inline-block;padding:7px 5px 0;font-size:inherit;font-weight:inherit;vertical-align:top}div.colVisCont{position:relative;background:#fff;-webkit-box-shadow:3px 3px 2px #888;-moz-box-shadow:3px 3px 2px #888;box-shadow:3px 3px 2px #888;position:absolute;display:none;border:1px solid #ccc;height:auto;width:250px;background-color:#fff;margin:35px 0 0 -100px;z-index:10000;padding:10px 10px 10px 10px;text-align:left;font-size:12px;}div.colVisCont:after,div.colVisCont:before{bottom:100%;left:50%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}div.colVisCont:after{border-color:rgba(255,255,255,0);border-bottom-color:#fff;border-width:10px;margin-left:-10px}div.colVisCont:before{border-color:rgba(255,255,255,0);border-bottom-color:#ccc;border-width:12px;margin-left:-12px}div.colVisCont p{margin:6px auto 6px auto}div.colVisCont a.colVis{display:initial;font-weight:inherit}ul.cols_checklist{padding:0;margin:0;list-style:none;}ul.cols_checklist label{display:block}ul.cols_checklist input{vertical-align:middle;margin:2px 5px 2px 1px}li.cols_checklist_item{padding:4px;margin:0;}li.cols_checklist_item:hover{background-color:#335ea8;color:#fff}.cols_checklist_slc_item{background-color:#335ea8;color:#fff}
\ No newline at end of file
diff --git a/dist/tablefilter/style/filtersVisibility.css b/dist/tablefilter/style/filtersVisibility.css
index 79c768fd..6426904b 100644
--- a/dist/tablefilter/style/filtersVisibility.css
+++ b/dist/tablefilter/style/filtersVisibility.css
@@ -1,6 +1,6 @@
/**
* tablefilter v0.0.11 by Max Guglielmi
- * build date: 2015-11-15T01:59:42.793Z
+ * build date: 2015-11-16T10:31:33.931Z
* MIT License
*/
span.expClpFlt a.btnExpClpFlt{width:35px;height:35px;display:inline-block;}span.expClpFlt a.btnExpClpFlt:hover{background-color:#f4f4f4}span.expClpFlt img{padding:8px 11px 11px 11px}
\ No newline at end of file
diff --git a/dist/tablefilter/style/tablefilter.css b/dist/tablefilter/style/tablefilter.css
index 455be694..7ac24de6 100644
--- a/dist/tablefilter/style/tablefilter.css
+++ b/dist/tablefilter/style/tablefilter.css
@@ -1,6 +1,6 @@
/**
* tablefilter v0.0.11 by Max Guglielmi
- * build date: 2015-11-15T01:59:42.793Z
+ * build date: 2015-11-16T10:31:33.931Z
* MIT License
*/
.activeHeader{background-color:#66afe9 !important;color:#fff !important}
diff --git a/dist/tablefilter/style/themes/default/default.css b/dist/tablefilter/style/themes/default/default.css
index f46f0b12..4da88a3f 100644
--- a/dist/tablefilter/style/themes/default/default.css
+++ b/dist/tablefilter/style/themes/default/default.css
@@ -1,6 +1,6 @@
/**
* tablefilter v0.0.11 by Max Guglielmi
- * build date: 2015-11-15T01:59:42.793Z
+ * build date: 2015-11-16T10:31:33.931Z
* MIT License
*/
table.TF{border-left:1px solid #ccc !important;border-top:none !important;border-right:none !important;border-bottom:none !important;}table.TF th{background:#ebecee url("images/bg_th.jpg") left top repeat-x !important;border-bottom:1px solid #d0d0d0 !important;border-right:1px solid #d0d0d0 !important;border-left:1px solid #fff !important;border-top:1px solid #fff !important;color:#333 !important}table.TF td{border-bottom:1px dotted #999 !important;padding:5px !important}.fltrow{background-color:#ebecee !important;}.fltrow th,.fltrow td{border-bottom:1px dotted #666 !important;padding:1px 3px 1px 3px !important}.flt,select.flt,select.flt_multi,.flt_s,.single_flt,.div_checklist{border:1px solid #999 !important}input.flt{width:99% !important}.inf{height:$min-height;background:#d7d7d7 url("images/bg_infDiv.jpg") 0 0 repeat-x !important}input.reset{background:transparent url("images/btn_eraser.gif") center center no-repeat !important}.helpBtn:hover{background-color:transparent}.nextPage{background:transparent url("images/btn_next_page.gif") center center no-repeat !important;}.nextPage:hover{background:transparent url("images/btn_over_next_page.gif") center center no-repeat !important}.previousPage{background:transparent url("images/btn_previous_page.gif") center center no-repeat !important;}.previousPage:hover{background:transparent url("images/btn_over_previous_page.gif") center center no-repeat !important}.firstPage{background:transparent url("images/btn_first_page.gif") center center no-repeat !important;}.firstPage:hover{background:transparent url("images/btn_over_first_page.gif") center center no-repeat !important}.lastPage{background:transparent url("images/btn_last_page.gif") center center no-repeat !important;}.lastPage:hover{background:transparent url("images/btn_over_last_page.gif") center center no-repeat !important}div.grd_Cont{background-color:#ebecee !important;border:1px solid #ccc !important;padding:0 !important;}div.grd_Cont .even{background-color:#fff}div.grd_Cont .odd{background-color:#d5d5d5}div.grd_headTblCont{background-color:#ebecee !important;border-bottom:none !important;}div.grd_headTblCont table{border-right:none !important}div.grd_tblCont table th,div.grd_headTblCont table th,div.grd_headTblCont table td{background:#ebecee url("images/bg_th.jpg") left top repeat-x !important;border-bottom:1px solid #d0d0d0 !important;border-right:1px solid #d0d0d0 !important;border-left:1px solid #fff !important;border-top:1px solid #fff !important}div.grd_tblCont table td{border-bottom:1px solid #999 !important}.grd_inf{background:#d7d7d7 url("images/bg_infDiv.jpg") 0 0 repeat-x !important;border-top:1px solid #d0d0d0 !important}.loader{border:1px solid #999}.defaultLoader{width:32px;height:32px;background:transparent url("images/img_loading.gif") 0 0 no-repeat !important}.even{background-color:#fff}.odd{background-color:#d5d5d5}span.expClpFlt a.btnExpClpFlt:hover{background-color:transparent !important}
\ No newline at end of file
diff --git a/dist/tablefilter/style/themes/mytheme/mytheme.css b/dist/tablefilter/style/themes/mytheme/mytheme.css
index 6291728c..07f4da2f 100644
--- a/dist/tablefilter/style/themes/mytheme/mytheme.css
+++ b/dist/tablefilter/style/themes/mytheme/mytheme.css
@@ -1,6 +1,6 @@
/**
* tablefilter v0.0.11 by Max Guglielmi
- * build date: 2015-11-15T01:59:42.793Z
+ * build date: 2015-11-16T10:31:33.931Z
* MIT License
*/
table.TF{border-left:1px dotted #81963b !important;border-top:none !important;border-right:0 !important;border-bottom:none !important;}table.TF th{background:#39424b url("images/bg_headers.jpg") left top repeat-x !important;border-bottom:0 !important;border-right:1px dotted #d0d0d0 !important;border-left:0 !important;border-top:0 !important;color:#fff !important}table.TF td{border-bottom:1px dotted #81963b;border-right:1px dotted #81963b;padding:5px !important}.fltrow{background-color:#81963b !important;}.fltrow th,.fltrow td{border-bottom:1px dotted #39424b !important;border-right:1px dotted #fff !important;border-left:0 !important;border-top:0 !important;padding:1px 3px 1px 3px !important}.flt,select.flt,select.flt_multi,.flt_s,.single_flt,.div_checklist{border:1px solid #687830 !important}input.flt{width:99% !important}.inf{background:#d8d8d8;height:$min-height}input.reset{width:53px;background:transparent url("images/btn_filter.png") center center no-repeat !important}.helpBtn:hover{background-color:transparent}.nextPage{background:transparent url("images/btn_next_page.gif") center center no-repeat !important}.previousPage{background:transparent url("images/btn_previous_page.gif") center center no-repeat !important}.firstPage{background:transparent url("images/btn_first_page.gif") center center no-repeat !important}.lastPage{background:transparent url("images/btn_last_page.gif") center center no-repeat !important}div.grd_Cont{background:#81963b url("images/bg_headers.jpg") left top repeat-x !important;border:1px solid #ccc !important;padding:0 1px 1px 1px !important;}div.grd_Cont .even{background-color:#bccd83}div.grd_Cont .odd{background-color:#fff}div.grd_headTblCont{background-color:#ebecee !important;border-bottom:none !important}div.grd_tblCont table{border-right:none !important;}div.grd_tblCont table td{border-bottom:1px dotted #81963b;border-right:1px dotted #81963b}div.grd_tblCont table th,div.grd_headTblCont table th{background:transparent url("images/bg_headers.jpg") 0 0 repeat-x !important;border-bottom:0 !important;border-right:1px dotted #d0d0d0 !important;border-left:0 !important;border-top:0 !important;padding:0 4px 0 4px !important;color:#fff !important;height:35px !important}div.grd_headTblCont table td{border-bottom:1px dotted #39424b !important;border-right:1px dotted #fff !important;border-left:0 !important;border-top:0 !important;background-color:#81963b !important;padding:1px 3px 1px 3px !important}.grd_inf{background-color:#d8d8d8;border-top:1px solid #d0d0d0 !important}.loader{border:0 !important;background:#81963b !important}.defaultLoader{width:32px;height:32px;background:transparent url("images/img_loading.gif") 0 0 no-repeat !important}.even{background-color:#bccd83}.odd{background-color:#fff}span.expClpFlt a.btnExpClpFlt:hover{background-color:transparent !important}
\ No newline at end of file
diff --git a/dist/tablefilter/style/themes/skyblue/skyblue.css b/dist/tablefilter/style/themes/skyblue/skyblue.css
index fcd7ebdf..d5b10e13 100644
--- a/dist/tablefilter/style/themes/skyblue/skyblue.css
+++ b/dist/tablefilter/style/themes/skyblue/skyblue.css
@@ -1,6 +1,6 @@
/**
* tablefilter v0.0.11 by Max Guglielmi
- * build date: 2015-11-15T01:59:42.793Z
+ * build date: 2015-11-16T10:31:33.931Z
* MIT License
*/
table.TF{padding:0;color:#000;border-right:1px solid #a4bed4;border-top:1px solid #a4bed4;border-left:1px solid #a4bed4;border-bottom:0;}table.TF th{margin:0;color:inherit;background:#d1e5fe url("images/bg_skyblue.gif") 0 0 repeat-x;border-color:#fdfdfd #a4bed4 #a4bed4 #fdfdfd;border-width:1px;border-style:solid}table.TF td{margin:0;padding:5px;color:inherit;border-bottom:1px solid #a4bed4;border-left:0;border-top:0;border-right:0}.fltrow{background-color:#d1e5fe !important;}.fltrow th,.fltrow td{padding:1px 3px 1px 3px !important}.flt,select.flt,select.flt_multi,.flt_s,.single_flt,.div_checklist{border:1px solid #a4bed4 !important}input.flt{width:99% !important}.inf{background-color:#e3efff !important;border:1px solid #a4bed4;height:$min-height;color:#004a6f}div.tot,div.status{border-right:0 !important}.helpBtn:hover{background-color:transparent}input.reset{background:transparent url("images/icn_clear_filters.png") center center no-repeat !important}.nextPage{background:transparent url("images/btn_next_page.gif") center center no-repeat !important;border:1px solid transparent !important;}.nextPage:hover{background:#ffe4ab url("images/btn_next_page.gif") center center no-repeat !important;border:1px solid #ffb552 !important}.previousPage{background:transparent url("images/btn_prev_page.gif") center center no-repeat !important;border:1px solid transparent !important;}.previousPage:hover{background:#ffe4ab url("images/btn_prev_page.gif") center center no-repeat !important;border:1px solid #ffb552 !important}.firstPage{background:transparent url("images/btn_first_page.gif") center center no-repeat !important;border:1px solid transparent !important;}.firstPage:hover{background:#ffe4ab url("images/btn_first_page.gif") center center no-repeat !important;border:1px solid #ffb552 !important}.lastPage{background:transparent url("images/btn_last_page.gif") center center no-repeat !important;border:1px solid transparent !important;}.lastPage:hover{background:#ffe4ab url("images/btn_last_page.gif") center center no-repeat !important;border:1px solid #ffb552 !important}.activeHeader{background:#ffe4ab !important;border:1px solid #ffb552 !important;color:inherit !important}div.grd_Cont{background-color:#d9eaed !important;border:1px solid #9cc !important;padding:0 !important;}div.grd_Cont .even{background-color:#fff}div.grd_Cont .odd{background-color:#e3efff}div.grd_headTblCont{background-color:#d9eaed !important;border-bottom:none !important}div.grd_tblCont table{border-right:none !important}div.grd_tblCont table th,div.grd_headTblCont table th,div.grd_headTblCont table td{background:#d9eaed url("images/bg_skyblue.gif") left top repeat-x;border-bottom:1px solid #a4bed4;border-right:1px solid #a4bed4 !important;border-left:1px solid #fff !important;border-top:1px solid #fff !important}div.grd_tblCont table td{border-bottom:1px solid #a4bed4 !important;border-right:0 !important;border-left:0 !important;border-top:0 !important}.grd_inf{background-color:#cce2fe;color:#004a6f;border-top:1px solid #9cc !important;}.grd_inf a{text-decoration:none;font-weight:bold}.loader{background-color:#2d8eef;border:1px solid #cce2fe;border-radius:5px}.even{background-color:#fff}.odd{background-color:#e3efff}span.expClpFlt a.btnExpClpFlt:hover{background-color:transparent !important}.ezActiveRow{background-color:#ffdc61 !important;color:inherit}.ezSelectedRow{background-color:#ffe4ab !important;color:inherit}.ezActiveCell{background-color:#fff !important;color:#000 !important;font-weight:bold}.ezETSelectedCell{background-color:#fff !important;font-weight:bold;color:#000 !important}
\ No newline at end of file
diff --git a/dist/tablefilter/tablefilter.js b/dist/tablefilter/tablefilter.js
index dfaf366e..289f0f7f 100644
--- a/dist/tablefilter/tablefilter.js
+++ b/dist/tablefilter/tablefilter.js
@@ -155,17 +155,17 @@ return /******/ (function(modules) { // webpackBootstrap
var _modulesGridLayout = __webpack_require__(10);
- var _modulesLoader = __webpack_require__(11);
+ var _modulesLoader = __webpack_require__(12);
- var _modulesHighlightKeywords = __webpack_require__(12);
+ var _modulesHighlightKeywords = __webpack_require__(13);
- var _modulesPopupFilter = __webpack_require__(13);
+ var _modulesPopupFilter = __webpack_require__(14);
- var _modulesDropdown = __webpack_require__(14);
+ var _modulesDropdown = __webpack_require__(15);
- var _modulesCheckList = __webpack_require__(16);
+ var _modulesCheckList = __webpack_require__(17);
- var _modulesRowsCounter = __webpack_require__(17);
+ var _modulesRowsCounter = __webpack_require__(18);
var _modulesStatusBar = __webpack_require__(19);
@@ -3780,10 +3780,16 @@ return /******/ (function(modules) { // webpackBootstrap
var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
+ var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+ function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+ var _feature = __webpack_require__(11);
+
var _dom = __webpack_require__(2);
var _dom2 = _interopRequireDefault(_dom);
@@ -3796,7 +3802,8 @@ return /******/ (function(modules) { // webpackBootstrap
var _event2 = _interopRequireDefault(_event);
- var GridLayout = (function () {
+ var GridLayout = (function (_Feature) {
+ _inherits(GridLayout, _Feature);
/**
* Grid layout, table with fixed headers
@@ -3806,7 +3813,9 @@ return /******/ (function(modules) { // webpackBootstrap
function GridLayout(tf) {
_classCallCheck(this, GridLayout);
- var f = tf.config();
+ _get(Object.getPrototypeOf(GridLayout.prototype), 'constructor', this).call(this, tf, 'gridLayout');
+
+ var f = this.config;
//defines grid width
this.gridWidth = f.grid_width || null;
@@ -3845,8 +3854,6 @@ return /******/ (function(modules) { // webpackBootstrap
this.prfxGridTh = 'tblHeadTh_';
this.sourceTblHtml = tf.tbl.outerHTML;
-
- this.tf = tf;
}
/**
@@ -3859,10 +3866,10 @@ return /******/ (function(modules) { // webpackBootstrap
var _this = this;
var tf = this.tf;
- var f = tf.config();
+ var f = this.config;
var tbl = tf.tbl;
- if (!tf.gridLayout) {
+ if (this.initialized) {
return;
}
@@ -3944,7 +3951,7 @@ return /******/ (function(modules) { // webpackBootstrap
//Headers table
this.headTbl = _dom2['default'].create('table', ['id', this.prfxHeadTbl + tf.id]);
- var tH = _dom2['default'].create('tHead'); //IE<7 needs it
+ var tH = _dom2['default'].create('tHead');
//1st row should be headers row, ids are added if not set
//Those ids are used by the sort feature
@@ -4095,6 +4102,8 @@ return /******/ (function(modules) { // webpackBootstrap
if (tbl.clientWidth !== this.headTbl.clientWidth) {
tbl.style.width = this.headTbl.clientWidth + 'px';
}
+
+ this.initialized = true;
}
/**
@@ -4106,7 +4115,7 @@ return /******/ (function(modules) { // webpackBootstrap
var tf = this.tf;
var tbl = tf.tbl;
- if (!tf.gridLayout) {
+ if (!this.initialized) {
return;
}
var t = tbl.parentNode.removeChild(tbl);
@@ -4120,17 +4129,89 @@ return /******/ (function(modules) { // webpackBootstrap
tbl.outerHTML = this.sourceTblHtml;
//needed to keep reference of table element
- tbl = _dom2['default'].id(tf.id);
+ this.tf.tbl = _dom2['default'].id(tf.id); // ???
+
+ this.initialized = false;
}
}]);
return GridLayout;
- })();
+ })(_feature.Feature);
exports.GridLayout = GridLayout;
/***/ },
/* 11 */
+/***/ function(module, exports) {
+
+ 'use strict';
+
+ Object.defineProperty(exports, '__esModule', {
+ value: true
+ });
+
+ var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
+
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+
+ var NOTIMPLEMENTED = 'Not implemented.';
+
+ var Feature = (function () {
+ function Feature(tf, feature) {
+ _classCallCheck(this, Feature);
+
+ this.tf = tf;
+ this.feature = feature;
+ this.enabled = tf[feature];
+ this.config = tf.config();
+ this.initialized = false;
+ }
+
+ _createClass(Feature, [{
+ key: 'init',
+ value: function init() {
+ throw new Error(NOTIMPLEMENTED);
+ }
+ }, {
+ key: 'reset',
+ value: function reset() {
+ if (!this.tf.hasGrid()) {
+ return;
+ }
+ this.enable();
+ this.init();
+ }
+ }, {
+ key: 'destroy',
+ value: function destroy() {
+ throw new Error(NOTIMPLEMENTED);
+ }
+ }, {
+ key: 'enable',
+ value: function enable() {
+ this.enabled = true;
+ // this.tf[this.feature] = this.enabled;
+ }
+ }, {
+ key: 'disable',
+ value: function disable() {
+ this.enabled = false;
+ // this.tf[this.feature] = this.enabled;
+ }
+ }, {
+ key: 'isEnabled',
+ value: function isEnabled() {
+ return this.enabled;
+ }
+ }]);
+
+ return Feature;
+ })();
+
+ exports.Feature = Feature;
+
+/***/ },
+/* 12 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
@@ -4236,9 +4317,13 @@ return /******/ (function(modules) { // webpackBootstrap
if (!this.loaderDiv) {
return;
}
- var tf = this.tf,
- targetEl = !this.loaderTgtId ? tf.gridLayout ? tf.feature('gridLayout').tblCont : tf.tbl.parentNode : _dom2['default'].id(this.loaderTgtId);
- targetEl.removeChild(this.loaderDiv);
+ // var tf = this.tf,
+ // targetEl = !this.loaderTgtId ?
+ // (tf.gridLayout ?
+ // tf.feature('gridLayout').tblCont : tf.tbl.parentNode) :
+ // Dom.id(this.loaderTgtId);
+ // targetEl.removeChild(this.loaderDiv);
+ this.loaderDiv.parentNode.removeChild(this.loaderDiv);
this.loaderDiv = null;
}
}]);
@@ -4249,7 +4334,7 @@ return /******/ (function(modules) { // webpackBootstrap
exports.Loader = Loader;
/***/ },
-/* 12 */
+/* 13 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
@@ -4395,7 +4480,7 @@ return /******/ (function(modules) { // webpackBootstrap
exports.HighlightKeyword = HighlightKeyword;
/***/ },
-/* 13 */
+/* 14 */
/***/ function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {'use strict';
@@ -4662,7 +4747,7 @@ return /******/ (function(modules) { // webpackBootstrap
/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
/***/ },
-/* 14 */
+/* 15 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
@@ -4689,7 +4774,7 @@ return /******/ (function(modules) { // webpackBootstrap
var _string2 = _interopRequireDefault(_string);
- var _sort = __webpack_require__(15);
+ var _sort = __webpack_require__(16);
var _sort2 = _interopRequireDefault(_sort);
@@ -5010,7 +5095,7 @@ return /******/ (function(modules) { // webpackBootstrap
exports.Dropdown = Dropdown;
/***/ },
-/* 15 */
+/* 16 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
@@ -5035,7 +5120,7 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = exports['default'];
/***/ },
-/* 16 */
+/* 17 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
@@ -5062,7 +5147,7 @@ return /******/ (function(modules) { // webpackBootstrap
var _string2 = _interopRequireDefault(_string);
- var _sort = __webpack_require__(15);
+ var _sort = __webpack_require__(16);
var _sort2 = _interopRequireDefault(_sort);
@@ -5478,7 +5563,7 @@ return /******/ (function(modules) { // webpackBootstrap
exports.CheckList = CheckList;
/***/ },
-/* 17 */
+/* 18 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
@@ -5497,7 +5582,7 @@ return /******/ (function(modules) { // webpackBootstrap
function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
- var _feature = __webpack_require__(18);
+ var _feature = __webpack_require__(11);
var _dom = __webpack_require__(2);
@@ -5648,76 +5733,6 @@ return /******/ (function(modules) { // webpackBootstrap
exports.RowsCounter = RowsCounter;
-/***/ },
-/* 18 */
-/***/ function(module, exports) {
-
- 'use strict';
-
- Object.defineProperty(exports, '__esModule', {
- value: true
- });
-
- var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
-
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-
- var NOTIMPLEMENTED = 'Not implemented.';
-
- var Feature = (function () {
- function Feature(tf, feature) {
- _classCallCheck(this, Feature);
-
- this.tf = tf;
- this.feature = feature;
- this.enabled = tf[feature];
- this.config = tf.config();
- this.initialized = false;
- }
-
- _createClass(Feature, [{
- key: 'init',
- value: function init() {
- throw new Error(NOTIMPLEMENTED);
- }
- }, {
- key: 'reset',
- value: function reset() {
- if (!this.tf.hasGrid()) {
- return;
- }
- this.enable();
- this.init();
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- throw new Error(NOTIMPLEMENTED);
- }
- }, {
- key: 'enable',
- value: function enable() {
- this.enabled = true;
- this.tf[this.feature] = this.enabled;
- }
- }, {
- key: 'disable',
- value: function disable() {
- this.enabled = false;
- this.tf[this.feature] = this.enabled;
- }
- }, {
- key: 'isEnabled',
- value: function isEnabled() {
- return this.enabled;
- }
- }]);
-
- return Feature;
- })();
-
- exports.Feature = Feature;
-
/***/ },
/* 19 */
/***/ function(module, exports, __webpack_require__) {
@@ -5890,7 +5905,7 @@ return /******/ (function(modules) { // webpackBootstrap
function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
- var _feature = __webpack_require__(18);
+ var _feature = __webpack_require__(11);
var _dom = __webpack_require__(2);
@@ -6691,7 +6706,7 @@ return /******/ (function(modules) { // webpackBootstrap
function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
- var _feature = __webpack_require__(18);
+ var _feature = __webpack_require__(11);
var _dom = __webpack_require__(2);
@@ -6750,7 +6765,6 @@ return /******/ (function(modules) { // webpackBootstrap
var tf = this.tf;
- // if(!tf.hasGrid() && !tf.isFirstLoad && tf.btnResetEl){
if (this.initialized) {
return;
}
@@ -7010,7 +7024,7 @@ return /******/ (function(modules) { // webpackBootstrap
function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
- var _feature = __webpack_require__(18);
+ var _feature = __webpack_require__(11);
var _dom = __webpack_require__(2);
diff --git a/dist/tablefilter/tf-1.js b/dist/tablefilter/tf-1.js
index bd2df1fd..813ffabf 100644
--- a/dist/tablefilter/tf-1.js
+++ b/dist/tablefilter/tf-1.js
@@ -32,34 +32,34 @@ webpackJsonp([1],{
"./helpers.js": 8,
"./modules/alternateRows": 23,
"./modules/alternateRows.js": 23,
- "./modules/checkList": 16,
- "./modules/checkList.js": 16,
+ "./modules/checkList": 17,
+ "./modules/checkList.js": 17,
"./modules/clearButton": 21,
"./modules/clearButton.js": 21,
- "./modules/dropdown": 14,
- "./modules/dropdown.js": 14,
- "./modules/feature": 18,
- "./modules/feature.js": 18,
+ "./modules/dropdown": 15,
+ "./modules/dropdown.js": 15,
+ "./modules/feature": 11,
+ "./modules/feature.js": 11,
"./modules/gridLayout": 10,
"./modules/gridLayout.js": 10,
"./modules/help": 22,
"./modules/help.js": 22,
- "./modules/highlightKeywords": 12,
- "./modules/highlightKeywords.js": 12,
- "./modules/loader": 11,
- "./modules/loader.js": 11,
+ "./modules/highlightKeywords": 13,
+ "./modules/highlightKeywords.js": 13,
+ "./modules/loader": 12,
+ "./modules/loader.js": 12,
"./modules/paging": 20,
"./modules/paging.js": 20,
- "./modules/popupFilter": 13,
- "./modules/popupFilter.js": 13,
- "./modules/rowsCounter": 17,
- "./modules/rowsCounter.js": 17,
+ "./modules/popupFilter": 14,
+ "./modules/popupFilter.js": 14,
+ "./modules/rowsCounter": 18,
+ "./modules/rowsCounter.js": 18,
"./modules/statusBar": 19,
"./modules/statusBar.js": 19,
"./modules/store": 9,
"./modules/store.js": 9,
- "./sort": 15,
- "./sort.js": 15,
+ "./sort": 16,
+ "./sort.js": 16,
"./string": 3,
"./string.js": 3,
"./types": 5,
diff --git a/src/modules/clearButton.js b/src/modules/clearButton.js
index bc86afbf..6af1d844 100644
--- a/src/modules/clearButton.js
+++ b/src/modules/clearButton.js
@@ -44,7 +44,6 @@ export class ClearButton extends Feature{
init(){
var tf = this.tf;
- // if(!tf.hasGrid() && !tf.isFirstLoad && tf.btnResetEl){
if(this.initialized){
return;
}
diff --git a/src/modules/feature.js b/src/modules/feature.js
index 0af92697..016e9090 100644
--- a/src/modules/feature.js
+++ b/src/modules/feature.js
@@ -28,12 +28,12 @@ export class Feature {
enable() {
this.enabled = true;
- this.tf[this.feature] = this.enabled;
+ // this.tf[this.feature] = this.enabled;
}
disable() {
this.enabled = false;
- this.tf[this.feature] = this.enabled;
+ // this.tf[this.feature] = this.enabled;
}
isEnabled() {
diff --git a/src/modules/gridLayout.js b/src/modules/gridLayout.js
index 6f51349a..da079b4c 100644
--- a/src/modules/gridLayout.js
+++ b/src/modules/gridLayout.js
@@ -1,15 +1,18 @@
+import {Feature} from './feature';
import Dom from '../dom';
import Types from '../types';
import Event from '../event';
-export class GridLayout{
+export class GridLayout extends Feature{
/**
* Grid layout, table with fixed headers
* @param {Object} tf TableFilter instance
*/
- constructor(tf) {
- var f = tf.config();
+ constructor(tf){
+ super(tf, 'gridLayout');
+
+ var f = this.config;
//defines grid width
this.gridWidth = f.grid_width || null;
@@ -50,8 +53,6 @@ export class GridLayout{
this.prfxGridTh = 'tblHeadTh_';
this.sourceTblHtml = tf.tbl.outerHTML;
-
- this.tf = tf;
}
/**
@@ -59,10 +60,10 @@ export class GridLayout{
*/
init(){
var tf = this.tf;
- var f = tf.config();
+ var f = this.config;
var tbl = tf.tbl;
- if(!tf.gridLayout){
+ if(this.initialized){
return;
}
@@ -148,7 +149,7 @@ export class GridLayout{
//Headers table
this.headTbl = Dom.create('table', ['id', this.prfxHeadTbl + tf.id]);
- var tH = Dom.create('tHead'); //IE<7 needs it
+ var tH = Dom.create('tHead');
//1st row should be headers row, ids are added if not set
//Those ids are used by the sort feature
@@ -300,6 +301,8 @@ export class GridLayout{
if(tbl.clientWidth !== this.headTbl.clientWidth){
tbl.style.width = this.headTbl.clientWidth+'px';
}
+
+ this.initialized = true;
}
/**
@@ -309,7 +312,7 @@ export class GridLayout{
var tf = this.tf;
var tbl = tf.tbl;
- if(!tf.gridLayout){
+ if(!this.initialized){
return;
}
var t = tbl.parentNode.removeChild(tbl);
@@ -323,6 +326,8 @@ export class GridLayout{
tbl.outerHTML = this.sourceTblHtml;
//needed to keep reference of table element
- tbl = Dom.id(tf.id);
+ this.tf.tbl = Dom.id(tf.id); // ???
+
+ this.initialized = false;
}
-}
\ No newline at end of file
+}
diff --git a/src/modules/loader.js b/src/modules/loader.js
index 86b27900..90e2fe40 100644
--- a/src/modules/loader.js
+++ b/src/modules/loader.js
@@ -81,12 +81,13 @@ export class Loader{
if(!this.loaderDiv){
return;
}
- var tf = this.tf,
- targetEl = !this.loaderTgtId ?
- (tf.gridLayout ?
- tf.feature('gridLayout').tblCont : tf.tbl.parentNode):
- Dom.id(this.loaderTgtId);
- targetEl.removeChild(this.loaderDiv);
+ // var tf = this.tf,
+ // targetEl = !this.loaderTgtId ?
+ // (tf.gridLayout ?
+ // tf.feature('gridLayout').tblCont : tf.tbl.parentNode) :
+ // Dom.id(this.loaderTgtId);
+ // targetEl.removeChild(this.loaderDiv);
+ this.loaderDiv.parentNode.removeChild(this.loaderDiv);
this.loaderDiv = null;
}
}
diff --git a/test/test-alternate-rows.js b/test/test-alternate-rows.js
index 7277a7a3..58ee380a 100644
--- a/test/test-alternate-rows.js
+++ b/test/test-alternate-rows.js
@@ -141,3 +141,9 @@ test('Grid layout: remove alternating rows', function() {
deepEqual(tbl.querySelectorAll('tr.odd').length, 0, 'Odd bgs removed');
deepEqual(tbl.querySelectorAll('tr.even').length, 0, 'Even bg removed');
});
+
+module('Tear-down');
+test('can destroy TableFilter DOM elements', function() {
+ tf.destroy();
+ deepEqual(tf.hasGrid(), false, 'Filters removed');
+});
diff --git a/test/test-clear-button.js b/test/test-clear-button.js
index e107967e..12a8404c 100644
--- a/test/test-clear-button.js
+++ b/test/test-clear-button.js
@@ -12,11 +12,58 @@ test('Clear button component', function() {
notEqual(clearButton.btnResetEl, null, 'btnResetEl property');
});
+module('Feature interface');
+test('Properties', function() {
+ deepEqual(
+ clearButton.tf instanceof TableFilter, true, 'TableFilter instance');
+ deepEqual(clearButton.feature, 'btnReset', 'Feature name');
+ deepEqual(clearButton.enabled, true, 'Feature enabled');
+ deepEqual(clearButton.initialized, true, 'Feature enabled');
+ deepEqual(typeof clearButton.config, 'object', 'TF configuration object');
+ deepEqual(typeof clearButton.init, 'function', 'Feature init method');
+ deepEqual(typeof clearButton.destroy, 'function', 'Feature destroy method');
+ deepEqual(typeof clearButton.reset, 'function', 'Feature reset method');
+ deepEqual(typeof clearButton.enable, 'function', 'Feature enable method');
+ deepEqual(typeof clearButton.disable, 'function', 'Feature enable method');
+ deepEqual(
+ typeof clearButton.isEnabled, 'function', 'Feature enable method');
+});
+test('Can destroy', function() {
+ clearButton.destroy();
+ deepEqual(clearButton.enabled, false, 'disabled');
+});
+test('Can reset', function() {
+ clearButton.reset();
+ deepEqual(clearButton.enabled, true, 'enabled');
+});
+test('Can disable', function() {
+ clearButton.disable();
+ deepEqual(clearButton.enabled, false, 'disabled');
+});
+test('Can enable', function() {
+ clearButton.enable();
+ deepEqual(clearButton.enabled, true, 'enabled');
+});
+test('Can init', function() {
+ clearButton.destroy();
+ clearButton.enable();
+ clearButton.init();
+ deepEqual(clearButton.enabled, true, 'enabled');
+});
+test('Can check is enabled', function() {
+ clearButton.isEnabled();
+ deepEqual(clearButton.enabled, true, 'enabled');
+});
+
module('UI elements');
test('ClearButton UI elements', function() {
var container = clearButton.btnResetEl;
deepEqual(container.nodeName, 'INPUT', 'Clear button container');
- deepEqual(container.parentNode.id, clearButton.prfxResetSpan+tf.id, 'Container id');
+ deepEqual(
+ container.parentNode.id,
+ clearButton.prfxResetSpan+tf.id,
+ 'Container id'
+ );
});
module('Destroy and re-init');
@@ -28,12 +75,18 @@ test('Remove UI', function() {
test('Re-set UI', function() {
tf.enableIcons = false;
- tf.feature('clearButton').btnResetHtml = null;
- tf.feature('clearButton').btnResetText = 'Clear';
- tf.feature('clearButton').init();
+ clearButton = tf.feature('clearButton');
+ clearButton.btnResetHtml = null;
+ clearButton.btnResetText = 'Clear';
+ clearButton.init();
- var btnResetEl = tf.feature('clearButton').btnResetEl;
+ var btnResetEl = clearButton.btnResetEl;
deepEqual(btnResetEl.nodeName, 'A', 'Clear button tag changed');
deepEqual(btnResetEl.innerText, 'Clear', 'Clear button text');
});
+module('Tear-down');
+test('can destroy TableFilter DOM elements', function() {
+ tf.destroy();
+ deepEqual(tf.hasGrid(), false, 'Filters removed');
+});
diff --git a/test/test-paging.js b/test/test-paging.js
index 8e91f68c..1a2d4ae8 100644
--- a/test/test-paging.js
+++ b/test/test-paging.js
@@ -207,6 +207,10 @@ test('Set results per page', function() {
paging.changeResultsPerPage();
deepEqual(paging.pagingLength, 6, 'Expected page length');
deepEqual(paging.nbPages, 2, 'Expected number of pages');
-
- tf.destroy();
+});
+
+module('Tear-down');
+test('can destroy TableFilter DOM elements', function() {
+ tf.destroy();
+ deepEqual(tf.hasGrid(), false, 'Filters removed');
});
diff --git a/test/test-rows-counter.js b/test/test-rows-counter.js
index 6c49b017..267c68ec 100644
--- a/test/test-rows-counter.js
+++ b/test/test-rows-counter.js
@@ -83,3 +83,9 @@ test('RowsCounter component with paging', function() {
equal(tf.feature('rowsCounter').rowsCounterSpan.innerHTML,
'1-7 / 7', 'Counter value with paging');
});
+
+module('Tear-down');
+test('can destroy TableFilter DOM elements', function() {
+ tf.destroy();
+ deepEqual(tf.hasGrid(), false, 'Filters removed');
+});
diff --git a/test/test-sort-grid-layout.js b/test/test-sort-grid-layout.js
index 90affe2a..5d1f90bc 100644
--- a/test/test-sort-grid-layout.js
+++ b/test/test-sort-grid-layout.js
@@ -59,6 +59,7 @@ function startPaging(tf, sort){
deepEqual(sort.stt instanceof SortableTable, true, 'Sort type');
deepEqual(sort.sorted, false, 'Table not sorted');
deepEqual(sort.initialized, true, 'Sort initialized');
+ deepEqual(tf.paging, true, 'Table is paged');
});
module('UI elements');
@@ -71,9 +72,7 @@ function startPaging(tf, sort){
test('Sort behaviour', function() {
sort.sortByColumnIndex(0);
-
deepEqual(sort.sorted, true, 'Table column sorted');
- deepEqual(tf.paging, true, 'Table is paged');
});
module('Destroy and re-init');
diff --git a/test/test-sort.js b/test/test-sort.js
index e4cbebb3..2e57e24f 100644
--- a/test/test-sort.js
+++ b/test/test-sort.js
@@ -98,6 +98,7 @@ function startPaging(tf, sort){
deepEqual(sort.stt instanceof SortableTable, true, 'Sort type');
deepEqual(sort.sorted, false, 'Table not sorted');
deepEqual(sort.initialized, true, 'Sort initialized');
+ deepEqual(tf.paging, true, 'Table is paged');
});
module('UI elements');
@@ -112,7 +113,6 @@ function startPaging(tf, sort){
sort.sortByColumnIndex(0);
deepEqual(sort.sorted, true, 'Table column sorted');
- deepEqual(tf.paging, true, 'Table is paged');
});
module('Destroy and re-init');