fomantic-ui-sass 2.8.2 → 2.8.7

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.
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 !== '') {