fomantic-ui-sass 2.9.1 → 2.9.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 +8 -0
- data/app/assets/fonts/semantic-ui/Lato-Bold.woff +0 -0
- data/app/assets/fonts/semantic-ui/Lato-Bold.woff2 +0 -0
- data/app/assets/fonts/semantic-ui/Lato-BoldItalic.woff +0 -0
- data/app/assets/fonts/semantic-ui/Lato-BoldItalic.woff2 +0 -0
- data/app/assets/fonts/semantic-ui/Lato-Italic.woff +0 -0
- data/app/assets/fonts/semantic-ui/Lato-Italic.woff2 +0 -0
- data/app/assets/fonts/semantic-ui/Lato-Regular.woff +0 -0
- data/app/assets/fonts/semantic-ui/Lato-Regular.woff2 +0 -0
- data/app/assets/fonts/semantic-ui/LatoLatin-Bold.woff +0 -0
- data/app/assets/fonts/semantic-ui/LatoLatin-Bold.woff2 +0 -0
- data/app/assets/fonts/semantic-ui/LatoLatin-BoldItalic.woff +0 -0
- data/app/assets/fonts/semantic-ui/LatoLatin-BoldItalic.woff2 +0 -0
- data/app/assets/fonts/semantic-ui/LatoLatin-Italic.woff +0 -0
- data/app/assets/fonts/semantic-ui/LatoLatin-Italic.woff2 +0 -0
- data/app/assets/fonts/semantic-ui/LatoLatin-Regular.woff +0 -0
- data/app/assets/fonts/semantic-ui/LatoLatin-Regular.woff2 +0 -0
- data/app/assets/javascripts/semantic-ui/accordion.js +3 -3
- data/app/assets/javascripts/semantic-ui/dimmer.js +2 -2
- data/app/assets/javascripts/semantic-ui/dropdown.js +2 -2
- data/app/assets/javascripts/semantic-ui/embed.js +1 -1
- data/app/assets/javascripts/semantic-ui/flyout.js +17 -29
- data/app/assets/javascripts/semantic-ui/form.js +116 -106
- data/app/assets/javascripts/semantic-ui/modal.js +14 -7
- data/app/assets/javascripts/semantic-ui/popup.js +19 -7
- data/app/assets/javascripts/semantic-ui/progress.js +2 -28
- data/app/assets/javascripts/semantic-ui/search.js +1 -1
- data/app/assets/javascripts/semantic-ui/shape.js +14 -36
- data/app/assets/javascripts/semantic-ui/sidebar.js +6 -26
- data/app/assets/javascripts/semantic-ui/toast.js +2 -2
- data/app/assets/javascripts/semantic-ui/transition.js +9 -60
- data/app/assets/stylesheets/semantic-ui/collections/_breadcrumb.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/collections/_form.scss +66 -37
- data/app/assets/stylesheets/semantic-ui/collections/_grid.scss +7 -1
- data/app/assets/stylesheets/semantic-ui/collections/_menu.scss +31 -7
- data/app/assets/stylesheets/semantic-ui/collections/_message.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/collections/_table.scss +2 -2
- data/app/assets/stylesheets/semantic-ui/elements/_button.scss +1 -1
- 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/_emoji.scss +2 -2
- data/app/assets/stylesheets/semantic-ui/elements/_flag.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/elements/_header.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/elements/_icon.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/elements/_image.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/elements/_input.scss +59 -25
- data/app/assets/stylesheets/semantic-ui/elements/_label.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/elements/_list.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/elements/_loader.scss +1 -1
- 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 +26 -4
- data/app/assets/stylesheets/semantic-ui/elements/_step.scss +4 -4
- data/app/assets/stylesheets/semantic-ui/elements/_text.scss +2 -2
- data/app/assets/stylesheets/semantic-ui/globals/_reset.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/globals/_site.scss +1 -10
- 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 +40 -40
- data/app/assets/stylesheets/semantic-ui/modules/_dimmer.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_dropdown.scss +8 -6
- data/app/assets/stylesheets/semantic-ui/modules/_embed.scss +2 -2
- data/app/assets/stylesheets/semantic-ui/modules/_flyout.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_modal.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_nag.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_popup.scss +148 -3
- data/app/assets/stylesheets/semantic-ui/modules/_progress.scss +1 -1
- 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/_slider.scss +9 -6
- 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 +2 -2
- data/app/assets/stylesheets/semantic-ui/views/_statistic.scss +1 -1
- data/lib/fomantic/ui/sass/version.rb +2 -2
- metadata +1 -1
|
@@ -193,7 +193,7 @@
|
|
|
193
193
|
$prompt = $fieldGroup.find(selector.prompt),
|
|
194
194
|
$calendar = $field.closest(selector.uiCalendar),
|
|
195
195
|
defaultValue = $field.data(metadata.defaultValue) || '',
|
|
196
|
-
isCheckbox = $
|
|
196
|
+
isCheckbox = $field.is(selector.checkbox),
|
|
197
197
|
isDropdown = $element.is(selector.uiDropdown) && module.can.useElement('dropdown'),
|
|
198
198
|
isCalendar = $calendar.length > 0 && module.can.useElement('calendar'),
|
|
199
199
|
isErrored = $fieldGroup.hasClass(className.error)
|
|
@@ -227,7 +227,7 @@
|
|
|
227
227
|
$calendar = $field.closest(selector.uiCalendar),
|
|
228
228
|
$prompt = $fieldGroup.find(selector.prompt),
|
|
229
229
|
defaultValue = $field.data(metadata.defaultValue),
|
|
230
|
-
isCheckbox = $
|
|
230
|
+
isCheckbox = $field.is(selector.checkbox),
|
|
231
231
|
isDropdown = $element.is(selector.uiDropdown) && module.can.useElement('dropdown'),
|
|
232
232
|
isCalendar = $calendar.length > 0 && module.can.useElement('calendar'),
|
|
233
233
|
isErrored = $fieldGroup.hasClass(className.error)
|
|
@@ -244,7 +244,7 @@
|
|
|
244
244
|
module.verbose('Resetting dropdown value', $element, defaultValue);
|
|
245
245
|
$element.dropdown('restore defaults', true);
|
|
246
246
|
} else if (isCheckbox) {
|
|
247
|
-
module.verbose('Resetting checkbox value', $
|
|
247
|
+
module.verbose('Resetting checkbox value', $field, defaultValue);
|
|
248
248
|
$field.prop('checked', defaultValue);
|
|
249
249
|
} else if (isCalendar) {
|
|
250
250
|
$calendar.calendar('set date', defaultValue);
|
|
@@ -533,14 +533,12 @@
|
|
|
533
533
|
: rule.prompt || settings.prompt[ruleName] || settings.text.unspecifiedRule,
|
|
534
534
|
requiresValue = prompt.search('{value}') !== -1,
|
|
535
535
|
requiresName = prompt.search('{name}') !== -1,
|
|
536
|
-
$label,
|
|
537
|
-
name,
|
|
538
536
|
parts,
|
|
539
537
|
suffixPrompt
|
|
540
538
|
;
|
|
541
|
-
if (ancillary && ['integer', 'decimal', 'number'].indexOf(ruleName) >= 0 && ancillary.indexOf('..') >= 0) {
|
|
539
|
+
if (ancillary && ['integer', 'decimal', 'number', 'size'].indexOf(ruleName) >= 0 && ancillary.indexOf('..') >= 0) {
|
|
542
540
|
parts = ancillary.split('..', 2);
|
|
543
|
-
if (!rule.prompt) {
|
|
541
|
+
if (!rule.prompt && ruleName !== 'size') {
|
|
544
542
|
suffixPrompt = parts[0] === ''
|
|
545
543
|
? settings.prompt.maxValue.replace(/{ruleValue}/g, '{max}')
|
|
546
544
|
: (parts[1] === ''
|
|
@@ -551,15 +549,14 @@
|
|
|
551
549
|
prompt = prompt.replace(/{min}/g, parts[0]);
|
|
552
550
|
prompt = prompt.replace(/{max}/g, parts[1]);
|
|
553
551
|
}
|
|
552
|
+
if (ancillary && ['match', 'different'].indexOf(ruleName) >= 0) {
|
|
553
|
+
prompt = prompt.replace(/{ruleValue}/g, module.get.fieldLabel(ancillary, true));
|
|
554
|
+
}
|
|
554
555
|
if (requiresValue) {
|
|
555
556
|
prompt = prompt.replace(/{value}/g, $field.val());
|
|
556
557
|
}
|
|
557
558
|
if (requiresName) {
|
|
558
|
-
|
|
559
|
-
name = $label.length === 1
|
|
560
|
-
? $label.text()
|
|
561
|
-
: $field.prop('placeholder') || settings.text.unspecifiedField;
|
|
562
|
-
prompt = prompt.replace(/{name}/g, name);
|
|
559
|
+
prompt = prompt.replace(/{name}/g, module.get.fieldLabel($field));
|
|
563
560
|
}
|
|
564
561
|
prompt = prompt.replace(/{identifier}/g, field.identifier);
|
|
565
562
|
prompt = prompt.replace(/{ruleValue}/g, ancillary);
|
|
@@ -599,7 +596,7 @@
|
|
|
599
596
|
// refresh selector cache
|
|
600
597
|
(instance || module).refresh();
|
|
601
598
|
},
|
|
602
|
-
field: function (identifier) {
|
|
599
|
+
field: function (identifier, strict) {
|
|
603
600
|
module.verbose('Finding field with identifier', identifier);
|
|
604
601
|
identifier = module.escape.string(identifier);
|
|
605
602
|
var t;
|
|
@@ -621,18 +618,29 @@
|
|
|
621
618
|
}
|
|
622
619
|
module.error(error.noField.replace('{identifier}', identifier));
|
|
623
620
|
|
|
624
|
-
return $('<input/>');
|
|
621
|
+
return strict ? $() : $('<input/>');
|
|
625
622
|
},
|
|
626
|
-
fields: function (fields) {
|
|
623
|
+
fields: function (fields, strict) {
|
|
627
624
|
var
|
|
628
625
|
$fields = $()
|
|
629
626
|
;
|
|
630
627
|
$.each(fields, function (index, name) {
|
|
631
|
-
$fields = $fields.add(module.get.field(name));
|
|
628
|
+
$fields = $fields.add(module.get.field(name, strict));
|
|
632
629
|
});
|
|
633
630
|
|
|
634
631
|
return $fields;
|
|
635
632
|
},
|
|
633
|
+
fieldLabel: function (identifier, useIdAsFallback) {
|
|
634
|
+
var $field = typeof identifier === 'string'
|
|
635
|
+
? module.get.field(identifier)
|
|
636
|
+
: identifier,
|
|
637
|
+
$label = $field.closest(selector.group).find('label').eq(0)
|
|
638
|
+
;
|
|
639
|
+
|
|
640
|
+
return $label.length === 1
|
|
641
|
+
? $label.text()
|
|
642
|
+
: $field.prop('placeholder') || (useIdAsFallback ? identifier : settings.text.unspecifiedField);
|
|
643
|
+
},
|
|
636
644
|
validation: function ($field) {
|
|
637
645
|
var
|
|
638
646
|
fieldValidation,
|
|
@@ -655,20 +663,22 @@
|
|
|
655
663
|
|
|
656
664
|
return fieldValidation || false;
|
|
657
665
|
},
|
|
658
|
-
value: function (field) {
|
|
666
|
+
value: function (field, strict) {
|
|
659
667
|
var
|
|
660
668
|
fields = [],
|
|
661
|
-
results
|
|
669
|
+
results,
|
|
670
|
+
resultKeys
|
|
662
671
|
;
|
|
663
672
|
fields.push(field);
|
|
664
|
-
results = module.get.values.call(element, fields);
|
|
673
|
+
results = module.get.values.call(element, fields, strict);
|
|
674
|
+
resultKeys = Object.keys(results);
|
|
665
675
|
|
|
666
|
-
return results[
|
|
676
|
+
return resultKeys.length > 0 ? results[resultKeys[0]] : undefined;
|
|
667
677
|
},
|
|
668
|
-
values: function (fields) {
|
|
678
|
+
values: function (fields, strict) {
|
|
669
679
|
var
|
|
670
|
-
$fields = Array.isArray(fields)
|
|
671
|
-
? module.get.fields(fields)
|
|
680
|
+
$fields = Array.isArray(fields) && fields.length > 0
|
|
681
|
+
? module.get.fields(fields, strict)
|
|
672
682
|
: $field,
|
|
673
683
|
values = {}
|
|
674
684
|
;
|
|
@@ -786,16 +796,8 @@
|
|
|
786
796
|
|
|
787
797
|
field: function (identifier) {
|
|
788
798
|
module.verbose('Checking for existence of a field with identifier', identifier);
|
|
789
|
-
identifier = module.escape.string(identifier);
|
|
790
|
-
if (typeof identifier !== 'string') {
|
|
791
|
-
module.error(error.identifier, identifier);
|
|
792
|
-
}
|
|
793
799
|
|
|
794
|
-
return (
|
|
795
|
-
$field.filter('#' + identifier).length > 0
|
|
796
|
-
|| $field.filter('[name="' + identifier + '"]').length > 0
|
|
797
|
-
|| $field.filter('[data-' + metadata.validate + '="' + identifier + '"]').length > 0
|
|
798
|
-
);
|
|
800
|
+
return module.get.field(identifier, true).length > 0;
|
|
799
801
|
},
|
|
800
802
|
|
|
801
803
|
},
|
|
@@ -819,6 +821,22 @@
|
|
|
819
821
|
},
|
|
820
822
|
},
|
|
821
823
|
|
|
824
|
+
checkErrors: function (errors, internal) {
|
|
825
|
+
if (!errors || errors.length === 0) {
|
|
826
|
+
if (!internal) {
|
|
827
|
+
module.error(settings.error.noErrorMessage);
|
|
828
|
+
}
|
|
829
|
+
|
|
830
|
+
return false;
|
|
831
|
+
}
|
|
832
|
+
if (!internal) {
|
|
833
|
+
errors = typeof errors === 'string'
|
|
834
|
+
? [errors]
|
|
835
|
+
: errors;
|
|
836
|
+
}
|
|
837
|
+
|
|
838
|
+
return errors;
|
|
839
|
+
},
|
|
822
840
|
add: {
|
|
823
841
|
// alias
|
|
824
842
|
rule: function (name, rules) {
|
|
@@ -862,15 +880,16 @@
|
|
|
862
880
|
module.refreshEvents();
|
|
863
881
|
},
|
|
864
882
|
prompt: function (identifier, errors, internal) {
|
|
883
|
+
errors = module.checkErrors(errors);
|
|
884
|
+
if (errors === false) {
|
|
885
|
+
return;
|
|
886
|
+
}
|
|
865
887
|
var
|
|
866
888
|
$field = module.get.field(identifier),
|
|
867
889
|
$fieldGroup = $field.closest($group),
|
|
868
890
|
$prompt = $fieldGroup.children(selector.prompt),
|
|
869
891
|
promptExists = $prompt.length > 0
|
|
870
892
|
;
|
|
871
|
-
errors = typeof errors === 'string'
|
|
872
|
-
? [errors]
|
|
873
|
-
: errors;
|
|
874
893
|
module.verbose('Adding field error state', identifier);
|
|
875
894
|
if (!internal) {
|
|
876
895
|
$fieldGroup
|
|
@@ -888,7 +907,7 @@
|
|
|
888
907
|
.html(settings.templates.prompt(errors))
|
|
889
908
|
;
|
|
890
909
|
if (!promptExists) {
|
|
891
|
-
if (settings.transition && module.can.useElement('transition')
|
|
910
|
+
if (settings.transition && module.can.useElement('transition')) {
|
|
892
911
|
module.verbose('Displaying error with css transition', settings.transition);
|
|
893
912
|
$prompt.transition(settings.transition + ' in', settings.duration);
|
|
894
913
|
} else {
|
|
@@ -903,11 +922,40 @@
|
|
|
903
922
|
}
|
|
904
923
|
},
|
|
905
924
|
errors: function (errors) {
|
|
925
|
+
errors = module.checkErrors(errors);
|
|
926
|
+
if (errors === false) {
|
|
927
|
+
return;
|
|
928
|
+
}
|
|
906
929
|
module.debug('Adding form error messages', errors);
|
|
907
930
|
module.set.error();
|
|
908
|
-
|
|
909
|
-
|
|
931
|
+
var customErrors = [],
|
|
932
|
+
tempErrors
|
|
910
933
|
;
|
|
934
|
+
if ($.isPlainObject(errors)) {
|
|
935
|
+
$.each(Object.keys(errors), function (i, id) {
|
|
936
|
+
if (module.checkErrors(errors[id], true) !== false) {
|
|
937
|
+
if (settings.inline) {
|
|
938
|
+
module.add.prompt(id, errors[id]);
|
|
939
|
+
} else {
|
|
940
|
+
tempErrors = module.checkErrors(errors[id]);
|
|
941
|
+
if (tempErrors !== false) {
|
|
942
|
+
$.each(tempErrors, function (index, tempError) {
|
|
943
|
+
customErrors.push(settings.prompt.addErrors
|
|
944
|
+
.replace(/{name}/g, module.get.fieldLabel(id))
|
|
945
|
+
.replace(/{error}/g, tempError));
|
|
946
|
+
});
|
|
947
|
+
}
|
|
948
|
+
}
|
|
949
|
+
}
|
|
950
|
+
});
|
|
951
|
+
} else {
|
|
952
|
+
customErrors = errors;
|
|
953
|
+
}
|
|
954
|
+
if (customErrors.length > 0) {
|
|
955
|
+
$message
|
|
956
|
+
.html(settings.templates.error(customErrors))
|
|
957
|
+
;
|
|
958
|
+
}
|
|
911
959
|
},
|
|
912
960
|
},
|
|
913
961
|
|
|
@@ -984,7 +1032,7 @@
|
|
|
984
1032
|
;
|
|
985
1033
|
if (settings.inline && $prompt.is(':visible')) {
|
|
986
1034
|
module.verbose('Removing prompt for field', identifier);
|
|
987
|
-
if (settings.transition && module.can.useElement('transition')
|
|
1035
|
+
if (settings.transition && module.can.useElement('transition')) {
|
|
988
1036
|
$prompt.transition(settings.transition + ' out', settings.duration, function () {
|
|
989
1037
|
$prompt.remove();
|
|
990
1038
|
});
|
|
@@ -1012,15 +1060,19 @@
|
|
|
1012
1060
|
$el = $(el),
|
|
1013
1061
|
$parent = $el.parent(),
|
|
1014
1062
|
isCheckbox = $el.filter(selector.checkbox).length > 0,
|
|
1015
|
-
isDropdown = $parent.is(selector.uiDropdown) && module.can.useElement('dropdown'),
|
|
1016
|
-
$calendar
|
|
1017
|
-
isCalendar
|
|
1063
|
+
isDropdown = ($parent.is(selector.uiDropdown) || $el.is(selector.uiDropdown)) && module.can.useElement('dropdown'),
|
|
1064
|
+
$calendar = $el.closest(selector.uiCalendar),
|
|
1065
|
+
isCalendar = $calendar.length > 0 && module.can.useElement('calendar'),
|
|
1018
1066
|
value = isCheckbox
|
|
1019
1067
|
? $el.is(':checked')
|
|
1020
1068
|
: $el.val()
|
|
1021
1069
|
;
|
|
1022
1070
|
if (isDropdown) {
|
|
1023
|
-
$parent.
|
|
1071
|
+
if ($parent.is(selector.uiDropdown)) {
|
|
1072
|
+
$parent.dropdown('save defaults');
|
|
1073
|
+
} else {
|
|
1074
|
+
$el.dropdown('save defaults');
|
|
1075
|
+
}
|
|
1024
1076
|
} else if (isCalendar) {
|
|
1025
1077
|
$calendar.calendar('refresh');
|
|
1026
1078
|
}
|
|
@@ -1320,7 +1372,7 @@
|
|
|
1320
1372
|
? String(value + '').trim()
|
|
1321
1373
|
: String(value + ''));
|
|
1322
1374
|
|
|
1323
|
-
return ruleFunction.call(field, value, ancillary,
|
|
1375
|
+
return ruleFunction.call(field, value, ancillary, module);
|
|
1324
1376
|
}
|
|
1325
1377
|
;
|
|
1326
1378
|
if (!isFunction(ruleFunction)) {
|
|
@@ -1581,17 +1633,19 @@
|
|
|
1581
1633
|
notExactly: '{name} cannot be set to exactly "{ruleValue}"',
|
|
1582
1634
|
contain: '{name} must contain "{ruleValue}"',
|
|
1583
1635
|
containExactly: '{name} must contain exactly "{ruleValue}"',
|
|
1584
|
-
doesntContain: '{name} cannot contain
|
|
1636
|
+
doesntContain: '{name} cannot contain "{ruleValue}"',
|
|
1585
1637
|
doesntContainExactly: '{name} cannot contain exactly "{ruleValue}"',
|
|
1586
1638
|
minLength: '{name} must be at least {ruleValue} characters',
|
|
1587
1639
|
exactLength: '{name} must be exactly {ruleValue} characters',
|
|
1588
1640
|
maxLength: '{name} cannot be longer than {ruleValue} characters',
|
|
1641
|
+
size: '{name} must have a length between {min} and {max} characters',
|
|
1589
1642
|
match: '{name} must match {ruleValue} field',
|
|
1590
1643
|
different: '{name} must have a different value than {ruleValue} field',
|
|
1591
1644
|
creditCard: '{name} must be a valid credit card number',
|
|
1592
1645
|
minCount: '{name} must have at least {ruleValue} choices',
|
|
1593
1646
|
exactCount: '{name} must have exactly {ruleValue} choices',
|
|
1594
1647
|
maxCount: '{name} must have {ruleValue} or less choices',
|
|
1648
|
+
addErrors: '{name}: {error}',
|
|
1595
1649
|
},
|
|
1596
1650
|
|
|
1597
1651
|
selector: {
|
|
@@ -1620,11 +1674,11 @@
|
|
|
1620
1674
|
},
|
|
1621
1675
|
|
|
1622
1676
|
error: {
|
|
1623
|
-
identifier: 'You must specify a string identifier for each field',
|
|
1624
1677
|
method: 'The method you called is not defined.',
|
|
1625
1678
|
noRule: 'There is no rule matching the one you specified',
|
|
1626
1679
|
noField: 'Field identifier {identifier} not found',
|
|
1627
1680
|
noElement: 'This module requires ui {element}',
|
|
1681
|
+
noErrorMessage: 'No error message provided',
|
|
1628
1682
|
},
|
|
1629
1683
|
|
|
1630
1684
|
templates: {
|
|
@@ -1746,7 +1800,7 @@
|
|
|
1746
1800
|
integer: function (value, range) {
|
|
1747
1801
|
return $.fn.form.settings.rules.range(value, range, 'integer');
|
|
1748
1802
|
},
|
|
1749
|
-
range: function (value, range, regExp) {
|
|
1803
|
+
range: function (value, range, regExp, testLength) {
|
|
1750
1804
|
if (typeof regExp === 'string') {
|
|
1751
1805
|
regExp = $.fn.form.settings.regExp[regExp];
|
|
1752
1806
|
}
|
|
@@ -1775,6 +1829,9 @@
|
|
|
1775
1829
|
max = parts[1] - 0;
|
|
1776
1830
|
}
|
|
1777
1831
|
}
|
|
1832
|
+
if (testLength) {
|
|
1833
|
+
value = value.length;
|
|
1834
|
+
}
|
|
1778
1835
|
|
|
1779
1836
|
return (
|
|
1780
1837
|
regExp.test(value)
|
|
@@ -1860,51 +1917,27 @@
|
|
|
1860
1917
|
},
|
|
1861
1918
|
|
|
1862
1919
|
// is at least string length
|
|
1863
|
-
minLength: function (value,
|
|
1864
|
-
return value
|
|
1865
|
-
? value.length >= requiredLength
|
|
1866
|
-
: false;
|
|
1920
|
+
minLength: function (value, minLength) {
|
|
1921
|
+
return $.fn.form.settings.rules.range(value, minLength + '..', 'integer', true);
|
|
1867
1922
|
},
|
|
1868
1923
|
|
|
1869
1924
|
// is exactly length
|
|
1870
1925
|
exactLength: function (value, requiredLength) {
|
|
1871
|
-
return value
|
|
1872
|
-
? value.length === Number(requiredLength)
|
|
1873
|
-
: false;
|
|
1926
|
+
return $.fn.form.settings.rules.range(value, requiredLength + '..' + requiredLength, 'integer', true);
|
|
1874
1927
|
},
|
|
1875
1928
|
|
|
1876
1929
|
// is less than length
|
|
1877
1930
|
maxLength: function (value, maxLength) {
|
|
1878
|
-
return value
|
|
1879
|
-
|
|
1880
|
-
|
|
1931
|
+
return $.fn.form.settings.rules.range(value, '..' + maxLength, 'integer', true);
|
|
1932
|
+
},
|
|
1933
|
+
|
|
1934
|
+
size: function (value, range) {
|
|
1935
|
+
return $.fn.form.settings.rules.range(value, range, 'integer', true);
|
|
1881
1936
|
},
|
|
1882
1937
|
|
|
1883
1938
|
// matches another field
|
|
1884
|
-
match: function (value, identifier,
|
|
1885
|
-
var
|
|
1886
|
-
matchingValue,
|
|
1887
|
-
matchingElement
|
|
1888
|
-
;
|
|
1889
|
-
matchingElement = $module.find('[data-validate="' + identifier + '"]');
|
|
1890
|
-
if (matchingElement.length > 0) {
|
|
1891
|
-
matchingValue = matchingElement.val();
|
|
1892
|
-
} else {
|
|
1893
|
-
matchingElement = $module.find('#' + identifier);
|
|
1894
|
-
if (matchingElement.length > 0) {
|
|
1895
|
-
matchingValue = matchingElement.val();
|
|
1896
|
-
} else {
|
|
1897
|
-
matchingElement = $module.find('[name="' + identifier + '"]');
|
|
1898
|
-
if (matchingElement.length > 0) {
|
|
1899
|
-
matchingValue = matchingElement.val();
|
|
1900
|
-
} else {
|
|
1901
|
-
matchingElement = $module.find('[name="' + identifier + '[]"]');
|
|
1902
|
-
if (matchingElement.length > 0) {
|
|
1903
|
-
matchingValue = matchingElement;
|
|
1904
|
-
}
|
|
1905
|
-
}
|
|
1906
|
-
}
|
|
1907
|
-
}
|
|
1939
|
+
match: function (value, identifier, module) {
|
|
1940
|
+
var matchingValue = module.get.value(identifier, true);
|
|
1908
1941
|
|
|
1909
1942
|
return matchingValue !== undefined
|
|
1910
1943
|
? value.toString() === matchingValue.toString()
|
|
@@ -1912,31 +1945,8 @@
|
|
|
1912
1945
|
},
|
|
1913
1946
|
|
|
1914
1947
|
// different than another field
|
|
1915
|
-
different: function (value, identifier,
|
|
1916
|
-
|
|
1917
|
-
var
|
|
1918
|
-
matchingValue,
|
|
1919
|
-
matchingElement
|
|
1920
|
-
;
|
|
1921
|
-
matchingElement = $module.find('[data-validate="' + identifier + '"]');
|
|
1922
|
-
if (matchingElement.length > 0) {
|
|
1923
|
-
matchingValue = matchingElement.val();
|
|
1924
|
-
} else {
|
|
1925
|
-
matchingElement = $module.find('#' + identifier);
|
|
1926
|
-
if (matchingElement.length > 0) {
|
|
1927
|
-
matchingValue = matchingElement.val();
|
|
1928
|
-
} else {
|
|
1929
|
-
matchingElement = $module.find('[name="' + identifier + '"]');
|
|
1930
|
-
if (matchingElement.length > 0) {
|
|
1931
|
-
matchingValue = matchingElement.val();
|
|
1932
|
-
} else {
|
|
1933
|
-
matchingElement = $module.find('[name="' + identifier + '[]"]');
|
|
1934
|
-
if (matchingElement.length > 0) {
|
|
1935
|
-
matchingValue = matchingElement;
|
|
1936
|
-
}
|
|
1937
|
-
}
|
|
1938
|
-
}
|
|
1939
|
-
}
|
|
1948
|
+
different: function (value, identifier, module) {
|
|
1949
|
+
var matchingValue = module.get.value(identifier, true);
|
|
1940
1950
|
|
|
1941
1951
|
return matchingValue !== undefined
|
|
1942
1952
|
? value.toString() !== matchingValue.toString()
|
|
@@ -82,6 +82,7 @@
|
|
|
82
82
|
elementEventNamespace,
|
|
83
83
|
id,
|
|
84
84
|
observer,
|
|
85
|
+
observeAttributes = false,
|
|
85
86
|
module
|
|
86
87
|
;
|
|
87
88
|
module = {
|
|
@@ -265,7 +266,7 @@
|
|
|
265
266
|
;
|
|
266
267
|
mutations.every(function (mutation) {
|
|
267
268
|
if (mutation.type === 'attributes') {
|
|
268
|
-
if (mutation.attributeName === 'disabled' || $(mutation.target).find(':input').addBack(':input')) {
|
|
269
|
+
if (observeAttributes && (mutation.attributeName === 'disabled' || $(mutation.target).find(':input').addBack(':input').length > 0)) {
|
|
269
270
|
shouldRefreshInputs = true;
|
|
270
271
|
}
|
|
271
272
|
} else {
|
|
@@ -324,10 +325,11 @@
|
|
|
324
325
|
$inputs = $module.find('a[href], [tabindex], :input:enabled').filter(':visible').filter(function () {
|
|
325
326
|
return $(this).closest('.disabled').length === 0;
|
|
326
327
|
});
|
|
327
|
-
$module.removeAttr('tabindex');
|
|
328
328
|
if ($inputs.length === 0) {
|
|
329
329
|
$inputs = $module;
|
|
330
330
|
$module.attr('tabindex', -1);
|
|
331
|
+
} else {
|
|
332
|
+
$module.removeAttr('tabindex');
|
|
331
333
|
}
|
|
332
334
|
$inputs.first()
|
|
333
335
|
.on('keydown' + elementEventNamespace, module.event.inputKeyDown.first)
|
|
@@ -604,8 +606,9 @@
|
|
|
604
606
|
$module.detach().appendTo($dimmer);
|
|
605
607
|
}
|
|
606
608
|
}
|
|
607
|
-
if (settings.transition && $.fn.transition !== undefined
|
|
609
|
+
if (settings.transition && $.fn.transition !== undefined) {
|
|
608
610
|
module.debug('Showing modal with css animations');
|
|
611
|
+
module.set.observeAttributes(false);
|
|
609
612
|
$module
|
|
610
613
|
.transition({
|
|
611
614
|
debug: settings.debug,
|
|
@@ -623,6 +626,7 @@
|
|
|
623
626
|
module.save.focus();
|
|
624
627
|
module.set.active();
|
|
625
628
|
module.refreshInputs();
|
|
629
|
+
requestAnimationFrame(module.set.observeAttributes);
|
|
626
630
|
callback();
|
|
627
631
|
},
|
|
628
632
|
})
|
|
@@ -652,8 +656,9 @@
|
|
|
652
656
|
|
|
653
657
|
if (module.is.animating() || module.is.active()) {
|
|
654
658
|
module.debug('Hiding modal');
|
|
655
|
-
if (settings.transition && $.fn.transition !== undefined
|
|
659
|
+
if (settings.transition && $.fn.transition !== undefined) {
|
|
656
660
|
module.remove.active();
|
|
661
|
+
module.set.observeAttributes(false);
|
|
657
662
|
$module
|
|
658
663
|
.transition({
|
|
659
664
|
debug: settings.debug,
|
|
@@ -673,6 +678,7 @@
|
|
|
673
678
|
},
|
|
674
679
|
onComplete: function () {
|
|
675
680
|
module.unbind.scrollLock();
|
|
681
|
+
module.remove.active();
|
|
676
682
|
if (settings.allowMultiple) {
|
|
677
683
|
$previousModal.addClass(className.front);
|
|
678
684
|
$module.removeClass(className.front);
|
|
@@ -988,9 +994,7 @@
|
|
|
988
994
|
return module.cache.isIE;
|
|
989
995
|
},
|
|
990
996
|
animating: function () {
|
|
991
|
-
return $module.transition('is
|
|
992
|
-
? $module.transition('is animating')
|
|
993
|
-
: $module.is(':visible');
|
|
997
|
+
return $module.transition('is animating');
|
|
994
998
|
},
|
|
995
999
|
scrolling: function () {
|
|
996
1000
|
return $dimmable.hasClass(className.scrolling);
|
|
@@ -1033,6 +1037,9 @@
|
|
|
1033
1037
|
},
|
|
1034
1038
|
|
|
1035
1039
|
set: {
|
|
1040
|
+
observeAttributes: function (state) {
|
|
1041
|
+
observeAttributes = state !== false;
|
|
1042
|
+
},
|
|
1036
1043
|
autofocus: function () {
|
|
1037
1044
|
var
|
|
1038
1045
|
$autofocus = $inputs.filter('[autofocus]'),
|
|
@@ -125,9 +125,9 @@
|
|
|
125
125
|
}
|
|
126
126
|
}
|
|
127
127
|
if (settings.popup) {
|
|
128
|
-
|
|
128
|
+
module.set.invisible();
|
|
129
129
|
$offsetParent = module.get.offsetParent();
|
|
130
|
-
|
|
130
|
+
module.remove.invisible();
|
|
131
131
|
if (settings.movePopup && module.has.popup() && module.get.offsetParent($popup)[0] !== $offsetParent[0]) {
|
|
132
132
|
module.debug('Moving popup to the same offset parent as target');
|
|
133
133
|
$popup
|
|
@@ -414,7 +414,7 @@
|
|
|
414
414
|
animate: {
|
|
415
415
|
show: function (callback) {
|
|
416
416
|
callback = isFunction(callback) ? callback : function () {};
|
|
417
|
-
if (settings.transition && module.can.useElement('transition')
|
|
417
|
+
if (settings.transition && module.can.useElement('transition')) {
|
|
418
418
|
module.set.visible();
|
|
419
419
|
$popup
|
|
420
420
|
.transition({
|
|
@@ -436,7 +436,7 @@
|
|
|
436
436
|
hide: function (callback) {
|
|
437
437
|
callback = isFunction(callback) ? callback : function () {};
|
|
438
438
|
module.debug('Hiding pop-up');
|
|
439
|
-
if (settings.transition && $.fn.transition !== undefined
|
|
439
|
+
if (settings.transition && $.fn.transition !== undefined) {
|
|
440
440
|
$popup
|
|
441
441
|
.transition({
|
|
442
442
|
animation: (settings.transition.hideMethod || settings.transition) + ' out',
|
|
@@ -901,8 +901,8 @@
|
|
|
901
901
|
.css(positioning)
|
|
902
902
|
.removeClass(className.position)
|
|
903
903
|
.addClass(position)
|
|
904
|
-
.addClass(className.loading)
|
|
905
904
|
;
|
|
905
|
+
module.set.invisible();
|
|
906
906
|
|
|
907
907
|
popupOffset = module.get.popupOffset();
|
|
908
908
|
|
|
@@ -926,7 +926,7 @@
|
|
|
926
926
|
module.debug('Popup could not find a position to display', $popup);
|
|
927
927
|
module.error(error.cannotPlace, element);
|
|
928
928
|
module.remove.attempts();
|
|
929
|
-
module.remove.
|
|
929
|
+
module.remove.invisible();
|
|
930
930
|
module.reset();
|
|
931
931
|
settings.onUnplaceable.call($popup, element);
|
|
932
932
|
|
|
@@ -935,7 +935,7 @@
|
|
|
935
935
|
}
|
|
936
936
|
module.debug('Position is on stage', position);
|
|
937
937
|
module.remove.attempts();
|
|
938
|
-
module.remove.
|
|
938
|
+
module.remove.invisible();
|
|
939
939
|
if (settings.setFluidWidth && module.is.fluid()) {
|
|
940
940
|
module.set.fluidWidth(calculations);
|
|
941
941
|
}
|
|
@@ -949,6 +949,14 @@
|
|
|
949
949
|
$popup.css('width', calculations.container.width);
|
|
950
950
|
},
|
|
951
951
|
|
|
952
|
+
loading: function () {
|
|
953
|
+
$popup.addClass(className.loading);
|
|
954
|
+
},
|
|
955
|
+
|
|
956
|
+
invisible: function () {
|
|
957
|
+
$popup.addClass(className.invisible);
|
|
958
|
+
},
|
|
959
|
+
|
|
952
960
|
variation: function (variation) {
|
|
953
961
|
variation = variation || module.get.variation();
|
|
954
962
|
if (variation && module.has.popup()) {
|
|
@@ -966,6 +974,9 @@
|
|
|
966
974
|
loading: function () {
|
|
967
975
|
$popup.removeClass(className.loading);
|
|
968
976
|
},
|
|
977
|
+
invisible: function () {
|
|
978
|
+
$popup.removeClass(className.invisible);
|
|
979
|
+
},
|
|
969
980
|
variation: function (variation) {
|
|
970
981
|
variation = variation || module.get.variation();
|
|
971
982
|
if (variation) {
|
|
@@ -1475,6 +1486,7 @@
|
|
|
1475
1486
|
basic: 'basic',
|
|
1476
1487
|
animating: 'animating',
|
|
1477
1488
|
dropdown: 'dropdown',
|
|
1489
|
+
invisible: 'invisible',
|
|
1478
1490
|
fluid: 'fluid',
|
|
1479
1491
|
loading: 'loading',
|
|
1480
1492
|
popup: 'ui popup',
|