webshims-rails 1.10.6 → 1.10.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/lib/webshims-rails/version.rb +2 -2
- data/vendor/assets/javascripts/webshims/polyfiller.js +14 -7
- data/vendor/assets/javascripts/webshims/shims/color-picker.js +1 -0
- data/vendor/assets/javascripts/webshims/shims/combos/1.js +153 -155
- data/vendor/assets/javascripts/webshims/shims/combos/10.js +168 -136
- data/vendor/assets/javascripts/webshims/shims/combos/11.js +116 -44
- data/vendor/assets/javascripts/webshims/shims/combos/12.js +100 -95
- data/vendor/assets/javascripts/webshims/shims/combos/13.js +100 -95
- data/vendor/assets/javascripts/webshims/shims/combos/14.js +51 -91
- data/vendor/assets/javascripts/webshims/shims/combos/15.js +129 -232
- data/vendor/assets/javascripts/webshims/shims/combos/16.js +228 -326
- data/vendor/assets/javascripts/webshims/shims/combos/17.js +116 -44
- data/vendor/assets/javascripts/webshims/shims/combos/18.js +116 -44
- data/vendor/assets/javascripts/webshims/shims/combos/19.js +210 -214
- data/vendor/assets/javascripts/webshims/shims/combos/2.js +204 -246
- data/vendor/assets/javascripts/webshims/shims/combos/20.js +210 -214
- data/vendor/assets/javascripts/webshims/shims/combos/21.js +59 -28
- data/vendor/assets/javascripts/webshims/shims/combos/23.js +100 -95
- data/vendor/assets/javascripts/webshims/shims/combos/24.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/combos/25.js +210 -214
- data/vendor/assets/javascripts/webshims/shims/combos/26.js +51 -91
- data/vendor/assets/javascripts/webshims/shims/combos/28.js +110 -119
- data/vendor/assets/javascripts/webshims/shims/combos/29.js +6 -0
- data/vendor/assets/javascripts/webshims/shims/combos/3.js +126 -156
- data/vendor/assets/javascripts/webshims/shims/combos/30.js +126 -155
- data/vendor/assets/javascripts/webshims/shims/combos/31.js +104 -151
- data/vendor/assets/javascripts/webshims/shims/combos/4.js +73 -96
- data/vendor/assets/javascripts/webshims/shims/combos/5.js +116 -44
- data/vendor/assets/javascripts/webshims/shims/combos/6.js +116 -44
- data/vendor/assets/javascripts/webshims/shims/combos/7.js +226 -250
- data/vendor/assets/javascripts/webshims/shims/combos/8.js +226 -250
- data/vendor/assets/javascripts/webshims/shims/combos/9.js +168 -136
- data/vendor/assets/javascripts/webshims/shims/dom-extend.js +51 -91
- data/vendor/assets/javascripts/webshims/shims/form-core.js +53 -60
- data/vendor/assets/javascripts/webshims/shims/form-message.js +22 -5
- data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +87 -30
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +2 -76
- data/vendor/assets/javascripts/webshims/shims/form-validation.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/forms-picker.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-fr.js +18 -8
- data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +100 -95
- data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +59 -28
- data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +9 -2
- data/vendor/assets/javascripts/webshims/shims/range-ui.js +29 -14
- data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +21 -7
- data/vendor/assets/javascripts/webshims/shims/styles/shim.css +30 -15
- data/vendor/assets/javascripts/webshims/shims/track-ui.js +6 -0
- metadata +2 -2
@@ -741,6 +741,8 @@ if(Modernizr.inputtypes.date && /webkit/i.test(navigator.userAgent)){
|
|
741
741
|
fixInputTypes = {
|
742
742
|
date: 1,
|
743
743
|
time: 1,
|
744
|
+
month: 1,
|
745
|
+
week: 1,
|
744
746
|
"datetime-local": 1
|
745
747
|
},
|
746
748
|
noFocusEvents = {
|
@@ -810,83 +812,7 @@ if(Modernizr.inputtypes.date && /webkit/i.test(navigator.userAgent)){
|
|
810
812
|
;
|
811
813
|
}
|
812
814
|
;
|
813
|
-
if($.event.customEvent){
|
814
|
-
$.event.customEvent.updateInput = true;
|
815
|
-
}
|
816
815
|
|
817
|
-
(function(){
|
818
|
-
|
819
|
-
var correctValue = function(elem){
|
820
|
-
var i = 1;
|
821
|
-
var len = 3;
|
822
|
-
var abort, val;
|
823
|
-
if(elem.type == 'date' && (isSubmit || !$(elem).is(':focus'))){
|
824
|
-
val = elem.value;
|
825
|
-
if(val && val.length < 10 && (val = val.split('-')) && val.length == len){
|
826
|
-
for(; i < len; i++){
|
827
|
-
if(val[i].length == 1){
|
828
|
-
val[i] = '0'+val[i];
|
829
|
-
} else if(val[i].length != 2){
|
830
|
-
abort = true;
|
831
|
-
break;
|
832
|
-
}
|
833
|
-
}
|
834
|
-
if(!abort){
|
835
|
-
val = val.join('-');
|
836
|
-
$.prop(elem, 'value', val);
|
837
|
-
return val;
|
838
|
-
}
|
839
|
-
}
|
840
|
-
}
|
841
|
-
};
|
842
|
-
var inputCheckValidityDesc, formCheckValidityDesc, inputValueDesc, inputValidityDesc;
|
843
|
-
|
844
|
-
inputCheckValidityDesc = webshims.defineNodeNameProperty('input', 'checkValidity', {
|
845
|
-
prop: {
|
846
|
-
value: function(){
|
847
|
-
correctValue(this);
|
848
|
-
return inputCheckValidityDesc.prop._supvalue.apply(this, arguments);
|
849
|
-
}
|
850
|
-
}
|
851
|
-
});
|
852
|
-
|
853
|
-
formCheckValidityDesc = webshims.defineNodeNameProperty('form', 'checkValidity', {
|
854
|
-
prop: {
|
855
|
-
value: function(){
|
856
|
-
$('input', this).each(function(){
|
857
|
-
correctValue(this);
|
858
|
-
});
|
859
|
-
return formCheckValidityDesc.prop._supvalue.apply(this, arguments);
|
860
|
-
}
|
861
|
-
}
|
862
|
-
});
|
863
|
-
|
864
|
-
inputValueDesc = webshims.defineNodeNameProperty('input', 'value', {
|
865
|
-
prop: {
|
866
|
-
set: function(){
|
867
|
-
return inputValueDesc.prop._supset.apply(this, arguments);
|
868
|
-
},
|
869
|
-
get: function(){
|
870
|
-
return correctValue(this) || inputValueDesc.prop._supget.apply(this, arguments);
|
871
|
-
}
|
872
|
-
}
|
873
|
-
});
|
874
|
-
|
875
|
-
inputValidityDesc = webshims.defineNodeNameProperty('input', 'validity', {
|
876
|
-
prop: {
|
877
|
-
writeable: false,
|
878
|
-
get: function(){
|
879
|
-
correctValue(this);
|
880
|
-
return inputValidityDesc.prop._supget.apply(this, arguments);
|
881
|
-
}
|
882
|
-
}
|
883
|
-
});
|
884
|
-
|
885
|
-
$(document).on('change', function(e){
|
886
|
-
correctValue(e.target);
|
887
|
-
});
|
888
|
-
|
889
|
-
})();
|
890
816
|
|
891
817
|
$(document)
|
892
818
|
.on('focusin', function(e){
|
@@ -244,7 +244,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
244
244
|
clearTimeout(that.timers.repos);
|
245
245
|
that.timers.repos = setTimeout(function(){
|
246
246
|
that.position(visual);
|
247
|
-
},
|
247
|
+
}, 400);
|
248
248
|
});
|
249
249
|
},
|
250
250
|
prepareFor: function(element, visual){
|
@@ -455,7 +455,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
455
455
|
errorBox = this.create(elem, fieldWrapper);
|
456
456
|
} else if(typeof errorBox == 'string'){
|
457
457
|
errorBox = $('#'+errorBox);
|
458
|
-
|
458
|
+
fieldWrapper.data('errorbox', errorBox);
|
459
459
|
}
|
460
460
|
return errorBox;
|
461
461
|
},
|
@@ -10,7 +10,7 @@ webshims.register('forms-picker', function($, webshims, window, document, undefi
|
|
10
10
|
ret.date = ret[0]+'-'+ret[1]+'-'+ret[2];
|
11
11
|
return ret;
|
12
12
|
};
|
13
|
-
var today = getDateArray(new Date());
|
13
|
+
var today = getDateArray(new Date(new Date().getTime() - (new Date().getTimezoneOffset() * 60 * 1000 )));
|
14
14
|
|
15
15
|
|
16
16
|
var _setFocus = function(element, _noFocus){
|
@@ -1,14 +1,17 @@
|
|
1
1
|
jQuery.webshims.validityMessages.fr = {
|
2
2
|
"typeMismatch": {
|
3
|
+
"defaultMessage": "Veuillez saisir une valeur valide.",
|
3
4
|
"email": "Veuillez saisir une adresse courriel valide.",
|
4
5
|
"url": "Veuillez saisir une URL.",
|
5
|
-
"number": "
|
6
|
-
"date": "
|
7
|
-
"
|
8
|
-
"
|
9
|
-
"
|
6
|
+
"number": "Veuillez saisir un nombre valide.",
|
7
|
+
"date": "Veuillez saisir une date valide.",
|
8
|
+
"month": "Veuillez saisir un mois valide.",
|
9
|
+
"week": "Veuillez saisir un numéro de semaine valide.",
|
10
|
+
"time": "Veuillez saisir une heure valide.",
|
11
|
+
"range": "Veuillez saisir une borne valide.",
|
12
|
+
"datetime-local": "Veuillez saisir une date valide."
|
10
13
|
},
|
11
|
-
"tooLong": "
|
14
|
+
"tooLong": "Contenu saisi trop long.",
|
12
15
|
"patternMismatch": "Veuillez modifier la valeur du champ pour correspondre au format demandé : {%title}.",
|
13
16
|
"valueMissing": {
|
14
17
|
"defaultMessage": "Veuillez compléter ce champ.",
|
@@ -18,7 +21,7 @@ jQuery.webshims.validityMessages.fr = {
|
|
18
21
|
},
|
19
22
|
"rangeUnderflow": {
|
20
23
|
"defaultMessage": "Cette valeur doit être supérieure ou égale à {%min}.",
|
21
|
-
|
24
|
+
"date": "Cette valeur doit être supérieure ou égale à {%min}.",
|
22
25
|
"time": "Cette valeur doit être supérieure ou égale à {%min}.",
|
23
26
|
"datetime-local": "Cette valeur doit être supérieure ou égale à {%min}."
|
24
27
|
},
|
@@ -42,8 +45,15 @@ jQuery.webshims.formcfg.fr = {
|
|
42
45
|
patterns: {
|
43
46
|
d: 'dd/mm/yy'
|
44
47
|
},
|
48
|
+
month: {
|
49
|
+
currentText: 'Ce mois-ci'
|
50
|
+
},
|
51
|
+
week: {
|
52
|
+
currentText: 'Cette semaine-ci'
|
53
|
+
},
|
45
54
|
date: {
|
46
55
|
closeText: 'Fermer',
|
56
|
+
clear: 'Effacer',
|
47
57
|
prevText: 'Précédent',
|
48
58
|
nextText: 'Suivant',
|
49
59
|
currentText: 'Aujourd\'hui',
|
@@ -60,4 +70,4 @@ jQuery.webshims.formcfg.fr = {
|
|
60
70
|
showMonthAfterYear: false,
|
61
71
|
yearSuffix: ''
|
62
72
|
}
|
63
|
-
};
|
73
|
+
};
|
@@ -32,52 +32,55 @@
|
|
32
32
|
});
|
33
33
|
webshims.loader.loadList(['mediaelement-native-fix']);
|
34
34
|
}
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
var parent;
|
45
|
-
if(!options.preferFlash &&
|
35
|
+
|
36
|
+
if(!options.preferFlash){
|
37
|
+
var noSwitch = {
|
38
|
+
1: 1,
|
39
|
+
2: 1
|
40
|
+
};
|
41
|
+
var switchOptions = function(e){
|
42
|
+
var media, error, parent;
|
43
|
+
if(!options.preferFlash &&
|
46
44
|
($(e.target).is('audio, video') || ((parent = e.target.parentNode) && $('source:last', parent)[0] == e.target)) &&
|
47
|
-
(media = $(e.target).closest('audio, video')) && !noSwitch[media.prop('error')]
|
45
|
+
(media = $(e.target).closest('audio, video')) && !noSwitch[(error = media.prop('error'))]
|
48
46
|
){
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
setTimeout(function(){
|
54
|
-
if(!options.preferFlash && webshims.mediaelement.createSWF && !media.is('.nonnative-api-active')){
|
55
|
-
options.preferFlash = true;
|
56
|
-
document.removeEventListener('error', switchOptions, true);
|
57
|
-
$('audio, video').each(function(){
|
58
|
-
webshims.mediaelement.selectSource(this);
|
59
|
-
});
|
60
|
-
webshims.error("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src+" Mediaerror: "+ media.prop('error'));
|
61
|
-
}
|
62
|
-
}, 9);
|
63
|
-
});
|
64
|
-
} else{
|
65
|
-
document.removeEventListener('error', switchOptions, true);
|
47
|
+
if(error == null){
|
48
|
+
webshims.warn("There was an unspecified error on a mediaelement");
|
49
|
+
return;
|
50
|
+
|
66
51
|
}
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
52
|
+
$(function(){
|
53
|
+
if(hasSwf && !options.preferFlash){
|
54
|
+
loadSwf();
|
55
|
+
webshims.ready('WINDOWLOAD '+swfType, function(){
|
56
|
+
setTimeout(function(){
|
57
|
+
if(!options.preferFlash && webshims.mediaelement.createSWF && !media.is('.nonnative-api-active')){
|
58
|
+
options.preferFlash = true;
|
59
|
+
document.removeEventListener('error', switchOptions, true);
|
60
|
+
$('audio, video').each(function(){
|
61
|
+
webshims.mediaelement.selectSource(this);
|
62
|
+
});
|
63
|
+
webshims.error("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src+" Mediaerror: "+ media.prop('error'));
|
64
|
+
}
|
65
|
+
}, 9);
|
66
|
+
});
|
67
|
+
} else{
|
68
|
+
document.removeEventListener('error', switchOptions, true);
|
69
|
+
}
|
70
|
+
});
|
71
|
+
}
|
72
|
+
};
|
73
|
+
document.addEventListener('error', switchOptions, true);
|
74
|
+
$('audio, video').each(function(){
|
75
|
+
var error = $.prop(this, 'error');
|
76
|
+
if(error && !noSwitch[error]){
|
77
|
+
switchOptions({target: this});
|
78
|
+
return false;
|
79
|
+
}
|
80
|
+
});
|
81
|
+
}
|
78
82
|
}
|
79
83
|
|
80
|
-
|
81
84
|
if(Modernizr.track && !bugs.track){
|
82
85
|
(function(){
|
83
86
|
|
@@ -458,63 +461,14 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
458
461
|
|
459
462
|
});
|
460
463
|
|
461
|
-
|
462
|
-
if(!supportsLoop){
|
463
|
-
webshims.defineNodeNamesBooleanProperty(['audio', 'video'], 'loop');
|
464
|
-
}
|
465
|
-
|
466
|
-
['audio', 'video'].forEach(function(nodeName){
|
467
|
-
var supLoad = webshims.defineNodeNameProperty(nodeName, 'load', {
|
468
|
-
prop: {
|
469
|
-
value: function(){
|
470
|
-
var data = webshims.data(this, 'mediaelement');
|
471
|
-
selectSource(this, data);
|
472
|
-
if(hasNative && (!data || data.isActive == 'html5') && supLoad.prop._supvalue){
|
473
|
-
supLoad.prop._supvalue.apply(this, arguments);
|
474
|
-
}
|
475
|
-
}
|
476
|
-
}
|
477
|
-
});
|
478
|
-
nativeCanPlayType[nodeName] = webshims.defineNodeNameProperty(nodeName, 'canPlayType', {
|
479
|
-
prop: {
|
480
|
-
value: function(type){
|
481
|
-
var ret = '';
|
482
|
-
if(hasNative && nativeCanPlayType[nodeName].prop._supvalue){
|
483
|
-
ret = nativeCanPlayType[nodeName].prop._supvalue.call(this, type);
|
484
|
-
if(ret == 'no'){
|
485
|
-
ret = '';
|
486
|
-
}
|
487
|
-
}
|
488
|
-
if(!ret && hasSwf){
|
489
|
-
type = $.trim((type || '').split(';')[0]);
|
490
|
-
if(mediaelement.swfMimeTypes.indexOf(type) != -1){
|
491
|
-
ret = 'maybe';
|
492
|
-
}
|
493
|
-
}
|
494
|
-
return ret;
|
495
|
-
}
|
496
|
-
}
|
497
|
-
});
|
498
|
-
});
|
499
|
-
webshims.onNodeNamesPropertyModify(['audio', 'video'], ['src', 'poster'], {
|
500
|
-
set: function(){
|
501
|
-
var elem = this;
|
502
|
-
var baseData = webshims.data(elem, 'mediaelementBase') || webshims.data(elem, 'mediaelementBase', {});
|
503
|
-
clearTimeout(baseData.loadTimer);
|
504
|
-
baseData.loadTimer = setTimeout(function(){
|
505
|
-
selectSource(elem);
|
506
|
-
elem = null;
|
507
|
-
}, 9);
|
508
|
-
}
|
509
|
-
});
|
510
|
-
});
|
511
|
-
|
464
|
+
var handleMedia = false;
|
512
465
|
var initMediaElements = function(){
|
513
466
|
var testFixMedia = function(){
|
514
467
|
if(webshims.implement(this, 'mediaelement')){
|
515
468
|
selectSource(this);
|
516
469
|
|
517
|
-
if
|
470
|
+
//fixes for FF 12 and IE9/10 || does not hurt, if run in other browsers
|
471
|
+
if(hasNative && (!supportsLoop || ('ActiveXObject' in window))){
|
518
472
|
var bufferTimer;
|
519
473
|
var lastBuffered;
|
520
474
|
var elem = this;
|
@@ -543,7 +497,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
543
497
|
lastBuffered = getBufferedString();
|
544
498
|
}
|
545
499
|
clearTimeout(bufferTimer);
|
546
|
-
bufferTimer = setTimeout(testBuffer,
|
500
|
+
bufferTimer = setTimeout(testBuffer, 400);
|
547
501
|
},
|
548
502
|
'emptied stalled mediaerror abort suspend': function(e){
|
549
503
|
if(e.type == 'emptied'){
|
@@ -560,11 +514,62 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
560
514
|
}
|
561
515
|
|
562
516
|
};
|
563
|
-
|
517
|
+
|
564
518
|
|
565
519
|
|
566
520
|
webshims.ready('dom-support', function(){
|
567
521
|
handleMedia = true;
|
522
|
+
|
523
|
+
if(!supportsLoop){
|
524
|
+
webshims.defineNodeNamesBooleanProperty(['audio', 'video'], 'loop');
|
525
|
+
}
|
526
|
+
|
527
|
+
['audio', 'video'].forEach(function(nodeName){
|
528
|
+
var supLoad = webshims.defineNodeNameProperty(nodeName, 'load', {
|
529
|
+
prop: {
|
530
|
+
value: function(){
|
531
|
+
var data = webshims.data(this, 'mediaelement');
|
532
|
+
selectSource(this, data);
|
533
|
+
if(hasNative && (!data || data.isActive == 'html5') && supLoad.prop._supvalue){
|
534
|
+
supLoad.prop._supvalue.apply(this, arguments);
|
535
|
+
}
|
536
|
+
}
|
537
|
+
}
|
538
|
+
});
|
539
|
+
nativeCanPlayType[nodeName] = webshims.defineNodeNameProperty(nodeName, 'canPlayType', {
|
540
|
+
prop: {
|
541
|
+
value: function(type){
|
542
|
+
var ret = '';
|
543
|
+
if(hasNative && nativeCanPlayType[nodeName].prop._supvalue){
|
544
|
+
ret = nativeCanPlayType[nodeName].prop._supvalue.call(this, type);
|
545
|
+
if(ret == 'no'){
|
546
|
+
ret = '';
|
547
|
+
}
|
548
|
+
}
|
549
|
+
if(!ret && hasSwf){
|
550
|
+
type = $.trim((type || '').split(';')[0]);
|
551
|
+
if(mediaelement.swfMimeTypes.indexOf(type) != -1){
|
552
|
+
ret = 'maybe';
|
553
|
+
}
|
554
|
+
}
|
555
|
+
return ret;
|
556
|
+
}
|
557
|
+
}
|
558
|
+
});
|
559
|
+
});
|
560
|
+
webshims.onNodeNamesPropertyModify(['audio', 'video'], ['src', 'poster'], {
|
561
|
+
set: function(){
|
562
|
+
var elem = this;
|
563
|
+
var baseData = webshims.data(elem, 'mediaelementBase') || webshims.data(elem, 'mediaelementBase', {});
|
564
|
+
clearTimeout(baseData.loadTimer);
|
565
|
+
baseData.loadTimer = setTimeout(function(){
|
566
|
+
selectSource(elem);
|
567
|
+
elem = null;
|
568
|
+
}, 9);
|
569
|
+
}
|
570
|
+
});
|
571
|
+
|
572
|
+
|
568
573
|
webshims.addReady(function(context, insertedElement){
|
569
574
|
var media = $('video, audio', context)
|
570
575
|
.add(insertedElement.filter('video, audio'))
|
@@ -6,6 +6,7 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
6
6
|
var hasNative = Modernizr.audio && Modernizr.video;
|
7
7
|
var hasFlash = swfmini.hasFlashPlayerVersion('9.0.115');
|
8
8
|
var loadedSwf = 0;
|
9
|
+
var needsLoadPreload = 'ActiveXObject' in window && hasNative;
|
9
10
|
var getProps = {
|
10
11
|
paused: true,
|
11
12
|
ended: false,
|
@@ -119,12 +120,7 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
119
120
|
data.readyState = readyState;
|
120
121
|
};
|
121
122
|
|
122
|
-
|
123
|
-
updatemediaelementdimensions: true,
|
124
|
-
flashblocker: true,
|
125
|
-
swfstageresize: true,
|
126
|
-
mediaelementapichange: true
|
127
|
-
});
|
123
|
+
|
128
124
|
|
129
125
|
mediaelement.jarisEvent = {};
|
130
126
|
var localConnectionTimer;
|
@@ -373,8 +369,13 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
373
369
|
var isNativeHTML5 = ( event.originalEvent && event.originalEvent.type === event.type );
|
374
370
|
if( isNativeHTML5 == (data.activating == 'third') ){
|
375
371
|
event.stopImmediatePropagation();
|
376
|
-
|
377
|
-
|
372
|
+
|
373
|
+
if(stopEvents[event.type]){
|
374
|
+
if(data.isActive != data.activating){
|
375
|
+
$(event.target).pause();
|
376
|
+
} else if(isNativeHTML5){
|
377
|
+
($.prop(event.target, 'pause')._supvalue || $.noop).apply(event.target);
|
378
|
+
}
|
378
379
|
}
|
379
380
|
}
|
380
381
|
};
|
@@ -438,15 +439,18 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
438
439
|
})();
|
439
440
|
|
440
441
|
var setElementDimension = function(data, hasControls){
|
442
|
+
var cAttr;
|
441
443
|
var elem = data._elem;
|
442
444
|
var box = data.shadowElem;
|
445
|
+
|
443
446
|
$(elem)[hasControls ? 'addClass' : 'removeClass']('webshims-controls');
|
444
447
|
if(data._elemNodeName == 'audio' && !hasControls){
|
445
448
|
box.css({width: 0, height: 0});
|
446
449
|
} else {
|
450
|
+
|
447
451
|
box.css({
|
448
|
-
width: elem.style.width || $(elem).width(),
|
449
|
-
height: elem.style.height || $(elem).height()
|
452
|
+
width: elem.style.width || ((cAttr = $(elem).attr('width')) && cAttr+'px') || $(elem).width(),
|
453
|
+
height: elem.style.height|| ((cAttr = $(elem).attr('height')) && cAttr+'px') || $(elem).height()
|
450
454
|
});
|
451
455
|
}
|
452
456
|
};
|
@@ -475,7 +479,7 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
475
479
|
replaceVar = function(val){
|
476
480
|
return (val.replace) ? val.replace(regs.A, '%26').replace(regs.a, '%26').replace(regs.e, '%3D').replace(regs.q, '%3F') : val;
|
477
481
|
};
|
478
|
-
|
482
|
+
|
479
483
|
mediaelement.createSWF = function( elem, canPlaySrc, data ){
|
480
484
|
if(!hasFlash){
|
481
485
|
setTimeout(function(){
|
@@ -483,7 +487,7 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
483
487
|
}, 1);
|
484
488
|
return;
|
485
489
|
}
|
486
|
-
|
490
|
+
|
487
491
|
if(loadedSwf < 1){
|
488
492
|
loadedSwf = 1;
|
489
493
|
} else {
|
@@ -494,7 +498,7 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
494
498
|
}
|
495
499
|
|
496
500
|
if($.attr(elem, 'height') || $.attr(elem, 'width')){
|
497
|
-
webshims.warn("width or height content attributes used. Webshims
|
501
|
+
webshims.warn("width or height content attributes used. Webshims prefers the usage of CSS (computed styles or inline styles) to detect size of a video/audio. It's really more powerfull.");
|
498
502
|
}
|
499
503
|
|
500
504
|
var isRtmp = canPlaySrc.type == 'audio/rtmp' || canPlaySrc.type == 'video/rtmp';
|
@@ -591,6 +595,7 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
591
595
|
}
|
592
596
|
}
|
593
597
|
}));
|
598
|
+
|
594
599
|
setElementDimension(data, hasControls);
|
595
600
|
|
596
601
|
box.insertBefore(elem);
|
@@ -600,16 +605,31 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
600
605
|
}
|
601
606
|
|
602
607
|
webshims.addShadowDom(elem, box);
|
608
|
+
if(!webshims.data(elem, 'mediaelement')){
|
609
|
+
webshims.data(elem, 'mediaelement', data);
|
610
|
+
}
|
603
611
|
addMediaToStopEvents(elem);
|
612
|
+
|
604
613
|
mediaelement.setActive(elem, 'third', data);
|
614
|
+
|
605
615
|
$(elem)
|
606
616
|
.on({'updatemediaelementdimensions': setDimension})
|
607
617
|
.onWSOff('updateshadowdom', setDimension)
|
618
|
+
.on('remove', function(e){
|
619
|
+
if(!e.originalEvent && mediaelement.jarisEvent[data.id] && mediaelement.jarisEvent[data.id].elem == elem){
|
620
|
+
delete mediaelement.jarisEvent[data.id];
|
621
|
+
clearTimeout(localConnectionTimer);
|
622
|
+
clearTimeout(data.flashBlock);
|
623
|
+
}
|
624
|
+
box.remove();
|
625
|
+
})
|
608
626
|
;
|
609
627
|
}
|
610
628
|
|
611
|
-
|
629
|
+
|
630
|
+
if(!mediaelement.jarisEvent[data.id] || mediaelement.jarisEvent[data.id].elem != elem){
|
612
631
|
mediaelement.jarisEvent[data.id] = function(jaris){
|
632
|
+
|
613
633
|
if(jaris.type == 'ready'){
|
614
634
|
var onReady = function(){
|
615
635
|
if(data.api){
|
@@ -642,8 +662,8 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
642
662
|
}
|
643
663
|
data.duration = jaris.duration;
|
644
664
|
}
|
645
|
-
|
646
665
|
};
|
666
|
+
mediaelement.jarisEvent[data.id].elem = elem;
|
647
667
|
}
|
648
668
|
|
649
669
|
$.extend(vars,
|
@@ -669,27 +689,27 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
669
689
|
clearTimeout(data.flashBlock);
|
670
690
|
|
671
691
|
swfmini.embedSWF(playerSwfPath, elemId, "100%", "100%", "9.0.115", false, vars, params, attrs, function(swfData){
|
672
|
-
|
673
692
|
if(swfData.success){
|
674
|
-
|
675
|
-
data.api = swfData.ref;
|
676
|
-
|
677
|
-
if(!hasControls){
|
678
|
-
$(swfData.ref).attr('tabindex', '-1').css('outline', 'none');
|
679
|
-
}
|
680
|
-
|
681
|
-
data.flashBlock = setTimeout(function(){
|
693
|
+
var fBlocker = function(){
|
682
694
|
if((!swfData.ref.parentNode && box[0].parentNode) || swfData.ref.style.display == "none"){
|
683
695
|
box.addClass('flashblocker-assumed');
|
684
696
|
$(elem).trigger('flashblocker');
|
685
697
|
webshims.warn("flashblocker assumed");
|
686
698
|
}
|
687
699
|
$(swfData.ref).css({'minHeight': '2px', 'minWidth': '2px', display: 'block'});
|
688
|
-
}
|
700
|
+
};
|
701
|
+
data.api = swfData.ref;
|
702
|
+
|
703
|
+
if(!hasControls){
|
704
|
+
$(swfData.ref).attr('tabindex', '-1').css('outline', 'none');
|
705
|
+
}
|
706
|
+
|
707
|
+
data.flashBlock = setTimeout(fBlocker, 99);
|
689
708
|
|
690
709
|
if(!localConnectionTimer){
|
691
710
|
clearTimeout(localConnectionTimer);
|
692
711
|
localConnectionTimer = setTimeout(function(){
|
712
|
+
fBlocker();
|
693
713
|
var flash = $(swfData.ref);
|
694
714
|
if(flash[0].offsetWidth > 1 && flash[0].offsetHeight > 1 && location.protocol.indexOf('file:') === 0){
|
695
715
|
webshims.error("Add your local development-directory to the local-trusted security sandbox: http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html");
|
@@ -843,12 +863,23 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
843
863
|
}
|
844
864
|
});
|
845
865
|
|
866
|
+
|
846
867
|
webshims.onNodeNamesPropertyModify(nodeName, 'preload', function(val){
|
847
|
-
var data
|
868
|
+
var data, baseData, elem;
|
848
869
|
|
849
870
|
|
850
|
-
if(
|
851
|
-
|
871
|
+
if(bufferSrc(this)){
|
872
|
+
data = getSwfDataFromElem(this);
|
873
|
+
if(data){
|
874
|
+
queueSwfMethod(this, 'api_preload', [], data);
|
875
|
+
} else if(needsLoadPreload && this.paused && !this.error && !$.data(this, 'mediaerror') && !this.readyState && !this.networkState && !this.autoplay && $(this).is(':not(.nonnative-api-active)')){
|
876
|
+
elem = this;
|
877
|
+
baseData = webshims.data(elem, 'mediaelementBase') || webshims.data(elem, 'mediaelementBase', {});
|
878
|
+
clearTimeout(baseData.loadTimer);
|
879
|
+
baseData.loadTimer = setTimeout(function(){
|
880
|
+
$(elem).mediaLoad();
|
881
|
+
}, 9);
|
882
|
+
}
|
852
883
|
}
|
853
884
|
});
|
854
885
|
|