mirror of
https://github.com/koalyptus/TableFilter.git
synced 2024-05-03 15:13:15 +02:00
Re-refactored number type
This commit is contained in:
parent
a0707554bb
commit
7ecb53a701
404
dist/tablefilter/tablefilter.js
vendored
404
dist/tablefilter/tablefilter.js
vendored
|
@ -126,9 +126,9 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
|
||||
var _root = __webpack_require__(2);
|
||||
|
||||
var _emitter = __webpack_require__(8);
|
||||
var _emitter = __webpack_require__(7);
|
||||
|
||||
var _gridLayout = __webpack_require__(9);
|
||||
var _gridLayout = __webpack_require__(8);
|
||||
|
||||
var _loader = __webpack_require__(11);
|
||||
|
||||
|
@ -158,7 +158,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
|
||||
var _dateType = __webpack_require__(29);
|
||||
|
||||
var _const = __webpack_require__(7);
|
||||
var _const = __webpack_require__(10);
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
|
@ -1948,8 +1948,8 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
// search args re-init
|
||||
var searchArgs = this.getFiltersValue();
|
||||
|
||||
var numCellData = void 0;
|
||||
var nbFormat = void 0;
|
||||
var numData = void 0;
|
||||
var nbFormat = this.decimalSeparator;
|
||||
var re_le = new RegExp(this.leOperator),
|
||||
re_ge = new RegExp(this.geOperator),
|
||||
re_l = new RegExp(this.lwOperator),
|
||||
|
@ -2091,37 +2091,54 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
}
|
||||
} else {
|
||||
//first numbers need to be unformatted
|
||||
if (this.hasType(colIdx, [_const.NUMBER])) {
|
||||
numCellData = Number(cellData);
|
||||
} else if (this.hasType(colIdx, [_const.FORMATTED_NUMBER, _const.FORMATTED_NUMBER_EU])) {
|
||||
numCellData = (0, _number.unformat)(cellData, this.colTypes[colIdx]);
|
||||
nbFormat = this.colTypes[colIdx];
|
||||
} else {
|
||||
if (this.thousandsSeparator === ',' && this.decimalSeparator === '.') {
|
||||
nbFormat = _const.FORMATTED_NUMBER;
|
||||
} else {
|
||||
nbFormat = _const.FORMATTED_NUMBER_EU;
|
||||
// if (this.hasType(colIdx, [NUMBER])) {
|
||||
// numData = Number(cellData);
|
||||
// }
|
||||
// else if (this.hasType(colIdx,
|
||||
// [FORMATTED_NUMBER, FORMATTED_NUMBER_EU])) {
|
||||
// numData =unformatNb(cellData, this.colTypes[colIdx]);
|
||||
// nbFormat = this.colTypes[colIdx];
|
||||
// } else {
|
||||
// if (this.thousandsSeparator === ',' &&
|
||||
// this.decimalSeparator === '.') {
|
||||
// nbFormat = FORMATTED_NUMBER;
|
||||
// } else {
|
||||
// nbFormat = FORMATTED_NUMBER_EU;
|
||||
// }
|
||||
// numData = unformatNb(cellData, nbFormat);
|
||||
// }
|
||||
|
||||
if (this.hasType(colIdx, [_const.NUMBER
|
||||
/*, FORMATTED_NUMBER, FORMATTED_NUMBER_EU*/])) {
|
||||
var colType = this.colTypes[colIdx];
|
||||
if (colType.hasOwnProperty('decimal')) {
|
||||
nbFormat = colType.decimal;
|
||||
}
|
||||
numCellData = (0, _number.unformat)(cellData, nbFormat);
|
||||
// numData = Number(cellData) ||parseNb(cellData, nbFormat);
|
||||
}
|
||||
// else {
|
||||
// numData = Number(cellData) ||
|
||||
// parseNb(cellData, tf.decimalSeparator);
|
||||
// }
|
||||
numData = Number(cellData) || (0, _number.parse)(cellData, nbFormat);
|
||||
|
||||
// first checks if there is any operator (<,>,<=,>=,!,*,=,{,},
|
||||
// rgx:)
|
||||
// lower equal
|
||||
if (hasLE) {
|
||||
occurence = numCellData <= (0, _number.unformat)(sA.replace(re_le, ''), nbFormat);
|
||||
occurence = numData <= (0, _number.parse)(sA.replace(re_le, ''), nbFormat);
|
||||
}
|
||||
//greater equal
|
||||
else if (hasGE) {
|
||||
occurence = numCellData >= (0, _number.unformat)(sA.replace(re_ge, ''), nbFormat);
|
||||
occurence = numData >= (0, _number.parse)(sA.replace(re_ge, ''), nbFormat);
|
||||
}
|
||||
//lower
|
||||
else if (hasLO) {
|
||||
occurence = numCellData < (0, _number.unformat)(sA.replace(re_l, ''), nbFormat);
|
||||
occurence = numData < (0, _number.parse)(sA.replace(re_l, ''), nbFormat);
|
||||
}
|
||||
//greater
|
||||
else if (hasGR) {
|
||||
occurence = numCellData > (0, _number.unformat)(sA.replace(re_g, ''), nbFormat);
|
||||
occurence = numData > (0, _number.parse)(sA.replace(re_g, ''), nbFormat);
|
||||
}
|
||||
//different
|
||||
else if (hasDF) {
|
||||
|
@ -2166,12 +2183,12 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
} else {
|
||||
// If numeric type data, perform a strict equality test and
|
||||
// fallback to unformatted number string comparison
|
||||
if (numCellData && this.hasType(colIdx, [_const.NUMBER, _const.FORMATTED_NUMBER, _const.FORMATTED_NUMBER_EU]) && !this.singleSearchFlt) {
|
||||
// unformatNb can return 0 for strings which are not
|
||||
if (numData && this.hasType(colIdx, [_const.NUMBER]) && !this.singleSearchFlt) {
|
||||
// parseNb can return 0 for strings which are not
|
||||
// formatted numbers, in that case return the original
|
||||
// string. TODO: handle this in unformatNb
|
||||
sA = (0, _number.unformat)(sA, nbFormat) || sA;
|
||||
occurence = numCellData === sA || (0, _string.contains)(sA.toString(), numCellData.toString(), this.isExactMatch(colIdx), this.caseSensitive);
|
||||
// string. TODO: handle this in parseNb
|
||||
sA = (0, _number.parse)(sA, nbFormat) || sA;
|
||||
occurence = numData === sA || (0, _string.contains)(sA.toString(), numData.toString(), this.isExactMatch(colIdx), this.caseSensitive);
|
||||
} else {
|
||||
// Finally test search term is contained in cell data
|
||||
occurence = (0, _string.contains)(sA, cellData, this.isExactMatch(colIdx), this.caseSensitive);
|
||||
|
@ -2329,8 +2346,17 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
continue;
|
||||
}
|
||||
var cellData = this.getCellData(cell[j]);
|
||||
var nbFormat = this.hasType(colIndex, [_const.FORMATTED_NUMBER, _const.FORMATTED_NUMBER_EU]) ? this.colTypes[colIndex] : undefined;
|
||||
var data = num ? (0, _number.unformat)(cellData, nbFormat) : cellData;
|
||||
// let nbFormat = this.hasType(colIndex,
|
||||
// [FORMATTED_NUMBER, FORMATTED_NUMBER_EU]) ?
|
||||
// this.colTypes[colIndex] : undefined;
|
||||
var decimal = this.decimalSeparator;
|
||||
if (this.hasType(colIndex, [_const.NUMBER])) {
|
||||
var colType = this.colTypes[colIndex];
|
||||
if (colType.hasOwnProperty('decimal')) {
|
||||
decimal = colType.decimal;
|
||||
}
|
||||
}
|
||||
var data = num ? (0, _number.parse)(cellData, decimal) : cellData;
|
||||
colValues.push(data);
|
||||
}
|
||||
}
|
||||
|
@ -3746,11 +3772,11 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.unformat = undefined;
|
||||
exports.parse = undefined;
|
||||
|
||||
var _types = __webpack_require__(4);
|
||||
|
||||
var _const = __webpack_require__(7);
|
||||
// import {FORMATTED_NUMBER} from './const';
|
||||
|
||||
/**
|
||||
* Returns a number for a formatted number
|
||||
|
@ -3759,8 +3785,8 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
* 'formatted-number-eu'
|
||||
* @return {Number} Unformatted number
|
||||
*/
|
||||
var unformat = exports.unformat = function unformat(value) {
|
||||
var format = arguments.length <= 1 || arguments[1] === undefined ? _const.FORMATTED_NUMBER : arguments[1];
|
||||
var parse = exports.parse = function parse(value) {
|
||||
var decimal = arguments.length <= 1 || arguments[1] === undefined ? '.' : arguments[1];
|
||||
|
||||
// Return the value as-is if it's already a number
|
||||
if ((0, _types.isNumber)(value)) {
|
||||
|
@ -3769,7 +3795,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
|
||||
// Build regex to strip out everything except digits, decimal point and
|
||||
// minus sign
|
||||
var decimal = format !== _const.FORMATTED_NUMBER ? ',' : '.';
|
||||
// let decimal = format !== FORMATTED_NUMBER ? ',' : '.';
|
||||
var regex = new RegExp('[^0-9-' + decimal + ']', ['g']);
|
||||
var unformatted = parseFloat(('' + value).replace(/\((.*)\)/, '-$1') // replace bracketed values with negatives
|
||||
.replace(regex, '') // strip out any cruft
|
||||
|
@ -3782,140 +3808,6 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
|
||||
/***/ },
|
||||
/* 7 */
|
||||
/***/ function(module, exports) {
|
||||
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
/**
|
||||
* Filter types
|
||||
*/
|
||||
|
||||
/**
|
||||
* Input filter type
|
||||
* @type {String}
|
||||
*/
|
||||
var INPUT = exports.INPUT = 'input';
|
||||
/**
|
||||
* Select filter type
|
||||
* @type {String}
|
||||
*/
|
||||
var SELECT = exports.SELECT = 'select';
|
||||
/**
|
||||
* Multiple select filter type
|
||||
* @type {String}
|
||||
*/
|
||||
var MULTIPLE = exports.MULTIPLE = 'multiple';
|
||||
/**
|
||||
* Checklist filter type
|
||||
* @type {String}
|
||||
*/
|
||||
var CHECKLIST = exports.CHECKLIST = 'checklist';
|
||||
/**
|
||||
* None filter type
|
||||
* @type {String}
|
||||
*/
|
||||
var NONE = exports.NONE = 'none';
|
||||
|
||||
/**
|
||||
* Key codes
|
||||
*/
|
||||
|
||||
/**
|
||||
* Enter key code
|
||||
* @type {Number}
|
||||
*/
|
||||
var ENTER_KEY = exports.ENTER_KEY = 13;
|
||||
/**
|
||||
* Tab key code
|
||||
* @type {Number}
|
||||
*/
|
||||
var TAB_KEY = exports.TAB_KEY = 9;
|
||||
/**
|
||||
* Escape key code
|
||||
* @type {Number}
|
||||
*/
|
||||
var ESC_KEY = exports.ESC_KEY = 27;
|
||||
/**
|
||||
* Up arrow key code
|
||||
* @type {Number}
|
||||
*/
|
||||
var UP_ARROW_KEY = exports.UP_ARROW_KEY = 38;
|
||||
/**
|
||||
* Down arrow key code
|
||||
* @type {Number}
|
||||
*/
|
||||
var DOWN_ARROW_KEY = exports.DOWN_ARROW_KEY = 40;
|
||||
|
||||
/**
|
||||
* HTML tags
|
||||
*/
|
||||
|
||||
/**
|
||||
* Header cell tag
|
||||
* @type {String}
|
||||
*/
|
||||
var HEADER_TAG = exports.HEADER_TAG = 'TH';
|
||||
/**
|
||||
* Cell tag
|
||||
* @type {String}
|
||||
*/
|
||||
var CELL_TAG = exports.CELL_TAG = 'TD';
|
||||
|
||||
/**
|
||||
* Data types
|
||||
*/
|
||||
|
||||
/**
|
||||
* String
|
||||
* @type {String}
|
||||
*/
|
||||
var STRING = exports.STRING = 'string';
|
||||
|
||||
/**
|
||||
* Number
|
||||
* @type {String}
|
||||
*/
|
||||
var NUMBER = exports.NUMBER = 'number';
|
||||
|
||||
/**
|
||||
* Formatted number
|
||||
* @type {String}
|
||||
*/
|
||||
var FORMATTED_NUMBER = exports.FORMATTED_NUMBER = 'formatted-number';
|
||||
|
||||
/**
|
||||
* Formatted number
|
||||
* @type {String}
|
||||
*/
|
||||
var FORMATTED_NUMBER_EU = exports.FORMATTED_NUMBER_EU = 'formatted-number-eu';
|
||||
|
||||
/**
|
||||
* Date
|
||||
* @type {String}
|
||||
*/
|
||||
var DATE = exports.DATE = 'date';
|
||||
|
||||
/**
|
||||
* IP address
|
||||
* @type {String}
|
||||
*/
|
||||
var IP_ADDRESS = exports.IP_ADDRESS = 'ipaddress';
|
||||
|
||||
/**
|
||||
* Default values
|
||||
*/
|
||||
|
||||
/**
|
||||
* Auto filter delay in milliseconds
|
||||
* @type {Number}
|
||||
*/
|
||||
var AUTO_FILTER_DELAY = exports.AUTO_FILTER_DELAY = 750;
|
||||
|
||||
/***/ },
|
||||
/* 8 */
|
||||
/***/ function(module, exports) {
|
||||
|
||||
"use strict";
|
||||
|
@ -3995,7 +3887,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
}();
|
||||
|
||||
/***/ },
|
||||
/* 9 */
|
||||
/* 8 */
|
||||
/***/ function(module, exports, __webpack_require__) {
|
||||
|
||||
'use strict';
|
||||
|
@ -4005,7 +3897,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
});
|
||||
exports.GridLayout = undefined;
|
||||
|
||||
var _feature = __webpack_require__(10);
|
||||
var _feature = __webpack_require__(9);
|
||||
|
||||
var _dom = __webpack_require__(3);
|
||||
|
||||
|
@ -4013,7 +3905,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
|
||||
var _string = __webpack_require__(5);
|
||||
|
||||
var _const = __webpack_require__(7);
|
||||
var _const = __webpack_require__(10);
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
|
@ -4568,7 +4460,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
}(_feature.Feature);
|
||||
|
||||
/***/ },
|
||||
/* 10 */
|
||||
/* 9 */
|
||||
/***/ function(module, exports) {
|
||||
|
||||
'use strict';
|
||||
|
@ -4690,6 +4582,140 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
return Feature;
|
||||
}();
|
||||
|
||||
/***/ },
|
||||
/* 10 */
|
||||
/***/ function(module, exports) {
|
||||
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
/**
|
||||
* Filter types
|
||||
*/
|
||||
|
||||
/**
|
||||
* Input filter type
|
||||
* @type {String}
|
||||
*/
|
||||
var INPUT = exports.INPUT = 'input';
|
||||
/**
|
||||
* Select filter type
|
||||
* @type {String}
|
||||
*/
|
||||
var SELECT = exports.SELECT = 'select';
|
||||
/**
|
||||
* Multiple select filter type
|
||||
* @type {String}
|
||||
*/
|
||||
var MULTIPLE = exports.MULTIPLE = 'multiple';
|
||||
/**
|
||||
* Checklist filter type
|
||||
* @type {String}
|
||||
*/
|
||||
var CHECKLIST = exports.CHECKLIST = 'checklist';
|
||||
/**
|
||||
* None filter type
|
||||
* @type {String}
|
||||
*/
|
||||
var NONE = exports.NONE = 'none';
|
||||
|
||||
/**
|
||||
* Key codes
|
||||
*/
|
||||
|
||||
/**
|
||||
* Enter key code
|
||||
* @type {Number}
|
||||
*/
|
||||
var ENTER_KEY = exports.ENTER_KEY = 13;
|
||||
/**
|
||||
* Tab key code
|
||||
* @type {Number}
|
||||
*/
|
||||
var TAB_KEY = exports.TAB_KEY = 9;
|
||||
/**
|
||||
* Escape key code
|
||||
* @type {Number}
|
||||
*/
|
||||
var ESC_KEY = exports.ESC_KEY = 27;
|
||||
/**
|
||||
* Up arrow key code
|
||||
* @type {Number}
|
||||
*/
|
||||
var UP_ARROW_KEY = exports.UP_ARROW_KEY = 38;
|
||||
/**
|
||||
* Down arrow key code
|
||||
* @type {Number}
|
||||
*/
|
||||
var DOWN_ARROW_KEY = exports.DOWN_ARROW_KEY = 40;
|
||||
|
||||
/**
|
||||
* HTML tags
|
||||
*/
|
||||
|
||||
/**
|
||||
* Header cell tag
|
||||
* @type {String}
|
||||
*/
|
||||
var HEADER_TAG = exports.HEADER_TAG = 'TH';
|
||||
/**
|
||||
* Cell tag
|
||||
* @type {String}
|
||||
*/
|
||||
var CELL_TAG = exports.CELL_TAG = 'TD';
|
||||
|
||||
/**
|
||||
* Data types
|
||||
*/
|
||||
|
||||
/**
|
||||
* String
|
||||
* @type {String}
|
||||
*/
|
||||
var STRING = exports.STRING = 'string';
|
||||
|
||||
/**
|
||||
* Number
|
||||
* @type {String}
|
||||
*/
|
||||
var NUMBER = exports.NUMBER = 'number';
|
||||
|
||||
/**
|
||||
* Formatted number
|
||||
* @type {String}
|
||||
*/
|
||||
var FORMATTED_NUMBER = exports.FORMATTED_NUMBER = 'formatted-number';
|
||||
|
||||
/**
|
||||
* Formatted number
|
||||
* @type {String}
|
||||
*/
|
||||
var FORMATTED_NUMBER_EU = exports.FORMATTED_NUMBER_EU = 'formatted-number-eu';
|
||||
|
||||
/**
|
||||
* Date
|
||||
* @type {String}
|
||||
*/
|
||||
var DATE = exports.DATE = 'date';
|
||||
|
||||
/**
|
||||
* IP address
|
||||
* @type {String}
|
||||
*/
|
||||
var IP_ADDRESS = exports.IP_ADDRESS = 'ipaddress';
|
||||
|
||||
/**
|
||||
* Default values
|
||||
*/
|
||||
|
||||
/**
|
||||
* Auto filter delay in milliseconds
|
||||
* @type {Number}
|
||||
*/
|
||||
var AUTO_FILTER_DELAY = exports.AUTO_FILTER_DELAY = 750;
|
||||
|
||||
/***/ },
|
||||
/* 11 */
|
||||
/***/ function(module, exports, __webpack_require__) {
|
||||
|
@ -4701,7 +4727,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
});
|
||||
exports.Loader = undefined;
|
||||
|
||||
var _feature = __webpack_require__(10);
|
||||
var _feature = __webpack_require__(9);
|
||||
|
||||
var _dom = __webpack_require__(3);
|
||||
|
||||
|
@ -4709,7 +4735,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
|
||||
var _root = __webpack_require__(2);
|
||||
|
||||
var _const = __webpack_require__(7);
|
||||
var _const = __webpack_require__(10);
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
|
@ -5093,7 +5119,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
});
|
||||
exports.PopupFilter = undefined;
|
||||
|
||||
var _feature = __webpack_require__(10);
|
||||
var _feature = __webpack_require__(9);
|
||||
|
||||
var _types = __webpack_require__(4);
|
||||
|
||||
|
@ -5101,7 +5127,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
|
||||
var _event = __webpack_require__(1);
|
||||
|
||||
var _const = __webpack_require__(7);
|
||||
var _const = __webpack_require__(10);
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
|
@ -5500,7 +5526,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
});
|
||||
exports.Dropdown = undefined;
|
||||
|
||||
var _feature = __webpack_require__(10);
|
||||
var _feature = __webpack_require__(9);
|
||||
|
||||
var _dom = __webpack_require__(3);
|
||||
|
||||
|
@ -5512,7 +5538,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
|
||||
var _event = __webpack_require__(1);
|
||||
|
||||
var _const = __webpack_require__(7);
|
||||
var _const = __webpack_require__(10);
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
|
@ -6043,7 +6069,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
});
|
||||
exports.CheckList = undefined;
|
||||
|
||||
var _feature = __webpack_require__(10);
|
||||
var _feature = __webpack_require__(9);
|
||||
|
||||
var _dom = __webpack_require__(3);
|
||||
|
||||
|
@ -6057,7 +6083,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
|
||||
var _types = __webpack_require__(4);
|
||||
|
||||
var _const = __webpack_require__(7);
|
||||
var _const = __webpack_require__(10);
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
|
@ -6645,7 +6671,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
});
|
||||
exports.RowsCounter = undefined;
|
||||
|
||||
var _feature = __webpack_require__(10);
|
||||
var _feature = __webpack_require__(9);
|
||||
|
||||
var _dom = __webpack_require__(3);
|
||||
|
||||
|
@ -6902,7 +6928,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
});
|
||||
exports.StatusBar = undefined;
|
||||
|
||||
var _feature = __webpack_require__(10);
|
||||
var _feature = __webpack_require__(9);
|
||||
|
||||
var _root = __webpack_require__(2);
|
||||
|
||||
|
@ -7274,7 +7300,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
|
||||
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };
|
||||
|
||||
var _feature = __webpack_require__(10);
|
||||
var _feature = __webpack_require__(9);
|
||||
|
||||
var _dom = __webpack_require__(3);
|
||||
|
||||
|
@ -7282,7 +7308,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
|
||||
var _event = __webpack_require__(1);
|
||||
|
||||
var _const = __webpack_require__(7);
|
||||
var _const = __webpack_require__(10);
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
|
@ -8243,7 +8269,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
});
|
||||
exports.ClearButton = undefined;
|
||||
|
||||
var _feature = __webpack_require__(10);
|
||||
var _feature = __webpack_require__(9);
|
||||
|
||||
var _dom = __webpack_require__(3);
|
||||
|
||||
|
@ -8411,13 +8437,13 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
});
|
||||
exports.Help = undefined;
|
||||
|
||||
var _feature = __webpack_require__(10);
|
||||
var _feature = __webpack_require__(9);
|
||||
|
||||
var _dom = __webpack_require__(3);
|
||||
|
||||
var _event = __webpack_require__(1);
|
||||
|
||||
var _const = __webpack_require__(7);
|
||||
var _const = __webpack_require__(10);
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
|
@ -8659,7 +8685,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
});
|
||||
exports.AlternateRows = undefined;
|
||||
|
||||
var _feature = __webpack_require__(10);
|
||||
var _feature = __webpack_require__(9);
|
||||
|
||||
var _dom = __webpack_require__(3);
|
||||
|
||||
|
@ -8843,13 +8869,13 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
});
|
||||
exports.NoResults = undefined;
|
||||
|
||||
var _feature = __webpack_require__(10);
|
||||
var _feature = __webpack_require__(9);
|
||||
|
||||
var _dom = __webpack_require__(3);
|
||||
|
||||
var _types = __webpack_require__(4);
|
||||
|
||||
var _const = __webpack_require__(7);
|
||||
var _const = __webpack_require__(10);
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
|
@ -9098,7 +9124,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
});
|
||||
exports.State = undefined;
|
||||
|
||||
var _feature = __webpack_require__(10);
|
||||
var _feature = __webpack_require__(9);
|
||||
|
||||
var _hash = __webpack_require__(26);
|
||||
|
||||
|
|
121
dist/tablefilter/tf-1.js
vendored
121
dist/tablefilter/tf-1.js
vendored
|
@ -6,16 +6,16 @@ webpackJsonp([1],{
|
|||
var map = {
|
||||
"./array": 15,
|
||||
"./array.js": 15,
|
||||
"./const": 7,
|
||||
"./const.js": 7,
|
||||
"./const": 10,
|
||||
"./const.js": 10,
|
||||
"./cookie": 28,
|
||||
"./cookie.js": 28,
|
||||
"./date": 435,
|
||||
"./date.js": 435,
|
||||
"./dom": 3,
|
||||
"./dom.js": 3,
|
||||
"./emitter": 8,
|
||||
"./emitter.js": 8,
|
||||
"./emitter": 7,
|
||||
"./emitter.js": 7,
|
||||
"./event": 1,
|
||||
"./event.js": 1,
|
||||
"./extensions/advancedGrid/adapterEzEditTable": 436,
|
||||
|
@ -32,8 +32,8 @@ webpackJsonp([1],{
|
|||
"./extensions/sort/adapterSortabletable.js": 441,
|
||||
"./extensions/sort/sort": 442,
|
||||
"./extensions/sort/sort.js": 442,
|
||||
"./feature": 10,
|
||||
"./feature.js": 10,
|
||||
"./feature": 9,
|
||||
"./feature.js": 9,
|
||||
"./modules/alternateRows": 23,
|
||||
"./modules/alternateRows.js": 23,
|
||||
"./modules/checkList": 17,
|
||||
|
@ -44,8 +44,8 @@ webpackJsonp([1],{
|
|||
"./modules/dateType.js": 29,
|
||||
"./modules/dropdown": 14,
|
||||
"./modules/dropdown.js": 14,
|
||||
"./modules/gridLayout": 9,
|
||||
"./modules/gridLayout.js": 9,
|
||||
"./modules/gridLayout": 8,
|
||||
"./modules/gridLayout.js": 8,
|
||||
"./modules/hash": 26,
|
||||
"./modules/hash.js": 26,
|
||||
"./modules/help": 22,
|
||||
|
@ -324,11 +324,11 @@ webpackJsonp([1],{
|
|||
value: true
|
||||
});
|
||||
|
||||
var _feature = __webpack_require__(10);
|
||||
var _feature = __webpack_require__(9);
|
||||
|
||||
var _dom = __webpack_require__(3);
|
||||
|
||||
var _const = __webpack_require__(7);
|
||||
var _const = __webpack_require__(10);
|
||||
|
||||
var _root = __webpack_require__(2);
|
||||
|
||||
|
@ -888,7 +888,7 @@ webpackJsonp([1],{
|
|||
value: true
|
||||
});
|
||||
|
||||
var _feature = __webpack_require__(10);
|
||||
var _feature = __webpack_require__(9);
|
||||
|
||||
var _dom = __webpack_require__(3);
|
||||
|
||||
|
@ -1272,7 +1272,7 @@ webpackJsonp([1],{
|
|||
value: true
|
||||
});
|
||||
|
||||
var _feature = __webpack_require__(10);
|
||||
var _feature = __webpack_require__(9);
|
||||
|
||||
var _dom = __webpack_require__(3);
|
||||
|
||||
|
@ -2054,7 +2054,7 @@ webpackJsonp([1],{
|
|||
value: true
|
||||
});
|
||||
|
||||
var _feature = __webpack_require__(10);
|
||||
var _feature = __webpack_require__(9);
|
||||
|
||||
var _dom = __webpack_require__(3);
|
||||
|
||||
|
@ -2408,7 +2408,7 @@ webpackJsonp([1],{
|
|||
value: true
|
||||
});
|
||||
|
||||
var _feature = __webpack_require__(10);
|
||||
var _feature = __webpack_require__(9);
|
||||
|
||||
var _types = __webpack_require__(4);
|
||||
|
||||
|
@ -2418,7 +2418,7 @@ webpackJsonp([1],{
|
|||
|
||||
var _number = __webpack_require__(6);
|
||||
|
||||
var _const = __webpack_require__(7);
|
||||
var _const = __webpack_require__(10);
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
|
@ -2465,7 +2465,7 @@ webpackJsonp([1],{
|
|||
* List of sort type per column basis
|
||||
* @type {Array}
|
||||
*/
|
||||
_this.sortTypes = (0, _types.isArray)(opts.types) ? opts.types : [];
|
||||
_this.sortTypes = (0, _types.isArray)(opts.types) ? opts.types : tf.colTypes;
|
||||
|
||||
/**
|
||||
* Column to be sorted at initialization, ie:
|
||||
|
@ -2571,10 +2571,14 @@ webpackJsonp([1],{
|
|||
throw new Error('SortableTable class not found.');
|
||||
}
|
||||
|
||||
// Add any date format if needed
|
||||
var dateType = tf.feature('dateType');
|
||||
dateType.addConfigFormats(this.sortTypes);
|
||||
|
||||
this.overrideSortableTable();
|
||||
this.setSortTypes();
|
||||
|
||||
//Column sort at start
|
||||
// Column sort at start
|
||||
var sortColAtStart = adpt.sortColAtStart;
|
||||
if (sortColAtStart) {
|
||||
this.stt.sort(sortColAtStart[0], sortColAtStart[1]);
|
||||
|
@ -2828,34 +2832,52 @@ webpackJsonp([1],{
|
|||
|
||||
var tf = this.tf,
|
||||
sortTypes = this.sortTypes,
|
||||
_sortTypes = [],
|
||||
dateType = tf.feature('dateType');
|
||||
dateType.addConfigFormats(sortTypes);
|
||||
_sortTypes = [];
|
||||
|
||||
for (var i = 0; i < tf.getCellsNb(); i++) {
|
||||
var colType = void 0;
|
||||
|
||||
if (sortTypes[i]) {
|
||||
colType = sortTypes[i];
|
||||
if ((0, _types.isObj)(colType)) {
|
||||
if (colType.type === _const.DATE) {
|
||||
colType = this._addDateType(i, sortTypes);
|
||||
} else if (colType.type === _const.NUMBER) {
|
||||
var decimal = colType.decimal || tf.decimalSeparator;
|
||||
colType = this._addNumberType(i, decimal);
|
||||
}
|
||||
} else {
|
||||
colType = colType.toLowerCase();
|
||||
if (colType === _const.NONE) {
|
||||
colType = 'None';
|
||||
}
|
||||
}
|
||||
colType = colType.toLowerCase();
|
||||
if (colType === _const.NONE) {
|
||||
colType = 'None';
|
||||
}
|
||||
} else {
|
||||
// resolve column types
|
||||
if (tf.hasType(i, [_const.NUMBER, _const.FORMATTED_NUMBER, _const.FORMATTED_NUMBER_EU, _const.IP_ADDRESS])) {
|
||||
colType = tf.colTypes[i].toLowerCase();
|
||||
} else if (tf.hasType(i, [_const.DATE])) {
|
||||
colType = this._addDateType(i);
|
||||
} else {
|
||||
colType = _const.STRING;
|
||||
}
|
||||
colType = _const.STRING;
|
||||
}
|
||||
// if (sortTypes[i]) {
|
||||
// colType = sortTypes[i];
|
||||
// if (isObj(colType)) {
|
||||
// if (colType.type === DATE) {
|
||||
// colType = this._addDateType(i, sortTypes);
|
||||
// }
|
||||
// else if (colType.type === NUMBER) {
|
||||
|
||||
// }
|
||||
// }
|
||||
// colType = colType.toLowerCase();
|
||||
// if (colType === NONE) {
|
||||
// colType = 'None';
|
||||
// }
|
||||
// } else { // resolve column types
|
||||
// if (tf.hasType(i, [NUMBER/*, FORMATTED_NUMBER,
|
||||
// FORMATTED_NUMBER_EU, IP_ADDRESS*/])) {
|
||||
// colType = tf.colTypes[i].toLowerCase();
|
||||
// } else if (tf.hasType(i, [DATE])) {
|
||||
// colType = this._addDateType(i);
|
||||
// } else {
|
||||
// colType = STRING;
|
||||
// }
|
||||
// }
|
||||
_sortTypes.push(colType);
|
||||
}
|
||||
|
||||
|
@ -2865,10 +2887,10 @@ webpackJsonp([1],{
|
|||
this.addSortType(_const.NUMBER, Number);
|
||||
this.addSortType('caseinsensitivestring', SortableTable.toUpperCase);
|
||||
this.addSortType(_const.STRING);
|
||||
this.addSortType(_const.FORMATTED_NUMBER, usNumberConverter);
|
||||
this.addSortType(_const.FORMATTED_NUMBER_EU, euNumberConverter);
|
||||
// this.addSortType(FORMATTED_NUMBER, usNumberConverter);
|
||||
// this.addSortType(FORMATTED_NUMBER_EU, euNumberConverter);
|
||||
this.addSortType(_const.IP_ADDRESS, ipAddress, sortIP);
|
||||
|
||||
console.log(_sortTypes);
|
||||
this.stt = new SortableTable(tf.tbl, _sortTypes);
|
||||
|
||||
/*** external table headers adapter ***/
|
||||
|
@ -2903,8 +2925,17 @@ webpackJsonp([1],{
|
|||
var locale = dateType.getOptions(colIndex, types).locale || tf.locale;
|
||||
var colType = _const.DATE + '-' + locale;
|
||||
|
||||
this.addSortType(colType, function (dateStr) {
|
||||
return dateType.parse(dateStr, locale);
|
||||
this.addSortType(colType, function (value) {
|
||||
return dateType.parse(value, locale);
|
||||
});
|
||||
return colType;
|
||||
};
|
||||
|
||||
AdapterSortableTable.prototype._addNumberType = function _addNumberType(colIndex, decimal) {
|
||||
var colType = _const.NUMBER + '-format' + (decimal === '.' ? '' : '-custom');
|
||||
|
||||
this.addSortType(colType, function (value) {
|
||||
return (0, _number.parse)(value, decimal);
|
||||
});
|
||||
return colType;
|
||||
};
|
||||
|
@ -2944,16 +2975,14 @@ webpackJsonp([1],{
|
|||
}(_feature.Feature);
|
||||
|
||||
//Converters
|
||||
|
||||
// function usNumberConverter(s) {
|
||||
// return parseNb(s, FORMATTED_NUMBER);
|
||||
// }
|
||||
// function euNumberConverter(s) {
|
||||
// return parseNb(s, FORMATTED_NUMBER_EU);
|
||||
// }
|
||||
|
||||
exports.default = AdapterSortableTable;
|
||||
function usNumberConverter(s) {
|
||||
return (0, _number.unformat)(s, _const.FORMATTED_NUMBER);
|
||||
}
|
||||
function euNumberConverter(s) {
|
||||
return (0, _number.unformat)(s, _const.FORMATTED_NUMBER_EU);
|
||||
}
|
||||
|
||||
function ipAddress(value) {
|
||||
var vals = value.split('.');
|
||||
for (var x in vals) {
|
||||
|
|
|
@ -2,10 +2,10 @@ import {Feature} from '../../feature';
|
|||
import {isArray, isFn, isUndef, isObj} from '../../types';
|
||||
import {createElm, elm, getText, tag} from '../../dom';
|
||||
import {addEvt} from '../../event';
|
||||
import {unformat as unformatNb} from '../../number';
|
||||
import {parse as parseNb} from '../../number';
|
||||
import {
|
||||
NONE, CELL_TAG, HEADER_TAG, STRING, NUMBER, DATE, FORMATTED_NUMBER,
|
||||
FORMATTED_NUMBER_EU, IP_ADDRESS
|
||||
NONE, CELL_TAG, HEADER_TAG, STRING, NUMBER, DATE, /*FORMATTED_NUMBER,
|
||||
FORMATTED_NUMBER_EU,*/ IP_ADDRESS
|
||||
} from '../../const';
|
||||
|
||||
/**
|
||||
|
@ -44,7 +44,7 @@ export default class AdapterSortableTable extends Feature {
|
|||
* List of sort type per column basis
|
||||
* @type {Array}
|
||||
*/
|
||||
this.sortTypes = isArray(opts.types) ? opts.types : [];
|
||||
this.sortTypes = isArray(opts.types) ? opts.types : tf.colTypes;
|
||||
|
||||
/**
|
||||
* Column to be sorted at initialization, ie:
|
||||
|
@ -148,10 +148,14 @@ export default class AdapterSortableTable extends Feature {
|
|||
throw new Error('SortableTable class not found.');
|
||||
}
|
||||
|
||||
// Add any date format if needed
|
||||
let dateType = tf.feature('dateType');
|
||||
dateType.addConfigFormats(this.sortTypes);
|
||||
|
||||
this.overrideSortableTable();
|
||||
this.setSortTypes();
|
||||
|
||||
//Column sort at start
|
||||
// Column sort at start
|
||||
let sortColAtStart = adpt.sortColAtStart;
|
||||
if (sortColAtStart) {
|
||||
this.stt.sort(sortColAtStart[0], sortColAtStart[1]);
|
||||
|
@ -393,34 +397,53 @@ export default class AdapterSortableTable extends Feature {
|
|||
setSortTypes() {
|
||||
let tf = this.tf,
|
||||
sortTypes = this.sortTypes,
|
||||
_sortTypes = [],
|
||||
dateType = tf.feature('dateType');
|
||||
dateType.addConfigFormats(sortTypes);
|
||||
_sortTypes = [];
|
||||
|
||||
for (let i = 0; i < tf.getCellsNb(); i++) {
|
||||
let colType;
|
||||
|
||||
if (sortTypes[i]) {
|
||||
colType = sortTypes[i];
|
||||
if (isObj(colType)) {
|
||||
if (colType.type === DATE) {
|
||||
colType = this._addDateType(i, sortTypes);
|
||||
}
|
||||
}
|
||||
colType = colType.toLowerCase();
|
||||
if (colType === NONE) {
|
||||
colType = 'None';
|
||||
}
|
||||
} else { // resolve column types
|
||||
if (tf.hasType(i, [NUMBER, FORMATTED_NUMBER,
|
||||
FORMATTED_NUMBER_EU, IP_ADDRESS])) {
|
||||
colType = tf.colTypes[i].toLowerCase();
|
||||
} else if (tf.hasType(i, [DATE])) {
|
||||
colType = this._addDateType(i);
|
||||
else if (colType.type === NUMBER) {
|
||||
let decimal = colType.decimal || tf.decimalSeparator;
|
||||
colType = this._addNumberType(i, decimal);
|
||||
}
|
||||
} else {
|
||||
colType = STRING;
|
||||
colType = colType.toLowerCase();
|
||||
if (colType === NONE) {
|
||||
colType = 'None';
|
||||
}
|
||||
}
|
||||
} else {
|
||||
colType = STRING;
|
||||
}
|
||||
// if (sortTypes[i]) {
|
||||
// colType = sortTypes[i];
|
||||
// if (isObj(colType)) {
|
||||
// if (colType.type === DATE) {
|
||||
// colType = this._addDateType(i, sortTypes);
|
||||
// }
|
||||
// else if (colType.type === NUMBER) {
|
||||
|
||||
// }
|
||||
// }
|
||||
// colType = colType.toLowerCase();
|
||||
// if (colType === NONE) {
|
||||
// colType = 'None';
|
||||
// }
|
||||
// } else { // resolve column types
|
||||
// if (tf.hasType(i, [NUMBER/*, FORMATTED_NUMBER,
|
||||
// FORMATTED_NUMBER_EU, IP_ADDRESS*/])) {
|
||||
// colType = tf.colTypes[i].toLowerCase();
|
||||
// } else if (tf.hasType(i, [DATE])) {
|
||||
// colType = this._addDateType(i);
|
||||
// } else {
|
||||
// colType = STRING;
|
||||
// }
|
||||
// }
|
||||
_sortTypes.push(colType);
|
||||
}
|
||||
|
||||
|
@ -430,10 +453,10 @@ export default class AdapterSortableTable extends Feature {
|
|||
this.addSortType(NUMBER, Number);
|
||||
this.addSortType('caseinsensitivestring', SortableTable.toUpperCase);
|
||||
this.addSortType(STRING);
|
||||
this.addSortType(FORMATTED_NUMBER, usNumberConverter);
|
||||
this.addSortType(FORMATTED_NUMBER_EU, euNumberConverter);
|
||||
// this.addSortType(FORMATTED_NUMBER, usNumberConverter);
|
||||
// this.addSortType(FORMATTED_NUMBER_EU, euNumberConverter);
|
||||
this.addSortType(IP_ADDRESS, ipAddress, sortIP);
|
||||
|
||||
console.log(_sortTypes);
|
||||
this.stt = new SortableTable(tf.tbl, _sortTypes);
|
||||
|
||||
/*** external table headers adapter ***/
|
||||
|
@ -466,8 +489,17 @@ export default class AdapterSortableTable extends Feature {
|
|||
let locale = dateType.getOptions(colIndex, types).locale || tf.locale;
|
||||
let colType = `${DATE}-${locale}`;
|
||||
|
||||
this.addSortType(colType, (dateStr) => {
|
||||
return dateType.parse(dateStr, locale);
|
||||
this.addSortType(colType, (value) => {
|
||||
return dateType.parse(value, locale);
|
||||
});
|
||||
return colType;
|
||||
}
|
||||
|
||||
_addNumberType(colIndex, decimal) {
|
||||
let colType = `${NUMBER}-format${decimal === '.' ? '' : '-custom'}`;
|
||||
|
||||
this.addSortType(colType, (value) => {
|
||||
return parseNb(value, decimal);
|
||||
});
|
||||
return colType;
|
||||
}
|
||||
|
@ -501,12 +533,12 @@ export default class AdapterSortableTable extends Feature {
|
|||
}
|
||||
|
||||
//Converters
|
||||
function usNumberConverter(s) {
|
||||
return unformatNb(s, FORMATTED_NUMBER);
|
||||
}
|
||||
function euNumberConverter(s) {
|
||||
return unformatNb(s, FORMATTED_NUMBER_EU);
|
||||
}
|
||||
// function usNumberConverter(s) {
|
||||
// return parseNb(s, FORMATTED_NUMBER);
|
||||
// }
|
||||
// function euNumberConverter(s) {
|
||||
// return parseNb(s, FORMATTED_NUMBER_EU);
|
||||
// }
|
||||
|
||||
function ipAddress(value) {
|
||||
let vals = value.split('.');
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import {isNumber} from './types';
|
||||
import {FORMATTED_NUMBER} from './const';
|
||||
// import {FORMATTED_NUMBER} from './const';
|
||||
|
||||
/**
|
||||
* Returns a number for a formatted number
|
||||
|
@ -8,7 +8,7 @@ import {FORMATTED_NUMBER} from './const';
|
|||
* 'formatted-number-eu'
|
||||
* @return {Number} Unformatted number
|
||||
*/
|
||||
export const unformat = (value, format = FORMATTED_NUMBER) => {
|
||||
export const parse = (value, decimal = '.') => {
|
||||
// Return the value as-is if it's already a number
|
||||
if (isNumber(value)) {
|
||||
return value;
|
||||
|
@ -16,7 +16,7 @@ export const unformat = (value, format = FORMATTED_NUMBER) => {
|
|||
|
||||
// Build regex to strip out everything except digits, decimal point and
|
||||
// minus sign
|
||||
let decimal = format !== FORMATTED_NUMBER ? ',' : '.';
|
||||
// let decimal = format !== FORMATTED_NUMBER ? ',' : '.';
|
||||
let regex = new RegExp('[^0-9-' + decimal + ']', ['g']);
|
||||
let unformatted = parseFloat(
|
||||
('' + value)
|
||||
|
|
|
@ -8,7 +8,7 @@ import {isEmpty as isEmptyString} from './string';
|
|||
import {
|
||||
isArray, isEmpty, isFn, isNumber, isObj, isString, isUndef
|
||||
} from './types';
|
||||
import {unformat as unformatNb} from './number'
|
||||
import {parse as parseNb} from './number'
|
||||
|
||||
import {root} from './root';
|
||||
import {Emitter} from './emitter';
|
||||
|
@ -31,8 +31,8 @@ import {DateType} from './modules/dateType';
|
|||
import {
|
||||
INPUT, SELECT, MULTIPLE, CHECKLIST, NONE,
|
||||
ENTER_KEY, TAB_KEY, ESC_KEY, UP_ARROW_KEY, DOWN_ARROW_KEY,
|
||||
CELL_TAG, AUTO_FILTER_DELAY, NUMBER, DATE, FORMATTED_NUMBER,
|
||||
FORMATTED_NUMBER_EU
|
||||
CELL_TAG, AUTO_FILTER_DELAY, NUMBER, DATE/*, FORMATTED_NUMBER,
|
||||
FORMATTED_NUMBER_EU*/
|
||||
} from './const';
|
||||
|
||||
let doc = root.document;
|
||||
|
@ -1752,8 +1752,8 @@ export class TableFilter {
|
|||
// search args re-init
|
||||
let searchArgs = this.getFiltersValue();
|
||||
|
||||
let numCellData;
|
||||
let nbFormat;
|
||||
let numData;
|
||||
let nbFormat = this.decimalSeparator;
|
||||
let re_le = new RegExp(this.leOperator),
|
||||
re_ge = new RegExp(this.geOperator),
|
||||
re_l = new RegExp(this.lwOperator),
|
||||
|
@ -1903,49 +1903,62 @@ export class TableFilter {
|
|||
|
||||
else {
|
||||
//first numbers need to be unformatted
|
||||
// if (this.hasType(colIdx, [NUMBER])) {
|
||||
// numData = Number(cellData);
|
||||
// }
|
||||
// else if (this.hasType(colIdx,
|
||||
// [FORMATTED_NUMBER, FORMATTED_NUMBER_EU])) {
|
||||
// numData =unformatNb(cellData, this.colTypes[colIdx]);
|
||||
// nbFormat = this.colTypes[colIdx];
|
||||
// } else {
|
||||
// if (this.thousandsSeparator === ',' &&
|
||||
// this.decimalSeparator === '.') {
|
||||
// nbFormat = FORMATTED_NUMBER;
|
||||
// } else {
|
||||
// nbFormat = FORMATTED_NUMBER_EU;
|
||||
// }
|
||||
// numData = unformatNb(cellData, nbFormat);
|
||||
// }
|
||||
|
||||
if (this.hasType(colIdx, [NUMBER])) {
|
||||
numCellData = Number(cellData);
|
||||
}
|
||||
else if (this.hasType(colIdx,
|
||||
[FORMATTED_NUMBER, FORMATTED_NUMBER_EU])) {
|
||||
numCellData = unformatNb(cellData, this.colTypes[colIdx]);
|
||||
nbFormat = this.colTypes[colIdx];
|
||||
} else {
|
||||
if (this.thousandsSeparator === ',' &&
|
||||
this.decimalSeparator === '.') {
|
||||
nbFormat = FORMATTED_NUMBER;
|
||||
} else {
|
||||
nbFormat = FORMATTED_NUMBER_EU;
|
||||
let colType = this.colTypes[colIdx];
|
||||
if (colType.hasOwnProperty('decimal')) {
|
||||
nbFormat = colType.decimal;
|
||||
}
|
||||
numCellData = unformatNb(cellData, nbFormat);
|
||||
// numData = Number(cellData) ||parseNb(cellData, nbFormat);
|
||||
}
|
||||
// else {
|
||||
// numData = Number(cellData) ||
|
||||
// parseNb(cellData, tf.decimalSeparator);
|
||||
// }
|
||||
numData = Number(cellData) || parseNb(cellData, nbFormat);
|
||||
|
||||
// first checks if there is any operator (<,>,<=,>=,!,*,=,{,},
|
||||
// rgx:)
|
||||
// lower equal
|
||||
if (hasLE) {
|
||||
occurence = numCellData <= unformatNb(
|
||||
occurence = numData <= parseNb(
|
||||
sA.replace(re_le, ''),
|
||||
nbFormat
|
||||
);
|
||||
}
|
||||
//greater equal
|
||||
else if (hasGE) {
|
||||
occurence = numCellData >= unformatNb(
|
||||
occurence = numData >= parseNb(
|
||||
sA.replace(re_ge, ''),
|
||||
nbFormat
|
||||
);
|
||||
}
|
||||
//lower
|
||||
else if (hasLO) {
|
||||
occurence = numCellData < unformatNb(
|
||||
occurence = numData < parseNb(
|
||||
sA.replace(re_l, ''),
|
||||
nbFormat
|
||||
);
|
||||
}
|
||||
//greater
|
||||
else if (hasGR) {
|
||||
occurence = numCellData > unformatNb(
|
||||
occurence = numData > parseNb(
|
||||
sA.replace(re_g, ''),
|
||||
nbFormat
|
||||
);
|
||||
|
@ -2001,16 +2014,17 @@ export class TableFilter {
|
|||
} else {
|
||||
// If numeric type data, perform a strict equality test and
|
||||
// fallback to unformatted number string comparison
|
||||
if (numCellData &&
|
||||
if (numData &&
|
||||
this.hasType(colIdx,
|
||||
[NUMBER, FORMATTED_NUMBER, FORMATTED_NUMBER_EU]) &&
|
||||
[NUMBER
|
||||
/*, FORMATTED_NUMBER, FORMATTED_NUMBER_EU*/]) &&
|
||||
!this.singleSearchFlt) {
|
||||
// unformatNb can return 0 for strings which are not
|
||||
// parseNb can return 0 for strings which are not
|
||||
// formatted numbers, in that case return the original
|
||||
// string. TODO: handle this in unformatNb
|
||||
sA = unformatNb(sA, nbFormat) || sA;
|
||||
occurence = numCellData === sA ||
|
||||
contains(sA.toString(), numCellData.toString(),
|
||||
// string. TODO: handle this in parseNb
|
||||
sA = parseNb(sA, nbFormat) || sA;
|
||||
occurence = numData === sA ||
|
||||
contains(sA.toString(), numData.toString(),
|
||||
this.isExactMatch(colIdx), this.caseSensitive);
|
||||
} else {
|
||||
// Finally test search term is contained in cell data
|
||||
|
@ -2165,10 +2179,17 @@ export class TableFilter {
|
|||
continue;
|
||||
}
|
||||
let cellData = this.getCellData(cell[j]);
|
||||
let nbFormat = this.hasType(colIndex,
|
||||
[FORMATTED_NUMBER, FORMATTED_NUMBER_EU]) ?
|
||||
this.colTypes[colIndex] : undefined;
|
||||
let data = num ? unformatNb(cellData, nbFormat) : cellData;
|
||||
// let nbFormat = this.hasType(colIndex,
|
||||
// [FORMATTED_NUMBER, FORMATTED_NUMBER_EU]) ?
|
||||
// this.colTypes[colIndex] : undefined;
|
||||
let decimal = this.decimalSeparator;
|
||||
if (this.hasType(colIndex, [NUMBER])) {
|
||||
let colType = this.colTypes[colIndex];
|
||||
if (colType.hasOwnProperty('decimal')) {
|
||||
decimal = colType.decimal;
|
||||
}
|
||||
}
|
||||
let data = num ? parseNb(cellData, decimal) : cellData;
|
||||
colValues.push(data);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -52,7 +52,9 @@ var tfConfig = {
|
|||
name: 'sort',
|
||||
types: [
|
||||
'number', 'string', 'string',
|
||||
'formatted-number', 'none', 'string'
|
||||
{ type: 'number', decimal: '.' },
|
||||
// 'number',
|
||||
'none', 'string'
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
|
@ -78,7 +78,11 @@ var tfConfig = {
|
|||
'string', 'string', 'string',
|
||||
{
|
||||
type: 'number', decimal: ',', thousands: '.'
|
||||
}, 'formatted-number', 'string',
|
||||
},
|
||||
{
|
||||
type: 'number', decimal: '.', thousands: ','
|
||||
},
|
||||
'string',
|
||||
{
|
||||
type: 'date', locale: 'en',
|
||||
format: ['{dd}/{MM}/{yyyy}', '{dd}-{MM}-{yyyy|yy}']
|
||||
|
|
Loading…
Reference in a new issue