fomantic-ui 2.9.1-beta.23 → 2.9.1-beta.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslint/index.js +23 -0
- package/.eslint/no-extra-parens-rule.js +17 -0
- package/.eslint/package.json +11 -0
- package/.eslintrc.js +6 -11
- package/dist/components/accordion.css +1 -1
- package/dist/components/accordion.js +22 -22
- package/dist/components/accordion.min.css +1 -1
- package/dist/components/accordion.min.js +1 -1
- package/dist/components/ad.css +1 -1
- package/dist/components/ad.min.css +1 -1
- package/dist/components/api.js +47 -47
- package/dist/components/api.min.js +1 -1
- package/dist/components/breadcrumb.css +1 -1
- package/dist/components/breadcrumb.min.css +1 -1
- package/dist/components/button.css +1 -1
- package/dist/components/button.min.css +1 -1
- package/dist/components/calendar.css +1 -1
- package/dist/components/calendar.js +69 -58
- package/dist/components/calendar.min.css +1 -1
- package/dist/components/calendar.min.js +2 -2
- package/dist/components/card.css +1 -1
- package/dist/components/card.min.css +1 -1
- package/dist/components/checkbox.css +1 -1
- package/dist/components/checkbox.js +9 -9
- package/dist/components/checkbox.min.css +1 -1
- package/dist/components/checkbox.min.js +1 -1
- package/dist/components/comment.css +1 -1
- package/dist/components/comment.min.css +1 -1
- package/dist/components/container.css +1 -1
- package/dist/components/container.min.css +1 -1
- package/dist/components/dimmer.css +1 -1
- package/dist/components/dimmer.js +11 -11
- package/dist/components/dimmer.min.css +1 -1
- package/dist/components/dimmer.min.js +1 -1
- package/dist/components/divider.css +1 -1
- package/dist/components/divider.min.css +1 -1
- package/dist/components/dropdown.css +1 -1
- package/dist/components/dropdown.js +171 -173
- package/dist/components/dropdown.min.css +1 -1
- package/dist/components/dropdown.min.js +1 -1
- package/dist/components/embed.css +1 -1
- package/dist/components/embed.js +16 -16
- package/dist/components/embed.min.css +1 -1
- package/dist/components/embed.min.js +1 -1
- package/dist/components/feed.css +1 -1
- package/dist/components/feed.min.css +1 -1
- package/dist/components/flag.css +1 -1
- package/dist/components/flag.min.css +1 -1
- package/dist/components/flyout.css +1 -1
- package/dist/components/flyout.js +21 -17
- package/dist/components/flyout.min.css +1 -1
- package/dist/components/flyout.min.js +1 -1
- package/dist/components/form.css +1 -1
- package/dist/components/form.js +87 -87
- package/dist/components/form.min.css +1 -1
- package/dist/components/form.min.js +1 -1
- package/dist/components/grid.css +1 -1
- package/dist/components/grid.min.css +1 -1
- package/dist/components/header.css +1 -1
- package/dist/components/header.min.css +1 -1
- package/dist/components/icon.css +1 -1
- package/dist/components/icon.min.css +1 -1
- package/dist/components/image.css +1 -1
- package/dist/components/image.min.css +1 -1
- package/dist/components/input.css +1 -1
- package/dist/components/input.min.css +1 -1
- package/dist/components/item.css +1 -1
- package/dist/components/item.min.css +1 -1
- package/dist/components/label.css +1 -1
- package/dist/components/label.min.css +1 -1
- package/dist/components/list.css +1 -1
- package/dist/components/list.min.css +1 -1
- package/dist/components/loader.css +1 -1
- package/dist/components/loader.min.css +1 -1
- package/dist/components/message.css +1 -1
- package/dist/components/message.min.css +1 -1
- package/dist/components/modal.css +1 -1
- package/dist/components/modal.js +30 -26
- package/dist/components/modal.min.css +1 -1
- package/dist/components/modal.min.js +1 -1
- package/dist/components/nag.css +1 -1
- package/dist/components/nag.js +7 -7
- package/dist/components/nag.min.css +1 -1
- package/dist/components/nag.min.js +1 -1
- package/dist/components/placeholder.css +1 -1
- package/dist/components/placeholder.min.css +1 -1
- package/dist/components/popup.css +1 -1
- package/dist/components/popup.js +45 -45
- package/dist/components/popup.min.css +1 -1
- package/dist/components/popup.min.js +1 -1
- package/dist/components/progress.css +1 -1
- package/dist/components/progress.js +30 -32
- package/dist/components/progress.min.css +1 -1
- package/dist/components/progress.min.js +1 -1
- package/dist/components/rail.css +1 -1
- package/dist/components/rail.min.css +1 -1
- package/dist/components/rating.css +1 -1
- package/dist/components/rating.js +10 -10
- package/dist/components/rating.min.css +1 -1
- package/dist/components/rating.min.js +1 -1
- package/dist/components/reset.css +1 -1
- package/dist/components/reset.min.css +1 -1
- package/dist/components/reveal.css +1 -1
- package/dist/components/reveal.min.css +1 -1
- package/dist/components/search.css +1 -1
- package/dist/components/search.js +31 -31
- package/dist/components/search.min.css +1 -1
- package/dist/components/search.min.js +1 -1
- package/dist/components/segment.css +1 -1
- package/dist/components/segment.min.css +1 -1
- package/dist/components/shape.css +1 -1
- package/dist/components/shape.js +34 -34
- package/dist/components/shape.min.css +1 -1
- package/dist/components/shape.min.js +1 -1
- package/dist/components/sidebar.css +1 -1
- package/dist/components/sidebar.js +21 -21
- package/dist/components/sidebar.min.css +1 -1
- package/dist/components/sidebar.min.js +1 -1
- package/dist/components/site.css +1 -1
- package/dist/components/site.js +14 -14
- package/dist/components/site.min.css +1 -1
- package/dist/components/site.min.js +1 -1
- package/dist/components/slider.js +33 -25
- package/dist/components/slider.min.js +1 -1
- package/dist/components/state.js +11 -11
- package/dist/components/state.min.js +1 -1
- package/dist/components/statistic.css +1 -1
- package/dist/components/statistic.min.css +1 -1
- package/dist/components/step.css +1 -1
- package/dist/components/step.min.css +1 -1
- package/dist/components/sticky.css +1 -1
- package/dist/components/sticky.js +21 -21
- package/dist/components/sticky.min.css +1 -1
- package/dist/components/sticky.min.js +1 -1
- package/dist/components/tab.css +1 -1
- package/dist/components/tab.js +23 -23
- package/dist/components/tab.min.css +1 -1
- package/dist/components/tab.min.js +1 -1
- package/dist/components/table.css +1 -1
- package/dist/components/table.min.css +1 -1
- package/dist/components/text.css +1 -1
- package/dist/components/text.min.css +1 -1
- package/dist/components/toast.css +1 -1
- package/dist/components/toast.js +41 -17
- package/dist/components/toast.min.css +1 -1
- package/dist/components/toast.min.js +1 -1
- package/dist/components/transition.css +1 -1
- package/dist/components/transition.js +21 -21
- package/dist/components/transition.min.css +1 -1
- package/dist/components/transition.min.js +1 -1
- package/dist/components/visibility.js +21 -21
- package/dist/components/visibility.min.js +1 -1
- package/dist/semantic.css +50 -50
- package/dist/semantic.js +847 -800
- package/dist/semantic.min.css +1 -1
- package/dist/semantic.min.js +2 -2
- package/gulpfile.js +1 -1
- package/package.json +2 -1
- package/scripts/nightly-version.js +3 -1
- package/src/definitions/behaviors/api.js +46 -46
- package/src/definitions/behaviors/form.js +86 -86
- package/src/definitions/behaviors/state.js +10 -10
- package/src/definitions/behaviors/visibility.js +20 -20
- package/src/definitions/globals/site.js +13 -13
- package/src/definitions/modules/accordion.js +21 -21
- package/src/definitions/modules/calendar.js +68 -57
- package/src/definitions/modules/checkbox.js +8 -8
- package/src/definitions/modules/dimmer.js +10 -10
- package/src/definitions/modules/dropdown.js +170 -172
- package/src/definitions/modules/embed.js +15 -15
- package/src/definitions/modules/flyout.js +20 -16
- package/src/definitions/modules/modal.js +29 -25
- package/src/definitions/modules/nag.js +6 -6
- package/src/definitions/modules/popup.js +44 -44
- package/src/definitions/modules/progress.js +29 -31
- package/src/definitions/modules/rating.js +9 -9
- package/src/definitions/modules/search.js +30 -30
- package/src/definitions/modules/shape.js +33 -33
- package/src/definitions/modules/sidebar.js +20 -20
- package/src/definitions/modules/slider.js +32 -24
- package/src/definitions/modules/sticky.js +20 -20
- package/src/definitions/modules/tab.js +22 -22
- package/src/definitions/modules/toast.js +40 -16
- package/src/definitions/modules/transition.js +20 -20
- package/tasks/admin/components/create.js +1 -1
- package/tasks/admin/components/init.js +1 -1
- package/tasks/admin/components/update.js +4 -4
- package/tasks/admin/distributions/create.js +2 -2
- package/tasks/admin/distributions/init.js +1 -1
- package/tasks/admin/distributions/update.js +4 -4
- package/tasks/admin/publish.js +1 -3
- package/tasks/admin/register.js +5 -5
- package/tasks/admin/release.js +1 -3
- package/tasks/build/assets.js +1 -1
- package/tasks/build.js +1 -1
- package/tasks/check-install.js +1 -1
- package/tasks/clean.js +1 -1
- package/tasks/collections/admin.js +1 -1
- package/tasks/collections/rtl.js +1 -1
- package/tasks/config/admin/github.js +3 -4
- package/tasks/config/npm/gulpfile.js +1 -1
- package/tasks/config/project/config.js +8 -6
- package/tasks/config/project/install.js +10 -10
- package/tasks/config/project/release.js +3 -2
- package/tasks/config/tasks.js +2 -2
- package/tasks/config/user.js +5 -3
- package/tasks/docs/build.js +1 -1
- package/tasks/docs/metadata.js +1 -1
- package/tasks/docs/serve.js +2 -1
- package/tasks/install.js +2 -2
- package/tasks/rtl/build.js +1 -3
- package/tasks/rtl/watch.js +1 -3
- package/tasks/version.js +1 -3
- package/tasks/watch.js +1 -1
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* # Fomantic-UI 2.9.1-beta.
|
2
|
+
* # Fomantic-UI 2.9.1-beta.24+029436f - Dropdown
|
3
3
|
* https://github.com/fomantic/Fomantic-UI/
|
4
4
|
*
|
5
5
|
*
|
@@ -15,7 +15,7 @@
|
|
15
15
|
return typeof obj === 'function' && typeof obj.nodeType !== 'number';
|
16
16
|
}
|
17
17
|
|
18
|
-
window =
|
18
|
+
window = window !== undefined && window.Math === Math
|
19
19
|
? window
|
20
20
|
: globalThis;
|
21
21
|
|
@@ -30,14 +30,14 @@
|
|
30
30
|
performance = [],
|
31
31
|
|
32
32
|
query = arguments[0],
|
33
|
-
methodInvoked =
|
33
|
+
methodInvoked = typeof query === 'string',
|
34
34
|
queryArguments = [].slice.call(arguments, 1),
|
35
35
|
returnedValue
|
36
36
|
;
|
37
37
|
|
38
38
|
$allModules.each(function (elementIndex) {
|
39
39
|
var
|
40
|
-
settings =
|
40
|
+
settings = $.isPlainObject(parameters)
|
41
41
|
? $.extend(true, {}, $.fn.dropdown.settings, parameters)
|
42
42
|
: $.extend({}, $.fn.dropdown.settings),
|
43
43
|
|
@@ -64,13 +64,15 @@
|
|
64
64
|
$icon = $module.find(selector.icon),
|
65
65
|
$clear = $module.find(selector.clearIcon),
|
66
66
|
|
67
|
-
$combo =
|
67
|
+
$combo = $module.prev().find(selector.text).length > 0
|
68
68
|
? $module.prev().find(selector.text)
|
69
69
|
: $module.prev(),
|
70
70
|
|
71
71
|
$menu = $module.children(selector.menu),
|
72
72
|
$item = $menu.find(selector.item),
|
73
|
-
$divider = settings.hideDividers
|
73
|
+
$divider = settings.hideDividers
|
74
|
+
? $item.parent().children(selector.divider)
|
75
|
+
: $(),
|
74
76
|
|
75
77
|
activated = false,
|
76
78
|
itemActivated = false,
|
@@ -243,7 +245,7 @@
|
|
243
245
|
if (settings.hideAdditions) {
|
244
246
|
$userChoice.addClass(className.hidden);
|
245
247
|
}
|
246
|
-
$userChoices =
|
248
|
+
$userChoices = $userChoices === undefined
|
247
249
|
? $userChoice
|
248
250
|
: $userChoices.add($userChoice);
|
249
251
|
module.verbose('Creating user choices for value', value, $userChoice);
|
@@ -279,7 +281,7 @@
|
|
279
281
|
},
|
280
282
|
|
281
283
|
search: function (query) {
|
282
|
-
query =
|
284
|
+
query = query !== undefined
|
283
285
|
? query
|
284
286
|
: module.get.query();
|
285
287
|
module.verbose('Searching for query', query);
|
@@ -308,7 +310,7 @@
|
|
308
310
|
var
|
309
311
|
$nextAvailable = $selected.nextAll(selector.item).not(selector.unselectable).eq(0),
|
310
312
|
$prevAvailable = $selected.prevAll(selector.item).not(selector.unselectable).eq(0),
|
311
|
-
hasNext =
|
313
|
+
hasNext = $nextAvailable.length > 0
|
312
314
|
;
|
313
315
|
if (hasNext) {
|
314
316
|
module.verbose('Moving selection to', $nextAvailable);
|
@@ -468,7 +470,7 @@
|
|
468
470
|
$search = $module.find(selector.search);
|
469
471
|
$input = $module.find(selector.input);
|
470
472
|
$icon = $module.find(selector.icon);
|
471
|
-
$combo =
|
473
|
+
$combo = $module.prev().find(selector.text).length > 0
|
472
474
|
? $module.prev().find(selector.text)
|
473
475
|
: $module.prev();
|
474
476
|
$menu = $module.children(selector.menu);
|
@@ -720,7 +722,7 @@
|
|
720
722
|
|
721
723
|
filter: function (query) {
|
722
724
|
var
|
723
|
-
searchTerm =
|
725
|
+
searchTerm = query !== undefined
|
724
726
|
? query
|
725
727
|
: module.get.query(),
|
726
728
|
afterFiltered = function () {
|
@@ -959,13 +961,13 @@
|
|
959
961
|
termLength = term.length,
|
960
962
|
queryLength = query.length
|
961
963
|
;
|
962
|
-
query =
|
963
|
-
term =
|
964
|
+
query = settings.ignoreSearchCase ? query.toLowerCase() : query;
|
965
|
+
term = settings.ignoreSearchCase ? term.toLowerCase() : term;
|
964
966
|
if (queryLength > termLength) {
|
965
967
|
return false;
|
966
968
|
}
|
967
969
|
if (queryLength === termLength) {
|
968
|
-
return
|
970
|
+
return query === term;
|
969
971
|
}
|
970
972
|
for (var characterIndex = 0, nextCharacterIndex = 0; characterIndex < queryLength; characterIndex++) {
|
971
973
|
var
|
@@ -988,8 +990,8 @@
|
|
988
990
|
return true;
|
989
991
|
},
|
990
992
|
exactSearch: function (query, term) {
|
991
|
-
query =
|
992
|
-
term =
|
993
|
+
query = settings.ignoreSearchCase ? query.toLowerCase() : query;
|
994
|
+
term = settings.ignoreSearchCase ? term.toLowerCase() : term;
|
993
995
|
|
994
996
|
return term.indexOf(query) > -1;
|
995
997
|
},
|
@@ -1023,10 +1025,10 @@
|
|
1023
1025
|
var
|
1024
1026
|
$currentlySelected = $item.not(className.filtered).filter('.' + className.selected).eq(0),
|
1025
1027
|
$activeItem = $item.not(className.filtered).filter('.' + className.active).eq(0),
|
1026
|
-
$selectedItem =
|
1028
|
+
$selectedItem = $currentlySelected.length > 0
|
1027
1029
|
? $currentlySelected
|
1028
1030
|
: $activeItem,
|
1029
|
-
hasSelected =
|
1031
|
+
hasSelected = $selectedItem.length > 0
|
1030
1032
|
;
|
1031
1033
|
if (settings.allowAdditions || (hasSelected && !module.is.multiple())) {
|
1032
1034
|
module.debug('Forcing partial selection to selected item', $selectedItem);
|
@@ -1098,7 +1100,7 @@
|
|
1098
1100
|
}
|
1099
1101
|
},
|
1100
1102
|
blur: function (event) {
|
1101
|
-
pageLostFocus =
|
1103
|
+
pageLostFocus = document.activeElement === this;
|
1102
1104
|
if (!activated && !pageLostFocus) {
|
1103
1105
|
module.remove.activeLabel();
|
1104
1106
|
module.hide();
|
@@ -1146,7 +1148,7 @@
|
|
1146
1148
|
}
|
1147
1149
|
},
|
1148
1150
|
blur: function (event) {
|
1149
|
-
pageLostFocus =
|
1151
|
+
pageLostFocus = document.activeElement === this;
|
1150
1152
|
if (module.is.searchSelection(true) && !willRefocus) {
|
1151
1153
|
if (!itemActivated && !pageLostFocus) {
|
1152
1154
|
if (settings.forceSelection) {
|
@@ -1210,7 +1212,7 @@
|
|
1210
1212
|
$activeLabels = $labels.filter('.' + className.active),
|
1211
1213
|
$nextActive = $label.nextAll('.' + className.active),
|
1212
1214
|
$prevActive = $label.prevAll('.' + className.active),
|
1213
|
-
$range =
|
1215
|
+
$range = $nextActive.length > 0
|
1214
1216
|
? $label.nextUntil($nextActive).add($activeLabels).add($label)
|
1215
1217
|
: $label.prevUntil($prevActive).add($activeLabels).add($label)
|
1216
1218
|
;
|
@@ -1245,7 +1247,7 @@
|
|
1245
1247
|
test: {
|
1246
1248
|
toggle: function (event) {
|
1247
1249
|
var
|
1248
|
-
toggleBehavior =
|
1250
|
+
toggleBehavior = module.is.multiple()
|
1249
1251
|
? module.show
|
1250
1252
|
: module.toggle
|
1251
1253
|
;
|
@@ -1326,8 +1328,8 @@
|
|
1326
1328
|
$item = $(this),
|
1327
1329
|
$subMenu = $item.children(selector.menu),
|
1328
1330
|
$otherMenus = $item.siblings(selector.item).children(selector.menu),
|
1329
|
-
hasSubMenu =
|
1330
|
-
isBubbledEvent =
|
1331
|
+
hasSubMenu = $subMenu.length > 0,
|
1332
|
+
isBubbledEvent = $subMenu.find($target).length > 0
|
1331
1333
|
;
|
1332
1334
|
if (!isBubbledEvent && hasSubMenu) {
|
1333
1335
|
clearTimeout(module.itemTimer);
|
@@ -1358,14 +1360,14 @@
|
|
1358
1360
|
click: function (event, skipRefocus) {
|
1359
1361
|
var
|
1360
1362
|
$choice = $(this),
|
1361
|
-
$target =
|
1363
|
+
$target = event
|
1362
1364
|
? $(event.target)
|
1363
1365
|
: $(''),
|
1364
1366
|
$subMenu = $choice.find(selector.menu),
|
1365
1367
|
text = module.get.choiceText($choice),
|
1366
1368
|
value = module.get.choiceValue($choice, text),
|
1367
|
-
hasSubMenu =
|
1368
|
-
isBubbledEvent =
|
1369
|
+
hasSubMenu = $subMenu.length > 0,
|
1370
|
+
isBubbledEvent = $subMenu.find($target).length > 0
|
1369
1371
|
;
|
1370
1372
|
// prevents IE11 bug where menu receives focus even though `tabindex=-1`
|
1371
1373
|
if (document.activeElement.tagName.toLowerCase() !== 'input') {
|
@@ -1408,15 +1410,15 @@
|
|
1408
1410
|
activeValue = $activeLabel.data(metadata.value),
|
1409
1411
|
labelIndex = $label.index($activeLabel),
|
1410
1412
|
labelCount = $label.length,
|
1411
|
-
hasActiveLabel =
|
1412
|
-
hasMultipleActive =
|
1413
|
-
isFirstLabel =
|
1414
|
-
isLastLabel =
|
1413
|
+
hasActiveLabel = $activeLabel.length > 0,
|
1414
|
+
hasMultipleActive = $activeLabel.length > 1,
|
1415
|
+
isFirstLabel = labelIndex === 0,
|
1416
|
+
isLastLabel = labelIndex + 1 == labelCount,
|
1415
1417
|
isSearch = module.is.searchSelection(),
|
1416
1418
|
isFocusedOnSearch = module.is.focusedOnSearch(),
|
1417
1419
|
isFocused = module.is.focused(),
|
1418
|
-
caretAtStart =
|
1419
|
-
isSelectedSearch =
|
1420
|
+
caretAtStart = isFocusedOnSearch && module.get.caretPosition(false) === 0,
|
1421
|
+
isSelectedSearch = caretAtStart && module.get.caretPosition(true) !== 0
|
1420
1422
|
;
|
1421
1423
|
if (isSearch && !hasActiveLabel && !isFocusedOnSearch) {
|
1422
1424
|
return;
|
@@ -1512,19 +1514,19 @@
|
|
1512
1514
|
var
|
1513
1515
|
$currentlySelected = $item.not(selector.unselectable).filter('.' + className.selected).eq(0),
|
1514
1516
|
$activeItem = $menu.children('.' + className.active).eq(0),
|
1515
|
-
$selectedItem =
|
1517
|
+
$selectedItem = $currentlySelected.length > 0
|
1516
1518
|
? $currentlySelected
|
1517
1519
|
: $activeItem,
|
1518
|
-
$visibleItems =
|
1520
|
+
$visibleItems = $selectedItem.length > 0
|
1519
1521
|
? $selectedItem.siblings(':not(.' + className.filtered + ')').addBack()
|
1520
1522
|
: $menu.children(':not(.' + className.filtered + ')'),
|
1521
1523
|
$subMenu = $selectedItem.children(selector.menu),
|
1522
1524
|
$parentMenu = $selectedItem.closest(selector.menu),
|
1523
|
-
inVisibleMenu =
|
1524
|
-
hasSubMenu =
|
1525
|
-
hasSelectedItem =
|
1526
|
-
selectedIsSelectable =
|
1527
|
-
delimiterPressed =
|
1525
|
+
inVisibleMenu = $parentMenu.hasClass(className.visible) || $parentMenu.hasClass(className.animating) || $parentMenu.parent(selector.menu).length > 0,
|
1526
|
+
hasSubMenu = $subMenu.length > 0,
|
1527
|
+
hasSelectedItem = $selectedItem.length > 0,
|
1528
|
+
selectedIsSelectable = $selectedItem.not(selector.unselectable).length > 0,
|
1529
|
+
delimiterPressed = event.key === settings.delimiter && module.is.multiple(),
|
1528
1530
|
isAdditionWithoutMenu = settings.allowAdditions && (pressedKey == keys.enter || delimiterPressed),
|
1529
1531
|
$nextItem,
|
1530
1532
|
isSubMenuItem
|
@@ -1566,7 +1568,7 @@
|
|
1566
1568
|
// sub-menu actions
|
1567
1569
|
if (hasSelectedItem) {
|
1568
1570
|
if (pressedKey == keys.leftArrow) {
|
1569
|
-
isSubMenuItem =
|
1571
|
+
isSubMenuItem = $parentMenu[0] !== $menu[0];
|
1570
1572
|
|
1571
1573
|
if (isSubMenuItem) {
|
1572
1574
|
module.verbose('Left key pressed, closing sub-menu');
|
@@ -1601,7 +1603,7 @@
|
|
1601
1603
|
|
1602
1604
|
// up arrow (traverse menu up)
|
1603
1605
|
if (pressedKey == keys.upArrow) {
|
1604
|
-
$nextItem =
|
1606
|
+
$nextItem = hasSelectedItem && inVisibleMenu
|
1605
1607
|
? $selectedItem.prevAll(selector.item + ':not(' + selector.unselectable + ')').eq(0)
|
1606
1608
|
: $item.eq(0);
|
1607
1609
|
if ($visibleItems.index($nextItem) < 0) {
|
@@ -1628,7 +1630,7 @@
|
|
1628
1630
|
|
1629
1631
|
// down arrow (traverse menu down)
|
1630
1632
|
if (pressedKey == keys.downArrow) {
|
1631
|
-
$nextItem =
|
1633
|
+
$nextItem = hasSelectedItem && inVisibleMenu
|
1632
1634
|
? $selectedItem.nextAll(selector.item + ':not(' + selector.unselectable + ')').eq(0)
|
1633
1635
|
: $item.eq(0);
|
1634
1636
|
if ($nextItem.length === 0) {
|
@@ -1721,8 +1723,8 @@
|
|
1721
1723
|
eventInModule: function (event, callback) {
|
1722
1724
|
var
|
1723
1725
|
$target = $(event.target),
|
1724
|
-
inDocument =
|
1725
|
-
inModule =
|
1726
|
+
inDocument = $target.closest(document.documentElement).length > 0,
|
1727
|
+
inModule = $target.closest($module).length > 0
|
1726
1728
|
;
|
1727
1729
|
callback = isFunction(callback)
|
1728
1730
|
? callback
|
@@ -1743,8 +1745,8 @@
|
|
1743
1745
|
$target = $(event.target),
|
1744
1746
|
$label = $target.closest(selector.siblingLabel),
|
1745
1747
|
inVisibleDOM = document.body.contains(event.target),
|
1746
|
-
notOnLabel =
|
1747
|
-
notInMenu =
|
1748
|
+
notOnLabel = $module.find($label).length === 0 || !(module.is.multiple() && settings.useLabels),
|
1749
|
+
notInMenu = $target.closest($menu).length === 0
|
1748
1750
|
;
|
1749
1751
|
callback = isFunction(callback)
|
1750
1752
|
? callback
|
@@ -1767,7 +1769,7 @@
|
|
1767
1769
|
nothing: function () {},
|
1768
1770
|
|
1769
1771
|
activate: function (text, value, element) {
|
1770
|
-
value =
|
1772
|
+
value = value !== undefined
|
1771
1773
|
? value
|
1772
1774
|
: text;
|
1773
1775
|
if (module.can.activate($(element))) {
|
@@ -1779,7 +1781,7 @@
|
|
1779
1781
|
},
|
1780
1782
|
|
1781
1783
|
select: function (text, value, element) {
|
1782
|
-
value =
|
1784
|
+
value = value !== undefined
|
1783
1785
|
? value
|
1784
1786
|
: text;
|
1785
1787
|
if (module.can.activate($(element))) {
|
@@ -1791,7 +1793,7 @@
|
|
1791
1793
|
},
|
1792
1794
|
|
1793
1795
|
combo: function (text, value, element) {
|
1794
|
-
value =
|
1796
|
+
value = value !== undefined
|
1795
1797
|
? value
|
1796
1798
|
: text;
|
1797
1799
|
module.set.selected(value, $(element));
|
@@ -1829,7 +1831,7 @@
|
|
1829
1831
|
return String($search.val()).trim();
|
1830
1832
|
},
|
1831
1833
|
searchWidth: function (value) {
|
1832
|
-
value =
|
1834
|
+
value = value !== undefined
|
1833
1835
|
? value
|
1834
1836
|
: $search.val();
|
1835
1837
|
$sizer.text(value);
|
@@ -1842,21 +1844,15 @@
|
|
1842
1844
|
values = module.get.values(),
|
1843
1845
|
count
|
1844
1846
|
;
|
1845
|
-
count =
|
1846
|
-
? Array.isArray(values)
|
1847
|
-
|
1848
|
-
: 0
|
1849
|
-
: (module.get.value() !== '')
|
1850
|
-
? 1
|
1851
|
-
: 0;
|
1847
|
+
count = module.is.multiple()
|
1848
|
+
? (Array.isArray(values) ? values.length : 0)
|
1849
|
+
: (module.get.value() !== '' ? 1 : 0);
|
1852
1850
|
|
1853
1851
|
return count;
|
1854
1852
|
},
|
1855
1853
|
transition: function ($subMenu) {
|
1856
|
-
return
|
1857
|
-
? module.is.upward($subMenu)
|
1858
|
-
? 'slide up'
|
1859
|
-
: 'slide down'
|
1854
|
+
return settings.transition === 'auto'
|
1855
|
+
? (module.is.upward($subMenu) ? 'slide up' : 'slide down')
|
1860
1856
|
: settings.transition;
|
1861
1857
|
},
|
1862
1858
|
userValues: function () {
|
@@ -1871,7 +1867,7 @@
|
|
1871
1867
|
: [values];
|
1872
1868
|
|
1873
1869
|
return $.grep(values, function (value) {
|
1874
|
-
return
|
1870
|
+
return module.get.item(value) === false;
|
1875
1871
|
});
|
1876
1872
|
},
|
1877
1873
|
uniqueArray: function (array) {
|
@@ -1905,14 +1901,14 @@
|
|
1905
1901
|
},
|
1906
1902
|
value: function () {
|
1907
1903
|
var
|
1908
|
-
value =
|
1904
|
+
value = $input.length > 0
|
1909
1905
|
? $input.val()
|
1910
1906
|
: $module.data(metadata.value),
|
1911
|
-
isEmptyMultiselect =
|
1907
|
+
isEmptyMultiselect = Array.isArray(value) && value.length === 1 && value[0] === ''
|
1912
1908
|
;
|
1913
1909
|
|
1914
1910
|
// prevents placeholder element from being selected when multiple
|
1915
|
-
return
|
1911
|
+
return value === undefined || isEmptyMultiselect
|
1916
1912
|
? ''
|
1917
1913
|
: value;
|
1918
1914
|
},
|
@@ -1924,10 +1920,12 @@
|
|
1924
1920
|
return '';
|
1925
1921
|
}
|
1926
1922
|
|
1927
|
-
return
|
1928
|
-
? (typeof value === 'string'
|
1929
|
-
? (raw
|
1930
|
-
|
1923
|
+
return !module.has.selectInput() && module.is.multiple()
|
1924
|
+
? (typeof value === 'string' // delimited string
|
1925
|
+
? (raw
|
1926
|
+
? value
|
1927
|
+
: module.escape.htmlEntities(value)).split(settings.delimiter)
|
1928
|
+
: '')
|
1931
1929
|
: value;
|
1932
1930
|
},
|
1933
1931
|
remoteValues: function () {
|
@@ -1956,7 +1954,7 @@
|
|
1956
1954
|
return remoteValues;
|
1957
1955
|
},
|
1958
1956
|
choiceText: function ($choice, preserveHTML) {
|
1959
|
-
preserveHTML =
|
1957
|
+
preserveHTML = preserveHTML !== undefined
|
1960
1958
|
? preserveHTML
|
1961
1959
|
: settings.preserveHTML;
|
1962
1960
|
if ($choice) {
|
@@ -1967,11 +1965,11 @@
|
|
1967
1965
|
$choice.find(selector.menuIcon).remove();
|
1968
1966
|
}
|
1969
1967
|
|
1970
|
-
return
|
1968
|
+
return $choice.data(metadata.text) !== undefined
|
1971
1969
|
? $choice.data(metadata.text)
|
1972
|
-
: (preserveHTML
|
1970
|
+
: (preserveHTML
|
1973
1971
|
? $choice.html() && $choice.html().trim()
|
1974
|
-
: $choice.text() && $choice.text().trim();
|
1972
|
+
: $choice.text() && $choice.text().trim());
|
1975
1973
|
}
|
1976
1974
|
},
|
1977
1975
|
choiceValue: function ($choice, choiceText) {
|
@@ -1980,26 +1978,26 @@
|
|
1980
1978
|
return false;
|
1981
1979
|
}
|
1982
1980
|
|
1983
|
-
return
|
1981
|
+
return $choice.data(metadata.value) !== undefined
|
1984
1982
|
? String($choice.data(metadata.value))
|
1985
|
-
: (typeof choiceText === 'string'
|
1983
|
+
: (typeof choiceText === 'string'
|
1986
1984
|
? String(
|
1987
1985
|
settings.ignoreSearchCase
|
1988
1986
|
? choiceText.toLowerCase()
|
1989
1987
|
: choiceText
|
1990
1988
|
).trim()
|
1991
|
-
: String(choiceText);
|
1989
|
+
: String(choiceText));
|
1992
1990
|
},
|
1993
1991
|
inputEvent: function () {
|
1994
1992
|
var
|
1995
1993
|
input = $search[0]
|
1996
1994
|
;
|
1997
1995
|
if (input) {
|
1998
|
-
return
|
1996
|
+
return input.oninput !== undefined
|
1999
1997
|
? 'input'
|
2000
|
-
: (input.onpropertychange !== undefined
|
1998
|
+
: (input.onpropertychange !== undefined
|
2001
1999
|
? 'propertychange'
|
2002
|
-
: 'keyup';
|
2000
|
+
: 'keyup');
|
2003
2001
|
}
|
2004
2002
|
|
2005
2003
|
return false;
|
@@ -2017,10 +2015,10 @@
|
|
2017
2015
|
$option = $(this),
|
2018
2016
|
name = $option.html(),
|
2019
2017
|
disabled = $option.attr('disabled'),
|
2020
|
-
value =
|
2018
|
+
value = $option.attr('value') !== undefined
|
2021
2019
|
? $option.attr('value')
|
2022
2020
|
: name,
|
2023
|
-
text =
|
2021
|
+
text = $option.data(metadata.text) !== undefined
|
2024
2022
|
? $option.data(metadata.text)
|
2025
2023
|
: name,
|
2026
2024
|
group = $option.parent('optgroup')
|
@@ -2056,7 +2054,7 @@
|
|
2056
2054
|
});
|
2057
2055
|
} else if (settings.sortSelect === 'natural') {
|
2058
2056
|
values.sort(function (a, b) {
|
2059
|
-
return
|
2057
|
+
return a.name.toLowerCase().localeCompare(b.name.toLowerCase());
|
2060
2058
|
});
|
2061
2059
|
} else if (isFunction(settings.sortSelect)) {
|
2062
2060
|
values.sort(settings.sortSelect);
|
@@ -2078,7 +2076,7 @@
|
|
2078
2076
|
$selectedItem = $item.not(selector.unselectable).filter('.' + className.selected)
|
2079
2077
|
;
|
2080
2078
|
|
2081
|
-
return
|
2079
|
+
return $selectedItem.length > 0
|
2082
2080
|
? $selectedItem
|
2083
2081
|
: $item.eq(0);
|
2084
2082
|
},
|
@@ -2086,10 +2084,10 @@
|
|
2086
2084
|
var
|
2087
2085
|
$items = module.get.item(value),
|
2088
2086
|
$userItems = module.create.userChoice(value),
|
2089
|
-
hasUserItems =
|
2087
|
+
hasUserItems = $userItems && $userItems.length > 0
|
2090
2088
|
;
|
2091
2089
|
if (hasUserItems) {
|
2092
|
-
$items =
|
2090
|
+
$items = $items.length > 0
|
2093
2091
|
? $items.add($userItems)
|
2094
2092
|
: $userItems;
|
2095
2093
|
}
|
@@ -2102,16 +2100,16 @@
|
|
2102
2100
|
shouldSearch,
|
2103
2101
|
isMultiple
|
2104
2102
|
;
|
2105
|
-
value =
|
2103
|
+
value = value !== undefined
|
2106
2104
|
? value
|
2107
|
-
: (module.get.values() !== undefined
|
2105
|
+
: (module.get.values() !== undefined
|
2108
2106
|
? module.get.values()
|
2109
|
-
: module.get.text();
|
2110
|
-
isMultiple =
|
2111
|
-
shouldSearch =
|
2112
|
-
?
|
2113
|
-
:
|
2114
|
-
strict =
|
2107
|
+
: module.get.text());
|
2108
|
+
isMultiple = module.is.multiple() && Array.isArray(value);
|
2109
|
+
shouldSearch = isMultiple
|
2110
|
+
? value.length > 0
|
2111
|
+
: value !== undefined && value !== null;
|
2112
|
+
strict = value === '' || value === false || value === true
|
2115
2113
|
? true
|
2116
2114
|
: strict || false;
|
2117
2115
|
if (shouldSearch) {
|
@@ -2128,7 +2126,7 @@
|
|
2128
2126
|
}
|
2129
2127
|
if (isMultiple) {
|
2130
2128
|
if ($.inArray(module.escape.htmlEntities(String(optionValue)), value.map(String)) !== -1) {
|
2131
|
-
$selectedItem =
|
2129
|
+
$selectedItem = $selectedItem
|
2132
2130
|
? $selectedItem.add($choice)
|
2133
2131
|
: $choice;
|
2134
2132
|
}
|
@@ -2165,7 +2163,7 @@
|
|
2165
2163
|
check: {
|
2166
2164
|
maxSelections: function (selectionCount) {
|
2167
2165
|
if (settings.maxSelections) {
|
2168
|
-
selectionCount =
|
2166
|
+
selectionCount = selectionCount !== undefined
|
2169
2167
|
? selectionCount
|
2170
2168
|
: module.get.selectionCount();
|
2171
2169
|
if (selectionCount >= settings.maxSelections) {
|
@@ -2299,7 +2297,7 @@
|
|
2299
2297
|
}
|
2300
2298
|
name = sessionStorage.getItem(value + elementNamespace);
|
2301
2299
|
|
2302
|
-
return
|
2300
|
+
return name !== undefined
|
2303
2301
|
? name
|
2304
2302
|
: false;
|
2305
2303
|
},
|
@@ -2370,7 +2368,7 @@
|
|
2370
2368
|
currentScroll = $menu.scrollTop(),
|
2371
2369
|
itemHeight = $item.eq(0).outerHeight(),
|
2372
2370
|
itemsPerPage = Math.floor(menuHeight / itemHeight),
|
2373
|
-
newScroll =
|
2371
|
+
newScroll = direction == 'up'
|
2374
2372
|
? currentScroll - (itemHeight * itemsPerPage)
|
2375
2373
|
: currentScroll + (itemHeight * itemsPerPage),
|
2376
2374
|
$selectableItem = $item.not(selector.unselectable),
|
@@ -2378,17 +2376,17 @@
|
|
2378
2376
|
$nextSelectedItem,
|
2379
2377
|
elementIndex
|
2380
2378
|
;
|
2381
|
-
elementIndex =
|
2379
|
+
elementIndex = direction == 'up'
|
2382
2380
|
? $selectableItem.index($currentItem) - itemsPerPage
|
2383
2381
|
: $selectableItem.index($currentItem) + itemsPerPage;
|
2384
|
-
isWithinRange =
|
2385
|
-
?
|
2386
|
-
:
|
2387
|
-
$nextSelectedItem =
|
2382
|
+
isWithinRange = direction == 'up'
|
2383
|
+
? elementIndex >= 0
|
2384
|
+
: elementIndex < $selectableItem.length;
|
2385
|
+
$nextSelectedItem = isWithinRange
|
2388
2386
|
? $selectableItem.eq(elementIndex)
|
2389
|
-
: (direction == 'up'
|
2387
|
+
: (direction == 'up'
|
2390
2388
|
? $selectableItem.first()
|
2391
|
-
: $selectableItem.last();
|
2389
|
+
: $selectableItem.last());
|
2392
2390
|
if ($nextSelectedItem.length > 0) {
|
2393
2391
|
module.debug('Scrolling page', direction, $nextSelectedItem);
|
2394
2392
|
$currentItem
|
@@ -2411,11 +2409,11 @@
|
|
2411
2409
|
var
|
2412
2410
|
isMultiple = module.is.multiple(),
|
2413
2411
|
isSearch = module.is.searchSelection(),
|
2414
|
-
isSearchMultiple =
|
2415
|
-
searchValue =
|
2412
|
+
isSearchMultiple = isMultiple && isSearch,
|
2413
|
+
searchValue = isSearch
|
2416
2414
|
? module.get.query()
|
2417
2415
|
: '',
|
2418
|
-
hasSearchValue =
|
2416
|
+
hasSearchValue = typeof searchValue === 'string' && searchValue.length > 0,
|
2419
2417
|
searchWidth = module.get.searchWidth(),
|
2420
2418
|
valueIsSet = searchValue !== ''
|
2421
2419
|
;
|
@@ -2499,8 +2497,8 @@
|
|
2499
2497
|
|
2500
2498
|
$item = $item || module.get.selectedItem();
|
2501
2499
|
$menu = $item.closest(selector.menu);
|
2502
|
-
hasActive =
|
2503
|
-
forceScroll =
|
2500
|
+
hasActive = $item && $item.length > 0;
|
2501
|
+
forceScroll = forceScroll !== undefined
|
2504
2502
|
? forceScroll
|
2505
2503
|
: false;
|
2506
2504
|
if (module.get.activeItem().length === 0) {
|
@@ -2517,7 +2515,7 @@
|
|
2517
2515
|
if (!forceScroll) {
|
2518
2516
|
menuHeight = $menu.height();
|
2519
2517
|
belowPage = menuScroll + menuHeight < (offset + edgeTolerance);
|
2520
|
-
abovePage = (
|
2518
|
+
abovePage = (offset - edgeTolerance) < menuScroll;
|
2521
2519
|
}
|
2522
2520
|
module.debug('Scrolling to active item', offset);
|
2523
2521
|
if (forceScroll || abovePage || belowPage) {
|
@@ -2642,9 +2640,9 @@
|
|
2642
2640
|
}
|
2643
2641
|
var
|
2644
2642
|
escapedValue = module.escape.value(value),
|
2645
|
-
hasInput =
|
2643
|
+
hasInput = $input.length > 0,
|
2646
2644
|
currentValue = module.get.values(),
|
2647
|
-
stringValue =
|
2645
|
+
stringValue = value !== undefined
|
2648
2646
|
? String(value)
|
2649
2647
|
: value
|
2650
2648
|
;
|
@@ -2712,7 +2710,7 @@
|
|
2712
2710
|
var
|
2713
2711
|
isMultiple = module.is.multiple()
|
2714
2712
|
;
|
2715
|
-
$selectedItem =
|
2713
|
+
$selectedItem = settings.allowAdditions
|
2716
2714
|
? $selectedItem || module.get.itemWithAdditions(value)
|
2717
2715
|
: $selectedItem || module.get.item(value);
|
2718
2716
|
if (!$selectedItem) {
|
@@ -2740,7 +2738,7 @@
|
|
2740
2738
|
isActive = $selected.hasClass(className.active),
|
2741
2739
|
isActionable = $selected.hasClass(className.actionable),
|
2742
2740
|
isUserValue = $selected.hasClass(className.addition),
|
2743
|
-
shouldAnimate =
|
2741
|
+
shouldAnimate = isMultiple && $selectedItem && $selectedItem.length === 1
|
2744
2742
|
;
|
2745
2743
|
if (isActionable) {
|
2746
2744
|
if ((!isMultiple || (!isActive || isUserValue)) && settings.apiSettings && settings.saveRemoteData) {
|
@@ -2860,7 +2858,7 @@
|
|
2860
2858
|
var
|
2861
2859
|
escapedValue = module.escape.value(value),
|
2862
2860
|
$option = $input.find('option[value="' + module.escape.string(escapedValue) + '"]'),
|
2863
|
-
hasOption =
|
2861
|
+
hasOption = $option.length > 0
|
2864
2862
|
;
|
2865
2863
|
if (hasOption) {
|
2866
2864
|
return;
|
@@ -2929,9 +2927,9 @@
|
|
2929
2927
|
},
|
2930
2928
|
variables: function (message, term) {
|
2931
2929
|
var
|
2932
|
-
hasCount =
|
2933
|
-
hasMaxCount =
|
2934
|
-
hasTerm =
|
2930
|
+
hasCount = message.search('{count}') !== -1,
|
2931
|
+
hasMaxCount = message.search('{maxCount}') !== -1,
|
2932
|
+
hasTerm = message.search('{term}') !== -1,
|
2935
2933
|
query
|
2936
2934
|
;
|
2937
2935
|
module.verbose('Adding templated variables to message', message);
|
@@ -3044,7 +3042,7 @@
|
|
3044
3042
|
var
|
3045
3043
|
escapedValue = module.escape.value(value),
|
3046
3044
|
$option = $input.find('option[value="' + module.escape.string(escapedValue) + '"]'),
|
3047
|
-
hasOption =
|
3045
|
+
hasOption = $option.length > 0
|
3048
3046
|
;
|
3049
3047
|
if (!hasOption || !$option.hasClass(className.addition)) {
|
3050
3048
|
return;
|
@@ -3070,7 +3068,7 @@
|
|
3070
3068
|
$item.filter(selector.addition).remove();
|
3071
3069
|
},
|
3072
3070
|
selected: function (value, $selectedItem, preventChangeTrigger) {
|
3073
|
-
$selectedItem =
|
3071
|
+
$selectedItem = settings.allowAdditions
|
3074
3072
|
? $selectedItem || module.get.itemWithAdditions(value)
|
3075
3073
|
: $selectedItem || module.get.item(value);
|
3076
3074
|
|
@@ -3140,7 +3138,7 @@
|
|
3140
3138
|
values = [values];
|
3141
3139
|
}
|
3142
3140
|
values = $.grep(values, function (value) {
|
3143
|
-
return
|
3141
|
+
return removedValue != value;
|
3144
3142
|
});
|
3145
3143
|
module.verbose('Removed value from delimited string', removedValue, values);
|
3146
3144
|
|
@@ -3168,7 +3166,7 @@
|
|
3168
3166
|
var
|
3169
3167
|
$label = $(this),
|
3170
3168
|
value = $label.data(metadata.value),
|
3171
|
-
stringValue =
|
3169
|
+
stringValue = value !== undefined
|
3172
3170
|
? String(value)
|
3173
3171
|
: value,
|
3174
3172
|
isUserValue = module.is.userValue(stringValue)
|
@@ -3215,27 +3213,27 @@
|
|
3215
3213
|
|
3216
3214
|
has: {
|
3217
3215
|
menuSearch: function () {
|
3218
|
-
return
|
3216
|
+
return module.has.search() && $search.closest($menu).length > 0;
|
3219
3217
|
},
|
3220
3218
|
clearItem: function () {
|
3221
|
-
return
|
3219
|
+
return $clear.length > 0;
|
3222
3220
|
},
|
3223
3221
|
search: function () {
|
3224
|
-
return
|
3222
|
+
return $search.length > 0;
|
3225
3223
|
},
|
3226
3224
|
sizer: function () {
|
3227
|
-
return
|
3225
|
+
return $sizer.length > 0;
|
3228
3226
|
},
|
3229
3227
|
selectInput: function () {
|
3230
|
-
return
|
3228
|
+
return $input.is('select');
|
3231
3229
|
},
|
3232
3230
|
minCharacters: function (searchTerm) {
|
3233
3231
|
if (settings.minCharacters && !iconClicked) {
|
3234
|
-
searchTerm =
|
3232
|
+
searchTerm = searchTerm !== undefined
|
3235
3233
|
? String(searchTerm)
|
3236
3234
|
: String(module.get.query());
|
3237
3235
|
|
3238
|
-
return
|
3236
|
+
return searchTerm.length >= settings.minCharacters;
|
3239
3237
|
}
|
3240
3238
|
iconClicked = false;
|
3241
3239
|
|
@@ -3253,22 +3251,22 @@
|
|
3253
3251
|
letter = letter.toLowerCase();
|
3254
3252
|
firstLetter = String(text).charAt(0).toLowerCase();
|
3255
3253
|
|
3256
|
-
return
|
3254
|
+
return letter == firstLetter;
|
3257
3255
|
},
|
3258
3256
|
input: function () {
|
3259
|
-
return
|
3257
|
+
return $input.length > 0;
|
3260
3258
|
},
|
3261
3259
|
items: function () {
|
3262
|
-
return
|
3260
|
+
return $item.length > 0;
|
3263
3261
|
},
|
3264
3262
|
menu: function () {
|
3265
|
-
return
|
3263
|
+
return $menu.length > 0;
|
3266
3264
|
},
|
3267
3265
|
subMenu: function ($currentMenu) {
|
3268
3266
|
return ($currentMenu || $menu).find(selector.menu).length > 0;
|
3269
3267
|
},
|
3270
3268
|
message: function () {
|
3271
|
-
return
|
3269
|
+
return $menu.children(selector.message).length > 0;
|
3272
3270
|
},
|
3273
3271
|
label: function (value) {
|
3274
3272
|
var
|
@@ -3279,26 +3277,26 @@
|
|
3279
3277
|
escapedValue = escapedValue.toLowerCase();
|
3280
3278
|
}
|
3281
3279
|
|
3282
|
-
return
|
3280
|
+
return $labels.filter('[data-' + metadata.value + '="' + module.escape.string(escapedValue) + '"]').length > 0;
|
3283
3281
|
},
|
3284
3282
|
maxSelections: function () {
|
3285
|
-
return
|
3283
|
+
return settings.maxSelections && module.get.selectionCount() >= settings.maxSelections;
|
3286
3284
|
},
|
3287
3285
|
allResultsFiltered: function () {
|
3288
3286
|
var
|
3289
3287
|
$normalResults = $item.not(selector.addition)
|
3290
3288
|
;
|
3291
3289
|
|
3292
|
-
return
|
3290
|
+
return $normalResults.filter(selector.unselectable).length === $normalResults.length;
|
3293
3291
|
},
|
3294
3292
|
userSuggestion: function () {
|
3295
|
-
return
|
3293
|
+
return $menu.children(selector.addition).length > 0;
|
3296
3294
|
},
|
3297
3295
|
query: function () {
|
3298
|
-
return
|
3296
|
+
return module.get.query() !== '';
|
3299
3297
|
},
|
3300
3298
|
value: function (value) {
|
3301
|
-
return
|
3299
|
+
return settings.ignoreCase
|
3302
3300
|
? module.has.valueIgnoringCase(value)
|
3303
3301
|
: module.has.valueMatchingCase(value);
|
3304
3302
|
},
|
@@ -3307,10 +3305,10 @@
|
|
3307
3305
|
values = module.get.values(true),
|
3308
3306
|
hasValue = Array.isArray(values)
|
3309
3307
|
? values && ($.inArray(value, values) !== -1)
|
3310
|
-
:
|
3308
|
+
: values == value
|
3311
3309
|
;
|
3312
3310
|
|
3313
|
-
return !!
|
3311
|
+
return !!hasValue;
|
3314
3312
|
},
|
3315
3313
|
valueIgnoringCase: function (value) {
|
3316
3314
|
var
|
@@ -3358,10 +3356,10 @@
|
|
3358
3356
|
return !!window.chrome && !window.StyleMedia;
|
3359
3357
|
},
|
3360
3358
|
alreadySetup: function () {
|
3361
|
-
return
|
3359
|
+
return $module.is('select') && $module.parent(selector.dropdown).data(moduleNamespace) !== undefined && $module.prev().length === 0;
|
3362
3360
|
},
|
3363
3361
|
animating: function ($subMenu) {
|
3364
|
-
return
|
3362
|
+
return $subMenu
|
3365
3363
|
? $subMenu.transition && $subMenu.transition('is animating')
|
3366
3364
|
: $menu.transition && $menu.transition('is animating');
|
3367
3365
|
},
|
@@ -3371,19 +3369,19 @@
|
|
3371
3369
|
return $selectedMenu.hasClass(className.leftward);
|
3372
3370
|
},
|
3373
3371
|
clearable: function () {
|
3374
|
-
return
|
3372
|
+
return $module.hasClass(className.clearable) || settings.clearable;
|
3375
3373
|
},
|
3376
3374
|
disabled: function () {
|
3377
3375
|
return $module.hasClass(className.disabled);
|
3378
3376
|
},
|
3379
3377
|
focused: function () {
|
3380
|
-
return
|
3378
|
+
return document.activeElement === $module[0];
|
3381
3379
|
},
|
3382
3380
|
focusedOnSearch: function () {
|
3383
|
-
return
|
3381
|
+
return document.activeElement === $search[0];
|
3384
3382
|
},
|
3385
3383
|
allFiltered: function () {
|
3386
|
-
return (
|
3384
|
+
return (module.is.multiple() || module.has.search()) && !(!settings.hideAdditions && module.has.userSuggestion()) && !module.has.message() && module.has.allResultsFiltered();
|
3387
3385
|
},
|
3388
3386
|
hidden: function ($subMenu) {
|
3389
3387
|
return !module.is.visible($subMenu);
|
@@ -3435,13 +3433,13 @@
|
|
3435
3433
|
return $module.hasClass(className.search);
|
3436
3434
|
},
|
3437
3435
|
searchSelection: function (deep) {
|
3438
|
-
return
|
3436
|
+
return module.has.search() && (deep ? $search.parents(selector.dropdown) : $search.parent(selector.dropdown)).length === 1;
|
3439
3437
|
},
|
3440
3438
|
selection: function () {
|
3441
3439
|
return $module.hasClass(className.selection);
|
3442
3440
|
},
|
3443
3441
|
userValue: function (value) {
|
3444
|
-
return
|
3442
|
+
return $.inArray(value, module.get.userValues()) !== -1;
|
3445
3443
|
},
|
3446
3444
|
upward: function ($menu) {
|
3447
3445
|
var $element = $menu || $module;
|
@@ -3449,27 +3447,27 @@
|
|
3449
3447
|
return $element.hasClass(className.upward);
|
3450
3448
|
},
|
3451
3449
|
visible: function ($subMenu) {
|
3452
|
-
return
|
3450
|
+
return $subMenu
|
3453
3451
|
? $subMenu.hasClass(className.visible)
|
3454
3452
|
: $menu.hasClass(className.visible);
|
3455
3453
|
},
|
3456
3454
|
verticallyScrollableContext: function () {
|
3457
3455
|
var
|
3458
|
-
overflowY =
|
3456
|
+
overflowY = $context[0] !== window
|
3459
3457
|
? $context.css('overflow-y')
|
3460
3458
|
: false
|
3461
3459
|
;
|
3462
3460
|
|
3463
|
-
return
|
3461
|
+
return overflowY == 'auto' || overflowY == 'scroll';
|
3464
3462
|
},
|
3465
3463
|
horizontallyScrollableContext: function () {
|
3466
3464
|
var
|
3467
|
-
overflowX =
|
3465
|
+
overflowX = $context[0] !== window
|
3468
3466
|
? $context.css('overflow-X')
|
3469
3467
|
: false
|
3470
3468
|
;
|
3471
3469
|
|
3472
|
-
return
|
3470
|
+
return overflowX == 'auto' || overflowX == 'scroll';
|
3473
3471
|
},
|
3474
3472
|
},
|
3475
3473
|
|
@@ -3493,7 +3491,7 @@
|
|
3493
3491
|
;
|
3494
3492
|
calculations = {
|
3495
3493
|
context: {
|
3496
|
-
offset:
|
3494
|
+
offset: $context[0] === window
|
3497
3495
|
? { top: 0, left: 0 }
|
3498
3496
|
: $context.offset(),
|
3499
3497
|
scrollTop: $context.scrollTop(),
|
@@ -3511,7 +3509,7 @@
|
|
3511
3509
|
calculations.menu.height += $currentMenu.find(selector.menu).first().outerHeight();
|
3512
3510
|
}
|
3513
3511
|
onScreen = {
|
3514
|
-
above:
|
3512
|
+
above: calculations.context.scrollTop <= calculations.menu.offset.top - calculations.context.offset.top - calculations.menu.height,
|
3515
3513
|
below: (calculations.context.scrollTop + calculations.context.height) >= calculations.menu.offset.top - calculations.context.offset.top + calculations.menu.height,
|
3516
3514
|
};
|
3517
3515
|
if (onScreen.below) {
|
@@ -3540,7 +3538,7 @@
|
|
3540
3538
|
;
|
3541
3539
|
calculations = {
|
3542
3540
|
context: {
|
3543
|
-
offset:
|
3541
|
+
offset: $context[0] === window
|
3544
3542
|
? { top: 0, left: 0 }
|
3545
3543
|
: $context.offset(),
|
3546
3544
|
scrollLeft: $context.scrollLeft(),
|
@@ -3554,7 +3552,7 @@
|
|
3554
3552
|
if (module.is.horizontallyScrollableContext()) {
|
3555
3553
|
calculations.menu.offset.left += calculations.context.scrollLeft;
|
3556
3554
|
}
|
3557
|
-
isOffscreenRight =
|
3555
|
+
isOffscreenRight = calculations.menu.offset.left - calculations.context.offset.left + calculations.menu.width >= calculations.context.scrollLeft + calculations.context.width;
|
3558
3556
|
if (isOffscreenRight) {
|
3559
3557
|
module.verbose('Dropdown cannot fit in context rightward', isOffscreenRight);
|
3560
3558
|
canOpenRightward = false;
|
@@ -3578,7 +3576,7 @@
|
|
3578
3576
|
show: function (callback, $subMenu) {
|
3579
3577
|
var
|
3580
3578
|
$currentMenu = $subMenu || $menu,
|
3581
|
-
start =
|
3579
|
+
start = $subMenu
|
3582
3580
|
? function () {}
|
3583
3581
|
: function () {
|
3584
3582
|
module.hideSubMenus();
|
@@ -3627,7 +3625,7 @@
|
|
3627
3625
|
hide: function (callback, $subMenu) {
|
3628
3626
|
var
|
3629
3627
|
$currentMenu = $subMenu || $menu,
|
3630
|
-
start =
|
3628
|
+
start = $subMenu
|
3631
3629
|
? function () {}
|
3632
3630
|
: function () {
|
3633
3631
|
module.unbind.intent();
|
@@ -3701,9 +3699,9 @@
|
|
3701
3699
|
value: function (value) {
|
3702
3700
|
var
|
3703
3701
|
multipleValues = Array.isArray(value),
|
3704
|
-
stringValue =
|
3705
|
-
isUnparsable =
|
3706
|
-
hasQuotes =
|
3702
|
+
stringValue = typeof value === 'string',
|
3703
|
+
isUnparsable = !stringValue && !multipleValues,
|
3704
|
+
hasQuotes = stringValue && value.search(regExp.quote) !== -1,
|
3707
3705
|
values = []
|
3708
3706
|
;
|
3709
3707
|
if (isUnparsable || !hasQuotes) {
|
@@ -3862,7 +3860,7 @@
|
|
3862
3860
|
query = query.split(/[ .]/);
|
3863
3861
|
maxDepth = query.length - 1;
|
3864
3862
|
$.each(query, function (depth, value) {
|
3865
|
-
var camelCaseValue =
|
3863
|
+
var camelCaseValue = depth != maxDepth
|
3866
3864
|
? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
|
3867
3865
|
: query
|
3868
3866
|
;
|
@@ -3915,7 +3913,7 @@
|
|
3915
3913
|
}
|
3916
3914
|
});
|
3917
3915
|
|
3918
|
-
return
|
3916
|
+
return returnedValue !== undefined
|
3919
3917
|
? returnedValue
|
3920
3918
|
: $allModules;
|
3921
3919
|
};
|
@@ -4215,19 +4213,19 @@
|
|
4215
4213
|
|
4216
4214
|
if (itemType === 'item' || isMenu) {
|
4217
4215
|
var
|
4218
|
-
maybeText =
|
4216
|
+
maybeText = option[fields.text]
|
4219
4217
|
? ' data-text="' + deQuote(option[fields.text], true) + '"'
|
4220
4218
|
: '',
|
4221
|
-
maybeActionable =
|
4219
|
+
maybeActionable = option[fields.actionable]
|
4222
4220
|
? className.actionable + ' '
|
4223
4221
|
: '',
|
4224
|
-
maybeDisabled =
|
4222
|
+
maybeDisabled = option[fields.disabled]
|
4225
4223
|
? className.disabled + ' '
|
4226
4224
|
: '',
|
4227
|
-
maybeDescriptionVertical =
|
4225
|
+
maybeDescriptionVertical = option[fields.descriptionVertical]
|
4228
4226
|
? className.descriptionVertical + ' '
|
4229
4227
|
: '',
|
4230
|
-
hasDescription =
|
4228
|
+
hasDescription = escape(option[fields.description] || '', preserveHTML) != ''
|
4231
4229
|
;
|
4232
4230
|
html += '<div class="' + deQuote(maybeActionable + maybeDisabled + maybeDescriptionVertical + (option[fields.class] || className.item)) + '" data-value="' + deQuote(option[fields.value], true) + '"' + maybeText + '>';
|
4233
4231
|
if (isMenu) {
|
@@ -4241,7 +4239,7 @@
|
|
4241
4239
|
}
|
4242
4240
|
if (hasDescription) {
|
4243
4241
|
html += '<span class="' + deQuote(className.description) + '">' + escape(option[fields.description] || '', preserveHTML) + '</span>';
|
4244
|
-
html +=
|
4242
|
+
html += !isMenu ? '<span class="' + deQuote(className.text) + '">' : '';
|
4245
4243
|
}
|
4246
4244
|
if (isMenu) {
|
4247
4245
|
html += '<span class="' + deQuote(className.text) + '">';
|