rbbt-rest 1.8.67 → 1.8.68
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/share/views/compass/app.sass +3 -0
- data/share/views/layout/footer.haml +10 -7
- data/share/views/partials/dependencies.haml +6 -1
- data/share/views/partials/footers/bsc.haml +1 -1
- data/share/views/partials/footers/cnio.haml +2 -2
- data/share/views/partials/footers/ntnu.haml +2 -2
- data/share/views/public/plugins/semantic-ui/CONTRIBUTING.md +58 -58
- data/share/views/public/plugins/semantic-ui/README.md +7 -7
- data/share/views/public/plugins/semantic-ui/RELEASE-NOTES.md +168 -0
- data/share/views/public/plugins/semantic-ui/dist/components/accordion.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/accordion.js +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/accordion.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/accordion.min.js +1 -10
- data/share/views/public/plugins/semantic-ui/dist/components/ad.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/ad.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/api.js +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/api.min.js +1 -10
- data/share/views/public/plugins/semantic-ui/dist/components/breadcrumb.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/breadcrumb.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/button.css +3 -17
- data/share/views/public/plugins/semantic-ui/dist/components/button.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/card.css +22 -31
- data/share/views/public/plugins/semantic-ui/dist/components/card.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/checkbox.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/checkbox.js +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/checkbox.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/checkbox.min.js +1 -10
- data/share/views/public/plugins/semantic-ui/dist/components/comment.css +5 -5
- data/share/views/public/plugins/semantic-ui/dist/components/comment.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/container.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/container.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/dimmer.css +19 -3
- data/share/views/public/plugins/semantic-ui/dist/components/dimmer.js +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/dimmer.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/dimmer.min.js +1 -10
- data/share/views/public/plugins/semantic-ui/dist/components/divider.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/divider.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/dropdown.css +94 -38
- data/share/views/public/plugins/semantic-ui/dist/components/dropdown.js +214 -76
- data/share/views/public/plugins/semantic-ui/dist/components/dropdown.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/dropdown.min.js +2 -11
- data/share/views/public/plugins/semantic-ui/dist/components/embed.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/embed.js +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/embed.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/embed.min.js +1 -10
- data/share/views/public/plugins/semantic-ui/dist/components/feed.css +7 -11
- data/share/views/public/plugins/semantic-ui/dist/components/feed.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/flag.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/flag.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/form.css +49 -62
- data/share/views/public/plugins/semantic-ui/dist/components/form.js +186 -38
- data/share/views/public/plugins/semantic-ui/dist/components/form.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/form.min.js +1 -10
- data/share/views/public/plugins/semantic-ui/dist/components/grid.css +23 -52
- data/share/views/public/plugins/semantic-ui/dist/components/grid.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/header.css +15 -15
- data/share/views/public/plugins/semantic-ui/dist/components/header.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/icon.css +179 -5
- data/share/views/public/plugins/semantic-ui/dist/components/icon.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/image.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/image.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/input.css +6 -12
- data/share/views/public/plugins/semantic-ui/dist/components/input.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/item.css +33 -28
- data/share/views/public/plugins/semantic-ui/dist/components/item.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/label.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/label.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/list.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/list.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/loader.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/loader.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/menu.css +18 -27
- data/share/views/public/plugins/semantic-ui/dist/components/menu.min.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/message.css +7 -7
- data/share/views/public/plugins/semantic-ui/dist/components/message.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/modal.css +102 -23
- data/share/views/public/plugins/semantic-ui/dist/components/modal.js +79 -25
- data/share/views/public/plugins/semantic-ui/dist/components/modal.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/modal.min.js +1 -10
- data/share/views/public/plugins/semantic-ui/dist/components/nag.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/nag.js +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/nag.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/nag.min.js +1 -10
- data/share/views/public/plugins/semantic-ui/dist/components/popup.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/popup.js +41 -30
- data/share/views/public/plugins/semantic-ui/dist/components/popup.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/popup.min.js +1 -10
- data/share/views/public/plugins/semantic-ui/dist/components/progress.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/progress.js +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/progress.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/progress.min.js +1 -10
- data/share/views/public/plugins/semantic-ui/dist/components/rail.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/rail.min.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/rating.css +1 -3
- data/share/views/public/plugins/semantic-ui/dist/components/rating.js +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/rating.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/rating.min.js +1 -10
- data/share/views/public/plugins/semantic-ui/dist/components/reset.css +254 -199
- data/share/views/public/plugins/semantic-ui/dist/components/reset.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/reveal.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/reveal.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/search.css +4 -4
- data/share/views/public/plugins/semantic-ui/dist/components/search.js +96 -52
- data/share/views/public/plugins/semantic-ui/dist/components/search.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/search.min.js +1 -10
- data/share/views/public/plugins/semantic-ui/dist/components/segment.css +21 -20
- data/share/views/public/plugins/semantic-ui/dist/components/segment.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/shape.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/shape.js +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/shape.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/shape.min.js +1 -10
- data/share/views/public/plugins/semantic-ui/dist/components/sidebar.css +1 -13
- data/share/views/public/plugins/semantic-ui/dist/components/sidebar.js +2 -5
- data/share/views/public/plugins/semantic-ui/dist/components/sidebar.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/sidebar.min.js +1 -10
- data/share/views/public/plugins/semantic-ui/dist/components/site.css +49 -6
- data/share/views/public/plugins/semantic-ui/dist/components/site.js +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/site.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/site.min.js +1 -10
- data/share/views/public/plugins/semantic-ui/dist/components/state.js +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/state.min.js +1 -10
- data/share/views/public/plugins/semantic-ui/dist/components/statistic.css +3 -19
- data/share/views/public/plugins/semantic-ui/dist/components/statistic.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/step.css +22 -44
- data/share/views/public/plugins/semantic-ui/dist/components/step.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/sticky.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/sticky.js +23 -6
- data/share/views/public/plugins/semantic-ui/dist/components/sticky.min.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/sticky.min.js +1 -10
- data/share/views/public/plugins/semantic-ui/dist/components/tab.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/tab.js +13 -7
- data/share/views/public/plugins/semantic-ui/dist/components/tab.min.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/tab.min.js +1 -10
- data/share/views/public/plugins/semantic-ui/dist/components/table.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/table.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/transition.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/transition.js +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/transition.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/transition.min.js +1 -10
- data/share/views/public/plugins/semantic-ui/dist/components/visibility.js +33 -5
- data/share/views/public/plugins/semantic-ui/dist/components/visibility.min.js +1 -10
- data/share/views/public/plugins/semantic-ui/dist/semantic.css +979 -612
- data/share/views/public/plugins/semantic-ui/dist/semantic.js +700 -257
- data/share/views/public/plugins/semantic-ui/dist/semantic.min.css +355 -2
- data/share/views/public/plugins/semantic-ui/dist/semantic.min.js +10 -10
- data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/icons.eot +0 -0
- data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/icons.svg +2668 -682
- data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/icons.ttf +0 -0
- data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/icons.woff +0 -0
- data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/icons.woff2 +0 -0
- data/share/views/public/plugins/semantic-ui/dist/themes/material/assets/fonts/icons.woff2 +0 -0
- data/share/views/public/plugins/semantic-ui/examples/components/menu.html +26 -0
- data/share/views/public/plugins/semantic-ui/package-lock.json +3718 -0
- data/share/views/public/plugins/semantic-ui/package.json +22 -22
- data/share/views/public/plugins/semantic-ui/src/_site/collections/menu.overrides +1 -1
- data/share/views/public/plugins/semantic-ui/src/definitions/behaviors/form.js +185 -37
- data/share/views/public/plugins/semantic-ui/src/definitions/behaviors/visibility.js +32 -4
- data/share/views/public/plugins/semantic-ui/src/definitions/collections/form.less +43 -43
- data/share/views/public/plugins/semantic-ui/src/definitions/collections/menu.less +8 -1
- data/share/views/public/plugins/semantic-ui/src/definitions/collections/message.less +3 -0
- data/share/views/public/plugins/semantic-ui/src/definitions/collections/table.less +1 -1
- data/share/views/public/plugins/semantic-ui/src/definitions/elements/button.less +2 -3
- data/share/views/public/plugins/semantic-ui/src/definitions/elements/header.less +2 -2
- data/share/views/public/plugins/semantic-ui/src/definitions/elements/icon.less +24 -0
- data/share/views/public/plugins/semantic-ui/src/definitions/elements/input.less +3 -2
- data/share/views/public/plugins/semantic-ui/src/definitions/elements/segment.less +20 -13
- data/share/views/public/plugins/semantic-ui/src/definitions/elements/step.less +34 -34
- data/share/views/public/plugins/semantic-ui/src/definitions/globals/site.less +44 -3
- data/share/views/public/plugins/semantic-ui/src/definitions/modules/dimmer.js +0 -0
- data/share/views/public/plugins/semantic-ui/src/definitions/modules/dimmer.less +18 -1
- data/share/views/public/plugins/semantic-ui/src/definitions/modules/dropdown.js +213 -75
- data/share/views/public/plugins/semantic-ui/src/definitions/modules/dropdown.less +79 -21
- data/share/views/public/plugins/semantic-ui/src/definitions/modules/modal.js +78 -24
- data/share/views/public/plugins/semantic-ui/src/definitions/modules/modal.less +87 -0
- data/share/views/public/plugins/semantic-ui/src/definitions/modules/popup.js +40 -29
- data/share/views/public/plugins/semantic-ui/src/definitions/modules/search.js +99 -55
- data/share/views/public/plugins/semantic-ui/src/definitions/modules/sidebar.js +1 -4
- data/share/views/public/plugins/semantic-ui/src/definitions/modules/sidebar.less +0 -14
- data/share/views/public/plugins/semantic-ui/src/definitions/modules/sticky.js +22 -5
- data/share/views/public/plugins/semantic-ui/src/definitions/modules/tab.js +12 -6
- data/share/views/public/plugins/semantic-ui/src/definitions/views/card.less +18 -18
- data/share/views/public/plugins/semantic-ui/src/definitions/views/item.less +17 -7
- data/share/views/public/plugins/semantic-ui/src/themes/bookish/elements/header.overrides +1 -1
- data/share/views/public/plugins/semantic-ui/src/themes/chubby/elements/button.overrides +1 -1
- data/share/views/public/plugins/semantic-ui/src/themes/chubby/elements/header.overrides +1 -1
- data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/icons.eot +0 -0
- data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/icons.svg +2668 -682
- data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/icons.ttf +0 -0
- data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/icons.woff +0 -0
- data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/icons.woff2 +0 -0
- data/share/views/public/plugins/semantic-ui/src/themes/default/elements/flag.overrides +2 -2
- data/share/views/public/plugins/semantic-ui/src/themes/default/elements/header.variables +1 -1
- data/share/views/public/plugins/semantic-ui/src/themes/default/elements/icon.overrides +54 -4
- data/share/views/public/plugins/semantic-ui/src/themes/default/elements/list.variables +1 -1
- data/share/views/public/plugins/semantic-ui/src/themes/default/globals/reset.overrides +216 -198
- data/share/views/public/plugins/semantic-ui/src/themes/default/globals/site.variables +32 -8
- data/share/views/public/plugins/semantic-ui/src/themes/default/modules/dropdown.variables +7 -5
- data/share/views/public/plugins/semantic-ui/src/themes/default/modules/modal.variables +38 -1
- data/share/views/public/plugins/semantic-ui/src/themes/default/views/comment.variables +0 -6
- data/share/views/public/plugins/semantic-ui/src/themes/default/views/item.variables +5 -2
- data/share/views/public/plugins/semantic-ui/src/themes/instagram/views/card.overrides +1 -1
- data/share/views/public/plugins/semantic-ui/src/themes/material/assets/fonts/icons.woff2 +0 -0
- data/share/views/public/plugins/semantic-ui/src/themes/rtl/globals/site.overrides +1 -1
- data/share/views/public/plugins/semantic-ui/tasks/admin/components/update.js +1 -1
- data/share/views/public/plugins/semantic-ui/tasks/admin/distributions/update.js +1 -1
- data/share/views/public/plugins/semantic-ui/tasks/config/project/install.js +1 -1
- data/share/views/public/plugins/semantic-ui/tasks/config/tasks.js +4 -4
- data/share/views/public/plugins/semantic-ui/tasks/install.js +8 -6
- metadata +4 -1
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* # Semantic UI 2.2.
|
2
|
+
* # Semantic UI 2.2.12 - Dropdown
|
3
3
|
* http://github.com/semantic-org/semantic-ui/
|
4
4
|
*
|
5
5
|
*
|
@@ -97,7 +97,13 @@ $.fn.dropdown = function(parameters) {
|
|
97
97
|
module.setup.reference();
|
98
98
|
}
|
99
99
|
else {
|
100
|
+
|
100
101
|
module.setup.layout();
|
102
|
+
|
103
|
+
if(settings.values) {
|
104
|
+
module.change.values(settings.values);
|
105
|
+
}
|
106
|
+
|
101
107
|
module.refreshData();
|
102
108
|
|
103
109
|
module.save.defaults();
|
@@ -162,7 +168,7 @@ $.fn.dropdown = function(parameters) {
|
|
162
168
|
observe: {
|
163
169
|
select: function() {
|
164
170
|
if(module.has.input()) {
|
165
|
-
selectObserver.observe($
|
171
|
+
selectObserver.observe($module[0], {
|
166
172
|
childList : true,
|
167
173
|
subtree : true
|
168
174
|
});
|
@@ -383,19 +389,16 @@ $.fn.dropdown = function(parameters) {
|
|
383
389
|
reference: function() {
|
384
390
|
module.debug('Dropdown behavior was called on select, replacing with closest dropdown');
|
385
391
|
// replace module reference
|
386
|
-
$module
|
392
|
+
$module = $module.parent(selector.dropdown);
|
393
|
+
instance = $module.data(moduleNamespace);
|
394
|
+
element = $module.get(0);
|
387
395
|
module.refresh();
|
388
396
|
module.setup.returnedObject();
|
389
|
-
// invoke method in context of current instance
|
390
|
-
if(methodInvoked) {
|
391
|
-
instance = module;
|
392
|
-
module.invoke(query);
|
393
|
-
}
|
394
397
|
},
|
395
398
|
returnedObject: function() {
|
396
399
|
var
|
397
400
|
$firstModules = $allModules.slice(0, elementIndex),
|
398
|
-
$lastModules
|
401
|
+
$lastModules = $allModules.slice(elementIndex + 1)
|
399
402
|
;
|
400
403
|
// adjust all modules to use correct reference
|
401
404
|
$allModules = $firstModules.add($module).add($lastModules);
|
@@ -461,6 +464,10 @@ $.fn.dropdown = function(parameters) {
|
|
461
464
|
? callback
|
462
465
|
: function(){}
|
463
466
|
;
|
467
|
+
if(!module.can.show() && module.is.remote()) {
|
468
|
+
module.debug('No API results retrieved, searching before show');
|
469
|
+
module.queryRemote(module.get.query(), module.show);
|
470
|
+
}
|
464
471
|
if( module.can.show() && !module.is.active() ) {
|
465
472
|
module.debug('Showing dropdown');
|
466
473
|
if(module.has.message() && !(module.has.maxSelections() || module.has.allResultsFiltered()) ) {
|
@@ -617,8 +624,17 @@ $.fn.dropdown = function(parameters) {
|
|
617
624
|
.on('mousedown' + eventNamespace, module.event.mousedown)
|
618
625
|
.on('mouseup' + eventNamespace, module.event.mouseup)
|
619
626
|
.on('focus' + eventNamespace, module.event.focus)
|
620
|
-
.on('blur' + eventNamespace, module.event.blur)
|
621
627
|
;
|
628
|
+
if(module.has.menuSearch() ) {
|
629
|
+
$module
|
630
|
+
.on('blur' + eventNamespace, selector.search, module.event.search.blur)
|
631
|
+
;
|
632
|
+
}
|
633
|
+
else {
|
634
|
+
$module
|
635
|
+
.on('blur' + eventNamespace, module.event.blur)
|
636
|
+
;
|
637
|
+
}
|
622
638
|
}
|
623
639
|
$menu
|
624
640
|
.on('mouseenter' + eventNamespace, selector.item, module.event.item.mouseenter)
|
@@ -664,7 +680,9 @@ $.fn.dropdown = function(parameters) {
|
|
664
680
|
if(module.is.multiple()) {
|
665
681
|
module.filterActive();
|
666
682
|
}
|
667
|
-
module.
|
683
|
+
if(query || (!query && module.get.activeItem().length == 0)) {
|
684
|
+
module.select.firstUnfiltered();
|
685
|
+
}
|
668
686
|
if( module.has.allResultsFiltered() ) {
|
669
687
|
if( settings.onNoResults.call(element, searchTerm) ) {
|
670
688
|
if(settings.allowAdditions) {
|
@@ -702,6 +720,9 @@ $.fn.dropdown = function(parameters) {
|
|
702
720
|
if(settings.apiSettings) {
|
703
721
|
if( module.can.useAPI() ) {
|
704
722
|
module.queryRemote(searchTerm, function() {
|
723
|
+
if(settings.filterRemoteData) {
|
724
|
+
module.filterItems(searchTerm);
|
725
|
+
}
|
705
726
|
afterFiltered();
|
706
727
|
});
|
707
728
|
}
|
@@ -757,7 +778,7 @@ $.fn.dropdown = function(parameters) {
|
|
757
778
|
? query
|
758
779
|
: module.get.query(),
|
759
780
|
results = null,
|
760
|
-
escapedTerm = module.escape.
|
781
|
+
escapedTerm = module.escape.string(searchTerm),
|
761
782
|
beginsWithRegExp = new RegExp('^' + escapedTerm, 'igm')
|
762
783
|
;
|
763
784
|
// avoid loop if we're matching nothing
|
@@ -789,12 +810,15 @@ $.fn.dropdown = function(parameters) {
|
|
789
810
|
}
|
790
811
|
if(settings.match == 'both' || settings.match == 'value') {
|
791
812
|
value = String(module.get.choiceValue($choice, text));
|
792
|
-
|
793
813
|
if(value.search(beginsWithRegExp) !== -1) {
|
794
814
|
results.push(this);
|
795
815
|
return true;
|
796
816
|
}
|
797
|
-
else if(settings.fullTextSearch && module.
|
817
|
+
else if (settings.fullTextSearch === 'exact' && module.exactSearch(searchTerm, value)) {
|
818
|
+
results.push(this);
|
819
|
+
return true;
|
820
|
+
}
|
821
|
+
else if (settings.fullTextSearch === true && module.fuzzySearch(searchTerm, value)) {
|
798
822
|
results.push(this);
|
799
823
|
return true;
|
800
824
|
}
|
@@ -876,7 +900,7 @@ $.fn.dropdown = function(parameters) {
|
|
876
900
|
: $activeItem,
|
877
901
|
hasSelected = ($selectedItem.length > 0)
|
878
902
|
;
|
879
|
-
if(hasSelected) {
|
903
|
+
if(hasSelected && !module.is.multiple()) {
|
880
904
|
module.debug('Forcing partial selection to selected item', $selectedItem);
|
881
905
|
module.event.item.click.call($selectedItem, {}, true);
|
882
906
|
return;
|
@@ -892,6 +916,23 @@ $.fn.dropdown = function(parameters) {
|
|
892
916
|
}
|
893
917
|
},
|
894
918
|
|
919
|
+
change: {
|
920
|
+
values: function(values) {
|
921
|
+
if(!settings.allowAdditions) {
|
922
|
+
module.clear();
|
923
|
+
}
|
924
|
+
module.debug('Creating dropdown with specified values', values);
|
925
|
+
module.setup.menu({values: values});
|
926
|
+
$.each(values, function(index, item) {
|
927
|
+
if(item.selected == true) {
|
928
|
+
module.debug('Setting initial selection to', item.value);
|
929
|
+
module.set.selected(item.value);
|
930
|
+
return true;
|
931
|
+
}
|
932
|
+
});
|
933
|
+
}
|
934
|
+
},
|
935
|
+
|
895
936
|
event: {
|
896
937
|
change: function() {
|
897
938
|
if(!internalChange) {
|
@@ -956,7 +997,7 @@ $.fn.dropdown = function(parameters) {
|
|
956
997
|
},
|
957
998
|
blur: function(event) {
|
958
999
|
pageLostFocus = (document.activeElement === this);
|
959
|
-
if(!willRefocus) {
|
1000
|
+
if(module.is.searchSelection() && !willRefocus) {
|
960
1001
|
if(!itemActivated && !pageLostFocus) {
|
961
1002
|
if(settings.forceSelection) {
|
962
1003
|
module.forceSelection();
|
@@ -1060,7 +1101,22 @@ $.fn.dropdown = function(parameters) {
|
|
1060
1101
|
select: {
|
1061
1102
|
mutation: function(mutations) {
|
1062
1103
|
module.debug('<select> modified, recreating menu');
|
1063
|
-
|
1104
|
+
var
|
1105
|
+
isSelectMutation = false
|
1106
|
+
;
|
1107
|
+
$.each(mutations, function(index, mutation) {
|
1108
|
+
if($(mutation.target).is('select') || $(mutation.addedNodes).is('select')) {
|
1109
|
+
isSelectMutation = true;
|
1110
|
+
return true;
|
1111
|
+
}
|
1112
|
+
});
|
1113
|
+
if(isSelectMutation) {
|
1114
|
+
module.disconnect.selectObserver();
|
1115
|
+
module.refresh();
|
1116
|
+
module.setup.select();
|
1117
|
+
module.set.selected();
|
1118
|
+
module.observe.select();
|
1119
|
+
}
|
1064
1120
|
}
|
1065
1121
|
},
|
1066
1122
|
menu: {
|
@@ -1139,6 +1195,10 @@ $.fn.dropdown = function(parameters) {
|
|
1139
1195
|
hasSubMenu = ($subMenu.length > 0),
|
1140
1196
|
isBubbledEvent = ($subMenu.find($target).length > 0)
|
1141
1197
|
;
|
1198
|
+
// prevents IE11 bug where menu receives focus even though `tabindex=-1`
|
1199
|
+
if(module.has.menuSearch()) {
|
1200
|
+
$(document.activeElement).blur();
|
1201
|
+
}
|
1142
1202
|
if(!isBubbledEvent && (!hasSubMenu || settings.allowCategorySelection)) {
|
1143
1203
|
if(module.is.searchSelection()) {
|
1144
1204
|
if(settings.allowAdditions) {
|
@@ -1445,7 +1505,6 @@ $.fn.dropdown = function(parameters) {
|
|
1445
1505
|
// down arrow (open menu)
|
1446
1506
|
if(pressedKey == keys.downArrow && !module.is.visible()) {
|
1447
1507
|
module.verbose('Down key pressed, showing dropdown');
|
1448
|
-
module.select.firstUnfiltered();
|
1449
1508
|
module.show();
|
1450
1509
|
event.preventDefault();
|
1451
1510
|
}
|
@@ -1595,6 +1654,9 @@ $.fn.dropdown = function(parameters) {
|
|
1595
1654
|
return $module.data(metadata.defaultValue);
|
1596
1655
|
},
|
1597
1656
|
placeholderText: function() {
|
1657
|
+
if(settings.placeholder != 'auto' && typeof settings.placeholder == 'string') {
|
1658
|
+
return settings.placeholder;
|
1659
|
+
}
|
1598
1660
|
return $module.data(metadata.placeholderText) || '';
|
1599
1661
|
},
|
1600
1662
|
text: function() {
|
@@ -2183,7 +2245,7 @@ $.fn.dropdown = function(parameters) {
|
|
2183
2245
|
$text.addClass(className.placeholder);
|
2184
2246
|
},
|
2185
2247
|
tabbable: function() {
|
2186
|
-
if( module.
|
2248
|
+
if( module.is.searchSelection() ) {
|
2187
2249
|
module.debug('Added tabindex to searchable dropdown');
|
2188
2250
|
$search
|
2189
2251
|
.val('')
|
@@ -2295,12 +2357,13 @@ $.fn.dropdown = function(parameters) {
|
|
2295
2357
|
},
|
2296
2358
|
selectedItem: function($item) {
|
2297
2359
|
var
|
2298
|
-
value
|
2299
|
-
|
2360
|
+
value = module.get.choiceValue($item),
|
2361
|
+
searchText = module.get.choiceText($item, false),
|
2362
|
+
text = module.get.choiceText($item, true)
|
2300
2363
|
;
|
2301
2364
|
module.debug('Setting user selection to item', $item);
|
2302
2365
|
module.remove.activeItem();
|
2303
|
-
module.set.partialSearch(
|
2366
|
+
module.set.partialSearch(searchText);
|
2304
2367
|
module.set.activeItem($item);
|
2305
2368
|
module.set.selected(value, $item);
|
2306
2369
|
module.set.text(text);
|
@@ -2343,21 +2406,31 @@ $.fn.dropdown = function(parameters) {
|
|
2343
2406
|
},
|
2344
2407
|
direction: function($menu) {
|
2345
2408
|
if(settings.direction == 'auto') {
|
2346
|
-
|
2409
|
+
// reset position
|
2410
|
+
module.remove.upward();
|
2411
|
+
|
2412
|
+
if(module.can.openDownward($menu)) {
|
2347
2413
|
module.remove.upward($menu);
|
2348
2414
|
}
|
2349
2415
|
else {
|
2350
2416
|
module.set.upward($menu);
|
2351
2417
|
}
|
2418
|
+
if(!module.is.leftward($menu) && !module.can.openRightward($menu)) {
|
2419
|
+
module.set.leftward($menu);
|
2420
|
+
}
|
2352
2421
|
}
|
2353
2422
|
else if(settings.direction == 'upward') {
|
2354
2423
|
module.set.upward($menu);
|
2355
2424
|
}
|
2356
2425
|
},
|
2357
|
-
upward: function($
|
2358
|
-
var $element = $
|
2426
|
+
upward: function($currentMenu) {
|
2427
|
+
var $element = $currentMenu || $module;
|
2359
2428
|
$element.addClass(className.upward);
|
2360
2429
|
},
|
2430
|
+
leftward: function($currentMenu) {
|
2431
|
+
var $element = $currentMenu || $menu;
|
2432
|
+
$element.addClass(className.leftward);
|
2433
|
+
},
|
2361
2434
|
value: function(value, text, $selected) {
|
2362
2435
|
var
|
2363
2436
|
escapedValue = module.escape.value(value),
|
@@ -2509,7 +2582,7 @@ $.fn.dropdown = function(parameters) {
|
|
2509
2582
|
;
|
2510
2583
|
$label = $('<a />')
|
2511
2584
|
.addClass(className.label)
|
2512
|
-
.attr('data-value
|
2585
|
+
.attr('data-' + metadata.value, escapedValue)
|
2513
2586
|
.html(templates.label(escapedValue, text))
|
2514
2587
|
;
|
2515
2588
|
$label = settings.onLabelCreate.call($label, escapedValue, text);
|
@@ -2557,7 +2630,7 @@ $.fn.dropdown = function(parameters) {
|
|
2557
2630
|
optionValue: function(value) {
|
2558
2631
|
var
|
2559
2632
|
escapedValue = module.escape.value(value),
|
2560
|
-
$option = $input.find('option[value="' + escapedValue + '"]'),
|
2633
|
+
$option = $input.find('option[value="' + module.escape.string(escapedValue) + '"]'),
|
2561
2634
|
hasOption = ($option.length > 0)
|
2562
2635
|
;
|
2563
2636
|
if(hasOption) {
|
@@ -2705,10 +2778,14 @@ $.fn.dropdown = function(parameters) {
|
|
2705
2778
|
initialLoad: function() {
|
2706
2779
|
initialLoad = false;
|
2707
2780
|
},
|
2708
|
-
upward: function($
|
2709
|
-
var $element = $
|
2781
|
+
upward: function($currentMenu) {
|
2782
|
+
var $element = $currentMenu || $module;
|
2710
2783
|
$element.removeClass(className.upward);
|
2711
2784
|
},
|
2785
|
+
leftward: function($currentMenu) {
|
2786
|
+
var $element = $currentMenu || $menu;
|
2787
|
+
$element.removeClass(className.leftward);
|
2788
|
+
},
|
2712
2789
|
visible: function() {
|
2713
2790
|
$module.removeClass(className.visible);
|
2714
2791
|
},
|
@@ -2730,7 +2807,7 @@ $.fn.dropdown = function(parameters) {
|
|
2730
2807
|
optionValue: function(value) {
|
2731
2808
|
var
|
2732
2809
|
escapedValue = module.escape.value(value),
|
2733
|
-
$option = $input.find('option[value="' + escapedValue + '"]'),
|
2810
|
+
$option = $input.find('option[value="' + module.escape.string(escapedValue) + '"]'),
|
2734
2811
|
hasOption = ($option.length > 0)
|
2735
2812
|
;
|
2736
2813
|
if(!hasOption || !$option.hasClass(className.addition)) {
|
@@ -2849,7 +2926,7 @@ $.fn.dropdown = function(parameters) {
|
|
2849
2926
|
label: function(value, shouldAnimate) {
|
2850
2927
|
var
|
2851
2928
|
$labels = $module.find(selector.label),
|
2852
|
-
$removedLabel = $labels.filter('[data-value="' + value +'"]')
|
2929
|
+
$removedLabel = $labels.filter('[data-' + metadata.value + '="' + module.escape.string(value) +'"]')
|
2853
2930
|
;
|
2854
2931
|
module.verbose('Removing label', $removedLabel);
|
2855
2932
|
$removedLabel.remove();
|
@@ -2889,7 +2966,7 @@ $.fn.dropdown = function(parameters) {
|
|
2889
2966
|
;
|
2890
2967
|
},
|
2891
2968
|
tabbable: function() {
|
2892
|
-
if( module.
|
2969
|
+
if( module.is.searchSelection() ) {
|
2893
2970
|
module.debug('Searchable dropdown initialized');
|
2894
2971
|
$search
|
2895
2972
|
.removeAttr('tabindex')
|
@@ -2963,7 +3040,7 @@ $.fn.dropdown = function(parameters) {
|
|
2963
3040
|
escapedValue = module.escape.value(value),
|
2964
3041
|
$labels = $module.find(selector.label)
|
2965
3042
|
;
|
2966
|
-
return ($labels.filter('[data-value="' + escapedValue +'"]').length > 0);
|
3043
|
+
return ($labels.filter('[data-' + metadata.value + '="' + module.escape.string(escapedValue) +'"]').length > 0);
|
2967
3044
|
},
|
2968
3045
|
maxSelections: function() {
|
2969
3046
|
return (settings.maxSelections && module.get.selectionCount() >= settings.maxSelections);
|
@@ -3005,7 +3082,7 @@ $.fn.dropdown = function(parameters) {
|
|
3005
3082
|
return $(event.target).closest($icon).length > 0;
|
3006
3083
|
},
|
3007
3084
|
alreadySetup: function() {
|
3008
|
-
return ($module.is('select') && $module.parent(selector.dropdown).
|
3085
|
+
return ($module.is('select') && $module.parent(selector.dropdown).data(moduleNamespace) !== undefined && $module.prev().length === 0);
|
3009
3086
|
},
|
3010
3087
|
animating: function($subMenu) {
|
3011
3088
|
return ($subMenu)
|
@@ -3013,6 +3090,10 @@ $.fn.dropdown = function(parameters) {
|
|
3013
3090
|
: $menu.transition && $menu.transition('is animating')
|
3014
3091
|
;
|
3015
3092
|
},
|
3093
|
+
leftward: function($subMenu) {
|
3094
|
+
var $selectedMenu = $subMenu || $menu;
|
3095
|
+
return $selectedMenu.hasClass(className.leftward);
|
3096
|
+
},
|
3016
3097
|
disabled: function() {
|
3017
3098
|
return $module.hasClass(className.disabled);
|
3018
3099
|
},
|
@@ -3031,43 +3112,6 @@ $.fn.dropdown = function(parameters) {
|
|
3031
3112
|
initialLoad: function() {
|
3032
3113
|
return initialLoad;
|
3033
3114
|
},
|
3034
|
-
onScreen: function($subMenu) {
|
3035
|
-
var
|
3036
|
-
$currentMenu = $subMenu || $menu,
|
3037
|
-
canOpenDownward = true,
|
3038
|
-
onScreen = {},
|
3039
|
-
calculations
|
3040
|
-
;
|
3041
|
-
$currentMenu.addClass(className.loading);
|
3042
|
-
calculations = {
|
3043
|
-
context: {
|
3044
|
-
scrollTop : $context.scrollTop(),
|
3045
|
-
height : $context.outerHeight()
|
3046
|
-
},
|
3047
|
-
menu : {
|
3048
|
-
offset: $currentMenu.offset(),
|
3049
|
-
height: $currentMenu.outerHeight()
|
3050
|
-
}
|
3051
|
-
};
|
3052
|
-
onScreen = {
|
3053
|
-
above : (calculations.context.scrollTop) <= calculations.menu.offset.top - calculations.menu.height,
|
3054
|
-
below : (calculations.context.scrollTop + calculations.context.height) >= calculations.menu.offset.top + calculations.menu.height
|
3055
|
-
};
|
3056
|
-
if(onScreen.below) {
|
3057
|
-
module.verbose('Dropdown can fit in context downward', onScreen);
|
3058
|
-
canOpenDownward = true;
|
3059
|
-
}
|
3060
|
-
else if(!onScreen.below && !onScreen.above) {
|
3061
|
-
module.verbose('Dropdown cannot fit in either direction, favoring downward', onScreen);
|
3062
|
-
canOpenDownward = true;
|
3063
|
-
}
|
3064
|
-
else {
|
3065
|
-
module.verbose('Dropdown cannot fit below, opening upward', onScreen);
|
3066
|
-
canOpenDownward = false;
|
3067
|
-
}
|
3068
|
-
$currentMenu.removeClass(className.loading);
|
3069
|
-
return canOpenDownward;
|
3070
|
-
},
|
3071
3115
|
inObject: function(needle, object) {
|
3072
3116
|
var
|
3073
3117
|
found = false
|
@@ -3083,6 +3127,9 @@ $.fn.dropdown = function(parameters) {
|
|
3083
3127
|
multiple: function() {
|
3084
3128
|
return $module.hasClass(className.multiple);
|
3085
3129
|
},
|
3130
|
+
remote: function() {
|
3131
|
+
return settings.apiSettings && module.can.useAPI();
|
3132
|
+
},
|
3086
3133
|
single: function() {
|
3087
3134
|
return !module.is.multiple();
|
3088
3135
|
},
|
@@ -3119,6 +3166,22 @@ $.fn.dropdown = function(parameters) {
|
|
3119
3166
|
? $subMenu.hasClass(className.visible)
|
3120
3167
|
: $menu.hasClass(className.visible)
|
3121
3168
|
;
|
3169
|
+
},
|
3170
|
+
verticallyScrollableContext: function() {
|
3171
|
+
var
|
3172
|
+
overflowY = ($context.get(0) !== window)
|
3173
|
+
? $context.css('overflow-y')
|
3174
|
+
: false
|
3175
|
+
;
|
3176
|
+
return (overflowY == 'auto' || overflowY == 'scroll');
|
3177
|
+
},
|
3178
|
+
horizontallyScrollableContext: function() {
|
3179
|
+
var
|
3180
|
+
overflowX = ($context.get(0) !== window)
|
3181
|
+
? $context.css('overflow-X')
|
3182
|
+
: false
|
3183
|
+
;
|
3184
|
+
return (overflowX == 'auto' || overflowX == 'scroll');
|
3122
3185
|
}
|
3123
3186
|
},
|
3124
3187
|
|
@@ -3135,6 +3198,79 @@ $.fn.dropdown = function(parameters) {
|
|
3135
3198
|
}
|
3136
3199
|
return false;
|
3137
3200
|
},
|
3201
|
+
openDownward: function($subMenu) {
|
3202
|
+
var
|
3203
|
+
$currentMenu = $subMenu || $menu,
|
3204
|
+
canOpenDownward = true,
|
3205
|
+
onScreen = {},
|
3206
|
+
calculations
|
3207
|
+
;
|
3208
|
+
$currentMenu
|
3209
|
+
.addClass(className.loading)
|
3210
|
+
;
|
3211
|
+
calculations = {
|
3212
|
+
context: {
|
3213
|
+
scrollTop : $context.scrollTop(),
|
3214
|
+
height : $context.outerHeight()
|
3215
|
+
},
|
3216
|
+
menu : {
|
3217
|
+
offset: $currentMenu.offset(),
|
3218
|
+
height: $currentMenu.outerHeight()
|
3219
|
+
}
|
3220
|
+
};
|
3221
|
+
if(module.is.verticallyScrollableContext()) {
|
3222
|
+
calculations.menu.offset.top += calculations.context.scrollTop;
|
3223
|
+
}
|
3224
|
+
onScreen = {
|
3225
|
+
above : (calculations.context.scrollTop) <= calculations.menu.offset.top - calculations.menu.height,
|
3226
|
+
below : (calculations.context.scrollTop + calculations.context.height) >= calculations.menu.offset.top + calculations.menu.height
|
3227
|
+
};
|
3228
|
+
if(onScreen.below) {
|
3229
|
+
module.verbose('Dropdown can fit in context downward', onScreen);
|
3230
|
+
canOpenDownward = true;
|
3231
|
+
}
|
3232
|
+
else if(!onScreen.below && !onScreen.above) {
|
3233
|
+
module.verbose('Dropdown cannot fit in either direction, favoring downward', onScreen);
|
3234
|
+
canOpenDownward = true;
|
3235
|
+
}
|
3236
|
+
else {
|
3237
|
+
module.verbose('Dropdown cannot fit below, opening upward', onScreen);
|
3238
|
+
canOpenDownward = false;
|
3239
|
+
}
|
3240
|
+
$currentMenu.removeClass(className.loading);
|
3241
|
+
return canOpenDownward;
|
3242
|
+
},
|
3243
|
+
openRightward: function($subMenu) {
|
3244
|
+
var
|
3245
|
+
$currentMenu = $subMenu || $menu,
|
3246
|
+
canOpenRightward = true,
|
3247
|
+
isOffscreenRight = false,
|
3248
|
+
calculations
|
3249
|
+
;
|
3250
|
+
$currentMenu
|
3251
|
+
.addClass(className.loading)
|
3252
|
+
;
|
3253
|
+
calculations = {
|
3254
|
+
context: {
|
3255
|
+
scrollLeft : $context.scrollLeft(),
|
3256
|
+
width : $context.outerWidth()
|
3257
|
+
},
|
3258
|
+
menu: {
|
3259
|
+
offset : $currentMenu.offset(),
|
3260
|
+
width : $currentMenu.outerWidth()
|
3261
|
+
}
|
3262
|
+
};
|
3263
|
+
if(module.is.horizontallyScrollableContext()) {
|
3264
|
+
calculations.menu.offset.left += calculations.context.scrollLeft;
|
3265
|
+
}
|
3266
|
+
isOffscreenRight = (calculations.menu.offset.left + calculations.menu.width >= calculations.context.scrollLeft + calculations.context.width);
|
3267
|
+
if(isOffscreenRight) {
|
3268
|
+
module.verbose('Dropdown cannot fit in context rightward', isOffscreenRight);
|
3269
|
+
canOpenRightward = false;
|
3270
|
+
}
|
3271
|
+
$currentMenu.removeClass(className.loading);
|
3272
|
+
return canOpenRightward;
|
3273
|
+
},
|
3138
3274
|
click: function() {
|
3139
3275
|
return (hasTouch || settings.on == 'click');
|
3140
3276
|
},
|
@@ -3236,9 +3372,6 @@ $.fn.dropdown = function(parameters) {
|
|
3236
3372
|
queue : true,
|
3237
3373
|
onStart : start,
|
3238
3374
|
onComplete : function() {
|
3239
|
-
if(settings.direction == 'auto') {
|
3240
|
-
module.remove.upward($subMenu);
|
3241
|
-
}
|
3242
3375
|
callback.call(element);
|
3243
3376
|
}
|
3244
3377
|
})
|
@@ -3288,7 +3421,7 @@ $.fn.dropdown = function(parameters) {
|
|
3288
3421
|
hasQuotes = (stringValue && value.search(regExp.quote) !== -1),
|
3289
3422
|
values = []
|
3290
3423
|
;
|
3291
|
-
if(
|
3424
|
+
if(isUnparsable || !hasQuotes) {
|
3292
3425
|
return value;
|
3293
3426
|
}
|
3294
3427
|
module.debug('Encoding quote values for use in select', value);
|
@@ -3300,7 +3433,7 @@ $.fn.dropdown = function(parameters) {
|
|
3300
3433
|
}
|
3301
3434
|
return value.replace(regExp.quote, '"');
|
3302
3435
|
},
|
3303
|
-
|
3436
|
+
string: function(text) {
|
3304
3437
|
text = String(text);
|
3305
3438
|
return text.replace(regExp.escape, '\\$&');
|
3306
3439
|
}
|
@@ -3499,11 +3632,15 @@ $.fn.dropdown.settings = {
|
|
3499
3632
|
on : 'click', // what event should show menu action on item selection
|
3500
3633
|
action : 'activate', // action on item selection (nothing, activate, select, combo, hide, function(){})
|
3501
3634
|
|
3635
|
+
values : false, // specify values to use for dropdown
|
3502
3636
|
|
3503
3637
|
apiSettings : false,
|
3504
3638
|
selectOnKeydown : true, // Whether selection should occur automatically when keyboard shortcuts used
|
3505
3639
|
minCharacters : 0, // Minimum characters required to trigger API call
|
3640
|
+
|
3641
|
+
filterRemoteData : false, // Whether API results should be filtered after being returned for query term
|
3506
3642
|
saveRemoteData : true, // Whether remote name/value pairs should be stored in sessionStorage to allow remote data to be restored on page refresh
|
3643
|
+
|
3507
3644
|
throttle : 200, // How long to wait after last user input to search remotely
|
3508
3645
|
|
3509
3646
|
context : window, // Context to use when determining if on screen
|
@@ -3665,6 +3802,7 @@ $.fn.dropdown.settings = {
|
|
3665
3802
|
selected : 'selected',
|
3666
3803
|
selection : 'selection',
|
3667
3804
|
upward : 'upward',
|
3805
|
+
leftward : 'left',
|
3668
3806
|
visible : 'visible'
|
3669
3807
|
}
|
3670
3808
|
|