webshims-rails 1.10.11 → 1.11.1
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 +8 -8
- data/lib/webshims-rails/version.rb +2 -2
- data/readme.textile +14 -1
- data/vendor/assets/javascripts/webshims/polyfiller.js +2 -1
- data/vendor/assets/javascripts/webshims/shims/combos/1.js +12 -63
- data/vendor/assets/javascripts/webshims/shims/combos/10.js +17 -7
- data/vendor/assets/javascripts/webshims/shims/combos/11.js +17 -3
- data/vendor/assets/javascripts/webshims/shims/combos/12.js +11 -12
- data/vendor/assets/javascripts/webshims/shims/combos/13.js +11 -12
- data/vendor/assets/javascripts/webshims/shims/combos/14.js +0 -4
- data/vendor/assets/javascripts/webshims/shims/combos/15.js +10 -59
- data/vendor/assets/javascripts/webshims/shims/combos/16.js +21 -71
- data/vendor/assets/javascripts/webshims/shims/combos/17.js +17 -3
- data/vendor/assets/javascripts/webshims/shims/combos/18.js +17 -3
- data/vendor/assets/javascripts/webshims/shims/combos/19.js +58 -19
- data/vendor/assets/javascripts/webshims/shims/combos/2.js +12 -67
- data/vendor/assets/javascripts/webshims/shims/combos/20.js +58 -19
- data/vendor/assets/javascripts/webshims/shims/combos/21.js +47 -3
- data/vendor/assets/javascripts/webshims/shims/combos/23.js +11 -12
- data/vendor/assets/javascripts/webshims/shims/combos/24.js +324 -79
- data/vendor/assets/javascripts/webshims/shims/combos/25.js +63 -21
- data/vendor/assets/javascripts/webshims/shims/combos/26.js +5 -6
- data/vendor/assets/javascripts/webshims/shims/combos/27.js +5 -2
- data/vendor/assets/javascripts/webshims/shims/combos/28.js +47 -7
- data/vendor/assets/javascripts/webshims/shims/combos/3.js +1 -55
- data/vendor/assets/javascripts/webshims/shims/combos/30.js +1 -55
- data/vendor/assets/javascripts/webshims/shims/combos/31.js +1 -55
- data/vendor/assets/javascripts/webshims/shims/combos/4.js +0 -4
- data/vendor/assets/javascripts/webshims/shims/combos/5.js +17 -3
- data/vendor/assets/javascripts/webshims/shims/combos/6.js +17 -3
- data/vendor/assets/javascripts/webshims/shims/combos/7.js +12 -67
- data/vendor/assets/javascripts/webshims/shims/combos/8.js +12 -67
- data/vendor/assets/javascripts/webshims/shims/combos/9.js +17 -7
- data/vendor/assets/javascripts/webshims/shims/dom-extend.js +0 -4
- data/vendor/assets/javascripts/webshims/shims/filereader.js +5 -2
- data/vendor/assets/javascripts/webshims/shims/form-core.js +1 -51
- data/vendor/assets/javascripts/webshims/shims/form-datalist-lazy.js +24 -15
- data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +6 -2
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +9 -4
- data/vendor/assets/javascripts/webshims/shims/form-validation.js +135 -24
- data/vendor/assets/javascripts/webshims/shims/form-validators.js +189 -55
- data/vendor/assets/javascripts/webshims/shims/forms-picker.js +4 -1
- data/vendor/assets/javascripts/webshims/shims/jpicker/jpicker.css +3 -1
- data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +11 -12
- data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +47 -3
- data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +28 -8
- data/vendor/assets/javascripts/webshims/shims/mediagroup.js +29 -0
- data/vendor/assets/javascripts/webshims/shims/range-ui.js +11 -1
- data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +17 -4
- data/vendor/assets/javascripts/webshims/shims/styles/shim.css +17 -6
- data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
- metadata +3 -3
- data/vendor/assets/javascripts/webshims/shims/swf/jwwebshims.swf +0 -0
@@ -816,10 +816,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
816
816
|
webshims.error("Webshims needs jQuery 1.8+ to work properly. Please update your jQuery version or downgrade webshims.");
|
817
817
|
}
|
818
818
|
|
819
|
-
if(webshims.cfg.extendNative === undefined){
|
820
|
-
webshims.warn("extendNative configuration was set to false by default with this release. In case you rely on it set it to 'true' otherwise to 'false'. See http://bit.ly/16OOTQO");
|
821
|
-
}
|
822
|
-
|
823
819
|
if (!webshims.cfg.no$Switch) {
|
824
820
|
var switch$ = function(){
|
825
821
|
if (window.jQuery && (!window.$ || window.jQuery == window.$) && !window.jQuery.webshims) {
|
@@ -13,10 +13,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
13
13
|
webshims.error("Webshims needs jQuery 1.8+ to work properly. Please update your jQuery version or downgrade webshims.");
|
14
14
|
}
|
15
15
|
|
16
|
-
if(webshims.cfg.extendNative === undefined){
|
17
|
-
webshims.warn("extendNative configuration was set to false by default with this release. In case you rely on it set it to 'true' otherwise to 'false'. See http://bit.ly/16OOTQO");
|
18
|
-
}
|
19
|
-
|
20
16
|
if (!webshims.cfg.no$Switch) {
|
21
17
|
var switch$ = function(){
|
22
18
|
if (window.jQuery && (!window.$ || window.jQuery == window.$) && !window.jQuery.webshims) {
|
@@ -1297,62 +1293,12 @@ webshims.register('form-core', function($, webshims, window, document, undefined
|
|
1297
1293
|
|
1298
1294
|
|
1299
1295
|
$(document).on('focusin.lazyloadvalidation', function(e){
|
1300
|
-
if('form' in e.target && $(e.target).is(':invalid')){
|
1296
|
+
if('form' in e.target && (e.target.list || $(e.target).is(':invalid'))){
|
1301
1297
|
lazyLoad();
|
1302
1298
|
}
|
1303
1299
|
});
|
1304
1300
|
webshims.ready('WINDOWLOAD', lazyLoad);
|
1305
1301
|
|
1306
|
-
if(options.replaceValidationUI){
|
1307
|
-
webshims.ready('DOM forms', function(){
|
1308
|
-
$(document).on('firstinvalid', function(e){
|
1309
|
-
if(!e.isInvalidUIPrevented()){
|
1310
|
-
e.preventDefault();
|
1311
|
-
webshims.validityAlert.showFor( e.target );
|
1312
|
-
}
|
1313
|
-
});
|
1314
|
-
});
|
1315
|
-
}
|
1316
|
-
|
1317
|
-
/* extension, but also used to fix native implementation workaround/bugfixes */
|
1318
|
-
(function(){
|
1319
|
-
var firstEvent,
|
1320
|
-
invalids = [],
|
1321
|
-
stopSubmitTimer,
|
1322
|
-
form
|
1323
|
-
;
|
1324
|
-
|
1325
|
-
$(document).on('invalid', function(e){
|
1326
|
-
if(e.wrongWebkitInvalid){return;}
|
1327
|
-
var jElm = $(e.target);
|
1328
|
-
|
1329
|
-
|
1330
|
-
if(!firstEvent){
|
1331
|
-
//trigger firstinvalid
|
1332
|
-
firstEvent = $.Event('firstinvalid');
|
1333
|
-
firstEvent.isInvalidUIPrevented = e.isDefaultPrevented;
|
1334
|
-
var firstSystemInvalid = $.Event('firstinvalidsystem');
|
1335
|
-
$(document).triggerHandler(firstSystemInvalid, {element: e.target, form: e.target.form, isInvalidUIPrevented: e.isDefaultPrevented});
|
1336
|
-
jElm.trigger(firstEvent);
|
1337
|
-
}
|
1338
|
-
|
1339
|
-
//if firstinvalid was prevented all invalids will be also prevented
|
1340
|
-
if( firstEvent && firstEvent.isDefaultPrevented() ){
|
1341
|
-
e.preventDefault();
|
1342
|
-
}
|
1343
|
-
invalids.push(e.target);
|
1344
|
-
e.extraData = 'fix';
|
1345
|
-
clearTimeout(stopSubmitTimer);
|
1346
|
-
stopSubmitTimer = setTimeout(function(){
|
1347
|
-
var lastEvent = {type: 'lastinvalid', cancelable: false, invalidlist: $(invalids)};
|
1348
|
-
//reset firstinvalid
|
1349
|
-
firstEvent = false;
|
1350
|
-
invalids = [];
|
1351
|
-
$(e.target).trigger(lastEvent, lastEvent);
|
1352
|
-
}, 9);
|
1353
|
-
jElm = null;
|
1354
|
-
});
|
1355
|
-
})();
|
1356
1302
|
});
|
1357
1303
|
|
1358
1304
|
if(!Modernizr.formvalidation || webshims.bugs.bustedValidity){
|
@@ -2688,6 +2634,7 @@ try {
|
|
2688
2634
|
var isOver = (webshims.cfg.forms.placeholderType == 'over');
|
2689
2635
|
var isResponsive = (webshims.cfg.forms.responsivePlaceholder);
|
2690
2636
|
var polyfillElements = ['textarea'];
|
2637
|
+
var debug = webshims.debug !== false;
|
2691
2638
|
if(!Modernizr.input.placeholder || bustedPlaceholder){
|
2692
2639
|
polyfillElements.push('input');
|
2693
2640
|
}
|
@@ -2778,6 +2725,11 @@ try {
|
|
2778
2725
|
data = $.data(elem, 'placeHolder');
|
2779
2726
|
if(!data){return;}
|
2780
2727
|
}
|
2728
|
+
var isVisible = $(elem).hasClass('placeholder-visible');
|
2729
|
+
if(placeholderTxt === false){
|
2730
|
+
placeholderTxt = $.attr(elem, 'placeholder') || '';
|
2731
|
+
}
|
2732
|
+
|
2781
2733
|
$(elem).unbind('.placeholderremove');
|
2782
2734
|
|
2783
2735
|
if(value === false){
|
@@ -2785,7 +2737,7 @@ try {
|
|
2785
2737
|
}
|
2786
2738
|
|
2787
2739
|
if(!value && (type == 'focus' || (!type && $(elem).is(':focus')))){
|
2788
|
-
if(elem.type == 'password' || isOver ||
|
2740
|
+
if(elem.type == 'password' || isOver || isVisible){
|
2789
2741
|
hidePlaceholder(elem, data, '', true);
|
2790
2742
|
}
|
2791
2743
|
return;
|
@@ -2795,9 +2747,7 @@ try {
|
|
2795
2747
|
hidePlaceholder(elem, data, value);
|
2796
2748
|
return;
|
2797
2749
|
}
|
2798
|
-
|
2799
|
-
placeholderTxt = $.attr(elem, 'placeholder') || '';
|
2800
|
-
}
|
2750
|
+
|
2801
2751
|
if(placeholderTxt && !value){
|
2802
2752
|
showPlaceholder(elem, data, placeholderTxt);
|
2803
2753
|
} else {
|
@@ -2905,6 +2855,7 @@ try {
|
|
2905
2855
|
var reset = function(e){
|
2906
2856
|
if($(elem).hasClass('placeholder-visible')){
|
2907
2857
|
hidePlaceholder(elem, data, '');
|
2858
|
+
|
2908
2859
|
setTimeout(function(){
|
2909
2860
|
if(!e || e.type != 'submit' || e.isDefaultPrevented()){
|
2910
2861
|
changePlaceholderVisibility(elem, false, false, data );
|
@@ -465,10 +465,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
465
465
|
webshims.error("Webshims needs jQuery 1.8+ to work properly. Please update your jQuery version or downgrade webshims.");
|
466
466
|
}
|
467
467
|
|
468
|
-
if(webshims.cfg.extendNative === undefined){
|
469
|
-
webshims.warn("extendNative configuration was set to false by default with this release. In case you rely on it set it to 'true' otherwise to 'false'. See http://bit.ly/16OOTQO");
|
470
|
-
}
|
471
|
-
|
472
468
|
if (!webshims.cfg.no$Switch) {
|
473
469
|
var switch$ = function(){
|
474
470
|
if (window.jQuery && (!window.$ || window.jQuery == window.$) && !window.jQuery.webshims) {
|
@@ -1749,62 +1745,12 @@ webshims.register('form-core', function($, webshims, window, document, undefined
|
|
1749
1745
|
|
1750
1746
|
|
1751
1747
|
$(document).on('focusin.lazyloadvalidation', function(e){
|
1752
|
-
if('form' in e.target && $(e.target).is(':invalid')){
|
1748
|
+
if('form' in e.target && (e.target.list || $(e.target).is(':invalid'))){
|
1753
1749
|
lazyLoad();
|
1754
1750
|
}
|
1755
1751
|
});
|
1756
1752
|
webshims.ready('WINDOWLOAD', lazyLoad);
|
1757
1753
|
|
1758
|
-
if(options.replaceValidationUI){
|
1759
|
-
webshims.ready('DOM forms', function(){
|
1760
|
-
$(document).on('firstinvalid', function(e){
|
1761
|
-
if(!e.isInvalidUIPrevented()){
|
1762
|
-
e.preventDefault();
|
1763
|
-
webshims.validityAlert.showFor( e.target );
|
1764
|
-
}
|
1765
|
-
});
|
1766
|
-
});
|
1767
|
-
}
|
1768
|
-
|
1769
|
-
/* extension, but also used to fix native implementation workaround/bugfixes */
|
1770
|
-
(function(){
|
1771
|
-
var firstEvent,
|
1772
|
-
invalids = [],
|
1773
|
-
stopSubmitTimer,
|
1774
|
-
form
|
1775
|
-
;
|
1776
|
-
|
1777
|
-
$(document).on('invalid', function(e){
|
1778
|
-
if(e.wrongWebkitInvalid){return;}
|
1779
|
-
var jElm = $(e.target);
|
1780
|
-
|
1781
|
-
|
1782
|
-
if(!firstEvent){
|
1783
|
-
//trigger firstinvalid
|
1784
|
-
firstEvent = $.Event('firstinvalid');
|
1785
|
-
firstEvent.isInvalidUIPrevented = e.isDefaultPrevented;
|
1786
|
-
var firstSystemInvalid = $.Event('firstinvalidsystem');
|
1787
|
-
$(document).triggerHandler(firstSystemInvalid, {element: e.target, form: e.target.form, isInvalidUIPrevented: e.isDefaultPrevented});
|
1788
|
-
jElm.trigger(firstEvent);
|
1789
|
-
}
|
1790
|
-
|
1791
|
-
//if firstinvalid was prevented all invalids will be also prevented
|
1792
|
-
if( firstEvent && firstEvent.isDefaultPrevented() ){
|
1793
|
-
e.preventDefault();
|
1794
|
-
}
|
1795
|
-
invalids.push(e.target);
|
1796
|
-
e.extraData = 'fix';
|
1797
|
-
clearTimeout(stopSubmitTimer);
|
1798
|
-
stopSubmitTimer = setTimeout(function(){
|
1799
|
-
var lastEvent = {type: 'lastinvalid', cancelable: false, invalidlist: $(invalids)};
|
1800
|
-
//reset firstinvalid
|
1801
|
-
firstEvent = false;
|
1802
|
-
invalids = [];
|
1803
|
-
$(e.target).trigger(lastEvent, lastEvent);
|
1804
|
-
}, 9);
|
1805
|
-
jElm = null;
|
1806
|
-
});
|
1807
|
-
})();
|
1808
1754
|
});
|
1809
1755
|
|
1810
1756
|
if(!Modernizr.formvalidation || webshims.bugs.bustedValidity){
|
@@ -3140,6 +3086,7 @@ try {
|
|
3140
3086
|
var isOver = (webshims.cfg.forms.placeholderType == 'over');
|
3141
3087
|
var isResponsive = (webshims.cfg.forms.responsivePlaceholder);
|
3142
3088
|
var polyfillElements = ['textarea'];
|
3089
|
+
var debug = webshims.debug !== false;
|
3143
3090
|
if(!Modernizr.input.placeholder || bustedPlaceholder){
|
3144
3091
|
polyfillElements.push('input');
|
3145
3092
|
}
|
@@ -3230,6 +3177,11 @@ try {
|
|
3230
3177
|
data = $.data(elem, 'placeHolder');
|
3231
3178
|
if(!data){return;}
|
3232
3179
|
}
|
3180
|
+
var isVisible = $(elem).hasClass('placeholder-visible');
|
3181
|
+
if(placeholderTxt === false){
|
3182
|
+
placeholderTxt = $.attr(elem, 'placeholder') || '';
|
3183
|
+
}
|
3184
|
+
|
3233
3185
|
$(elem).unbind('.placeholderremove');
|
3234
3186
|
|
3235
3187
|
if(value === false){
|
@@ -3237,7 +3189,7 @@ try {
|
|
3237
3189
|
}
|
3238
3190
|
|
3239
3191
|
if(!value && (type == 'focus' || (!type && $(elem).is(':focus')))){
|
3240
|
-
if(elem.type == 'password' || isOver ||
|
3192
|
+
if(elem.type == 'password' || isOver || isVisible){
|
3241
3193
|
hidePlaceholder(elem, data, '', true);
|
3242
3194
|
}
|
3243
3195
|
return;
|
@@ -3247,9 +3199,7 @@ try {
|
|
3247
3199
|
hidePlaceholder(elem, data, value);
|
3248
3200
|
return;
|
3249
3201
|
}
|
3250
|
-
|
3251
|
-
placeholderTxt = $.attr(elem, 'placeholder') || '';
|
3252
|
-
}
|
3202
|
+
|
3253
3203
|
if(placeholderTxt && !value){
|
3254
3204
|
showPlaceholder(elem, data, placeholderTxt);
|
3255
3205
|
} else {
|
@@ -3357,6 +3307,7 @@ try {
|
|
3357
3307
|
var reset = function(e){
|
3358
3308
|
if($(elem).hasClass('placeholder-visible')){
|
3359
3309
|
hidePlaceholder(elem, data, '');
|
3310
|
+
|
3360
3311
|
setTimeout(function(){
|
3361
3312
|
if(!e || e.type != 'submit' || e.isDefaultPrevented()){
|
3362
3313
|
changePlaceholderVisibility(elem, false, false, data );
|
@@ -4120,6 +4071,7 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
|
|
4120
4071
|
if(hasNative){
|
4121
4072
|
var videoElem = document.createElement('video');
|
4122
4073
|
Modernizr.videoBuffered = ('buffered' in videoElem);
|
4074
|
+
Modernizr.mediaDefaultMuted = ('defaultMuted' in videoElem);
|
4123
4075
|
supportsLoop = ('loop' in videoElem);
|
4124
4076
|
|
4125
4077
|
webshims.capturingEvents(['play', 'playing', 'waiting', 'paused', 'ended', 'durationchange', 'loadedmetadata', 'canplay', 'volumechange']);
|
@@ -4133,20 +4085,15 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
|
|
4133
4085
|
|
4134
4086
|
if(!options.preferFlash){
|
4135
4087
|
var noSwitch = {
|
4136
|
-
1: 1
|
4137
|
-
2: 1
|
4088
|
+
1: 1
|
4138
4089
|
};
|
4139
4090
|
var switchOptions = function(e){
|
4140
4091
|
var media, error, parent;
|
4141
4092
|
if(!options.preferFlash &&
|
4142
4093
|
($(e.target).is('audio, video') || ((parent = e.target.parentNode) && $('source:last', parent)[0] == e.target)) &&
|
4143
|
-
(media = $(e.target).closest('audio, video')) &&
|
4094
|
+
(media = $(e.target).closest('audio, video')) && (error = media.prop('error')) && !noSwitch[error.code]
|
4144
4095
|
){
|
4145
|
-
|
4146
|
-
webshims.warn("There was an unspecified error on a mediaelement");
|
4147
|
-
return;
|
4148
|
-
|
4149
|
-
}
|
4096
|
+
|
4150
4097
|
$(function(){
|
4151
4098
|
if(hasSwf && !options.preferFlash){
|
4152
4099
|
loadSwf();
|
@@ -4158,7 +4105,7 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
|
|
4158
4105
|
$('audio, video').each(function(){
|
4159
4106
|
webshims.mediaelement.selectSource(this);
|
4160
4107
|
});
|
4161
|
-
webshims.error("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src+" Mediaerror: "+ media.prop('error'));
|
4108
|
+
webshims.error("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src+" Mediaerror: "+ media.prop('error')+ 'first error: '+ error);
|
4162
4109
|
}
|
4163
4110
|
}, 9);
|
4164
4111
|
});
|
@@ -4364,7 +4311,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
4364
4311
|
if(src.indexOf('rtmp') === 0){
|
4365
4312
|
return nodeName+'/rtmp';
|
4366
4313
|
}
|
4367
|
-
src = src.split('?')[0].split('.');
|
4314
|
+
src = src.split('?')[0].split('#')[0].split('.');
|
4368
4315
|
src = src[src.length - 1];
|
4369
4316
|
var mt;
|
4370
4317
|
|
@@ -4483,7 +4430,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
4483
4430
|
webshims.error('mediaelementError: '+ message);
|
4484
4431
|
setTimeout(function(){
|
4485
4432
|
if($(elem).data('mediaerror')){
|
4486
|
-
$(elem).trigger('mediaerror');
|
4433
|
+
$(elem).addClass('media-error').trigger('mediaerror');
|
4487
4434
|
}
|
4488
4435
|
}, 1);
|
4489
4436
|
}
|
@@ -4547,6 +4494,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
4547
4494
|
var parent = elem.parentNode;
|
4548
4495
|
|
4549
4496
|
clearTimeout(baseData.loadTimer);
|
4497
|
+
$(elem).removeClass('media-error');
|
4550
4498
|
$.data(elem, 'mediaerror', false);
|
4551
4499
|
|
4552
4500
|
if(!_srces.length || !parent || parent.nodeType != 1 || stopParent.test(parent.nodeName || '')){return;}
|
@@ -4574,7 +4522,9 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
4574
4522
|
var testFixMedia = function(){
|
4575
4523
|
if(webshims.implement(this, 'mediaelement')){
|
4576
4524
|
selectSource(this);
|
4577
|
-
|
4525
|
+
if(!Modernizr.mediaDefaultMuted && $.attr(this, 'muted') != null){
|
4526
|
+
$.prop(this, 'muted', true);
|
4527
|
+
}
|
4578
4528
|
//fixes for FF 12 and IE9/10 || does not hurt, if run in other browsers
|
4579
4529
|
if(hasNative && (!supportsLoop || ('ActiveXObject' in window))){
|
4580
4530
|
var bufferTimer;
|
@@ -768,7 +768,17 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
768
768
|
this.value(this.options.value, true);
|
769
769
|
},
|
770
770
|
step: function(val){
|
771
|
-
this.options
|
771
|
+
var o = this.options;
|
772
|
+
var step = val == 'any' ? 'any' : retDefault(val, 1);
|
773
|
+
|
774
|
+
if(o.stepping){
|
775
|
+
if(step != 'any' && o.stepping % step){
|
776
|
+
webshims.error('wrong stepping value for type range:'+ (o.stepping % step));
|
777
|
+
} else {
|
778
|
+
step = o.stepping;
|
779
|
+
}
|
780
|
+
}
|
781
|
+
o.step = step;
|
772
782
|
this.value(this.options.value);
|
773
783
|
},
|
774
784
|
|
@@ -1489,6 +1499,8 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
1489
1499
|
fVal[0] = tmp;
|
1490
1500
|
}
|
1491
1501
|
val = this.date(fVal[0], o) +'T'+ this.time(fVal[1], o);
|
1502
|
+
} else if (fVal.length == 3) {
|
1503
|
+
val = this.date(fVal[0], o) +'T'+ this.time(fVal[1]+fVal[2], o);
|
1492
1504
|
}
|
1493
1505
|
return val;
|
1494
1506
|
},
|
@@ -2345,7 +2357,9 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
2345
2357
|
|
2346
2358
|
picker._actions = {
|
2347
2359
|
changeInput: function(val, popover, data){
|
2348
|
-
|
2360
|
+
if(!data.options.noChangeDismiss){
|
2361
|
+
picker._actions.cancel(val, popover, data);
|
2362
|
+
}
|
2349
2363
|
data.setChange(val);
|
2350
2364
|
},
|
2351
2365
|
cancel: function(val, popover, data){
|
@@ -2892,7 +2906,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
2892
2906
|
});
|
2893
2907
|
}
|
2894
2908
|
|
2895
|
-
var isStupid = modernizrInputTypes.number && navigator.userAgent.indexOf('Touch') == -1 && (/MSIE 1[0|1]\.\d/.test(navigator.userAgent) || /Trident\/7\.0/.test(navigator.userAgent));
|
2909
|
+
var isStupid = modernizrInputTypes.number && navigator.userAgent.indexOf('Touch') == -1 && ((/MSIE 1[0|1]\.\d/.test(navigator.userAgent)) || (/Trident\/7\.0/.test(navigator.userAgent)));
|
2896
2910
|
['number', 'time', 'month', 'date', 'color', 'datetime-local'].forEach(function(name){
|
2897
2911
|
if(!modernizrInputTypes[name] || options.replaceUI || (name == 'number' && isStupid)){
|
2898
2912
|
extendType(name, {
|
@@ -1571,7 +1571,17 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
1571
1571
|
this.value(this.options.value, true);
|
1572
1572
|
},
|
1573
1573
|
step: function(val){
|
1574
|
-
this.options
|
1574
|
+
var o = this.options;
|
1575
|
+
var step = val == 'any' ? 'any' : retDefault(val, 1);
|
1576
|
+
|
1577
|
+
if(o.stepping){
|
1578
|
+
if(step != 'any' && o.stepping % step){
|
1579
|
+
webshims.error('wrong stepping value for type range:'+ (o.stepping % step));
|
1580
|
+
} else {
|
1581
|
+
step = o.stepping;
|
1582
|
+
}
|
1583
|
+
}
|
1584
|
+
o.step = step;
|
1575
1585
|
this.value(this.options.value);
|
1576
1586
|
},
|
1577
1587
|
|
@@ -2292,6 +2302,8 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
2292
2302
|
fVal[0] = tmp;
|
2293
2303
|
}
|
2294
2304
|
val = this.date(fVal[0], o) +'T'+ this.time(fVal[1], o);
|
2305
|
+
} else if (fVal.length == 3) {
|
2306
|
+
val = this.date(fVal[0], o) +'T'+ this.time(fVal[1]+fVal[2], o);
|
2295
2307
|
}
|
2296
2308
|
return val;
|
2297
2309
|
},
|
@@ -3148,7 +3160,9 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
3148
3160
|
|
3149
3161
|
picker._actions = {
|
3150
3162
|
changeInput: function(val, popover, data){
|
3151
|
-
|
3163
|
+
if(!data.options.noChangeDismiss){
|
3164
|
+
picker._actions.cancel(val, popover, data);
|
3165
|
+
}
|
3152
3166
|
data.setChange(val);
|
3153
3167
|
},
|
3154
3168
|
cancel: function(val, popover, data){
|
@@ -3695,7 +3709,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
3695
3709
|
});
|
3696
3710
|
}
|
3697
3711
|
|
3698
|
-
var isStupid = modernizrInputTypes.number && navigator.userAgent.indexOf('Touch') == -1 && (/MSIE 1[0|1]\.\d/.test(navigator.userAgent) || /Trident\/7\.0/.test(navigator.userAgent));
|
3712
|
+
var isStupid = modernizrInputTypes.number && navigator.userAgent.indexOf('Touch') == -1 && ((/MSIE 1[0|1]\.\d/.test(navigator.userAgent)) || (/Trident\/7\.0/.test(navigator.userAgent)));
|
3699
3713
|
['number', 'time', 'month', 'date', 'color', 'datetime-local'].forEach(function(name){
|
3700
3714
|
if(!modernizrInputTypes[name] || options.replaceUI || (name == 'number' && isStupid)){
|
3701
3715
|
extendType(name, {
|
@@ -1268,10 +1268,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1268
1268
|
webshims.error("Webshims needs jQuery 1.8+ to work properly. Please update your jQuery version or downgrade webshims.");
|
1269
1269
|
}
|
1270
1270
|
|
1271
|
-
if(webshims.cfg.extendNative === undefined){
|
1272
|
-
webshims.warn("extendNative configuration was set to false by default with this release. In case you rely on it set it to 'true' otherwise to 'false'. See http://bit.ly/16OOTQO");
|
1273
|
-
}
|
1274
|
-
|
1275
1271
|
if (!webshims.cfg.no$Switch) {
|
1276
1272
|
var switch$ = function(){
|
1277
1273
|
if (window.jQuery && (!window.$ || window.jQuery == window.$) && !window.jQuery.webshims) {
|
@@ -2373,6 +2369,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
2373
2369
|
if(hasNative){
|
2374
2370
|
var videoElem = document.createElement('video');
|
2375
2371
|
Modernizr.videoBuffered = ('buffered' in videoElem);
|
2372
|
+
Modernizr.mediaDefaultMuted = ('defaultMuted' in videoElem);
|
2376
2373
|
supportsLoop = ('loop' in videoElem);
|
2377
2374
|
|
2378
2375
|
webshims.capturingEvents(['play', 'playing', 'waiting', 'paused', 'ended', 'durationchange', 'loadedmetadata', 'canplay', 'volumechange']);
|
@@ -2386,20 +2383,15 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
2386
2383
|
|
2387
2384
|
if(!options.preferFlash){
|
2388
2385
|
var noSwitch = {
|
2389
|
-
1: 1
|
2390
|
-
2: 1
|
2386
|
+
1: 1
|
2391
2387
|
};
|
2392
2388
|
var switchOptions = function(e){
|
2393
2389
|
var media, error, parent;
|
2394
2390
|
if(!options.preferFlash &&
|
2395
2391
|
($(e.target).is('audio, video') || ((parent = e.target.parentNode) && $('source:last', parent)[0] == e.target)) &&
|
2396
|
-
(media = $(e.target).closest('audio, video')) &&
|
2392
|
+
(media = $(e.target).closest('audio, video')) && (error = media.prop('error')) && !noSwitch[error.code]
|
2397
2393
|
){
|
2398
|
-
|
2399
|
-
webshims.warn("There was an unspecified error on a mediaelement");
|
2400
|
-
return;
|
2401
|
-
|
2402
|
-
}
|
2394
|
+
|
2403
2395
|
$(function(){
|
2404
2396
|
if(hasSwf && !options.preferFlash){
|
2405
2397
|
loadSwf();
|
@@ -2411,7 +2403,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
2411
2403
|
$('audio, video').each(function(){
|
2412
2404
|
webshims.mediaelement.selectSource(this);
|
2413
2405
|
});
|
2414
|
-
webshims.error("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src+" Mediaerror: "+ media.prop('error'));
|
2406
|
+
webshims.error("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src+" Mediaerror: "+ media.prop('error')+ 'first error: '+ error);
|
2415
2407
|
}
|
2416
2408
|
}, 9);
|
2417
2409
|
});
|
@@ -2617,7 +2609,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
2617
2609
|
if(src.indexOf('rtmp') === 0){
|
2618
2610
|
return nodeName+'/rtmp';
|
2619
2611
|
}
|
2620
|
-
src = src.split('?')[0].split('.');
|
2612
|
+
src = src.split('?')[0].split('#')[0].split('.');
|
2621
2613
|
src = src[src.length - 1];
|
2622
2614
|
var mt;
|
2623
2615
|
|
@@ -2736,7 +2728,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
2736
2728
|
webshims.error('mediaelementError: '+ message);
|
2737
2729
|
setTimeout(function(){
|
2738
2730
|
if($(elem).data('mediaerror')){
|
2739
|
-
$(elem).trigger('mediaerror');
|
2731
|
+
$(elem).addClass('media-error').trigger('mediaerror');
|
2740
2732
|
}
|
2741
2733
|
}, 1);
|
2742
2734
|
}
|
@@ -2800,6 +2792,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
2800
2792
|
var parent = elem.parentNode;
|
2801
2793
|
|
2802
2794
|
clearTimeout(baseData.loadTimer);
|
2795
|
+
$(elem).removeClass('media-error');
|
2803
2796
|
$.data(elem, 'mediaerror', false);
|
2804
2797
|
|
2805
2798
|
if(!_srces.length || !parent || parent.nodeType != 1 || stopParent.test(parent.nodeName || '')){return;}
|
@@ -2827,7 +2820,9 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
2827
2820
|
var testFixMedia = function(){
|
2828
2821
|
if(webshims.implement(this, 'mediaelement')){
|
2829
2822
|
selectSource(this);
|
2830
|
-
|
2823
|
+
if(!Modernizr.mediaDefaultMuted && $.attr(this, 'muted') != null){
|
2824
|
+
$.prop(this, 'muted', true);
|
2825
|
+
}
|
2831
2826
|
//fixes for FF 12 and IE9/10 || does not hurt, if run in other browsers
|
2832
2827
|
if(hasNative && (!supportsLoop || ('ActiveXObject' in window))){
|
2833
2828
|
var bufferTimer;
|
@@ -3051,6 +3046,7 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
3051
3046
|
networkState: 0,
|
3052
3047
|
videoHeight: 0,
|
3053
3048
|
videoWidth: 0,
|
3049
|
+
seeking: false,
|
3054
3050
|
error: null,
|
3055
3051
|
buffered: {
|
3056
3052
|
start: function(index){
|
@@ -3154,7 +3150,12 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
3154
3150
|
}
|
3155
3151
|
data.readyState = readyState;
|
3156
3152
|
};
|
3157
|
-
|
3153
|
+
var callSeeked = function(data){
|
3154
|
+
if(data.seeking && Math.abs(data.currentTime - data._lastSeektime) < 2){
|
3155
|
+
data.seeking = false;
|
3156
|
+
$(data._elem).triggerHandler('seeked');
|
3157
|
+
}
|
3158
|
+
};
|
3158
3159
|
|
3159
3160
|
|
3160
3161
|
mediaelement.jarisEvent = {};
|
@@ -3183,6 +3184,20 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
3183
3184
|
}
|
3184
3185
|
}
|
3185
3186
|
},
|
3187
|
+
onSeek: function(jaris, data){
|
3188
|
+
data._lastSeektime = jaris.seekTime;
|
3189
|
+
|
3190
|
+
data.seeking = true;
|
3191
|
+
$(data._elem).triggerHandler('seeking');
|
3192
|
+
clearTimeout(data._seekedTimer);
|
3193
|
+
data._seekedTimer = setTimeout(function(){
|
3194
|
+
callSeeked(data);
|
3195
|
+
data.seeking = false;
|
3196
|
+
}, 300);
|
3197
|
+
},
|
3198
|
+
onConnectionFailed: function(){
|
3199
|
+
webshims.error('media error');
|
3200
|
+
},
|
3186
3201
|
onNotBuffering: function(jaris, data){
|
3187
3202
|
setReadyState(3, data);
|
3188
3203
|
},
|
@@ -3238,7 +3253,9 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
3238
3253
|
setReadyState(3, data);
|
3239
3254
|
trigger(data._elem, 'playing');
|
3240
3255
|
}
|
3241
|
-
|
3256
|
+
if(data.seeking){
|
3257
|
+
callSeeked(data);
|
3258
|
+
}
|
3242
3259
|
trigger(data._elem, 'timeupdate');
|
3243
3260
|
},
|
3244
3261
|
onProgress: function(jaris, data){
|
@@ -3294,6 +3311,7 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
3294
3311
|
|
3295
3312
|
return function(jaris, data){
|
3296
3313
|
var i = 0;
|
3314
|
+
|
3297
3315
|
var doneFn = function(){
|
3298
3316
|
if(i > 9){
|
3299
3317
|
data.tryedReframeing = 0;
|
@@ -3453,11 +3471,12 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
3453
3471
|
|
3454
3472
|
|
3455
3473
|
var resetSwfProps = (function(){
|
3456
|
-
var resetProtoProps = ['_calledMeta', 'lastDuration', '_bufferedEnd', '_bufferedStart', '_ppFlag', 'currentSrc', 'currentTime', 'duration', 'ended', 'networkState', 'paused', 'videoHeight', 'videoWidth'];
|
3474
|
+
var resetProtoProps = ['_calledMeta', 'lastDuration', '_bufferedEnd', '_bufferedStart', '_ppFlag', 'currentSrc', 'currentTime', 'duration', 'ended', 'networkState', 'paused', 'seeking', 'videoHeight', 'videoWidth'];
|
3457
3475
|
var len = resetProtoProps.length;
|
3458
3476
|
return function(data){
|
3459
3477
|
|
3460
3478
|
if(!data){return;}
|
3479
|
+
clearTimeout(data._seekedTimer);
|
3461
3480
|
var lenI = len;
|
3462
3481
|
var networkState = data.networkState;
|
3463
3482
|
setReadyState(0, data);
|
@@ -3899,6 +3918,8 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
3899
3918
|
descs[key].set = setFn;
|
3900
3919
|
};
|
3901
3920
|
|
3921
|
+
createGetSetProp('seeking');
|
3922
|
+
|
3902
3923
|
createGetSetProp('volume', function(v){
|
3903
3924
|
var data = getSwfDataFromElem(this);
|
3904
3925
|
if(data){
|
@@ -4009,8 +4030,26 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
4009
4030
|
});
|
4010
4031
|
|
4011
4032
|
mediaSup = webshims.defineNodeNameProperties(nodeName, descs, 'prop');
|
4033
|
+
|
4034
|
+
if(!Modernizr.mediaDefaultMuted){
|
4035
|
+
webshims.defineNodeNameProperties(nodeName, {
|
4036
|
+
defaultMuted: {
|
4037
|
+
get: function(){
|
4038
|
+
return $.attr(this, 'muted') != null;
|
4039
|
+
},
|
4040
|
+
set: function(val){
|
4041
|
+
if(val){
|
4042
|
+
$.attr(this, 'muted', '');
|
4043
|
+
} else {
|
4044
|
+
$(this).removeAttr('muted');
|
4045
|
+
}
|
4046
|
+
}
|
4047
|
+
}
|
4048
|
+
}, 'prop');
|
4049
|
+
}
|
4012
4050
|
});
|
4013
4051
|
|
4052
|
+
|
4014
4053
|
if(hasFlash && $.cleanData){
|
4015
4054
|
var oldClean = $.cleanData;
|
4016
4055
|
var flashNames = {
|