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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +24 -0
- data/app/assets/fonts/semantic-ui/brand-icons.eot +0 -0
- data/app/assets/fonts/semantic-ui/brand-icons.svg +928 -689
- 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 +610 -426
- 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 +22 -18
- 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 +249 -60
- data/app/assets/javascripts/semantic-ui/checkbox.js +2 -2
- data/app/assets/javascripts/semantic-ui/dimmer.js +3 -3
- data/app/assets/javascripts/semantic-ui/dropdown.js +98 -62
- data/app/assets/javascripts/semantic-ui/form.js +97 -35
- data/app/assets/javascripts/semantic-ui/modal.js +9 -1
- data/app/assets/javascripts/semantic-ui/popup.js +8 -7
- data/app/assets/javascripts/semantic-ui/progress.js +20 -24
- data/app/assets/javascripts/semantic-ui/search.js +30 -2
- data/app/assets/javascripts/semantic-ui/slider.js +8 -8
- data/app/assets/javascripts/semantic-ui/tab.js +3 -2
- data/app/assets/javascripts/semantic-ui/toast.js +11 -9
- data/app/assets/javascripts/semantic-ui/visibility.js +1 -1
- data/app/assets/stylesheets/semantic-ui/collections/_form.scss +86 -93
- data/app/assets/stylesheets/semantic-ui/collections/_grid.scss +8 -6
- data/app/assets/stylesheets/semantic-ui/collections/_menu.scss +36 -35
- data/app/assets/stylesheets/semantic-ui/collections/_message.scss +4 -4
- data/app/assets/stylesheets/semantic-ui/collections/_table.scss +39 -23
- data/app/assets/stylesheets/semantic-ui/elements/_button.scss +9 -3
- data/app/assets/stylesheets/semantic-ui/elements/_emoji.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/elements/_header.scss +8 -8
- data/app/assets/stylesheets/semantic-ui/elements/_icon.scss +159 -18
- data/app/assets/stylesheets/semantic-ui/elements/_image.scss +33 -4
- data/app/assets/stylesheets/semantic-ui/elements/_input.scss +68 -68
- data/app/assets/stylesheets/semantic-ui/elements/_label.scss +38 -2
- data/app/assets/stylesheets/semantic-ui/elements/_list.scss +12 -12
- data/app/assets/stylesheets/semantic-ui/elements/_segment.scss +7 -1
- data/app/assets/stylesheets/semantic-ui/elements/_step.scss +16 -9
- data/app/assets/stylesheets/semantic-ui/elements/_text.scss +15 -0
- data/app/assets/stylesheets/semantic-ui/modules/_calendar.scss +16 -9
- data/app/assets/stylesheets/semantic-ui/modules/_checkbox.scss +1 -0
- data/app/assets/stylesheets/semantic-ui/modules/_dimmer.scss +26 -23
- data/app/assets/stylesheets/semantic-ui/modules/_dropdown.scss +123 -32
- data/app/assets/stylesheets/semantic-ui/modules/_embed.scss +6 -6
- data/app/assets/stylesheets/semantic-ui/modules/_modal.scss +13 -6
- data/app/assets/stylesheets/semantic-ui/modules/_popup.scss +36 -7
- data/app/assets/stylesheets/semantic-ui/modules/_progress.scss +32 -3
- data/app/assets/stylesheets/semantic-ui/modules/_search.scss +90 -0
- data/app/assets/stylesheets/semantic-ui/modules/_shape.scss +1 -0
- data/app/assets/stylesheets/semantic-ui/modules/_sidebar.scss +2 -1
- data/app/assets/stylesheets/semantic-ui/modules/_slider.scss +9 -0
- data/app/assets/stylesheets/semantic-ui/modules/_toast.scss +7 -7
- data/app/assets/stylesheets/semantic-ui/modules/_transition.scss +34 -34
- data/app/assets/stylesheets/semantic-ui/views/_card.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/views/_feed.scss +5 -5
- data/app/assets/stylesheets/semantic-ui/views/_statistic.scss +4 -4
- data/lib/fomantic/ui/sass/version.rb +2 -2
- 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
|
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
|
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.
|
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(
|
616
|
-
.on(
|
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(
|
626
|
-
.on(
|
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(
|
634
|
+
.on(clickEvent + eventNamespace, selector.search, module.event.search.focus)
|
629
635
|
.on('blur' + eventNamespace, selector.search, module.event.search.blur)
|
630
|
-
.on(
|
636
|
+
.on(clickEvent + eventNamespace, selector.text, module.event.text.focus)
|
631
637
|
;
|
632
638
|
if(module.is.multiple()) {
|
633
639
|
$module
|
634
|
-
.on(
|
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(
|
642
|
-
.on(
|
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(
|
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(
|
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(
|
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
|
-
|
808
|
-
|
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
|
-
|
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] ||
|
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
|
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
|
-
?
|
1928
|
-
:
|
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
|
-
?
|
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
|
-
|
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
|
-
|
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
|
-
|
2031
|
+
values.sort(function(a, b) {
|
2007
2032
|
return a.name.localeCompare(b.name);
|
2008
2033
|
});
|
2009
2034
|
} else if(settings.sortSelect === 'natural') {
|
2010
|
-
|
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
|
-
|
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(
|
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(
|
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(
|
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 = /[
|
3699
|
+
badChars = /[<>"'`]/g,
|
3665
3700
|
shouldEscape = /[&<>"'`]/,
|
3666
3701
|
escape = {
|
3667
|
-
"&": "&",
|
3668
3702
|
"<": "<",
|
3669
3703
|
">": ">",
|
3670
3704
|
'"': """,
|
@@ -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};)/, "&");
|
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 : '>
|
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 = /[
|
4126
|
+
badChars = /[<>"'`]/g,
|
4091
4127
|
shouldEscape = /[&<>"'`]/,
|
4092
4128
|
escape = {
|
4093
|
-
"&": "&",
|
4094
4129
|
"<": "<",
|
4095
4130
|
">": ">",
|
4096
4131
|
'"': """,
|
@@ -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};)/, "&");
|
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] ||
|
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 !== '') {
|