From 55eadd72eb569badc5b8363f63a1f6f4672fdc31 Mon Sep 17 00:00:00 2001 From: koalyptus Date: Mon, 29 Jan 2018 23:20:52 +1100 Subject: [PATCH] wip --- package.json | 2 +- src/event.js | 2 ++ src/tablefilter.js | 37 ++++++++++++++++++++----------------- 3 files changed, 23 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index 55b2f770..f80da87c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "tablefilter", - "version": "0.6.16", + "version": "0.6.17", "description": "A Javascript library making HTML tables filterable and a bit more", "license": "MIT", "author": { diff --git a/src/event.js b/src/event.js index 8a57617c..23558858 100644 --- a/src/event.js +++ b/src/event.js @@ -99,3 +99,5 @@ export const keyCode = (evt) => { return evt.charCode ? evt.charCode : (evt.keyCode ? evt.keyCode : (evt.which ? evt.which : 0)); }; + + diff --git a/src/tablefilter.js b/src/tablefilter.js index 231f2104..d1965feb 100644 --- a/src/tablefilter.js +++ b/src/tablefilter.js @@ -740,16 +740,19 @@ export class TableFilter { /** * Enable auto-filter behaviour, table is filtered when a user * stops typing - * @type {Boolean} + * @type {Object|Boolean} */ - this.autoFilter = Boolean(f.auto_filter); + this.autoFilter = isObj(f.auto_filter) || Boolean(f.auto_filter); /** * Auto-filter delay in msecs * @type {Number} */ - this.autoFilterDelay = - defaultsNb(f.auto_filter_delay, AUTO_FILTER_DELAY); + // this.autoFilterDelay = + // defaultsNb(f.auto_filter_delay, AUTO_FILTER_DELAY); + this.autoFilterDelay = isObj(f.auto_filter) && + isNumber(f.auto_filter.delay) ? + f.auto_filter.delay : AUTO_FILTER_DELAY; /** * Indicate whether user is typing @@ -1061,21 +1064,21 @@ export class TableFilter { * @param {Event} evt */ detectKey(evt) { - if (!this.enterKey) { + if (!this.enterKey || !evt) { return; } - if (evt) { - let key = keyCode(evt); - if (key === ENTER_KEY) { - this.filter(); - cancelEvt(evt); - stopEvt(evt); - } else { - this.isUserTyping = true; - root.clearInterval(this.autoFilterTimer); - this.autoFilterTimer = null; - } + // if (evt) { + let key = keyCode(evt); + if (key === ENTER_KEY) { + this.filter(); + cancelEvt(evt); + stopEvt(evt); + } else { + this.isUserTyping = true; + root.clearInterval(this.autoFilterTimer); + this.autoFilterTimer = null; } + // } } /** @@ -1084,7 +1087,7 @@ export class TableFilter { * @param {Event} evt */ onKeyUp(evt) { - if (!this.autoFilter) { + if (!this.autoFilter || !evt) { return; } let key = keyCode(evt);