From 7aff5ad0e54348e8e5c6e39e7739c6cf576f974b Mon Sep 17 00:00:00 2001 From: Mu-An Chiou Date: Tue, 10 Dec 2019 15:02:49 -0500 Subject: [PATCH 1/2] Modify test to ensure casing is retained --- test/test.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/test.js b/test/test.js index 3329589..9c807aa 100644 --- a/test/test.js +++ b/test/test.js @@ -53,10 +53,10 @@ describe('filter-input', function() { assert.equal(customEvent.detail.count, 1) assert.equal(customEvent.detail.total, 4) - changeValue(input, 'boom') + changeValue(input, 'BB-8 robot') assert.notOk(newItem.hidden, 'New item form should be shown') - assert.equal(newItem.querySelector('[data-filter-new-item-value]').value, 'boom') - assert.equal(newItem.querySelector('[data-filter-new-item-text]').textContent, 'boom') + assert.equal(newItem.querySelector('[data-filter-new-item-value]').value, 'BB-8 robot') + assert.equal(newItem.querySelector('[data-filter-new-item-text]').textContent, 'BB-8 robot') }) it('filters and toggles blankslate', async function() { From aceb4b38bff04a81950c2ab11087687fb526b855 Mon Sep 17 00:00:00 2001 From: Mu-An Chiou Date: Tue, 10 Dec 2019 15:06:07 -0500 Subject: [PATCH 2/2] Avoid modifying query casing until substring comparison --- src/index.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/index.ts b/src/index.ts index 6a6e3dd..11e45aa 100644 --- a/src/index.ts +++ b/src/index.ts @@ -71,7 +71,7 @@ class FilterInputElement extends HTMLElement { async function filterResults(filterInput: FilterInputElement, checkCurrentQuery: boolean = false) { const input = filterInput.input if (!input) return - const query = input.value.toLowerCase() + const query = input.value.trim() const id = filterInput.getAttribute('aria-owns') if (!id) return const container = document.getElementById(id) @@ -124,7 +124,7 @@ async function filterResults(filterInput: FilterInputElement, checkCurrentQuery: } function matchSubstring(_item: HTMLElement, itemText: string, query: string): MatchResult { - const match = itemText.indexOf(query) !== -1 + const match = itemText.toLowerCase().indexOf(query.toLowerCase()) !== -1 return { match, hideNew: itemText === query @@ -133,7 +133,7 @@ function matchSubstring(_item: HTMLElement, itemText: string, query: string): Ma function getText(filterableItem: HTMLElement) { const target = filterableItem.querySelector('[data-filter-item-text]') || filterableItem - return (target.textContent || '').trim().toLowerCase() + return (target.textContent || '').trim() } function updateNewItem(newItem: HTMLElement, query: string) {