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) { 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() {