1
0
Fork 0
mirror of https://github.com/koalyptus/TableFilter.git synced 2024-04-30 05:43:31 +02:00

support cellparser in sort adapter, fix function name with uglifyjs option

This commit is contained in:
koalyptus 2018-06-09 22:09:37 +10:00
parent b4905f7703
commit ed01c6e201
10 changed files with 78 additions and 70 deletions

4
dist/starter.html vendored
View file

@ -1,10 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>tablefilter v0.6.39 - Starter</title>
<title>tablefilter v0.6.40 - Starter</title>
</head>
<body>
<h1>tablefilter v0.6.39</h1>
<h1>tablefilter v0.6.40</h1>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

89
package-lock.json generated
View file

@ -1,6 +1,6 @@
{
"name": "tablefilter",
"version": "0.6.38",
"version": "0.6.40",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@ -413,7 +413,7 @@
"aproba": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
"integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=",
"integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
"dev": true
},
"argparse": {
@ -1530,7 +1530,7 @@
"bluebird": {
"version": "3.5.1",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
"integrity": "sha1-2VUfnemPH82h5oPRfukaBgLuLrk=",
"integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==",
"dev": true
},
"bn.js": {
@ -1811,7 +1811,7 @@
"cacache": {
"version": "10.0.4",
"resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz",
"integrity": "sha1-ZFI2eZnv+dQYiu/ZoU6dfGomNGA=",
"integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==",
"dev": true,
"requires": {
"bluebird": "3.5.1",
@ -1824,7 +1824,7 @@
"move-concurrently": "1.0.1",
"promise-inflight": "1.0.1",
"rimraf": "2.6.2",
"ssri": "5.2.4",
"ssri": "5.3.0",
"unique-filename": "1.1.0",
"y18n": "4.0.0"
}
@ -2305,7 +2305,7 @@
"commander": {
"version": "2.13.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz",
"integrity": "sha1-aWS8pnaF33wfFDDFhPB9dZeIW5w=",
"integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==",
"dev": true
},
"commondir": {
@ -2449,7 +2449,7 @@
"copy-concurrently": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
"integrity": "sha1-kilzmMrjSTf8r9bsgTnBgFHwteA=",
"integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==",
"dev": true,
"requires": {
"aproba": "1.2.0",
@ -2912,9 +2912,9 @@
"dev": true
},
"duplexify": {
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.3.tgz",
"integrity": "sha1-i1gYgA35L9ASWyeriWSRkShYJD4=",
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz",
"integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==",
"dev": true,
"requires": {
"end-of-stream": "1.4.1",
@ -2993,7 +2993,7 @@
"end-of-stream": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
"integrity": "sha1-7SljTRm6ukY7bOa4CjchPqtx7EM=",
"integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
"dev": true,
"requires": {
"once": "1.4.0"
@ -4161,9 +4161,9 @@
"dev": true
},
"flush-write-stream": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.2.tgz",
"integrity": "sha1-yBuQ2HRnZvGmCaRoCZRsRd2K5Bc=",
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz",
"integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==",
"dev": true,
"requires": {
"inherits": "2.0.3",
@ -8028,17 +8028,17 @@
"mississippi": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz",
"integrity": "sha1-NEKlCPr8KFAEhv7qmUCWduTuWm8=",
"integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==",
"dev": true,
"requires": {
"concat-stream": "1.6.0",
"duplexify": "3.5.3",
"duplexify": "3.6.0",
"end-of-stream": "1.4.1",
"flush-write-stream": "1.0.2",
"flush-write-stream": "1.0.3",
"from2": "2.3.0",
"parallel-transform": "1.1.0",
"pump": "2.0.1",
"pumpify": "1.4.0",
"pumpify": "1.5.1",
"stream-each": "1.2.2",
"through2": "2.0.3"
}
@ -9116,7 +9116,7 @@
"pump": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
"integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=",
"integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
"dev": true,
"requires": {
"end-of-stream": "1.4.1",
@ -9124,12 +9124,12 @@
}
},
"pumpify": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.4.0.tgz",
"integrity": "sha1-gLfF334kFT0D8OesigWl0Gi9B/s=",
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
"integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
"dev": true,
"requires": {
"duplexify": "3.5.3",
"duplexify": "3.6.0",
"inherits": "2.0.3",
"pump": "2.0.1"
}
@ -9814,9 +9814,9 @@
}
},
"serialize-javascript": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.4.0.tgz",
"integrity": "sha1-fJWFFNtqwkQ6irwGLcn3iGp/YAU=",
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.5.0.tgz",
"integrity": "sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ==",
"dev": true
},
"serve-index": {
@ -10282,9 +10282,9 @@
}
},
"ssri": {
"version": "5.2.4",
"resolved": "https://registry.npmjs.org/ssri/-/ssri-5.2.4.tgz",
"integrity": "sha1-mYXhQEHmX8OXr5ZUK+NXJKwR2lI=",
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz",
"integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==",
"dev": true,
"requires": {
"safe-buffer": "5.1.1"
@ -10387,7 +10387,7 @@
"stream-each": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz",
"integrity": "sha1-joxGP5HaiZF3h2WHP+TZYNj2Fr0=",
"integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==",
"dev": true,
"requires": {
"end-of-stream": "1.4.1",
@ -11017,31 +11017,31 @@
"optional": true
},
"uglifyjs-webpack-plugin": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.2.tgz",
"integrity": "sha1-51FtQ2ev23FcOEeEHrRvlMRcork=",
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.5.tgz",
"integrity": "sha512-hIQJ1yxAPhEA2yW/i7Fr+SXZVMp+VEI3d42RTHBgQd2yhp/1UdBcR3QEWPV5ahBxlqQDMEMTuTEvDHSFINfwSw==",
"dev": true,
"requires": {
"cacache": "10.0.4",
"find-cache-dir": "1.0.0",
"schema-utils": "0.4.5",
"serialize-javascript": "1.4.0",
"serialize-javascript": "1.5.0",
"source-map": "0.6.1",
"uglify-es": "3.3.9",
"webpack-sources": "1.1.0",
"worker-farm": "1.5.4"
"worker-farm": "1.6.0"
},
"dependencies": {
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
},
"uglify-es": {
"version": "3.3.9",
"resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz",
"integrity": "sha1-DBxPBwC+2NvBJM2zBNJZLKID5nc=",
"integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==",
"dev": true,
"requires": {
"commander": "2.13.0",
@ -11496,7 +11496,7 @@
"node-libs-browser": "2.1.0",
"schema-utils": "0.4.5",
"tapable": "1.0.0",
"uglifyjs-webpack-plugin": "1.2.2",
"uglifyjs-webpack-plugin": "1.2.5",
"watchpack": "1.4.0",
"webpack-sources": "1.1.0"
},
@ -11558,7 +11558,7 @@
"recast": "0.14.4",
"resolve-cwd": "2.0.0",
"supports-color": "5.2.0",
"uglifyjs-webpack-plugin": "1.2.2",
"uglifyjs-webpack-plugin": "1.2.5",
"v8-compile-cache": "1.1.2",
"webpack-addons": "1.1.5",
"yargs": "9.0.1",
@ -12221,13 +12221,12 @@
"dev": true
},
"worker-farm": {
"version": "1.5.4",
"resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.5.4.tgz",
"integrity": "sha1-Teu+RrQO3vzHF+vedKkLGuHpCaE=",
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz",
"integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==",
"dev": true,
"requires": {
"errno": "0.1.7",
"xtend": "4.0.1"
"errno": "0.1.7"
}
},
"wrap-ansi": {
@ -12304,7 +12303,7 @@
"y18n": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
"integrity": "sha1-le+U+F7MgdAHwmThkKEg8KPIVms=",
"integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
"dev": true
},
"yallist": {

View file

@ -1,6 +1,6 @@
{
"name": "tablefilter",
"version": "0.6.39",
"version": "0.6.40",
"description": "A Javascript library making HTML tables filterable and a bit more",
"license": "MIT",
"author": {
@ -65,6 +65,7 @@
"string-replace-webpack-plugin": "^0.1.3",
"stylus": "^0.54.5",
"sugar-date": "2.0.4",
"uglifyjs-webpack-plugin": "1.2.5",
"webpack": "^4.0.1",
"webpack-cli": "^2.0.10",
"webpack-dev-server": "^3.0.0"

View file

@ -1,7 +1,7 @@
import {Feature} from '../../feature';
import {isUndef, isObj, EMPTY_FN} from '../../types';
import {createElm, elm, getText, tag} from '../../dom';
import {addEvt} from '../../event';
import {createElm, elm, tag} from '../../dom';
import {addEvt, bound} from '../../event';
import {parse as parseNb} from '../../number';
import {
NONE, CELL_TAG, HEADER_TAG, STRING, NUMBER, DATE, FORMATTED_NUMBER,
@ -189,8 +189,7 @@ export default class AdapterSortableTable extends Feature {
this.stt.sort(sortColAtStart[0], sortColAtStart[1]);
}
this.emitter.on(['sort'],
(tf, colIdx, desc) => this.sortByColumnIndex(colIdx, desc));
this.emitter.on(['sort'], bound(this.sortByColumnIndexHandler, this));
/** @inherited */
this.initialized = true;
@ -207,6 +206,11 @@ export default class AdapterSortableTable extends Feature {
this.stt.sort(colIdx, desc);
}
/** @private */
sortByColumnIndexHandler(tf, colIdx, desc) {
this.sortByColumnIndex(colIdx, desc);
}
/**
* Set SortableTable overrides for TableFilter integration
*/
@ -357,17 +361,17 @@ export default class AdapterSortableTable extends Feature {
/**
* Overrides getInnerText in order to avoid Firefox unexpected sorting
* behaviour with untrimmed text elements
* @param {Object} oNode DOM element
* @param {Object} cell DOM element
* @return {String} DOM element inner text
*/
SortableTable.getInnerText = function (oNode) {
if (!oNode) {
SortableTable.getInnerText = function (cell) {
if (!cell) {
return;
}
if (oNode.getAttribute(adpt.customKey)) {
return oNode.getAttribute(adpt.customKey);
if (cell.getAttribute(adpt.customKey)) {
return cell.getAttribute(adpt.customKey);
} else {
return getText(oNode);
return tf.getCellValue(cell);
}
};
}
@ -377,8 +381,8 @@ export default class AdapterSortableTable extends Feature {
*/
addSortType(...args) {
// Extract the arguments
let [id, caster, sorter] = args;
SortableTable.prototype.addSortType(id, caster, sorter);
let [id, caster, sorter, getRowValue] = args;
SortableTable.prototype.addSortType(id, caster, sorter, getRowValue);
}
/**
@ -486,8 +490,7 @@ export default class AdapterSortableTable extends Feature {
return;
}
let tf = this.tf;
this.emitter.off(['sort'],
(tf, colIdx, desc) => this.sortByColumnIndex(colIdx, desc));
this.emitter.off(['sort'], bound(this.sortByColumnIndexHandler, this));
this.sorted = false;
this.stt.destroy();

View file

@ -22,7 +22,7 @@ var tfConfig = {
col_2: 'checklist',
col_widths: [
'75px', '200px', '200px',
'100px', '75px', ''
'100px', '75px', '400px'
],
paging: true,
alternate_rows: true,

View file

@ -2,6 +2,7 @@ const webpack = require('webpack');
const path = require('path');
const Clean = require('clean-webpack-plugin');
const StringReplacePlugin = require('string-replace-webpack-plugin');
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
const fs = require('fs');
const pkg = JSON.parse(fs.readFileSync('package.json', 'utf8'));
@ -53,7 +54,16 @@ module.exports = {
},
devtool: 'source-map',
optimization: {
minimize: true
minimizer: [
new UglifyJsPlugin({
uglifyOptions: {
beautify: false,
compress: {warnings: false},
comments: false,
keep_fnames: true
}
})
]
},
plugins: [
new Clean(['dist']),