|
1 | 1 | /* |
2 | | - * # Fomantic UI - 2.10.0-beta.16+fd10e3b |
| 2 | + * # Fomantic UI - 2.10.0-beta.17+3be2655 |
3 | 3 | * https://github.com/fomantic/Fomantic-UI |
4 | 4 | * https://fomantic-ui.com/ |
5 | 5 | * |
|
7290 | 7290 | } |
7291 | 7291 | if (settings.allowAdditions) { |
7292 | 7292 | module.add.userSuggestion(settings.preserveHTML |
7293 | | - ? module.escape.htmlEntities(query) |
| 7293 | + ? settings.templates.escape(query) |
7294 | 7294 | : query); |
7295 | 7295 | } |
7296 | 7296 | if (module.is.searchSelection() && module.can.show() && module.is.focusedOnSearch() && !module.is.empty()) { |
|
7374 | 7374 | if (values.length === 0 && !settings.allowAdditions) { |
7375 | 7375 | module.add.message(message.noResults); |
7376 | 7376 | } else { |
7377 | | - let value = module.is.multiple() ? module.get.values(true) : module.get.value(); |
| 7377 | + let value = module.is.multiple() ? module.get.values() : module.get.value(); |
7378 | 7378 | if (value !== '') { |
7379 | 7379 | module.verbose('Value(s) present after click icon, select value(s) in items'); |
7380 | 7380 | module.set.selected(value, null, true, true); |
|
7603 | 7603 | $input.html(''); |
7604 | 7604 | $input.append('<option disabled selected value></option>'); |
7605 | 7605 | $.each(values, function (index, item) { |
7606 | | - let value = settings.templates.escape(item[fields.value]); |
7607 | | - let name = settings.templates.escape( |
7608 | | - item[fields.name] || '', |
7609 | | - settings |
7610 | | - ); |
7611 | | - $input.append('<option value="' + value + '"' + (item.selected === true ? ' selected' : '') + '>' + name + '</option>'); |
| 7606 | + let value = item[fields.value]; |
| 7607 | + let name = item[fields.name] || ''; |
| 7608 | + $input.append('<option value="' + settings.templates.escape(value) + '"' + (item.selected === true ? ' selected' : '') + '>' + settings.templates.escape(name, settings) + '</option>'); |
7612 | 7609 | }); |
7613 | 7610 | module.observe.select(); |
7614 | 7611 | } |
|
7621 | 7618 | let tokens = pasteValue.split(settings.delimiter); |
7622 | 7619 | let notFoundTokens = []; |
7623 | 7620 | tokens.forEach(function (value) { |
| 7621 | + value = value.trim(); |
7624 | 7622 | const valueTrimmed = settings.preserveHTML |
7625 | | - ? module.escape.htmlEntities(value.trim()) |
7626 | | - : value.trim(); |
| 7623 | + ? settings.templates.escape(value) |
| 7624 | + : value; |
7627 | 7625 | if (module.set.selected(valueTrimmed, null, false, true) === false) { |
7628 | 7626 | notFoundTokens.push(valueTrimmed); |
7629 | 7627 | } |
|
8394 | 8392 | : settings.transition; |
8395 | 8393 | }, |
8396 | 8394 | userValues: function () { |
8397 | | - let values = module.get.values(true); |
| 8395 | + let values = module.get.values(); |
8398 | 8396 | if (!values) { |
8399 | 8397 | return false; |
8400 | 8398 | } |
|
8444 | 8442 | ? '' |
8445 | 8443 | : value; |
8446 | 8444 | }, |
8447 | | - values: function (raw) { |
| 8445 | + values: function () { |
8448 | 8446 | let value = module.get.value(); |
8449 | 8447 | if (value === '') { |
8450 | 8448 | return ''; |
8451 | 8449 | } |
8452 | 8450 |
|
8453 | 8451 | return !module.has.selectInput() && module.is.multiple() |
8454 | 8452 | ? (typeof value === 'string' // delimited string |
8455 | | - ? (raw |
8456 | | - ? value |
8457 | | - : module.escape.htmlEntities(value)).split(settings.delimiter) |
| 8453 | + ? value.split(settings.delimiter) |
8458 | 8454 | : '') |
8459 | 8455 | : value; |
8460 | 8456 | }, |
8461 | 8457 | remoteValues: function () { |
8462 | | - let values = module.get.values(true); |
| 8458 | + let values = module.get.values(); |
8463 | 8459 | let remoteValues = false; |
8464 | 8460 | if (values) { |
8465 | 8461 | if (typeof values === 'string') { |
|
8615 | 8611 | let isMultiple; |
8616 | 8612 | value = value !== undefined |
8617 | 8613 | ? value |
8618 | | - : (module.get.values(true) !== undefined |
8619 | | - ? module.get.values(true) |
| 8614 | + : (module.get.values() !== undefined |
| 8615 | + ? module.get.values() |
8620 | 8616 | : module.get.text()); |
8621 | 8617 | isMultiple = module.is.multiple() && Array.isArray(value); |
8622 | 8618 | shouldSearch = isMultiple |
|
8653 | 8649 | optionValue = optionValue.toLowerCase(); |
8654 | 8650 | value = value.toLowerCase(); |
8655 | 8651 | } |
8656 | | - if (module.escape.htmlEntities(String(optionValue)) === module.escape.htmlEntities(String(value))) { |
| 8652 | + if (String(optionValue) === String(value)) { |
8657 | 8653 | module.verbose('Found select item by value', optionValue, value); |
8658 | 8654 | $selectedItem = $choice; |
8659 | 8655 |
|
|
9119 | 9115 | $input.addClass(className.noselection); |
9120 | 9116 | } |
9121 | 9117 | let hasInput = $input.length > 0; |
9122 | | - let currentValue = module.get.values(true); |
| 9118 | + let currentValue = module.get.values(); |
9123 | 9119 | let stringValue = value !== undefined |
9124 | 9120 | ? String(value) |
9125 | 9121 | : value; |
|
9407 | 9403 | $selectedItem = undefined; |
9408 | 9404 | addedText = undefined; |
9409 | 9405 | } |
9410 | | - let currentValue = module.get.values(true); |
| 9406 | + let currentValue = module.get.values(); |
9411 | 9407 | let newValue; |
9412 | 9408 | if (module.has.value(addedValue)) { |
9413 | 9409 | module.debug('Value already selected'); |
|
9421 | 9417 | } |
9422 | 9418 | // extend current array |
9423 | 9419 | if (Array.isArray(currentValue)) { |
9424 | | - newValue = $selectedItem && $selectedItem.hasClass(className.actionable) ? currentValue : currentValue.concat([addedValue]); |
| 9420 | + newValue = $selectedItem && $selectedItem.hasClass(className.actionable) |
| 9421 | + ? currentValue |
| 9422 | + : currentValue.concat([addedValue]); |
9425 | 9423 | newValue = module.get.uniqueArray(newValue); |
9426 | 9424 | } else { |
9427 | 9425 | newValue = [addedValue]; |
|
9564 | 9562 | $item.removeClass(className.selected); |
9565 | 9563 | }, |
9566 | 9564 | value: function (removedValue, removedText, $removedItem, preventChangeTrigger) { |
9567 | | - let values = module.get.values(true); |
| 9565 | + let values = module.get.values(); |
9568 | 9566 | let newValue; |
9569 | 9567 | if (module.has.selectInput()) { |
9570 | 9568 | module.verbose('Input is <select> removing selected option', removedValue); |
|
9734 | 9732 | : module.has.valueMatchingCase(value); |
9735 | 9733 | }, |
9736 | 9734 | valueMatchingCase: function (value) { |
9737 | | - let values = module.get.values(true); |
| 9735 | + let values = module.get.values(); |
9738 | 9736 | let hasValue = Array.isArray(values) |
9739 | 9737 | ? values && ($.inArray(value, values) !== -1) |
9740 | 9738 | : values == value; |
9741 | 9739 |
|
9742 | 9740 | return !!hasValue; |
9743 | 9741 | }, |
9744 | 9742 | valueIgnoringCase: function (value) { |
9745 | | - let values = module.get.values(true); |
| 9743 | + let values = module.get.values(); |
9746 | 9744 | let hasValue = false; |
9747 | 9745 | if (!Array.isArray(values)) { |
9748 | 9746 | values = [values]; |
|
10122 | 10120 |
|
10123 | 10121 | return text.replace(regExp.escape, '\\$&'); |
10124 | 10122 | }, |
10125 | | - htmlEntities: function (string) { |
10126 | | - const escapeMap = { |
10127 | | - '"': '"', |
10128 | | - '&': '&', |
10129 | | - "'": ''', |
10130 | | - '<': '<', |
10131 | | - '>': '>', |
10132 | | - }; |
10133 | | - |
10134 | | - return String(string).replace(/["&'<>]/g, (chr) => escapeMap[chr]); |
10135 | | - }, |
10136 | 10123 |
|
10137 | 10124 | // https://github.com/fomantic/Fomantic-UI/issues/2782 |
10138 | 10125 | // https://jsfiddle.net/3efL7jnt/ |
|
0 commit comments