fomantic-ui-sass 2.7.8 → 2.8.4
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/app/assets/fonts/semantic-ui/brand-icons.eot +0 -0
- data/app/assets/fonts/semantic-ui/brand-icons.svg +83 -29
- 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 +59 -41
- 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 +3 -3
- 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/api.js +1 -1
- data/app/assets/javascripts/semantic-ui/calendar.js +103 -27
- data/app/assets/javascripts/semantic-ui/checkbox.js +1 -1
- data/app/assets/javascripts/semantic-ui/dropdown.js +93 -71
- data/app/assets/javascripts/semantic-ui/form.js +69 -22
- data/app/assets/javascripts/semantic-ui/modal.js +104 -33
- data/app/assets/javascripts/semantic-ui/popup.js +10 -10
- data/app/assets/javascripts/semantic-ui/progress.js +10 -8
- data/app/assets/javascripts/semantic-ui/rating.js +35 -6
- data/app/assets/javascripts/semantic-ui/search.js +2 -2
- data/app/assets/javascripts/semantic-ui/sidebar.js +2 -3
- data/app/assets/javascripts/semantic-ui/slider.js +78 -29
- data/app/assets/javascripts/semantic-ui/tab.js +1 -1
- data/app/assets/javascripts/semantic-ui/toast.js +398 -122
- data/app/assets/stylesheets/semantic-ui/collections/_breadcrumb.scss +3 -3
- data/app/assets/stylesheets/semantic-ui/collections/_form.scss +779 -142
- data/app/assets/stylesheets/semantic-ui/collections/_grid.scss +35 -35
- data/app/assets/stylesheets/semantic-ui/collections/_menu.scss +101 -145
- data/app/assets/stylesheets/semantic-ui/collections/_message.scss +11 -11
- data/app/assets/stylesheets/semantic-ui/collections/_table.scss +1009 -208
- data/app/assets/stylesheets/semantic-ui/elements/_all.scss +1 -0
- data/app/assets/stylesheets/semantic-ui/elements/_button.scss +51 -81
- data/app/assets/stylesheets/semantic-ui/elements/_container.scss +12 -12
- data/app/assets/stylesheets/semantic-ui/elements/_divider.scss +35 -14
- data/app/assets/stylesheets/semantic-ui/elements/_emoji.scss +12309 -0
- data/app/assets/stylesheets/semantic-ui/elements/_header.scss +111 -66
- data/app/assets/stylesheets/semantic-ui/elements/_icon.scss +105 -34
- data/app/assets/stylesheets/semantic-ui/elements/_image.scss +28 -28
- data/app/assets/stylesheets/semantic-ui/elements/_input.scss +211 -62
- data/app/assets/stylesheets/semantic-ui/elements/_label.scss +20 -20
- data/app/assets/stylesheets/semantic-ui/elements/_list.scss +52 -51
- data/app/assets/stylesheets/semantic-ui/elements/_loader.scss +85 -91
- data/app/assets/stylesheets/semantic-ui/elements/_placeholder.scss +8 -8
- data/app/assets/stylesheets/semantic-ui/elements/_rail.scss +11 -11
- data/app/assets/stylesheets/semantic-ui/elements/_reveal.scss +31 -10
- data/app/assets/stylesheets/semantic-ui/elements/_segment.scss +39 -39
- data/app/assets/stylesheets/semantic-ui/elements/_step.scss +16 -17
- data/app/assets/stylesheets/semantic-ui/elements/_text.scss +3 -3
- data/app/assets/stylesheets/semantic-ui/modules/_accordion.scss +6 -6
- data/app/assets/stylesheets/semantic-ui/modules/_calendar.scss +2 -2
- data/app/assets/stylesheets/semantic-ui/modules/_checkbox.scss +15 -124
- data/app/assets/stylesheets/semantic-ui/modules/_dimmer.scss +30 -30
- data/app/assets/stylesheets/semantic-ui/modules/_dropdown.scss +183 -111
- data/app/assets/stylesheets/semantic-ui/modules/_embed.scss +12 -12
- data/app/assets/stylesheets/semantic-ui/modules/_modal.scss +128 -30
- data/app/assets/stylesheets/semantic-ui/modules/_popup.scss +105 -79
- data/app/assets/stylesheets/semantic-ui/modules/_progress.scss +44 -26
- data/app/assets/stylesheets/semantic-ui/modules/_rating.scss +246 -21
- data/app/assets/stylesheets/semantic-ui/modules/_search.scss +16 -13
- data/app/assets/stylesheets/semantic-ui/modules/_shape.scss +3 -2
- data/app/assets/stylesheets/semantic-ui/modules/_sidebar.scss +12 -14
- data/app/assets/stylesheets/semantic-ui/modules/_slider.scss +20 -23
- data/app/assets/stylesheets/semantic-ui/modules/_tab.scss +2 -2
- data/app/assets/stylesheets/semantic-ui/modules/_toast.scss +542 -155
- data/app/assets/stylesheets/semantic-ui/views/_ad.scss +16 -16
- data/app/assets/stylesheets/semantic-ui/views/_card.scss +42 -17
- data/app/assets/stylesheets/semantic-ui/views/_comment.scss +9 -9
- data/app/assets/stylesheets/semantic-ui/views/_feed.scss +20 -5
- data/app/assets/stylesheets/semantic-ui/views/_item.scss +33 -12
- data/app/assets/stylesheets/semantic-ui/views/_statistic.scss +60 -46
- data/fomantic-ui-sass.gemspec +2 -2
- data/lib/fomantic-ui-sass.rb +2 -2
- data/lib/fomantic/ui/sass/version.rb +2 -2
- data/spec/dummy/app/assets/config/manifest.js +0 -0
- metadata +12 -9
|
@@ -95,6 +95,9 @@ $.fn.form = function(parameters) {
|
|
|
95
95
|
module.verbose('Initializing form validation', $module, settings);
|
|
96
96
|
module.bindEvents();
|
|
97
97
|
module.set.defaults();
|
|
98
|
+
if (settings.autoCheckRequired) {
|
|
99
|
+
module.set.autoCheck();
|
|
100
|
+
}
|
|
98
101
|
module.instantiate();
|
|
99
102
|
}
|
|
100
103
|
},
|
|
@@ -168,7 +171,7 @@ $.fn.form = function(parameters) {
|
|
|
168
171
|
}
|
|
169
172
|
|
|
170
173
|
$field.on('change click keyup keydown blur', function(e) {
|
|
171
|
-
$(this).
|
|
174
|
+
$(this).triggerHandler(e.type + ".dirty");
|
|
172
175
|
});
|
|
173
176
|
|
|
174
177
|
$field.on('change.dirty click.dirty keyup.dirty keydown.dirty blur.dirty', module.determine.isDirty);
|
|
@@ -203,7 +206,7 @@ $.fn.form = function(parameters) {
|
|
|
203
206
|
}
|
|
204
207
|
if(isDropdown) {
|
|
205
208
|
module.verbose('Resetting dropdown value', $element, defaultValue);
|
|
206
|
-
$element.dropdown('clear');
|
|
209
|
+
$element.dropdown('clear', true);
|
|
207
210
|
}
|
|
208
211
|
else if(isCheckbox) {
|
|
209
212
|
$field.prop('checked', false);
|
|
@@ -242,7 +245,7 @@ $.fn.form = function(parameters) {
|
|
|
242
245
|
}
|
|
243
246
|
if(isDropdown) {
|
|
244
247
|
module.verbose('Resetting dropdown value', $element, defaultValue);
|
|
245
|
-
$element.dropdown('restore defaults');
|
|
248
|
+
$element.dropdown('restore defaults', true);
|
|
246
249
|
}
|
|
247
250
|
else if(isCheckbox) {
|
|
248
251
|
module.verbose('Resetting checkbox value', $element, defaultValue);
|
|
@@ -542,7 +545,7 @@ $.fn.form = function(parameters) {
|
|
|
542
545
|
name
|
|
543
546
|
;
|
|
544
547
|
if(requiresValue) {
|
|
545
|
-
prompt = prompt.replace(
|
|
548
|
+
prompt = prompt.replace(/\{value\}/g, $field.val());
|
|
546
549
|
}
|
|
547
550
|
if(requiresName) {
|
|
548
551
|
$label = $field.closest(selector.group).find('label').eq(0);
|
|
@@ -550,10 +553,10 @@ $.fn.form = function(parameters) {
|
|
|
550
553
|
? $label.text()
|
|
551
554
|
: $field.prop('placeholder') || settings.text.unspecifiedField
|
|
552
555
|
;
|
|
553
|
-
prompt = prompt.replace(
|
|
556
|
+
prompt = prompt.replace(/\{name\}/g, name);
|
|
554
557
|
}
|
|
555
|
-
prompt = prompt.replace(
|
|
556
|
-
prompt = prompt.replace(
|
|
558
|
+
prompt = prompt.replace(/\{identifier\}/g, field.identifier);
|
|
559
|
+
prompt = prompt.replace(/\{ruleValue\}/g, ancillary);
|
|
557
560
|
if(!rule.prompt) {
|
|
558
561
|
module.verbose('Using default validation prompt for type', prompt, ruleName);
|
|
559
562
|
}
|
|
@@ -703,7 +706,7 @@ $.fn.form = function(parameters) {
|
|
|
703
706
|
}
|
|
704
707
|
else {
|
|
705
708
|
if(isRadio) {
|
|
706
|
-
if(values[name] === undefined || values[name]
|
|
709
|
+
if(values[name] === undefined || values[name] === false) {
|
|
707
710
|
values[name] = (isChecked)
|
|
708
711
|
? value || true
|
|
709
712
|
: false
|
|
@@ -818,26 +821,36 @@ $.fn.form = function(parameters) {
|
|
|
818
821
|
module.add.field(name, rules);
|
|
819
822
|
},
|
|
820
823
|
field: function(name, rules) {
|
|
824
|
+
// Validation should have at least a standard format
|
|
825
|
+
if(validation[name] === undefined || validation[name].rules === undefined) {
|
|
826
|
+
validation[name] = {
|
|
827
|
+
rules: []
|
|
828
|
+
};
|
|
829
|
+
}
|
|
821
830
|
var
|
|
822
|
-
newValidation = {
|
|
831
|
+
newValidation = {
|
|
832
|
+
rules: []
|
|
833
|
+
}
|
|
823
834
|
;
|
|
824
835
|
if(module.is.shorthandRules(rules)) {
|
|
825
836
|
rules = Array.isArray(rules)
|
|
826
837
|
? rules
|
|
827
838
|
: [rules]
|
|
828
839
|
;
|
|
829
|
-
|
|
830
|
-
rules:
|
|
831
|
-
};
|
|
832
|
-
$.each(rules, function(index, rule) {
|
|
833
|
-
newValidation[name].rules.push({ type: rule });
|
|
840
|
+
$.each(rules, function(_index, rule) {
|
|
841
|
+
newValidation.rules.push({ type: rule });
|
|
834
842
|
});
|
|
835
843
|
}
|
|
836
844
|
else {
|
|
837
|
-
newValidation
|
|
845
|
+
newValidation.rules = rules.rules;
|
|
838
846
|
}
|
|
839
|
-
|
|
840
|
-
|
|
847
|
+
// For each new rule, check if there's not already one with the same type
|
|
848
|
+
$.each(newValidation.rules, function (_index, rule) {
|
|
849
|
+
if ($.grep(validation[name].rules, function(item){ return item.type == rule.type; }).length == 0) {
|
|
850
|
+
validation[name].rules.push(rule);
|
|
851
|
+
}
|
|
852
|
+
});
|
|
853
|
+
module.debug('Adding rules', newValidation.rules, validation);
|
|
841
854
|
},
|
|
842
855
|
fields: function(fields) {
|
|
843
856
|
var
|
|
@@ -991,6 +1004,8 @@ $.fn.form = function(parameters) {
|
|
|
991
1004
|
$parent = $el.parent(),
|
|
992
1005
|
isCheckbox = ($el.filter(selector.checkbox).length > 0),
|
|
993
1006
|
isDropdown = $parent.is(selector.uiDropdown) && module.can.useElement('dropdown'),
|
|
1007
|
+
$calendar = $el.closest(selector.uiCalendar),
|
|
1008
|
+
isCalendar = ($calendar.length > 0 && module.can.useElement('calendar')),
|
|
994
1009
|
value = (isCheckbox)
|
|
995
1010
|
? $el.is(':checked')
|
|
996
1011
|
: $el.val()
|
|
@@ -998,6 +1013,9 @@ $.fn.form = function(parameters) {
|
|
|
998
1013
|
if (isDropdown) {
|
|
999
1014
|
$parent.dropdown('save defaults');
|
|
1000
1015
|
}
|
|
1016
|
+
else if (isCalendar) {
|
|
1017
|
+
$calendar.calendar('refresh');
|
|
1018
|
+
}
|
|
1001
1019
|
$el.data(metadata.defaultValue, value);
|
|
1002
1020
|
$el.data(metadata.isDirty, false);
|
|
1003
1021
|
});
|
|
@@ -1053,7 +1071,7 @@ $.fn.form = function(parameters) {
|
|
|
1053
1071
|
}
|
|
1054
1072
|
else if(isCheckbox) {
|
|
1055
1073
|
module.verbose('Setting checkbox value', value, $element);
|
|
1056
|
-
if(value === true) {
|
|
1074
|
+
if(value === true || value === 1) {
|
|
1057
1075
|
$element.checkbox('check');
|
|
1058
1076
|
}
|
|
1059
1077
|
else {
|
|
@@ -1101,6 +1119,32 @@ $.fn.form = function(parameters) {
|
|
|
1101
1119
|
asDirty: function() {
|
|
1102
1120
|
module.set.defaults();
|
|
1103
1121
|
module.set.dirty();
|
|
1122
|
+
},
|
|
1123
|
+
autoCheck: function() {
|
|
1124
|
+
module.debug('Enabling auto check on required fields');
|
|
1125
|
+
$field.each(function (_index, el) {
|
|
1126
|
+
var
|
|
1127
|
+
$el = $(el),
|
|
1128
|
+
$elGroup = $(el).closest($group),
|
|
1129
|
+
isCheckbox = ($el.filter(selector.checkbox).length > 0),
|
|
1130
|
+
isRequired = $el.prop('required') || $elGroup.hasClass(className.required) || $elGroup.parent().hasClass(className.required),
|
|
1131
|
+
isDisabled = $el.prop('disabled') || $elGroup.hasClass(className.disabled) || $elGroup.parent().hasClass(className.disabled),
|
|
1132
|
+
validation = module.get.validation($el),
|
|
1133
|
+
hasEmptyRule = validation
|
|
1134
|
+
? $.grep(validation.rules, function(rule) { return rule.type == "empty" }) !== 0
|
|
1135
|
+
: false,
|
|
1136
|
+
identifier = validation.identifier || $el.attr('id') || $el.attr('name') || $el.data(metadata.validate)
|
|
1137
|
+
;
|
|
1138
|
+
if (isRequired && !isDisabled && !hasEmptyRule && identifier !== undefined) {
|
|
1139
|
+
if (isCheckbox) {
|
|
1140
|
+
module.verbose("Adding 'checked' rule on field", identifier);
|
|
1141
|
+
module.add.rule(identifier, "checked");
|
|
1142
|
+
} else {
|
|
1143
|
+
module.verbose("Adding 'empty' rule on field", identifier);
|
|
1144
|
+
module.add.rule(identifier, "empty");
|
|
1145
|
+
}
|
|
1146
|
+
}
|
|
1147
|
+
});
|
|
1104
1148
|
}
|
|
1105
1149
|
},
|
|
1106
1150
|
|
|
@@ -1440,6 +1484,7 @@ $.fn.form.settings = {
|
|
|
1440
1484
|
transition : 'scale',
|
|
1441
1485
|
duration : 200,
|
|
1442
1486
|
|
|
1487
|
+
autoCheckRequired : false,
|
|
1443
1488
|
preventLeaving : false,
|
|
1444
1489
|
dateHandling : 'date', // 'date', 'input', 'formatter'
|
|
1445
1490
|
|
|
@@ -1520,10 +1565,12 @@ $.fn.form.settings = {
|
|
|
1520
1565
|
},
|
|
1521
1566
|
|
|
1522
1567
|
className : {
|
|
1523
|
-
error
|
|
1524
|
-
label
|
|
1525
|
-
pressed
|
|
1526
|
-
success
|
|
1568
|
+
error : 'error',
|
|
1569
|
+
label : 'ui basic red pointing prompt label',
|
|
1570
|
+
pressed : 'down',
|
|
1571
|
+
success : 'success',
|
|
1572
|
+
required : 'required',
|
|
1573
|
+
disabled : 'disabled'
|
|
1527
1574
|
},
|
|
1528
1575
|
|
|
1529
1576
|
error: {
|
|
@@ -81,6 +81,7 @@ $.fn.modal = function(parameters) {
|
|
|
81
81
|
initialMouseDownInModal,
|
|
82
82
|
initialMouseDownInScrollbar,
|
|
83
83
|
initialBodyMargin = '',
|
|
84
|
+
tempBodyMargin = '',
|
|
84
85
|
|
|
85
86
|
elementEventNamespace,
|
|
86
87
|
id,
|
|
@@ -90,6 +91,7 @@ $.fn.modal = function(parameters) {
|
|
|
90
91
|
module = {
|
|
91
92
|
|
|
92
93
|
initialize: function() {
|
|
94
|
+
module.cache = {};
|
|
93
95
|
module.verbose('Initializing dimmer', $context);
|
|
94
96
|
|
|
95
97
|
module.create.id();
|
|
@@ -279,13 +281,14 @@ $.fn.modal = function(parameters) {
|
|
|
279
281
|
},
|
|
280
282
|
mousedown: function(event) {
|
|
281
283
|
var
|
|
282
|
-
$target = $(event.target)
|
|
284
|
+
$target = $(event.target),
|
|
285
|
+
isRtl = module.is.rtl();
|
|
283
286
|
;
|
|
284
287
|
initialMouseDownInModal = ($target.closest(selector.modal).length > 0);
|
|
285
288
|
if(initialMouseDownInModal) {
|
|
286
289
|
module.verbose('Mouse down event registered inside the modal');
|
|
287
290
|
}
|
|
288
|
-
initialMouseDownInScrollbar = module.is.scrolling() && $(window).outerWidth() - settings.scrollbarWidth <= event.clientX;
|
|
291
|
+
initialMouseDownInScrollbar = module.is.scrolling() && ((!isRtl && $(window).outerWidth() - settings.scrollbarWidth <= event.clientX) || (isRtl && settings.scrollbarWidth >= event.clientX));
|
|
289
292
|
if(initialMouseDownInScrollbar) {
|
|
290
293
|
module.verbose('Mouse down event registered inside the scrollbar');
|
|
291
294
|
}
|
|
@@ -388,6 +391,7 @@ $.fn.modal = function(parameters) {
|
|
|
388
391
|
if( module.is.animating() || !module.is.active() ) {
|
|
389
392
|
module.showDimmer();
|
|
390
393
|
module.cacheSizes();
|
|
394
|
+
module.set.bodyMargin();
|
|
391
395
|
if(module.can.useFlex()) {
|
|
392
396
|
module.remove.legacy();
|
|
393
397
|
}
|
|
@@ -605,12 +609,10 @@ $.fn.modal = function(parameters) {
|
|
|
605
609
|
}
|
|
606
610
|
},
|
|
607
611
|
bodyMargin: function() {
|
|
608
|
-
initialBodyMargin = $body.css('margin-right');
|
|
612
|
+
initialBodyMargin = $body.css('margin-'+(module.can.leftBodyScrollbar() ? 'left':'right'));
|
|
609
613
|
var bodyMarginRightPixel = parseInt(initialBodyMargin.replace(/[^\d.]/g, '')),
|
|
610
|
-
bodyScrollbarWidth = window.innerWidth - document.documentElement.clientWidth
|
|
611
|
-
|
|
612
|
-
$body.css('margin-right', diffPos + 'px');
|
|
613
|
-
$body.find(selector.bodyFixed).css('padding-right', diffPos + 'px');
|
|
614
|
+
bodyScrollbarWidth = window.innerWidth - document.documentElement.clientWidth;
|
|
615
|
+
tempBodyMargin = bodyMarginRightPixel + bodyScrollbarWidth;
|
|
614
616
|
}
|
|
615
617
|
},
|
|
616
618
|
|
|
@@ -621,8 +623,9 @@ $.fn.modal = function(parameters) {
|
|
|
621
623
|
}
|
|
622
624
|
},
|
|
623
625
|
bodyMargin: function() {
|
|
624
|
-
|
|
625
|
-
$body.
|
|
626
|
+
var position = module.can.leftBodyScrollbar() ? 'left':'right';
|
|
627
|
+
$body.css('margin-'+position, initialBodyMargin);
|
|
628
|
+
$body.find(selector.bodyFixed.replace('right',position)).css('padding-'+position, initialBodyMargin);
|
|
626
629
|
}
|
|
627
630
|
},
|
|
628
631
|
|
|
@@ -634,6 +637,11 @@ $.fn.modal = function(parameters) {
|
|
|
634
637
|
$module.removeClass(className.legacy);
|
|
635
638
|
},
|
|
636
639
|
clickaway: function() {
|
|
640
|
+
if (!settings.detachable) {
|
|
641
|
+
$module
|
|
642
|
+
.off('mousedown' + elementEventNamespace)
|
|
643
|
+
;
|
|
644
|
+
}
|
|
637
645
|
$dimmer
|
|
638
646
|
.off('mousedown' + elementEventNamespace)
|
|
639
647
|
;
|
|
@@ -676,8 +684,8 @@ $.fn.modal = function(parameters) {
|
|
|
676
684
|
modalWidth = $module.outerWidth(),
|
|
677
685
|
modalHeight = $module.outerHeight()
|
|
678
686
|
;
|
|
679
|
-
if(module.cache === undefined || modalHeight !== 0) {
|
|
680
|
-
module.cache
|
|
687
|
+
if(module.cache.pageHeight === undefined || modalHeight !== 0) {
|
|
688
|
+
$.extend(module.cache, {
|
|
681
689
|
pageHeight : $(document).outerHeight(),
|
|
682
690
|
width : modalWidth,
|
|
683
691
|
height : modalHeight + settings.offset,
|
|
@@ -685,7 +693,7 @@ $.fn.modal = function(parameters) {
|
|
|
685
693
|
contextHeight : (settings.context == 'body')
|
|
686
694
|
? $(window).height()
|
|
687
695
|
: $dimmable.height(),
|
|
688
|
-
};
|
|
696
|
+
});
|
|
689
697
|
module.cache.topOffset = -(module.cache.height / 2);
|
|
690
698
|
}
|
|
691
699
|
$module.removeClass(className.loading);
|
|
@@ -693,11 +701,22 @@ $.fn.modal = function(parameters) {
|
|
|
693
701
|
},
|
|
694
702
|
|
|
695
703
|
can: {
|
|
704
|
+
leftBodyScrollbar: function(){
|
|
705
|
+
if(module.cache.leftBodyScrollbar === undefined) {
|
|
706
|
+
module.cache.leftBodyScrollbar = module.is.rtl() && ((module.is.iframe && !module.is.firefox()) || module.is.safari() || module.is.edge() || module.is.ie());
|
|
707
|
+
}
|
|
708
|
+
return module.cache.leftBodyScrollbar;
|
|
709
|
+
},
|
|
696
710
|
useFlex: function() {
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
711
|
+
if (settings.useFlex === 'auto') {
|
|
712
|
+
return settings.detachable && !module.is.ie();
|
|
713
|
+
}
|
|
714
|
+
if(settings.useFlex && module.is.ie()) {
|
|
715
|
+
module.debug('useFlex true is not supported in IE');
|
|
716
|
+
} else if(settings.useFlex && !settings.detachable) {
|
|
717
|
+
module.debug('useFlex true in combination with detachable false is not supported');
|
|
718
|
+
}
|
|
719
|
+
return settings.useFlex;
|
|
701
720
|
},
|
|
702
721
|
fit: function() {
|
|
703
722
|
var
|
|
@@ -721,11 +740,14 @@ $.fn.modal = function(parameters) {
|
|
|
721
740
|
return $module.hasClass(className.active);
|
|
722
741
|
},
|
|
723
742
|
ie: function() {
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
743
|
+
if(module.cache.isIE === undefined) {
|
|
744
|
+
var
|
|
745
|
+
isIE11 = (!(window.ActiveXObject) && 'ActiveXObject' in window),
|
|
746
|
+
isIE = ('ActiveXObject' in window)
|
|
747
|
+
;
|
|
748
|
+
module.cache.isIE = (isIE11 || isIE);
|
|
749
|
+
}
|
|
750
|
+
return module.cache.isIE;
|
|
729
751
|
},
|
|
730
752
|
animating: function() {
|
|
731
753
|
return $module.transition('is supported')
|
|
@@ -739,6 +761,33 @@ $.fn.modal = function(parameters) {
|
|
|
739
761
|
modernBrowser: function() {
|
|
740
762
|
// appName for IE11 reports 'Netscape' can no longer use
|
|
741
763
|
return !(window.ActiveXObject || 'ActiveXObject' in window);
|
|
764
|
+
},
|
|
765
|
+
rtl: function() {
|
|
766
|
+
if(module.cache.isRTL === undefined) {
|
|
767
|
+
module.cache.isRTL = $body.attr('dir') === 'rtl' || $body.css('direction') === 'rtl';
|
|
768
|
+
}
|
|
769
|
+
return module.cache.isRTL;
|
|
770
|
+
},
|
|
771
|
+
safari: function() {
|
|
772
|
+
if(module.cache.isSafari === undefined) {
|
|
773
|
+
module.cache.isSafari = /constructor/i.test(window.HTMLElement) || !!window.ApplePaySession;
|
|
774
|
+
}
|
|
775
|
+
return module.cache.isSafari;
|
|
776
|
+
},
|
|
777
|
+
edge: function(){
|
|
778
|
+
if(module.cache.isEdge === undefined) {
|
|
779
|
+
module.cache.isEdge = !!window.setImmediate && !module.is.ie();
|
|
780
|
+
}
|
|
781
|
+
return module.cache.isEdge;
|
|
782
|
+
},
|
|
783
|
+
firefox: function(){
|
|
784
|
+
if(module.cache.isFirefox === undefined) {
|
|
785
|
+
module.cache.isFirefox = !!window.InstallTrigger;
|
|
786
|
+
}
|
|
787
|
+
return module.cache.isFirefox;
|
|
788
|
+
},
|
|
789
|
+
iframe: function() {
|
|
790
|
+
return !(self === top);
|
|
742
791
|
}
|
|
743
792
|
},
|
|
744
793
|
|
|
@@ -757,7 +806,19 @@ $.fn.modal = function(parameters) {
|
|
|
757
806
|
$input.focus();
|
|
758
807
|
}
|
|
759
808
|
},
|
|
809
|
+
bodyMargin: function() {
|
|
810
|
+
var position = module.can.leftBodyScrollbar() ? 'left':'right';
|
|
811
|
+
if(settings.detachable || module.can.fit()) {
|
|
812
|
+
$body.css('margin-'+position, tempBodyMargin + 'px');
|
|
813
|
+
}
|
|
814
|
+
$body.find(selector.bodyFixed.replace('right',position)).css('padding-'+position, tempBodyMargin + 'px');
|
|
815
|
+
},
|
|
760
816
|
clickaway: function() {
|
|
817
|
+
if (!settings.detachable) {
|
|
818
|
+
$module
|
|
819
|
+
.on('mousedown' + elementEventNamespace, module.event.mousedown)
|
|
820
|
+
;
|
|
821
|
+
}
|
|
761
822
|
$dimmer
|
|
762
823
|
.on('mousedown' + elementEventNamespace, module.event.mousedown)
|
|
763
824
|
;
|
|
@@ -806,18 +867,28 @@ $.fn.modal = function(parameters) {
|
|
|
806
867
|
}
|
|
807
868
|
},
|
|
808
869
|
modalOffset: function() {
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
870
|
+
if (!settings.detachable) {
|
|
871
|
+
var canFit = module.can.fit();
|
|
872
|
+
$module
|
|
873
|
+
.css({
|
|
874
|
+
top: (!$module.hasClass('aligned') && canFit)
|
|
875
|
+
? $(document).scrollTop() + (module.cache.contextHeight - module.cache.height) / 2
|
|
876
|
+
: !canFit || $module.hasClass('top')
|
|
877
|
+
? $(document).scrollTop() + settings.padding
|
|
878
|
+
: $(document).scrollTop() + (module.cache.contextHeight - module.cache.height - settings.padding),
|
|
879
|
+
marginLeft: -(module.cache.width / 2)
|
|
880
|
+
})
|
|
881
|
+
;
|
|
882
|
+
} else {
|
|
883
|
+
$module
|
|
884
|
+
.css({
|
|
885
|
+
marginTop: (!$module.hasClass('aligned') && module.can.fit())
|
|
886
|
+
? -(module.cache.height / 2)
|
|
887
|
+
: settings.padding / 2,
|
|
888
|
+
marginLeft: -(module.cache.width / 2)
|
|
889
|
+
})
|
|
890
|
+
;
|
|
891
|
+
}
|
|
821
892
|
module.verbose('Setting modal offset for legacy mode');
|
|
822
893
|
},
|
|
823
894
|
screenHeight: function() {
|
|
@@ -286,18 +286,18 @@ $.fn.popup = function(parameters) {
|
|
|
286
286
|
}
|
|
287
287
|
settings.onCreate.call($popup, element);
|
|
288
288
|
}
|
|
289
|
-
else if(
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
settings.popup = $target.next(selector.popup).data(metadata.activator, $module);
|
|
289
|
+
else if(settings.popup) {
|
|
290
|
+
$(settings.popup).data(metadata.activator, $module);
|
|
291
|
+
module.verbose('Used popup specified in settings');
|
|
293
292
|
module.refresh();
|
|
294
293
|
if(settings.hoverable) {
|
|
295
294
|
module.bind.popup();
|
|
296
295
|
}
|
|
297
296
|
}
|
|
298
|
-
else if(
|
|
299
|
-
|
|
300
|
-
|
|
297
|
+
else if($target.next(selector.popup).length !== 0) {
|
|
298
|
+
module.verbose('Pre-existing popup found');
|
|
299
|
+
settings.inline = true;
|
|
300
|
+
settings.popup = $target.next(selector.popup).data(metadata.activator, $module);
|
|
301
301
|
module.refresh();
|
|
302
302
|
if(settings.hoverable) {
|
|
303
303
|
module.bind.popup();
|
|
@@ -1134,7 +1134,7 @@ $.fn.popup = function(parameters) {
|
|
|
1134
1134
|
return !module.is.visible();
|
|
1135
1135
|
},
|
|
1136
1136
|
rtl: function () {
|
|
1137
|
-
return $module.css('direction')
|
|
1137
|
+
return $module.attr('dir') === 'rtl' || $module.css('direction') === 'rtl';
|
|
1138
1138
|
}
|
|
1139
1139
|
},
|
|
1140
1140
|
|
|
@@ -1496,10 +1496,9 @@ $.fn.popup.settings = {
|
|
|
1496
1496
|
templates: {
|
|
1497
1497
|
escape: function(string) {
|
|
1498
1498
|
var
|
|
1499
|
-
badChars = /[
|
|
1499
|
+
badChars = /[<>"'`]/g,
|
|
1500
1500
|
shouldEscape = /[&<>"'`]/,
|
|
1501
1501
|
escape = {
|
|
1502
|
-
"&": "&",
|
|
1503
1502
|
"<": "<",
|
|
1504
1503
|
">": ">",
|
|
1505
1504
|
'"': """,
|
|
@@ -1511,6 +1510,7 @@ $.fn.popup.settings = {
|
|
|
1511
1510
|
}
|
|
1512
1511
|
;
|
|
1513
1512
|
if(shouldEscape.test(string)) {
|
|
1513
|
+
string = string.replace(/&(?![a-z0-9#]{1,6};)/, "&");
|
|
1514
1514
|
return string.replace(badChars, escapedChar);
|
|
1515
1515
|
}
|
|
1516
1516
|
return string;
|