fomantic-ui-sass 2.7.1 → 2.7.2
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 +20 -0
- data/Rakefile +1 -0
- data/app/assets/javascripts/semantic-ui/accordion.js +20 -17
- data/app/assets/javascripts/semantic-ui/checkbox.js +18 -17
- data/app/assets/javascripts/semantic-ui/dropdown.js +48 -42
- data/app/assets/javascripts/semantic-ui/form.js +59 -28
- data/app/assets/javascripts/semantic-ui/modal.js +13 -1
- data/app/assets/javascripts/semantic-ui/progress.js +5 -5
- data/app/assets/javascripts/semantic-ui/search.js +34 -28
- data/app/assets/javascripts/semantic-ui/sidebar.js +5 -7
- data/app/assets/javascripts/semantic-ui/transition.js +46 -34
- data/app/assets/stylesheets/semantic-ui/collections/_breadcrumb.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/collections/_form.scss +7 -1
- data/app/assets/stylesheets/semantic-ui/collections/_grid.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/collections/_menu.scss +112 -112
- data/app/assets/stylesheets/semantic-ui/collections/_message.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/collections/_table.scss +66 -66
- data/app/assets/stylesheets/semantic-ui/elements/_button.scss +21 -14
- data/app/assets/stylesheets/semantic-ui/elements/_container.scss +1 -1
- 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 +2 -4
- data/app/assets/stylesheets/semantic-ui/elements/_icon.scss +464 -131
- data/app/assets/stylesheets/semantic-ui/elements/_image.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/elements/_input.scss +8 -3
- data/app/assets/stylesheets/semantic-ui/elements/_label.scss +227 -187
- data/app/assets/stylesheets/semantic-ui/elements/_list.scss +26 -12
- data/app/assets/stylesheets/semantic-ui/elements/_loader.scss +68 -19
- 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 +14 -17
- data/app/assets/stylesheets/semantic-ui/elements/_step.scss +5 -1
- data/app/assets/stylesheets/semantic-ui/elements/_text.scss +26 -0
- data/app/assets/stylesheets/semantic-ui/globals/_reset.scss +24 -118
- data/app/assets/stylesheets/semantic-ui/globals/_site.scss +5 -5
- data/app/assets/stylesheets/semantic-ui/modules/_accordion.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_calendar.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_checkbox.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_dimmer.scss +3 -3
- data/app/assets/stylesheets/semantic-ui/modules/_dropdown.scss +6 -3
- data/app/assets/stylesheets/semantic-ui/modules/_embed.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_modal.scss +2 -1
- data/app/assets/stylesheets/semantic-ui/modules/_nag.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_popup.scss +4 -4
- data/app/assets/stylesheets/semantic-ui/modules/_progress.scss +68 -21
- data/app/assets/stylesheets/semantic-ui/modules/_rating.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_search.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_shape.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_sidebar.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_sticky.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_tab.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_toast.scss +1 -1
- 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 +1 -1
- data/app/assets/stylesheets/semantic-ui/views/_comment.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/views/_feed.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/views/_item.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/views/_statistic.scss +1 -1
- data/fomantic-ui-sass.gemspec +1 -1
- data/lib/fomantic/ui/sass/version.rb +2 -2
- metadata +3 -3
@@ -271,7 +271,7 @@ $.fn.form = function(parameters) {
|
|
271
271
|
if(!$field || $field.length === 0) {
|
272
272
|
return true;
|
273
273
|
}
|
274
|
-
else if($field.is(
|
274
|
+
else if($field.is(selector.checkbox)) {
|
275
275
|
return !$field.is(':checked');
|
276
276
|
}
|
277
277
|
else {
|
@@ -552,10 +552,13 @@ $.fn.form = function(parameters) {
|
|
552
552
|
}
|
553
553
|
$.each(validation, function(fieldName, field) {
|
554
554
|
identifier = field.identifier || fieldName;
|
555
|
-
|
556
|
-
field
|
557
|
-
|
558
|
-
|
555
|
+
$.each(module.get.field(identifier), function(index, groupField) {
|
556
|
+
if(groupField == $field[0]) {
|
557
|
+
field.identifier = identifier;
|
558
|
+
fieldValidation = field;
|
559
|
+
return false;
|
560
|
+
}
|
561
|
+
});
|
559
562
|
});
|
560
563
|
return fieldValidation || false;
|
561
564
|
},
|
@@ -701,7 +704,7 @@ $.fn.form = function(parameters) {
|
|
701
704
|
}
|
702
705
|
validation = $.extend({}, validation, newValidation);
|
703
706
|
},
|
704
|
-
prompt: function(identifier, errors) {
|
707
|
+
prompt: function(identifier, errors, internal) {
|
705
708
|
var
|
706
709
|
$field = module.get.field(identifier),
|
707
710
|
$fieldGroup = $field.closest($group),
|
@@ -713,9 +716,11 @@ $.fn.form = function(parameters) {
|
|
713
716
|
: errors
|
714
717
|
;
|
715
718
|
module.verbose('Adding field error state', identifier);
|
716
|
-
|
717
|
-
|
718
|
-
|
719
|
+
if(!internal) {
|
720
|
+
$fieldGroup
|
721
|
+
.addClass(className.error)
|
722
|
+
;
|
723
|
+
}
|
719
724
|
if(settings.inline) {
|
720
725
|
if(!promptExists) {
|
721
726
|
$prompt = settings.templates.prompt(errors);
|
@@ -977,24 +982,35 @@ $.fn.form = function(parameters) {
|
|
977
982
|
module.debug('Using field name as identifier', identifier);
|
978
983
|
field.identifier = identifier;
|
979
984
|
}
|
980
|
-
|
985
|
+
var isDisabled = true;
|
986
|
+
$.each($field, function(){
|
987
|
+
if(!$(this).prop('disabled')) {
|
988
|
+
isDisabled = false;
|
989
|
+
return false;
|
990
|
+
}
|
991
|
+
});
|
992
|
+
if(isDisabled) {
|
981
993
|
module.debug('Field is disabled. Skipping', identifier);
|
982
|
-
fieldValid = true;
|
983
994
|
}
|
984
995
|
else if(field.optional && module.is.blank($field)){
|
985
996
|
module.debug('Field is optional and blank. Skipping', identifier);
|
986
|
-
fieldValid = true;
|
987
997
|
}
|
988
998
|
else if(field.depends && module.is.empty($dependsField)) {
|
989
999
|
module.debug('Field depends on another value that is not present or empty. Skipping', $dependsField);
|
990
|
-
fieldValid = true;
|
991
1000
|
}
|
992
1001
|
else if(field.rules !== undefined) {
|
1002
|
+
$field.closest($group).removeClass(className.error);
|
993
1003
|
$.each(field.rules, function(index, rule) {
|
994
|
-
if( module.has.field(identifier)
|
995
|
-
module.
|
996
|
-
|
997
|
-
|
1004
|
+
if( module.has.field(identifier)) {
|
1005
|
+
var invalidFields = module.validate.rule(field, rule,true) || [];
|
1006
|
+
if (invalidFields.length>0){
|
1007
|
+
module.debug('Field is invalid', identifier, rule.type);
|
1008
|
+
fieldErrors.push(module.get.prompt(rule, field));
|
1009
|
+
fieldValid = false;
|
1010
|
+
if(showErrors){
|
1011
|
+
$(invalidFields).closest($group).addClass(className.error);
|
1012
|
+
}
|
1013
|
+
}
|
998
1014
|
}
|
999
1015
|
});
|
1000
1016
|
}
|
@@ -1007,7 +1023,7 @@ $.fn.form = function(parameters) {
|
|
1007
1023
|
else {
|
1008
1024
|
if(showErrors) {
|
1009
1025
|
formErrors = formErrors.concat(fieldErrors);
|
1010
|
-
module.add.prompt(identifier, fieldErrors);
|
1026
|
+
module.add.prompt(identifier, fieldErrors, true);
|
1011
1027
|
settings.onInvalid.call($field, fieldErrors);
|
1012
1028
|
}
|
1013
1029
|
return false;
|
@@ -1016,26 +1032,41 @@ $.fn.form = function(parameters) {
|
|
1016
1032
|
},
|
1017
1033
|
|
1018
1034
|
// takes validation rule and returns whether field passes rule
|
1019
|
-
rule: function(field, rule) {
|
1035
|
+
rule: function(field, rule, internal) {
|
1020
1036
|
var
|
1021
1037
|
$field = module.get.field(field.identifier),
|
1022
1038
|
type = rule.type,
|
1023
|
-
value = $field.val(),
|
1024
|
-
isValid = true,
|
1025
1039
|
ancillary = module.get.ancillaryValue(rule),
|
1026
1040
|
ruleName = module.get.ruleName(rule),
|
1027
|
-
ruleFunction = settings.rules[ruleName]
|
1041
|
+
ruleFunction = settings.rules[ruleName],
|
1042
|
+
invalidFields = [],
|
1043
|
+
isRadio = $field.is(selector.radio),
|
1044
|
+
isValid = function(field){
|
1045
|
+
var value = (isRadio ? $(field).filter(':checked').val() : $(field).val());
|
1046
|
+
// cast to string avoiding encoding special values
|
1047
|
+
value = (value === undefined || value === '' || value === null)
|
1048
|
+
? ''
|
1049
|
+
: (settings.shouldTrim) ? $.trim(value + '') : String(value + '')
|
1050
|
+
;
|
1051
|
+
return ruleFunction.call(field, value, ancillary);
|
1052
|
+
}
|
1028
1053
|
;
|
1029
1054
|
if( !$.isFunction(ruleFunction) ) {
|
1030
1055
|
module.error(error.noRule, ruleName);
|
1031
1056
|
return;
|
1032
1057
|
}
|
1033
|
-
|
1034
|
-
|
1035
|
-
|
1036
|
-
|
1037
|
-
|
1038
|
-
|
1058
|
+
if(isRadio) {
|
1059
|
+
if (!isValid($field)) {
|
1060
|
+
invalidFields = $field;
|
1061
|
+
}
|
1062
|
+
} else {
|
1063
|
+
$.each($field, function (index, field) {
|
1064
|
+
if (!isValid(field)) {
|
1065
|
+
invalidFields.push(field);
|
1066
|
+
}
|
1067
|
+
});
|
1068
|
+
}
|
1069
|
+
return internal ? invalidFields : !(invalidFields.length>0);
|
1039
1070
|
}
|
1040
1071
|
},
|
1041
1072
|
|
@@ -79,6 +79,7 @@ $.fn.modal = function(parameters) {
|
|
79
79
|
ignoreRepeatedEvents = false,
|
80
80
|
|
81
81
|
initialMouseDownInModal,
|
82
|
+
initialMouseDownInScrollbar,
|
82
83
|
|
83
84
|
elementEventNamespace,
|
84
85
|
id,
|
@@ -281,6 +282,10 @@ $.fn.modal = function(parameters) {
|
|
281
282
|
if(initialMouseDownInModal) {
|
282
283
|
module.verbose('Mouse down event registered inside the modal');
|
283
284
|
}
|
285
|
+
initialMouseDownInScrollbar = module.is.scrolling() && $(window).outerWidth() - settings.scrollbarWidth <= event.clientX;
|
286
|
+
if(initialMouseDownInScrollbar) {
|
287
|
+
module.verbose('Mouse down event registered inside the scrollbar');
|
288
|
+
}
|
284
289
|
},
|
285
290
|
mouseup: function(event) {
|
286
291
|
if(!settings.closable) {
|
@@ -291,6 +296,10 @@ $.fn.modal = function(parameters) {
|
|
291
296
|
module.debug('Dimmer clicked but mouse down was initially registered inside the modal');
|
292
297
|
return;
|
293
298
|
}
|
299
|
+
if(initialMouseDownInScrollbar){
|
300
|
+
module.debug('Dimmer clicked but mouse down was initially registered inside the scrollbar');
|
301
|
+
return;
|
302
|
+
}
|
294
303
|
var
|
295
304
|
$target = $(event.target),
|
296
305
|
isInModal = ($target.closest(selector.modal).length > 0),
|
@@ -447,6 +456,7 @@ $.fn.modal = function(parameters) {
|
|
447
456
|
module.debug('Hiding modal');
|
448
457
|
if(settings.onHide.call(element, $(this)) === false) {
|
449
458
|
module.verbose('Hide callback returned false cancelling hide');
|
459
|
+
ignoreRepeatedEvents = false;
|
450
460
|
return false;
|
451
461
|
}
|
452
462
|
|
@@ -592,7 +602,7 @@ $.fn.modal = function(parameters) {
|
|
592
602
|
|
593
603
|
restore: {
|
594
604
|
focus: function() {
|
595
|
-
if($focusedElement && $focusedElement.length > 0) {
|
605
|
+
if($focusedElement && $focusedElement.length > 0 && settings.restoreFocus) {
|
596
606
|
$focusedElement.focus();
|
597
607
|
}
|
598
608
|
}
|
@@ -1036,6 +1046,7 @@ $.fn.modal.settings = {
|
|
1036
1046
|
detachable : true,
|
1037
1047
|
closable : true,
|
1038
1048
|
autofocus : true,
|
1049
|
+
restoreFocus : true,
|
1039
1050
|
|
1040
1051
|
inverted : false,
|
1041
1052
|
blurring : false,
|
@@ -1058,6 +1069,7 @@ $.fn.modal.settings = {
|
|
1058
1069
|
|
1059
1070
|
// padding with edge of page
|
1060
1071
|
padding : 50,
|
1072
|
+
scrollbarWidth: 10,
|
1061
1073
|
|
1062
1074
|
// called before show animation
|
1063
1075
|
onShow : function(){},
|
@@ -118,19 +118,19 @@ $.fn.progress = function(parameters) {
|
|
118
118
|
value : $module.data(metadata.value)
|
119
119
|
}
|
120
120
|
;
|
121
|
-
if(data.percent) {
|
122
|
-
module.debug('Current percent value set from metadata', data.percent);
|
123
|
-
module.set.percent(data.percent);
|
124
|
-
}
|
125
121
|
if(data.total) {
|
126
122
|
module.debug('Total value set from metadata', data.total);
|
127
123
|
module.set.total(data.total);
|
128
124
|
}
|
129
|
-
if(data.value) {
|
125
|
+
if(!isNaN(data.value)) {
|
130
126
|
module.debug('Current value set from metadata', data.value);
|
131
127
|
module.set.value(data.value);
|
132
128
|
module.set.progress(data.value);
|
133
129
|
}
|
130
|
+
if(!isNaN(data.percent)) {
|
131
|
+
module.debug('Current percent value set from metadata', data.percent);
|
132
|
+
module.set.percent(data.percent);
|
133
|
+
}
|
134
134
|
},
|
135
135
|
settings: function() {
|
136
136
|
if(settings.total !== false) {
|
@@ -412,6 +412,10 @@ $.fn.search = function(parameters) {
|
|
412
412
|
settings.fullTextSearch = parameters.searchFullText;
|
413
413
|
module.error(settings.error.oldSearchSyntax, element);
|
414
414
|
}
|
415
|
+
if (settings.ignoreDiacritics && !String.prototype.normalize) {
|
416
|
+
settings.ignoreDiacritics = false;
|
417
|
+
module.error(error.noNormalize, element);
|
418
|
+
}
|
415
419
|
},
|
416
420
|
inputEvent: function() {
|
417
421
|
var
|
@@ -506,6 +510,9 @@ $.fn.search = function(parameters) {
|
|
506
510
|
},
|
507
511
|
buttonPressed: function() {
|
508
512
|
$searchButton.removeClass(className.pressed);
|
513
|
+
},
|
514
|
+
diacritics: function(text) {
|
515
|
+
return settings.ignoreDiacritics ? text.normalize('NFD').replace(/[\u0300-\u036f]/g, '') : text;
|
509
516
|
}
|
510
517
|
},
|
511
518
|
|
@@ -589,11 +596,12 @@ $.fn.search = function(parameters) {
|
|
589
596
|
;
|
590
597
|
},
|
591
598
|
object: function(searchTerm, source, searchFields) {
|
599
|
+
searchTerm = module.remove.diacritics(String(searchTerm));
|
592
600
|
var
|
593
601
|
results = [],
|
594
602
|
exactResults = [],
|
595
603
|
fuzzyResults = [],
|
596
|
-
searchExp = searchTerm.
|
604
|
+
searchExp = searchTerm.replace(regExp.escape, '\\$&'),
|
597
605
|
matchRegExp = new RegExp(regExp.beginsWith + searchExp, 'i'),
|
598
606
|
|
599
607
|
// avoid duplicates when pushing results
|
@@ -631,22 +639,23 @@ $.fn.search = function(parameters) {
|
|
631
639
|
fieldExists = (typeof content[field] == 'string')
|
632
640
|
;
|
633
641
|
if(fieldExists) {
|
634
|
-
|
642
|
+
var text = module.remove.diacritics(content[field]);
|
643
|
+
if( text.search(matchRegExp) !== -1) {
|
635
644
|
// content starts with value (first in results)
|
636
645
|
addResult(results, content);
|
637
646
|
}
|
638
|
-
else if(settings.fullTextSearch === 'exact' && module.exactSearch(searchTerm,
|
647
|
+
else if(settings.fullTextSearch === 'exact' && module.exactSearch(searchTerm, text) ) {
|
639
648
|
// content fuzzy matches (last in results)
|
640
649
|
addResult(exactResults, content);
|
641
650
|
}
|
642
|
-
else if(settings.fullTextSearch == true && module.fuzzySearch(searchTerm,
|
651
|
+
else if(settings.fullTextSearch == true && module.fuzzySearch(searchTerm, text) ) {
|
643
652
|
// content fuzzy matches (last in results)
|
644
653
|
addResult(fuzzyResults, content);
|
645
654
|
}
|
646
655
|
}
|
647
656
|
});
|
648
657
|
});
|
649
|
-
$.merge(exactResults, fuzzyResults)
|
658
|
+
$.merge(exactResults, fuzzyResults);
|
650
659
|
$.merge(results, exactResults);
|
651
660
|
return results;
|
652
661
|
}
|
@@ -654,10 +663,7 @@ $.fn.search = function(parameters) {
|
|
654
663
|
exactSearch: function (query, term) {
|
655
664
|
query = query.toLowerCase();
|
656
665
|
term = term.toLowerCase();
|
657
|
-
|
658
|
-
return true;
|
659
|
-
}
|
660
|
-
return false;
|
666
|
+
return term.indexOf(query) > -1;
|
661
667
|
},
|
662
668
|
fuzzySearch: function(query, term) {
|
663
669
|
var
|
@@ -788,7 +794,7 @@ $.fn.search = function(parameters) {
|
|
788
794
|
categoryResults[result.category] = {
|
789
795
|
name : result.category,
|
790
796
|
results : [result]
|
791
|
-
}
|
797
|
+
};
|
792
798
|
}
|
793
799
|
else {
|
794
800
|
categoryResults[result.category].results.push(result);
|
@@ -855,26 +861,22 @@ $.fn.search = function(parameters) {
|
|
855
861
|
if(settings.type === 'category') {
|
856
862
|
// iterate through each category result
|
857
863
|
$.each(results, function(index, category) {
|
858
|
-
|
859
|
-
|
860
|
-
|
861
|
-
result
|
862
|
-
|
863
|
-
|
864
|
-
|
865
|
-
|
866
|
-
|
867
|
-
|
868
|
-
}
|
869
|
-
categoryIndex++;
|
864
|
+
if(category.results.length > 0){
|
865
|
+
resultIndex = 0;
|
866
|
+
$.each(category.results, function(index, result) {
|
867
|
+
if(result.id === undefined) {
|
868
|
+
result.id = module.create.id(resultIndex, categoryIndex);
|
869
|
+
}
|
870
|
+
module.inject.result(result, resultIndex, categoryIndex);
|
871
|
+
resultIndex++;
|
872
|
+
});
|
873
|
+
categoryIndex++;
|
874
|
+
}
|
870
875
|
});
|
871
876
|
}
|
872
877
|
else {
|
873
878
|
// top level
|
874
|
-
$.each(results, function(index,
|
875
|
-
var
|
876
|
-
result = results[index]
|
877
|
-
;
|
879
|
+
$.each(results, function(index, result) {
|
878
880
|
if(result.id === undefined) {
|
879
881
|
result.id = module.create.id(resultIndex);
|
880
882
|
}
|
@@ -1260,6 +1262,9 @@ $.fn.search.settings = {
|
|
1260
1262
|
// search anywhere in value (set to 'exact' to require exact matches
|
1261
1263
|
fullTextSearch : 'exact',
|
1262
1264
|
|
1265
|
+
// match results also if they contain diacritics of the same base character (for example searching for "a" will also match "á" or "â" or "à", etc...)
|
1266
|
+
ignoreDiacritics : false,
|
1267
|
+
|
1263
1268
|
// whether to add events to prompt automatically
|
1264
1269
|
automatic : true,
|
1265
1270
|
|
@@ -1317,7 +1322,8 @@ $.fn.search.settings = {
|
|
1317
1322
|
oldSearchSyntax : 'searchFullText setting has been renamed fullTextSearch for consistency, please adjust your settings.',
|
1318
1323
|
serverError : 'There was an issue querying the server.',
|
1319
1324
|
maxResults : 'Results must be an array to use maxResults setting',
|
1320
|
-
method : 'The method you called is not defined.'
|
1325
|
+
method : 'The method you called is not defined.',
|
1326
|
+
noNormalize : '"ignoreDiacritics" setting will be ignored. Browser does not support String().normalize(). You may consider including <https://cdn.jsdelivr.net/npm/unorm@1.4.1/lib/unorm.min.js> as a polyfill.'
|
1321
1327
|
},
|
1322
1328
|
|
1323
1329
|
metadata: {
|
@@ -1392,7 +1398,7 @@ $.fn.search.settings = {
|
|
1392
1398
|
;
|
1393
1399
|
if(header) {
|
1394
1400
|
html += ''
|
1395
|
-
+ '<div class="header">' + header + '</div
|
1401
|
+
+ '<div class="header">' + header + '</div>'
|
1396
1402
|
;
|
1397
1403
|
}
|
1398
1404
|
html += ' <div class="description">' + message + '</div>';
|
@@ -175,12 +175,10 @@ $.fn.sidebar = function(parameters) {
|
|
175
175
|
bind: {
|
176
176
|
clickaway: function() {
|
177
177
|
module.verbose('Adding clickaway events to context', $context);
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
;
|
183
|
-
}
|
178
|
+
$context
|
179
|
+
.on('click' + elementNamespace, module.event.clickaway)
|
180
|
+
.on('touchend' + elementNamespace, module.event.clickaway)
|
181
|
+
;
|
184
182
|
},
|
185
183
|
scrollLock: function() {
|
186
184
|
if(settings.scrollLock) {
|
@@ -411,7 +409,7 @@ $.fn.sidebar = function(parameters) {
|
|
411
409
|
? callback
|
412
410
|
: function(){}
|
413
411
|
;
|
414
|
-
if(module.is.visible() || module.is.animating()) {
|
412
|
+
if(settings.closable && (module.is.visible() || module.is.animating())) {
|
415
413
|
module.debug('Hiding sidebar', callback);
|
416
414
|
module.refreshSidebars();
|
417
415
|
module.pullPage(function() {
|
@@ -249,21 +249,24 @@ $.fn.transition = function() {
|
|
249
249
|
visible: function() {
|
250
250
|
var
|
251
251
|
style = $module.attr('style'),
|
252
|
-
userStyle = module.get.userStyle(),
|
252
|
+
userStyle = module.get.userStyle(style),
|
253
253
|
displayType = module.get.displayType(),
|
254
254
|
overrideStyle = userStyle + 'display: ' + displayType + ' !important;',
|
255
|
-
|
256
|
-
|
255
|
+
inlineDisplay = $module[0].style.display,
|
256
|
+
mustStayHidden = !displayType || (inlineDisplay === 'none' && settings.skipInlineHidden) || $module[0].tagName.match(/(script|link|style)/i)
|
257
257
|
;
|
258
|
-
if(
|
259
|
-
module.
|
260
|
-
|
261
|
-
.attr('style', overrideStyle)
|
262
|
-
;
|
258
|
+
if (mustStayHidden){
|
259
|
+
module.remove.transition();
|
260
|
+
return false;
|
263
261
|
}
|
264
|
-
|
262
|
+
module.verbose('Overriding default display to show element', displayType);
|
263
|
+
$module
|
264
|
+
.attr('style', overrideStyle)
|
265
|
+
;
|
266
|
+
if(style === '') {
|
265
267
|
$module.removeAttr('style');
|
266
268
|
}
|
269
|
+
return true;
|
267
270
|
},
|
268
271
|
hidden: function() {
|
269
272
|
var
|
@@ -311,28 +314,27 @@ $.fn.transition = function() {
|
|
311
314
|
|
312
315
|
set: {
|
313
316
|
animating: function(animation) {
|
314
|
-
var
|
315
|
-
animationClass,
|
316
|
-
direction
|
317
|
-
;
|
318
|
-
// remove previous callbacks
|
319
|
-
module.remove.completeCallback();
|
320
|
-
|
321
|
-
// determine exact animation
|
322
|
-
animation = animation || settings.animation;
|
323
|
-
animationClass = module.get.animationClass(animation);
|
324
|
-
|
325
|
-
// save animation class in cache to restore class names
|
326
|
-
module.save.animation(animationClass);
|
327
|
-
|
328
317
|
// override display if necessary so animation appears visibly
|
329
|
-
module.force.visible()
|
318
|
+
if(module.force.visible()) {
|
319
|
+
var
|
320
|
+
animationClass,
|
321
|
+
direction
|
322
|
+
;
|
323
|
+
// remove previous callbacks
|
324
|
+
module.remove.completeCallback();
|
330
325
|
|
331
|
-
|
332
|
-
|
326
|
+
// determine exact animation
|
327
|
+
animation = animation || settings.animation;
|
328
|
+
animationClass = module.get.animationClass(animation);
|
329
|
+
|
330
|
+
// save animation class in cache to restore class names
|
331
|
+
module.save.animation(animationClass);
|
333
332
|
|
334
|
-
|
333
|
+
module.remove.hidden();
|
334
|
+
module.remove.direction();
|
335
335
|
|
336
|
+
module.start.animation(animationClass);
|
337
|
+
}
|
336
338
|
},
|
337
339
|
duration: function(animationName, duration) {
|
338
340
|
duration = duration || settings.duration;
|
@@ -504,6 +506,7 @@ $.fn.transition = function() {
|
|
504
506
|
},
|
505
507
|
transition: function() {
|
506
508
|
$module
|
509
|
+
.removeClass(className.transition)
|
507
510
|
.removeClass(className.visible)
|
508
511
|
.removeClass(className.hidden)
|
509
512
|
;
|
@@ -625,8 +628,13 @@ $.fn.transition = function() {
|
|
625
628
|
return settings.displayType;
|
626
629
|
}
|
627
630
|
if(shouldDetermine && $module.data(metadata.displayType) === undefined) {
|
631
|
+
var currentDisplay = $module.css('display');
|
632
|
+
if(currentDisplay === '' || currentDisplay === 'none'){
|
628
633
|
// create fake element to determine display state
|
629
|
-
|
634
|
+
module.can.transition(true);
|
635
|
+
} else {
|
636
|
+
module.save.displayType(currentDisplay);
|
637
|
+
}
|
630
638
|
}
|
631
639
|
return $module.data(metadata.displayType);
|
632
640
|
},
|
@@ -803,12 +811,13 @@ $.fn.transition = function() {
|
|
803
811
|
|
804
812
|
show: function(display) {
|
805
813
|
module.verbose('Showing element', display);
|
806
|
-
module.
|
807
|
-
|
808
|
-
|
809
|
-
|
810
|
-
|
811
|
-
|
814
|
+
if(module.force.visible()) {
|
815
|
+
module.remove.hidden();
|
816
|
+
module.set.visible();
|
817
|
+
settings.onShow.call(element);
|
818
|
+
settings.onComplete.call(element);
|
819
|
+
// module.repaint();
|
820
|
+
}
|
812
821
|
},
|
813
822
|
|
814
823
|
toggle: function() {
|
@@ -1080,6 +1089,9 @@ $.fn.transition.settings = {
|
|
1080
1089
|
// new animations will occur after previous ones
|
1081
1090
|
queue : true,
|
1082
1091
|
|
1092
|
+
// whether initially inline hidden objects should be skipped for transition
|
1093
|
+
skipInlineHidden: false,
|
1094
|
+
|
1083
1095
|
metadata : {
|
1084
1096
|
displayType: 'display'
|
1085
1097
|
},
|