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
@@ -351,7 +351,7 @@ webshims.defineNodeNamesBooleanProperty(['input', 'textarea', 'select'], 'requir
|
|
351
351
|
set: function(value){
|
352
352
|
$(this).getShadowFocusElement().attr('aria-required', !!(value)+'');
|
353
353
|
},
|
354
|
-
initAttr: (
|
354
|
+
initAttr: (Modernizr.localstorage)//only if we have aria-support
|
355
355
|
});
|
356
356
|
|
357
357
|
webshims.reflectProperties(['input'], ['pattern']);
|
@@ -666,14 +666,13 @@ webshims.defineNodeNameProperty('form', 'noValidate', {
|
|
666
666
|
}
|
667
667
|
});
|
668
668
|
|
669
|
-
if(
|
669
|
+
if(Modernizr.inputtypes.date && /webkit/i.test(navigator.userAgent)){
|
670
670
|
(function(){
|
671
671
|
|
672
672
|
var noInputTriggerEvts = {updateInput: 1, input: 1},
|
673
673
|
fixInputTypes = {
|
674
674
|
date: 1,
|
675
|
-
time: 1
|
676
|
-
"datetime-local": 1
|
675
|
+
time: 1
|
677
676
|
},
|
678
677
|
noFocusEvents = {
|
679
678
|
focusout: 1,
|
@@ -1097,8 +1096,7 @@ try {
|
|
1097
1096
|
|
1098
1097
|
(function(){
|
1099
1098
|
Modernizr.textareaPlaceholder = !!('placeholder' in $('<textarea />')[0]);
|
1100
|
-
|
1101
|
-
if(Modernizr.input.placeholder && Modernizr.textareaPlaceholder && !bustedTextarea){return;}
|
1099
|
+
if(Modernizr.input.placeholder && Modernizr.textareaPlaceholder){return;}
|
1102
1100
|
|
1103
1101
|
var isOver = (webshims.cfg.forms.placeholderType == 'over');
|
1104
1102
|
var isResponsive = (webshims.cfg.forms.responsivePlaceholder);
|
@@ -1300,8 +1298,8 @@ try {
|
|
1300
1298
|
data.text.css('padding'+ side, size);
|
1301
1299
|
});
|
1302
1300
|
|
1303
|
-
$(
|
1304
|
-
.
|
1301
|
+
$(document)
|
1302
|
+
.onTrigger('updateshadowdom', function(){
|
1305
1303
|
var height, width;
|
1306
1304
|
if((width = elem.offsetWidth) || (height = elem.offsetHeight)){
|
1307
1305
|
data.text
|
@@ -1313,7 +1311,6 @@ try {
|
|
1313
1311
|
;
|
1314
1312
|
}
|
1315
1313
|
})
|
1316
|
-
.triggerHandler('updateshadowdom')
|
1317
1314
|
;
|
1318
1315
|
|
1319
1316
|
} else {
|
@@ -1369,17 +1366,11 @@ try {
|
|
1369
1366
|
attr: {
|
1370
1367
|
set: function(val){
|
1371
1368
|
var elem = this;
|
1372
|
-
|
1373
|
-
webshims.data(elem, 'textareaPlaceholder', val);
|
1374
|
-
elem.placeholder = '';
|
1375
|
-
} else {
|
1376
|
-
webshims.contentAttr(elem, 'placeholder', val);
|
1377
|
-
}
|
1369
|
+
webshims.contentAttr(elem, 'placeholder', val);
|
1378
1370
|
pHolder.update(elem, val);
|
1379
1371
|
},
|
1380
1372
|
get: function(){
|
1381
|
-
|
1382
|
-
return ret || webshims.contentAttr(this, 'placeholder');
|
1373
|
+
return webshims.contentAttr(this, 'placeholder');
|
1383
1374
|
}
|
1384
1375
|
},
|
1385
1376
|
reflect: true,
|
@@ -1395,13 +1386,9 @@ try {
|
|
1395
1386
|
placeholderValueDesc[propType] = {
|
1396
1387
|
set: function(val){
|
1397
1388
|
var elem = this;
|
1398
|
-
var placeholder;
|
1399
|
-
|
1400
|
-
|
1401
|
-
}
|
1402
|
-
if(!placeholder){
|
1403
|
-
placeholder = webshims.contentAttr(elem, 'placeholder');
|
1404
|
-
}
|
1389
|
+
var placeholder = webshims.contentAttr(elem, 'placeholder');
|
1390
|
+
|
1391
|
+
|
1405
1392
|
$.removeData(elem, 'cachedValidity');
|
1406
1393
|
var ret = desc[propType]._supset.call(elem, val);
|
1407
1394
|
if(placeholder && 'value' in elem){
|
@@ -1796,7 +1783,9 @@ jQuery.webshims.register('form-message', function($, webshims, window, document,
|
|
1796
1783
|
if(hasSwf && !options.preferFlash && webshims.mediaelement.createSWF && !$(e.target).closest('audio, video').is('.nonnative-api-active')){
|
1797
1784
|
options.preferFlash = true;
|
1798
1785
|
document.removeEventListener('error', switchOptions, true);
|
1799
|
-
$('audio, video').
|
1786
|
+
$('audio, video').each(function(){
|
1787
|
+
webshims.mediaelement.selectSource(this);
|
1788
|
+
});
|
1800
1789
|
webshims.info("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src);
|
1801
1790
|
} else if(!hasSwf){
|
1802
1791
|
document.removeEventListener('error', switchOptions, true);
|
@@ -2200,7 +2189,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
2200
2189
|
data = data || webshims.data(elem, 'mediaelement');
|
2201
2190
|
stepSources(elem, data, options.preferFlash || undefined, _srces);
|
2202
2191
|
};
|
2203
|
-
|
2192
|
+
mediaelement.selectSource = selectSource;
|
2204
2193
|
|
2205
2194
|
$(document).on('ended', function(e){
|
2206
2195
|
var data = webshims.data(e.target, 'mediaelement');
|
@@ -2266,52 +2255,57 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
2266
2255
|
var media = $('video, audio', context)
|
2267
2256
|
.add(insertedElement.filter('video, audio'))
|
2268
2257
|
.each(function(){
|
2269
|
-
|
2258
|
+
var data = webshims.data(this, 'mediaelement');
|
2259
|
+
|
2260
|
+
if(hasNative && $.prop(this, 'paused') && !$.prop(this, 'readyState') && $(this).is('audio[preload="none"][controls]:not([autoplay])') && (!data || data.isActive == 'html5')){
|
2261
|
+
//IE controls not visible bug
|
2270
2262
|
$(this).prop('preload', 'metadata').mediaLoad();
|
2271
2263
|
} else {
|
2272
|
-
selectSource(this);
|
2264
|
+
selectSource(this, data);
|
2273
2265
|
}
|
2274
2266
|
|
2275
|
-
|
2276
|
-
|
2277
2267
|
if(hasNative){
|
2278
|
-
var bufferTimer;
|
2279
|
-
var lastBuffered;
|
2280
|
-
var elem = this;
|
2281
|
-
var getBufferedString = function(){
|
2282
|
-
var buffered = $.prop(elem, 'buffered');
|
2283
|
-
if(!buffered){return;}
|
2284
|
-
var bufferString = "";
|
2285
|
-
for(var i = 0, len = buffered.length; i < len;i++){
|
2286
|
-
bufferString += buffered.end(i);
|
2287
|
-
}
|
2288
|
-
return bufferString;
|
2289
|
-
};
|
2290
|
-
var testBuffer = function(){
|
2291
|
-
var buffered = getBufferedString();
|
2292
|
-
if(buffered != lastBuffered){
|
2293
|
-
lastBuffered = buffered;
|
2294
|
-
$(elem).triggerHandler('progress');
|
2295
|
-
}
|
2296
|
-
};
|
2297
2268
|
|
2298
|
-
|
2299
|
-
|
2300
|
-
|
2301
|
-
|
2302
|
-
|
2303
|
-
|
2304
|
-
|
2305
|
-
|
2306
|
-
|
2307
|
-
|
2308
|
-
|
2309
|
-
lastBuffered = false;
|
2310
|
-
}
|
2311
|
-
clearTimeout(bufferTimer);
|
2269
|
+
//FF progress bug
|
2270
|
+
(function(){
|
2271
|
+
var bufferTimer;
|
2272
|
+
var lastBuffered;
|
2273
|
+
var elem = this;
|
2274
|
+
var getBufferedString = function(){
|
2275
|
+
var buffered = $.prop(elem, 'buffered');
|
2276
|
+
if(!buffered){return;}
|
2277
|
+
var bufferString = "";
|
2278
|
+
for(var i = 0, len = buffered.length; i < len;i++){
|
2279
|
+
bufferString += buffered.end(i);
|
2312
2280
|
}
|
2313
|
-
|
2314
|
-
|
2281
|
+
return bufferString;
|
2282
|
+
};
|
2283
|
+
var testBuffer = function(){
|
2284
|
+
var buffered = getBufferedString();
|
2285
|
+
if(buffered != lastBuffered){
|
2286
|
+
lastBuffered = buffered;
|
2287
|
+
$(elem).triggerHandler('progress');
|
2288
|
+
}
|
2289
|
+
};
|
2290
|
+
|
2291
|
+
$(this)
|
2292
|
+
.on({
|
2293
|
+
'play loadstart progress': function(e){
|
2294
|
+
if(e.type == 'progress'){
|
2295
|
+
lastBuffered = getBufferedString();
|
2296
|
+
}
|
2297
|
+
clearTimeout(bufferTimer);
|
2298
|
+
bufferTimer = setTimeout(testBuffer, 999);
|
2299
|
+
},
|
2300
|
+
'emptied stalled mediaerror abort suspend': function(e){
|
2301
|
+
if(e.type == 'emptied'){
|
2302
|
+
lastBuffered = false;
|
2303
|
+
}
|
2304
|
+
clearTimeout(bufferTimer);
|
2305
|
+
}
|
2306
|
+
})
|
2307
|
+
;
|
2308
|
+
})();
|
2315
2309
|
}
|
2316
2310
|
|
2317
2311
|
})
|
@@ -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){
|
1004
|
-
|
1005
|
-
form.appendTo('head');
|
1006
|
-
|
1007
|
-
testRequiredFind();
|
1008
|
-
bugs.validationMessage = !(inputElem.prop('validationMessage'));
|
1009
|
-
|
1010
|
-
webshims.reTest(['form-native-extend', 'form-message']);
|
1001
|
+
} else {
|
1002
|
+
//create delegatable events
|
1003
|
+
webshims.capturingEvents(['input']);
|
1004
|
+
webshims.capturingEvents(['invalid'], true);
|
1011
1005
|
|
1012
|
-
|
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
|
|
@@ -2313,7 +2318,9 @@ jQuery.webshims.register('form-datalist', function($, webshims, window, document
|
|
2313
2318
|
if(hasSwf && !options.preferFlash && webshims.mediaelement.createSWF && !$(e.target).closest('audio, video').is('.nonnative-api-active')){
|
2314
2319
|
options.preferFlash = true;
|
2315
2320
|
document.removeEventListener('error', switchOptions, true);
|
2316
|
-
$('audio, video').
|
2321
|
+
$('audio, video').each(function(){
|
2322
|
+
webshims.mediaelement.selectSource(this);
|
2323
|
+
});
|
2317
2324
|
webshims.info("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src);
|
2318
2325
|
} else if(!hasSwf){
|
2319
2326
|
document.removeEventListener('error', switchOptions, true);
|
@@ -2717,7 +2724,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
2717
2724
|
data = data || webshims.data(elem, 'mediaelement');
|
2718
2725
|
stepSources(elem, data, options.preferFlash || undefined, _srces);
|
2719
2726
|
};
|
2720
|
-
|
2727
|
+
mediaelement.selectSource = selectSource;
|
2721
2728
|
|
2722
2729
|
$(document).on('ended', function(e){
|
2723
2730
|
var data = webshims.data(e.target, 'mediaelement');
|
@@ -2783,52 +2790,57 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
2783
2790
|
var media = $('video, audio', context)
|
2784
2791
|
.add(insertedElement.filter('video, audio'))
|
2785
2792
|
.each(function(){
|
2786
|
-
|
2793
|
+
var data = webshims.data(this, 'mediaelement');
|
2794
|
+
|
2795
|
+
if(hasNative && $.prop(this, 'paused') && !$.prop(this, 'readyState') && $(this).is('audio[preload="none"][controls]:not([autoplay])') && (!data || data.isActive == 'html5')){
|
2796
|
+
//IE controls not visible bug
|
2787
2797
|
$(this).prop('preload', 'metadata').mediaLoad();
|
2788
2798
|
} else {
|
2789
|
-
selectSource(this);
|
2799
|
+
selectSource(this, data);
|
2790
2800
|
}
|
2791
2801
|
|
2792
|
-
|
2793
|
-
|
2794
2802
|
if(hasNative){
|
2795
|
-
var bufferTimer;
|
2796
|
-
var lastBuffered;
|
2797
|
-
var elem = this;
|
2798
|
-
var getBufferedString = function(){
|
2799
|
-
var buffered = $.prop(elem, 'buffered');
|
2800
|
-
if(!buffered){return;}
|
2801
|
-
var bufferString = "";
|
2802
|
-
for(var i = 0, len = buffered.length; i < len;i++){
|
2803
|
-
bufferString += buffered.end(i);
|
2804
|
-
}
|
2805
|
-
return bufferString;
|
2806
|
-
};
|
2807
|
-
var testBuffer = function(){
|
2808
|
-
var buffered = getBufferedString();
|
2809
|
-
if(buffered != lastBuffered){
|
2810
|
-
lastBuffered = buffered;
|
2811
|
-
$(elem).triggerHandler('progress');
|
2812
|
-
}
|
2813
|
-
};
|
2814
2803
|
|
2815
|
-
|
2816
|
-
|
2817
|
-
|
2818
|
-
|
2819
|
-
|
2820
|
-
|
2821
|
-
|
2822
|
-
|
2823
|
-
|
2824
|
-
|
2825
|
-
|
2826
|
-
lastBuffered = false;
|
2827
|
-
}
|
2828
|
-
clearTimeout(bufferTimer);
|
2804
|
+
//FF progress bug
|
2805
|
+
(function(){
|
2806
|
+
var bufferTimer;
|
2807
|
+
var lastBuffered;
|
2808
|
+
var elem = this;
|
2809
|
+
var getBufferedString = function(){
|
2810
|
+
var buffered = $.prop(elem, 'buffered');
|
2811
|
+
if(!buffered){return;}
|
2812
|
+
var bufferString = "";
|
2813
|
+
for(var i = 0, len = buffered.length; i < len;i++){
|
2814
|
+
bufferString += buffered.end(i);
|
2829
2815
|
}
|
2830
|
-
|
2831
|
-
|
2816
|
+
return bufferString;
|
2817
|
+
};
|
2818
|
+
var testBuffer = function(){
|
2819
|
+
var buffered = getBufferedString();
|
2820
|
+
if(buffered != lastBuffered){
|
2821
|
+
lastBuffered = buffered;
|
2822
|
+
$(elem).triggerHandler('progress');
|
2823
|
+
}
|
2824
|
+
};
|
2825
|
+
|
2826
|
+
$(this)
|
2827
|
+
.on({
|
2828
|
+
'play loadstart progress': function(e){
|
2829
|
+
if(e.type == 'progress'){
|
2830
|
+
lastBuffered = getBufferedString();
|
2831
|
+
}
|
2832
|
+
clearTimeout(bufferTimer);
|
2833
|
+
bufferTimer = setTimeout(testBuffer, 999);
|
2834
|
+
},
|
2835
|
+
'emptied stalled mediaerror abort suspend': function(e){
|
2836
|
+
if(e.type == 'emptied'){
|
2837
|
+
lastBuffered = false;
|
2838
|
+
}
|
2839
|
+
clearTimeout(bufferTimer);
|
2840
|
+
}
|
2841
|
+
})
|
2842
|
+
;
|
2843
|
+
})();
|
2832
2844
|
}
|
2833
2845
|
|
2834
2846
|
})
|