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
This commit is contained in:
Josh Johnson 2019-02-12 18:35:46 +00:00 committed by GitHub
parent 938b65d880
commit 1d579b5b20
4 changed files with 19 additions and 27 deletions

View file

@ -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', {

View file

@ -33,7 +33,6 @@
<label for="choices-basic">Basic</label>
<button class="open-dropdown push-bottom">Open dropdown</button>
<button class="close-dropdown push-bottom">Close dropdown</button>
<button class="toggle-dropdown push-bottom">Toggle dropdown</button>
<button class="disable push-bottom">Disable</button>
<button class="enable push-bottom">Enable</button>
<select class="form-control" name="choices-basic" id="choices-basic" multiple>
@ -216,10 +215,6 @@
choicesBasic.hideDropdown();
});
document.querySelector('button.toggle-dropdown').addEventListener('click', () => {
choicesBasic.toggleDropdown();
});
document.querySelector('button.disable').addEventListener('click', () => {
choicesBasic.disable();
});

View file

@ -33,7 +33,6 @@
<label for="choices-basic">Basic</label>
<button class="open-dropdown push-bottom">Open dropdown</button>
<button class="close-dropdown push-bottom">Close dropdown</button>
<button class="toggle-dropdown push-bottom">Toggle dropdown</button>
<button class="disable push-bottom">Disable</button>
<button class="enable push-bottom">Enable</button>
<select class="form-control" name="choices-basic" id="choices-basic">
@ -220,10 +219,6 @@
choicesBasic.hideDropdown();
});
document.querySelector('button.toggle-dropdown').addEventListener('click', () => {
choicesBasic.toggleDropdown(true);
});
document.querySelector('button.disable').addEventListener('click', () => {
choicesBasic.disable();
});

View file

@ -54,9 +54,9 @@
<input class="form-control" id="choices-input-limit" type="text">
</div>
<div data-test-hook="regex-filter">
<label for="choices-regex-filter">Regex filter</label>
<input class="form-control" id="choices-regex-filter" type="text">
<div data-test-hook="add-item-filter">
<label for="choices-add-item-filter">Add item filter</label>
<input class="form-control" id="choices-add-item-filter" type="text">
</div>
<div data-test-hook="adding-items-disabled">
@ -64,11 +64,6 @@
<input class="form-control" id="choices-adding-items-disabled" type="text">
</div>
<div data-test-hook="add-item-callback">
<label for="choices-add-item-callback">Callback on Add Item</label>
<input class="form-control" id="choices-add-item-callback" type="text">
</div>
<div data-test-hook="disabled-via-attr">
<label for="choices-disabled-via-attr">Disabled via attribute</label>
<input class="form-control" id="choices-disabled-via-attr" type="text" disabled>
@ -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', {