diff --git a/demos/advanced-grid-editable.html b/demos/advanced-grid-editable.html index 1ff70d88..766b4508 100644 --- a/demos/advanced-grid-editable.html +++ b/demos/advanced-grid-editable.html @@ -1,7 +1,7 @@
-diff --git a/demos/advanced-grid-selection.html b/demos/advanced-grid-selection.html index c495af15..2fcf29fa 100644 --- a/demos/advanced-grid-selection.html +++ b/demos/advanced-grid-selection.html @@ -1,7 +1,7 @@
-diff --git a/demos/auto-filter.html b/demos/auto-filter.html index af9a1d4a..a8c476c6 100644 --- a/demos/auto-filter.html +++ b/demos/auto-filter.html @@ -1,7 +1,7 @@
-This demo features the auto-filter behaviour, the table is filtered as soon diff --git a/demos/columns-visibility.html b/demos/columns-visibility.html index eb6faacf..f4465646 100644 --- a/demos/columns-visibility.html +++ b/demos/columns-visibility.html @@ -1,7 +1,7 @@
-This example features 3 date types and 2 numeric formatting for the currency diff --git a/demos/demo.html b/demos/demo.html index f9879f29..669802e7 100644 --- a/demos/demo.html +++ b/demos/demo.html @@ -1,7 +1,7 @@
-This demo features the filters visibility extension. diff --git a/demos/external-filters.html b/demos/external-filters.html index 355cf881..3c4cbd85 100644 --- a/demos/external-filters.html +++ b/demos/external-filters.html @@ -1,7 +1,7 @@
-This demo shows how generate the column filters in an external container. diff --git a/demos/filter-images.html b/demos/filter-images.html index ac123678..3b984d56 100644 --- a/demos/filter-images.html +++ b/demos/filter-images.html @@ -1,7 +1,7 @@
-This demo shows how to filter and sort a column containing images by using diff --git a/demos/filters-visibility.html b/demos/filters-visibility.html index 0cce9dfd..222168cc 100644 --- a/demos/filters-visibility.html +++ b/demos/filters-visibility.html @@ -1,7 +1,7 @@
-This demo features the filters visibility extension. diff --git a/demos/grid-layout.html b/demos/grid-layout.html index 93c63c68..7a1772cc 100644 --- a/demos/grid-layout.html +++ b/demos/grid-layout.html @@ -1,7 +1,7 @@
-With grouped and/or multi-line headers, to place the filters row at desired diff --git a/demos/linked-filters-disabled.html b/demos/linked-filters-disabled.html index 8cbc52cf..6e13eece 100644 --- a/demos/linked-filters-disabled.html +++ b/demos/linked-filters-disabled.html @@ -1,7 +1,7 @@
-This demo features the refresh filters behaviour. In this mode, the diff --git a/demos/linked-filters.html b/demos/linked-filters.html index 98f095f1..3d69e363 100644 --- a/demos/linked-filters.html +++ b/demos/linked-filters.html @@ -1,7 +1,7 @@
-This demo features the linked filters behaviour. In this mode, the drop-down diff --git a/demos/load-filters-on-demand.html b/demos/load-filters-on-demand.html index 1bb3cd96..ccb2e9f7 100644 --- a/demos/load-filters-on-demand.html +++ b/demos/load-filters-on-demand.html @@ -1,7 +1,7 @@
-The filter options are loaded only when used for the first time. diff --git a/demos/pagination.html b/demos/pagination.html index 83cc1504..56e5e6d1 100644 --- a/demos/pagination.html +++ b/demos/pagination.html @@ -1,7 +1,7 @@
-To take advantage of the RequireJs development workflow use the diff --git a/demos/requirejs.html b/demos/requirejs.html index 3413e25d..a18b1e6a 100644 --- a/demos/requirejs.html +++ b/demos/requirejs.html @@ -1,7 +1,7 @@
-
This demo shows how to implement a theme roller.
diff --git a/dist/tablefilter/style/colsVisibility.css b/dist/tablefilter/style/colsVisibility.css
index e918eddd..c6a3ad63 100644
--- a/dist/tablefilter/style/colsVisibility.css
+++ b/dist/tablefilter/style/colsVisibility.css
@@ -1,6 +1,6 @@
/**
* tablefilter v0.0.10 by Max Guglielmi
- * build date: 2015-11-07T05:42:42.650Z
+ * build date: 2015-11-07T07:13:30.369Z
* 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 f6946264..4313d1e3 100644
--- a/dist/tablefilter/style/filtersVisibility.css
+++ b/dist/tablefilter/style/filtersVisibility.css
@@ -1,6 +1,6 @@
/**
* tablefilter v0.0.10 by Max Guglielmi
- * build date: 2015-11-07T05:42:42.650Z
+ * build date: 2015-11-07T07:13:30.369Z
* 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 8fb2b472..fbe1f3ae 100644
--- a/dist/tablefilter/style/tablefilter.css
+++ b/dist/tablefilter/style/tablefilter.css
@@ -1,6 +1,6 @@
/**
* tablefilter v0.0.10 by Max Guglielmi
- * build date: 2015-11-07T05:42:42.650Z
+ * build date: 2015-11-07T07:13:30.369Z
* 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 00f2193d..748295cc 100644
--- a/dist/tablefilter/style/themes/default/default.css
+++ b/dist/tablefilter/style/themes/default/default.css
@@ -1,6 +1,6 @@
/**
* tablefilter v0.0.10 by Max Guglielmi
- * build date: 2015-11-07T05:42:42.650Z
+ * build date: 2015-11-07T07:13:30.369Z
* 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 ed88cad5..a538a59e 100644
--- a/dist/tablefilter/style/themes/mytheme/mytheme.css
+++ b/dist/tablefilter/style/themes/mytheme/mytheme.css
@@ -1,6 +1,6 @@
/**
* tablefilter v0.0.10 by Max Guglielmi
- * build date: 2015-11-07T05:42:42.650Z
+ * build date: 2015-11-07T07:13:30.369Z
* 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 88aacba1..4e2283c0 100644
--- a/dist/tablefilter/style/themes/skyblue/skyblue.css
+++ b/dist/tablefilter/style/themes/skyblue/skyblue.css
@@ -1,6 +1,6 @@
/**
* tablefilter v0.0.10 by Max Guglielmi
- * build date: 2015-11-07T05:42:42.650Z
+ * build date: 2015-11-07T07:13:30.369Z
* 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 3f17c6fd..5fbddc00 100644
--- a/dist/tablefilter/tablefilter.js
+++ b/dist/tablefilter/tablefilter.js
@@ -1,7006 +1,10 @@
-(function webpackUniversalModuleDefinition(root, factory) {
- if(typeof exports === 'object' && typeof module === 'object')
- module.exports = factory();
- else if(typeof define === 'function' && define.amd)
- define([], factory);
- else {
- var a = factory();
- for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
- }
-})(this, function() {
-return /******/ (function(modules) { // webpackBootstrap
-/******/ // install a JSONP callback for chunk loading
-/******/ var parentJsonpFunction = window["webpackJsonp"];
-/******/ window["webpackJsonp"] = function webpackJsonpCallback(chunkIds, moreModules) {
-/******/ // add "moreModules" to the modules object,
-/******/ // then flag all "chunkIds" as loaded and fire callback
-/******/ var moduleId, chunkId, i = 0, callbacks = [];
-/******/ for(;i < chunkIds.length; i++) {
-/******/ chunkId = chunkIds[i];
-/******/ if(installedChunks[chunkId])
-/******/ callbacks.push.apply(callbacks, installedChunks[chunkId]);
-/******/ installedChunks[chunkId] = 0;
-/******/ }
-/******/ for(moduleId in moreModules) {
-/******/ modules[moduleId] = moreModules[moduleId];
-/******/ }
-/******/ if(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules);
-/******/ while(callbacks.length)
-/******/ callbacks.shift().call(null, __webpack_require__);
-/******/
-/******/ };
-/******/
-/******/ // The module cache
-/******/ var installedModules = {};
-/******/
-/******/ // object to store loaded and loading chunks
-/******/ // "0" means "already loaded"
-/******/ // Array means "loading", array contains callbacks
-/******/ var installedChunks = {
-/******/ 0:0
-/******/ };
-/******/
-/******/ // The require function
-/******/ function __webpack_require__(moduleId) {
-/******/
-/******/ // Check if module is in cache
-/******/ if(installedModules[moduleId])
-/******/ return installedModules[moduleId].exports;
-/******/
-/******/ // Create a new module (and put it into the cache)
-/******/ var module = installedModules[moduleId] = {
-/******/ exports: {},
-/******/ id: moduleId,
-/******/ loaded: false
-/******/ };
-/******/
-/******/ // Execute the module function
-/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ // Flag the module as loaded
-/******/ module.loaded = true;
-/******/
-/******/ // Return the exports of the module
-/******/ return module.exports;
-/******/ }
-/******/
-/******/ // This file contains only the entry chunk.
-/******/ // The chunk loading function for additional chunks
-/******/ __webpack_require__.e = function requireEnsure(chunkId, callback) {
-/******/ // "0" is the signal for "already loaded"
-/******/ if(installedChunks[chunkId] === 0)
-/******/ return callback.call(null, __webpack_require__);
-/******/
-/******/ // an array means "currently loading".
-/******/ if(installedChunks[chunkId] !== undefined) {
-/******/ installedChunks[chunkId].push(callback);
-/******/ } else {
-/******/ // start chunk loading
-/******/ installedChunks[chunkId] = [callback];
-/******/ var head = document.getElementsByTagName('head')[0];
-/******/ var script = document.createElement('script');
-/******/ script.type = 'text/javascript';
-/******/ script.charset = 'utf-8';
-/******/ script.async = true;
-/******/
-/******/ script.src = __webpack_require__.p + "tf-" + ({}[chunkId]||chunkId) + ".js";
-/******/ head.appendChild(script);
-/******/ }
-/******/ };
-/******/
-/******/ // expose the modules object (__webpack_modules__)
-/******/ __webpack_require__.m = modules;
-/******/
-/******/ // expose the module cache
-/******/ __webpack_require__.c = installedModules;
-/******/
-/******/ // __webpack_public_path__
-/******/ __webpack_require__.p = "";
-/******/
-/******/ // Load entry module and return exports
-/******/ return __webpack_require__(0);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ function(module, exports, __webpack_require__) {
+/**
+ * tablefilter v0.0.10 by Max Guglielmi
+ * build date: 2015-11-07T07:13:30.283Z
+ * MIT License
+ */
- '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 _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'); } }
-
- var _event = __webpack_require__(1);
-
- var _event2 = _interopRequireDefault(_event);
-
- var _dom = __webpack_require__(2);
-
- var _dom2 = _interopRequireDefault(_dom);
-
- var _string = __webpack_require__(3);
-
- var _string2 = _interopRequireDefault(_string);
-
- var _cookie = __webpack_require__(4);
-
- var _cookie2 = _interopRequireDefault(_cookie);
-
- var _types = __webpack_require__(5);
-
- var _types2 = _interopRequireDefault(_types);
-
- var _array = __webpack_require__(6);
-
- var _array2 = _interopRequireDefault(_array);
-
- var _date = __webpack_require__(7);
-
- var _date2 = _interopRequireDefault(_date);
-
- var _helpers = __webpack_require__(8);
-
- var _helpers2 = _interopRequireDefault(_helpers);
-
- // Features
-
- var _modulesStore = __webpack_require__(9);
-
- var _modulesGridLayout = __webpack_require__(10);
-
- var _modulesLoader = __webpack_require__(11);
-
- var _modulesHighlightKeywords = __webpack_require__(12);
-
- var _modulesPopupFilter = __webpack_require__(13);
-
- var _modulesDropdown = __webpack_require__(14);
-
- var _modulesCheckList = __webpack_require__(16);
-
- var _modulesRowsCounter = __webpack_require__(17);
-
- var _modulesStatusBar = __webpack_require__(18);
-
- var _modulesPaging = __webpack_require__(19);
-
- var _modulesClearButton = __webpack_require__(20);
-
- var _modulesHelp = __webpack_require__(21);
-
- var _modulesAlternateRows = __webpack_require__(22);
-
- var global = window,
- isValidDate = _date2['default'].isValid,
- formatDate = _date2['default'].format,
- doc = global.document;
-
- var TableFilter = (function () {
-
- /**
- * TableFilter object constructor
- * requires `table` or `id` arguments, `row` and `configuration` optional
- * @param {DOMElement} table Table DOM element
- * @param {String} id Table id
- * @param {Number} row index indicating the 1st row
- * @param {Object} configuration object
- */
-
- function TableFilter() {
- var _this = this;
-
- _classCallCheck(this, TableFilter);
-
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
-
- if (args.length === 0) {
- return;
- }
-
- this.id = null;
- this.version = '0.0.10';
- this.year = new Date().getFullYear();
- this.tbl = null;
- this.startRow = null;
- this.refRow = null;
- this.headersRow = null;
- this.cfg = {};
- this.nbFilterableRows = null;
- this.nbRows = null;
- this.nbCells = null;
- this._hasGrid = false;
-
- // TODO: use for-of with babel plug-in
- args.forEach(function (arg) {
- var argtype = typeof arg;
- if (argtype === 'object' && arg && arg.nodeName === 'TABLE') {
- _this.tbl = arg;
- _this.id = arg.id || 'tf_' + new Date().getTime() + '_';
- } else if (argtype === 'string') {
- _this.id = arg;
- _this.tbl = _dom2['default'].id(arg);
- } else if (argtype === 'number') {
- _this.startRow = arg;
- } else if (argtype === 'object') {
- _this.cfg = arg;
- }
- });
-
- if (!this.tbl || this.tbl.nodeName != 'TABLE' || this.getRowsNb() === 0) {
- throw new Error('Could not instantiate TableFilter: HTML table not found.');
- }
-
- // configuration object
- var f = this.cfg;
-
- //Start row et cols nb
- this.refRow = this.startRow === null ? 2 : this.startRow + 1;
- try {
- this.nbCells = this.getCellsNb(this.refRow);
- } catch (e) {
- this.nbCells = this.getCellsNb(0);
- }
-
- //default script base path
- this.basePath = f.base_path || 'tablefilter/';
-
- /*** filter types ***/
- this.fltTypeInp = 'input';
- this.fltTypeSlc = 'select';
- this.fltTypeMulti = 'multiple';
- this.fltTypeCheckList = 'checklist';
- this.fltTypeNone = 'none';
-
- /*** filters' grid properties ***/
-
- //enables/disables filter grid
- this.fltGrid = f.grid === false ? false : true;
-
- //enables/disables grid layout (fixed headers)
- this.gridLayout = Boolean(f.grid_layout);
-
- this.filtersRowIndex = isNaN(f.filters_row_index) ? 0 : f.filters_row_index;
- this.headersRow = isNaN(f.headers_row_index) ? this.filtersRowIndex === 0 ? 1 : 0 : f.headers_row_index;
-
- if (this.gridLayout) {
- if (this.headersRow > 1) {
- this.filtersRowIndex = this.headersRow + 1;
- } else {
- this.filtersRowIndex = 1;
- this.headersRow = 0;
- }
- }
-
- //defines tag of the cells containing filters (td/th)
- this.fltCellTag = f.filters_cell_tag !== 'th' || f.filters_cell_tag !== 'td' ? 'td' : f.filters_cell_tag;
-
- //stores filters ids
- this.fltIds = [];
- //stores filters DOM elements
- this.fltElms = [];
- //stores filters values
- this.searchArgs = null;
- //stores valid rows indexes (rows visible upon filtering)
- this.validRowsIndex = null;
- //stores filters row element
- this.fltGridEl = null;
- //is first load boolean
- this.isFirstLoad = true;
- //container div for paging elements, reset btn etc.
- this.infDiv = null;
- //div for rows counter
- this.lDiv = null;
- //div for reset button and results per page select
- this.rDiv = null;
- //div for paging elements
- this.mDiv = null;
-
- //defines css class for div containing paging elements, rows counter etc
- this.infDivCssClass = f.inf_div_css_class || 'inf';
- //defines css class for left div
- this.lDivCssClass = f.left_div_css_class || 'ldiv';
- //defines css class for right div
- this.rDivCssClass = f.right_div_css_class || 'rdiv';
- //defines css class for mid div
- this.mDivCssClass = f.middle_div_css_class || 'mdiv';
- //table container div css class
- this.contDivCssClass = f.content_div_css_class || 'cont';
-
- /*** filters' grid appearance ***/
- //stylesheet file
- this.stylePath = f.style_path || this.basePath + 'style/';
- this.stylesheet = f.stylesheet || this.stylePath + 'tablefilter.css';
- this.stylesheetId = this.id + '_style';
- //defines css class for filters row
- this.fltsRowCssClass = f.flts_row_css_class || 'fltrow';
- //enables/disables icons (paging, reset button)
- this.enableIcons = f.enable_icons === false ? false : true;
- //enables/disbles rows alternating bg colors
- this.alternateBgs = Boolean(f.alternate_rows);
- //defines widths of columns
- this.hasColWidths = _types2['default'].isArray(f.col_widths);
- this.colWidths = this.hasColWidths ? f.col_widths : null;
- //defines css class for filters
- this.fltCssClass = f.flt_css_class || 'flt';
- //defines css class for multiple selects filters
- this.fltMultiCssClass = f.flt_multi_css_class || 'flt_multi';
- //defines css class for filters
- this.fltSmallCssClass = f.flt_small_css_class || 'flt_s';
- //defines css class for single-filter
- this.singleFltCssClass = f.single_flt_css_class || 'single_flt';
-
- /*** filters' grid behaviours ***/
- //enables/disables enter key
- this.enterKey = f.enter_key === false ? false : true;
- //calls function before filtering starts
- this.onBeforeFilter = _types2['default'].isFn(f.on_before_filter) ? f.on_before_filter : null;
- //calls function after filtering
- this.onAfterFilter = _types2['default'].isFn(f.on_after_filter) ? f.on_after_filter : null;
- //enables/disables case sensitivity
- this.caseSensitive = Boolean(f.case_sensitive);
- //has exact match per column
- this.hasExactMatchByCol = _types2['default'].isArray(f.columns_exact_match);
- this.exactMatchByCol = this.hasExactMatchByCol ? f.columns_exact_match : [];
- //enables/disbles exact match for search
- this.exactMatch = Boolean(f.exact_match);
- //refreshes drop-down lists upon validation
- this.linkedFilters = Boolean(f.linked_filters);
- //wheter excluded options are disabled
- this.disableExcludedOptions = Boolean(f.disable_excluded_options);
- //stores active filter element
- this.activeFlt = null;
- //id of active filter
- this.activeFilterId = null;
- //enables always visible rows
- this.hasVisibleRows = Boolean(f.rows_always_visible);
- //array containing always visible rows
- this.visibleRows = this.hasVisibleRows ? f.rows_always_visible : [];
- //enables/disables external filters generation
- this.isExternalFlt = Boolean(f.external_flt_grid);
- //array containing ids of external elements containing filters
- this.externalFltTgtIds = f.external_flt_grid_ids || null;
- //stores filters elements if isExternalFlt is true
- this.externalFltEls = [];
- //delays any filtering process if loader true
- this.execDelay = !isNaN(f.exec_delay) ? parseInt(f.exec_delay, 10) : 100;
- //calls function when filters grid loaded
- this.onFiltersLoaded = _types2['default'].isFn(f.on_filters_loaded) ? f.on_filters_loaded : null;
- //enables/disables single filter search
- this.singleSearchFlt = Boolean(f.single_filter);
- //calls function after row is validated
- this.onRowValidated = _types2['default'].isFn(f.on_row_validated) ? f.on_row_validated : null;
- //array defining columns for customCellData event
- this.customCellDataCols = f.custom_cell_data_cols ? f.custom_cell_data_cols : [];
- //calls custom function for retrieving cell data
- this.customCellData = _types2['default'].isFn(f.custom_cell_data) ? f.custom_cell_data : null;
- //input watermark text array
- this.watermark = f.watermark || '';
- this.isWatermarkArray = _types2['default'].isArray(this.watermark);
- //id of toolbar container element
- this.toolBarTgtId = f.toolbar_target_id || null;
- //enables/disables help div
- this.helpInstructions = _types2['default'].isUndef(f.help_instructions) ? undefined : Boolean(f.help_instructions);
- //popup filters
- this.popUpFilters = Boolean(f.popup_filters);
- //active columns color
- this.markActiveColumns = Boolean(f.mark_active_columns);
- //defines css class for active column header
- this.activeColumnsCssClass = f.active_columns_css_class || 'activeHeader';
- //calls function before active column header is marked
- this.onBeforeActiveColumn = _types2['default'].isFn(f.on_before_active_column) ? f.on_before_active_column : null;
- //calls function after active column header is marked
- this.onAfterActiveColumn = _types2['default'].isFn(f.on_after_active_column) ? f.on_after_active_column : null;
-
- /*** select filter's customisation and behaviours ***/
- //defines 1st option text
- this.displayAllText = f.display_all_text || 'Clear';
- //enables/disables empty option in combo-box filters
- this.enableEmptyOption = Boolean(f.enable_empty_option);
- //defines empty option text
- this.emptyText = f.empty_text || '(Empty)';
- //enables/disables non empty option in combo-box filters
- this.enableNonEmptyOption = Boolean(f.enable_non_empty_option);
- //defines empty option text
- this.nonEmptyText = f.non_empty_text || '(Non empty)';
- //enables/disables onChange event on combo-box
- this.onSlcChange = f.on_change === false ? false : true;
- //enables/disables select options sorting
- this.sortSlc = f.sort_select === false ? false : true;
- //enables/disables ascending numeric options sorting
- this.isSortNumAsc = Boolean(f.sort_num_asc);
- this.sortNumAsc = this.isSortNumAsc ? f.sort_num_asc : null;
- //enables/disables descending numeric options sorting
- this.isSortNumDesc = Boolean(f.sort_num_desc);
- this.sortNumDesc = this.isSortNumDesc ? f.sort_num_desc : null;
- //Select filters are populated on demand
- this.loadFltOnDemand = Boolean(f.load_filters_on_demand);
- this.hasCustomOptions = _types2['default'].isObj(f.custom_options);
- this.customOptions = f.custom_options;
-
- /*** Filter operators ***/
- this.rgxOperator = f.regexp_operator || 'rgx:';
- this.emOperator = f.empty_operator || '[empty]';
- this.nmOperator = f.nonempty_operator || '[nonempty]';
- this.orOperator = f.or_operator || '||';
- this.anOperator = f.and_operator || '&&';
- this.grOperator = f.greater_operator || '>';
- this.lwOperator = f.lower_operator || '<';
- this.leOperator = f.lower_equal_operator || '<=';
- this.geOperator = f.greater_equal_operator || '>=';
- this.dfOperator = f.different_operator || '!';
- this.lkOperator = f.like_operator || '*';
- this.eqOperator = f.equal_operator || '=';
- this.stOperator = f.start_with_operator || '{';
- this.enOperator = f.end_with_operator || '}';
- this.curExp = f.cur_exp || '^[¥£€$]';
- this.separator = f.separator || ',';
-
- /*** rows counter ***/
- //show/hides rows counter
- this.rowsCounter = Boolean(f.rows_counter);
-
- /*** status bar ***/
- //show/hides status bar
- this.statusBar = Boolean(f.status_bar);
-
- /*** loader ***/
- //enables/disables loader/spinner indicator
- this.loader = Boolean(f.loader);
-
- /*** validation - reset buttons/links ***/
- //show/hides filter's validation button
- this.displayBtn = Boolean(f.btn);
- //defines validation button text
- this.btnText = f.btn_text || (!this.enableIcons ? 'Go' : '');
- //defines css class for validation button
- this.btnCssClass = f.btn_css_class || (!this.enableIcons ? 'btnflt' : 'btnflt_icon');
- //show/hides reset link
- this.btnReset = Boolean(f.btn_reset);
- //defines css class for reset button
- this.btnResetCssClass = f.btn_reset_css_class || 'reset';
- //callback function before filters are cleared
- this.onBeforeReset = _types2['default'].isFn(f.on_before_reset) ? f.on_before_reset : null;
- //callback function after filters are cleared
- this.onAfterReset = _types2['default'].isFn(f.on_after_reset) ? f.on_after_reset : null;
-
- /*** paging ***/
- //enables/disables table paging
- this.paging = Boolean(f.paging);
- this.nbVisibleRows = 0; //nb visible rows
- this.nbHiddenRows = 0; //nb hidden rows
-
- /*** autofilter on typing ***/
- //enables/disables auto filtering, table is filtered when user stops
- //typing
- this.autoFilter = Boolean(f.auto_filter);
- //onkeyup delay timer (msecs)
- this.autoFilterDelay = !isNaN(f.auto_filter_delay) ? f.auto_filter_delay : 900;
- //typing indicator
- this.isUserTyping = null;
- this.autoFilterTimer = null;
-
- /*** keyword highlighting ***/
- //enables/disables keyword highlighting
- this.highlightKeywords = Boolean(f.highlight_keywords);
-
- /*** data types ***/
- //defines default date type (european DMY)
- this.defaultDateType = f.default_date_type || 'DMY';
- //defines default thousands separator
- //US = ',' EU = '.'
- this.thousandsSeparator = f.thousands_separator || ',';
- //defines default decimal separator
- //US & javascript = '.' EU = ','
- this.decimalSeparator = f.decimal_separator || '.';
- //enables number format per column
- this.hasColNbFormat = _types2['default'].isArray(f.col_number_format);
- //array containing columns nb formats
- this.colNbFormat = this.hasColNbFormat ? f.col_number_format : null;
- //enables date type per column
- this.hasColDateType = _types2['default'].isArray(f.col_date_type);
- //array containing columns date type
- this.colDateType = this.hasColDateType ? f.col_date_type : null;
-
- /*** status messages ***/
- //filtering
- this.msgFilter = f.msg_filter || 'Filtering data...';
- //populating drop-downs
- this.msgPopulate = f.msg_populate || 'Populating filter...';
- //populating drop-downs
- this.msgPopulateCheckList = f.msg_populate_checklist || 'Populating list...';
- //changing paging page
- this.msgChangePage = f.msg_change_page || 'Collecting paging data...';
- //clearing filters
- this.msgClear = f.msg_clear || 'Clearing filters...';
- //changing nb results/page
- this.msgChangeResults = f.msg_change_results || 'Changing results per page...';
- //re-setting grid values
- this.msgResetValues = f.msg_reset_grid_values || 'Re-setting filters values...';
- //re-setting page
- this.msgResetPage = f.msg_reset_page || 'Re-setting page...';
- //re-setting page length
- this.msgResetPageLength = f.msg_reset_page_length || 'Re-setting page length...';
- //table sorting
- this.msgSort = f.msg_sort || 'Sorting data...';
- //extensions loading
- this.msgLoadExtensions = f.msg_load_extensions || 'Loading extensions...';
- //themes loading
- this.msgLoadThemes = f.msg_load_themes || 'Loading theme(s)...';
-
- /*** ids prefixes ***/
- //css class name added to table
- this.prfxTf = 'TF';
- //filters (inputs - selects)
- this.prfxFlt = 'flt';
- //validation button
- this.prfxValButton = 'btn';
- //container div for paging elements, rows counter etc.
- this.prfxInfDiv = 'inf_';
- //left div
- this.prfxLDiv = 'ldiv_';
- //right div
- this.prfxRDiv = 'rdiv_';
- //middle div
- this.prfxMDiv = 'mdiv_';
- //filter values cookie
- this.prfxCookieFltsValues = 'tf_flts_';
- //page nb cookie
- this.prfxCookiePageNb = 'tf_pgnb_';
- //page length cookie
- this.prfxCookiePageLen = 'tf_pglen_';
-
- /*** cookies ***/
- this.hasStoredValues = false;
- //remembers filters values on page load
- this.rememberGridValues = Boolean(f.remember_grid_values);
- //cookie storing filter values
- this.fltsValuesCookie = this.prfxCookieFltsValues + this.id;
- //remembers page nb on page load
- this.rememberPageNb = this.paging && f.remember_page_number;
- //cookie storing page nb
- this.pgNbCookie = this.prfxCookiePageNb + this.id;
- //remembers page length on page load
- this.rememberPageLen = this.paging && f.remember_page_length;
- //cookie storing page length
- this.pgLenCookie = this.prfxCookiePageLen + this.id;
-
- /*** extensions ***/
- //imports external script
- this.extensions = f.extensions;
- this.hasExtensions = _types2['default'].isArray(this.extensions);
-
- /*** themes ***/
- this.enableDefaultTheme = Boolean(f.enable_default_theme);
- //imports themes
- this.hasThemes = this.enableDefaultTheme || _types2['default'].isArray(f.themes);
- this.themes = f.themes || [];
- //themes path
- this.themesPath = f.themes_path || this.stylePath + 'themes/';
-
- // Features registry
- this.Mod = {};
-
- // Extensions registry
- this.ExtRegistry = {};
-
- /*** TF events ***/
- this.Evt = {
- name: {
- filter: 'Filter',
- dropdown: 'DropDown',
- checklist: 'CheckList',
- changepage: 'ChangePage',
- clear: 'Clear',
- changeresultsperpage: 'ChangeResults',
- resetvalues: 'ResetValues',
- resetpage: 'ResetPage',
- resetpagelength: 'ResetPageLength',
- loadextensions: 'LoadExtensions',
- loadthemes: 'LoadThemes'
- },
-
- // Detect ';
- //defines css class for popup div containing filter
- this.popUpDivCssClass = f.popup_div_css_class || 'popUpFilter';
- //callback function before popup filtes is opened
- this.onBeforePopUpOpen = _types2['default'].isFn(f.on_before_popup_filter_open) ? f.on_before_popup_filter_open : null;
- //callback function after popup filtes is opened
- this.onAfterPopUpOpen = _types2['default'].isFn(f.on_after_popup_filter_open) ? f.on_after_popup_filter_open : null;
- //callback function before popup filtes is closed
- this.onBeforePopUpClose = _types2['default'].isFn(f.on_before_popup_filter_close) ? f.on_before_popup_filter_close : null;
- //callback function after popup filtes is closed
- this.onAfterPopUpClose = _types2['default'].isFn(f.on_after_popup_filter_close) ? f.on_after_popup_filter_close : null;
-
- //stores filters spans
- this.popUpFltSpans = [];
- //stores filters icons
- this.popUpFltImgs = [];
- //stores filters containers
- this.popUpFltElms = this.popUpFltElmCache || [];
- this.popUpFltAdjustToContainer = true;
-
- //id prefix for pop-up filter span
- this.prfxPopUpSpan = 'popUpSpan_';
- //id prefix for pop-up div containing filter
- this.prfxPopUpDiv = 'popUpDiv_';
-
- this.tf = tf;
- }
-
- _createClass(PopupFilter, [{
- key: 'onClick',
- value: function onClick(e) {
- var evt = e || global.event,
- elm = evt.target.parentNode,
- colIndex = parseInt(elm.getAttribute('ci'), 10);
-
- this.closeAll(colIndex);
- this.toggle(colIndex);
-
- if (this.popUpFltAdjustToContainer) {
- var popUpDiv = this.popUpFltElms[colIndex],
- header = this.tf.getHeaderElement(colIndex),
- headerWidth = header.clientWidth * 0.95;
- popUpDiv.style.width = parseInt(headerWidth, 10) + 'px';
- }
- _event2['default'].cancel(evt);
- _event2['default'].stop(evt);
- }
-
- /**
- * Initialize DOM elements
- */
- }, {
- key: 'init',
- value: function init() {
- var _this = this;
-
- var tf = this.tf;
- for (var i = 0; i < tf.nbCells; i++) {
- if (tf.getFilterType(i) === tf.fltTypeNone) {
- continue;
- }
- var popUpSpan = _dom2['default'].create('span', ['id', this.prfxPopUpSpan + tf.id + '_' + i], ['ci', i]);
- popUpSpan.innerHTML = this.popUpImgFltHtml;
- var header = tf.getHeaderElement(i);
- header.appendChild(popUpSpan);
- _event2['default'].add(popUpSpan, 'click', function (evt) {
- _this.onClick(evt);
- });
- this.popUpFltSpans[i] = popUpSpan;
- this.popUpFltImgs[i] = popUpSpan.firstChild;
- }
- }
-
- /**
- * Build all pop-up filters elements
- */
- }, {
- key: 'buildAll',
- value: function buildAll() {
- for (var i = 0; i < this.popUpFltElmCache.length; i++) {
- this.build(i, this.popUpFltElmCache[i]);
- }
- }
-
- /**
- * Build a specified pop-up filter elements
- * @param {Number} colIndex Column index
- * @param {Object} div Optional container DOM element
- */
- }, {
- key: 'build',
- value: function build(colIndex, div) {
- var tf = this.tf;
- var popUpDiv = !div ? _dom2['default'].create('div', ['id', this.prfxPopUpDiv + tf.id + '_' + colIndex]) : div;
- popUpDiv.className = this.popUpDivCssClass;
- tf.externalFltTgtIds.push(popUpDiv.id);
- var header = tf.getHeaderElement(colIndex);
- header.insertBefore(popUpDiv, header.firstChild);
- _event2['default'].add(popUpDiv, 'click', function (evt) {
- _event2['default'].stop(evt);
- });
- this.popUpFltElms[colIndex] = popUpDiv;
- }
-
- /**
- * Toogle visibility of specified filter
- * @param {Number} colIndex Column index
- */
- }, {
- key: 'toggle',
- value: function toggle(colIndex) {
- var tf = this.tf,
- popUpFltElm = this.popUpFltElms[colIndex];
-
- if (popUpFltElm.style.display === 'none' || popUpFltElm.style.display === '') {
- if (this.onBeforePopUpOpen) {
- this.onBeforePopUpOpen.call(null, this, this.popUpFltElms[colIndex], colIndex);
- }
- popUpFltElm.style.display = 'block';
- if (tf.getFilterType(colIndex) === tf.fltTypeInp) {
- var flt = tf.getFilterElement(colIndex);
- if (flt) {
- flt.focus();
- }
- }
- if (this.onAfterPopUpOpen) {
- this.onAfterPopUpOpen.call(null, this, this.popUpFltElms[colIndex], colIndex);
- }
- } else {
- if (this.onBeforePopUpClose) {
- this.onBeforePopUpClose.call(null, this, this.popUpFltElms[colIndex], colIndex);
- }
- popUpFltElm.style.display = 'none';
- if (this.onAfterPopUpClose) {
- this.onAfterPopUpClose.call(null, this, this.popUpFltElms[colIndex], colIndex);
- }
- }
- }
-
- /**
- * Close all filters excepted for the specified one if any
- * @param {Number} exceptIdx Column index of the filter to not close
- */
- }, {
- key: 'closeAll',
- value: function closeAll(exceptIdx) {
- for (var i = 0; i < this.popUpFltElms.length; i++) {
- if (i === exceptIdx) {
- continue;
- }
- var popUpFltElm = this.popUpFltElms[i];
- if (popUpFltElm) {
- popUpFltElm.style.display = 'none';
- }
- }
- }
-
- /**
- * Build all the icons representing the pop-up filters
- */
- }, {
- key: 'buildIcons',
- value: function buildIcons() {
- for (var i = 0; i < this.popUpFltImgs.length; i++) {
- this.buildIcon(i, false);
- }
- }
-
- /**
- * Build specified icon
- * @param {Number} colIndex Column index
- * @param {Boolean} active Apply active state
- */
- }, {
- key: 'buildIcon',
- value: function buildIcon(colIndex, active) {
- if (this.popUpFltImgs[colIndex]) {
- this.popUpFltImgs[colIndex].src = active ? this.popUpImgFltActive : this.popUpImgFlt;
- }
- }
-
- /**
- * Remove pop-up filters
- */
- }, {
- key: 'destroy',
- value: function destroy() {
- this.popUpFltElmCache = [];
- for (var i = 0; i < this.popUpFltElms.length; i++) {
- var popUpFltElm = this.popUpFltElms[i],
- popUpFltSpan = this.popUpFltSpans[i],
- popUpFltImg = this.popUpFltImgs[i];
- if (popUpFltElm) {
- popUpFltElm.parentNode.removeChild(popUpFltElm);
- this.popUpFltElmCache[i] = popUpFltElm;
- }
- popUpFltElm = null;
- if (popUpFltSpan) {
- popUpFltSpan.parentNode.removeChild(popUpFltSpan);
- }
- popUpFltSpan = null;
- if (popUpFltImg) {
- popUpFltImg.parentNode.removeChild(popUpFltImg);
- }
- popUpFltImg = null;
- }
- this.popUpFltElms = [];
- this.popUpFltSpans = [];
- this.popUpFltImgs = [];
- }
- }]);
-
- return PopupFilter;
- })();
-
- exports.PopupFilter = PopupFilter;
- /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
-
-/***/ },
-/* 14 */
-/***/ function(module, exports, __webpack_require__) {
-
- '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 _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'); } }
-
- var _dom = __webpack_require__(2);
-
- var _dom2 = _interopRequireDefault(_dom);
-
- var _array = __webpack_require__(6);
-
- var _array2 = _interopRequireDefault(_array);
-
- var _string = __webpack_require__(3);
-
- var _string2 = _interopRequireDefault(_string);
-
- var _sort = __webpack_require__(15);
-
- var _sort2 = _interopRequireDefault(_sort);
-
- var Dropdown = (function () {
-
- /**
- * Dropdown UI component
- * @param {Object} tf TableFilter instance
- */
-
- function Dropdown(tf) {
- _classCallCheck(this, Dropdown);
-
- // Configuration object
- var f = tf.config();
-
- this.enableSlcResetFilter = f.enable_slc_reset_filter === false ? false : true;
- //defines empty option text
- this.nonEmptyText = f.non_empty_text || '(Non empty)';
- //sets select filling method: 'innerHTML' or 'createElement'
- this.slcFillingMethod = f.slc_filling_method || 'createElement';
- //IE only, tooltip text appearing on select before it is populated
- this.activateSlcTooltip = f.activate_slc_tooltip || 'Click to activate';
- //tooltip text appearing on multiple select
- this.multipleSlcTooltip = f.multiple_slc_tooltip || 'Use Ctrl key for multiple selections';
-
- this.isCustom = null;
- this.opts = null;
- this.optsTxt = null;
- this.slcInnerHtml = null;
-
- this.tf = tf;
- }
-
- /**
- * Build drop-down filter UI asynchronously
- * @param {Number} colIndex Column index
- * @param {Boolean} isLinked Enable linked refresh behaviour
- * @param {Boolean} isExternal Render in external container
- * @param {String} extSlcId External container id
- */
-
- _createClass(Dropdown, [{
- key: 'build',
- value: function build(colIndex, isLinked, isExternal, extSlcId) {
- var tf = this.tf;
- tf.EvtManager(tf.Evt.name.dropdown, {
- slcIndex: colIndex,
- slcRefreshed: isLinked,
- slcExternal: isExternal,
- slcId: extSlcId
- });
- }
-
- /**
- * Build drop-down filter UI
- * @param {Number} colIndex Column index
- * @param {Boolean} isLinked Enable linked refresh behaviour
- * @param {Boolean} isExternal Render in external container
- * @param {String} extSlcId External container id
- */
- }, {
- key: '_build',
- value: function _build(colIndex) {
- var isLinked = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1];
- var isExternal = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2];
- var extSlcId = arguments.length <= 3 || arguments[3] === undefined ? null : arguments[3];
-
- var tf = this.tf;
- colIndex = parseInt(colIndex, 10);
-
- this.opts = [];
- this.optsTxt = [];
- this.slcInnerHtml = '';
-
- var slcId = tf.fltIds[colIndex];
- if (!_dom2['default'].id(slcId) && !isExternal || !_dom2['default'].id(extSlcId) && isExternal) {
- return;
- }
- var slc = !isExternal ? _dom2['default'].id(slcId) : _dom2['default'].id(extSlcId),
- rows = tf.tbl.rows,
- matchCase = tf.matchCase;
-
- //custom select test
- this.isCustom = tf.isCustomOptions(colIndex);
-
- //custom selects text
- var activeFlt;
- if (isLinked && tf.activeFilterId) {
- activeFlt = tf.activeFilterId.split('_')[0];
- activeFlt = activeFlt.split(tf.prfxFlt)[1];
- }
-
- /*** remember grid values ***/
- var fltsValues = [],
- fltArr = [];
- if (tf.rememberGridValues) {
- fltsValues = tf.feature('store').getFilterValues(tf.fltsValuesCookie);
- if (fltsValues && !_string2['default'].isEmpty(fltsValues.toString())) {
- if (this.isCustom) {
- fltArr.push(fltsValues[colIndex]);
- } else {
- fltArr = fltsValues[colIndex].split(' ' + tf.orOperator + ' ');
- }
- }
- }
-
- var excludedOpts = null,
- filteredDataCol = null;
- if (isLinked && tf.disableExcludedOptions) {
- excludedOpts = [];
- filteredDataCol = [];
- }
-
- for (var k = tf.refRow; k < tf.nbRows; k++) {
- // always visible rows don't need to appear on selects as always
- // valid
- if (tf.hasVisibleRows && tf.visibleRows.indexOf(k) !== -1) {
- continue;
- }
-
- var cell = rows[k].cells,
- nchilds = cell.length;
-
- // checks if row has exact cell #
- if (nchilds !== tf.nbCells || this.isCustom) {
- continue;
- }
-
- // this loop retrieves cell data
- for (var j = 0; j < nchilds; j++) {
- // WTF: cyclomatic complexity hell
- if (colIndex === j && (!isLinked || isLinked && tf.disableExcludedOptions) || colIndex == j && isLinked && (rows[k].style.display === '' && !tf.paging || tf.paging && (!tf.validRowsIndex || tf.validRowsIndex && tf.validRowsIndex.indexOf(k) != -1) && (activeFlt === undefined || activeFlt == colIndex || activeFlt != colIndex && tf.validRowsIndex.indexOf(k) != -1))) {
- var cell_data = tf.getCellData(cell[j]),
-
- //Vary Peter's patch
- cell_string = _string2['default'].matchCase(cell_data, matchCase);
-
- // checks if celldata is already in array
- if (!_array2['default'].has(this.opts, cell_string, matchCase)) {
- this.opts.push(cell_data);
- }
-
- if (isLinked && tf.disableExcludedOptions) {
- var filteredCol = filteredDataCol[j];
- if (!filteredCol) {
- filteredCol = tf.getFilteredDataCol(j);
- }
- if (!_array2['default'].has(filteredCol, cell_string, matchCase) && !_array2['default'].has(excludedOpts, cell_string, matchCase) && !this.isFirstLoad) {
- excludedOpts.push(cell_data);
- }
- }
- } //if colIndex==j
- } //for j
- } //for k
-
- //Retrieves custom values
- if (this.isCustom) {
- var customValues = tf.getCustomOptions(colIndex);
- this.opts = customValues[0];
- this.optsTxt = customValues[1];
- }
-
- if (tf.sortSlc && !this.isCustom) {
- if (!matchCase) {
- this.opts.sort(_sort2['default'].ignoreCase);
- if (excludedOpts) {
- excludedOpts.sort(_sort2['default'].ignoreCase);
- }
- } else {
- this.opts.sort();
- if (excludedOpts) {
- excludedOpts.sort();
- }
- }
- }
-
- //asc sort
- if (tf.sortNumAsc && tf.sortNumAsc.indexOf(colIndex) != -1) {
- try {
- this.opts.sort(numSortAsc);
- if (excludedOpts) {
- excludedOpts.sort(numSortAsc);
- }
- if (this.isCustom) {
- this.optsTxt.sort(numSortAsc);
- }
- } catch (e) {
- this.opts.sort();
- if (excludedOpts) {
- excludedOpts.sort();
- }
- if (this.isCustom) {
- this.optsTxt.sort();
- }
- } //in case there are alphanumeric values
- }
- //desc sort
- if (tf.sortNumDesc && tf.sortNumDesc.indexOf(colIndex) != -1) {
- try {
- this.opts.sort(numSortDesc);
- if (excludedOpts) {
- excludedOpts.sort(numSortDesc);
- }
- if (this.isCustom) {
- this.optsTxt.sort(numSortDesc);
- }
- } catch (e) {
- this.opts.sort();
- if (excludedOpts) {
- excludedOpts.sort();
- }
- if (this.isCustom) {
- this.optsTxt.sort();
- }
- } //in case there are alphanumeric values
- }
-
- //populates drop-down
- this.addOptions(colIndex, slc, isLinked, excludedOpts, fltsValues, fltArr);
- }
-
- /**
- * Add drop-down options
- * @param {Number} colIndex Column index
- * @param {Object} slc Select Dom element
- * @param {Boolean} isLinked Enable linked refresh behaviour
- * @param {Array} excludedOpts Array of excluded options
- * @param {Array} fltsValues Collection of persisted filter values
- * @param {Array} fltArr Collection of persisted filter values
- */
- }, {
- key: 'addOptions',
- value: function addOptions(colIndex, slc, isLinked, excludedOpts, fltsValues, fltArr) {
- var tf = this.tf,
- fillMethod = _string2['default'].lower(this.slcFillingMethod),
- slcValue = slc.value;
-
- slc.innerHTML = '';
- slc = this.addFirstOption(slc);
-
- for (var y = 0; y < this.opts.length; y++) {
- if (this.opts[y] === '') {
- continue;
- }
- var val = this.opts[y]; //option value
- var lbl = this.isCustom ? this.optsTxt[y] : val; //option text
- var isDisabled = false;
- if (isLinked && tf.disableExcludedOptions && _array2['default'].has(excludedOpts, _string2['default'].matchCase(val, tf.matchCase), tf.matchCase)) {
- isDisabled = true;
- }
-
- if (fillMethod === 'innerhtml') {
- var slcAttr = '';
- if (tf.loadFltOnDemand && slcValue === this.opts[y]) {
- slcAttr = 'selected="selected"';
- }
- this.slcInnerHtml += '';
- } else {
- var opt;
- //fill select on demand
- if (tf.loadFltOnDemand && slcValue === this.opts[y] && tf.getFilterType(colIndex) === tf.fltTypeSlc) {
- opt = _dom2['default'].createOpt(lbl, val, true);
- } else {
- if (tf.getFilterType(colIndex) !== tf.fltTypeMulti) {
- opt = _dom2['default'].createOpt(lbl, val, fltsValues[colIndex] !== ' ' && val === fltsValues[colIndex] ? true : false);
- } else {
- opt = _dom2['default'].createOpt(lbl, val, _array2['default'].has(fltArr, _string2['default'].matchCase(this.opts[y], tf.matchCase), tf.matchCase) || fltArr.toString().indexOf(val) !== -1 ? true : false);
- }
- }
- if (isDisabled) {
- opt.disabled = true;
- }
- slc.appendChild(opt);
- }
- } // for y
-
- if (fillMethod === 'innerhtml') {
- slc.innerHTML += this.slcInnerHtml;
- }
- slc.setAttribute('filled', '1');
- }
-
- /**
- * Add drop-down header option
- * @param {Object} slc Select DOM element
- */
- }, {
- key: 'addFirstOption',
- value: function addFirstOption(slc) {
- var tf = this.tf,
- fillMethod = _string2['default'].lower(this.slcFillingMethod);
-
- if (fillMethod === 'innerhtml') {
- this.slcInnerHtml += '';
- } else {
- var opt0 = _dom2['default'].createOpt(!this.enableSlcResetFilter ? '' : tf.displayAllText, '');
- if (!this.enableSlcResetFilter) {
- opt0.style.display = 'none';
- }
- slc.appendChild(opt0);
- if (tf.enableEmptyOption) {
- var opt1 = _dom2['default'].createOpt(tf.emptyText, tf.emOperator);
- slc.appendChild(opt1);
- }
- if (tf.enableNonEmptyOption) {
- var opt2 = _dom2['default'].createOpt(tf.nonEmptyText, tf.nmOperator);
- slc.appendChild(opt2);
- }
- }
- return slc;
- }
- }]);
-
- return Dropdown;
- })();
-
- exports.Dropdown = Dropdown;
-
-/***/ },
-/* 15 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, '__esModule', {
- value: true
- });
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
- var _string = __webpack_require__(3);
-
- var _string2 = _interopRequireDefault(_string);
-
- exports['default'] = {
- ignoreCase: function ignoreCase(a, b) {
- var x = _string2['default'].lower(a);
- var y = _string2['default'].lower(b);
- return x < y ? -1 : x > y ? 1 : 0;
- }
- };
- module.exports = exports['default'];
-
-/***/ },
-/* 16 */
-/***/ function(module, exports, __webpack_require__) {
-
- '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 _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'); } }
-
- var _dom = __webpack_require__(2);
-
- var _dom2 = _interopRequireDefault(_dom);
-
- var _array = __webpack_require__(6);
-
- var _array2 = _interopRequireDefault(_array);
-
- var _string = __webpack_require__(3);
-
- var _string2 = _interopRequireDefault(_string);
-
- var _sort = __webpack_require__(15);
-
- var _sort2 = _interopRequireDefault(_sort);
-
- var _event = __webpack_require__(1);
-
- var _event2 = _interopRequireDefault(_event);
-
- var CheckList = (function () {
-
- /**
- * Checklist UI component
- * @param {Object} tf TableFilter instance
- */
-
- function CheckList(tf) {
- _classCallCheck(this, CheckList);
-
- // Configuration object
- var f = tf.config();
-
- this.checkListDiv = []; //checklist container div
- //defines css class for div containing checklist filter
- this.checkListDivCssClass = f.div_checklist_css_class || 'div_checklist';
- //defines css class for checklist filters
- this.checkListCssClass = f.checklist_css_class || 'flt_checklist';
- //defines css class for checklist item (li)
- this.checkListItemCssClass = f.checklist_item_css_class || 'flt_checklist_item';
- //defines css class for selected checklist item (li)
- this.checkListSlcItemCssClass = f.checklist_selected_item_css_class || 'flt_checklist_slc_item';
- //Load on demand text
- this.activateCheckListTxt = f.activate_checklist_text || 'Click to load filter data';
- //defines css class for checklist filters
- this.checkListItemDisabledCssClass = f.checklist_item_disabled_css_class || 'flt_checklist_item_disabled';
- this.enableCheckListResetFilter = f.enable_checklist_reset_filter === false ? false : true;
- //checklist filter container div
- this.prfxCheckListDiv = 'chkdiv_';
-
- this.isCustom = null;
- this.opts = null;
- this.optsTxt = null;
- this.excludedOpts = null;
-
- this.tf = tf;
- }
-
- // TODO: move event here
-
- _createClass(CheckList, [{
- key: 'onChange',
- value: function onChange(evt) {
- var elm = evt.target;
- this.tf.activeFilterId = elm.getAttribute('id');
- this.tf.activeFlt = _dom2['default'].id(this.tf.activeFilterId);
- this.tf.Evt.onSlcChange.call(this.tf, evt);
- }
- }, {
- key: 'optionClick',
- value: function optionClick(evt) {
- this.setCheckListValues(evt.target);
- this.onChange(evt);
- }
-
- /**
- * Build checklist UI asynchronously
- * @param {Number} colIndex Column index
- * @param {Boolean} isExternal Render in external container
- * @param {String} extFltId External container id
- */
- }, {
- key: 'build',
- value: function build(colIndex, isExternal, extFltId) {
- var tf = this.tf;
- tf.EvtManager(tf.Evt.name.checklist, { slcIndex: colIndex, slcExternal: isExternal, slcId: extFltId });
- }
-
- /**
- * Build checklist UI
- * @param {Number} colIndex Column index
- * @param {Boolean} isExternal Render in external container
- * @param {String} extFltId External container id
- */
- }, {
- key: '_build',
- value: function _build(colIndex) {
- var _this = this;
-
- var isExternal = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1];
- var extFltId = arguments.length <= 2 || arguments[2] === undefined ? null : arguments[2];
-
- var tf = this.tf;
- colIndex = parseInt(colIndex, 10);
-
- this.opts = [];
- this.optsTxt = [];
-
- var divFltId = this.prfxCheckListDiv + colIndex + '_' + tf.id;
- if (!_dom2['default'].id(divFltId) && !isExternal || !_dom2['default'].id(extFltId) && isExternal) {
- return;
- }
-
- var flt = !isExternal ? this.checkListDiv[colIndex] : _dom2['default'].id(extFltId);
- var ul = _dom2['default'].create('ul', ['id', tf.fltIds[colIndex]], ['colIndex', colIndex]);
- ul.className = this.checkListCssClass;
- _event2['default'].add(ul, 'change', function (evt) {
- _this.onChange(evt);
- });
-
- var rows = tf.tbl.rows;
- this.isCustom = tf.isCustomOptions(colIndex);
-
- var activeFlt;
- if (tf.linkedFilters && tf.activeFilterId) {
- activeFlt = tf.activeFilterId.split('_')[0];
- activeFlt = activeFlt.split(tf.prfxFlt)[1];
- }
-
- var filteredDataCol = [];
- if (tf.linkedFilters && tf.disableExcludedOptions) {
- this.excludedOpts = [];
- }
-
- for (var k = tf.refRow; k < tf.nbRows; k++) {
- // always visible rows don't need to appear on selects as always
- // valid
- if (tf.hasVisibleRows && tf.visibleRows.indexOf(k) !== -1) {
- continue;
- }
-
- var cells = rows[k].cells;
- var ncells = cells.length;
-
- // checks if row has exact cell #
- if (ncells !== tf.nbCells || this.isCustom) {
- continue;
- }
-
- // this loop retrieves cell data
- for (var j = 0; j < ncells; j++) {
- // WTF: cyclomatic complexity hell :)
- if (colIndex === j && (!tf.linkedFilters || tf.linkedFilters && tf.disableExcludedOptions) || colIndex === j && tf.linkedFilters && (rows[k].style.display === '' && !tf.paging || tf.paging && (!activeFlt || activeFlt === colIndex || activeFlt != colIndex && tf.validRowsIndex.indexOf(k) != -1))) {
- var cell_data = tf.getCellData(cells[j]);
- //Vary Peter's patch
- var cell_string = _string2['default'].matchCase(cell_data, tf.matchCase);
- // checks if celldata is already in array
- if (!_array2['default'].has(this.opts, cell_string, tf.matchCase)) {
- this.opts.push(cell_data);
- }
- var filteredCol = filteredDataCol[j];
- if (tf.linkedFilters && tf.disableExcludedOptions) {
- if (!filteredCol) {
- filteredCol = tf.getFilteredDataCol(j);
- }
- if (!_array2['default'].has(filteredCol, cell_string, tf.matchCase) && !_array2['default'].has(this.excludedOpts, cell_string, tf.matchCase) && !tf.isFirstLoad) {
- this.excludedOpts.push(cell_data);
- }
- }
- }
- }
- }
-
- //Retrieves custom values
- if (this.isCustom) {
- var customValues = tf.getCustomOptions(colIndex);
- this.opts = customValues[0];
- this.optsTxt = customValues[1];
- }
-
- if (tf.sortSlc && !this.isCustom) {
- if (!tf.matchCase) {
- this.opts.sort(_sort2['default'].ignoreCase);
- if (this.excludedOpts) {
- this.excludedOpts.sort(_sort2['default'].ignoreCase);
- }
- } else {
- this.opts.sort();
- if (this.excludedOpts) {
- this.excludedOpts.sort();
- }
- }
- }
- //asc sort
- if (tf.sortNumAsc && tf.sortNumAsc.indexOf(colIndex) != -1) {
- try {
- this.opts.sort(numSortAsc);
- if (this.excludedOpts) {
- this.excludedOpts.sort(numSortAsc);
- }
- if (this.isCustom) {
- this.optsTxt.sort(numSortAsc);
- }
- } catch (e) {
- this.opts.sort();
- if (this.excludedOpts) {
- this.excludedOpts.sort();
- }
- if (this.isCustom) {
- this.optsTxt.sort();
- }
- } //in case there are alphanumeric values
- }
- //desc sort
- if (tf.sortNumDesc && tf.sortNumDesc.indexOf(colIndex) != -1) {
- try {
- this.opts.sort(numSortDesc);
- if (this.excludedOpts) {
- this.excludedOpts.sort(numSortDesc);
- }
- if (this.isCustom) {
- this.optsTxt.sort(numSortDesc);
- }
- } catch (e) {
- this.opts.sort();
- if (this.excludedOpts) {
- this.excludedOpts.sort();
- }
- if (this.isCustom) {
- this.optsTxt.sort();
- }
- } //in case there are alphanumeric values
- }
-
- this.addChecks(colIndex, ul, tf.separator);
-
- if (tf.loadFltOnDemand) {
- flt.innerHTML = '';
- }
- flt.appendChild(ul);
- flt.setAttribute('filled', '1');
- }
-
- /**
- * Add checklist options
- * @param {Number} colIndex Column index
- * @param {Object} ul Ul element
- */
- }, {
- key: 'addChecks',
- value: function addChecks(colIndex, ul) {
- var _this2 = this;
-
- var tf = this.tf;
- var chkCt = this.addTChecks(colIndex, ul);
- var fltArr = []; //remember grid values
- var store = tf.feature('store');
- var tmpVal = store ? store.getFilterValues(tf.fltsValuesCookie)[colIndex] : null;
- if (tmpVal && _string2['default'].trim(tmpVal).length > 0) {
- if (tf.hasCustomSlcOptions && tf.customSlcOptions.cols.indexOf(colIndex) != -1) {
- fltArr.push(tmpVal);
- } else {
- fltArr = tmpVal.split(' ' + tf.orOperator + ' ');
- }
- }
-
- for (var y = 0; y < this.opts.length; y++) {
- var val = this.opts[y]; //item value
- var lbl = this.isCustom ? this.optsTxt[y] : val; //item text
- var li = _dom2['default'].createCheckItem(tf.fltIds[colIndex] + '_' + (y + chkCt), val, lbl);
- li.className = this.checkListItemCssClass;
- if (tf.linkedFilters && tf.disableExcludedOptions && _array2['default'].has(this.excludedOpts, _string2['default'].matchCase(val, tf.matchCase), tf.matchCase)) {
- _dom2['default'].addClass(li, this.checkListItemDisabledCssClass);
- li.check.disabled = true;
- li.disabled = true;
- } else {
- _event2['default'].add(li.check, 'click', function (evt) {
- _this2.optionClick(evt);
- });
- }
- ul.appendChild(li);
-
- if (val === '') {
- //item is hidden
- li.style.display = 'none';
- }
-
- /*** remember grid values ***/
- if (tf.rememberGridValues) {
- if (tf.hasCustomSlcOptions && tf.customSlcOptions.cols.indexOf(colIndex) != -1 && fltArr.toString().indexOf(val) != -1 || _array2['default'].has(fltArr, _string2['default'].matchCase(val, tf.matchCase), tf.matchCase)) {
- li.check.checked = true;
- this.setCheckListValues(li.check);
- }
- }
- }
- }
-
- /**
- * Add checklist header option
- * @param {Number} colIndex Column index
- * @param {Object} ul Ul element
- */
- }, {
- key: 'addTChecks',
- value: function addTChecks(colIndex, ul) {
- var _this3 = this;
-
- var tf = this.tf;
- var chkCt = 1;
- var li0 = _dom2['default'].createCheckItem(tf.fltIds[colIndex] + '_0', '', tf.displayAllText);
- li0.className = this.checkListItemCssClass;
- ul.appendChild(li0);
-
- _event2['default'].add(li0.check, 'click', function (evt) {
- _this3.optionClick(evt);
- });
-
- if (!this.enableCheckListResetFilter) {
- li0.style.display = 'none';
- }
-
- if (tf.enableEmptyOption) {
- var li1 = _dom2['default'].createCheckItem(tf.fltIds[colIndex] + '_1', tf.emOperator, tf.emptyText);
- li1.className = this.checkListItemCssClass;
- ul.appendChild(li1);
- _event2['default'].add(li1.check, 'click', function (evt) {
- _this3.optionClick(evt);
- });
- chkCt++;
- }
-
- if (tf.enableNonEmptyOption) {
- var li2 = _dom2['default'].createCheckItem(tf.fltIds[colIndex] + '_2', tf.nmOperator, tf.nonEmptyText);
- li2.className = this.checkListItemCssClass;
- ul.appendChild(li2);
- _event2['default'].add(li2.check, 'click', function (evt) {
- _this3.optionClick(evt);
- });
- chkCt++;
- }
- return chkCt;
- }
-
- /**
- * Store checked options in DOM element attribute
- * @param {Object} o checklist option DOM element
- */
- }, {
- key: 'setCheckListValues',
- value: function setCheckListValues(o) {
- if (!o) {
- return;
- }
- var tf = this.tf;
- var chkValue = o.value; //checked item value
- var chkIndex = parseInt(o.id.split('_')[2], 10);
- var filterTag = 'ul',
- itemTag = 'li';
- var n = o;
-
- //ul tag search
- while (_string2['default'].lower(n.nodeName) !== filterTag) {
- n = n.parentNode;
- }
-
- var li = n.childNodes[chkIndex];
- var colIndex = n.getAttribute('colIndex');
- var fltValue = n.getAttribute('value'); //filter value (ul tag)
- var fltIndexes = n.getAttribute('indexes'); //selected items (ul tag)
-
- if (o.checked) {
- //show all item
- if (chkValue === '') {
- if (fltIndexes && fltIndexes !== '') {
- //items indexes
- var indSplit = fltIndexes.split(tf.separator);
- //checked items loop
- for (var u = 0; u < indSplit.length; u++) {
- //checked item
- var cChk = _dom2['default'].id(tf.fltIds[colIndex] + '_' + indSplit[u]);
- if (cChk) {
- cChk.checked = false;
- _dom2['default'].removeClass(n.childNodes[indSplit[u]], this.checkListSlcItemCssClass);
- }
- }
- }
- n.setAttribute('value', '');
- n.setAttribute('indexes', '');
- } else {
- fltValue = fltValue ? fltValue : '';
- chkValue = _string2['default'].trim(fltValue + ' ' + chkValue + ' ' + tf.orOperator);
- chkIndex = fltIndexes + chkIndex + tf.separator;
- n.setAttribute('value', chkValue);
- n.setAttribute('indexes', chkIndex);
- //1st option unchecked
- if (_dom2['default'].id(tf.fltIds[colIndex] + '_0')) {
- _dom2['default'].id(tf.fltIds[colIndex] + '_0').checked = false;
- }
- }
-
- if (_string2['default'].lower(li.nodeName) === itemTag) {
- _dom2['default'].removeClass(n.childNodes[0], this.checkListSlcItemCssClass);
- _dom2['default'].addClass(li, this.checkListSlcItemCssClass);
- }
- } else {
- //removes values and indexes
- if (chkValue !== '') {
- var replaceValue = new RegExp(_string2['default'].rgxEsc(chkValue + ' ' + tf.orOperator));
- fltValue = fltValue.replace(replaceValue, '');
- n.setAttribute('value', _string2['default'].trim(fltValue));
-
- var replaceIndex = new RegExp(_string2['default'].rgxEsc(chkIndex + tf.separator));
- fltIndexes = fltIndexes.replace(replaceIndex, '');
- n.setAttribute('indexes', fltIndexes);
- }
- if (_string2['default'].lower(li.nodeName) === itemTag) {
- _dom2['default'].removeClass(li, this.checkListSlcItemCssClass);
- }
- }
- }
- }]);
-
- return CheckList;
- })();
-
- exports.CheckList = CheckList;
-
-/***/ },
-/* 17 */
-/***/ function(module, exports, __webpack_require__) {
-
- '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 _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'); } }
-
- var _dom = __webpack_require__(2);
-
- var _dom2 = _interopRequireDefault(_dom);
-
- var _types = __webpack_require__(5);
-
- var _types2 = _interopRequireDefault(_types);
-
- var RowsCounter = (function () {
-
- /**
- * Rows counter
- * @param {Object} tf TableFilter instance
- */
-
- function RowsCounter(tf) {
- _classCallCheck(this, RowsCounter);
-
- // TableFilter configuration
- var f = tf.config();
-
- //id of custom container element
- this.rowsCounterTgtId = f.rows_counter_target_id || null;
- //element containing tot nb rows
- this.rowsCounterDiv = null;
- //element containing tot nb rows label
- this.rowsCounterSpan = null;
- //defines rows counter text
- this.rowsCounterText = f.rows_counter_text || 'Rows: ';
- this.fromToTextSeparator = f.from_to_text_separator || '-';
- this.overText = f.over_text || ' / ';
- //defines css class rows counter
- this.totRowsCssClass = f.tot_rows_css_class || 'tot';
- //rows counter div
- this.prfxCounter = 'counter_';
- //nb displayed rows label
- this.prfxTotRows = 'totrows_span_';
- //label preceding nb rows label
- this.prfxTotRowsTxt = 'totRowsTextSpan_';
- //callback raised before counter is refreshed
- this.onBeforeRefreshCounter = _types2['default'].isFn(f.on_before_refresh_counter) ? f.on_before_refresh_counter : null;
- //callback raised after counter is refreshed
- this.onAfterRefreshCounter = _types2['default'].isFn(f.on_after_refresh_counter) ? f.on_after_refresh_counter : null;
-
- this.tf = tf;
- }
-
- _createClass(RowsCounter, [{
- key: 'init',
- value: function init() {
- var tf = this.tf;
-
- if (!tf.hasGrid() && !tf.isFirstLoad || this.rowsCounterSpan) {
- return;
- }
-
- //rows counter container
- var countDiv = _dom2['default'].create('div', ['id', this.prfxCounter + tf.id]);
- countDiv.className = this.totRowsCssClass;
- //rows counter label
- var countSpan = _dom2['default'].create('span', ['id', this.prfxTotRows + tf.id]);
- var countText = _dom2['default'].create('span', ['id', this.prfxTotRowsTxt + tf.id]);
- countText.appendChild(_dom2['default'].text(this.rowsCounterText));
-
- // counter is added to defined element
- if (!this.rowsCounterTgtId) {
- tf.setToolbar();
- }
- var targetEl = !this.rowsCounterTgtId ? tf.lDiv : _dom2['default'].id(this.rowsCounterTgtId);
-
- //default container: 'lDiv'
- if (!this.rowsCounterTgtId) {
- countDiv.appendChild(countText);
- countDiv.appendChild(countSpan);
- targetEl.appendChild(countDiv);
- } else {
- //custom container, no need to append statusDiv
- targetEl.appendChild(countText);
- targetEl.appendChild(countSpan);
- }
- this.rowsCounterDiv = countDiv;
- this.rowsCounterSpan = countSpan;
-
- this.refresh();
- }
- }, {
- key: 'refresh',
- value: function refresh(p) {
- if (!this.rowsCounterSpan) {
- return;
- }
-
- var tf = this.tf;
-
- if (this.onBeforeRefreshCounter) {
- this.onBeforeRefreshCounter.call(null, tf, this.rowsCounterSpan);
- }
-
- var totTxt;
- if (!tf.paging) {
- if (p && p !== '') {
- totTxt = p;
- } else {
- totTxt = tf.nbFilterableRows - tf.nbHiddenRows;
- }
- } else {
- var paging = tf.feature('paging');
- if (paging) {
- //paging start row
- var paging_start_row = parseInt(paging.startPagingRow, 10) + (tf.nbVisibleRows > 0 ? 1 : 0);
- var paging_end_row = paging_start_row + paging.pagingLength - 1 <= tf.nbVisibleRows ? paging_start_row + paging.pagingLength - 1 : tf.nbVisibleRows;
- totTxt = paging_start_row + this.fromToTextSeparator + paging_end_row + this.overText + tf.nbVisibleRows;
- }
- }
-
- this.rowsCounterSpan.innerHTML = totTxt;
- if (this.onAfterRefreshCounter) {
- this.onAfterRefreshCounter.call(null, tf, this.rowsCounterSpan, totTxt);
- }
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- var tf = this.tf;
- if (!tf.hasGrid() || !this.rowsCounterSpan) {
- return;
- }
-
- if (!this.rowsCounterTgtId && this.rowsCounterDiv) {
- this.rowsCounterDiv.parentNode.removeChild(this.rowsCounterDiv);
- } else {
- _dom2['default'].id(this.rowsCounterTgtId).innerHTML = '';
- }
- this.rowsCounterSpan = null;
- this.rowsCounterDiv = null;
- }
- }]);
-
- return RowsCounter;
- })();
-
- exports.RowsCounter = RowsCounter;
-
-/***/ },
-/* 18 */
-/***/ function(module, exports, __webpack_require__) {
-
- '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 _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'); } }
-
- var _dom = __webpack_require__(2);
-
- var _dom2 = _interopRequireDefault(_dom);
-
- var _types = __webpack_require__(5);
-
- var _types2 = _interopRequireDefault(_types);
-
- var global = window;
-
- var StatusBar = (function () {
-
- /**
- * Status bar UI component
- * @param {Object} tf TableFilter instance
- */
-
- function StatusBar(tf) {
- _classCallCheck(this, StatusBar);
-
- // Configuration object
- var f = tf.config();
-
- //id of custom container element
- this.statusBarTgtId = f.status_bar_target_id || null;
- //element containing status bar label
- this.statusBarDiv = null;
- //status bar
- this.statusBarSpan = null;
- //status bar label
- this.statusBarSpanText = null;
- //defines status bar text
- this.statusBarText = f.status_bar_text || '';
- //defines css class status bar
- this.statusBarCssClass = f.status_bar_css_class || 'status';
- //delay for status bar clearing
- this.statusBarCloseDelay = 250;
-
- //calls function before message is displayed
- this.onBeforeShowMsg = _types2['default'].isFn(f.on_before_show_msg) ? f.on_before_show_msg : null;
- //calls function after message is displayed
- this.onAfterShowMsg = _types2['default'].isFn(f.on_after_show_msg) ? f.on_after_show_msg : null;
-
- // status bar div
- this.prfxStatus = 'status_';
- // status bar label
- this.prfxStatusSpan = 'statusSpan_';
- // text preceding status bar label
- this.prfxStatusTxt = 'statusText_';
-
- this.tf = tf;
- }
-
- _createClass(StatusBar, [{
- key: 'init',
- value: function init() {
- var tf = this.tf;
- if (!tf.hasGrid() && !tf.isFirstLoad) {
- return;
- }
-
- //status bar container
- var statusDiv = _dom2['default'].create('div', ['id', this.prfxStatus + tf.id]);
- statusDiv.className = this.statusBarCssClass;
-
- //status bar label
- var statusSpan = _dom2['default'].create('span', ['id', this.prfxStatusSpan + tf.id]);
- //preceding text
- var statusSpanText = _dom2['default'].create('span', ['id', this.prfxStatusTxt + tf.id]);
- statusSpanText.appendChild(_dom2['default'].text(this.statusBarText));
-
- // target element container
- if (!this.statusBarTgtId) {
- tf.setToolbar();
- }
- var targetEl = !this.statusBarTgtId ? tf.lDiv : _dom2['default'].id(this.statusBarTgtId);
-
- //default container: 'lDiv'
- if (!this.statusBarTgtId) {
- statusDiv.appendChild(statusSpanText);
- statusDiv.appendChild(statusSpan);
- targetEl.appendChild(statusDiv);
- } else {
- // custom container, no need to append statusDiv
- targetEl.appendChild(statusSpanText);
- targetEl.appendChild(statusSpan);
- }
-
- this.statusBarDiv = statusDiv;
- this.statusBarSpan = statusSpan;
- this.statusBarSpanText = statusSpanText;
- }
- }, {
- key: 'message',
- value: function message() {
- var _this = this;
-
- var t = arguments.length <= 0 || arguments[0] === undefined ? '' : arguments[0];
-
- var tf = this.tf;
- if (!tf.statusBar || !this.statusBarSpan) {
- return;
- }
- if (this.onBeforeShowMsg) {
- this.onBeforeShowMsg.call(null, this.tf, t);
- }
-
- var d = t === '' ? this.statusBarCloseDelay : 1;
- global.setTimeout(function () {
- _this.statusBarSpan.innerHTML = t;
- if (_this.onAfterShowMsg) {
- _this.onAfterShowMsg.call(null, _this.tf, t);
- }
- }, d);
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- var tf = this.tf;
- if (!tf.hasGrid() || !this.statusBarDiv) {
- return;
- }
-
- this.statusBarDiv.innerHTML = '';
- this.statusBarDiv.parentNode.removeChild(this.statusBarDiv);
- this.statusBarSpan = null;
- this.statusBarSpanText = null;
- this.statusBarDiv = null;
- }
- }]);
-
- return StatusBar;
- })();
-
- exports.StatusBar = StatusBar;
-
-/***/ },
-/* 19 */
-/***/ function(module, exports, __webpack_require__) {
-
- '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 _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'); } }
-
- var _dom = __webpack_require__(2);
-
- var _dom2 = _interopRequireDefault(_dom);
-
- var _types = __webpack_require__(5);
-
- var _types2 = _interopRequireDefault(_types);
-
- var _string = __webpack_require__(3);
-
- var _string2 = _interopRequireDefault(_string);
-
- var _event = __webpack_require__(1);
-
- var _event2 = _interopRequireDefault(_event);
-
- var Paging = (function () {
-
- /**
- * Pagination component
- * @param {Object} tf TableFilter instance
- */
-
- function Paging(tf) {
- _classCallCheck(this, Paging);
-
- // Configuration object
- var f = tf.config();
-
- //css class for paging buttons (previous,next,etc.)
- this.btnPageCssClass = f.paging_btn_css_class || 'pgInp';
- //stores paging select element
- this.pagingSlc = null;
- //results per page select element
- this.resultsPerPageSlc = null;
- //id of container element
- this.pagingTgtId = f.paging_target_id || null;
- //defines table paging length
- this.pagingLength = !isNaN(f.paging_length) ? f.paging_length : 10;
- //id of container element
- this.resultsPerPageTgtId = f.results_per_page_target_id || null;
- //css class for paging select element
- this.pgSlcCssClass = f.paging_slc_css_class || 'pgSlc';
- //css class for paging input element
- this.pgInpCssClass = f.paging_inp_css_class || 'pgNbInp';
- //stores results per page text and values
- this.resultsPerPage = f.results_per_page || null;
- //enables/disables results per page drop-down
- this.hasResultsPerPage = _types2['default'].isArray(this.resultsPerPage);
- //defines css class for results per page select
- this.resultsSlcCssClass = f.results_slc_css_class || 'rspg';
- //css class for label preceding results per page select
- this.resultsSpanCssClass = f.results_span_css_class || 'rspgSpan';
- //1st row index of current page
- this.startPagingRow = 0;
- //total nb of pages
- this.nbPages = 0;
- //current page nb
- this.currentPageNb = 1;
- //defines next page button text
- this.btnNextPageText = f.btn_next_page_text || '>';
- //defines previous page button text
- this.btnPrevPageText = f.btn_prev_page_text || '<';
- //defines last page button text
- this.btnLastPageText = f.btn_last_page_text || '>|';
- //defines first page button text
- this.btnFirstPageText = f.btn_first_page_text || '|<';
- //defines next page button html
- this.btnNextPageHtml = f.btn_next_page_html || (!tf.enableIcons ? null : '');
- //defines previous page button html
- this.btnPrevPageHtml = f.btn_prev_page_html || (!tf.enableIcons ? null : '');
- //defines last page button html
- this.btnFirstPageHtml = f.btn_first_page_html || (!tf.enableIcons ? null : '');
- //defines previous page button html
- this.btnLastPageHtml = f.btn_last_page_html || (!tf.enableIcons ? null : '');
- //defines text preceeding page selector drop-down
- this.pageText = f.page_text || ' Page ';
- //defines text after page selector drop-down
- this.ofText = f.of_text || ' of ';
- //css class for span containing tot nb of pages
- this.nbPgSpanCssClass = f.nb_pages_css_class || 'nbpg';
- //enables/disables paging buttons
- this.hasPagingBtns = f.paging_btns === false ? false : true;
- //defines previous page button html
- this.pageSelectorType = f.page_selector_type || tf.fltTypeSlc;
- //calls function before page is changed
- this.onBeforeChangePage = _types2['default'].isFn(f.on_before_change_page) ? f.on_before_change_page : null;
- //calls function before page is changed
- this.onAfterChangePage = _types2['default'].isFn(f.on_after_change_page) ? f.on_after_change_page : null;
-
- //pages select
- this.prfxSlcPages = 'slcPages_';
- //results per page select
- this.prfxSlcResults = 'slcResults_';
- //label preciding results per page select
- this.prfxSlcResultsTxt = 'slcResultsTxt_';
- //span containing next page button
- this.prfxBtnNextSpan = 'btnNextSpan_';
- //span containing previous page button
- this.prfxBtnPrevSpan = 'btnPrevSpan_';
- //span containing last page button
- this.prfxBtnLastSpan = 'btnLastSpan_';
- //span containing first page button
- this.prfxBtnFirstSpan = 'btnFirstSpan_';
- //next button
- this.prfxBtnNext = 'btnNext_';
- //previous button
- this.prfxBtnPrev = 'btnPrev_';
- //last button
- this.prfxBtnLast = 'btnLast_';
- //first button
- this.prfxBtnFirst = 'btnFirst_';
- //span for tot nb pages
- this.prfxPgSpan = 'pgspan_';
- //span preceding pages select (contains 'Page')
- this.prfxPgBeforeSpan = 'pgbeforespan_';
- //span following pages select (contains ' of ')
- this.prfxPgAfterSpan = 'pgafterspan_';
-
- var start_row = this.refRow;
- var nrows = this.nbRows;
- //calculates page nb
- this.nbPages = Math.ceil((nrows - start_row) / this.pagingLength);
-
- //Paging elements events
- var o = this;
- // Paging DOM events
- this.evt = {
- slcIndex: function slcIndex() {
- return o.pageSelectorType === tf.fltTypeSlc ? o.pagingSlc.options.selectedIndex : parseInt(o.pagingSlc.value, 10) - 1;
- },
- nbOpts: function nbOpts() {
- return o.pageSelectorType === tf.fltTypeSlc ? parseInt(o.pagingSlc.options.length, 10) - 1 : o.nbPages - 1;
- },
- next: function next() {
- var nextIndex = o.evt.slcIndex() < o.evt.nbOpts() ? o.evt.slcIndex() + 1 : 0;
- o.changePage(nextIndex);
- },
- prev: function prev() {
- var prevIndex = o.evt.slcIndex() > 0 ? o.evt.slcIndex() - 1 : o.evt.nbOpts();
- o.changePage(prevIndex);
- },
- last: function last() {
- o.changePage(o.evt.nbOpts());
- },
- first: function first() {
- o.changePage(0);
- },
- _detectKey: function _detectKey(e) {
- var key = _event2['default'].keyCode(e);
- if (key === 13) {
- if (tf.sorted) {
- tf.filter();
- o.changePage(o.evt.slcIndex());
- } else {
- o.changePage();
- }
- this.blur();
- }
- },
- slcPagesChange: null,
- nextEvt: null,
- prevEvt: null,
- lastEvt: null,
- firstEvt: null
- };
-
- this.tf = tf;
- }
-
- /**
- * Initialize DOM elements
- */
-
- _createClass(Paging, [{
- key: 'init',
- value: function init() {
- var _this = this;
-
- var slcPages;
- var tf = this.tf;
- var evt = this.evt;
-
- // Check resultsPerPage is in expected format and initialise the
- // results per page component
- if (this.hasResultsPerPage) {
- if (this.resultsPerPage.length < 2) {
- this.hasResultsPerPage = false;
- } else {
- this.pagingLength = this.resultsPerPage[1][0];
- this.setResultsPerPage();
- }
- }
-
- evt.slcPagesChange = function (event) {
- var slc = event.target;
- _this.changePage(slc.selectedIndex);
- };
-
- // Paging drop-down list selector
- if (this.pageSelectorType === tf.fltTypeSlc) {
- slcPages = _dom2['default'].create(tf.fltTypeSlc, ['id', this.prfxSlcPages + tf.id]);
- slcPages.className = this.pgSlcCssClass;
- _event2['default'].add(slcPages, 'change', evt.slcPagesChange);
- }
-
- // Paging input selector
- if (this.pageSelectorType === tf.fltTypeInp) {
- slcPages = _dom2['default'].create(tf.fltTypeInp, ['id', this.prfxSlcPages + tf.id], ['value', this.currentPageNb]);
- slcPages.className = this.pgInpCssClass;
- _event2['default'].add(slcPages, 'keypress', evt._detectKey);
- }
-
- // btns containers
- var btnNextSpan = _dom2['default'].create('span', ['id', this.prfxBtnNextSpan + tf.id]);
- var btnPrevSpan = _dom2['default'].create('span', ['id', this.prfxBtnPrevSpan + tf.id]);
- var btnLastSpan = _dom2['default'].create('span', ['id', this.prfxBtnLastSpan + tf.id]);
- var btnFirstSpan = _dom2['default'].create('span', ['id', this.prfxBtnFirstSpan + tf.id]);
-
- if (this.hasPagingBtns) {
- // Next button
- if (!this.btnNextPageHtml) {
- var btn_next = _dom2['default'].create(tf.fltTypeInp, ['id', this.prfxBtnNext + tf.id], ['type', 'button'], ['value', this.btnNextPageText], ['title', 'Next']);
- btn_next.className = this.btnPageCssClass;
- _event2['default'].add(btn_next, 'click', evt.next);
- btnNextSpan.appendChild(btn_next);
- } else {
- btnNextSpan.innerHTML = this.btnNextPageHtml;
- _event2['default'].add(btnNextSpan, 'click', evt.next);
- }
- // Previous button
- if (!this.btnPrevPageHtml) {
- var btn_prev = _dom2['default'].create(tf.fltTypeInp, ['id', this.prfxBtnPrev + tf.id], ['type', 'button'], ['value', this.btnPrevPageText], ['title', 'Previous']);
- btn_prev.className = this.btnPageCssClass;
- _event2['default'].add(btn_prev, 'click', evt.prev);
- btnPrevSpan.appendChild(btn_prev);
- } else {
- btnPrevSpan.innerHTML = this.btnPrevPageHtml;
- _event2['default'].add(btnPrevSpan, 'click', evt.prev);
- }
- // Last button
- if (!this.btnLastPageHtml) {
- var btn_last = _dom2['default'].create(tf.fltTypeInp, ['id', this.prfxBtnLast + tf.id], ['type', 'button'], ['value', this.btnLastPageText], ['title', 'Last']);
- btn_last.className = this.btnPageCssClass;
- _event2['default'].add(btn_last, 'click', evt.last);
- btnLastSpan.appendChild(btn_last);
- } else {
- btnLastSpan.innerHTML = this.btnLastPageHtml;
- _event2['default'].add(btnLastSpan, 'click', evt.last);
- }
- // First button
- if (!this.btnFirstPageHtml) {
- var btn_first = _dom2['default'].create(tf.fltTypeInp, ['id', this.prfxBtnFirst + tf.id], ['type', 'button'], ['value', this.btnFirstPageText], ['title', 'First']);
- btn_first.className = this.btnPageCssClass;
- _event2['default'].add(btn_first, 'click', evt.first);
- btnFirstSpan.appendChild(btn_first);
- } else {
- btnFirstSpan.innerHTML = this.btnFirstPageHtml;
- _event2['default'].add(btnFirstSpan, 'click', evt.first);
- }
- }
-
- // paging elements (buttons+drop-down list) are added to defined element
- if (!this.pagingTgtId) {
- tf.setToolbar();
- }
- var targetEl = !this.pagingTgtId ? tf.mDiv : _dom2['default'].id(this.pagingTgtId);
- targetEl.appendChild(btnFirstSpan);
- targetEl.appendChild(btnPrevSpan);
-
- var pgBeforeSpan = _dom2['default'].create('span', ['id', this.prfxPgBeforeSpan + tf.id]);
- pgBeforeSpan.appendChild(_dom2['default'].text(this.pageText));
- pgBeforeSpan.className = this.nbPgSpanCssClass;
- targetEl.appendChild(pgBeforeSpan);
- targetEl.appendChild(slcPages);
- var pgAfterSpan = _dom2['default'].create('span', ['id', this.prfxPgAfterSpan + tf.id]);
- pgAfterSpan.appendChild(_dom2['default'].text(this.ofText));
- pgAfterSpan.className = this.nbPgSpanCssClass;
- targetEl.appendChild(pgAfterSpan);
- var pgspan = _dom2['default'].create('span', ['id', this.prfxPgSpan + tf.id]);
- pgspan.className = this.nbPgSpanCssClass;
- pgspan.appendChild(_dom2['default'].text(' ' + this.nbPages + ' '));
- targetEl.appendChild(pgspan);
- targetEl.appendChild(btnNextSpan);
- targetEl.appendChild(btnLastSpan);
- this.pagingSlc = _dom2['default'].id(this.prfxSlcPages + tf.id);
-
- if (!tf.rememberGridValues || this.isPagingRemoved) {
- this.setPagingInfo();
- }
- if (!tf.fltGrid) {
- tf.validateAllRows();
- this.setPagingInfo(tf.validRowsIndex);
- }
-
- this.isPagingRemoved = false;
- }
-
- /**
- * Reset paging when filters are already instantiated
- * @param {Boolean} filterTable Execute filtering once paging instanciated
- */
- }, {
- key: 'reset',
- value: function reset() {
- var filterTable = arguments.length <= 0 || arguments[0] === undefined ? false : arguments[0];
-
- var tf = this.tf;
- if (!tf.hasGrid() || tf.paging) {
- return;
- }
- tf.paging = true;
- this.isPagingRemoved = true;
- this.init();
- tf.resetValues();
- if (filterTable) {
- tf.filter();
- }
- }
-
- /**
- * Calculate number of pages based on valid rows
- * Refresh paging select according to number of pages
- * @param {Array} validRows Collection of valid rows
- */
- }, {
- key: 'setPagingInfo',
- value: function setPagingInfo() {
- var validRows = arguments.length <= 0 || arguments[0] === undefined ? [] : arguments[0];
-
- var tf = this.tf;
- var rows = tf.tbl.rows;
- var mdiv = !this.pagingTgtId ? tf.mDiv : _dom2['default'].id(this.pagingTgtId);
- var pgspan = _dom2['default'].id(this.prfxPgSpan + tf.id);
-
- //store valid rows indexes
- tf.validRowsIndex = validRows;
-
- if (validRows.length === 0) {
- //counts rows to be grouped
- for (var j = tf.refRow; j < tf.nbRows; j++) {
- var row = rows[j];
- if (!row) {
- continue;
- }
-
- var isRowValid = row.getAttribute('validRow');
- if (_types2['default'].isNull(isRowValid) || Boolean(isRowValid === 'true')) {
- tf.validRowsIndex.push(j);
- }
- }
- }
-
- //calculate nb of pages
- this.nbPages = Math.ceil(tf.validRowsIndex.length / this.pagingLength);
- //refresh page nb span
- pgspan.innerHTML = this.nbPages;
- //select clearing shortcut
- if (this.pageSelectorType === tf.fltTypeSlc) {
- this.pagingSlc.innerHTML = '';
- }
-
- if (this.nbPages > 0) {
- mdiv.style.visibility = 'visible';
- if (this.pageSelectorType === tf.fltTypeSlc) {
- for (var z = 0; z < this.nbPages; z++) {
- var opt = _dom2['default'].createOpt(z + 1, z * this.pagingLength, false);
- this.pagingSlc.options[z] = opt;
- }
- } else {
- //input type
- this.pagingSlc.value = this.currentPageNb;
- }
- } else {
- /*** if no results paging select and buttons are hidden ***/
- mdiv.style.visibility = 'hidden';
- }
- this.groupByPage(tf.validRowsIndex);
- }
-
- /**
- * Group table rows by page and display valid rows
- * @param {Array} validRows Collection of valid rows
- */
- }, {
- key: 'groupByPage',
- value: function groupByPage(validRows) {
- var tf = this.tf;
- var alternateRows = tf.feature('alternateRows');
- var rows = tf.tbl.rows;
- var endPagingRow = parseInt(this.startPagingRow, 10) + parseInt(this.pagingLength, 10);
-
- //store valid rows indexes
- if (validRows) {
- tf.validRowsIndex = validRows;
- }
-
- //this loop shows valid rows of current page
- for (var h = 0, len = tf.validRowsIndex.length; h < len; h++) {
- var validRowIdx = tf.validRowsIndex[h];
- var r = rows[validRowIdx];
- var isRowValid = r.getAttribute('validRow');
-
- if (h >= this.startPagingRow && h < endPagingRow) {
- if (_types2['default'].isNull(isRowValid) || Boolean(isRowValid === 'true')) {
- r.style.display = '';
- }
- if (tf.alternateBgs && alternateRows) {
- alternateRows.setRowBg(validRowIdx, h);
- }
- } else {
- r.style.display = 'none';
- if (tf.alternateBgs && alternateRows) {
- alternateRows.removeRowBg(validRowIdx);
- }
- }
- }
-
- tf.nbVisibleRows = tf.validRowsIndex.length;
- //re-applies filter behaviours after filtering process
- tf.applyProps();
- }
-
- /**
- * Return the current page number
- * @return {Number} Page number
- */
- }, {
- key: 'getPage',
- value: function getPage() {
- return this.currentPageNb;
- }
-
- /**
- * Show page based on passed param value (string or number):
- * @param {String} or {Number} cmd possible string values: 'next',
- * 'previous', 'last', 'first' or page number as per param
- */
- }, {
- key: 'setPage',
- value: function setPage(cmd) {
- var tf = this.tf;
- if (!tf.hasGrid() || !tf.paging) {
- return;
- }
- var btnEvt = this.evt,
- cmdtype = typeof cmd;
- if (cmdtype === 'string') {
- switch (_string2['default'].lower(cmd)) {
- case 'next':
- btnEvt.next();
- break;
- case 'previous':
- btnEvt.prev();
- break;
- case 'last':
- btnEvt.last();
- break;
- case 'first':
- btnEvt.first();
- break;
- default:
- btnEvt.next();
- break;
- }
- } else if (cmdtype === 'number') {
- this.changePage(cmd - 1);
- }
- }
-
- /**
- * Generates UI elements for the number of results per page drop-down
- */
- }, {
- key: 'setResultsPerPage',
- value: function setResultsPerPage() {
- var _this2 = this;
-
- var tf = this.tf;
- var evt = this.evt;
-
- if (!tf.hasGrid() && !tf.isFirstLoad) {
- return;
- }
- if (this.resultsPerPageSlc || !this.resultsPerPage) {
- return;
- }
-
- evt.slcResultsChange = function (ev) {
- _this2.changeResultsPerPage();
- ev.target.blur();
- };
-
- var slcR = _dom2['default'].create(tf.fltTypeSlc, ['id', this.prfxSlcResults + tf.id]);
- slcR.className = this.resultsSlcCssClass;
- var slcRText = this.resultsPerPage[0],
- slcROpts = this.resultsPerPage[1];
- var slcRSpan = _dom2['default'].create('span', ['id', this.prfxSlcResultsTxt + tf.id]);
- slcRSpan.className = this.resultsSpanCssClass;
-
- // results per page select is added to external element
- if (!this.resultsPerPageTgtId) {
- tf.setToolbar();
- }
- var targetEl = !this.resultsPerPageTgtId ? tf.rDiv : _dom2['default'].id(this.resultsPerPageTgtId);
- slcRSpan.appendChild(_dom2['default'].text(slcRText));
-
- var help = tf.feature('help');
- if (help && help.cont) {
- help.cont.parentNode.insertBefore(slcRSpan, help.cont);
- help.cont.parentNode.insertBefore(slcR, help.cont);
- } else {
- targetEl.appendChild(slcRSpan);
- targetEl.appendChild(slcR);
- }
-
- for (var r = 0; r < slcROpts.length; r++) {
- var currOpt = new Option(slcROpts[r], slcROpts[r], false, false);
- slcR.options[r] = currOpt;
- }
- _event2['default'].add(slcR, 'change', evt.slcResultsChange);
- this.resultsPerPageSlc = slcR;
- }
-
- /**
- * Remove number of results per page UI elements
- */
- }, {
- key: 'removeResultsPerPage',
- value: function removeResultsPerPage() {
- var tf = this.tf;
- if (!tf.hasGrid() || !this.resultsPerPageSlc || !this.resultsPerPage) {
- return;
- }
- var slcR = this.resultsPerPageSlc,
- slcRSpan = _dom2['default'].id(this.prfxSlcResultsTxt + tf.id);
- if (slcR) {
- slcR.parentNode.removeChild(slcR);
- }
- if (slcRSpan) {
- slcRSpan.parentNode.removeChild(slcRSpan);
- }
- this.resultsPerPageSlc = null;
- }
-
- /**
- * Change the page asynchronously according to passed index
- * @param {Number} index Index of the page (0-n)
- */
- }, {
- key: 'changePage',
- value: function changePage(index) {
- var tf = this.tf;
- var evt = tf.Evt;
- tf.EvtManager(evt.name.changepage, { pgIndex: index });
- }
-
- /**
- * Change rows asynchronously according to page results
- */
- }, {
- key: 'changeResultsPerPage',
- value: function changeResultsPerPage() {
- var tf = this.tf;
- var evt = tf.Evt;
- tf.EvtManager(evt.name.changeresultsperpage);
- }
-
- /**
- * Re-set asynchronously page nb at page re-load
- */
- }, {
- key: 'resetPage',
- value: function resetPage() {
- var tf = this.tf;
- var evt = tf.Evt;
- tf.EvtManager(evt.name.resetpage);
- }
-
- /**
- * Re-set asynchronously page length at page re-load
- */
- }, {
- key: 'resetPageLength',
- value: function resetPageLength() {
- var tf = this.tf;
- var evt = tf.Evt;
- tf.EvtManager(evt.name.resetpagelength);
- }
-
- /**
- * Change the page according to passed index
- * @param {Number} index Index of the page (0-n)
- */
- }, {
- key: '_changePage',
- value: function _changePage(index) {
- var tf = this.tf;
-
- if (!tf.paging) {
- return;
- }
- if (index === null) {
- index = this.pageSelectorType === tf.fltTypeSlc ? this.pagingSlc.options.selectedIndex : this.pagingSlc.value - 1;
- }
- if (index >= 0 && index <= this.nbPages - 1) {
- if (this.onBeforeChangePage) {
- this.onBeforeChangePage.call(null, this, index);
- }
- this.currentPageNb = parseInt(index, 10) + 1;
- if (this.pageSelectorType === tf.fltTypeSlc) {
- this.pagingSlc.options[index].selected = true;
- } else {
- this.pagingSlc.value = this.currentPageNb;
- }
-
- if (tf.rememberPageNb) {
- tf.feature('store').savePageNb(tf.pgNbCookie);
- }
- this.startPagingRow = this.pageSelectorType === tf.fltTypeSlc ? this.pagingSlc.value : index * this.pagingLength;
-
- this.groupByPage();
-
- if (this.onAfterChangePage) {
- this.onAfterChangePage.call(null, this, index);
- }
- }
- }
-
- /**
- * Change rows according to page results drop-down
- * TODO: accept a parameter setting the results per page length
- */
- }, {
- key: '_changeResultsPerPage',
- value: function _changeResultsPerPage() {
- var tf = this.tf;
-
- if (!tf.paging) {
- return;
- }
- var slcR = this.resultsPerPageSlc;
- var slcPagesSelIndex = this.pageSelectorType === tf.fltTypeSlc ? this.pagingSlc.selectedIndex : parseInt(this.pagingSlc.value - 1, 10);
- this.pagingLength = parseInt(slcR.options[slcR.selectedIndex].value, 10);
- this.startPagingRow = this.pagingLength * slcPagesSelIndex;
-
- if (!isNaN(this.pagingLength)) {
- if (this.startPagingRow >= tf.nbFilterableRows) {
- this.startPagingRow = tf.nbFilterableRows - this.pagingLength;
- }
- this.setPagingInfo();
-
- if (this.pageSelectorType === tf.fltTypeSlc) {
- var slcIndex = this.pagingSlc.options.length - 1 <= slcPagesSelIndex ? this.pagingSlc.options.length - 1 : slcPagesSelIndex;
- this.pagingSlc.options[slcIndex].selected = true;
- }
- if (tf.rememberPageLen) {
- tf.feature('store').savePageLength(tf.pgLenCookie);
- }
- }
- }
-
- /**
- * Re-set page nb at page re-load
- */
- }, {
- key: '_resetPage',
- value: function _resetPage(name) {
- var tf = this.tf;
- var pgnb = tf.feature('store').getPageNb(name);
- if (pgnb !== '') {
- this.changePage(pgnb - 1);
- }
- }
-
- /**
- * Re-set page length value at page re-load
- */
- }, {
- key: '_resetPageLength',
- value: function _resetPageLength(name) {
- var tf = this.tf;
- if (!tf.paging) {
- return;
- }
- var pglenIndex = tf.feature('store').getPageLength(name);
-
- if (pglenIndex !== '') {
- this.resultsPerPageSlc.options[pglenIndex].selected = true;
- this.changeResultsPerPage();
- }
- }
-
- /**
- * Remove paging feature
- */
- }, {
- key: 'destroy',
- value: function destroy() {
- var tf = this.tf;
-
- if (!tf.hasGrid()) {
- return;
- }
- // btns containers
- var btnNextSpan = _dom2['default'].id(this.prfxBtnNextSpan + tf.id);
- var btnPrevSpan = _dom2['default'].id(this.prfxBtnPrevSpan + tf.id);
- var btnLastSpan = _dom2['default'].id(this.prfxBtnLastSpan + tf.id);
- var btnFirstSpan = _dom2['default'].id(this.prfxBtnFirstSpan + tf.id);
- //span containing 'Page' text
- var pgBeforeSpan = _dom2['default'].id(this.prfxPgBeforeSpan + tf.id);
- //span containing 'of' text
- var pgAfterSpan = _dom2['default'].id(this.prfxPgAfterSpan + tf.id);
- //span containing nb of pages
- var pgspan = _dom2['default'].id(this.prfxPgSpan + tf.id);
-
- var evt = this.evt;
-
- if (this.pagingSlc) {
- if (this.pageSelectorType === tf.fltTypeSlc) {
- _event2['default'].remove(this.pagingSlc, 'change', evt.slcPagesChange);
- } else if (this.pageSelectorType === tf.fltTypeInp) {
- _event2['default'].remove(this.pagingSlc, 'keypress', evt._detectKey);
- }
- this.pagingSlc.parentNode.removeChild(this.pagingSlc);
- }
-
- if (btnNextSpan) {
- _event2['default'].remove(btnNextSpan, 'click', evt.next);
- btnNextSpan.parentNode.removeChild(btnNextSpan);
- }
-
- if (btnPrevSpan) {
- _event2['default'].remove(btnPrevSpan, 'click', evt.prev);
- btnPrevSpan.parentNode.removeChild(btnPrevSpan);
- }
-
- if (btnLastSpan) {
- _event2['default'].remove(btnLastSpan, 'click', evt.last);
- btnLastSpan.parentNode.removeChild(btnLastSpan);
- }
-
- if (btnFirstSpan) {
- _event2['default'].remove(btnFirstSpan, 'click', evt.first);
- btnFirstSpan.parentNode.removeChild(btnFirstSpan);
- }
-
- if (pgBeforeSpan) {
- pgBeforeSpan.parentNode.removeChild(pgBeforeSpan);
- }
-
- if (pgAfterSpan) {
- pgAfterSpan.parentNode.removeChild(pgAfterSpan);
- }
-
- if (pgspan) {
- pgspan.parentNode.removeChild(pgspan);
- }
-
- if (this.hasResultsPerPage) {
- this.removeResultsPerPage();
- }
-
- this.pagingSlc = null;
- this.nbPages = 0;
- this.isPagingRemoved = true;
- tf.paging = false;
- }
- }]);
-
- return Paging;
- })();
-
- exports.Paging = Paging;
-
-/***/ },
-/* 20 */
-/***/ function(module, exports, __webpack_require__) {
-
- '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 _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'); } }
-
- var _dom = __webpack_require__(2);
-
- var _dom2 = _interopRequireDefault(_dom);
-
- var _event = __webpack_require__(1);
-
- var _event2 = _interopRequireDefault(_event);
-
- var ClearButton = (function () {
-
- /**
- * Clear button component
- * @param {Object} tf TableFilter instance
- */
-
- function ClearButton(tf) {
- _classCallCheck(this, ClearButton);
-
- // Configuration object
- var f = tf.config();
-
- //id of container element
- this.btnResetTgtId = f.btn_reset_target_id || null;
- //reset button element
- this.btnResetEl = null;
- //defines reset text
- this.btnResetText = f.btn_reset_text || 'Reset';
- //defines reset button tooltip
- this.btnResetTooltip = f.btn_reset_tooltip || 'Clear filters';
- //defines reset button innerHtml
- this.btnResetHtml = f.btn_reset_html || (!tf.enableIcons ? null : '');
- //span containing reset button
- this.prfxResetSpan = 'resetspan_';
-
- this.tf = tf;
- }
-
- _createClass(ClearButton, [{
- key: 'onClick',
- value: function onClick() {
- this.tf.clearFilters();
- }
-
- /**
- * Build DOM elements
- */
- }, {
- key: 'init',
- value: function init() {
- var _this = this;
-
- var tf = this.tf;
-
- if (!tf.hasGrid() && !tf.isFirstLoad && tf.btnResetEl) {
- return;
- }
-
- var resetspan = _dom2['default'].create('span', ['id', this.prfxResetSpan + tf.id]);
-
- // reset button is added to defined element
- if (!this.btnResetTgtId) {
- tf.setToolbar();
- }
- var targetEl = !this.btnResetTgtId ? tf.rDiv : _dom2['default'].id(this.btnResetTgtId);
- targetEl.appendChild(resetspan);
-
- if (!this.btnResetHtml) {
- var fltreset = _dom2['default'].create('a', ['href', 'javascript:void(0);']);
- fltreset.className = tf.btnResetCssClass;
- fltreset.appendChild(_dom2['default'].text(this.btnResetText));
- resetspan.appendChild(fltreset);
- // fltreset.onclick = this.Evt._Clear;
- _event2['default'].add(fltreset, 'click', function () {
- _this.onClick();
- });
- } else {
- resetspan.innerHTML = this.btnResetHtml;
- var resetEl = resetspan.firstChild;
- // resetEl.onclick = this.Evt._Clear;
- _event2['default'].add(resetEl, 'click', function () {
- _this.onClick();
- });
- }
- this.btnResetEl = resetspan.firstChild;
- }
-
- /**
- * Remove clear button UI
- */
- }, {
- key: 'destroy',
- value: function destroy() {
- var tf = this.tf;
-
- if (!tf.hasGrid() || !this.btnResetEl) {
- return;
- }
-
- var resetspan = _dom2['default'].id(tf.prfxResetSpan + tf.id);
- if (resetspan) {
- resetspan.parentNode.removeChild(resetspan);
- }
- this.btnResetEl = null;
- }
- }]);
-
- return ClearButton;
- })();
-
- exports.ClearButton = ClearButton;
-
-/***/ },
-/* 21 */
-/***/ function(module, exports, __webpack_require__) {
-
- '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 _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'); } }
-
- var _dom = __webpack_require__(2);
-
- var _dom2 = _interopRequireDefault(_dom);
-
- var _event = __webpack_require__(1);
-
- var _event2 = _interopRequireDefault(_event);
-
- var WIKI_URL = 'https://github.com/koalyptus/TableFilter/wiki/' + '4.-Filter-operators';
- var WEBSITE_URL = 'http://koalyptus.github.io/TableFilter/';
-
- var Help = (function () {
-
- /**
- * Help UI component
- * @param {Object} tf TableFilter instance
- */
-
- function Help(tf) {
- _classCallCheck(this, Help);
-
- // Configuration object
- var f = tf.config();
-
- //id of custom container element for instructions
- this.tgtId = f.help_instructions_target_id || null;
- //id of custom container element for instructions
- this.contTgtId = f.help_instructions_container_target_id || null;
- //defines help text
- this.instrText = f.help_instructions_text ? f.help_instructions_text : 'Use the filters above each column to filter and limit table ' + 'data. Advanced searches can be performed by using the following ' + 'operators:
<, <=, >, ' + '>=, =, *, !, {, }, ' + '||,&&, [empty], [nonempty], ' + 'rgx:
' + 'Learn more
';
- //defines help innerHtml
- this.instrHtml = f.help_instructions_html || null;
- //defines reset button text
- this.btnText = f.help_instructions_btn_text || '?';
- //defines reset button innerHtml
- this.btnHtml = f.help_instructions_btn_html || null;
- //defines css class for help button
- this.btnCssClass = f.help_instructions_btn_css_class || 'helpBtn';
- //defines css class for help container
- this.contCssClass = f.help_instructions_container_css_class || 'helpCont';
- //help button element
- this.btn = null;
- //help content div
- this.cont = null;
- this.defaultHtml = '';
-
- //id prefix for help elements
- this.prfxHelpSpan = 'helpSpan_';
- //id prefix for help elements
- this.prfxHelpDiv = 'helpDiv_';
-
- this.tf = tf;
- }
-
- _createClass(Help, [{
- key: 'init',
- value: function init() {
- var _this = this;
-
- if (this.btn) {
- return;
- }
-
- var tf = this.tf;
-
- var helpspan = _dom2['default'].create('span', ['id', this.prfxHelpSpan + tf.id]);
- var helpdiv = _dom2['default'].create('div', ['id', this.prfxHelpDiv + tf.id]);
-
- //help button is added to defined element
- if (!this.tgtId) {
- tf.setToolbar();
- }
- var targetEl = !this.tgtId ? tf.rDiv : _dom2['default'].id(this.tgtId);
- targetEl.appendChild(helpspan);
-
- var divContainer = !this.contTgtId ? helpspan : _dom2['default'].id(this.contTgtId);
-
- if (!this.btnHtml) {
- divContainer.appendChild(helpdiv);
- var helplink = _dom2['default'].create('a', ['href', 'javascript:void(0);']);
- helplink.className = this.btnCssClass;
- helplink.appendChild(_dom2['default'].text(this.btnText));
- helpspan.appendChild(helplink);
- _event2['default'].add(helplink, 'click', function () {
- _this.toggle();
- });
- } else {
- helpspan.innerHTML = this.btnHtml;
- var helpEl = helpspan.firstChild;
- _event2['default'].add(helpEl, 'click', function () {
- _this.toggle();
- });
- divContainer.appendChild(helpdiv);
- }
-
- if (!this.instrHtml) {
- helpdiv.innerHTML = this.instrText;
- helpdiv.className = this.contCssClass;
- _event2['default'].add(helpdiv, 'dblclick', function () {
- _this.toggle();
- });
- } else {
- if (this.contTgtId) {
- divContainer.appendChild(helpdiv);
- }
- helpdiv.innerHTML = this.instrHtml;
- if (!this.contTgtId) {
- helpdiv.className = this.contCssClass;
- _event2['default'].add(helpdiv, 'dblclick', function () {
- _this.toggle();
- });
- }
- }
- helpdiv.innerHTML += this.defaultHtml;
- _event2['default'].add(helpdiv, 'click', function () {
- _this.toggle();
- });
-
- this.cont = helpdiv;
- this.btn = helpspan;
- }
-
- /**
- * Toggle help pop-up
- */
- }, {
- key: 'toggle',
- value: function toggle() {
- if (!this.cont) {
- return;
- }
- var divDisplay = this.cont.style.display;
- if (divDisplay === '' || divDisplay === 'none') {
- this.cont.style.display = 'inline';
- } else {
- this.cont.style.display = 'none';
- }
- }
-
- /**
- * Remove help UI
- */
- }, {
- key: 'destroy',
- value: function destroy() {
- if (!this.btn) {
- return;
- }
- this.btn.parentNode.removeChild(this.btn);
- this.btn = null;
- if (!this.cont) {
- return;
- }
- this.cont.parentNode.removeChild(this.cont);
- this.cont = null;
- }
- }]);
-
- return Help;
- })();
-
- exports.Help = Help;
-
-/***/ },
-/* 22 */
-/***/ function(module, exports, __webpack_require__) {
-
- '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 _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'); } }
-
- var _dom = __webpack_require__(2);
-
- var _dom2 = _interopRequireDefault(_dom);
-
- var AlternateRows = (function () {
-
- /**
- * Alternating rows color
- * @param {Object} tf TableFilter instance
- */
-
- function AlternateRows(tf) {
- _classCallCheck(this, AlternateRows);
-
- var f = tf.config();
- //defines css class for even rows
- this.evenCss = f.even_row_css_class || 'even';
- //defines css class for odd rows
- this.oddCss = f.odd_row_css_class || 'odd';
-
- this.tf = tf;
- }
-
- /**
- * Sets alternating rows color
- */
-
- _createClass(AlternateRows, [{
- key: 'init',
- value: function init() {
- var tf = this.tf;
- if (!tf.hasGrid() && !tf.isFirstLoad) {
- return;
- }
- var validRowsIndex = tf.validRowsIndex;
- var noValidRowsIndex = validRowsIndex === null;
- //1st index
- var beginIndex = noValidRowsIndex ? tf.refRow : 0;
- // nb indexes
- var indexLen = noValidRowsIndex ? tf.nbFilterableRows + beginIndex : validRowsIndex.length;
- var idx = 0;
-
- //alternates bg color
- for (var j = beginIndex; j < indexLen; j++) {
- var rowIdx = noValidRowsIndex ? j : validRowsIndex[j];
- this.setRowBg(rowIdx, idx);
- idx++;
- }
- }
-
- /**
- * Sets row background color
- * @param {Number} rowIdx Row index
- * @param {Number} idx Valid rows collection index needed to calculate bg
- * color
- */
- }, {
- key: 'setRowBg',
- value: function setRowBg(rowIdx, idx) {
- if (!this.tf.alternateBgs || isNaN(rowIdx)) {
- return;
- }
- var rows = this.tf.tbl.rows;
- var i = isNaN(idx) ? rowIdx : idx;
- this.removeRowBg(rowIdx);
-
- _dom2['default'].addClass(rows[rowIdx], i % 2 ? this.evenCss : this.oddCss);
- }
-
- /**
- * Removes row background color
- * @param {Number} idx Row index
- */
- }, {
- key: 'removeRowBg',
- value: function removeRowBg(idx) {
- if (isNaN(idx)) {
- return;
- }
- var rows = this.tf.tbl.rows;
- _dom2['default'].removeClass(rows[idx], this.oddCss);
- _dom2['default'].removeClass(rows[idx], this.evenCss);
- }
-
- /**
- * Removes all alternating backgrounds
- */
- }, {
- key: 'remove',
- value: function remove() {
- if (!this.tf.hasGrid()) {
- return;
- }
- for (var i = this.tf.refRow; i < this.tf.nbRows; i++) {
- this.removeRowBg(i);
- }
- }
- }, {
- key: 'enable',
- value: function enable() {
- this.tf.alternateBgs = true;
- }
- }, {
- key: 'disable',
- value: function disable() {
- this.tf.alternateBgs = false;
- }
- }]);
-
- return AlternateRows;
- })();
-
- exports.AlternateRows = AlternateRows;
-
-/***/ }
-/******/ ])
-});
-;
-//# sourceMappingURL=tablefilter.js.map
\ No newline at end of file
+!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var s=e();for(var i in s)("object"==typeof exports?exports:t)[i]=s[i]}}(this,function(){return function(t){function e(s){if(i[s])return i[s].exports;var a=i[s]={exports:{},id:s,loaded:!1};return t[s].call(a.exports,a,a.exports,e),a.loaded=!0,a.exports}var s=window.webpackJsonp;window.webpackJsonp=function(i,l){for(var n,r,o=0,h=[];o
Learn more
',this.instrHtml=s.help_instructions_html||null,this.btnText=s.help_instructions_btn_text||"?",this.btnHtml=s.help_instructions_btn_html||null,this.btnCssClass=s.help_instructions_btn_css_class||"helpBtn",this.contCssClass=s.help_instructions_container_css_class||"helpCont",this.btn=null,this.cont=null,this.defaultHtml='',this.prfxHelpSpan="helpSpan_",this.prfxHelpDiv="helpDiv_",this.tf=e}return l(t,[{key:"init",value:function(){var t=this;if(!this.btn){var e=this.tf,s=r["default"].create("span",["id",this.prfxHelpSpan+e.id]),i=r["default"].create("div",["id",this.prfxHelpDiv+e.id]);this.tgtId||e.setToolbar();var a=this.tgtId?r["default"].id(this.tgtId):e.rDiv;a.appendChild(s);var l=this.contTgtId?r["default"].id(this.contTgtId):s;if(this.btnHtml){s.innerHTML=this.btnHtml;var n=s.firstChild;h["default"].add(n,"click",function(){t.toggle()}),l.appendChild(i)}else{l.appendChild(i);var o=r["default"].create("a",["href","javascript:void(0);"]);o.className=this.btnCssClass,o.appendChild(r["default"].text(this.btnText)),s.appendChild(o),h["default"].add(o,"click",function(){t.toggle()})}this.instrHtml?(this.contTgtId&&l.appendChild(i),i.innerHTML=this.instrHtml,this.contTgtId||(i.className=this.contCssClass,h["default"].add(i,"dblclick",function(){t.toggle()}))):(i.innerHTML=this.instrText,i.className=this.contCssClass,h["default"].add(i,"dblclick",function(){t.toggle()})),i.innerHTML+=this.defaultHtml,h["default"].add(i,"click",function(){t.toggle()}),this.cont=i,this.btn=s}}},{key:"toggle",value:function(){if(this.cont){var t=this.cont.style.display;""===t||"none"===t?this.cont.style.display="inline":this.cont.style.display="none"}}},{key:"destroy",value:function(){this.btn&&(this.btn.parentNode.removeChild(this.btn),this.btn=null,this.cont&&(this.cont.parentNode.removeChild(this.cont),this.cont=null))}}]),t}();e.Help=f},function(t,e,s){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var l=function(){function t(t,e){for(var s=0;s';
- this.icnCollapseHtml = '
';
- this.defaultText = 'Toggle filters';
-
- //id of container element
- this.targetId = f.target_id || null;
- //enables/disables expand/collapse icon
- this.enableIcon = f.enable_icon === false ? false : true;
- this.btnText = f.btn_text || '';
-
- //defines expand/collapse filters text
- this.collapseBtnHtml = this.enableIcon ? this.icnCollapseHtml + this.btnText : this.btnText || this.defaultText;
- this.expandBtnHtml = this.enableIcon ? this.icnExpandHtml + this.btnText : this.btnText || this.defaultText;
-
- //defines expand/collapse filters button innerHtml
- this.btnHtml = f.btn_html || null;
- //defines css class for expand/collapse filters button
- this.btnCssClass = f.btn_css_class || 'btnExpClpFlt';
- //defines css class span containing expand/collapse filters
- this.contCssClass = f.cont_css_class || 'expClpFlt';
- this.filtersRowIndex = !_types2['default'].isUndef(f.filters_row_index) ? f.filters_row_index : tf.getFiltersRowIndex();
-
- this.visibleAtStart = !_types2['default'].isUndef(f.visible_at_start) ? Boolean(f.visible_at_start) : true;
-
- // Prefix
- this.prfx = 'fltsVis_';
-
- //callback before filters row is shown
- this.onBeforeShow = _types2['default'].isFn(f.on_before_show) ? f.on_before_show : null;
- //callback after filters row is shown
- this.onAfterShow = _types2['default'].isFn(f.on_after_show) ? f.on_after_show : null;
- //callback before filters row is hidden
- this.onBeforeHide = _types2['default'].isFn(f.on_before_hide) ? f.on_before_hide : null;
- //callback after filters row is hidden
- this.onAfterHide = _types2['default'].isFn(f.on_after_hide) ? f.on_after_hide : null;
-
- //Loads extension stylesheet
- tf['import'](f.name + 'Style', tf.stylePath + this.stylesheet, null, 'link');
-
- this.tf = tf;
- }
-
- /**
- * Initialise extension
- */
-
- _createClass(FiltersVisibility, [{
- key: 'init',
- value: function init() {
- if (this.initialized) {
- return;
- }
-
- this.buildUI();
- this.initialized = true;
- }
-
- /**
- * Build UI elements
- */
- }, {
- key: 'buildUI',
- value: function buildUI() {
- var _this = this;
-
- var tf = this.tf;
- var span = _dom2['default'].create('span', ['id', this.prfx + tf.id]);
- span.className = this.contCssClass;
-
- //Container element (rdiv or custom element)
- if (!this.targetId) {
- tf.setToolbar();
- }
- var targetEl = !this.targetId ? tf.rDiv : _dom2['default'].id(this.targetId);
-
- if (!this.targetId) {
- var firstChild = targetEl.firstChild;
- firstChild.parentNode.insertBefore(span, firstChild);
- } else {
- targetEl.appendChild(span);
- }
-
- var btn = undefined;
- if (!this.btnHtml) {
- btn = _dom2['default'].create('a', ['href', 'javascript:void(0);']);
- btn.className = this.btnCssClass;
- btn.title = this.btnText || this.defaultText;
- btn.innerHTML = this.collapseBtnHtml;
- span.appendChild(btn);
- } else {
- //Custom html
- span.innerHTML = this.btnHtml;
- btn = span.firstChild;
- }
-
- _event2['default'].add(btn, 'click', function () {
- return _this.toggle();
- });
-
- this.contEl = span;
- this.btnEl = btn;
-
- if (!this.visibleAtStart) {
- this.toggle();
- }
- }
-
- /**
- * Toggle filters visibility
- */
- }, {
- key: 'toggle',
- value: function toggle() {
- var tf = this.tf;
- var tbl = tf.gridLayout ? tf.feature('gridLayout').headTbl : tf.tbl;
- var fltRow = tbl.rows[this.filtersRowIndex];
- var fltRowDisplay = fltRow.style.display;
-
- if (this.onBeforeShow && fltRowDisplay !== '') {
- this.onBeforeShow.call(this, this);
- }
- if (this.onBeforeHide && fltRowDisplay === '') {
- this.onBeforeHide.call(null, this);
- }
-
- fltRow.style.display = fltRowDisplay === '' ? 'none' : '';
- if (this.enableIcon && !this.btnHtml) {
- this.btnEl.innerHTML = fltRowDisplay === '' ? this.expandBtnHtml : this.collapseBtnHtml;
- }
-
- if (this.onAfterShow && fltRowDisplay !== '') {
- this.onAfterShow.call(null, this);
- }
- if (this.onAfterHide && fltRowDisplay === '') {
- this.onAfterHide.call(null, this);
- }
- }
-
- /**
- * Destroy the UI
- */
- }, {
- key: 'destroy',
- value: function destroy() {
- if (!this.btnEl && !this.contEl) {
- return;
- }
-
- this.btnEl.innerHTML = '';
- this.btnEl.parentNode.removeChild(this.btnEl);
- this.btnEl = null;
-
- this.contEl.innerHTML = '';
- this.contEl.parentNode.removeChild(this.contEl);
- this.contEl = null;
- this.initialized = false;
- }
- }]);
-
- return FiltersVisibility;
- })();
-
- exports['default'] = FiltersVisibility;
- module.exports = exports['default'];
-
-/***/ },
-
-/***/ 29:
-/***/ function(module, exports, __webpack_require__) {
-
- '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 _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'); } }
-
- var _types = __webpack_require__(5);
-
- var _types2 = _interopRequireDefault(_types);
-
- var _dom = __webpack_require__(2);
-
- var _dom2 = _interopRequireDefault(_dom);
-
- var _event = __webpack_require__(1);
-
- var _event2 = _interopRequireDefault(_event);
-
- var _date = __webpack_require__(7);
-
- var _date2 = _interopRequireDefault(_date);
-
- var _helpers = __webpack_require__(8);
-
- var _helpers2 = _interopRequireDefault(_helpers);
-
- var AdapterSortableTable = (function () {
-
- /**
- * SortableTable Adapter module
- * @param {Object} tf TableFilter instance
- */
-
- function AdapterSortableTable(tf, opts) {
- _classCallCheck(this, AdapterSortableTable);
-
- this.initialized = false;
- this.name = opts.name;
- this.desc = opts.description || 'Sortable table';
-
- //indicates if paging is enabled
- this.isPaged = false;
-
- //indicates if tables was sorted
- this.sorted = false;
-
- this.sortTypes = _types2['default'].isArray(opts.types) ? opts.types : [];
- this.sortColAtStart = _types2['default'].isArray(opts.sort_col_at_start) ? opts.sort_col_at_start : null;
- this.asyncSort = Boolean(opts.async_sort);
- this.triggerIds = _types2['default'].isArray(opts.trigger_ids) ? opts.trigger_ids : [];
-
- // edit .sort-arrow.descending / .sort-arrow.ascending in
- // tablefilter.css to reflect any path change
- this.imgPath = opts.images_path || tf.themesPath;
- this.imgBlank = opts.image_blank || 'blank.png';
- this.imgClassName = opts.image_class_name || 'sort-arrow';
- this.imgAscClassName = opts.image_asc_class_name || 'ascending';
- this.imgDescClassName = opts.image_desc_class_name || 'descending';
- //cell attribute storing custom key
- this.customKey = opts.custom_key || 'data-tf-sortKey';
-
- /*** TF additional events ***/
- //additional paging events for alternating background
- // o.Evt._Paging.nextEvt = function(){
- // if(o.sorted && o.alternateBgs) o.Filter();
- // }
- // o.Evt._Paging.prevEvt = o.Evt._Paging.nextEvt;
- // o.Evt._Paging.firstEvt = o.Evt._Paging.nextEvt;
- // o.Evt._Paging.lastEvt = o.Evt._Paging.nextEvt;
- // o.Evt._OnSlcPagesChangeEvt = o.Evt._Paging.nextEvt;
-
- // callback invoked after sort is loaded and instanciated
- this.onSortLoaded = _types2['default'].isFn(opts.on_sort_loaded) ? opts.on_sort_loaded : null;
- // callback invoked before table is sorted
- this.onBeforeSort = _types2['default'].isFn(opts.on_before_sort) ? opts.on_before_sort : null;
- // callback invoked after table is sorted
- this.onAfterSort = _types2['default'].isFn(opts.on_after_sort) ? opts.on_after_sort : null;
-
- this.tf = tf;
- }
-
- //Converters
-
- _createClass(AdapterSortableTable, [{
- key: 'init',
- value: function init() {
- var tf = this.tf;
- var adpt = this;
-
- // SortableTable class sanity check (sortabletable.js)
- if (_types2['default'].isUndef(SortableTable)) {
- throw new Error('SortableTable class not found.');
- }
-
- this.overrideSortableTable();
- this.setSortTypes();
-
- //Column sort at start
- var sortColAtStart = adpt.sortColAtStart;
- if (sortColAtStart) {
- this.stt.sort(sortColAtStart[0], sortColAtStart[1]);
- }
-
- if (this.onSortLoaded) {
- this.onSortLoaded.call(null, tf, this);
- }
-
- /*** SortableTable callbacks ***/
- this.stt.onbeforesort = function () {
- if (adpt.onBeforeSort) {
- adpt.onBeforeSort.call(null, tf, adpt.stt.sortColumn);
- }
-
- /*** sort behaviour for paging ***/
- if (tf.paging) {
- adpt.isPaged = true;
- tf.paging = false;
- tf.feature('paging').destroy();
- }
- };
-
- this.stt.onsort = function () {
- adpt.sorted = true;
-
- //rows alternating bg issue
- // TODO: move into AlternateRows component
- if (tf.alternateBgs) {
- var rows = tf.tbl.rows,
- c = 0;
-
- var setClass = function setClass(row, i, removeOnly) {
- if (_types2['default'].isUndef(removeOnly)) {
- removeOnly = false;
- }
- var altRows = tf.feature('alternateRows'),
- oddCls = altRows.oddCss,
- evenCls = altRows.evenCss;
- _dom2['default'].removeClass(row, oddCls);
- _dom2['default'].removeClass(row, evenCls);
-
- if (!removeOnly) {
- _dom2['default'].addClass(row, i % 2 ? oddCls : evenCls);
- }
- };
-
- for (var i = tf.refRow; i < tf.nbRows; i++) {
- var isRowValid = rows[i].getAttribute('validRow');
- if (tf.paging && rows[i].style.display === '') {
- setClass(rows[i], c);
- c++;
- } else {
- if ((isRowValid === 'true' || isRowValid === null) && rows[i].style.display === '') {
- setClass(rows[i], c);
- c++;
- } else {
- setClass(rows[i], c, true);
- }
- }
- }
- }
- //sort behaviour for paging
- if (adpt.isPaged) {
- var paginator = tf.feature('paging');
- paginator.reset(false);
- paginator.setPage(paginator.getPage());
- adpt.isPaged = false;
- }
-
- if (adpt.onAfterSort) {
- adpt.onAfterSort.call(null, tf, adpt.stt.sortColumn);
- }
- };
-
- this.initialized = true;
- }
-
- /**
- * Sort specified column
- * @param {Number} colIdx Column index
- * @param {Boolean} desc Optional: descending manner
- */
- }, {
- key: 'sortByColumnIndex',
- value: function sortByColumnIndex(colIdx, desc) {
- this.stt.sort(colIdx, desc);
- }
- }, {
- key: 'overrideSortableTable',
- value: function overrideSortableTable() {
- var adpt = this,
- tf = this.tf;
-
- /**
- * Overrides headerOnclick method in order to handle th event
- * @param {Object} e [description]
- */
- SortableTable.prototype.headerOnclick = function (evt) {
- if (!adpt.initialized) {
- return;
- }
-
- // find Header element
- var el = evt.target || evt.srcElement;
-
- while (el.tagName !== 'TD' && el.tagName !== 'TH') {
- el = el.parentNode;
- }
-
- this.sort(SortableTable.msie ? SortableTable.getCellIndex(el) : el.cellIndex);
- };
-
- /**
- * Overrides getCellIndex IE returns wrong cellIndex when columns are
- * hidden
- * @param {Object} oTd TD element
- * @return {Number} Cell index
- */
- SortableTable.getCellIndex = function (oTd) {
- var cells = oTd.parentNode.cells,
- l = cells.length,
- i = undefined;
- for (i = 0; cells[i] != oTd && i < l; i++) {}
- return i;
- };
-
- /**
- * Overrides initHeader in order to handle filters row position
- * @param {Array} oSortTypes
- */
- SortableTable.prototype.initHeader = function (oSortTypes) {
- var stt = this;
- if (!stt.tHead) {
- if (tf.gridLayout) {
- stt.tHead = tf.feature('gridLayout').headTbl.tHead;
- } else {
- return;
- }
- }
-
- stt.headersRow = tf.headersRow;
- var cells = stt.tHead.rows[stt.headersRow].cells;
- stt.sortTypes = oSortTypes || [];
- var l = cells.length;
- var img = undefined,
- c = undefined;
-
- for (var i = 0; i < l; i++) {
- c = cells[i];
- if (stt.sortTypes[i] !== null && stt.sortTypes[i] !== 'None') {
- c.style.cursor = 'pointer';
- img = _dom2['default'].create('img', ['src', adpt.imgPath + adpt.imgBlank]);
- c.appendChild(img);
- if (stt.sortTypes[i] !== null) {
- c.setAttribute('_sortType', stt.sortTypes[i]);
- }
- _event2['default'].add(c, 'click', stt._headerOnclick);
- } else {
- c.setAttribute('_sortType', oSortTypes[i]);
- c._sortType = 'None';
- }
- }
- stt.updateHeaderArrows();
- };
-
- /**
- * Overrides updateHeaderArrows in order to handle arrows indicators
- */
- SortableTable.prototype.updateHeaderArrows = function () {
- var stt = this;
- var cells = undefined,
- l = undefined,
- img = undefined;
-
- // external headers
- if (adpt.asyncSort && adpt.triggerIds.length > 0) {
- var triggers = adpt.triggerIds;
- cells = [];
- l = triggers.length;
- for (var j = 0; j < triggers.length; j++) {
- cells.push(_dom2['default'].id(triggers[j]));
- }
- } else {
- if (!this.tHead) {
- return;
- }
- cells = stt.tHead.rows[stt.headersRow].cells;
- l = cells.length;
- }
- for (var i = 0; i < l; i++) {
- var cellAttr = cells[i].getAttribute('_sortType');
- if (cellAttr !== null && cellAttr !== 'None') {
- img = cells[i].lastChild || cells[i];
- if (img.nodeName.toLowerCase() !== 'img') {
- img = _dom2['default'].create('img', ['src', adpt.imgPath + adpt.imgBlank]);
- cells[i].appendChild(img);
- }
- if (i === stt.sortColumn) {
- img.className = adpt.imgClassName + ' ' + (this.descending ? adpt.imgDescClassName : adpt.imgAscClassName);
- } else {
- img.className = adpt.imgClassName;
- }
- }
- }
- };
-
- /**
- * Overrides getRowValue for custom key value feature
- * @param {Object} oRow Row element
- * @param {String} sType
- * @param {Number} nColumn
- * @return {String}
- */
- SortableTable.prototype.getRowValue = function (oRow, sType, nColumn) {
- var stt = this;
- // if we have defined a custom getRowValue use that
- var sortTypeInfo = stt._sortTypeInfo[sType];
- if (sortTypeInfo && sortTypeInfo.getRowValue) {
- return sortTypeInfo.getRowValue(oRow, nColumn);
- }
- var c = oRow.cells[nColumn];
- var s = SortableTable.getInnerText(c);
- return stt.getValueFromString(s, sType);
- };
-
- /**
- * Overrides getInnerText in order to avoid Firefox unexpected sorting
- * behaviour with untrimmed text elements
- * @param {Object} oNode DOM element
- * @return {String} DOM element inner text
- */
- SortableTable.getInnerText = function (oNode) {
- if (!oNode) {
- return;
- }
- if (oNode.getAttribute(adpt.customKey)) {
- return oNode.getAttribute(adpt.customKey);
- } else {
- return _dom2['default'].getText(oNode);
- }
- };
- }
- }, {
- key: 'addSortType',
- value: function addSortType() {
- var args = arguments;
- SortableTable.prototype.addSortType(args[0], args[1], args[2], args[3]);
- }
- }, {
- key: 'setSortTypes',
- value: function setSortTypes() {
- var _this = this;
-
- var tf = this.tf,
- sortTypes = this.sortTypes,
- _sortTypes = [];
-
- for (var i = 0; i < tf.nbCells; i++) {
- var colType = undefined;
-
- if (sortTypes[i]) {
- colType = sortTypes[i].toLowerCase();
- if (colType === 'none') {
- colType = 'None';
- }
- } else {
- // resolve column types
- if (tf.hasColNbFormat && tf.colNbFormat[i] !== null) {
- colType = tf.colNbFormat[i].toLowerCase();
- } else if (tf.hasColDateType && tf.colDateType[i] !== null) {
- colType = tf.colDateType[i].toLowerCase() + 'date';
- } else {
- colType = 'String';
- }
- }
- _sortTypes.push(colType);
- }
-
- //Public TF method to add sort type
-
- //Custom sort types
- this.addSortType('number', Number);
- this.addSortType('caseinsensitivestring', SortableTable.toUpperCase);
- this.addSortType('date', SortableTable.toDate);
- this.addSortType('string');
- this.addSortType('us', usNumberConverter);
- this.addSortType('eu', euNumberConverter);
- this.addSortType('dmydate', dmyDateConverter);
- this.addSortType('ymddate', ymdDateConverter);
- this.addSortType('mdydate', mdyDateConverter);
- this.addSortType('ddmmmyyyydate', ddmmmyyyyDateConverter);
- this.addSortType('ipaddress', ipAddress, sortIP);
-
- this.stt = new SortableTable(tf.tbl, _sortTypes);
-
- /*** external table headers adapter ***/
- if (this.asyncSort && this.triggerIds.length > 0) {
- (function () {
- var triggers = _this.triggerIds;
- for (var j = 0; j < triggers.length; j++) {
- if (triggers[j] === null) {
- continue;
- }
- var trigger = _dom2['default'].id(triggers[j]);
- if (trigger) {
- trigger.style.cursor = 'pointer';
-
- _event2['default'].add(trigger, 'click', function (evt) {
- var elm = evt.target;
- if (!_this.tf.sort) {
- return;
- }
- _this.stt.asyncSort(triggers.indexOf(elm.id));
- });
- trigger.setAttribute('_sortType', _sortTypes[j]);
- }
- }
- })();
- }
- }
-
- /**
- * Destroy sort
- */
- }, {
- key: 'destroy',
- value: function destroy() {
- var tf = this.tf;
- this.sorted = false;
- this.initialized = false;
- this.stt.destroy();
-
- var ids = tf.getFiltersId();
- for (var idx = 0; idx < ids.length; idx++) {
- var header = tf.getHeaderElement(idx);
- var img = _dom2['default'].tag(header, 'img');
-
- if (img.length === 1) {
- header.removeChild(img[0]);
- }
- }
- }
- }]);
-
- return AdapterSortableTable;
- })();
-
- exports['default'] = AdapterSortableTable;
- function usNumberConverter(s) {
- return _helpers2['default'].removeNbFormat(s, 'us');
- }
- function euNumberConverter(s) {
- return _helpers2['default'].removeNbFormat(s, 'eu');
- }
- function dateConverter(s, format) {
- return _date2['default'].format(s, format);
- }
- function dmyDateConverter(s) {
- return dateConverter(s, 'DMY');
- }
- function mdyDateConverter(s) {
- return dateConverter(s, 'MDY');
- }
- function ymdDateConverter(s) {
- return dateConverter(s, 'YMD');
- }
- function ddmmmyyyyDateConverter(s) {
- return dateConverter(s, 'DDMMMYYYY');
- }
-
- function ipAddress(value) {
- var vals = value.split('.');
- for (var x in vals) {
- var val = vals[x];
- while (3 > val.length) {
- val = '0' + val;
- }
- vals[x] = val;
- }
- return vals.join('.');
- }
-
- function sortIP(a, b) {
- var aa = ipAddress(a.value.toLowerCase());
- var bb = ipAddress(b.value.toLowerCase());
- if (aa == bb) {
- return 0;
- } else if (aa < bb) {
- return -1;
- } else {
- return 1;
- }
- }
- module.exports = exports['default'];
-
-/***/ },
-
-/***/ 30:
-/***/ function(module, exports, __webpack_require__) {
-
- // import 'script!sortabletable';
- 'use strict';
-
- Object.defineProperty(exports, '__esModule', {
- value: true
- });
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
- var _adapterSortabletable = __webpack_require__(29);
-
- var _adapterSortabletable2 = _interopRequireDefault(_adapterSortabletable);
-
- if (!window.SortableTable) {
- __webpack_require__(31);
- }
-
- exports['default'] = _adapterSortabletable2['default'];
- module.exports = exports['default'];
-
-/***/ },
-
-/***/ 31:
-/***/ function(module, exports, __webpack_require__) {
-
- __webpack_require__(32)(__webpack_require__(33)+"\n\n// SCRIPT-LOADER FOOTER\n//# sourceURL=script:///C:/Users/max.guglielmi/Documents/dev/perso/javascript/GitHub/TableFilter/libs/sortabletable.js")
-
-/***/ },
-
-/***/ 32:
-/***/ function(module, exports) {
-
- /*
- MIT License http://www.opensource.org/licenses/mit-license.php
- Author Tobias Koppers @sokra
- */
- module.exports = function(src) {
- if (typeof execScript === "function")
- execScript(src);
- else
- eval.call(null, src);
- }
-
-/***/ },
-
-/***/ 33:
-/***/ function(module, exports) {
-
- module.exports = "/*----------------------------------------------------------------------------\\\r\n| Sortable Table 1.12 |\r\n|-----------------------------------------------------------------------------|\r\n| Created by Erik Arvidsson |\r\n| (http://webfx.eae.net/contact.html#erik) |\r\n| For WebFX (http://webfx.eae.net/) |\r\n|-----------------------------------------------------------------------------|\r\n| A DOM 1 based script that allows an ordinary HTML table to be sortable. |\r\n|-----------------------------------------------------------------------------|\r\n| Copyright (c) 1998 - 2006 Erik Arvidsson |\r\n|-----------------------------------------------------------------------------|\r\n| Licensed under the Apache License, Version 2.0 (the \"License\"); you may not |\r\n| use this file except in compliance with the License. You may obtain a copy |\r\n| of the License at http://www.apache.org/licenses/LICENSE-2.0 |\r\n| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |\r\n| Unless required by applicable law or agreed to in writing, software |\r\n| distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT |\r\n| WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |\r\n| License for the specific language governing permissions and limitations |\r\n| under the License. |\r\n|-----------------------------------------------------------------------------|\r\n| 2003-01-10 | First version |\r\n| 2003-01-19 | Minor changes to the date parsing |\r\n| 2003-01-28 | JScript 5.0 fixes (no support for 'in' operator) |\r\n| 2003-02-01 | Sloppy typo like error fixed in getInnerText |\r\n| 2003-07-04 | Added workaround for IE cellIndex bug. |\r\n| 2003-11-09 | The bDescending argument to sort was not correctly working |\r\n| | Using onclick DOM0 event if no support for addEventListener |\r\n| | or attachEvent |\r\n| 2004-01-13 | Adding addSortType and removeSortType which makes it a lot |\r\n| | easier to add new, custom sort types. |\r\n| 2004-01-27 | Switch to use descending = false as the default sort order. |\r\n| | Change defaultDescending to suit your needs. |\r\n| 2004-03-14 | Improved sort type None look and feel a bit |\r\n| 2004-08-26 | Made the handling of tBody and tHead more flexible. Now you |\r\n| | can use another tHead or no tHead, and you can chose some |\r\n| | other tBody. |\r\n| 2006-04-25 | Changed license to Apache Software License 2.0 |\r\n|-----------------------------------------------------------------------------|\r\n| Created 2003-01-10 | All changes are in the log above. | Updated 2006-04-25 |\r\n\\----------------------------------------------------------------------------*/\r\n\r\n\r\nfunction SortableTable(oTable, oSortTypes) {\r\n\r\n\tthis.sortTypes = oSortTypes || [];\r\n\r\n\tthis.sortColumn = null;\r\n\tthis.descending = null;\r\n\r\n\tvar oThis = this;\r\n\tthis._headerOnclick = function (e) {\r\n\t\toThis.headerOnclick(e);\r\n\t};\r\n\r\n\tif (oTable) {\r\n\t\tthis.setTable( oTable );\r\n\t\tthis.document = oTable.ownerDocument || oTable.document;\r\n\t}\r\n\telse {\r\n\t\tthis.document = document;\r\n\t}\r\n\r\n\r\n\t// only IE needs this\r\n\tvar win = this.document.defaultView || this.document.parentWindow;\r\n\tthis._onunload = function () {\r\n\t\toThis.destroy();\r\n\t};\r\n\tif (win && typeof win.attachEvent != \"undefined\") {\r\n\t\twin.attachEvent(\"onunload\", this._onunload);\r\n\t}\r\n}\r\n\r\nSortableTable.gecko = navigator.product == \"Gecko\";\r\nSortableTable.msie = /msie/i.test(navigator.userAgent);\r\n// Mozilla is faster when doing the DOM manipulations on\r\n// an orphaned element. MSIE is not\r\nSortableTable.removeBeforeSort = SortableTable.gecko;\r\n\r\nSortableTable.prototype.onsort = function () {};\r\n\r\n// default sort order. true -> descending, false -> ascending\r\nSortableTable.prototype.defaultDescending = false;\r\n\r\n// shared between all instances. This is intentional to allow external files\r\n// to modify the prototype\r\nSortableTable.prototype._sortTypeInfo = {};\r\n\r\nSortableTable.prototype.setTable = function (oTable) {\r\n\tif ( this.tHead )\r\n\t\tthis.uninitHeader();\r\n\tthis.element = oTable;\r\n\tthis.setTHead( oTable.tHead );\r\n\tthis.setTBody( oTable.tBodies[0] );\r\n};\r\n\r\nSortableTable.prototype.setTHead = function (oTHead) {\r\n\tif (this.tHead && this.tHead != oTHead )\r\n\t\tthis.uninitHeader();\r\n\tthis.tHead = oTHead;\r\n\tthis.initHeader( this.sortTypes );\r\n};\r\n\r\nSortableTable.prototype.setTBody = function (oTBody) {\r\n\tthis.tBody = oTBody;\r\n};\r\n\r\nSortableTable.prototype.setSortTypes = function ( oSortTypes ) {\r\n\tif ( this.tHead )\r\n\t\tthis.uninitHeader();\r\n\tthis.sortTypes = oSortTypes || [];\r\n\tif ( this.tHead )\r\n\t\tthis.initHeader( this.sortTypes );\r\n};\r\n\r\n// adds arrow containers and events\r\n// also binds sort type to the header cells so that reordering columns does\r\n// not break the sort types\r\nSortableTable.prototype.initHeader = function (oSortTypes) {\r\n\tif (!this.tHead) return;\r\n\tvar cells = this.tHead.rows[0].cells;\r\n\tvar doc = this.tHead.ownerDocument || this.tHead.document;\r\n\tthis.sortTypes = oSortTypes || [];\r\n\tvar l = cells.length;\r\n\tvar img, c;\r\n\tfor (var i = 0; i < l; i++) {\r\n\t\tc = cells[i];\r\n\t\tif (this.sortTypes[i] != null && this.sortTypes[i] != \"None\") {\r\n\t\t\timg = doc.createElement(\"IMG\");\r\n\t\t\timg.src = \"images/blank.png\";\r\n\t\t\tc.appendChild(img);\r\n\t\t\tif (this.sortTypes[i] != null)\r\n\t\t\t\tc._sortType = this.sortTypes[i];\r\n\t\t\tif (typeof c.addEventListener != \"undefined\")\r\n\t\t\t\tc.addEventListener(\"click\", this._headerOnclick, false);\r\n\t\t\telse if (typeof c.attachEvent != \"undefined\")\r\n\t\t\t\tc.attachEvent(\"onclick\", this._headerOnclick);\r\n\t\t\telse\r\n\t\t\t\tc.onclick = this._headerOnclick;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tc.setAttribute( \"_sortType\", oSortTypes[i] );\r\n\t\t\tc._sortType = \"None\";\r\n\t\t}\r\n\t}\r\n\tthis.updateHeaderArrows();\r\n};\r\n\r\n// remove arrows and events\r\nSortableTable.prototype.uninitHeader = function () {\r\n\tif (!this.tHead) return;\r\n\tvar cells = this.tHead.rows[0].cells;\r\n\tvar l = cells.length;\r\n\tvar c;\r\n\tfor (var i = 0; i < l; i++) {\r\n\t\tc = cells[i];\r\n\t\tif (c._sortType != null && c._sortType != \"None\") {\r\n\t\t\tc.removeChild(c.lastChild);\r\n\t\t\tif (typeof c.removeEventListener != \"undefined\")\r\n\t\t\t\tc.removeEventListener(\"click\", this._headerOnclick, false);\r\n\t\t\telse if (typeof c.detachEvent != \"undefined\")\r\n\t\t\t\tc.detachEvent(\"onclick\", this._headerOnclick);\r\n\t\t\tc._sortType = null;\r\n\t\t\tc.removeAttribute( \"_sortType\" );\r\n\t\t}\r\n\t}\r\n};\r\n\r\nSortableTable.prototype.updateHeaderArrows = function () {\r\n\tif (!this.tHead) return;\r\n\tvar cells = this.tHead.rows[0].cells;\r\n\tvar l = cells.length;\r\n\tvar img;\r\n\tfor (var i = 0; i < l; i++) {\r\n\t\tif (cells[i]._sortType != null && cells[i]._sortType != \"None\") {\r\n\t\t\timg = cells[i].lastChild;\r\n\t\t\tif (i == this.sortColumn)\r\n\t\t\t\timg.className = \"sort-arrow \" + (this.descending ? \"descending\" : \"ascending\");\r\n\t\t\telse\r\n\t\t\t\timg.className = \"sort-arrow\";\r\n\t\t}\r\n\t}\r\n};\r\n\r\nSortableTable.prototype.headerOnclick = function (e) {\r\n\t// find TD element\r\n\tvar el = e.target || e.srcElement;\r\n\twhile (el.tagName != \"TD\")\r\n\t\tel = el.parentNode;\r\n\r\n\tthis.sort(SortableTable.msie ? SortableTable.getCellIndex(el) : el.cellIndex);\r\n};\r\n\r\n// IE returns wrong cellIndex when columns are hidden\r\nSortableTable.getCellIndex = function (oTd) {\r\n\tvar cells = oTd.parentNode.childNodes\r\n\tvar l = cells.length;\r\n\tvar i;\r\n\tfor (i = 0; cells[i] != oTd && i < l; i++)\r\n\t\t;\r\n\treturn i;\r\n};\r\n\r\nSortableTable.prototype.getSortType = function (nColumn) {\r\n\treturn this.sortTypes[nColumn] || \"String\";\r\n};\r\n\r\n// only nColumn is required\r\n// if bDescending is left out the old value is taken into account\r\n// if sSortType is left out the sort type is found from the sortTypes array\r\n\r\nSortableTable.prototype.sort = function (nColumn, bDescending, sSortType) {\r\n\tif (!this.tBody) return;\r\n\tif (sSortType == null)\r\n\t\tsSortType = this.getSortType(nColumn);\r\n\r\n\t// exit if None\r\n\tif (sSortType == \"None\")\r\n\t\treturn;\r\n\r\n\tif (bDescending == null) {\r\n\t\tif (this.sortColumn != nColumn)\r\n\t\t\tthis.descending = this.defaultDescending;\r\n\t\telse\r\n\t\t\tthis.descending = !this.descending;\r\n\t}\r\n\telse\r\n\t\tthis.descending = bDescending;\r\n\r\n\tthis.sortColumn = nColumn;\r\n\r\n\tif (typeof this.onbeforesort == \"function\")\r\n\t\tthis.onbeforesort();\r\n\r\n\tvar f = this.getSortFunction(sSortType, nColumn);\r\n\tvar a = this.getCache(sSortType, nColumn);\r\n\tvar tBody = this.tBody;\r\n\r\n\ta.sort(f);\r\n\r\n\tif (this.descending)\r\n\t\ta.reverse();\r\n\r\n\tif (SortableTable.removeBeforeSort) {\r\n\t\t// remove from doc\r\n\t\tvar nextSibling = tBody.nextSibling;\r\n\t\tvar p = tBody.parentNode;\r\n\t\tp.removeChild(tBody);\r\n\t}\r\n\r\n\t// insert in the new order\r\n\tvar l = a.length;\r\n\tfor (var i = 0; i < l; i++)\r\n\t\ttBody.appendChild(a[i].element);\r\n\r\n\tif (SortableTable.removeBeforeSort) {\r\n\t\t// insert into doc\r\n\t\tp.insertBefore(tBody, nextSibling);\r\n\t}\r\n\r\n\tthis.updateHeaderArrows();\r\n\r\n\tthis.destroyCache(a);\r\n\r\n\tif (typeof this.onsort == \"function\")\r\n\t\tthis.onsort();\r\n};\r\n\r\nSortableTable.prototype.asyncSort = function (nColumn, bDescending, sSortType) {\r\n\tvar oThis = this;\r\n\tthis._asyncsort = function () {\r\n\t\toThis.sort(nColumn, bDescending, sSortType);\r\n\t};\r\n\twindow.setTimeout(this._asyncsort, 1);\r\n};\r\n\r\nSortableTable.prototype.getCache = function (sType, nColumn) {\r\n\tif (!this.tBody) return [];\r\n\tvar rows = this.tBody.rows;\r\n\tvar l = rows.length;\r\n\tvar a = new Array(l);\r\n\tvar r;\r\n\tfor (var i = 0; i < l; i++) {\r\n\t\tr = rows[i];\r\n\t\ta[i] = {\r\n\t\t\tvalue:\t\tthis.getRowValue(r, sType, nColumn),\r\n\t\t\telement:\tr\r\n\t\t};\r\n\t};\r\n\treturn a;\r\n};\r\n\r\nSortableTable.prototype.destroyCache = function (oArray) {\r\n\tvar l = oArray.length;\r\n\tfor (var i = 0; i < l; i++) {\r\n\t\toArray[i].value = null;\r\n\t\toArray[i].element = null;\r\n\t\toArray[i] = null;\r\n\t}\r\n};\r\n\r\nSortableTable.prototype.getRowValue = function (oRow, sType, nColumn) {\r\n\t// if we have defined a custom getRowValue use that\r\n\tif (this._sortTypeInfo[sType] && this._sortTypeInfo[sType].getRowValue)\r\n\t\treturn this._sortTypeInfo[sType].getRowValue(oRow, nColumn);\r\n\r\n\tvar s;\r\n\tvar c = oRow.cells[nColumn];\r\n\tif (typeof c.innerText != \"undefined\")\r\n\t\ts = c.innerText;\r\n\telse\r\n\t\ts = SortableTable.getInnerText(c);\r\n\treturn this.getValueFromString(s, sType);\r\n};\r\n\r\nSortableTable.getInnerText = function (oNode) {\r\n\tvar s = \"\";\r\n\tvar cs = oNode.childNodes;\r\n\tvar l = cs.length;\r\n\tfor (var i = 0; i < l; i++) {\r\n\t\tswitch (cs[i].nodeType) {\r\n\t\t\tcase 1: //ELEMENT_NODE\r\n\t\t\t\ts += SortableTable.getInnerText(cs[i]);\r\n\t\t\t\tbreak;\r\n\t\t\tcase 3:\t//TEXT_NODE\r\n\t\t\t\ts += cs[i].nodeValue;\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\treturn s;\r\n};\r\n\r\nSortableTable.prototype.getValueFromString = function (sText, sType) {\r\n\tif (this._sortTypeInfo[sType])\r\n\t\treturn this._sortTypeInfo[sType].getValueFromString( sText );\r\n\treturn sText;\r\n\t/*\r\n\tswitch (sType) {\r\n\t\tcase \"Number\":\r\n\t\t\treturn Number(sText);\r\n\t\tcase \"CaseInsensitiveString\":\r\n\t\t\treturn sText.toUpperCase();\r\n\t\tcase \"Date\":\r\n\t\t\tvar parts = sText.split(\"-\");\r\n\t\t\tvar d = new Date(0);\r\n\t\t\td.setFullYear(parts[0]);\r\n\t\t\td.setDate(parts[2]);\r\n\t\t\td.setMonth(parts[1] - 1);\r\n\t\t\treturn d.valueOf();\r\n\t}\r\n\treturn sText;\r\n\t*/\r\n\t};\r\n\r\nSortableTable.prototype.getSortFunction = function (sType, nColumn) {\r\n\tif (this._sortTypeInfo[sType])\r\n\t\treturn this._sortTypeInfo[sType].compare;\r\n\treturn SortableTable.basicCompare;\r\n};\r\n\r\nSortableTable.prototype.destroy = function () {\r\n\tthis.uninitHeader();\r\n\tvar win = this.document.parentWindow;\r\n\tif (win && typeof win.detachEvent != \"undefined\") {\t// only IE needs this\r\n\t\twin.detachEvent(\"onunload\", this._onunload);\r\n\t}\r\n\tthis._onunload = null;\r\n\tthis.element = null;\r\n\tthis.tHead = null;\r\n\tthis.tBody = null;\r\n\tthis.document = null;\r\n\tthis._headerOnclick = null;\r\n\tthis.sortTypes = null;\r\n\tthis._asyncsort = null;\r\n\tthis.onsort = null;\r\n};\r\n\r\n// Adds a sort type to all instance of SortableTable\r\n// sType : String - the identifier of the sort type\r\n// fGetValueFromString : function ( s : string ) : T - A function that takes a\r\n// string and casts it to a desired format. If left out the string is just\r\n// returned\r\n// fCompareFunction : function ( n1 : T, n2 : T ) : Number - A normal JS sort\r\n// compare function. Takes two values and compares them. If left out less than,\r\n// <, compare is used\r\n// fGetRowValue : function( oRow : HTMLTRElement, nColumn : int ) : T - A function\r\n// that takes the row and the column index and returns the value used to compare.\r\n// If left out then the innerText is first taken for the cell and then the\r\n// fGetValueFromString is used to convert that string the desired value and type\r\n\r\nSortableTable.prototype.addSortType = function (sType, fGetValueFromString, fCompareFunction, fGetRowValue) {\r\n\tthis._sortTypeInfo[sType] = {\r\n\t\ttype:\t\t\t\tsType,\r\n\t\tgetValueFromString:\tfGetValueFromString || SortableTable.idFunction,\r\n\t\tcompare:\t\t\tfCompareFunction || SortableTable.basicCompare,\r\n\t\tgetRowValue:\t\tfGetRowValue\r\n\t};\r\n};\r\n\r\n// this removes the sort type from all instances of SortableTable\r\nSortableTable.prototype.removeSortType = function (sType) {\r\n\tdelete this._sortTypeInfo[sType];\r\n};\r\n\r\nSortableTable.basicCompare = function compare(n1, n2) {\r\n\tif (n1.value < n2.value)\r\n\t\treturn -1;\r\n\tif (n2.value < n1.value)\r\n\t\treturn 1;\r\n\treturn 0;\r\n};\r\n\r\nSortableTable.idFunction = function (x) {\r\n\treturn x;\r\n};\r\n\r\nSortableTable.toUpperCase = function (s) {\r\n\treturn s.toUpperCase();\r\n};\r\n\r\nSortableTable.toDate = function (s) {\r\n\tvar parts = s.split(\"-\");\r\n\tvar d = new Date(0);\r\n\td.setFullYear(parts[0]);\r\n\td.setDate(parts[2]);\r\n\td.setMonth(parts[1] - 1);\r\n\treturn d.valueOf();\r\n};\r\n\r\n\r\n// add sort types\r\nSortableTable.prototype.addSortType(\"Number\", Number);\r\nSortableTable.prototype.addSortType(\"CaseInsensitiveString\", SortableTable.toUpperCase);\r\nSortableTable.prototype.addSortType(\"Date\", SortableTable.toDate);\r\nSortableTable.prototype.addSortType(\"String\");\r\n// None is a special case\r\n"
-
-/***/ }
-
-});
-//# sourceMappingURL=tf-1.js.map
\ No newline at end of file
+webpackJsonp([1],{23:function(t,e,s){function i(t){return s(n(t))}function n(t){return l[t]||function(){throw new Error("Cannot find module '"+t+"'.")}()}var l={"./array":6,"./array.js":6,"./cookie":4,"./cookie.js":4,"./date":7,"./date.js":7,"./dom":2,"./dom.js":2,"./event":1,"./event.js":1,"./extensions/advancedGrid/adapterEzEditTable":24,"./extensions/advancedGrid/adapterEzEditTable.js":24,"./extensions/advancedGrid/advancedGrid":25,"./extensions/advancedGrid/advancedGrid.js":25,"./extensions/colOps/colOps":26,"./extensions/colOps/colOps.js":26,"./extensions/colsVisibility/colsVisibility":27,"./extensions/colsVisibility/colsVisibility.js":27,"./extensions/filtersVisibility/filtersVisibility":28,"./extensions/filtersVisibility/filtersVisibility.js":28,"./extensions/sort/adapterSortabletable":29,"./extensions/sort/adapterSortabletable.js":29,"./extensions/sort/sort":30,"./extensions/sort/sort.js":30,"./helpers":8,"./helpers.js":8,"./modules/alternateRows":22,"./modules/alternateRows.js":22,"./modules/checkList":16,"./modules/checkList.js":16,"./modules/clearButton":20,"./modules/clearButton.js":20,"./modules/dropdown":14,"./modules/dropdown.js":14,"./modules/gridLayout":10,"./modules/gridLayout.js":10,"./modules/help":21,"./modules/help.js":21,"./modules/highlightKeywords":12,"./modules/highlightKeywords.js":12,"./modules/loader":11,"./modules/loader.js":11,"./modules/paging":19,"./modules/paging.js":19,"./modules/popupFilter":13,"./modules/popupFilter.js":13,"./modules/rowsCounter":17,"./modules/rowsCounter.js":17,"./modules/statusBar":18,"./modules/statusBar.js":18,"./modules/store":9,"./modules/store.js":9,"./sort":15,"./sort.js":15,"./string":3,"./string.js":3,"./types":5,"./types.js":5};i.keys=function(){return Object.keys(l)},i.resolve=n,t.exports=i,i.id=23},24:function(t,e,s){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var l=function(){function t(t,e){for(var s=0;s
',this.defaultText="Toggle filters",this.targetId=s.target_id||null,this.enableIcon=s.enable_icon===!1?!1:!0,this.btnText=s.btn_text||"",this.collapseBtnHtml=this.enableIcon?this.icnCollapseHtml+this.btnText:this.btnText||this.defaultText,this.expandBtnHtml=this.enableIcon?this.icnExpandHtml+this.btnText:this.btnText||this.defaultText,this.btnHtml=s.btn_html||null,this.btnCssClass=s.btn_css_class||"btnExpClpFlt",this.contCssClass=s.cont_css_class||"expClpFlt",this.filtersRowIndex=h["default"].isUndef(s.filters_row_index)?e.getFiltersRowIndex():s.filters_row_index,this.visibleAtStart=h["default"].isUndef(s.visible_at_start)?!0:Boolean(s.visible_at_start),this.prfx="fltsVis_",this.onBeforeShow=h["default"].isFn(s.on_before_show)?s.on_before_show:null,this.onAfterShow=h["default"].isFn(s.on_after_show)?s.on_after_show:null,this.onBeforeHide=h["default"].isFn(s.on_before_hide)?s.on_before_hide:null,this.onAfterHide=h["default"].isFn(s.on_after_hide)?s.on_after_hide:null,e["import"](s.name+"Style",e.stylePath+this.stylesheet,null,"link"),this.tf=e}return l(t,[{key:"init",value:function(){this.initialized||(this.buildUI(),this.initialized=!0)}},{key:"buildUI",value:function(){var t=this,e=this.tf,s=r["default"].create("span",["id",this.prfx+e.id]);s.className=this.contCssClass,this.targetId||e.setToolbar();var i=this.targetId?r["default"].id(this.targetId):e.rDiv;if(this.targetId)i.appendChild(s);else{var n=i.firstChild;n.parentNode.insertBefore(s,n)}var l=void 0;this.btnHtml?(s.innerHTML=this.btnHtml,l=s.firstChild):(l=r["default"].create("a",["href","javascript:void(0);"]),l.className=this.btnCssClass,l.title=this.btnText||this.defaultText,l.innerHTML=this.collapseBtnHtml,s.appendChild(l)),u["default"].add(l,"click",function(){return t.toggle()}),this.contEl=s,this.btnEl=l,this.visibleAtStart||this.toggle()}},{key:"toggle",value:function(){var t=this.tf,e=t.gridLayout?t.feature("gridLayout").headTbl:t.tbl,s=e.rows[this.filtersRowIndex],i=s.style.display;this.onBeforeShow&&""!==i&&this.onBeforeShow.call(this,this),this.onBeforeHide&&""===i&&this.onBeforeHide.call(null,this),s.style.display=""===i?"none":"",this.enableIcon&&!this.btnHtml&&(this.btnEl.innerHTML=""===i?this.expandBtnHtml:this.collapseBtnHtml),this.onAfterShow&&""!==i&&this.onAfterShow.call(null,this),this.onAfterHide&&""===i&&this.onAfterHide.call(null,this)}},{key:"destroy",value:function(){(this.btnEl||this.contEl)&&(this.btnEl.innerHTML="",this.btnEl.parentNode.removeChild(this.btnEl),this.btnEl=null,this.contEl.innerHTML="",this.contEl.parentNode.removeChild(this.contEl),this.contEl=null,this.initialized=!1)}}]),t}();e["default"]=c,t.exports=e["default"]},29:function(t,e,s){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function l(t){return x["default"].removeNbFormat(t,"us")}function a(t){return x["default"].removeNbFormat(t,"eu")}function r(t,e){return w["default"].format(t,e)}function o(t){return r(t,"DMY")}function h(t){return r(t,"MDY")}function d(t){return r(t,"YMD")}function u(t){return r(t,"DDMMMYYYY")}function c(t){var e=t.split(".");for(var s in e){for(var i=e[s];3>i.length;)i="0"+i;e[s]=i}return e.join(".")}function f(t,e){var s=c(t.value.toLowerCase()),i=c(e.value.toLowerCase());return s==i?0:i>s?-1:1}Object.defineProperty(e,"__esModule",{value:!0});var p=function(){function t(t,e){for(var s=0;s