fomantic-ui-sass 2.8.2 → 2.8.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +24 -0
  3. data/app/assets/fonts/semantic-ui/brand-icons.eot +0 -0
  4. data/app/assets/fonts/semantic-ui/brand-icons.svg +928 -689
  5. data/app/assets/fonts/semantic-ui/brand-icons.ttf +0 -0
  6. data/app/assets/fonts/semantic-ui/brand-icons.woff +0 -0
  7. data/app/assets/fonts/semantic-ui/brand-icons.woff2 +0 -0
  8. data/app/assets/fonts/semantic-ui/icons.eot +0 -0
  9. data/app/assets/fonts/semantic-ui/icons.svg +610 -426
  10. data/app/assets/fonts/semantic-ui/icons.ttf +0 -0
  11. data/app/assets/fonts/semantic-ui/icons.woff +0 -0
  12. data/app/assets/fonts/semantic-ui/icons.woff2 +0 -0
  13. data/app/assets/fonts/semantic-ui/outline-icons.eot +0 -0
  14. data/app/assets/fonts/semantic-ui/outline-icons.svg +22 -18
  15. data/app/assets/fonts/semantic-ui/outline-icons.ttf +0 -0
  16. data/app/assets/fonts/semantic-ui/outline-icons.woff +0 -0
  17. data/app/assets/fonts/semantic-ui/outline-icons.woff2 +0 -0
  18. data/app/assets/javascripts/semantic-ui/calendar.js +249 -60
  19. data/app/assets/javascripts/semantic-ui/checkbox.js +2 -2
  20. data/app/assets/javascripts/semantic-ui/dimmer.js +3 -3
  21. data/app/assets/javascripts/semantic-ui/dropdown.js +98 -62
  22. data/app/assets/javascripts/semantic-ui/form.js +97 -35
  23. data/app/assets/javascripts/semantic-ui/modal.js +9 -1
  24. data/app/assets/javascripts/semantic-ui/popup.js +8 -7
  25. data/app/assets/javascripts/semantic-ui/progress.js +20 -24
  26. data/app/assets/javascripts/semantic-ui/search.js +30 -2
  27. data/app/assets/javascripts/semantic-ui/slider.js +8 -8
  28. data/app/assets/javascripts/semantic-ui/tab.js +3 -2
  29. data/app/assets/javascripts/semantic-ui/toast.js +11 -9
  30. data/app/assets/javascripts/semantic-ui/visibility.js +1 -1
  31. data/app/assets/stylesheets/semantic-ui/collections/_form.scss +86 -93
  32. data/app/assets/stylesheets/semantic-ui/collections/_grid.scss +8 -6
  33. data/app/assets/stylesheets/semantic-ui/collections/_menu.scss +36 -35
  34. data/app/assets/stylesheets/semantic-ui/collections/_message.scss +4 -4
  35. data/app/assets/stylesheets/semantic-ui/collections/_table.scss +39 -23
  36. data/app/assets/stylesheets/semantic-ui/elements/_button.scss +9 -3
  37. data/app/assets/stylesheets/semantic-ui/elements/_emoji.scss +1 -1
  38. data/app/assets/stylesheets/semantic-ui/elements/_header.scss +8 -8
  39. data/app/assets/stylesheets/semantic-ui/elements/_icon.scss +159 -18
  40. data/app/assets/stylesheets/semantic-ui/elements/_image.scss +33 -4
  41. data/app/assets/stylesheets/semantic-ui/elements/_input.scss +68 -68
  42. data/app/assets/stylesheets/semantic-ui/elements/_label.scss +38 -2
  43. data/app/assets/stylesheets/semantic-ui/elements/_list.scss +12 -12
  44. data/app/assets/stylesheets/semantic-ui/elements/_segment.scss +7 -1
  45. data/app/assets/stylesheets/semantic-ui/elements/_step.scss +16 -9
  46. data/app/assets/stylesheets/semantic-ui/elements/_text.scss +15 -0
  47. data/app/assets/stylesheets/semantic-ui/modules/_calendar.scss +16 -9
  48. data/app/assets/stylesheets/semantic-ui/modules/_checkbox.scss +1 -0
  49. data/app/assets/stylesheets/semantic-ui/modules/_dimmer.scss +26 -23
  50. data/app/assets/stylesheets/semantic-ui/modules/_dropdown.scss +123 -32
  51. data/app/assets/stylesheets/semantic-ui/modules/_embed.scss +6 -6
  52. data/app/assets/stylesheets/semantic-ui/modules/_modal.scss +13 -6
  53. data/app/assets/stylesheets/semantic-ui/modules/_popup.scss +36 -7
  54. data/app/assets/stylesheets/semantic-ui/modules/_progress.scss +32 -3
  55. data/app/assets/stylesheets/semantic-ui/modules/_search.scss +90 -0
  56. data/app/assets/stylesheets/semantic-ui/modules/_shape.scss +1 -0
  57. data/app/assets/stylesheets/semantic-ui/modules/_sidebar.scss +2 -1
  58. data/app/assets/stylesheets/semantic-ui/modules/_slider.scss +9 -0
  59. data/app/assets/stylesheets/semantic-ui/modules/_toast.scss +7 -7
  60. data/app/assets/stylesheets/semantic-ui/modules/_transition.scss +34 -34
  61. data/app/assets/stylesheets/semantic-ui/views/_card.scss +1 -1
  62. data/app/assets/stylesheets/semantic-ui/views/_feed.scss +5 -5
  63. data/app/assets/stylesheets/semantic-ui/views/_statistic.scss +4 -4
  64. data/lib/fomantic/ui/sass/version.rb +2 -2
  65. metadata +6 -6
