fomantic-ui-sass 2.8.6 → 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 +12 -0
- data/README.md +6 -0
- data/app/assets/fonts/semantic-ui/brand-icons.eot +0 -0
- data/app/assets/fonts/semantic-ui/brand-icons.svg +6 -41
- data/app/assets/fonts/semantic-ui/brand-icons.ttf +0 -0
- data/app/assets/fonts/semantic-ui/brand-icons.woff +0 -0
- data/app/assets/fonts/semantic-ui/brand-icons.woff2 +0 -0
- data/app/assets/fonts/semantic-ui/icons.eot +0 -0
- data/app/assets/fonts/semantic-ui/icons.svg +7 -245
- data/app/assets/fonts/semantic-ui/icons.ttf +0 -0
- data/app/assets/fonts/semantic-ui/icons.woff +0 -0
- data/app/assets/fonts/semantic-ui/icons.woff2 +0 -0
- data/app/assets/fonts/semantic-ui/outline-icons.eot +0 -0
- data/app/assets/fonts/semantic-ui/outline-icons.svg +2 -2
- data/app/assets/fonts/semantic-ui/outline-icons.ttf +0 -0
- data/app/assets/fonts/semantic-ui/outline-icons.woff +0 -0
- data/app/assets/fonts/semantic-ui/outline-icons.woff2 +0 -0
- data/app/assets/javascripts/semantic-ui/calendar.js +153 -29
- data/app/assets/javascripts/semantic-ui/checkbox.js +1 -1
- data/app/assets/javascripts/semantic-ui/dimmer.js +11 -14
- data/app/assets/javascripts/semantic-ui/dropdown.js +240 -112
- data/app/assets/javascripts/semantic-ui/form.js +131 -67
- 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 +25 -31
- data/app/assets/javascripts/semantic-ui/search.js +15 -12
- data/app/assets/javascripts/semantic-ui/slider.js +57 -33
- 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 +69 -74
- data/app/assets/stylesheets/semantic-ui/collections/_grid.scss +14 -7
- data/app/assets/stylesheets/semantic-ui/collections/_menu.scss +14 -11
- data/app/assets/stylesheets/semantic-ui/collections/_message.scss +52 -5
- data/app/assets/stylesheets/semantic-ui/collections/_table.scss +9 -5
- data/app/assets/stylesheets/semantic-ui/elements/_all.scss +1 -0
- 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 +14 -9
- data/app/assets/stylesheets/semantic-ui/elements/_icon.scss +244 -66
- data/app/assets/stylesheets/semantic-ui/elements/_image.scss +34 -5
- data/app/assets/stylesheets/semantic-ui/elements/_input.scss +34 -33
- data/app/assets/stylesheets/semantic-ui/elements/_label.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/elements/_list.scss +13 -13
- 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 +40 -2
- data/app/assets/stylesheets/semantic-ui/elements/_step.scss +10 -10
- data/app/assets/stylesheets/semantic-ui/elements/_text.scss +13 -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 +18 -11
- data/app/assets/stylesheets/semantic-ui/modules/_checkbox.scss +46 -4
- data/app/assets/stylesheets/semantic-ui/modules/_dimmer.scss +15 -15
- data/app/assets/stylesheets/semantic-ui/modules/_dropdown.scss +180 -28
- data/app/assets/stylesheets/semantic-ui/modules/_embed.scss +7 -7
- data/app/assets/stylesheets/semantic-ui/modules/_modal.scss +22 -11
- data/app/assets/stylesheets/semantic-ui/modules/_nag.scss +168 -16
- data/app/assets/stylesheets/semantic-ui/modules/_popup.scss +6 -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 +3 -2
- data/app/assets/stylesheets/semantic-ui/modules/_slider.scss +11 -0
- 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 +103 -16
- 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 +75 -3
- data/app/assets/stylesheets/semantic-ui/views/_comment.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/views/_feed.scss +6 -6
- data/app/assets/stylesheets/semantic-ui/views/_item.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/views/_statistic.scss +5 -5
- data/lib/fomantic/ui/sass/version.rb +2 -2
- metadata +3 -3
|
@@ -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,
|
|
@@ -97,6 +98,7 @@ $.fn.dropdown = function(parameters) {
|
|
|
97
98
|
id,
|
|
98
99
|
selectObserver,
|
|
99
100
|
menuObserver,
|
|
101
|
+
classObserver,
|
|
100
102
|
module
|
|
101
103
|
;
|
|
102
104
|
|
|
@@ -162,15 +164,18 @@ $.fn.dropdown = function(parameters) {
|
|
|
162
164
|
;
|
|
163
165
|
module.disconnect.menuObserver();
|
|
164
166
|
module.disconnect.selectObserver();
|
|
167
|
+
module.disconnect.classObserver();
|
|
165
168
|
},
|
|
166
169
|
|
|
167
170
|
observeChanges: function() {
|
|
168
171
|
if('MutationObserver' in window) {
|
|
169
172
|
selectObserver = new MutationObserver(module.event.select.mutation);
|
|
170
173
|
menuObserver = new MutationObserver(module.event.menu.mutation);
|
|
171
|
-
module.
|
|
174
|
+
classObserver = new MutationObserver(module.event.class.mutation);
|
|
175
|
+
module.debug('Setting up mutation observer', selectObserver, menuObserver, classObserver);
|
|
172
176
|
module.observe.select();
|
|
173
177
|
module.observe.menu();
|
|
178
|
+
module.observe.class();
|
|
174
179
|
}
|
|
175
180
|
},
|
|
176
181
|
|
|
@@ -184,6 +189,11 @@ $.fn.dropdown = function(parameters) {
|
|
|
184
189
|
if(selectObserver) {
|
|
185
190
|
selectObserver.disconnect();
|
|
186
191
|
}
|
|
192
|
+
},
|
|
193
|
+
classObserver: function() {
|
|
194
|
+
if(classObserver) {
|
|
195
|
+
classObserver.disconnect();
|
|
196
|
+
}
|
|
187
197
|
}
|
|
188
198
|
},
|
|
189
199
|
observe: {
|
|
@@ -202,6 +212,13 @@ $.fn.dropdown = function(parameters) {
|
|
|
202
212
|
subtree : true
|
|
203
213
|
});
|
|
204
214
|
}
|
|
215
|
+
},
|
|
216
|
+
class: function() {
|
|
217
|
+
if(module.has.search() && classObserver) {
|
|
218
|
+
classObserver.observe($module[0], {
|
|
219
|
+
attributes : true
|
|
220
|
+
});
|
|
221
|
+
}
|
|
205
222
|
}
|
|
206
223
|
},
|
|
207
224
|
|
|
@@ -280,7 +297,9 @@ $.fn.dropdown = function(parameters) {
|
|
|
280
297
|
: module.get.query()
|
|
281
298
|
;
|
|
282
299
|
module.verbose('Searching for query', query);
|
|
283
|
-
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) {
|
|
284
303
|
module.filter(query);
|
|
285
304
|
}
|
|
286
305
|
else {
|
|
@@ -342,7 +361,7 @@ $.fn.dropdown = function(parameters) {
|
|
|
342
361
|
if( !module.has.menu() ) {
|
|
343
362
|
module.create.menu();
|
|
344
363
|
}
|
|
345
|
-
if ( module.is.
|
|
364
|
+
if ( module.is.clearable() && !module.has.clearItem() ) {
|
|
346
365
|
module.verbose('Adding clear icon');
|
|
347
366
|
$clear = $('<i />')
|
|
348
367
|
.addClass('remove icon')
|
|
@@ -353,7 +372,7 @@ $.fn.dropdown = function(parameters) {
|
|
|
353
372
|
module.verbose('Adding search input');
|
|
354
373
|
$search = $('<input />')
|
|
355
374
|
.addClass(className.search)
|
|
356
|
-
.prop('autocomplete', 'off')
|
|
375
|
+
.prop('autocomplete', module.is.chrome() ? 'fomantic-search' : 'off')
|
|
357
376
|
.insertBefore($text)
|
|
358
377
|
;
|
|
359
378
|
}
|
|
@@ -481,6 +500,11 @@ $.fn.dropdown = function(parameters) {
|
|
|
481
500
|
;
|
|
482
501
|
},
|
|
483
502
|
|
|
503
|
+
clearItems: function() {
|
|
504
|
+
$menu.empty();
|
|
505
|
+
module.refreshItems();
|
|
506
|
+
},
|
|
507
|
+
|
|
484
508
|
toggle: function() {
|
|
485
509
|
module.verbose('Toggling menu visibility');
|
|
486
510
|
if( !module.is.active() ) {
|
|
@@ -496,9 +520,12 @@ $.fn.dropdown = function(parameters) {
|
|
|
496
520
|
? callback
|
|
497
521
|
: function(){}
|
|
498
522
|
;
|
|
523
|
+
if ((focused || iconClicked) && module.is.remote() && module.is.noApiCache()) {
|
|
524
|
+
module.clearItems();
|
|
525
|
+
}
|
|
499
526
|
if(!module.can.show() && module.is.remote()) {
|
|
500
527
|
module.debug('No API results retrieved, searching before show');
|
|
501
|
-
module.queryRemote(module.get.query(), module.show);
|
|
528
|
+
module.queryRemote(module.get.query(), module.show, [callback, preventFocus]);
|
|
502
529
|
}
|
|
503
530
|
if( module.can.show() && !module.is.active() ) {
|
|
504
531
|
module.debug('Showing dropdown');
|
|
@@ -544,6 +571,7 @@ $.fn.dropdown = function(parameters) {
|
|
|
544
571
|
module.unbind.intent();
|
|
545
572
|
}
|
|
546
573
|
iconClicked = false;
|
|
574
|
+
focused = false;
|
|
547
575
|
},
|
|
548
576
|
|
|
549
577
|
hideOthers: function() {
|
|
@@ -622,6 +650,7 @@ $.fn.dropdown = function(parameters) {
|
|
|
622
650
|
if(module.is.multiple()) {
|
|
623
651
|
$module
|
|
624
652
|
.on(clickEvent + eventNamespace, module.event.click)
|
|
653
|
+
.on(clickEvent + eventNamespace, module.event.search.focus)
|
|
625
654
|
;
|
|
626
655
|
}
|
|
627
656
|
}
|
|
@@ -751,11 +780,14 @@ $.fn.dropdown = function(parameters) {
|
|
|
751
780
|
if(!Array.isArray(preSelected)) {
|
|
752
781
|
preSelected = preSelected && preSelected!=="" ? preSelected.split(settings.delimiter) : [];
|
|
753
782
|
}
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
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);
|
|
759
791
|
afterFiltered();
|
|
760
792
|
});
|
|
761
793
|
}
|
|
@@ -769,7 +801,10 @@ $.fn.dropdown = function(parameters) {
|
|
|
769
801
|
}
|
|
770
802
|
},
|
|
771
803
|
|
|
772
|
-
queryRemote: function(query, callback) {
|
|
804
|
+
queryRemote: function(query, callback, callbackParameters) {
|
|
805
|
+
if(!Array.isArray(callbackParameters)){
|
|
806
|
+
callbackParameters = [callbackParameters];
|
|
807
|
+
}
|
|
773
808
|
var
|
|
774
809
|
apiSettings = {
|
|
775
810
|
errorDuration : false,
|
|
@@ -780,11 +815,15 @@ $.fn.dropdown = function(parameters) {
|
|
|
780
815
|
},
|
|
781
816
|
onError: function() {
|
|
782
817
|
module.add.message(message.serverError);
|
|
783
|
-
|
|
818
|
+
iconClicked = false;
|
|
819
|
+
focused = false;
|
|
820
|
+
callback.apply(null, callbackParameters);
|
|
784
821
|
},
|
|
785
822
|
onFailure: function() {
|
|
786
823
|
module.add.message(message.serverError);
|
|
787
|
-
|
|
824
|
+
iconClicked = false;
|
|
825
|
+
focused = false;
|
|
826
|
+
callback.apply(null, callbackParameters);
|
|
788
827
|
},
|
|
789
828
|
onSuccess : function(response) {
|
|
790
829
|
var
|
|
@@ -794,14 +833,23 @@ $.fn.dropdown = function(parameters) {
|
|
|
794
833
|
values = [];
|
|
795
834
|
}
|
|
796
835
|
module.remove.message();
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
836
|
+
var menuConfig = {};
|
|
837
|
+
menuConfig[fields.values] = values;
|
|
838
|
+
module.setup.menu(menuConfig);
|
|
800
839
|
|
|
801
840
|
if(values.length===0 && !settings.allowAdditions) {
|
|
802
841
|
module.add.message(message.noResults);
|
|
803
842
|
}
|
|
804
|
-
|
|
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);
|
|
805
853
|
}
|
|
806
854
|
}
|
|
807
855
|
;
|
|
@@ -992,7 +1040,9 @@ $.fn.dropdown = function(parameters) {
|
|
|
992
1040
|
module.clear();
|
|
993
1041
|
}
|
|
994
1042
|
module.debug('Creating dropdown with specified values', values);
|
|
995
|
-
|
|
1043
|
+
var menuConfig = {};
|
|
1044
|
+
menuConfig[fields.values] = values;
|
|
1045
|
+
module.setup.menu(menuConfig);
|
|
996
1046
|
$.each(values, function(index, item) {
|
|
997
1047
|
if(item.selected == true) {
|
|
998
1048
|
module.debug('Setting initial selection to', item[fields.value]);
|
|
@@ -1031,6 +1081,7 @@ $.fn.dropdown = function(parameters) {
|
|
|
1031
1081
|
},
|
|
1032
1082
|
focus: function() {
|
|
1033
1083
|
if(settings.showOnFocus && !activated && module.is.hidden() && !pageLostFocus) {
|
|
1084
|
+
focused = true;
|
|
1034
1085
|
module.show();
|
|
1035
1086
|
}
|
|
1036
1087
|
},
|
|
@@ -1080,7 +1131,8 @@ $.fn.dropdown = function(parameters) {
|
|
|
1080
1131
|
if(module.is.multiple()) {
|
|
1081
1132
|
module.remove.activeLabel();
|
|
1082
1133
|
}
|
|
1083
|
-
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;
|
|
1084
1136
|
module.search();
|
|
1085
1137
|
}
|
|
1086
1138
|
},
|
|
@@ -1125,6 +1177,7 @@ $.fn.dropdown = function(parameters) {
|
|
|
1125
1177
|
} else {
|
|
1126
1178
|
module.toggle();
|
|
1127
1179
|
}
|
|
1180
|
+
event.stopPropagation();
|
|
1128
1181
|
}
|
|
1129
1182
|
},
|
|
1130
1183
|
text: {
|
|
@@ -1164,10 +1217,11 @@ $.fn.dropdown = function(parameters) {
|
|
|
1164
1217
|
$label.addClass(className.active);
|
|
1165
1218
|
}
|
|
1166
1219
|
settings.onLabelSelect.apply(this, $labels.filter('.' + className.active));
|
|
1220
|
+
event.stopPropagation();
|
|
1167
1221
|
}
|
|
1168
1222
|
},
|
|
1169
1223
|
remove: {
|
|
1170
|
-
click: function() {
|
|
1224
|
+
click: function(event) {
|
|
1171
1225
|
var
|
|
1172
1226
|
$label = $(this).parent()
|
|
1173
1227
|
;
|
|
@@ -1179,6 +1233,7 @@ $.fn.dropdown = function(parameters) {
|
|
|
1179
1233
|
// remove this label only
|
|
1180
1234
|
module.remove.activeLabels( $label );
|
|
1181
1235
|
}
|
|
1236
|
+
event.stopPropagation();
|
|
1182
1237
|
}
|
|
1183
1238
|
},
|
|
1184
1239
|
test: {
|
|
@@ -1191,6 +1246,9 @@ $.fn.dropdown = function(parameters) {
|
|
|
1191
1246
|
if(module.is.bubbledLabelClick(event) || module.is.bubbledIconClick(event)) {
|
|
1192
1247
|
return;
|
|
1193
1248
|
}
|
|
1249
|
+
if (!module.is.multiple() || (module.is.multiple() && !module.is.active())) {
|
|
1250
|
+
focused = true;
|
|
1251
|
+
}
|
|
1194
1252
|
if( module.determine.eventOnElement(event, toggleBehavior) ) {
|
|
1195
1253
|
event.preventDefault();
|
|
1196
1254
|
}
|
|
@@ -1216,6 +1274,15 @@ $.fn.dropdown = function(parameters) {
|
|
|
1216
1274
|
}
|
|
1217
1275
|
}
|
|
1218
1276
|
},
|
|
1277
|
+
class: {
|
|
1278
|
+
mutation: function(mutations) {
|
|
1279
|
+
mutations.forEach(function(mutation) {
|
|
1280
|
+
if(mutation.attributeName === "class") {
|
|
1281
|
+
module.check.disabled();
|
|
1282
|
+
}
|
|
1283
|
+
});
|
|
1284
|
+
}
|
|
1285
|
+
},
|
|
1219
1286
|
select: {
|
|
1220
1287
|
mutation: function(mutations) {
|
|
1221
1288
|
module.debug('<select> modified, recreating menu');
|
|
@@ -1637,10 +1704,10 @@ $.fn.dropdown = function(parameters) {
|
|
|
1637
1704
|
trigger: {
|
|
1638
1705
|
change: function() {
|
|
1639
1706
|
var
|
|
1640
|
-
events = document.createEvent('HTMLEvents'),
|
|
1641
1707
|
inputElement = $input[0]
|
|
1642
1708
|
;
|
|
1643
1709
|
if(inputElement) {
|
|
1710
|
+
var events = document.createEvent('HTMLEvents');
|
|
1644
1711
|
module.verbose('Triggering native change event');
|
|
1645
1712
|
events.initEvent('change', true, false);
|
|
1646
1713
|
inputElement.dispatchEvent(events);
|
|
@@ -1772,7 +1839,7 @@ $.fn.dropdown = function(parameters) {
|
|
|
1772
1839
|
return $module.data(metadata.placeholderText) || '';
|
|
1773
1840
|
},
|
|
1774
1841
|
text: function() {
|
|
1775
|
-
return $text.text();
|
|
1842
|
+
return settings.preserveHTML ? $text.html() : $text.text();
|
|
1776
1843
|
},
|
|
1777
1844
|
query: function() {
|
|
1778
1845
|
return String($search.val()).trim();
|
|
@@ -1802,7 +1869,7 @@ $.fn.dropdown = function(parameters) {
|
|
|
1802
1869
|
return count;
|
|
1803
1870
|
},
|
|
1804
1871
|
transition: function($subMenu) {
|
|
1805
|
-
return (settings.transition
|
|
1872
|
+
return (settings.transition === 'auto')
|
|
1806
1873
|
? module.is.upward($subMenu)
|
|
1807
1874
|
? 'slide up'
|
|
1808
1875
|
: 'slide down'
|
|
@@ -1865,7 +1932,7 @@ $.fn.dropdown = function(parameters) {
|
|
|
1865
1932
|
: value
|
|
1866
1933
|
;
|
|
1867
1934
|
},
|
|
1868
|
-
values: function() {
|
|
1935
|
+
values: function(raw) {
|
|
1869
1936
|
var
|
|
1870
1937
|
value = module.get.value()
|
|
1871
1938
|
;
|
|
@@ -1874,7 +1941,7 @@ $.fn.dropdown = function(parameters) {
|
|
|
1874
1941
|
}
|
|
1875
1942
|
return ( !module.has.selectInput() && module.is.multiple() )
|
|
1876
1943
|
? (typeof value == 'string') // delimited string
|
|
1877
|
-
? module.escape.htmlEntities(value).split(settings.delimiter)
|
|
1944
|
+
? (raw ? value : module.escape.htmlEntities(value)).split(settings.delimiter)
|
|
1878
1945
|
: ''
|
|
1879
1946
|
: value
|
|
1880
1947
|
;
|
|
@@ -1918,8 +1985,8 @@ $.fn.dropdown = function(parameters) {
|
|
|
1918
1985
|
return ($choice.data(metadata.text) !== undefined)
|
|
1919
1986
|
? $choice.data(metadata.text)
|
|
1920
1987
|
: (preserveHTML)
|
|
1921
|
-
? $choice.html().trim()
|
|
1922
|
-
: $choice.text().trim()
|
|
1988
|
+
? $choice.html() && $choice.html().trim()
|
|
1989
|
+
: $choice.text() && $choice.text().trim()
|
|
1923
1990
|
;
|
|
1924
1991
|
}
|
|
1925
1992
|
},
|
|
@@ -1956,9 +2023,9 @@ $.fn.dropdown = function(parameters) {
|
|
|
1956
2023
|
selectValues: function() {
|
|
1957
2024
|
var
|
|
1958
2025
|
select = {},
|
|
1959
|
-
oldGroup = []
|
|
2026
|
+
oldGroup = [],
|
|
2027
|
+
values = []
|
|
1960
2028
|
;
|
|
1961
|
-
select.values = [];
|
|
1962
2029
|
$module
|
|
1963
2030
|
.find('option')
|
|
1964
2031
|
.each(function() {
|
|
@@ -1979,14 +2046,14 @@ $.fn.dropdown = function(parameters) {
|
|
|
1979
2046
|
}
|
|
1980
2047
|
else {
|
|
1981
2048
|
if(group.length !== oldGroup.length || group[0] !== oldGroup[0]) {
|
|
1982
|
-
|
|
2049
|
+
values.push({
|
|
1983
2050
|
type: 'header',
|
|
1984
2051
|
divider: settings.headerDivider,
|
|
1985
2052
|
name: group.attr('label') || ''
|
|
1986
2053
|
});
|
|
1987
2054
|
oldGroup = group;
|
|
1988
2055
|
}
|
|
1989
|
-
|
|
2056
|
+
values.push({
|
|
1990
2057
|
name : name,
|
|
1991
2058
|
value : value,
|
|
1992
2059
|
text : text,
|
|
@@ -2001,19 +2068,21 @@ $.fn.dropdown = function(parameters) {
|
|
|
2001
2068
|
}
|
|
2002
2069
|
if(settings.sortSelect) {
|
|
2003
2070
|
if(settings.sortSelect === true) {
|
|
2004
|
-
|
|
2071
|
+
values.sort(function(a, b) {
|
|
2005
2072
|
return a.name.localeCompare(b.name);
|
|
2006
2073
|
});
|
|
2007
2074
|
} else if(settings.sortSelect === 'natural') {
|
|
2008
|
-
|
|
2075
|
+
values.sort(function(a, b) {
|
|
2009
2076
|
return (a.name.toLowerCase().localeCompare(b.name.toLowerCase()));
|
|
2010
2077
|
});
|
|
2011
2078
|
} else if($.isFunction(settings.sortSelect)) {
|
|
2012
|
-
|
|
2079
|
+
values.sort(settings.sortSelect);
|
|
2013
2080
|
}
|
|
2081
|
+
select[fields.values] = values;
|
|
2014
2082
|
module.debug('Retrieved and sorted values from select', select);
|
|
2015
2083
|
}
|
|
2016
2084
|
else {
|
|
2085
|
+
select[fields.values] = values;
|
|
2017
2086
|
module.debug('Retrieved values from select', select);
|
|
2018
2087
|
}
|
|
2019
2088
|
return select;
|
|
@@ -2107,6 +2176,9 @@ $.fn.dropdown = function(parameters) {
|
|
|
2107
2176
|
;
|
|
2108
2177
|
}
|
|
2109
2178
|
return $selectedItem;
|
|
2179
|
+
},
|
|
2180
|
+
displayType: function() {
|
|
2181
|
+
return $module.hasClass('column') ? 'flex' : settings.displayType;
|
|
2110
2182
|
}
|
|
2111
2183
|
},
|
|
2112
2184
|
|
|
@@ -2136,6 +2208,9 @@ $.fn.dropdown = function(parameters) {
|
|
|
2136
2208
|
}
|
|
2137
2209
|
}
|
|
2138
2210
|
return true;
|
|
2211
|
+
},
|
|
2212
|
+
disabled: function(){
|
|
2213
|
+
$search.attr('tabindex',module.is.disabled() ? -1 : 0);
|
|
2139
2214
|
}
|
|
2140
2215
|
},
|
|
2141
2216
|
|
|
@@ -2295,7 +2370,7 @@ $.fn.dropdown = function(parameters) {
|
|
|
2295
2370
|
|
|
2296
2371
|
clear: function(preventChangeTrigger) {
|
|
2297
2372
|
if(module.is.multiple() && settings.useLabels) {
|
|
2298
|
-
module.remove.labels();
|
|
2373
|
+
module.remove.labels($module.find(selector.label), preventChangeTrigger);
|
|
2299
2374
|
}
|
|
2300
2375
|
else {
|
|
2301
2376
|
module.remove.activeItem();
|
|
@@ -2401,8 +2476,8 @@ $.fn.dropdown = function(parameters) {
|
|
|
2401
2476
|
module.debug('Added tabindex to searchable dropdown');
|
|
2402
2477
|
$search
|
|
2403
2478
|
.val('')
|
|
2404
|
-
.attr('tabindex', 0)
|
|
2405
2479
|
;
|
|
2480
|
+
module.check.disabled();
|
|
2406
2481
|
$menu
|
|
2407
2482
|
.attr('tabindex', -1)
|
|
2408
2483
|
;
|
|
@@ -2658,7 +2733,7 @@ $.fn.dropdown = function(parameters) {
|
|
|
2658
2733
|
module.clear();
|
|
2659
2734
|
module.set.selected(value, $selectedItem);
|
|
2660
2735
|
},
|
|
2661
|
-
selected: function(value, $selectedItem) {
|
|
2736
|
+
selected: function(value, $selectedItem, preventChangeTrigger, keepSearchTerm) {
|
|
2662
2737
|
var
|
|
2663
2738
|
isMultiple = module.is.multiple()
|
|
2664
2739
|
;
|
|
@@ -2720,8 +2795,10 @@ $.fn.dropdown = function(parameters) {
|
|
|
2720
2795
|
if(settings.apiSettings && settings.saveRemoteData) {
|
|
2721
2796
|
module.save.remoteData(selectedText, selectedValue);
|
|
2722
2797
|
}
|
|
2723
|
-
|
|
2724
|
-
|
|
2798
|
+
if (!keepSearchTerm) {
|
|
2799
|
+
module.set.text(selectedText);
|
|
2800
|
+
}
|
|
2801
|
+
module.set.value(selectedValue, selectedText, $selected, preventChangeTrigger);
|
|
2725
2802
|
$selected
|
|
2726
2803
|
.addClass(className.active)
|
|
2727
2804
|
.addClass(className.selected)
|
|
@@ -2729,7 +2806,9 @@ $.fn.dropdown = function(parameters) {
|
|
|
2729
2806
|
}
|
|
2730
2807
|
})
|
|
2731
2808
|
;
|
|
2732
|
-
|
|
2809
|
+
if (!keepSearchTerm) {
|
|
2810
|
+
module.remove.searchTerm();
|
|
2811
|
+
}
|
|
2733
2812
|
}
|
|
2734
2813
|
},
|
|
2735
2814
|
|
|
@@ -2893,7 +2972,7 @@ $.fn.dropdown = function(parameters) {
|
|
|
2893
2972
|
},
|
|
2894
2973
|
value: function(addedValue, addedText, $selectedItem) {
|
|
2895
2974
|
var
|
|
2896
|
-
currentValue = module.get.values(),
|
|
2975
|
+
currentValue = module.get.values(true),
|
|
2897
2976
|
newValue
|
|
2898
2977
|
;
|
|
2899
2978
|
if(module.has.value(addedValue)) {
|
|
@@ -3017,7 +3096,7 @@ $.fn.dropdown = function(parameters) {
|
|
|
3017
3096
|
userAddition: function() {
|
|
3018
3097
|
$item.filter(selector.addition).remove();
|
|
3019
3098
|
},
|
|
3020
|
-
selected: function(value, $selectedItem) {
|
|
3099
|
+
selected: function(value, $selectedItem, preventChangeTrigger) {
|
|
3021
3100
|
$selectedItem = (settings.allowAdditions)
|
|
3022
3101
|
? $selectedItem || module.get.itemWithAdditions(value)
|
|
3023
3102
|
: $selectedItem || module.get.item(value)
|
|
@@ -3036,11 +3115,11 @@ $.fn.dropdown = function(parameters) {
|
|
|
3036
3115
|
;
|
|
3037
3116
|
if(module.is.multiple()) {
|
|
3038
3117
|
if(settings.useLabels) {
|
|
3039
|
-
module.remove.value(selectedValue, selectedText, $selected);
|
|
3118
|
+
module.remove.value(selectedValue, selectedText, $selected, preventChangeTrigger);
|
|
3040
3119
|
module.remove.label(selectedValue);
|
|
3041
3120
|
}
|
|
3042
3121
|
else {
|
|
3043
|
-
module.remove.value(selectedValue, selectedText, $selected);
|
|
3122
|
+
module.remove.value(selectedValue, selectedText, $selected, preventChangeTrigger);
|
|
3044
3123
|
if(module.get.selectionCount() === 0) {
|
|
3045
3124
|
module.set.placeholderText();
|
|
3046
3125
|
}
|
|
@@ -3050,7 +3129,7 @@ $.fn.dropdown = function(parameters) {
|
|
|
3050
3129
|
}
|
|
3051
3130
|
}
|
|
3052
3131
|
else {
|
|
3053
|
-
module.remove.value(selectedValue, selectedText, $selected);
|
|
3132
|
+
module.remove.value(selectedValue, selectedText, $selected, preventChangeTrigger);
|
|
3054
3133
|
}
|
|
3055
3134
|
$selected
|
|
3056
3135
|
.removeClass(className.filtered)
|
|
@@ -3065,7 +3144,7 @@ $.fn.dropdown = function(parameters) {
|
|
|
3065
3144
|
selectedItem: function() {
|
|
3066
3145
|
$item.removeClass(className.selected);
|
|
3067
3146
|
},
|
|
3068
|
-
value: function(removedValue, removedText, $removedItem) {
|
|
3147
|
+
value: function(removedValue, removedText, $removedItem, preventChangeTrigger) {
|
|
3069
3148
|
var
|
|
3070
3149
|
values = module.get.values(),
|
|
3071
3150
|
newValue
|
|
@@ -3087,7 +3166,7 @@ $.fn.dropdown = function(parameters) {
|
|
|
3087
3166
|
else {
|
|
3088
3167
|
settings.onRemove.call(element, removedValue, removedText, $removedItem);
|
|
3089
3168
|
}
|
|
3090
|
-
module.set.value(newValue, removedText, $removedItem);
|
|
3169
|
+
module.set.value(newValue, removedText, $removedItem, preventChangeTrigger);
|
|
3091
3170
|
module.check.maxSelections();
|
|
3092
3171
|
},
|
|
3093
3172
|
arrayValue: function(removedValue, values) {
|
|
@@ -3102,8 +3181,9 @@ $.fn.dropdown = function(parameters) {
|
|
|
3102
3181
|
},
|
|
3103
3182
|
label: function(value, shouldAnimate) {
|
|
3104
3183
|
var
|
|
3184
|
+
escapedValue = module.escape.value(value),
|
|
3105
3185
|
$labels = $module.find(selector.label),
|
|
3106
|
-
$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) +'"]')
|
|
3107
3187
|
;
|
|
3108
3188
|
module.verbose('Removing label', $removedLabel);
|
|
3109
3189
|
$removedLabel.remove();
|
|
@@ -3113,7 +3193,7 @@ $.fn.dropdown = function(parameters) {
|
|
|
3113
3193
|
module.verbose('Removing active label selections', $activeLabels);
|
|
3114
3194
|
module.remove.labels($activeLabels);
|
|
3115
3195
|
},
|
|
3116
|
-
labels: function($labels) {
|
|
3196
|
+
labels: function($labels, preventChangeTrigger) {
|
|
3117
3197
|
$labels = $labels || $module.find(selector.label);
|
|
3118
3198
|
module.verbose('Removing labels', $labels);
|
|
3119
3199
|
$labels
|
|
@@ -3132,12 +3212,12 @@ $.fn.dropdown = function(parameters) {
|
|
|
3132
3212
|
}
|
|
3133
3213
|
module.remove.message();
|
|
3134
3214
|
if(isUserValue) {
|
|
3135
|
-
module.remove.value(stringValue);
|
|
3215
|
+
module.remove.value(stringValue, stringValue, module.get.item(stringValue), preventChangeTrigger);
|
|
3136
3216
|
module.remove.label(stringValue);
|
|
3137
3217
|
}
|
|
3138
3218
|
else {
|
|
3139
3219
|
// selected will also remove label
|
|
3140
|
-
module.remove.selected(stringValue);
|
|
3220
|
+
module.remove.selected(stringValue, false, preventChangeTrigger);
|
|
3141
3221
|
}
|
|
3142
3222
|
})
|
|
3143
3223
|
;
|
|
@@ -3216,6 +3296,9 @@ $.fn.dropdown = function(parameters) {
|
|
|
3216
3296
|
menu: function() {
|
|
3217
3297
|
return ($menu.length > 0);
|
|
3218
3298
|
},
|
|
3299
|
+
subMenu: function($currentMenu) {
|
|
3300
|
+
return ($currentMenu || $menu).find(selector.menu).length > 0;
|
|
3301
|
+
},
|
|
3219
3302
|
message: function() {
|
|
3220
3303
|
return ($menu.children(selector.message).length !== 0);
|
|
3221
3304
|
},
|
|
@@ -3252,7 +3335,7 @@ $.fn.dropdown = function(parameters) {
|
|
|
3252
3335
|
},
|
|
3253
3336
|
valueMatchingCase: function(value) {
|
|
3254
3337
|
var
|
|
3255
|
-
values = module.get.values(),
|
|
3338
|
+
values = module.get.values(true),
|
|
3256
3339
|
hasValue = Array.isArray(values)
|
|
3257
3340
|
? values && ($.inArray(value, values) !== -1)
|
|
3258
3341
|
: (values == value)
|
|
@@ -3264,7 +3347,7 @@ $.fn.dropdown = function(parameters) {
|
|
|
3264
3347
|
},
|
|
3265
3348
|
valueIgnoringCase: function(value) {
|
|
3266
3349
|
var
|
|
3267
|
-
values = module.get.values(),
|
|
3350
|
+
values = module.get.values(true),
|
|
3268
3351
|
hasValue = false
|
|
3269
3352
|
;
|
|
3270
3353
|
if(!Array.isArray(values)) {
|
|
@@ -3296,6 +3379,9 @@ $.fn.dropdown = function(parameters) {
|
|
|
3296
3379
|
bubbledIconClick: function(event) {
|
|
3297
3380
|
return $(event.target).closest($icon).length > 0;
|
|
3298
3381
|
},
|
|
3382
|
+
chrome: function() {
|
|
3383
|
+
return !!window.chrome && (!!window.chrome.webstore || !!window.chrome.runtime);
|
|
3384
|
+
},
|
|
3299
3385
|
alreadySetup: function() {
|
|
3300
3386
|
return ($module.is('select') && $module.parent(selector.dropdown).data(moduleNamespace) !== undefined && $module.prev().length === 0);
|
|
3301
3387
|
},
|
|
@@ -3348,6 +3434,9 @@ $.fn.dropdown = function(parameters) {
|
|
|
3348
3434
|
remote: function() {
|
|
3349
3435
|
return settings.apiSettings && module.can.useAPI();
|
|
3350
3436
|
},
|
|
3437
|
+
noApiCache: function() {
|
|
3438
|
+
return settings.apiSettings && !settings.apiSettings.cache
|
|
3439
|
+
},
|
|
3351
3440
|
single: function() {
|
|
3352
3441
|
return !module.is.multiple();
|
|
3353
3442
|
},
|
|
@@ -3442,6 +3531,9 @@ $.fn.dropdown = function(parameters) {
|
|
|
3442
3531
|
if(module.is.verticallyScrollableContext()) {
|
|
3443
3532
|
calculations.menu.offset.top += calculations.context.scrollTop;
|
|
3444
3533
|
}
|
|
3534
|
+
if(module.has.subMenu($currentMenu)) {
|
|
3535
|
+
calculations.menu.height += $currentMenu.find(selector.menu).first().outerHeight();
|
|
3536
|
+
}
|
|
3445
3537
|
onScreen = {
|
|
3446
3538
|
above : (calculations.context.scrollTop) <= calculations.menu.offset.top - calculations.context.offset.top - calculations.menu.height,
|
|
3447
3539
|
below : (calculations.context.scrollTop + calculations.context.height) >= calculations.menu.offset.top - calculations.context.offset.top + calculations.menu.height
|
|
@@ -3528,14 +3620,16 @@ $.fn.dropdown = function(parameters) {
|
|
|
3528
3620
|
;
|
|
3529
3621
|
module.verbose('Doing menu show animation', $currentMenu);
|
|
3530
3622
|
module.set.direction($subMenu);
|
|
3531
|
-
transition = module.get.transition($subMenu);
|
|
3623
|
+
transition = settings.transition.showMethod || module.get.transition($subMenu);
|
|
3532
3624
|
if( module.is.selection() ) {
|
|
3533
3625
|
module.set.scrollPosition(module.get.selectedItem(), true);
|
|
3534
3626
|
}
|
|
3535
3627
|
if( module.is.hidden($currentMenu) || module.is.animating($currentMenu) ) {
|
|
3536
|
-
if(transition
|
|
3628
|
+
if(transition === 'none') {
|
|
3537
3629
|
start();
|
|
3538
|
-
$currentMenu.transition(
|
|
3630
|
+
$currentMenu.transition({
|
|
3631
|
+
displayType: module.get.displayType()
|
|
3632
|
+
}).transition('show');
|
|
3539
3633
|
callback.call(element);
|
|
3540
3634
|
}
|
|
3541
3635
|
else if($.fn.transition !== undefined && $module.transition('is supported')) {
|
|
@@ -3544,9 +3638,10 @@ $.fn.dropdown = function(parameters) {
|
|
|
3544
3638
|
animation : transition + ' in',
|
|
3545
3639
|
debug : settings.debug,
|
|
3546
3640
|
verbose : settings.verbose,
|
|
3547
|
-
duration : settings.duration,
|
|
3641
|
+
duration : settings.transition.showDuration || settings.duration,
|
|
3548
3642
|
queue : true,
|
|
3549
3643
|
onStart : start,
|
|
3644
|
+
displayType: module.get.displayType(),
|
|
3550
3645
|
onComplete : function() {
|
|
3551
3646
|
callback.call(element);
|
|
3552
3647
|
}
|
|
@@ -3569,7 +3664,7 @@ $.fn.dropdown = function(parameters) {
|
|
|
3569
3664
|
}
|
|
3570
3665
|
module.remove.active();
|
|
3571
3666
|
},
|
|
3572
|
-
transition = module.get.transition($subMenu)
|
|
3667
|
+
transition = settings.transition.hideMethod || module.get.transition($subMenu)
|
|
3573
3668
|
;
|
|
3574
3669
|
callback = $.isFunction(callback)
|
|
3575
3670
|
? callback
|
|
@@ -3578,20 +3673,23 @@ $.fn.dropdown = function(parameters) {
|
|
|
3578
3673
|
if( module.is.visible($currentMenu) || module.is.animating($currentMenu) ) {
|
|
3579
3674
|
module.verbose('Doing menu hide animation', $currentMenu);
|
|
3580
3675
|
|
|
3581
|
-
if(transition
|
|
3676
|
+
if(transition === 'none') {
|
|
3582
3677
|
start();
|
|
3583
|
-
$currentMenu.transition(
|
|
3678
|
+
$currentMenu.transition({
|
|
3679
|
+
displayType: module.get.displayType()
|
|
3680
|
+
}).transition('hide');
|
|
3584
3681
|
callback.call(element);
|
|
3585
3682
|
}
|
|
3586
3683
|
else if($.fn.transition !== undefined && $module.transition('is supported')) {
|
|
3587
3684
|
$currentMenu
|
|
3588
3685
|
.transition({
|
|
3589
3686
|
animation : transition + ' out',
|
|
3590
|
-
duration : settings.duration,
|
|
3687
|
+
duration : settings.transition.hideDuration || settings.duration,
|
|
3591
3688
|
debug : settings.debug,
|
|
3592
3689
|
verbose : settings.verbose,
|
|
3593
3690
|
queue : false,
|
|
3594
3691
|
onStart : start,
|
|
3692
|
+
displayType: module.get.displayType(),
|
|
3595
3693
|
onComplete : function() {
|
|
3596
3694
|
callback.call(element);
|
|
3597
3695
|
}
|
|
@@ -3920,6 +4018,7 @@ $.fn.dropdown.settings = {
|
|
|
3920
4018
|
|
|
3921
4019
|
transition : 'auto', // auto transition will slide down or up based on direction
|
|
3922
4020
|
duration : 200, // duration of transition
|
|
4021
|
+
displayType : false, // displayType of transition
|
|
3923
4022
|
|
|
3924
4023
|
glyphWidth : 1.037, // widest glyph width in em (W is 1.037 em) used to calculate multiselect input width
|
|
3925
4024
|
|
|
@@ -3944,6 +4043,7 @@ $.fn.dropdown.settings = {
|
|
|
3944
4043
|
onChange : function(value, text, $selected){},
|
|
3945
4044
|
onAdd : function(value, text, $selected){},
|
|
3946
4045
|
onRemove : function(value, text, $selected){},
|
|
4046
|
+
onSearch : function(searchTerm){},
|
|
3947
4047
|
|
|
3948
4048
|
onLabelSelect : function($selectedLabels){},
|
|
3949
4049
|
onLabelCreate : function(value, text) { return $(this); },
|
|
@@ -3991,19 +4091,21 @@ $.fn.dropdown.settings = {
|
|
|
3991
4091
|
|
|
3992
4092
|
// property names for remote query
|
|
3993
4093
|
fields: {
|
|
3994
|
-
remoteValues
|
|
3995
|
-
values
|
|
3996
|
-
disabled
|
|
3997
|
-
name
|
|
3998
|
-
|
|
3999
|
-
|
|
4000
|
-
|
|
4001
|
-
|
|
4002
|
-
|
|
4003
|
-
|
|
4004
|
-
|
|
4005
|
-
|
|
4006
|
-
|
|
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
|
|
4007
4109
|
},
|
|
4008
4110
|
|
|
4009
4111
|
keys : {
|
|
@@ -4042,45 +4144,48 @@ $.fn.dropdown.settings = {
|
|
|
4042
4144
|
},
|
|
4043
4145
|
|
|
4044
4146
|
className : {
|
|
4045
|
-
active
|
|
4046
|
-
addition
|
|
4047
|
-
animating
|
|
4048
|
-
|
|
4049
|
-
|
|
4050
|
-
|
|
4051
|
-
|
|
4052
|
-
|
|
4053
|
-
|
|
4054
|
-
|
|
4055
|
-
|
|
4056
|
-
|
|
4057
|
-
|
|
4058
|
-
|
|
4059
|
-
|
|
4060
|
-
|
|
4061
|
-
|
|
4062
|
-
|
|
4063
|
-
|
|
4064
|
-
|
|
4065
|
-
|
|
4066
|
-
|
|
4067
|
-
|
|
4068
|
-
|
|
4069
|
-
|
|
4070
|
-
|
|
4071
|
-
|
|
4072
|
-
|
|
4073
|
-
|
|
4074
|
-
|
|
4075
|
-
|
|
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'
|
|
4076
4181
|
}
|
|
4077
4182
|
|
|
4078
4183
|
};
|
|
4079
4184
|
|
|
4080
4185
|
/* Templates */
|
|
4081
4186
|
$.fn.dropdown.settings.templates = {
|
|
4082
|
-
deQuote: function(string) {
|
|
4083
|
-
return String(string).replace(/"/g,"");
|
|
4187
|
+
deQuote: function(string, encode) {
|
|
4188
|
+
return String(string).replace(/"/g,encode ? """ : "");
|
|
4084
4189
|
},
|
|
4085
4190
|
escape: function(string, preserveHTML) {
|
|
4086
4191
|
if (preserveHTML){
|
|
@@ -4138,26 +4243,49 @@ $.fn.dropdown.settings.templates = {
|
|
|
4138
4243
|
var
|
|
4139
4244
|
itemType = (option[fields.type])
|
|
4140
4245
|
? option[fields.type]
|
|
4141
|
-
: 'item'
|
|
4246
|
+
: 'item',
|
|
4247
|
+
isMenu = itemType.indexOf('menu') !== -1
|
|
4142
4248
|
;
|
|
4143
4249
|
|
|
4144
|
-
if( itemType === 'item' ) {
|
|
4250
|
+
if( itemType === 'item' || isMenu) {
|
|
4145
4251
|
var
|
|
4146
4252
|
maybeText = (option[fields.text])
|
|
4147
|
-
? ' data-text="' + deQuote(option[fields.text]) + '"'
|
|
4253
|
+
? ' data-text="' + deQuote(option[fields.text],true) + '"'
|
|
4148
4254
|
: '',
|
|
4149
4255
|
maybeDisabled = (option[fields.disabled])
|
|
4150
4256
|
? className.disabled+' '
|
|
4151
|
-
: ''
|
|
4257
|
+
: '',
|
|
4258
|
+
maybeDescriptionVertical = (option[fields.descriptionVertical])
|
|
4259
|
+
? className.descriptionVertical+' '
|
|
4260
|
+
: '',
|
|
4261
|
+
hasDescription = (escape(option[fields.description] || '', preserveHTML) != '')
|
|
4152
4262
|
;
|
|
4153
|
-
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
|
+
}
|
|
4154
4267
|
if(option[fields.image]) {
|
|
4155
4268
|
html += '<img class="'+(option[fields.imageClass] ? deQuote(option[fields.imageClass]) : className.image)+'" src="' + deQuote(option[fields.image]) + '">';
|
|
4156
4269
|
}
|
|
4157
4270
|
if(option[fields.icon]) {
|
|
4158
4271
|
html += '<i class="'+deQuote(option[fields.icon])+' '+(option[fields.iconClass] ? deQuote(option[fields.iconClass]) : className.icon)+'"></i>';
|
|
4159
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
|
+
}
|
|
4160
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
|
+
}
|
|
4161
4289
|
html += '</div>';
|
|
4162
4290
|
} else if (itemType === 'header') {
|
|
4163
4291
|
var groupName = escape(option[fields.name] || '', preserveHTML),
|