Rename duplicateItems to duplicateItemsAllowed for clarity

This commit is contained in:
Josh Johnson 2018-05-29 09:30:05 +01:00
parent f286dbc653
commit 8a21c12482
9 changed files with 66 additions and 62 deletions

View file

@ -69,7 +69,7 @@ Or include Choices directly:
removeItems: true, removeItems: true,
removeItemButton: false, removeItemButton: false,
editItems: false, editItems: false,
duplicateItems: true, duplicateItemsAllowed: true,
delimiter: ',', delimiter: ',',
paste: true, paste: true,
searchEnabled: true, searchEnabled: true,
@ -256,12 +256,12 @@ Pass an array of objects:
**Usage:** Whether a user can edit items. An item's value can be edited by pressing the backspace. **Usage:** Whether a user can edit items. An item's value can be edited by pressing the backspace.
### duplicateItems ### duplicateItemsAllowed
**Type:** `Boolean` **Default:** `true` **Type:** `Boolean` **Default:** `true`
**Input types affected:** `text`, `select-multiple` **Input types affected:** `text`, `select-multiple`
**Usage:** Whether each inputted/chosen item should be unique. **Usage:** Whether duplicate inputted/chosen items are allowed
### delimiter ### delimiter
**Type:** `String` **Default:** `,` **Type:** `String` **Default:** `,`

View file

@ -577,7 +577,7 @@ var DEFAULT_CONFIG = exports.DEFAULT_CONFIG = {
removeItems: true, removeItems: true,
removeItemButton: false, removeItemButton: false,
editItems: false, editItems: false,
duplicateItems: true, duplicateItemsAllowed: true,
delimiter: ',', delimiter: ',',
paste: true, paste: true,
searchEnabled: true, searchEnabled: true,
@ -2975,7 +2975,7 @@ var Choices = function () {
canAddItem = (0, _utils.regexFilter)(value, this.config.regexFilter); canAddItem = (0, _utils.regexFilter)(value, this.config.regexFilter);
} }
if (!this.config.duplicateItems && !valueAlreadyExists && canAddItem) { if (!this.config.duplicateItemsAllowed && !valueAlreadyExists && canAddItem) {
canAddItem = false; canAddItem = false;
notice = (0, _utils.isType)('Function', this.config.uniqueItemText) ? this.config.uniqueItemText(value) : this.config.uniqueItemText; notice = (0, _utils.isType)('Function', this.config.uniqueItemText) ? this.config.uniqueItemText(value) : this.config.uniqueItemText;
} }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -316,13 +316,13 @@
var textUniqueVals = new Choices('#choices-text-unique-values', { var textUniqueVals = new Choices('#choices-text-unique-values', {
paste: false, paste: false,
duplicateItems: false, duplicateItemsAllowed: false,
editItems: true, editItems: true,
}); });
var texti18n = new Choices('#choices-text-i18n', { var texti18n = new Choices('#choices-text-i18n', {
paste: false, paste: false,
duplicateItems: false, duplicateItemsAllowed: false,
editItems: true, editItems: true,
maxItemCount: 5, maxItemCount: 5,
addItemText: function(value) { addItemText: function(value) {

View file

@ -802,7 +802,7 @@ class Choices {
: this.config.addItemText; : this.config.addItemText;
if (!this._isSelectOneElement) { if (!this._isSelectOneElement) {
const valueAlreadyExists = !existsInArray(activeItems, value); const isDuplicateValue = existsInArray(activeItems, value);
if ( if (
this.config.maxItemCount > 0 && this.config.maxItemCount > 0 &&
@ -828,7 +828,11 @@ class Choices {
canAddItem = regexFilter(value, this.config.regexFilter); canAddItem = regexFilter(value, this.config.regexFilter);
} }
if (!this.config.duplicateItems && !valueAlreadyExists && canAddItem) { if (
!this.config.duplicateItemsAllowed &&
isDuplicateValue &&
canAddItem
) {
canAddItem = false; canAddItem = false;
notice = isType('Function', this.config.uniqueItemText) notice = isType('Function', this.config.uniqueItemText)
? this.config.uniqueItemText(value) ? this.config.uniqueItemText(value)

View file

@ -39,7 +39,7 @@ export const DEFAULT_CONFIG = {
removeItems: true, removeItems: true,
removeItemButton: false, removeItemButton: false,
editItems: false, editItems: false,
duplicateItems: true, duplicateItemsAllowed: true,
delimiter: ',', delimiter: ',',
paste: true, paste: true,
searchEnabled: true, searchEnabled: true,

View file

@ -59,7 +59,7 @@ describe('constants', () => {
expect(DEFAULT_CONFIG.removeItems).to.be.a('boolean'); expect(DEFAULT_CONFIG.removeItems).to.be.a('boolean');
expect(DEFAULT_CONFIG.removeItemButton).to.be.a('boolean'); expect(DEFAULT_CONFIG.removeItemButton).to.be.a('boolean');
expect(DEFAULT_CONFIG.editItems).to.be.a('boolean'); expect(DEFAULT_CONFIG.editItems).to.be.a('boolean');
expect(DEFAULT_CONFIG.duplicateItems).to.be.a('boolean'); expect(DEFAULT_CONFIG.duplicateItemsAllowed).to.be.a('boolean');
expect(DEFAULT_CONFIG.delimiter).to.be.a('string'); expect(DEFAULT_CONFIG.delimiter).to.be.a('string');
expect(DEFAULT_CONFIG.paste).to.be.a('boolean'); expect(DEFAULT_CONFIG.paste).to.be.a('boolean');
expect(DEFAULT_CONFIG.searchEnabled).to.be.a('boolean'); expect(DEFAULT_CONFIG.searchEnabled).to.be.a('boolean');

2
types/index.d.ts vendored
View file

@ -320,7 +320,7 @@ declare namespace Choices {
* *
* @default true * @default true
*/ */
duplicateItems?: boolean; duplicateItemsAllowed?: boolean;
/** /**
* What divides each value. The default delimiter seperates each value with a comma: `"Value 1, Value 2, Value 3"`. * What divides each value. The default delimiter seperates each value with a comma: `"Value 1, Value 2, Value 3"`.