@@ -175,7 +175,7 @@ $.fn.checkbox = function(parameters) {
175
175
  },
176
176
 
177
177
  preventDefaultOnInputTarget: function() {
178
- if(typeof event !== 'undefined' && $(event.target).is(selector.input)) {
178
+ if(typeof event !== 'undefined' && event !== null && $(event.target).is(selector.input)) {
179
179
  module.verbose('Preventing default check action after manual check action');
180
180
  event.preventDefault();
181
181
  }
@@ -556,10 +556,10 @@ $.fn.checkbox = function(parameters) {
556
556
  trigger: {
557
557
  change: function() {
558
558
  var
559
- events = document.createEvent('HTMLEvents'),
560
559
  inputElement = $input[0]
561
560
  ;
562
561
  if(inputElement) {
562
+ var events = document.createEvent('HTMLEvents');
563
563
  module.verbose('Triggering native change event');
564
564
  events.initEvent('change', true, false);
565
565
  inputElement.dispatchEvent(events);
@@ -408,11 +408,11 @@ $.fn.dimmer = function(parameters) {
408
408
  var
409
409
  color = $dimmer.css('background-color'),
410
410
  colorArray = color.split(','),
411
- isRGB = (colorArray && colorArray.length == 3),
412
- isRGBA = (colorArray && colorArray.length == 4)
411
+ isRGB = (colorArray && colorArray.length >= 3)
413
412
  ;
414
413
  opacity = settings.opacity === 0 ? 0 : settings.opacity || opacity;
415
- if(isRGB || isRGBA) {
414
+ if(isRGB) {
415
+ colorArray[2] = colorArray[2].replace(')','');
416
416
  colorArray[3] = opacity + ')';
417
417
  color = colorArray.join(',');
418
418
  }
@@ -31,6 +31,10 @@ $.fn.dropdown = function(parameters) {
31
31
  moduleSelector = $allModules.selector || '',
32
32
 
33
33
  hasTouch = ('ontouchstart' in document.documentElement),
34
+ clickEvent = hasTouch
35
+ ? 'touchstart'
36
+ : 'click',
37
+
34
38
  time = new Date().getTime(),
35
39
  performance = [],
36
40
 
@@ -93,6 +97,7 @@ $.fn.dropdown = function(parameters) {
93
97
  id,
94
98
  selectObserver,
95
99
  menuObserver,
100
+ classObserver,
96
101
  module
97
102
  ;
98
103
 
@@ -113,7 +118,9 @@ $.fn.dropdown = function(parameters) {
113
118
  module.setup.layout();
114
119
 
115
120
  if(settings.values) {
121
+ module.set.initialLoad();
116
122
  module.change.values(settings.values);
123
+ module.remove.initialLoad();
117
124
  }
118
125
 
119
126
  module.refreshData();
@@ -156,15 +163,18 @@ $.fn.dropdown = function(parameters) {
156
163
  ;
157
164
  module.disconnect.menuObserver();
158
165
  module.disconnect.selectObserver();
166
+ module.disconnect.classObserver();
159
167
  },
160
168
 
161
169
  observeChanges: function() {
162
170
  if('MutationObserver' in window) {
163
171
  selectObserver = new MutationObserver(module.event.select.mutation);
164
172
  menuObserver = new MutationObserver(module.event.menu.mutation);
165
- module.debug('Setting up mutation observer', selectObserver, menuObserver);
173
+ classObserver = new MutationObserver(module.event.class.mutation);
174
+ module.debug('Setting up mutation observer', selectObserver, menuObserver, classObserver);
166
175
  module.observe.select();
167
176
  module.observe.menu();
177
+ module.observe.class();
168
178
  }
169
179
  },
170
180
 
@@ -178,6 +188,11 @@ $.fn.dropdown = function(parameters) {
178
188
  if(selectObserver) {
179
189
  selectObserver.disconnect();
180
190
  }
191
+ },
192
+ classObserver: function() {
193
+ if(classObserver) {
194
+ classObserver.disconnect();
195
+ }
181
196
  }
182
197
  },
183
198
  observe: {
@@ -196,6 +211,13 @@ $.fn.dropdown = function(parameters) {
196
211
  subtree : true
197
212
  });
198
213
  }
214
+ },
215
+ class: function() {
216
+ if(module.has.search() && classObserver) {
217
+ classObserver.observe($module[0], {
218
+ attributes : true
219
+ });
220
+ }
199
221
  }
200
222
  },
201
223
 
@@ -537,6 +559,7 @@ $.fn.dropdown = function(parameters) {
537
559
  } else if( module.can.click() ) {
538
560
  module.unbind.intent();
539
561
  }
562
+ iconClicked = false;
540
563
  },
541
564
 
542
565
  hideOthers: function() {
@@ -565,27 +588,10 @@ $.fn.dropdown = function(parameters) {
565
588
 
566
589
  bind: {
567
590
  events: function() {
568
- if(hasTouch) {
569
- module.bind.touchEvents();
570
- }
571
591
  module.bind.keyboardEvents();
572
592
  module.bind.inputEvents();
573
593
  module.bind.mouseEvents();
574
594
  },
575
- touchEvents: function() {
576
- module.debug('Touch device detected binding additional touch events');
577
- if( module.is.searchSelection() ) {
578
- // do nothing special yet
579
- }
580
- else if( module.is.single() ) {
581
- $module
582
- .on('touchstart' + eventNamespace, module.event.test.toggle)
583
- ;
584
- }
585
- $menu
586
- .on('touchstart' + eventNamespace, selector.item, module.event.item.mouseenter)
587
- ;
588
- },
589
595
  keyboardEvents: function() {
590
596
  module.verbose('Binding keyboard events');
591
597
  $module
@@ -612,8 +618,8 @@ $.fn.dropdown = function(parameters) {
612
618
  module.verbose('Binding mouse events');
613
619
  if(module.is.multiple()) {
614
620
  $module
615
- .on('click' + eventNamespace, selector.label, module.event.label.click)
616
- .on('click' + eventNamespace, selector.remove, module.event.remove.click)
621
+ .on(clickEvent + eventNamespace, selector.label, module.event.label.click)
622
+ .on(clickEvent + eventNamespace, selector.remove, module.event.remove.click)
617
623
  ;
618
624
  }
619
625
  if( module.is.searchSelection() ) {
@@ -622,24 +628,24 @@ $.fn.dropdown = function(parameters) {
622
628
  .on('mouseup' + eventNamespace, module.event.mouseup)
623
629
  .on('mousedown' + eventNamespace, selector.menu, module.event.menu.mousedown)
624
630
  .on('mouseup' + eventNamespace, selector.menu, module.event.menu.mouseup)
625
- .on('click' + eventNamespace, selector.icon, module.event.icon.click)
626
- .on('click' + eventNamespace, selector.clearIcon, module.event.clearIcon.click)
631
+ .on(clickEvent + eventNamespace, selector.icon, module.event.icon.click)
632
+ .on(clickEvent + eventNamespace, selector.clearIcon, module.event.clearIcon.click)
627
633
  .on('focus' + eventNamespace, selector.search, module.event.search.focus)
628
- .on('click' + eventNamespace, selector.search, module.event.search.focus)
634
+ .on(clickEvent + eventNamespace, selector.search, module.event.search.focus)
629
635
  .on('blur' + eventNamespace, selector.search, module.event.search.blur)
630
- .on('click' + eventNamespace, selector.text, module.event.text.focus)
636
+ .on(clickEvent + eventNamespace, selector.text, module.event.text.focus)
631
637
  ;
632
638
  if(module.is.multiple()) {
633
639
  $module
634
- .on('click' + eventNamespace, module.event.click)
640
+ .on(clickEvent + eventNamespace, module.event.click)
635
641
  ;
636
642
  }
637
643
  }
638
644
  else {
639
645
  if(settings.on == 'click') {
640
646
  $module
641
- .on('click' + eventNamespace, selector.icon, module.event.icon.click)
642
- .on('click' + eventNamespace, module.event.test.toggle)
647
+ .on(clickEvent + eventNamespace, selector.icon, module.event.icon.click)
648
+ .on(clickEvent + eventNamespace, module.event.test.toggle)
643
649
  ;
644
650
  }
645
651
  else if(settings.on == 'hover') {
@@ -657,7 +663,7 @@ $.fn.dropdown = function(parameters) {
657
663
  .on('mousedown' + eventNamespace, module.event.mousedown)
658
664
  .on('mouseup' + eventNamespace, module.event.mouseup)
659
665
  .on('focus' + eventNamespace, module.event.focus)
660
- .on('click' + eventNamespace, selector.clearIcon, module.event.clearIcon.click)
666
+ .on(clickEvent + eventNamespace, selector.clearIcon, module.event.clearIcon.click)
661
667
  ;
662
668
  if(module.has.menuSearch() ) {
663
669
  $module
@@ -671,7 +677,7 @@ $.fn.dropdown = function(parameters) {
671
677
  }
672
678
  }
673
679
  $menu
674
- .on('mouseenter' + eventNamespace, selector.item, module.event.item.mouseenter)
680
+ .on((hasTouch ? 'touchstart' : 'mouseenter') + eventNamespace, selector.item, module.event.item.mouseenter)
675
681
  .on('mouseleave' + eventNamespace, selector.item, module.event.item.mouseleave)
676
682
  .on('click' + eventNamespace, selector.item, module.event.item.click)
677
683
  ;
@@ -685,7 +691,7 @@ $.fn.dropdown = function(parameters) {
685
691
  ;
686
692
  }
687
693
  $document
688
- .on('click' + elementNamespace, module.event.test.hide)
694
+ .on(clickEvent + elementNamespace, module.event.test.hide)
689
695
  ;
690
696
  }
691
697
  },
@@ -700,7 +706,7 @@ $.fn.dropdown = function(parameters) {
700
706
  ;
701
707
  }
702
708
  $document
703
- .off('click' + elementNamespace)
709
+ .off(clickEvent + elementNamespace)
704
710
  ;
705
711
  }
706
712
  },
@@ -804,9 +810,9 @@ $.fn.dropdown = function(parameters) {
804
810
  values = [];
805
811
  }
806
812
  module.remove.message();
807
- module.setup.menu({
808
- values: values
809
- });
813
+ var menuConfig = {};
814
+ menuConfig[fields.values] = values;
815
+ module.setup.menu(menuConfig);
810
816
 
811
817
  if(values.length===0 && !settings.allowAdditions) {
812
818
  module.add.message(message.noResults);
@@ -848,6 +854,10 @@ $.fn.dropdown = function(parameters) {
848
854
  text,
849
855
  value
850
856
  ;
857
+ if($choice.hasClass(className.unfilterable)) {
858
+ results.push(this);
859
+ return true;
860
+ }
851
861
  if(settings.match === 'both' || settings.match === 'text') {
852
862
  text = module.remove.diacritics(String(module.get.choiceText($choice, false)));
853
863
  if(text.search(beginsWithRegExp) !== -1) {
@@ -998,7 +1008,9 @@ $.fn.dropdown = function(parameters) {
998
1008
  module.clear();
999
1009
  }
1000
1010
  module.debug('Creating dropdown with specified values', values);
1001
- module.setup.menu({values: values});
1011
+ var menuConfig = {};
1012
+ menuConfig[fields.values] = values;
1013
+ module.setup.menu(menuConfig);
1002
1014
  $.each(values, function(index, item) {
1003
1015
  if(item.selected == true) {
1004
1016
  module.debug('Setting initial selection to', item[fields.value]);
@@ -1017,7 +1029,7 @@ $.fn.dropdown = function(parameters) {
1017
1029
  var
1018
1030
  value = settings.templates.deQuote(item[fields.value]),
1019
1031
  name = settings.templates.escape(
1020
- item[fields.name] || item[fields.value],
1032
+ item[fields.name] || '',
1021
1033
  settings.preserveHTML
1022
1034
  )
1023
1035
  ;
@@ -1222,6 +1234,15 @@ $.fn.dropdown = function(parameters) {
1222
1234
  }
1223
1235
  }
1224
1236
  },
1237
+ class: {
1238
+ mutation: function(mutations) {
1239
+ mutations.forEach(function(mutation) {
1240
+ if(mutation.attributeName === "class") {
1241
+ module.check.disabled();
1242
+ }
1243
+ });
1244
+ }
1245
+ },
1225
1246
  select: {
1226
1247
  mutation: function(mutations) {
1227
1248
  module.debug('<select> modified, recreating menu');
@@ -1643,10 +1664,10 @@ $.fn.dropdown = function(parameters) {
1643
1664
  trigger: {
1644
1665
  change: function() {
1645
1666
  var
1646
- events = document.createEvent('HTMLEvents'),
1647
1667
  inputElement = $input[0]
1648
1668
  ;
1649
1669
  if(inputElement) {
1670
+ var events = document.createEvent('HTMLEvents');
1650
1671
  module.verbose('Triggering native change event');
1651
1672
  events.initEvent('change', true, false);
1652
1673
  inputElement.dispatchEvent(events);
@@ -1778,10 +1799,10 @@ $.fn.dropdown = function(parameters) {
1778
1799
  return $module.data(metadata.placeholderText) || '';
1779
1800
  },
1780
1801
  text: function() {
1781
- return $text.text();
1802
+ return settings.preserveHTML ? $text.html() : $text.text();
1782
1803
  },
1783
1804
  query: function() {
1784
- return $.trim($search.val());
1805
+ return String($search.val()).trim();
1785
1806
  },
1786
1807
  searchWidth: function(value) {
1787
1808
  value = (value !== undefined)
@@ -1924,8 +1945,8 @@ $.fn.dropdown = function(parameters) {
1924
1945
  return ($choice.data(metadata.text) !== undefined)
1925
1946
  ? $choice.data(metadata.text)
1926
1947
  : (preserveHTML)
1927
- ? $.trim($choice.html())
1928
- : $.trim($choice.text())
1948
+ ? $choice.html().trim()
1949
+ : $choice.text().trim()
1929
1950
  ;
1930
1951
  }
1931
1952
  },
@@ -1937,11 +1958,11 @@ $.fn.dropdown = function(parameters) {
1937
1958
  return ($choice.data(metadata.value) !== undefined)
1938
1959
  ? String( $choice.data(metadata.value) )
1939
1960
  : (typeof choiceText === 'string')
1940
- ? $.trim(
1961
+ ? String(
1941
1962
  settings.ignoreSearchCase
1942
1963
  ? choiceText.toLowerCase()
1943
1964
  : choiceText
1944
- )
1965
+ ).trim()
1945
1966
  : String(choiceText)
1946
1967
  ;
1947
1968
  },
@@ -1962,9 +1983,9 @@ $.fn.dropdown = function(parameters) {
1962
1983
  selectValues: function() {
1963
1984
  var
1964
1985
  select = {},
1965
- oldGroup = []
1986
+ oldGroup = [],
1987
+ values = []
1966
1988
  ;
1967
- select.values = [];
1968
1989
  $module
1969
1990
  .find('option')
1970
1991
  .each(function() {
@@ -1975,6 +1996,9 @@ $.fn.dropdown = function(parameters) {
1975
1996
  value = ( $option.attr('value') !== undefined )
1976
1997
  ? $option.attr('value')
1977
1998
  : name,
1999
+ text = ( $option.data(metadata.text) !== undefined )
2000
+ ? $option.data(metadata.text)
2001
+ : name,
1978
2002
  group = $option.parent('optgroup')
1979
2003
  ;
1980
2004
  if(settings.placeholder === 'auto' && value === '') {
@@ -1982,16 +2006,17 @@ $.fn.dropdown = function(parameters) {
1982
2006
  }
1983
2007
  else {
1984
2008
  if(group.length !== oldGroup.length || group[0] !== oldGroup[0]) {
1985
- select.values.push({
2009
+ values.push({
1986
2010
  type: 'header',
1987
2011
  divider: settings.headerDivider,
1988
2012
  name: group.attr('label') || ''
1989
2013
  });
1990
2014
  oldGroup = group;
1991
2015
  }
1992
- select.values.push({
2016
+ values.push({
1993
2017
  name : name,
1994
2018
  value : value,
2019
+ text : text,
1995
2020
  disabled : disabled
1996
2021
  });
1997
2022
  }
@@ -2003,19 +2028,21 @@ $.fn.dropdown = function(parameters) {
2003
2028
  }
2004
2029
  if(settings.sortSelect) {
2005
2030
  if(settings.sortSelect === true) {
2006
- select.values.sort(function(a, b) {
2031
+ values.sort(function(a, b) {
2007
2032
  return a.name.localeCompare(b.name);
2008
2033
  });
2009
2034
  } else if(settings.sortSelect === 'natural') {
2010
- select.values.sort(function(a, b) {
2035
+ values.sort(function(a, b) {
2011
2036
  return (a.name.toLowerCase().localeCompare(b.name.toLowerCase()));
2012
2037
  });
2013
2038
  } else if($.isFunction(settings.sortSelect)) {
2014
- select.values.sort(settings.sortSelect);
2039
+ values.sort(settings.sortSelect);
2015
2040
  }
2041
+ select[fields.values] = values;
2016
2042
  module.debug('Retrieved and sorted values from select', select);
2017
2043
  }
2018
2044
  else {
2045
+ select[fields.values] = values;
2019
2046
  module.debug('Retrieved values from select', select);
2020
2047
  }
2021
2048
  return select;
@@ -2080,7 +2107,7 @@ $.fn.dropdown = function(parameters) {
2080
2107
  return;
2081
2108
  }
2082
2109
  if(isMultiple) {
2083
- if($.inArray( String(optionValue), value) !== -1) {
2110
+ if($.inArray(module.escape.htmlEntities(String(optionValue)), value.map(function(v){return String(v);})) !== -1) {
2084
2111
  $selectedItem = ($selectedItem)
2085
2112
  ? $selectedItem.add($choice)
2086
2113
  : $choice
@@ -2099,7 +2126,7 @@ $.fn.dropdown = function(parameters) {
2099
2126
  optionValue = optionValue.toLowerCase();
2100
2127
  value = value.toLowerCase();
2101
2128
  }
2102
- if( String(optionValue) == String(value)) {
2129
+ if(module.escape.htmlEntities(String(optionValue)) === module.escape.htmlEntities(String(value))) {
2103
2130
  module.verbose('Found select item by value', optionValue, value);
2104
2131
  $selectedItem = $choice;
2105
2132
  return true;
@@ -2138,6 +2165,9 @@ $.fn.dropdown = function(parameters) {
2138
2165
  }
2139
2166
  }
2140
2167
  return true;
2168
+ },
2169
+ disabled: function(){
2170
+ $search.attr('tabindex',module.is.disabled() ? -1 : 0);
2141
2171
  }
2142
2172
  },
2143
2173
 
@@ -2403,8 +2433,8 @@ $.fn.dropdown = function(parameters) {
2403
2433
  module.debug('Added tabindex to searchable dropdown');
2404
2434
  $search
2405
2435
  .val('')
2406
- .attr('tabindex', 0)
2407
2436
  ;
2437
+ module.check.disabled();
2408
2438
  $menu
2409
2439
  .attr('tabindex', -1)
2410
2440
  ;
@@ -3072,6 +3102,7 @@ $.fn.dropdown = function(parameters) {
3072
3102
  values = module.get.values(),
3073
3103
  newValue
3074
3104
  ;
3105
+ removedValue = module.escape.htmlEntities(removedValue);
3075
3106
  if( module.has.selectInput() ) {
3076
3107
  module.verbose('Input is <select> removing selected option', removedValue);
3077
3108
  newValue = module.remove.arrayValue(removedValue, values);
@@ -3534,9 +3565,12 @@ $.fn.dropdown = function(parameters) {
3534
3565
  module.set.scrollPosition(module.get.selectedItem(), true);
3535
3566
  }
3536
3567
  if( module.is.hidden($currentMenu) || module.is.animating($currentMenu) ) {
3568
+ var displayType = $module.hasClass('column') ? 'flex' : false;
3537
3569
  if(transition == 'none') {
3538
3570
  start();
3539
- $currentMenu.transition('show');
3571
+ $currentMenu.transition({
3572
+ displayType: displayType
3573
+ }).transition('show');
3540
3574
  callback.call(element);
3541
3575
  }
3542
3576
  else if($.fn.transition !== undefined && $module.transition('is supported')) {
@@ -3548,6 +3582,7 @@ $.fn.dropdown = function(parameters) {
3548
3582
  duration : settings.duration,
3549
3583
  queue : true,
3550
3584
  onStart : start,
3585
+ displayType: displayType,
3551
3586
  onComplete : function() {
3552
3587
  callback.call(element);
3553
3588
  }
@@ -3661,10 +3696,9 @@ $.fn.dropdown = function(parameters) {
3661
3696
  },
3662
3697
  htmlEntities: function(string) {
3663
3698
  var
3664
- badChars = /[&<>"'`]/g,
3699
+ badChars = /[<>"'`]/g,
3665
3700
  shouldEscape = /[&<>"'`]/,
3666
3701
  escape = {
3667
- "&": "&amp;",
3668
3702
  "<": "&lt;",
3669
3703
  ">": "&gt;",
3670
3704
  '"': "&quot;",
@@ -3676,6 +3710,7 @@ $.fn.dropdown = function(parameters) {
3676
3710
  }
3677
3711
  ;
3678
3712
  if(shouldEscape.test(string)) {
3713
+ string = string.replace(/&(?![a-z0-9#]{1,6};)/, "&amp;");
3679
3714
  return string.replace(badChars, escapedChar);
3680
3715
  }
3681
3716
  return string;
@@ -4036,7 +4071,7 @@ $.fn.dropdown.settings = {
4036
4071
  message : '.message',
4037
4072
  menuIcon : '.dropdown.icon',
4038
4073
  search : 'input.search, .menu > .search > input, .menu input.search',
4039
- sizer : '> input.sizer',
4074
+ sizer : '> span.sizer',
4040
4075
  text : '> .text:not(.icon)',
4041
4076
  unselectable : '.disabled, .filtered',
4042
4077
  clearIcon : '> .remove.icon'
@@ -4072,7 +4107,8 @@ $.fn.dropdown.settings = {
4072
4107
  delete : 'delete',
4073
4108
  header : 'header',
4074
4109
  divider : 'divider',
4075
- groupIcon : ''
4110
+ groupIcon : '',
4111
+ unfilterable : 'unfilterable'
4076
4112
  }
4077
4113
 
4078
4114
  };
@@ -4087,10 +4123,9 @@ $.fn.dropdown.settings.templates = {
4087
4123
  return string;
4088
4124
  }
4089
4125
  var
4090
- badChars = /[&<>"'`]/g,
4126
+ badChars = /[<>"'`]/g,
4091
4127
  shouldEscape = /[&<>"'`]/,
4092
4128
  escape = {
4093
- "&": "&amp;",
4094
4129
  "<": "&lt;",
4095
4130
  ">": "&gt;",
4096
4131
  '"': "&quot;",
@@ -4102,6 +4137,7 @@ $.fn.dropdown.settings.templates = {
4102
4137
  }
4103
4138
  ;
4104
4139
  if(shouldEscape.test(string)) {
4140
+ string = string.replace(/&(?![a-z0-9#]{1,6};)/, "&amp;");
4105
4141
  return string.replace(badChars, escapedChar);
4106
4142
  }
4107
4143
  return string;
@@ -4157,10 +4193,10 @@ $.fn.dropdown.settings.templates = {
4157
4193
  if(option[fields.icon]) {
4158
4194
  html += '<i class="'+deQuote(option[fields.icon])+' '+(option[fields.iconClass] ? deQuote(option[fields.iconClass]) : className.icon)+'"></i>';
4159
4195
  }
4160
- html += escape(option[fields.name] || option[fields.value],preserveHTML);
4196
+ html += escape(option[fields.name] || '', preserveHTML);
4161
4197
  html += '</div>';
4162
4198
  } else if (itemType === 'header') {
4163
- var groupName = escape(option[fields.name],preserveHTML),
4199
+ var groupName = escape(option[fields.name] || '', preserveHTML),
4164
4200
  groupIcon = option[fields.icon] ? deQuote(option[fields.icon]) : className.groupIcon
4165
4201
  ;
4166
4202
  if(groupName !== '' || groupIcon !== '') {