webshims-rails 0.4.7 → 1.10.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/lib/webshims-rails/version.rb +2 -2
- data/vendor/assets/javascripts/webshims/extras/custom-validity.js +1 -1
- data/vendor/assets/javascripts/webshims/extras/mousepress.js +1 -1
- data/vendor/assets/javascripts/webshims/polyfiller.js +197 -166
- data/vendor/assets/javascripts/webshims/shims/combos/1.js +1711 -1609
- data/vendor/assets/javascripts/webshims/shims/combos/10.js +2575 -2253
- data/vendor/assets/javascripts/webshims/shims/combos/11.js +2452 -1476
- data/vendor/assets/javascripts/webshims/shims/combos/12.js +1405 -1159
- data/vendor/assets/javascripts/webshims/shims/combos/13.js +1316 -963
- data/vendor/assets/javascripts/webshims/shims/combos/14.js +1862 -179
- data/vendor/assets/javascripts/webshims/shims/combos/15.js +4327 -287
- data/vendor/assets/javascripts/webshims/shims/combos/16.js +3887 -586
- data/vendor/assets/javascripts/webshims/shims/combos/17.js +2911 -2159
- data/vendor/assets/javascripts/webshims/shims/combos/18.js +3425 -1730
- data/vendor/assets/javascripts/webshims/shims/combos/19.js +2854 -1203
- data/vendor/assets/javascripts/webshims/shims/combos/2.js +3351 -2130
- data/vendor/assets/javascripts/webshims/shims/combos/20.js +2426 -581
- data/vendor/assets/javascripts/webshims/shims/combos/21.js +1915 -1574
- data/vendor/assets/javascripts/webshims/shims/combos/22.js +864 -2275
- data/vendor/assets/javascripts/webshims/shims/combos/23.js +609 -1811
- data/vendor/assets/javascripts/webshims/shims/combos/3.js +1655 -2736
- data/vendor/assets/javascripts/webshims/shims/combos/4.js +1037 -603
- data/vendor/assets/javascripts/webshims/shims/combos/5.js +3100 -773
- data/vendor/assets/javascripts/webshims/shims/combos/6.js +3631 -840
- data/vendor/assets/javascripts/webshims/shims/combos/7.js +3596 -1354
- data/vendor/assets/javascripts/webshims/shims/combos/8.js +1731 -188
- data/vendor/assets/javascripts/webshims/shims/combos/9.js +3243 -1431
- data/vendor/assets/javascripts/webshims/shims/dom-extend.js +107 -18
- data/vendor/assets/javascripts/webshims/shims/es5.js +1 -0
- data/vendor/assets/javascripts/webshims/shims/form-core.js +553 -464
- data/vendor/assets/javascripts/webshims/shims/form-datalist.js +160 -154
- data/vendor/assets/javascripts/webshims/shims/form-message.js +73 -49
- data/vendor/assets/javascripts/webshims/shims/form-native-extend.js +18 -1
- data/vendor/assets/javascripts/webshims/shims/form-number-date-api.js +161 -36
- data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +2130 -813
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +206 -58
- data/vendor/assets/javascripts/webshims/shims/i18n/{errormessages-ar.js → formcfg-ar.js} +30 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/{errormessages-ch-ZN.js → formcfg-ch-ZN.js} +31 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/{errormessages-de.txt → formcfg-de.txt} +50 -11
- data/vendor/assets/javascripts/webshims/shims/i18n/{errormessages-el.js → formcfg-el.js} +31 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/{errormessages-en.txt → formcfg-en.txt} +44 -11
- data/vendor/assets/javascripts/webshims/shims/i18n/{errormessages-es.js → formcfg-es.js} +31 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/{errormessages-fr.js → formcfg-fr.js} +31 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/{errormessages-he.js → formcfg-he.js} +31 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/{errormessages-hi.js → formcfg-hi.js} +31 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/{errormessages-hu.js → formcfg-hu.js} +31 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/{errormessages-it.js → formcfg-it.js} +31 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/{errormessages-ja.js → formcfg-ja.js} +31 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/{errormessages-nl.js → formcfg-nl.js} +31 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/{errormessages-pt-PT.js → formcfg-pt-PT.js} +31 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/{errormessages-ru.js → formcfg-ru.js} +31 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/{errormessages-sv.js → formcfg-sv.js} +32 -0
- data/vendor/assets/javascripts/webshims/shims/json-storage.js +16 -10
- data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +155 -122
- data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +76 -41
- data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +8 -16
- data/vendor/assets/javascripts/webshims/shims/range-ui.js +388 -0
- data/vendor/assets/javascripts/webshims/shims/styles/config.rb +12 -0
- data/vendor/assets/javascripts/webshims/shims/styles/forms.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +1186 -0
- data/vendor/assets/javascripts/webshims/shims/styles/shim.css +868 -548
- data/vendor/assets/javascripts/webshims/shims/styles/vertical-range.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
- data/vendor/assets/javascripts/webshims/shims/swfmini.js +497 -0
- data/vendor/assets/javascripts/webshims/shims/track-ui.js +3 -0
- data/vendor/assets/javascripts/webshims/shims/track.js +29 -29
- metadata +26 -125
- data/vendor/assets/javascripts/webshims/minified/extras/custom-validity.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/extras/modernizr-custom.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/extras/mousepress.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/polyfiller.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvas/canvas2png.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvas/flashcanvas.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvas/flashcanvas.swf +0 -0
- data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvas/proxy.php +0 -73
- data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvas/save.php +0 -49
- data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvasPro/canvas2png.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvasPro/flash10canvas.swf +0 -0
- data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvasPro/flash9canvas.swf +0 -0
- data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvasPro/flashcanvas.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvasPro/proxy.php +0 -73
- data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvasPro/save.php +0 -49
- data/vendor/assets/javascripts/webshims/minified/shims/combos/1.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/10.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/11.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/12.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/13.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/14.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/15.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/16.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/17.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/18.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/19.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/2.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/20.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/21.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/22.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/23.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/24.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/25.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/26.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/27.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/3.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/4.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/5.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/59.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/6.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/7.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/8.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/9.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/details.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/dom-extend.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/es5.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/excanvas.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/form-core.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/form-datalist.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/form-message.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/form-native-extend.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/form-number-date-api.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/form-number-date-ui.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/form-shim-extend.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/geolocation.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-ar.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-ch-ZN.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-de.txt +0 -33
- data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-el.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-en.txt +0 -34
- data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-es.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-fr.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-he.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-hi.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-hu.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-it.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-ja.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-nl.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-pt-PT.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-ru.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-sv.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/json-storage.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/jwplayer/license.txt +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/jwplayer/player.swf +0 -0
- data/vendor/assets/javascripts/webshims/minified/shims/jwplayer/readme.html +0 -87
- data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-core.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-jaris.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-native-fix.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-swf.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-yt.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/styles/details-arrows.png +0 -0
- data/vendor/assets/javascripts/webshims/minified/shims/styles/forms.png +0 -0
- data/vendor/assets/javascripts/webshims/minified/shims/styles/polyfill-loader.gif +0 -0
- data/vendor/assets/javascripts/webshims/minified/shims/styles/shim.css +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/swf/JarisFLVPlayer.swf +0 -0
- data/vendor/assets/javascripts/webshims/minified/shims/swf/jwwebshims.swf +0 -0
- data/vendor/assets/javascripts/webshims/minified/shims/swf/localStorage.swf +0 -0
- data/vendor/assets/javascripts/webshims/minified/shims/track-ui.js +0 -1
- data/vendor/assets/javascripts/webshims/minified/shims/track.js +0 -1
- data/vendor/assets/javascripts/webshims/shims/FlashCanvas/README +0 -62
- data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/README +0 -82
- data/vendor/assets/javascripts/webshims/shims/combos/24.js +0 -2872
- data/vendor/assets/javascripts/webshims/shims/combos/25.js +0 -2376
- data/vendor/assets/javascripts/webshims/shims/combos/26.js +0 -3009
- data/vendor/assets/javascripts/webshims/shims/combos/27.js +0 -4150
- data/vendor/assets/javascripts/webshims/shims/combos/59.js +0 -1747
- data/vendor/assets/javascripts/webshims/shims/jwplayer/license.txt +0 -1
- data/vendor/assets/javascripts/webshims/shims/jwplayer/player.swf +0 -0
- data/vendor/assets/javascripts/webshims/shims/jwplayer/readme.html +0 -87
- data/vendor/assets/javascripts/webshims/shims/mediaelement-swf.js +0 -972
@@ -2,9 +2,9 @@ jQuery.webshims.register('mediaelement-jaris', function($, webshims, window, doc
|
|
2
2
|
"use strict";
|
3
3
|
|
4
4
|
var mediaelement = webshims.mediaelement;
|
5
|
-
var
|
5
|
+
var swfmini = window.swfmini;
|
6
6
|
var hasNative = Modernizr.audio && Modernizr.video;
|
7
|
-
var hasFlash =
|
7
|
+
var hasFlash = swfmini.hasFlashPlayerVersion('9.0.115');
|
8
8
|
var loadedSwf = 0;
|
9
9
|
var getProps = {
|
10
10
|
paused: true,
|
@@ -366,11 +366,6 @@ jQuery.webshims.register('mediaelement-jaris', function($, webshims, window, doc
|
|
366
366
|
var hidevents = hideEvtArray.map(function(evt){
|
367
367
|
return evt +'.webshimspolyfill';
|
368
368
|
}).join(' ');
|
369
|
-
var opposite = {
|
370
|
-
'html5': 'third',
|
371
|
-
'third': 'html5'
|
372
|
-
};
|
373
|
-
|
374
369
|
|
375
370
|
var hidePlayerEvents = function(event){
|
376
371
|
var data = webshims.data(event.target, 'mediaelement');
|
@@ -378,14 +373,8 @@ jQuery.webshims.register('mediaelement-jaris', function($, webshims, window, doc
|
|
378
373
|
var isNativeHTML5 = ( event.originalEvent && event.originalEvent.type === event.type );
|
379
374
|
if( isNativeHTML5 == (data.activating == 'third') ){
|
380
375
|
event.stopImmediatePropagation();
|
381
|
-
if(stopEvents[event.type]){
|
382
|
-
|
383
|
-
$(event.target).pause();
|
384
|
-
} else {
|
385
|
-
data.isActive = opposite[data.isActive];
|
386
|
-
$(event.target).pause();
|
387
|
-
data.isActive = opposite[data.isActive];
|
388
|
-
}
|
376
|
+
if(stopEvents[event.type] && data.isActive != data.activating){
|
377
|
+
$(event.target).pause();
|
389
378
|
}
|
390
379
|
}
|
391
380
|
};
|
@@ -462,6 +451,31 @@ jQuery.webshims.register('mediaelement-jaris', function($, webshims, window, doc
|
|
462
451
|
}
|
463
452
|
};
|
464
453
|
|
454
|
+
var bufferSrc = (function(){
|
455
|
+
var preloads = {
|
456
|
+
'': 1,
|
457
|
+
'auto': 1
|
458
|
+
};
|
459
|
+
return function(elem){
|
460
|
+
var preload = $.attr(elem, 'preload');
|
461
|
+
if(preload == null || preload == 'none' || $.prop(elem, 'autoplay')){
|
462
|
+
return false;
|
463
|
+
}
|
464
|
+
preload = $.prop(elem, 'preload');
|
465
|
+
return !!(preloads[preload] || (preload == 'metadata' && $(elem).is('.preload-in-doubt, video:not([poster])')));
|
466
|
+
};
|
467
|
+
})();
|
468
|
+
|
469
|
+
var regs = {
|
470
|
+
A: /&/g,
|
471
|
+
a: /&/g,
|
472
|
+
e: /\=/g,
|
473
|
+
q: /\?/g
|
474
|
+
},
|
475
|
+
replaceVar = function(val){
|
476
|
+
return (val.replace) ? val.replace(regs.A, '%26').replace(regs.a, '%26').replace(regs.e, '%3D').replace(regs.q, '%3F') : val;
|
477
|
+
};
|
478
|
+
|
465
479
|
mediaelement.createSWF = function( elem, canPlaySrc, data ){
|
466
480
|
if(!hasFlash){
|
467
481
|
setTimeout(function(){
|
@@ -475,17 +489,23 @@ jQuery.webshims.register('mediaelement-jaris', function($, webshims, window, doc
|
|
475
489
|
} else {
|
476
490
|
loadedSwf++;
|
477
491
|
}
|
492
|
+
if(!data){
|
493
|
+
data = webshims.data(elem, 'mediaelement');
|
494
|
+
}
|
495
|
+
|
496
|
+
if($.attr(elem, 'height') || $.attr(elem, 'width')){
|
497
|
+
webshims.warn("width or height content attributes used. Webshims only uses CSS (computed styles or inline styles) to detect size of a video/audio");
|
498
|
+
}
|
499
|
+
|
478
500
|
var isRtmp = canPlaySrc.type == 'audio/rtmp' || canPlaySrc.type == 'video/rtmp';
|
479
501
|
var vars = $.extend({}, options.vars, {
|
480
|
-
poster: $.attr(elem, 'poster') && $.prop(elem, 'poster') || '',
|
481
|
-
source: canPlaySrc.streamId || canPlaySrc.srcProp,
|
482
|
-
server: canPlaySrc.server || ''
|
502
|
+
poster: replaceVar($.attr(elem, 'poster') && $.prop(elem, 'poster') || ''),
|
503
|
+
source: replaceVar(canPlaySrc.streamId || canPlaySrc.srcProp),
|
504
|
+
server: replaceVar(canPlaySrc.server || '')
|
483
505
|
});
|
484
506
|
var elemVars = $(elem).data('vars') || {};
|
485
507
|
|
486
|
-
|
487
|
-
data = webshims.data(elem, 'mediaelement');
|
488
|
-
}
|
508
|
+
|
489
509
|
|
490
510
|
var hasControls = $.prop(elem, 'controls');
|
491
511
|
var elemId = 'jarisplayer-'+ webshims.getID(elem);
|
@@ -505,6 +525,10 @@ jQuery.webshims.register('mediaelement-jaris', function($, webshims, window, doc
|
|
505
525
|
},
|
506
526
|
$(elem).data('attrs')
|
507
527
|
);
|
528
|
+
var setDimension = function(){
|
529
|
+
setElementDimension(data, $.prop(elem, 'controls'));
|
530
|
+
};
|
531
|
+
|
508
532
|
var box;
|
509
533
|
|
510
534
|
if(data && data.swfCreated){
|
@@ -519,10 +543,6 @@ jQuery.webshims.register('mediaelement-jaris', function($, webshims, window, doc
|
|
519
543
|
box = data.shadowElem;
|
520
544
|
resetSwfProps(data);
|
521
545
|
} else {
|
522
|
-
var setDimensions = function(){
|
523
|
-
setElementDimension(data, $.prop(elem, 'controls'));
|
524
|
-
};
|
525
|
-
|
526
546
|
box = $('<div class="polyfill-'+ (elemNodeName) +' polyfill-mediaelement" id="wrapper-'+ elemId +'"><div id="'+ elemId +'"></div>')
|
527
547
|
.css({
|
528
548
|
position: 'relative',
|
@@ -582,19 +602,25 @@ jQuery.webshims.register('mediaelement-jaris', function($, webshims, window, doc
|
|
582
602
|
webshims.addShadowDom(elem, box);
|
583
603
|
addMediaToStopEvents(elem);
|
584
604
|
mediaelement.setActive(elem, 'third', data);
|
585
|
-
$(
|
586
|
-
$(
|
605
|
+
$(elem).on('updatemediaelementdimensions', setDimension);
|
606
|
+
$(document).on('updateshadowdom', setDimension);
|
587
607
|
}
|
588
608
|
|
589
609
|
if(!mediaelement.jarisEvent[data.id]){
|
590
610
|
mediaelement.jarisEvent[data.id] = function(jaris){
|
591
611
|
if(jaris.type == 'ready'){
|
612
|
+
var onReady = function(){
|
613
|
+
if(data.api){
|
614
|
+
if(bufferSrc(elem)){
|
615
|
+
data.api.api_preload();
|
616
|
+
}
|
617
|
+
onEvent.ready(jaris, data);
|
618
|
+
}
|
619
|
+
};
|
592
620
|
if(data.api){
|
593
|
-
|
621
|
+
onReady();
|
594
622
|
} else {
|
595
|
-
setTimeout(
|
596
|
-
onEvent[jaris.type](jaris, data);
|
597
|
-
}, 9);
|
623
|
+
setTimeout(onReady, 9);
|
598
624
|
}
|
599
625
|
} else {
|
600
626
|
data.currentTime = jaris.position;
|
@@ -639,7 +665,8 @@ jQuery.webshims.register('mediaelement-jaris', function($, webshims, window, doc
|
|
639
665
|
}
|
640
666
|
options.changeSWF(vars, elem, canPlaySrc, data, 'embed');
|
641
667
|
clearTimeout(data.flashBlock);
|
642
|
-
|
668
|
+
|
669
|
+
swfmini.embedSWF(playerSwfPath, elemId, "100%", "100%", "9.0.115", false, vars, params, attrs, function(swfData){
|
643
670
|
|
644
671
|
if(swfData.success){
|
645
672
|
|
@@ -807,15 +834,22 @@ jQuery.webshims.register('mediaelement-jaris', function($, webshims, window, doc
|
|
807
834
|
$(this)[boolProp ? 'addClass' : 'removeClass']('webshims-controls');
|
808
835
|
|
809
836
|
if(data){
|
810
|
-
webshims.warn("changing controls currently not fully supported with jaris player");
|
811
837
|
if(nodeName == 'audio'){
|
812
838
|
setElementDimension(data, boolProp);
|
813
839
|
}
|
814
|
-
|
815
840
|
queueSwfMethod(this, 'api_controls', [boolProp], data);
|
816
841
|
}
|
817
842
|
});
|
818
843
|
|
844
|
+
webshims.onNodeNamesPropertyModify(nodeName, 'preload', function(val){
|
845
|
+
var data = getSwfDataFromElem(this);
|
846
|
+
|
847
|
+
|
848
|
+
if(data && bufferSrc(this)){
|
849
|
+
queueSwfMethod(this, 'api_preload', [], data);
|
850
|
+
}
|
851
|
+
});
|
852
|
+
|
819
853
|
mediaSup = webshims.defineNodeNameProperties(nodeName, descs, 'prop');
|
820
854
|
});
|
821
855
|
|
@@ -825,6 +859,7 @@ jQuery.webshims.register('mediaelement-jaris', function($, webshims, window, doc
|
|
825
859
|
object: 1,
|
826
860
|
OBJECT: 1
|
827
861
|
};
|
862
|
+
|
828
863
|
$.cleanData = function(elems){
|
829
864
|
var i, len, prop;
|
830
865
|
if(elems && (len = elems.length) && loadedSwf){
|
@@ -837,13 +872,6 @@ jQuery.webshims.register('mediaelement-jaris', function($, webshims, window, doc
|
|
837
872
|
elems[i].api_pause();
|
838
873
|
} catch(er){}
|
839
874
|
}
|
840
|
-
try {
|
841
|
-
for (prop in elems[i]) {
|
842
|
-
if (typeof elems[i][prop] == "function") {
|
843
|
-
elems[i][prop] = null;
|
844
|
-
}
|
845
|
-
}
|
846
|
-
} catch(er){}
|
847
875
|
}
|
848
876
|
}
|
849
877
|
|
@@ -862,6 +890,13 @@ jQuery.webshims.register('mediaelement-jaris', function($, webshims, window, doc
|
|
862
890
|
});
|
863
891
|
});
|
864
892
|
|
893
|
+
webshims.defineNodeNamesProperty(['audio', 'video'], 'preload', {
|
894
|
+
reflect: true,
|
895
|
+
propType: 'enumarated',
|
896
|
+
defaultValue: '',
|
897
|
+
limitedTo: ['', 'auto', 'metadata', 'none']
|
898
|
+
});
|
899
|
+
|
865
900
|
|
866
901
|
['autoplay', 'controls'].forEach(function(name){
|
867
902
|
webshims.defineNodeNamesBooleanProperty(['audio', 'video'], name);
|
@@ -158,10 +158,6 @@ var addMediaToStopEvents = $.noop;
|
|
158
158
|
var hidevents = hideEvtArray.map(function(evt){
|
159
159
|
return evt +'.webshimspolyfill';
|
160
160
|
}).join(' ');
|
161
|
-
var opposite = {
|
162
|
-
'html5': 'third',
|
163
|
-
'third': 'html5'
|
164
|
-
};
|
165
161
|
|
166
162
|
var hidePlayerEvents = function(event){
|
167
163
|
var data = webshims.data(event.target, 'mediaelement');
|
@@ -169,14 +165,8 @@ var addMediaToStopEvents = $.noop;
|
|
169
165
|
var isNativeHTML5 = ( event.originalEvent && event.originalEvent.type === event.type );
|
170
166
|
if( isNativeHTML5 == (data.activating == 'third') ){
|
171
167
|
event.stopImmediatePropagation();
|
172
|
-
if(stopEvents[event.type]){
|
173
|
-
|
174
|
-
$(event.target).pause();
|
175
|
-
} else {
|
176
|
-
data.isActive = opposite[data.isActive];
|
177
|
-
$(event.target).pause();
|
178
|
-
data.isActive = opposite[data.isActive];
|
179
|
-
}
|
168
|
+
if(stopEvents[event.type] && data.isActive != data.activating){
|
169
|
+
$(event.target).pause();
|
180
170
|
}
|
181
171
|
}
|
182
172
|
};
|
@@ -310,6 +300,8 @@ var addYtAPI = function(mediaElm, elemId, data, ytID){
|
|
310
300
|
data._ytAPI = new YT.Player(elemId, {
|
311
301
|
height: '100%',
|
312
302
|
width: '100%',
|
303
|
+
allowfullscreen: 'allowfullscreen',
|
304
|
+
webkitallowfullscreen: 'allowfullscreen',
|
313
305
|
playerVars: {
|
314
306
|
allowfullscreen: true,
|
315
307
|
fs: 1,
|
@@ -406,10 +398,10 @@ mediaelement.createSWF = function(mediaElem, src, data){
|
|
406
398
|
overflow: 'hidden'
|
407
399
|
})
|
408
400
|
;
|
409
|
-
var
|
401
|
+
var setDimension = function(){
|
410
402
|
setElementDimension(data);
|
411
403
|
};
|
412
|
-
|
404
|
+
|
413
405
|
|
414
406
|
|
415
407
|
data = webshims.data(mediaElem, 'mediaelement', webshims.objectCreate(playerStateObj, {
|
@@ -453,8 +445,8 @@ mediaelement.createSWF = function(mediaElem, src, data){
|
|
453
445
|
addMediaToStopEvents(mediaElem);
|
454
446
|
|
455
447
|
addYtAPI(mediaElem, elemId, data, ytID);
|
456
|
-
$(
|
457
|
-
$(
|
448
|
+
$(mediaElem).on('updatemediaelementdimensions', setDimension);
|
449
|
+
$(document).on('updateshadowdom', setDimension);
|
458
450
|
};
|
459
451
|
|
460
452
|
(function(){
|
@@ -0,0 +1,388 @@
|
|
1
|
+
(function($){
|
2
|
+
|
3
|
+
var id = 0;
|
4
|
+
var isNumber = function(string){
|
5
|
+
return (typeof string == 'number' || (string && string == string * 1));
|
6
|
+
};
|
7
|
+
var retDefault = function(val, def){
|
8
|
+
if(!(typeof val == 'number' || (val && val == val * 1))){
|
9
|
+
return def;
|
10
|
+
}
|
11
|
+
return val * 1;
|
12
|
+
};
|
13
|
+
var createOpts = ['step', 'min', 'max', 'readonly', 'title', 'disabled', 'tabindex'];
|
14
|
+
var rangeProto = {
|
15
|
+
_create: function(){
|
16
|
+
var i;
|
17
|
+
|
18
|
+
|
19
|
+
this.element.addClass('ws-range').attr({role: 'slider'}).append('<span class="ws-range-min" /><span class="ws-range-rail"><span class="ws-range-thumb" /></span>');
|
20
|
+
this.trail = $('.ws-range-rail', this.element);
|
21
|
+
this.range = $('.ws-range-min', this.element);
|
22
|
+
this.thumb = $('.ws-range-thumb', this.trail);
|
23
|
+
|
24
|
+
this.updateMetrics();
|
25
|
+
|
26
|
+
this.orig = this.options.orig;
|
27
|
+
|
28
|
+
for(i = 0; i < createOpts.length; i++){
|
29
|
+
this[createOpts[i]](this.options[createOpts[i]]);
|
30
|
+
}
|
31
|
+
this.value = this._value;
|
32
|
+
this.value(this.options.value);
|
33
|
+
this.initDataList();
|
34
|
+
this.element.data('rangeUi', this);
|
35
|
+
this.addBindings();
|
36
|
+
this._init = true;
|
37
|
+
},
|
38
|
+
value: $.noop,
|
39
|
+
_value: function(val, _noNormalize, animate){
|
40
|
+
var left, posDif;
|
41
|
+
var o = this.options;
|
42
|
+
var oVal = val;
|
43
|
+
var thumbStyle = {};
|
44
|
+
var rangeStyle = {};
|
45
|
+
if(!_noNormalize && parseFloat(val, 10) != val){
|
46
|
+
val = o.min + ((o.max - o.min) / 2);
|
47
|
+
}
|
48
|
+
|
49
|
+
if(!_noNormalize){
|
50
|
+
val = this.normalizeVal(val);
|
51
|
+
}
|
52
|
+
left = 100 * ((val - o.min) / (o.max - o.min));
|
53
|
+
|
54
|
+
this.options.value = val;
|
55
|
+
this.thumb.stop();
|
56
|
+
this.range.stop();
|
57
|
+
|
58
|
+
rangeStyle[this.dirs.width] = left+'%';
|
59
|
+
if(this.vertical){
|
60
|
+
left = Math.abs(left - 100);
|
61
|
+
}
|
62
|
+
thumbStyle[this.dirs.left] = left+'%';
|
63
|
+
|
64
|
+
|
65
|
+
if(!animate){
|
66
|
+
this.thumb.css(thumbStyle);
|
67
|
+
this.range.css(rangeStyle);
|
68
|
+
} else {
|
69
|
+
if(typeof animate != 'object'){
|
70
|
+
animate = {};
|
71
|
+
} else {
|
72
|
+
animate = $.extend({}, animate);
|
73
|
+
}
|
74
|
+
if(!animate.duration){
|
75
|
+
posDif = Math.abs(left - parseInt(this.thumb[0].style[this.dirs.left] || 50, 10));
|
76
|
+
animate.duration = Math.max(Math.min(999, posDif * 5), 99);
|
77
|
+
}
|
78
|
+
this.thumb.animate(thumbStyle, animate);
|
79
|
+
this.range.animate(rangeStyle, animate);
|
80
|
+
}
|
81
|
+
if(this.orig && (oVal != val || (!this._init && this.orig.value != val)) ){
|
82
|
+
this.options._change(val);
|
83
|
+
}
|
84
|
+
this.element.attr({
|
85
|
+
'aria-valuenow': this.options.value,
|
86
|
+
'aria-valuetext': this.options.textValue ? this.options.textValue(this.options.value) : this.options.options[this.options.value] || this.options.value
|
87
|
+
});
|
88
|
+
},
|
89
|
+
initDataList: function(){
|
90
|
+
if(this.orig){
|
91
|
+
var listTimer;
|
92
|
+
var that = this;
|
93
|
+
var updateList = function(){
|
94
|
+
$(that.orig)
|
95
|
+
.jProp('list')
|
96
|
+
.off('updateDatalist', updateList)
|
97
|
+
.on('updateDatalist', updateList)
|
98
|
+
;
|
99
|
+
clearTimeout(listTimer);
|
100
|
+
listTimer = setTimeout(function(){
|
101
|
+
if(that.list){
|
102
|
+
that.list();
|
103
|
+
}
|
104
|
+
}, 9);
|
105
|
+
|
106
|
+
};
|
107
|
+
|
108
|
+
$(this.orig).on('listdatalistchange', updateList);
|
109
|
+
this.list();
|
110
|
+
}
|
111
|
+
},
|
112
|
+
list: function(opts){
|
113
|
+
var o = this.options;
|
114
|
+
var min = o.min;
|
115
|
+
var max = o.max;
|
116
|
+
var trail = this.trail;
|
117
|
+
var that = this;
|
118
|
+
|
119
|
+
this.element.attr({'aria-valuetext': o.options[o.value] || o.value});
|
120
|
+
$('.ws-range-ticks', trail).remove();
|
121
|
+
|
122
|
+
|
123
|
+
$(this.orig).jProp('list').find('option').each(function(){
|
124
|
+
o.options[$.prop(this, 'value')] = $.prop(this, 'label');
|
125
|
+
});
|
126
|
+
|
127
|
+
$.each(o.options, function(val, label){
|
128
|
+
if(!isNumber(val) || val < min || val > max){return;}
|
129
|
+
var left = 100 * ((val - min) / (max - min));
|
130
|
+
var title = o.showLabels ? ' title="'+ label +'"' : '';
|
131
|
+
if(that.vertical){
|
132
|
+
left = Math.abs(left - 100);
|
133
|
+
}
|
134
|
+
trail.append('<span class="ws-range-ticks"'+ title +' style="'+(that.dirs.left)+': '+left+'%;" />');
|
135
|
+
});
|
136
|
+
},
|
137
|
+
readonly: function(val){
|
138
|
+
val = !!val;
|
139
|
+
this.options.readonly = val;
|
140
|
+
this.element.attr('aria-readonly', ''+val);
|
141
|
+
},
|
142
|
+
disabled: function(val){
|
143
|
+
val = !!val;
|
144
|
+
this.options.disabled = val;
|
145
|
+
if(val){
|
146
|
+
this.element.attr({tabindex: -1, 'aria-disabled': 'true'});
|
147
|
+
} else {
|
148
|
+
this.element.attr({tabindex: this.options.tabindex, 'aria-disabled': 'false'});
|
149
|
+
}
|
150
|
+
},
|
151
|
+
tabindex: function(val){
|
152
|
+
this.options.tabindex = val;
|
153
|
+
if(!this.options.disabled){
|
154
|
+
this.element.attr({tabindex: val});
|
155
|
+
}
|
156
|
+
},
|
157
|
+
title: function(val){
|
158
|
+
this.element.prop('title', val);
|
159
|
+
},
|
160
|
+
min: function(val){
|
161
|
+
this.options.min = retDefault(val, 0);
|
162
|
+
this.value(this.options.value, true);
|
163
|
+
},
|
164
|
+
max: function(val){
|
165
|
+
this.options.max = retDefault(val, 100);
|
166
|
+
this.value(this.options.value, true);
|
167
|
+
},
|
168
|
+
step: function(val){
|
169
|
+
this.options.step = val == 'any' ? 'any' : retDefault(val, 1);
|
170
|
+
this.value(this.options.value);
|
171
|
+
},
|
172
|
+
|
173
|
+
normalizeVal: function(val){
|
174
|
+
var valModStep, alignValue, step;
|
175
|
+
var o = this.options;
|
176
|
+
|
177
|
+
if(val <= o.min){
|
178
|
+
val = o.min;
|
179
|
+
} else if(val >= o.max) {
|
180
|
+
val = o.max;
|
181
|
+
} else if(o.step != 'any'){
|
182
|
+
step = o.step;
|
183
|
+
valModStep = (val - o.min) % step;
|
184
|
+
alignValue = val - valModStep;
|
185
|
+
|
186
|
+
if ( Math.abs(valModStep) * 2 >= step ) {
|
187
|
+
alignValue += ( valModStep > 0 ) ? step : ( -step );
|
188
|
+
}
|
189
|
+
val = alignValue.toFixed(5) * 1;
|
190
|
+
}
|
191
|
+
return val;
|
192
|
+
},
|
193
|
+
doStep: function(factor, animate){
|
194
|
+
var step = retDefault(this.options.step, 1);
|
195
|
+
if(this.options.step == 'any'){
|
196
|
+
step = Math.min(step, (this.options.max - this.options.min) / 10);
|
197
|
+
}
|
198
|
+
this.value( this.options.value + (step * factor), false, animate );
|
199
|
+
|
200
|
+
},
|
201
|
+
|
202
|
+
getStepedValueFromPos: function(pos){
|
203
|
+
var val, valModStep, alignValue, step;
|
204
|
+
|
205
|
+
if(pos <= 0){
|
206
|
+
val = this.options[this.dirs.min];
|
207
|
+
} else if(pos > 100) {
|
208
|
+
val = this.options[this.dirs.max];
|
209
|
+
} else {
|
210
|
+
if(this.vertical){
|
211
|
+
pos = Math.abs(pos - 100);
|
212
|
+
}
|
213
|
+
val = ((this.options.max - this.options.min) * (pos / 100)) + this.options.min;
|
214
|
+
step = this.options.step;
|
215
|
+
if(step != 'any'){
|
216
|
+
valModStep = (val - this.options.min) % step;
|
217
|
+
alignValue = val - valModStep;
|
218
|
+
|
219
|
+
if ( Math.abs(valModStep) * 2 >= step ) {
|
220
|
+
alignValue += ( valModStep > 0 ) ? step : ( -step );
|
221
|
+
}
|
222
|
+
val = ((alignValue).toFixed(5)) * 1;
|
223
|
+
|
224
|
+
}
|
225
|
+
}
|
226
|
+
|
227
|
+
return val;
|
228
|
+
},
|
229
|
+
addBindings: function(){
|
230
|
+
var leftOffset, widgetUnits, hasFocus;
|
231
|
+
var that = this;
|
232
|
+
var o = this.options;
|
233
|
+
|
234
|
+
var eventTimer = (function(){
|
235
|
+
var events = {};
|
236
|
+
return {
|
237
|
+
init: function(name, curVal, fn){
|
238
|
+
if(!events[name]){
|
239
|
+
events[name] = {fn: fn};
|
240
|
+
if(that.orig){
|
241
|
+
$(that.orig).on(name, function(){
|
242
|
+
events[name].val = $.prop(that.orig, 'value');
|
243
|
+
});
|
244
|
+
}
|
245
|
+
|
246
|
+
}
|
247
|
+
events[name].val = curVal;
|
248
|
+
},
|
249
|
+
call: function(name, val){
|
250
|
+
if(events[name].val != val){
|
251
|
+
clearTimeout(events[name].timer);
|
252
|
+
events[name].val = val;
|
253
|
+
events[name].timer = setTimeout(function(){
|
254
|
+
events[name].fn(val, that);
|
255
|
+
}, 0);
|
256
|
+
}
|
257
|
+
}
|
258
|
+
};
|
259
|
+
})();
|
260
|
+
|
261
|
+
var setValueFromPos = function(e, animate){
|
262
|
+
|
263
|
+
var val = that.getStepedValueFromPos((e[that.dirs.mouse] - leftOffset) * widgetUnits);
|
264
|
+
if(val != o.value){
|
265
|
+
that.value(val, false, animate);
|
266
|
+
eventTimer.call('input', val);
|
267
|
+
}
|
268
|
+
};
|
269
|
+
|
270
|
+
var remove = function(e){
|
271
|
+
if(e && e.type == 'mouseup'){
|
272
|
+
eventTimer.call('input', o.value);
|
273
|
+
eventTimer.call('change', o.value);
|
274
|
+
}
|
275
|
+
that.element.removeClass('ws-active');
|
276
|
+
$(document).off('mousemove', setValueFromPos).off('mouseup', remove);
|
277
|
+
};
|
278
|
+
var add = function(e){
|
279
|
+
e.preventDefault();
|
280
|
+
$(document).off('mousemove', setValueFromPos).off('mouseup', remove);
|
281
|
+
if(!o.readonly && !o.disabled){
|
282
|
+
leftOffset = that.element.focus().addClass('ws-active').offset();
|
283
|
+
widgetUnits = that.element[that.dirs.width]();
|
284
|
+
if(!widgetUnits || !leftOffset){return;}
|
285
|
+
leftOffset = leftOffset[that.dirs.pos];
|
286
|
+
widgetUnits = 100 / (widgetUnits - ((that.thumb[that.dirs.outerWidth]() || 2) / 2));
|
287
|
+
setValueFromPos(e, o.animate);
|
288
|
+
$(document)
|
289
|
+
.on({
|
290
|
+
mouseup: remove,
|
291
|
+
mousemove: setValueFromPos
|
292
|
+
})
|
293
|
+
;
|
294
|
+
e.stopPropagation();
|
295
|
+
}
|
296
|
+
};
|
297
|
+
var elementEvts = {
|
298
|
+
mousedown: add,
|
299
|
+
focus: function(e){
|
300
|
+
if(!o.disabled){
|
301
|
+
eventTimer.init('input', o.value);
|
302
|
+
eventTimer.init('change', o.value);
|
303
|
+
that.element.addClass('ws-focus');
|
304
|
+
}
|
305
|
+
hasFocus = true;
|
306
|
+
},
|
307
|
+
blur: function(e){
|
308
|
+
that.element.removeClass('ws-focus ws-active');
|
309
|
+
hasFocus = false;
|
310
|
+
eventTimer.init('input', o.value);
|
311
|
+
eventTimer.call('change', o.value);
|
312
|
+
},
|
313
|
+
keyup: function(){
|
314
|
+
that.element.removeClass('ws-active');
|
315
|
+
eventTimer.call('input', o.value);
|
316
|
+
eventTimer.call('change', o.value);
|
317
|
+
},
|
318
|
+
|
319
|
+
keydown: function(e){
|
320
|
+
var step = true;
|
321
|
+
var code = e.keyCode;
|
322
|
+
if(!o.readonly && !o.disabled){
|
323
|
+
if (code == 39 || code == 38) {
|
324
|
+
that.doStep(1);
|
325
|
+
} else if (code == 37 || code == 40) {
|
326
|
+
that.doStep(-1);
|
327
|
+
} else if (code == 33) {
|
328
|
+
that.doStep(10, o.animate);
|
329
|
+
} else if (code == 34) {
|
330
|
+
that.doStep(-10, o.animate);
|
331
|
+
} else if (code == 36) {
|
332
|
+
that.value(that.options.max, false, o.animate);
|
333
|
+
} else if (code == 35) {
|
334
|
+
that.value(that.options.min, false, o.animate);
|
335
|
+
} else {
|
336
|
+
step = false;
|
337
|
+
}
|
338
|
+
if (step) {
|
339
|
+
that.element.addClass('ws-active');
|
340
|
+
eventTimer.call('input', o.value);
|
341
|
+
e.preventDefault();
|
342
|
+
}
|
343
|
+
}
|
344
|
+
}
|
345
|
+
};
|
346
|
+
|
347
|
+
eventTimer.init('input', o.value, this.options.input);
|
348
|
+
eventTimer.init('change', o.value, this.options.change);
|
349
|
+
|
350
|
+
elementEvts[$.fn.mwheelIntent ? 'mwheelIntent' : 'mousewheel'] = function(e, delta){
|
351
|
+
if(delta && hasFocus && !o.readonly && !o.disabled){
|
352
|
+
that.doStep(delta);
|
353
|
+
e.preventDefault();
|
354
|
+
eventTimer.call('input', o.value);
|
355
|
+
}
|
356
|
+
};
|
357
|
+
this.element.on(elementEvts);
|
358
|
+
this.thumb.on({
|
359
|
+
mousedown: add
|
360
|
+
});
|
361
|
+
},
|
362
|
+
updateMetrics: function(){
|
363
|
+
var width = this.element.innerWidth();
|
364
|
+
this.vertical = (width && this.element.innerHeight() - width > 10);
|
365
|
+
|
366
|
+
this.dirs = this.vertical ?
|
367
|
+
{mouse: 'pageY', pos: 'top', min: 'max', max: 'min', left: 'top', width: 'height', outerWidth: 'outerHeight'} :
|
368
|
+
{mouse: 'pageX', pos: 'left', min: 'min', max: 'max', left: 'left', width: 'width', outerWidth: 'outerWidth'}
|
369
|
+
;
|
370
|
+
this.element
|
371
|
+
[this.vertical ? 'addClass' : 'removeClass']('vertical-range')
|
372
|
+
[this.vertical ? 'addClass' : 'removeClass']('horizontal-range')
|
373
|
+
;
|
374
|
+
}
|
375
|
+
};
|
376
|
+
|
377
|
+
$.fn.rangeUI = function(opts){
|
378
|
+
opts = $.extend({readonly: false, disabled: false, tabindex: 0, min: 0, step: 1, max: 100, value: 50, input: $.noop, change: $.noop, _change: $.noop, showLabels: true, options: {}}, opts);
|
379
|
+
return this.each(function(){
|
380
|
+
$.webshims.objectCreate(rangeProto, {
|
381
|
+
element: {
|
382
|
+
value: $(this)
|
383
|
+
}
|
384
|
+
}, opts);
|
385
|
+
});
|
386
|
+
};
|
387
|
+
jQuery.webshims.isReady('range-ui', true);
|
388
|
+
})(jQuery);
|