webshims-rails 0.4.6 → 0.4.7
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/webshims-rails/version.rb +2 -2
- data/vendor/assets/javascripts/webshims/extras/mousepress.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/extras/mousepress.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/polyfiller.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/1.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/10.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/11.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/12.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/13.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/14.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/15.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/16.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/17.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/18.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/19.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/2.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/20.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/21.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/22.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/23.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/24.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/25.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/26.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/27.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/3.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/4.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/5.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/59.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/6.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/7.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/8.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/9.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/dom-extend.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/es5.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/form-core.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/form-datalist.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/form-number-date-ui.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/form-shim-extend.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/geolocation.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/json-storage.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-core.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-jaris.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-swf.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-yt.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/track-ui.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/track.js +1 -1
- data/vendor/assets/javascripts/webshims/polyfiller.js +10 -7
- data/vendor/assets/javascripts/webshims/shims/combos/1.js +51 -48
- data/vendor/assets/javascripts/webshims/shims/combos/10.js +126 -105
- data/vendor/assets/javascripts/webshims/shims/combos/11.js +50 -47
- data/vendor/assets/javascripts/webshims/shims/combos/12.js +97 -86
- data/vendor/assets/javascripts/webshims/shims/combos/13.js +49 -45
- data/vendor/assets/javascripts/webshims/shims/combos/14.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/combos/15.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/combos/16.js +168 -155
- data/vendor/assets/javascripts/webshims/shims/combos/17.js +168 -155
- data/vendor/assets/javascripts/webshims/shims/combos/18.js +9 -24
- data/vendor/assets/javascripts/webshims/shims/combos/19.js +121 -116
- data/vendor/assets/javascripts/webshims/shims/combos/2.js +82 -93
- data/vendor/assets/javascripts/webshims/shims/combos/20.js +75 -57
- data/vendor/assets/javascripts/webshims/shims/combos/21.js +11 -24
- data/vendor/assets/javascripts/webshims/shims/combos/22.js +77 -60
- data/vendor/assets/javascripts/webshims/shims/combos/23.js +59 -65
- data/vendor/assets/javascripts/webshims/shims/combos/24.js +169 -157
- data/vendor/assets/javascripts/webshims/shims/combos/25.js +99 -87
- data/vendor/assets/javascripts/webshims/shims/combos/26.js +170 -156
- data/vendor/assets/javascripts/webshims/shims/combos/27.js +128 -106
- data/vendor/assets/javascripts/webshims/shims/combos/3.js +83 -95
- data/vendor/assets/javascripts/webshims/shims/combos/4.js +71 -69
- data/vendor/assets/javascripts/webshims/shims/combos/5.js +71 -69
- data/vendor/assets/javascripts/webshims/shims/combos/59.js +72 -71
- data/vendor/assets/javascripts/webshims/shims/combos/6.js +8 -22
- data/vendor/assets/javascripts/webshims/shims/combos/7.js +8 -22
- data/vendor/assets/javascripts/webshims/shims/combos/8.js +97 -86
- data/vendor/assets/javascripts/webshims/shims/combos/9.js +124 -102
- data/vendor/assets/javascripts/webshims/shims/dom-extend.js +49 -45
- data/vendor/assets/javascripts/webshims/shims/es5.js +2 -3
- data/vendor/assets/javascripts/webshims/shims/form-core.js +72 -70
- data/vendor/assets/javascripts/webshims/shims/form-datalist.js +1 -2
- data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +8 -22
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +11 -24
- data/vendor/assets/javascripts/webshims/shims/geolocation.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/json-storage.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +48 -41
- data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +26 -15
- data/vendor/assets/javascripts/webshims/shims/mediaelement-swf.js +27 -16
- data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +18 -6
- data/vendor/assets/javascripts/webshims/shims/track-ui.js +2 -1
- data/vendor/assets/javascripts/webshims/shims/track.js +2 -1
- metadata +2 -2
@@ -16,6 +16,11 @@ jQuery.webshims.register('dom-extend', function($, webshims, window, document, u
|
|
16
16
|
var singleVal = function(elem, name, val, pass, _argless){
|
17
17
|
return (_argless) ? oldVal.call($(elem)) : oldVal.call($(elem), val);
|
18
18
|
};
|
19
|
+
|
20
|
+
$.fn.onTrigger = function(evt, fn){
|
21
|
+
return this.on(evt, fn).each(fn);
|
22
|
+
};
|
23
|
+
|
19
24
|
$.fn.val = function(val){
|
20
25
|
var elem = this[0];
|
21
26
|
if(arguments.length && val == null){
|
@@ -210,14 +215,14 @@ jQuery.webshims.register('dom-extend', function($, webshims, window, document, u
|
|
210
215
|
});
|
211
216
|
|
212
217
|
//see also: https://github.com/lojjic/PIE/issues/40 | https://prototype.lighthouseapp.com/projects/8886/tickets/1107-ie8-fatal-crash-when-prototypejs-is-loaded-with-rounded-cornershtc
|
213
|
-
var isExtendNativeSave =
|
218
|
+
var isExtendNativeSave = Modernizr.ES5;
|
214
219
|
var extendNativeValue = (function(){
|
215
220
|
var UNKNOWN = webshims.getPrototypeOf(document.createElement('foobar'));
|
216
221
|
var has = Object.prototype.hasOwnProperty;
|
217
222
|
return function(nodeName, prop, desc){
|
218
|
-
var elem
|
219
|
-
var elemProto
|
220
|
-
if( isExtendNativeSave && elemProto && UNKNOWN !== elemProto && ( !elem[prop] || !has.call(elem, prop) ) ){
|
223
|
+
var elem;
|
224
|
+
var elemProto;
|
225
|
+
if( isExtendNativeSave && (elem = document.createElement(nodeName)) && (elemProto = webshims.getPrototypeOf(elem)) && UNKNOWN !== elemProto && ( !elem[prop] || !has.call(elem, prop) ) ){
|
221
226
|
var sup = elem[prop];
|
222
227
|
desc._supvalue = function(){
|
223
228
|
if(sup && sup.apply){
|
@@ -417,7 +422,7 @@ jQuery.webshims.register('dom-extend', function($, webshims, window, document, u
|
|
417
422
|
docObserve.width = docObserve.getWidth();
|
418
423
|
|
419
424
|
}
|
420
|
-
|
425
|
+
$(document).triggerHandler('updateshadowdom');
|
421
426
|
}, (e.type == 'resize') ? 50 : 9);
|
422
427
|
},
|
423
428
|
_create: function(){
|
@@ -461,7 +466,6 @@ jQuery.webshims.register('dom-extend', function($, webshims, window, document, u
|
|
461
466
|
};
|
462
467
|
|
463
468
|
|
464
|
-
$.event.customEvent.updateshadowdom = true;
|
465
469
|
webshims.docObserve = function(){
|
466
470
|
webshims.ready('DOM', function(){
|
467
471
|
docObserve.start();
|
@@ -905,52 +909,53 @@ jQuery.webshims.register('dom-extend', function($, webshims, window, document, u
|
|
905
909
|
});
|
906
910
|
//html5a11y
|
907
911
|
(function($, document){
|
908
|
-
|
909
|
-
if(
|
910
|
-
|
911
|
-
|
912
|
-
|
913
|
-
|
914
|
-
|
915
|
-
|
916
|
-
|
917
|
-
|
918
|
-
|
919
|
-
|
920
|
-
|
921
|
-
|
922
|
-
|
923
|
-
|
924
|
-
|
925
|
-
|
926
|
-
|
927
|
-
|
928
|
-
|
929
|
-
|
930
|
-
}
|
931
|
-
});
|
932
|
-
if (context === document) {
|
933
|
-
var header = document.getElementsByTagName('header')[0];
|
934
|
-
var footers = document.getElementsByTagName('footer');
|
935
|
-
var footerLen = footers.length;
|
936
|
-
if (header && !$(header).closest('section, article')[0]) {
|
937
|
-
addRole(header, 'banner');
|
938
|
-
}
|
939
|
-
if (!footerLen) {
|
940
|
-
return;
|
941
|
-
}
|
942
|
-
var footer = footers[footerLen - 1];
|
943
|
-
if (!$(footer).closest('section, article')[0]) {
|
944
|
-
addRole(footer, 'contentinfo');
|
945
|
-
}
|
912
|
+
//if we support basic styleing or do not support ARIA (assumed) abort
|
913
|
+
if(!Modernizr.localstorage || ('hidden' in document.createElement('a'))){return;}
|
914
|
+
|
915
|
+
var elemMappings = {
|
916
|
+
article: "article",
|
917
|
+
aside: "complementary",
|
918
|
+
section: "region",
|
919
|
+
nav: "navigation",
|
920
|
+
address: "contentinfo"
|
921
|
+
};
|
922
|
+
var addRole = function(elem, role){
|
923
|
+
var hasRole = elem.getAttribute('role');
|
924
|
+
if (!hasRole) {
|
925
|
+
elem.setAttribute('role', role);
|
926
|
+
}
|
927
|
+
};
|
928
|
+
|
929
|
+
$.webshims.addReady(function(context, contextElem){
|
930
|
+
$.each(elemMappings, function(name, role){
|
931
|
+
var elems = $(name, context).add(contextElem.filter(name));
|
932
|
+
for (var i = 0, len = elems.length; i < len; i++) {
|
933
|
+
addRole(elems[i], role);
|
946
934
|
}
|
947
935
|
});
|
948
|
-
|
936
|
+
if (context === document) {
|
937
|
+
var header = document.getElementsByTagName('header')[0];
|
938
|
+
var footers = document.getElementsByTagName('footer');
|
939
|
+
var footerLen = footers.length;
|
940
|
+
if (header && !$(header).closest('section, article')[0]) {
|
941
|
+
addRole(header, 'banner');
|
942
|
+
}
|
943
|
+
if (!footerLen) {
|
944
|
+
return;
|
945
|
+
}
|
946
|
+
var footer = footers[footerLen - 1];
|
947
|
+
if (!$(footer).closest('section, article')[0]) {
|
948
|
+
addRole(footer, 'contentinfo');
|
949
|
+
}
|
950
|
+
}
|
951
|
+
});
|
952
|
+
|
949
953
|
})(jQuery, document);
|
950
954
|
|
951
955
|
//additional tests for partial implementation of forms features
|
952
956
|
(function($){
|
953
957
|
"use strict";
|
958
|
+
var isWebkit = /webkit/i.test(navigator.userAgent);
|
954
959
|
var Modernizr = window.Modernizr;
|
955
960
|
var webshims = $.webshims;
|
956
961
|
var bugs = webshims.bugs;
|
@@ -993,80 +998,80 @@ jQuery.webshims.register('dom-extend', function($, webshims, window, document, u
|
|
993
998
|
|
994
999
|
if(!Modernizr.formvalidation || bugs.bustedValidity){
|
995
1000
|
testRequiredFind();
|
996
|
-
|
997
|
-
|
998
|
-
|
999
|
-
|
1000
|
-
webshims.capturingEvents(['input']);
|
1001
|
-
webshims.capturingEvents(['invalid'], true);
|
1002
|
-
|
1003
|
-
if(window.opera || window.testGoodWithFix){
|
1001
|
+
} else {
|
1002
|
+
//create delegatable events
|
1003
|
+
webshims.capturingEvents(['input']);
|
1004
|
+
webshims.capturingEvents(['invalid'], true);
|
1004
1005
|
|
1005
|
-
|
1006
|
-
|
1007
|
-
testRequiredFind();
|
1008
|
-
bugs.validationMessage = !(inputElem.prop('validationMessage'));
|
1009
|
-
|
1010
|
-
webshims.reTest(['form-native-extend', 'form-message']);
|
1011
|
-
|
1012
|
-
form.remove();
|
1006
|
+
if(window.opera || window.testGoodWithFix){
|
1013
1007
|
|
1014
|
-
|
1015
|
-
|
1016
|
-
|
1017
|
-
|
1018
|
-
|
1019
|
-
|
1020
|
-
|
1021
|
-
|
1008
|
+
form.appendTo('head');
|
1009
|
+
|
1010
|
+
testRequiredFind();
|
1011
|
+
bugs.validationMessage = !(inputElem.prop('validationMessage'));
|
1012
|
+
|
1013
|
+
webshims.reTest(['form-native-extend', 'form-message']);
|
1014
|
+
|
1015
|
+
form.remove();
|
1022
1016
|
|
1023
|
-
|
1024
|
-
|
1025
|
-
|
1026
|
-
|
1027
|
-
|
1028
|
-
|
1029
|
-
|
1030
|
-
|
1031
|
-
|
1032
|
-
|
1033
|
-
|
1034
|
-
|
1017
|
+
$(function(){
|
1018
|
+
onDomextend(function(){
|
1019
|
+
|
1020
|
+
//Opera shows native validation bubbles in case of input.checkValidity()
|
1021
|
+
// Opera 11.6/12 hasn't fixed this issue right, it's buggy
|
1022
|
+
var preventDefault = function(e){
|
1023
|
+
e.preventDefault();
|
1024
|
+
};
|
1025
|
+
|
1026
|
+
['form', 'input', 'textarea', 'select'].forEach(function(name){
|
1027
|
+
var desc = webshims.defineNodeNameProperty(name, 'checkValidity', {
|
1028
|
+
prop: {
|
1029
|
+
value: function(){
|
1030
|
+
if (!webshims.fromSubmit) {
|
1031
|
+
$(this).on('invalid.checkvalidity', preventDefault);
|
1032
|
+
}
|
1033
|
+
|
1034
|
+
webshims.fromCheckValidity = true;
|
1035
|
+
var ret = desc.prop._supvalue.apply(this, arguments);
|
1036
|
+
if (!webshims.fromSubmit) {
|
1037
|
+
$(this).unbind('invalid.checkvalidity', preventDefault);
|
1038
|
+
}
|
1039
|
+
webshims.fromCheckValidity = false;
|
1040
|
+
return ret;
|
1035
1041
|
}
|
1036
|
-
webshims.fromCheckValidity = false;
|
1037
|
-
return ret;
|
1038
1042
|
}
|
1039
|
-
}
|
1043
|
+
});
|
1040
1044
|
});
|
1045
|
+
|
1041
1046
|
});
|
1042
|
-
|
1043
1047
|
});
|
1044
|
-
}
|
1048
|
+
}
|
1049
|
+
|
1050
|
+
if(isWebkit && !webshims.bugs.bustedValidity){
|
1051
|
+
(function(){
|
1052
|
+
var elems = /^(?:textarea|input)$/i;
|
1053
|
+
var form = false;
|
1054
|
+
|
1055
|
+
document.addEventListener('contextmenu', function(e){
|
1056
|
+
if(elems.test( e.target.nodeName || '') && (form = e.target.form)){
|
1057
|
+
setTimeout(function(){
|
1058
|
+
form = false;
|
1059
|
+
}, 1);
|
1060
|
+
}
|
1061
|
+
}, false);
|
1062
|
+
|
1063
|
+
$(window).on('invalid', function(e){
|
1064
|
+
if(e.originalEvent && form && form == e.target.form){
|
1065
|
+
e.wrongWebkitInvalid = true;
|
1066
|
+
e.stopImmediatePropagation();
|
1067
|
+
}
|
1068
|
+
});
|
1069
|
+
|
1070
|
+
})();
|
1071
|
+
}
|
1045
1072
|
}
|
1046
1073
|
|
1047
|
-
|
1048
|
-
(function(){
|
1049
|
-
var elems = /^(?:textarea|input)$/i;
|
1050
|
-
var form = false;
|
1051
|
-
|
1052
|
-
document.addEventListener('contextmenu', function(e){
|
1053
|
-
if(elems.test( e.target.nodeName || '') && (form = e.target.form)){
|
1054
|
-
setTimeout(function(){
|
1055
|
-
form = false;
|
1056
|
-
}, 1);
|
1057
|
-
}
|
1058
|
-
}, false);
|
1059
|
-
|
1060
|
-
$(window).on('invalid', function(e){
|
1061
|
-
if(e.originalEvent && form && form == e.target.form){
|
1062
|
-
e.wrongWebkitInvalid = true;
|
1063
|
-
e.stopImmediatePropagation();
|
1064
|
-
}
|
1065
|
-
});
|
1066
|
-
|
1067
|
-
})();
|
1068
|
-
}
|
1069
|
-
})(jQuery);
|
1074
|
+
|
1070
1075
|
|
1071
1076
|
jQuery.webshims.register('form-core', function($, webshims, window, document, undefined, options){
|
1072
1077
|
"use strict";
|
@@ -1181,7 +1186,7 @@ jQuery.webshims.register('form-core', function($, webshims, window, document, un
|
|
1181
1186
|
return false;
|
1182
1187
|
};
|
1183
1188
|
|
1184
|
-
if(Modernizr.formvalidation &&
|
1189
|
+
if(Modernizr.formvalidation && isWebkit && !webshims.bugs.bustedValidity){
|
1185
1190
|
(function(){
|
1186
1191
|
var retriggerRadioValidity = function(){
|
1187
1192
|
var validity;
|
@@ -1360,7 +1365,7 @@ jQuery.webshims.register('form-core', function($, webshims, window, document, un
|
|
1360
1365
|
|
1361
1366
|
|
1362
1367
|
var setRoot = function(){
|
1363
|
-
webshims.scrollRoot = (
|
1368
|
+
webshims.scrollRoot = (isWebkit || document.compatMode == 'BackCompat') ?
|
1364
1369
|
$(document.body) :
|
1365
1370
|
$(document.documentElement)
|
1366
1371
|
;
|
@@ -1382,7 +1387,7 @@ jQuery.webshims.register('form-core', function($, webshims, window, document, un
|
|
1382
1387
|
|
1383
1388
|
/* some extra validation UI */
|
1384
1389
|
webshims.validityAlert = (function(){
|
1385
|
-
var alertElem =
|
1390
|
+
var alertElem = 'span';
|
1386
1391
|
var errorBubble;
|
1387
1392
|
var hideTimer = false;
|
1388
1393
|
var focusTimer = false;
|
@@ -1497,7 +1502,7 @@ jQuery.webshims.register('form-core', function($, webshims, window, document, un
|
|
1497
1502
|
errorBubble = api.errorBubble = $('<'+alertElem+' class="validity-alert-wrapper" role="alert"><span class="validity-alert"><span class="va-arrow"><span class="va-arrow-box"></span></span><span class="va-box"></span></span></'+alertElem+'>').css({position: 'absolute', display: 'none'});
|
1498
1503
|
webshims.ready('DOM', function(){
|
1499
1504
|
errorBubble.appendTo('body');
|
1500
|
-
if($.fn.bgIframe
|
1505
|
+
if($.fn.bgIframe){
|
1501
1506
|
errorBubble.bgIframe();
|
1502
1507
|
}
|
1503
1508
|
});
|
@@ -1577,8 +1582,9 @@ jQuery.webshims.register('form-core', function($, webshims, window, document, un
|
|
1577
1582
|
});
|
1578
1583
|
});
|
1579
1584
|
}
|
1580
|
-
|
1581
1585
|
});
|
1586
|
+
|
1587
|
+
})(jQuery);
|
1582
1588
|
jQuery.webshims.register('form-datalist', function($, webshims, window, document, undefined){
|
1583
1589
|
"use strict";
|
1584
1590
|
var doc = document;
|
@@ -1797,7 +1803,6 @@ jQuery.webshims.register('form-datalist', function($, webshims, window, document
|
|
1797
1803
|
range: 1,
|
1798
1804
|
date: 1
|
1799
1805
|
};
|
1800
|
-
var lteie6 = ($.browser.msie && parseInt($.browser.version, 10) < 7);
|
1801
1806
|
var globStoredOptions = {};
|
1802
1807
|
var getStoredOptions = function(name){
|
1803
1808
|
if(!name){return [];}
|
@@ -2081,7 +2086,7 @@ jQuery.webshims.register('form-datalist', function($, webshims, window, document
|
|
2081
2086
|
this.arrayOptions = allOptions;
|
2082
2087
|
this.shadowList.html('<div class="datalist-outer-box"><div class="datalist-box"><ul role="list">'+ list.join("\n") +'</ul></div></div>');
|
2083
2088
|
|
2084
|
-
if($.fn.bgIframe
|
2089
|
+
if($.fn.bgIframe){
|
2085
2090
|
this.shadowList.bgIframe();
|
2086
2091
|
}
|
2087
2092
|
|
@@ -1,6 +1,7 @@
|
|
1
1
|
//additional tests for partial implementation of forms features
|
2
2
|
(function($){
|
3
3
|
"use strict";
|
4
|
+
var isWebkit = /webkit/i.test(navigator.userAgent);
|
4
5
|
var Modernizr = window.Modernizr;
|
5
6
|
var webshims = $.webshims;
|
6
7
|
var bugs = webshims.bugs;
|
@@ -43,80 +44,80 @@
|
|
43
44
|
|
44
45
|
if(!Modernizr.formvalidation || bugs.bustedValidity){
|
45
46
|
testRequiredFind();
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
webshims.capturingEvents(['input']);
|
51
|
-
webshims.capturingEvents(['invalid'], true);
|
52
|
-
|
53
|
-
if(window.opera || window.testGoodWithFix){
|
54
|
-
|
55
|
-
form.appendTo('head');
|
56
|
-
|
57
|
-
testRequiredFind();
|
58
|
-
bugs.validationMessage = !(inputElem.prop('validationMessage'));
|
59
|
-
|
60
|
-
webshims.reTest(['form-native-extend', 'form-message']);
|
47
|
+
} else {
|
48
|
+
//create delegatable events
|
49
|
+
webshims.capturingEvents(['input']);
|
50
|
+
webshims.capturingEvents(['invalid'], true);
|
61
51
|
|
62
|
-
|
52
|
+
if(window.opera || window.testGoodWithFix){
|
63
53
|
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
54
|
+
form.appendTo('head');
|
55
|
+
|
56
|
+
testRequiredFind();
|
57
|
+
bugs.validationMessage = !(inputElem.prop('validationMessage'));
|
58
|
+
|
59
|
+
webshims.reTest(['form-native-extend', 'form-message']);
|
60
|
+
|
61
|
+
form.remove();
|
72
62
|
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
63
|
+
$(function(){
|
64
|
+
onDomextend(function(){
|
65
|
+
|
66
|
+
//Opera shows native validation bubbles in case of input.checkValidity()
|
67
|
+
// Opera 11.6/12 hasn't fixed this issue right, it's buggy
|
68
|
+
var preventDefault = function(e){
|
69
|
+
e.preventDefault();
|
70
|
+
};
|
71
|
+
|
72
|
+
['form', 'input', 'textarea', 'select'].forEach(function(name){
|
73
|
+
var desc = webshims.defineNodeNameProperty(name, 'checkValidity', {
|
74
|
+
prop: {
|
75
|
+
value: function(){
|
76
|
+
if (!webshims.fromSubmit) {
|
77
|
+
$(this).on('invalid.checkvalidity', preventDefault);
|
78
|
+
}
|
79
|
+
|
80
|
+
webshims.fromCheckValidity = true;
|
81
|
+
var ret = desc.prop._supvalue.apply(this, arguments);
|
82
|
+
if (!webshims.fromSubmit) {
|
83
|
+
$(this).unbind('invalid.checkvalidity', preventDefault);
|
84
|
+
}
|
85
|
+
webshims.fromCheckValidity = false;
|
86
|
+
return ret;
|
85
87
|
}
|
86
|
-
webshims.fromCheckValidity = false;
|
87
|
-
return ret;
|
88
88
|
}
|
89
|
-
}
|
89
|
+
});
|
90
90
|
});
|
91
|
+
|
91
92
|
});
|
92
|
-
|
93
93
|
});
|
94
|
-
}
|
94
|
+
}
|
95
|
+
|
96
|
+
if(isWebkit && !webshims.bugs.bustedValidity){
|
97
|
+
(function(){
|
98
|
+
var elems = /^(?:textarea|input)$/i;
|
99
|
+
var form = false;
|
100
|
+
|
101
|
+
document.addEventListener('contextmenu', function(e){
|
102
|
+
if(elems.test( e.target.nodeName || '') && (form = e.target.form)){
|
103
|
+
setTimeout(function(){
|
104
|
+
form = false;
|
105
|
+
}, 1);
|
106
|
+
}
|
107
|
+
}, false);
|
108
|
+
|
109
|
+
$(window).on('invalid', function(e){
|
110
|
+
if(e.originalEvent && form && form == e.target.form){
|
111
|
+
e.wrongWebkitInvalid = true;
|
112
|
+
e.stopImmediatePropagation();
|
113
|
+
}
|
114
|
+
});
|
115
|
+
|
116
|
+
})();
|
117
|
+
}
|
95
118
|
}
|
96
119
|
|
97
|
-
|
98
|
-
(function(){
|
99
|
-
var elems = /^(?:textarea|input)$/i;
|
100
|
-
var form = false;
|
101
|
-
|
102
|
-
document.addEventListener('contextmenu', function(e){
|
103
|
-
if(elems.test( e.target.nodeName || '') && (form = e.target.form)){
|
104
|
-
setTimeout(function(){
|
105
|
-
form = false;
|
106
|
-
}, 1);
|
107
|
-
}
|
108
|
-
}, false);
|
109
|
-
|
110
|
-
$(window).on('invalid', function(e){
|
111
|
-
if(e.originalEvent && form && form == e.target.form){
|
112
|
-
e.wrongWebkitInvalid = true;
|
113
|
-
e.stopImmediatePropagation();
|
114
|
-
}
|
115
|
-
});
|
116
|
-
|
117
|
-
})();
|
118
|
-
}
|
119
|
-
})(jQuery);
|
120
|
+
|
120
121
|
|
121
122
|
jQuery.webshims.register('form-core', function($, webshims, window, document, undefined, options){
|
122
123
|
"use strict";
|
@@ -231,7 +232,7 @@ jQuery.webshims.register('form-core', function($, webshims, window, document, un
|
|
231
232
|
return false;
|
232
233
|
};
|
233
234
|
|
234
|
-
if(Modernizr.formvalidation &&
|
235
|
+
if(Modernizr.formvalidation && isWebkit && !webshims.bugs.bustedValidity){
|
235
236
|
(function(){
|
236
237
|
var retriggerRadioValidity = function(){
|
237
238
|
var validity;
|
@@ -410,7 +411,7 @@ jQuery.webshims.register('form-core', function($, webshims, window, document, un
|
|
410
411
|
|
411
412
|
|
412
413
|
var setRoot = function(){
|
413
|
-
webshims.scrollRoot = (
|
414
|
+
webshims.scrollRoot = (isWebkit || document.compatMode == 'BackCompat') ?
|
414
415
|
$(document.body) :
|
415
416
|
$(document.documentElement)
|
416
417
|
;
|
@@ -432,7 +433,7 @@ jQuery.webshims.register('form-core', function($, webshims, window, document, un
|
|
432
433
|
|
433
434
|
/* some extra validation UI */
|
434
435
|
webshims.validityAlert = (function(){
|
435
|
-
var alertElem =
|
436
|
+
var alertElem = 'span';
|
436
437
|
var errorBubble;
|
437
438
|
var hideTimer = false;
|
438
439
|
var focusTimer = false;
|
@@ -547,7 +548,7 @@ jQuery.webshims.register('form-core', function($, webshims, window, document, un
|
|
547
548
|
errorBubble = api.errorBubble = $('<'+alertElem+' class="validity-alert-wrapper" role="alert"><span class="validity-alert"><span class="va-arrow"><span class="va-arrow-box"></span></span><span class="va-box"></span></span></'+alertElem+'>').css({position: 'absolute', display: 'none'});
|
548
549
|
webshims.ready('DOM', function(){
|
549
550
|
errorBubble.appendTo('body');
|
550
|
-
if($.fn.bgIframe
|
551
|
+
if($.fn.bgIframe){
|
551
552
|
errorBubble.bgIframe();
|
552
553
|
}
|
553
554
|
});
|
@@ -627,8 +628,9 @@ jQuery.webshims.register('form-core', function($, webshims, window, document, un
|
|
627
628
|
});
|
628
629
|
});
|
629
630
|
}
|
630
|
-
|
631
631
|
});
|
632
|
+
|
633
|
+
})(jQuery);
|
632
634
|
if(!Modernizr.formvalidation || jQuery.webshims.bugs.bustedValidity){
|
633
635
|
jQuery.webshims.register('form-shim-extend', function($, webshims, window, document){
|
634
636
|
"use strict";
|
@@ -982,7 +984,7 @@ webshims.defineNodeNamesBooleanProperty(['input', 'textarea', 'select'], 'requir
|
|
982
984
|
set: function(value){
|
983
985
|
$(this).getShadowFocusElement().attr('aria-required', !!(value)+'');
|
984
986
|
},
|
985
|
-
initAttr: (
|
987
|
+
initAttr: (Modernizr.localstorage)//only if we have aria-support
|
986
988
|
});
|
987
989
|
|
988
990
|
webshims.reflectProperties(['input'], ['pattern']);
|
@@ -1297,14 +1299,13 @@ webshims.defineNodeNameProperty('form', 'noValidate', {
|
|
1297
1299
|
}
|
1298
1300
|
});
|
1299
1301
|
|
1300
|
-
if(
|
1302
|
+
if(Modernizr.inputtypes.date && /webkit/i.test(navigator.userAgent)){
|
1301
1303
|
(function(){
|
1302
1304
|
|
1303
1305
|
var noInputTriggerEvts = {updateInput: 1, input: 1},
|
1304
1306
|
fixInputTypes = {
|
1305
1307
|
date: 1,
|
1306
|
-
time: 1
|
1307
|
-
"datetime-local": 1
|
1308
|
+
time: 1
|
1308
1309
|
},
|
1309
1310
|
noFocusEvents = {
|
1310
1311
|
focusout: 1,
|
@@ -1728,8 +1729,7 @@ try {
|
|
1728
1729
|
|
1729
1730
|
(function(){
|
1730
1731
|
Modernizr.textareaPlaceholder = !!('placeholder' in $('<textarea />')[0]);
|
1731
|
-
|
1732
|
-
if(Modernizr.input.placeholder && Modernizr.textareaPlaceholder && !bustedTextarea){return;}
|
1732
|
+
if(Modernizr.input.placeholder && Modernizr.textareaPlaceholder){return;}
|
1733
1733
|
|
1734
1734
|
var isOver = (webshims.cfg.forms.placeholderType == 'over');
|
1735
1735
|
var isResponsive = (webshims.cfg.forms.responsivePlaceholder);
|
@@ -1931,8 +1931,8 @@ try {
|
|
1931
1931
|
data.text.css('padding'+ side, size);
|
1932
1932
|
});
|
1933
1933
|
|
1934
|
-
$(
|
1935
|
-
.
|
1934
|
+
$(document)
|
1935
|
+
.onTrigger('updateshadowdom', function(){
|
1936
1936
|
var height, width;
|
1937
1937
|
if((width = elem.offsetWidth) || (height = elem.offsetHeight)){
|
1938
1938
|
data.text
|
@@ -1944,7 +1944,6 @@ try {
|
|
1944
1944
|
;
|
1945
1945
|
}
|
1946
1946
|
})
|
1947
|
-
.triggerHandler('updateshadowdom')
|
1948
1947
|
;
|
1949
1948
|
|
1950
1949
|
} else {
|
@@ -2000,17 +1999,11 @@ try {
|
|
2000
1999
|
attr: {
|
2001
2000
|
set: function(val){
|
2002
2001
|
var elem = this;
|
2003
|
-
|
2004
|
-
webshims.data(elem, 'textareaPlaceholder', val);
|
2005
|
-
elem.placeholder = '';
|
2006
|
-
} else {
|
2007
|
-
webshims.contentAttr(elem, 'placeholder', val);
|
2008
|
-
}
|
2002
|
+
webshims.contentAttr(elem, 'placeholder', val);
|
2009
2003
|
pHolder.update(elem, val);
|
2010
2004
|
},
|
2011
2005
|
get: function(){
|
2012
|
-
|
2013
|
-
return ret || webshims.contentAttr(this, 'placeholder');
|
2006
|
+
return webshims.contentAttr(this, 'placeholder');
|
2014
2007
|
}
|
2015
2008
|
},
|
2016
2009
|
reflect: true,
|
@@ -2026,13 +2019,9 @@ try {
|
|
2026
2019
|
placeholderValueDesc[propType] = {
|
2027
2020
|
set: function(val){
|
2028
2021
|
var elem = this;
|
2029
|
-
var placeholder;
|
2030
|
-
|
2031
|
-
|
2032
|
-
}
|
2033
|
-
if(!placeholder){
|
2034
|
-
placeholder = webshims.contentAttr(elem, 'placeholder');
|
2035
|
-
}
|
2022
|
+
var placeholder = webshims.contentAttr(elem, 'placeholder');
|
2023
|
+
|
2024
|
+
|
2036
2025
|
$.removeData(elem, 'cachedValidity');
|
2037
2026
|
var ret = desc[propType]._supset.call(elem, val);
|
2038
2027
|
if(placeholder && 'value' in elem){
|