From 1d579b5b20184f73223d7b7fd788bea65450636d Mon Sep 17 00:00:00 2001 From: Josh Johnson Date: Tue, 12 Feb 2019 18:35:46 +0000 Subject: [PATCH] Api changes (#515) * Combine regexFilter and addItemFilter + minor tweaks * Update tests to accomodate fixed dropdown notice * Remove broken `toggleDropdown` method * Unskip dropdown interaction tests * Remove reference to removed method --- index.html | 10 +++++++++- test/select-multiple.html | 5 ----- test/select-one.html | 5 ----- test/text.html | 26 ++++++++++---------------- 4 files changed, 19 insertions(+), 27 deletions(-) diff --git a/index.html b/index.html index a9b79053..dc6a92f1 100644 --- a/index.html +++ b/index.html @@ -344,7 +344,15 @@ var textEmailFilter = new Choices('#choices-text-email-filter', { editItems: true, - regexFilter: /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/, + addItemFilterFn: (value) => { + if (!value) { + return false; + } + + const regex = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ + const expression = new RegExp(regex.source, 'i'); + return expression.test(value); + }, }).setValue(['joe@bloggs.com']); var textDisabled = new Choices('#choices-text-disabled', { diff --git a/test/select-multiple.html b/test/select-multiple.html index a2a76212..2b0b4a81 100644 --- a/test/select-multiple.html +++ b/test/select-multiple.html @@ -33,7 +33,6 @@ - @@ -220,10 +219,6 @@ choicesBasic.hideDropdown(); }); - document.querySelector('button.toggle-dropdown').addEventListener('click', () => { - choicesBasic.toggleDropdown(true); - }); - document.querySelector('button.disable').addEventListener('click', () => { choicesBasic.disable(); }); diff --git a/test/text.html b/test/text.html index dd7427f8..1d4ea24e 100644 --- a/test/text.html +++ b/test/text.html @@ -54,9 +54,9 @@ -
- - +
+ +
@@ -64,11 +64,6 @@
-
- - -
-
@@ -117,20 +112,19 @@ maxItemCount: 5, }); - new Choices('#choices-regex-filter', { - regexFilter: /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/, + new Choices('#choices-add-item-filter', { + addItems: true, + addItemFilterFn: (value) => { + const regex = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ + const expression = new RegExp(regex.source, 'i'); + return expression.test(value); + }, }); new Choices('#choices-adding-items-disabled', { addItems: false, }); - new Choices('#choices-add-item-callback', { - addItemFilter: function (value) { - return (value !== 'test') - } - }); - new Choices('#choices-disabled-via-attr'); new Choices('#choices-prepend-append', {