fomantic-ui-sass 2.8.7.1 → 2.8.8
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/app/assets/javascripts/semantic-ui/calendar.js +9 -11
- data/app/assets/javascripts/semantic-ui/dimmer.js +8 -11
- data/app/assets/javascripts/semantic-ui/dropdown.js +191 -99
- data/app/assets/javascripts/semantic-ui/form.js +98 -60
- data/app/assets/javascripts/semantic-ui/modal.js +259 -16
- data/app/assets/javascripts/semantic-ui/nag.js +130 -64
- data/app/assets/javascripts/semantic-ui/popup.js +4 -4
- data/app/assets/javascripts/semantic-ui/progress.js +6 -8
- data/app/assets/javascripts/semantic-ui/search.js +14 -12
- data/app/assets/javascripts/semantic-ui/slider.js +55 -31
- data/app/assets/javascripts/semantic-ui/toast.js +26 -6
- data/app/assets/stylesheets/semantic-ui/collections/_breadcrumb.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/collections/_form.scss +46 -5
- data/app/assets/stylesheets/semantic-ui/collections/_grid.scss +14 -7
- data/app/assets/stylesheets/semantic-ui/collections/_menu.scss +6 -4
- data/app/assets/stylesheets/semantic-ui/collections/_message.scss +50 -3
- data/app/assets/stylesheets/semantic-ui/collections/_table.scss +6 -2
- data/app/assets/stylesheets/semantic-ui/elements/_button.scss +29 -2
- data/app/assets/stylesheets/semantic-ui/elements/_container.scss +3 -4
- data/app/assets/stylesheets/semantic-ui/elements/_divider.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/elements/_flag.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/elements/_header.scss +10 -5
- data/app/assets/stylesheets/semantic-ui/elements/_icon.scss +237 -65
- data/app/assets/stylesheets/semantic-ui/elements/_image.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/elements/_input.scss +2 -1
- data/app/assets/stylesheets/semantic-ui/elements/_label.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/elements/_list.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/elements/_loader.scss +41 -37
- data/app/assets/stylesheets/semantic-ui/elements/_placeholder.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/elements/_rail.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/elements/_reveal.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/elements/_segment.scss +34 -2
- data/app/assets/stylesheets/semantic-ui/elements/_step.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/elements/_text.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/globals/_reset.scss +2 -3
- data/app/assets/stylesheets/semantic-ui/globals/_site.scss +2 -2
- data/app/assets/stylesheets/semantic-ui/modules/_accordion.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_calendar.scss +3 -3
- data/app/assets/stylesheets/semantic-ui/modules/_checkbox.scss +46 -4
- data/app/assets/stylesheets/semantic-ui/modules/_dimmer.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_dropdown.scss +72 -3
- data/app/assets/stylesheets/semantic-ui/modules/_embed.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_modal.scss +19 -8
- data/app/assets/stylesheets/semantic-ui/modules/_nag.scss +168 -16
- data/app/assets/stylesheets/semantic-ui/modules/_popup.scss +4 -2
- data/app/assets/stylesheets/semantic-ui/modules/_progress.scss +18 -10
- data/app/assets/stylesheets/semantic-ui/modules/_rating.scss +18 -33
- data/app/assets/stylesheets/semantic-ui/modules/_search.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_shape.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_sidebar.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_slider.scss +3 -1
- data/app/assets/stylesheets/semantic-ui/modules/_sticky.scss +1 -2
- data/app/assets/stylesheets/semantic-ui/modules/_tab.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_toast.scss +97 -10
- data/app/assets/stylesheets/semantic-ui/modules/_transition.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/views/_ad.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/views/_card.scss +74 -2
- data/app/assets/stylesheets/semantic-ui/views/_comment.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/views/_feed.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/views/_item.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/views/_statistic.scss +1 -1
- data/lib/fomantic/ui/sass/version.rb +2 -2
- metadata +6 -6
@@ -87,6 +87,7 @@ $.fn.dropdown = function(parameters) {
|
|
87
87
|
internalChange = false,
|
88
88
|
iconClicked = false,
|
89
89
|
element = this,
|
90
|
+
focused = false,
|
90
91
|
instance = $module.data(moduleNamespace),
|
91
92
|
|
92
93
|
selectActionActive,
|
@@ -296,7 +297,9 @@ $.fn.dropdown = function(parameters) {
|
|
296
297
|
: module.get.query()
|
297
298
|
;
|
298
299
|
module.verbose('Searching for query', query);
|
299
|
-
if(module.
|
300
|
+
if(settings.fireOnInit === false && module.is.initialLoad()) {
|
301
|
+
module.verbose('Skipping callback on initial load', settings.onSearch);
|
302
|
+
} else if(module.has.minCharacters(query) && settings.onSearch.call(element, query) !== false) {
|
300
303
|
module.filter(query);
|
301
304
|
}
|
302
305
|
else {
|
@@ -358,7 +361,7 @@ $.fn.dropdown = function(parameters) {
|
|
358
361
|
if( !module.has.menu() ) {
|
359
362
|
module.create.menu();
|
360
363
|
}
|
361
|
-
if ( module.is.
|
364
|
+
if ( module.is.clearable() && !module.has.clearItem() ) {
|
362
365
|
module.verbose('Adding clear icon');
|
363
366
|
$clear = $('<i />')
|
364
367
|
.addClass('remove icon')
|
@@ -369,7 +372,7 @@ $.fn.dropdown = function(parameters) {
|
|
369
372
|
module.verbose('Adding search input');
|
370
373
|
$search = $('<input />')
|
371
374
|
.addClass(className.search)
|
372
|
-
.prop('autocomplete', 'off')
|
375
|
+
.prop('autocomplete', module.is.chrome() ? 'fomantic-search' : 'off')
|
373
376
|
.insertBefore($text)
|
374
377
|
;
|
375
378
|
}
|
@@ -497,6 +500,11 @@ $.fn.dropdown = function(parameters) {
|
|
497
500
|
;
|
498
501
|
},
|
499
502
|
|
503
|
+
clearItems: function() {
|
504
|
+
$menu.empty();
|
505
|
+
module.refreshItems();
|
506
|
+
},
|
507
|
+
|
500
508
|
toggle: function() {
|
501
509
|
module.verbose('Toggling menu visibility');
|
502
510
|
if( !module.is.active() ) {
|
@@ -512,9 +520,12 @@ $.fn.dropdown = function(parameters) {
|
|
512
520
|
? callback
|
513
521
|
: function(){}
|
514
522
|
;
|
523
|
+
if ((focused || iconClicked) && module.is.remote() && module.is.noApiCache()) {
|
524
|
+
module.clearItems();
|
525
|
+
}
|
515
526
|
if(!module.can.show() && module.is.remote()) {
|
516
527
|
module.debug('No API results retrieved, searching before show');
|
517
|
-
module.queryRemote(module.get.query(), module.show);
|
528
|
+
module.queryRemote(module.get.query(), module.show, [callback, preventFocus]);
|
518
529
|
}
|
519
530
|
if( module.can.show() && !module.is.active() ) {
|
520
531
|
module.debug('Showing dropdown');
|
@@ -560,6 +571,7 @@ $.fn.dropdown = function(parameters) {
|
|
560
571
|
module.unbind.intent();
|
561
572
|
}
|
562
573
|
iconClicked = false;
|
574
|
+
focused = false;
|
563
575
|
},
|
564
576
|
|
565
577
|
hideOthers: function() {
|
@@ -638,6 +650,7 @@ $.fn.dropdown = function(parameters) {
|
|
638
650
|
if(module.is.multiple()) {
|
639
651
|
$module
|
640
652
|
.on(clickEvent + eventNamespace, module.event.click)
|
653
|
+
.on(clickEvent + eventNamespace, module.event.search.focus)
|
641
654
|
;
|
642
655
|
}
|
643
656
|
}
|
@@ -767,11 +780,14 @@ $.fn.dropdown = function(parameters) {
|
|
767
780
|
if(!Array.isArray(preSelected)) {
|
768
781
|
preSelected = preSelected && preSelected!=="" ? preSelected.split(settings.delimiter) : [];
|
769
782
|
}
|
770
|
-
|
771
|
-
|
772
|
-
|
773
|
-
|
774
|
-
|
783
|
+
if (module.is.multiple()) {
|
784
|
+
$.each(preSelected,function(index,value){
|
785
|
+
$item.filter('[data-value="'+value+'"]')
|
786
|
+
.addClass(className.filtered)
|
787
|
+
;
|
788
|
+
});
|
789
|
+
}
|
790
|
+
module.focusSearch(true);
|
775
791
|
afterFiltered();
|
776
792
|
});
|
777
793
|
}
|
@@ -785,7 +801,10 @@ $.fn.dropdown = function(parameters) {
|
|
785
801
|
}
|
786
802
|
},
|
787
803
|
|
788
|
-
queryRemote: function(query, callback) {
|
804
|
+
queryRemote: function(query, callback, callbackParameters) {
|
805
|
+
if(!Array.isArray(callbackParameters)){
|
806
|
+
callbackParameters = [callbackParameters];
|
807
|
+
}
|
789
808
|
var
|
790
809
|
apiSettings = {
|
791
810
|
errorDuration : false,
|
@@ -796,11 +815,15 @@ $.fn.dropdown = function(parameters) {
|
|
796
815
|
},
|
797
816
|
onError: function() {
|
798
817
|
module.add.message(message.serverError);
|
799
|
-
|
818
|
+
iconClicked = false;
|
819
|
+
focused = false;
|
820
|
+
callback.apply(null, callbackParameters);
|
800
821
|
},
|
801
822
|
onFailure: function() {
|
802
823
|
module.add.message(message.serverError);
|
803
|
-
|
824
|
+
iconClicked = false;
|
825
|
+
focused = false;
|
826
|
+
callback.apply(null, callbackParameters);
|
804
827
|
},
|
805
828
|
onSuccess : function(response) {
|
806
829
|
var
|
@@ -817,7 +840,16 @@ $.fn.dropdown = function(parameters) {
|
|
817
840
|
if(values.length===0 && !settings.allowAdditions) {
|
818
841
|
module.add.message(message.noResults);
|
819
842
|
}
|
820
|
-
|
843
|
+
else {
|
844
|
+
var value = module.is.multiple() ? module.get.values() : module.get.value();
|
845
|
+
if (value !== '') {
|
846
|
+
module.verbose('Value(s) present after click icon, select value(s) in items');
|
847
|
+
module.set.selected(value, null, null, true);
|
848
|
+
}
|
849
|
+
}
|
850
|
+
iconClicked = false;
|
851
|
+
focused = false;
|
852
|
+
callback.apply(null, callbackParameters);
|
821
853
|
}
|
822
854
|
}
|
823
855
|
;
|
@@ -1049,6 +1081,7 @@ $.fn.dropdown = function(parameters) {
|
|
1049
1081
|
},
|
1050
1082
|
focus: function() {
|
1051
1083
|
if(settings.showOnFocus && !activated && module.is.hidden() && !pageLostFocus) {
|
1084
|
+
focused = true;
|
1052
1085
|
module.show();
|
1053
1086
|
}
|
1054
1087
|
},
|
@@ -1098,7 +1131,8 @@ $.fn.dropdown = function(parameters) {
|
|
1098
1131
|
if(module.is.multiple()) {
|
1099
1132
|
module.remove.activeLabel();
|
1100
1133
|
}
|
1101
|
-
if(settings.showOnFocus || (event.type !== 'focus' && event.type !== 'focusin')) {
|
1134
|
+
if(!focused && !module.is.active() && (settings.showOnFocus || (event.type !== 'focus' && event.type !== 'focusin'))) {
|
1135
|
+
focused = true;
|
1102
1136
|
module.search();
|
1103
1137
|
}
|
1104
1138
|
},
|
@@ -1143,6 +1177,7 @@ $.fn.dropdown = function(parameters) {
|
|
1143
1177
|
} else {
|
1144
1178
|
module.toggle();
|
1145
1179
|
}
|
1180
|
+
event.stopPropagation();
|
1146
1181
|
}
|
1147
1182
|
},
|
1148
1183
|
text: {
|
@@ -1182,10 +1217,11 @@ $.fn.dropdown = function(parameters) {
|
|
1182
1217
|
$label.addClass(className.active);
|
1183
1218
|
}
|
1184
1219
|
settings.onLabelSelect.apply(this, $labels.filter('.' + className.active));
|
1220
|
+
event.stopPropagation();
|
1185
1221
|
}
|
1186
1222
|
},
|
1187
1223
|
remove: {
|
1188
|
-
click: function() {
|
1224
|
+
click: function(event) {
|
1189
1225
|
var
|
1190
1226
|
$label = $(this).parent()
|
1191
1227
|
;
|
@@ -1197,6 +1233,7 @@ $.fn.dropdown = function(parameters) {
|
|
1197
1233
|
// remove this label only
|
1198
1234
|
module.remove.activeLabels( $label );
|
1199
1235
|
}
|
1236
|
+
event.stopPropagation();
|
1200
1237
|
}
|
1201
1238
|
},
|
1202
1239
|
test: {
|
@@ -1209,6 +1246,9 @@ $.fn.dropdown = function(parameters) {
|
|
1209
1246
|
if(module.is.bubbledLabelClick(event) || module.is.bubbledIconClick(event)) {
|
1210
1247
|
return;
|
1211
1248
|
}
|
1249
|
+
if (!module.is.multiple() || (module.is.multiple() && !module.is.active())) {
|
1250
|
+
focused = true;
|
1251
|
+
}
|
1212
1252
|
if( module.determine.eventOnElement(event, toggleBehavior) ) {
|
1213
1253
|
event.preventDefault();
|
1214
1254
|
}
|
@@ -1829,7 +1869,7 @@ $.fn.dropdown = function(parameters) {
|
|
1829
1869
|
return count;
|
1830
1870
|
},
|
1831
1871
|
transition: function($subMenu) {
|
1832
|
-
return (settings.transition
|
1872
|
+
return (settings.transition === 'auto')
|
1833
1873
|
? module.is.upward($subMenu)
|
1834
1874
|
? 'slide up'
|
1835
1875
|
: 'slide down'
|
@@ -1892,7 +1932,7 @@ $.fn.dropdown = function(parameters) {
|
|
1892
1932
|
: value
|
1893
1933
|
;
|
1894
1934
|
},
|
1895
|
-
values: function() {
|
1935
|
+
values: function(raw) {
|
1896
1936
|
var
|
1897
1937
|
value = module.get.value()
|
1898
1938
|
;
|
@@ -1901,7 +1941,7 @@ $.fn.dropdown = function(parameters) {
|
|
1901
1941
|
}
|
1902
1942
|
return ( !module.has.selectInput() && module.is.multiple() )
|
1903
1943
|
? (typeof value == 'string') // delimited string
|
1904
|
-
? module.escape.htmlEntities(value).split(settings.delimiter)
|
1944
|
+
? (raw ? value : module.escape.htmlEntities(value)).split(settings.delimiter)
|
1905
1945
|
: ''
|
1906
1946
|
: value
|
1907
1947
|
;
|
@@ -1945,8 +1985,8 @@ $.fn.dropdown = function(parameters) {
|
|
1945
1985
|
return ($choice.data(metadata.text) !== undefined)
|
1946
1986
|
? $choice.data(metadata.text)
|
1947
1987
|
: (preserveHTML)
|
1948
|
-
? $choice.html().trim()
|
1949
|
-
: $choice.text().trim()
|
1988
|
+
? $choice.html() && $choice.html().trim()
|
1989
|
+
: $choice.text() && $choice.text().trim()
|
1950
1990
|
;
|
1951
1991
|
}
|
1952
1992
|
},
|
@@ -2136,6 +2176,9 @@ $.fn.dropdown = function(parameters) {
|
|
2136
2176
|
;
|
2137
2177
|
}
|
2138
2178
|
return $selectedItem;
|
2179
|
+
},
|
2180
|
+
displayType: function() {
|
2181
|
+
return $module.hasClass('column') ? 'flex' : settings.displayType;
|
2139
2182
|
}
|
2140
2183
|
},
|
2141
2184
|
|
@@ -2327,7 +2370,7 @@ $.fn.dropdown = function(parameters) {
|
|
2327
2370
|
|
2328
2371
|
clear: function(preventChangeTrigger) {
|
2329
2372
|
if(module.is.multiple() && settings.useLabels) {
|
2330
|
-
module.remove.labels();
|
2373
|
+
module.remove.labels($module.find(selector.label), preventChangeTrigger);
|
2331
2374
|
}
|
2332
2375
|
else {
|
2333
2376
|
module.remove.activeItem();
|
@@ -2690,7 +2733,7 @@ $.fn.dropdown = function(parameters) {
|
|
2690
2733
|
module.clear();
|
2691
2734
|
module.set.selected(value, $selectedItem);
|
2692
2735
|
},
|
2693
|
-
selected: function(value, $selectedItem) {
|
2736
|
+
selected: function(value, $selectedItem, preventChangeTrigger, keepSearchTerm) {
|
2694
2737
|
var
|
2695
2738
|
isMultiple = module.is.multiple()
|
2696
2739
|
;
|
@@ -2752,8 +2795,10 @@ $.fn.dropdown = function(parameters) {
|
|
2752
2795
|
if(settings.apiSettings && settings.saveRemoteData) {
|
2753
2796
|
module.save.remoteData(selectedText, selectedValue);
|
2754
2797
|
}
|
2755
|
-
|
2756
|
-
|
2798
|
+
if (!keepSearchTerm) {
|
2799
|
+
module.set.text(selectedText);
|
2800
|
+
}
|
2801
|
+
module.set.value(selectedValue, selectedText, $selected, preventChangeTrigger);
|
2757
2802
|
$selected
|
2758
2803
|
.addClass(className.active)
|
2759
2804
|
.addClass(className.selected)
|
@@ -2761,7 +2806,9 @@ $.fn.dropdown = function(parameters) {
|
|
2761
2806
|
}
|
2762
2807
|
})
|
2763
2808
|
;
|
2764
|
-
|
2809
|
+
if (!keepSearchTerm) {
|
2810
|
+
module.remove.searchTerm();
|
2811
|
+
}
|
2765
2812
|
}
|
2766
2813
|
},
|
2767
2814
|
|
@@ -2925,7 +2972,7 @@ $.fn.dropdown = function(parameters) {
|
|
2925
2972
|
},
|
2926
2973
|
value: function(addedValue, addedText, $selectedItem) {
|
2927
2974
|
var
|
2928
|
-
currentValue = module.get.values(),
|
2975
|
+
currentValue = module.get.values(true),
|
2929
2976
|
newValue
|
2930
2977
|
;
|
2931
2978
|
if(module.has.value(addedValue)) {
|
@@ -3049,7 +3096,7 @@ $.fn.dropdown = function(parameters) {
|
|
3049
3096
|
userAddition: function() {
|
3050
3097
|
$item.filter(selector.addition).remove();
|
3051
3098
|
},
|
3052
|
-
selected: function(value, $selectedItem) {
|
3099
|
+
selected: function(value, $selectedItem, preventChangeTrigger) {
|
3053
3100
|
$selectedItem = (settings.allowAdditions)
|
3054
3101
|
? $selectedItem || module.get.itemWithAdditions(value)
|
3055
3102
|
: $selectedItem || module.get.item(value)
|
@@ -3068,11 +3115,11 @@ $.fn.dropdown = function(parameters) {
|
|
3068
3115
|
;
|
3069
3116
|
if(module.is.multiple()) {
|
3070
3117
|
if(settings.useLabels) {
|
3071
|
-
module.remove.value(selectedValue, selectedText, $selected);
|
3118
|
+
module.remove.value(selectedValue, selectedText, $selected, preventChangeTrigger);
|
3072
3119
|
module.remove.label(selectedValue);
|
3073
3120
|
}
|
3074
3121
|
else {
|
3075
|
-
module.remove.value(selectedValue, selectedText, $selected);
|
3122
|
+
module.remove.value(selectedValue, selectedText, $selected, preventChangeTrigger);
|
3076
3123
|
if(module.get.selectionCount() === 0) {
|
3077
3124
|
module.set.placeholderText();
|
3078
3125
|
}
|
@@ -3082,7 +3129,7 @@ $.fn.dropdown = function(parameters) {
|
|
3082
3129
|
}
|
3083
3130
|
}
|
3084
3131
|
else {
|
3085
|
-
module.remove.value(selectedValue, selectedText, $selected);
|
3132
|
+
module.remove.value(selectedValue, selectedText, $selected, preventChangeTrigger);
|
3086
3133
|
}
|
3087
3134
|
$selected
|
3088
3135
|
.removeClass(className.filtered)
|
@@ -3097,7 +3144,7 @@ $.fn.dropdown = function(parameters) {
|
|
3097
3144
|
selectedItem: function() {
|
3098
3145
|
$item.removeClass(className.selected);
|
3099
3146
|
},
|
3100
|
-
value: function(removedValue, removedText, $removedItem) {
|
3147
|
+
value: function(removedValue, removedText, $removedItem, preventChangeTrigger) {
|
3101
3148
|
var
|
3102
3149
|
values = module.get.values(),
|
3103
3150
|
newValue
|
@@ -3119,7 +3166,7 @@ $.fn.dropdown = function(parameters) {
|
|
3119
3166
|
else {
|
3120
3167
|
settings.onRemove.call(element, removedValue, removedText, $removedItem);
|
3121
3168
|
}
|
3122
|
-
module.set.value(newValue, removedText, $removedItem);
|
3169
|
+
module.set.value(newValue, removedText, $removedItem, preventChangeTrigger);
|
3123
3170
|
module.check.maxSelections();
|
3124
3171
|
},
|
3125
3172
|
arrayValue: function(removedValue, values) {
|
@@ -3134,8 +3181,9 @@ $.fn.dropdown = function(parameters) {
|
|
3134
3181
|
},
|
3135
3182
|
label: function(value, shouldAnimate) {
|
3136
3183
|
var
|
3184
|
+
escapedValue = module.escape.value(value),
|
3137
3185
|
$labels = $module.find(selector.label),
|
3138
|
-
$removedLabel = $labels.filter('[data-' + metadata.value + '="' + module.escape.string(settings.ignoreCase ?
|
3186
|
+
$removedLabel = $labels.filter('[data-' + metadata.value + '="' + module.escape.string(settings.ignoreCase ? escapedValue.toLowerCase() : escapedValue) +'"]')
|
3139
3187
|
;
|
3140
3188
|
module.verbose('Removing label', $removedLabel);
|
3141
3189
|
$removedLabel.remove();
|
@@ -3145,7 +3193,7 @@ $.fn.dropdown = function(parameters) {
|
|
3145
3193
|
module.verbose('Removing active label selections', $activeLabels);
|
3146
3194
|
module.remove.labels($activeLabels);
|
3147
3195
|
},
|
3148
|
-
labels: function($labels) {
|
3196
|
+
labels: function($labels, preventChangeTrigger) {
|
3149
3197
|
$labels = $labels || $module.find(selector.label);
|
3150
3198
|
module.verbose('Removing labels', $labels);
|
3151
3199
|
$labels
|
@@ -3164,12 +3212,12 @@ $.fn.dropdown = function(parameters) {
|
|
3164
3212
|
}
|
3165
3213
|
module.remove.message();
|
3166
3214
|
if(isUserValue) {
|
3167
|
-
module.remove.value(stringValue);
|
3215
|
+
module.remove.value(stringValue, stringValue, module.get.item(stringValue), preventChangeTrigger);
|
3168
3216
|
module.remove.label(stringValue);
|
3169
3217
|
}
|
3170
3218
|
else {
|
3171
3219
|
// selected will also remove label
|
3172
|
-
module.remove.selected(stringValue);
|
3220
|
+
module.remove.selected(stringValue, false, preventChangeTrigger);
|
3173
3221
|
}
|
3174
3222
|
})
|
3175
3223
|
;
|
@@ -3248,6 +3296,9 @@ $.fn.dropdown = function(parameters) {
|
|
3248
3296
|
menu: function() {
|
3249
3297
|
return ($menu.length > 0);
|
3250
3298
|
},
|
3299
|
+
subMenu: function($currentMenu) {
|
3300
|
+
return ($currentMenu || $menu).find(selector.menu).length > 0;
|
3301
|
+
},
|
3251
3302
|
message: function() {
|
3252
3303
|
return ($menu.children(selector.message).length !== 0);
|
3253
3304
|
},
|
@@ -3284,7 +3335,7 @@ $.fn.dropdown = function(parameters) {
|
|
3284
3335
|
},
|
3285
3336
|
valueMatchingCase: function(value) {
|
3286
3337
|
var
|
3287
|
-
values = module.get.values(),
|
3338
|
+
values = module.get.values(true),
|
3288
3339
|
hasValue = Array.isArray(values)
|
3289
3340
|
? values && ($.inArray(value, values) !== -1)
|
3290
3341
|
: (values == value)
|
@@ -3296,7 +3347,7 @@ $.fn.dropdown = function(parameters) {
|
|
3296
3347
|
},
|
3297
3348
|
valueIgnoringCase: function(value) {
|
3298
3349
|
var
|
3299
|
-
values = module.get.values(),
|
3350
|
+
values = module.get.values(true),
|
3300
3351
|
hasValue = false
|
3301
3352
|
;
|
3302
3353
|
if(!Array.isArray(values)) {
|
@@ -3328,6 +3379,9 @@ $.fn.dropdown = function(parameters) {
|
|
3328
3379
|
bubbledIconClick: function(event) {
|
3329
3380
|
return $(event.target).closest($icon).length > 0;
|
3330
3381
|
},
|
3382
|
+
chrome: function() {
|
3383
|
+
return !!window.chrome && (!!window.chrome.webstore || !!window.chrome.runtime);
|
3384
|
+
},
|
3331
3385
|
alreadySetup: function() {
|
3332
3386
|
return ($module.is('select') && $module.parent(selector.dropdown).data(moduleNamespace) !== undefined && $module.prev().length === 0);
|
3333
3387
|
},
|
@@ -3380,6 +3434,9 @@ $.fn.dropdown = function(parameters) {
|
|
3380
3434
|
remote: function() {
|
3381
3435
|
return settings.apiSettings && module.can.useAPI();
|
3382
3436
|
},
|
3437
|
+
noApiCache: function() {
|
3438
|
+
return settings.apiSettings && !settings.apiSettings.cache
|
3439
|
+
},
|
3383
3440
|
single: function() {
|
3384
3441
|
return !module.is.multiple();
|
3385
3442
|
},
|
@@ -3474,6 +3531,9 @@ $.fn.dropdown = function(parameters) {
|
|
3474
3531
|
if(module.is.verticallyScrollableContext()) {
|
3475
3532
|
calculations.menu.offset.top += calculations.context.scrollTop;
|
3476
3533
|
}
|
3534
|
+
if(module.has.subMenu($currentMenu)) {
|
3535
|
+
calculations.menu.height += $currentMenu.find(selector.menu).first().outerHeight();
|
3536
|
+
}
|
3477
3537
|
onScreen = {
|
3478
3538
|
above : (calculations.context.scrollTop) <= calculations.menu.offset.top - calculations.context.offset.top - calculations.menu.height,
|
3479
3539
|
below : (calculations.context.scrollTop + calculations.context.height) >= calculations.menu.offset.top - calculations.context.offset.top + calculations.menu.height
|
@@ -3560,16 +3620,15 @@ $.fn.dropdown = function(parameters) {
|
|
3560
3620
|
;
|
3561
3621
|
module.verbose('Doing menu show animation', $currentMenu);
|
3562
3622
|
module.set.direction($subMenu);
|
3563
|
-
transition = module.get.transition($subMenu);
|
3623
|
+
transition = settings.transition.showMethod || module.get.transition($subMenu);
|
3564
3624
|
if( module.is.selection() ) {
|
3565
3625
|
module.set.scrollPosition(module.get.selectedItem(), true);
|
3566
3626
|
}
|
3567
3627
|
if( module.is.hidden($currentMenu) || module.is.animating($currentMenu) ) {
|
3568
|
-
|
3569
|
-
if(transition == 'none') {
|
3628
|
+
if(transition === 'none') {
|
3570
3629
|
start();
|
3571
3630
|
$currentMenu.transition({
|
3572
|
-
displayType: displayType
|
3631
|
+
displayType: module.get.displayType()
|
3573
3632
|
}).transition('show');
|
3574
3633
|
callback.call(element);
|
3575
3634
|
}
|
@@ -3579,10 +3638,10 @@ $.fn.dropdown = function(parameters) {
|
|
3579
3638
|
animation : transition + ' in',
|
3580
3639
|
debug : settings.debug,
|
3581
3640
|
verbose : settings.verbose,
|
3582
|
-
duration : settings.duration,
|
3641
|
+
duration : settings.transition.showDuration || settings.duration,
|
3583
3642
|
queue : true,
|
3584
3643
|
onStart : start,
|
3585
|
-
displayType: displayType,
|
3644
|
+
displayType: module.get.displayType(),
|
3586
3645
|
onComplete : function() {
|
3587
3646
|
callback.call(element);
|
3588
3647
|
}
|
@@ -3605,7 +3664,7 @@ $.fn.dropdown = function(parameters) {
|
|
3605
3664
|
}
|
3606
3665
|
module.remove.active();
|
3607
3666
|
},
|
3608
|
-
transition = module.get.transition($subMenu)
|
3667
|
+
transition = settings.transition.hideMethod || module.get.transition($subMenu)
|
3609
3668
|
;
|
3610
3669
|
callback = $.isFunction(callback)
|
3611
3670
|
? callback
|
@@ -3614,20 +3673,23 @@ $.fn.dropdown = function(parameters) {
|
|
3614
3673
|
if( module.is.visible($currentMenu) || module.is.animating($currentMenu) ) {
|
3615
3674
|
module.verbose('Doing menu hide animation', $currentMenu);
|
3616
3675
|
|
3617
|
-
if(transition
|
3676
|
+
if(transition === 'none') {
|
3618
3677
|
start();
|
3619
|
-
$currentMenu.transition(
|
3678
|
+
$currentMenu.transition({
|
3679
|
+
displayType: module.get.displayType()
|
3680
|
+
}).transition('hide');
|
3620
3681
|
callback.call(element);
|
3621
3682
|
}
|
3622
3683
|
else if($.fn.transition !== undefined && $module.transition('is supported')) {
|
3623
3684
|
$currentMenu
|
3624
3685
|
.transition({
|
3625
3686
|
animation : transition + ' out',
|
3626
|
-
duration : settings.duration,
|
3687
|
+
duration : settings.transition.hideDuration || settings.duration,
|
3627
3688
|
debug : settings.debug,
|
3628
3689
|
verbose : settings.verbose,
|
3629
3690
|
queue : false,
|
3630
3691
|
onStart : start,
|
3692
|
+
displayType: module.get.displayType(),
|
3631
3693
|
onComplete : function() {
|
3632
3694
|
callback.call(element);
|
3633
3695
|
}
|
@@ -3956,6 +4018,7 @@ $.fn.dropdown.settings = {
|
|
3956
4018
|
|
3957
4019
|
transition : 'auto', // auto transition will slide down or up based on direction
|
3958
4020
|
duration : 200, // duration of transition
|
4021
|
+
displayType : false, // displayType of transition
|
3959
4022
|
|
3960
4023
|
glyphWidth : 1.037, // widest glyph width in em (W is 1.037 em) used to calculate multiselect input width
|
3961
4024
|
|
@@ -3980,6 +4043,7 @@ $.fn.dropdown.settings = {
|
|
3980
4043
|
onChange : function(value, text, $selected){},
|
3981
4044
|
onAdd : function(value, text, $selected){},
|
3982
4045
|
onRemove : function(value, text, $selected){},
|
4046
|
+
onSearch : function(searchTerm){},
|
3983
4047
|
|
3984
4048
|
onLabelSelect : function($selectedLabels){},
|
3985
4049
|
onLabelCreate : function(value, text) { return $(this); },
|
@@ -4027,19 +4091,21 @@ $.fn.dropdown.settings = {
|
|
4027
4091
|
|
4028
4092
|
// property names for remote query
|
4029
4093
|
fields: {
|
4030
|
-
remoteValues
|
4031
|
-
values
|
4032
|
-
disabled
|
4033
|
-
name
|
4034
|
-
|
4035
|
-
|
4036
|
-
|
4037
|
-
|
4038
|
-
|
4039
|
-
|
4040
|
-
|
4041
|
-
|
4042
|
-
|
4094
|
+
remoteValues : 'results', // grouping for api results
|
4095
|
+
values : 'values', // grouping for all dropdown values
|
4096
|
+
disabled : 'disabled', // whether value should be disabled
|
4097
|
+
name : 'name', // displayed dropdown text
|
4098
|
+
description : 'description', // displayed dropdown description
|
4099
|
+
descriptionVertical : 'descriptionVertical', // whether description should be vertical
|
4100
|
+
value : 'value', // actual dropdown value
|
4101
|
+
text : 'text', // displayed text when selected
|
4102
|
+
type : 'type', // type of dropdown element
|
4103
|
+
image : 'image', // optional image path
|
4104
|
+
imageClass : 'imageClass', // optional individual class for image
|
4105
|
+
icon : 'icon', // optional icon name
|
4106
|
+
iconClass : 'iconClass', // optional individual class for icon (for example to use flag instead)
|
4107
|
+
class : 'class', // optional individual class for item/header
|
4108
|
+
divider : 'divider' // optional divider append for group headers
|
4043
4109
|
},
|
4044
4110
|
|
4045
4111
|
keys : {
|
@@ -4078,45 +4144,48 @@ $.fn.dropdown.settings = {
|
|
4078
4144
|
},
|
4079
4145
|
|
4080
4146
|
className : {
|
4081
|
-
active
|
4082
|
-
addition
|
4083
|
-
animating
|
4084
|
-
|
4085
|
-
|
4086
|
-
|
4087
|
-
|
4088
|
-
|
4089
|
-
|
4090
|
-
|
4091
|
-
|
4092
|
-
|
4093
|
-
|
4094
|
-
|
4095
|
-
|
4096
|
-
|
4097
|
-
|
4098
|
-
|
4099
|
-
|
4100
|
-
|
4101
|
-
|
4102
|
-
|
4103
|
-
|
4104
|
-
|
4105
|
-
|
4106
|
-
|
4107
|
-
|
4108
|
-
|
4109
|
-
|
4110
|
-
|
4111
|
-
|
4147
|
+
active : 'active',
|
4148
|
+
addition : 'addition',
|
4149
|
+
animating : 'animating',
|
4150
|
+
description : 'description',
|
4151
|
+
descriptionVertical : 'vertical',
|
4152
|
+
disabled : 'disabled',
|
4153
|
+
empty : 'empty',
|
4154
|
+
dropdown : 'ui dropdown',
|
4155
|
+
filtered : 'filtered',
|
4156
|
+
hidden : 'hidden transition',
|
4157
|
+
icon : 'icon',
|
4158
|
+
image : 'image',
|
4159
|
+
item : 'item',
|
4160
|
+
label : 'ui label',
|
4161
|
+
loading : 'loading',
|
4162
|
+
menu : 'menu',
|
4163
|
+
message : 'message',
|
4164
|
+
multiple : 'multiple',
|
4165
|
+
placeholder : 'default',
|
4166
|
+
sizer : 'sizer',
|
4167
|
+
search : 'search',
|
4168
|
+
selected : 'selected',
|
4169
|
+
selection : 'selection',
|
4170
|
+
text : 'text',
|
4171
|
+
upward : 'upward',
|
4172
|
+
leftward : 'left',
|
4173
|
+
visible : 'visible',
|
4174
|
+
clearable : 'clearable',
|
4175
|
+
noselection : 'noselection',
|
4176
|
+
delete : 'delete',
|
4177
|
+
header : 'header',
|
4178
|
+
divider : 'divider',
|
4179
|
+
groupIcon : '',
|
4180
|
+
unfilterable : 'unfilterable'
|
4112
4181
|
}
|
4113
4182
|
|
4114
4183
|
};
|
4115
4184
|
|
4116
4185
|
/* Templates */
|
4117
4186
|
$.fn.dropdown.settings.templates = {
|
4118
|
-
deQuote: function(string) {
|
4119
|
-
return String(string).replace(/"/g,"");
|
4187
|
+
deQuote: function(string, encode) {
|
4188
|
+
return String(string).replace(/"/g,encode ? """ : "");
|
4120
4189
|
},
|
4121
4190
|
escape: function(string, preserveHTML) {
|
4122
4191
|
if (preserveHTML){
|
@@ -4174,26 +4243,49 @@ $.fn.dropdown.settings.templates = {
|
|
4174
4243
|
var
|
4175
4244
|
itemType = (option[fields.type])
|
4176
4245
|
? option[fields.type]
|
4177
|
-
: 'item'
|
4246
|
+
: 'item',
|
4247
|
+
isMenu = itemType.indexOf('menu') !== -1
|
4178
4248
|
;
|
4179
4249
|
|
4180
|
-
if( itemType === 'item' ) {
|
4250
|
+
if( itemType === 'item' || isMenu) {
|
4181
4251
|
var
|
4182
4252
|
maybeText = (option[fields.text])
|
4183
|
-
? ' data-text="' + deQuote(option[fields.text]) + '"'
|
4253
|
+
? ' data-text="' + deQuote(option[fields.text],true) + '"'
|
4184
4254
|
: '',
|
4185
4255
|
maybeDisabled = (option[fields.disabled])
|
4186
4256
|
? className.disabled+' '
|
4187
|
-
: ''
|
4257
|
+
: '',
|
4258
|
+
maybeDescriptionVertical = (option[fields.descriptionVertical])
|
4259
|
+
? className.descriptionVertical+' '
|
4260
|
+
: '',
|
4261
|
+
hasDescription = (escape(option[fields.description] || '', preserveHTML) != '')
|
4188
4262
|
;
|
4189
|
-
html += '<div class="'+ maybeDisabled + (option[fields.class] ? deQuote(option[fields.class]) : className.item)+'" data-value="' + deQuote(option[fields.value]) + '"' + maybeText + '>';
|
4263
|
+
html += '<div class="'+ maybeDisabled + maybeDescriptionVertical + (option[fields.class] ? deQuote(option[fields.class]) : className.item)+'" data-value="' + deQuote(option[fields.value],true) + '"' + maybeText + '>';
|
4264
|
+
if (isMenu) {
|
4265
|
+
html += '<i class="'+ (itemType.indexOf('left') !== -1 ? 'left' : '') + ' dropdown icon"></i>';
|
4266
|
+
}
|
4190
4267
|
if(option[fields.image]) {
|
4191
4268
|
html += '<img class="'+(option[fields.imageClass] ? deQuote(option[fields.imageClass]) : className.image)+'" src="' + deQuote(option[fields.image]) + '">';
|
4192
4269
|
}
|
4193
4270
|
if(option[fields.icon]) {
|
4194
4271
|
html += '<i class="'+deQuote(option[fields.icon])+' '+(option[fields.iconClass] ? deQuote(option[fields.iconClass]) : className.icon)+'"></i>';
|
4195
4272
|
}
|
4273
|
+
if(hasDescription){
|
4274
|
+
html += '<span class="'+ className.description +'">'+ escape(option[fields.description] || '', preserveHTML) + '</span>';
|
4275
|
+
html += (!isMenu) ? '<span class="'+ className.text + '">' : '';
|
4276
|
+
}
|
4277
|
+
if (isMenu) {
|
4278
|
+
html += '<span class="' + className.text + '">';
|
4279
|
+
}
|
4196
4280
|
html += escape(option[fields.name] || '', preserveHTML);
|
4281
|
+
if (isMenu) {
|
4282
|
+
html += '</span>';
|
4283
|
+
html += '<div class="' + itemType + '">';
|
4284
|
+
html += $.fn.dropdown.settings.templates.menu(option, fields, preserveHTML, className);
|
4285
|
+
html += '</div>';
|
4286
|
+
} else if(hasDescription){
|
4287
|
+
html += '</span>';
|
4288
|
+
}
|
4197
4289
|
html += '</div>';
|
4198
4290
|
} else if (itemType === 'header') {
|
4199
4291
|
var groupName = escape(option[fields.name] || '', preserveHTML),
|