webshims-rails 1.14.1 → 1.14.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/webshims-rails/version.rb +2 -2
- data/vendor/assets/javascripts/webshims/extras/modernizr-custom.js +0 -0
- data/vendor/assets/javascripts/webshims/polyfiller.js +3 -8
- data/vendor/assets/javascripts/webshims/shims/FlashCanvas/canvas2png.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvas/flashcanvas.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvas/flashcanvas.swf +0 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvas/proxy.php +0 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvas/save.php +0 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/canvas2png.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/flash10canvas.swf +0 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/flash9canvas.swf +0 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/flashcanvas.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/proxy.php +0 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/save.php +0 -0
- data/vendor/assets/javascripts/webshims/shims/color-picker.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/combos/1.js +66 -43
- data/vendor/assets/javascripts/webshims/shims/combos/10.js +66 -31
- data/vendor/assets/javascripts/webshims/shims/combos/11.js +66 -31
- data/vendor/assets/javascripts/webshims/shims/combos/12.js +96 -59
- data/vendor/assets/javascripts/webshims/shims/combos/13.js +96 -59
- data/vendor/assets/javascripts/webshims/shims/combos/14.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/combos/15.js +4 -1
- data/vendor/assets/javascripts/webshims/shims/combos/16.js +70 -44
- data/vendor/assets/javascripts/webshims/shims/combos/17.js +66 -31
- data/vendor/assets/javascripts/webshims/shims/combos/18.js +1241 -1126
- data/vendor/assets/javascripts/webshims/shims/combos/19.js +1272 -1214
- data/vendor/assets/javascripts/webshims/shims/combos/2.js +66 -43
- data/vendor/assets/javascripts/webshims/shims/combos/20.js +1272 -1214
- data/vendor/assets/javascripts/webshims/shims/combos/21.js +61 -92
- data/vendor/assets/javascripts/webshims/shims/combos/22.js +30 -16
- data/vendor/assets/javascripts/webshims/shims/combos/23.js +66 -43
- data/vendor/assets/javascripts/webshims/shims/combos/25.js +41 -85
- data/vendor/assets/javascripts/webshims/shims/combos/26.js +1556 -2316
- data/vendor/assets/javascripts/webshims/shims/combos/27.js +12 -10
- data/vendor/assets/javascripts/webshims/shims/combos/28.js +4 -1
- data/vendor/assets/javascripts/webshims/shims/combos/29.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/combos/3.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/combos/30.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/combos/31.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/combos/32.js +1175 -1095
- data/vendor/assets/javascripts/webshims/shims/combos/33.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/combos/34.js +30 -16
- data/vendor/assets/javascripts/webshims/shims/combos/4.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/combos/5.js +66 -31
- data/vendor/assets/javascripts/webshims/shims/combos/6.js +66 -31
- data/vendor/assets/javascripts/webshims/shims/combos/7.js +66 -43
- data/vendor/assets/javascripts/webshims/shims/combos/8.js +66 -43
- data/vendor/assets/javascripts/webshims/shims/combos/9.js +66 -31
- data/vendor/assets/javascripts/webshims/shims/combos/97.js +63 -28
- data/vendor/assets/javascripts/webshims/shims/combos/98.js +149 -74
- data/vendor/assets/javascripts/webshims/shims/combos/99.js +149 -74
- data/vendor/assets/javascripts/webshims/shims/combos/comboinfo.json +1 -1
- data/vendor/assets/javascripts/webshims/shims/details.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/dom-extend.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/es5.js +1175 -1095
- data/vendor/assets/javascripts/webshims/shims/excanvas.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/filereader.js +10 -9
- data/vendor/assets/javascripts/webshims/shims/form-combat.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/form-core.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/form-datalist-lazy.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/form-datalist.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/form-fixrangechange.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/form-message.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/form-native-extend.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/form-number-date-api.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +40 -11
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +4 -1
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend2.js +2 -1
- data/vendor/assets/javascripts/webshims/shims/form-validation.js +80 -47
- data/vendor/assets/javascripts/webshims/shims/form-validators.js +19 -8
- data/vendor/assets/javascripts/webshims/shims/forms-picker.js +21 -1
- data/vendor/assets/javascripts/webshims/shims/geolocation.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ar.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ch-CN.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-cs.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-de.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-el.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-en.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-es.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-fa.js +130 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-fr.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-he.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-hi.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-hu.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-it.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ja.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-lt.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-nl.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pl.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pt-BR.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pt-PT.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pt.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ru.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-sv.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-zh-CN.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-zh-TW.js +130 -0
- data/vendor/assets/javascripts/webshims/shims/jajax.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/jme/_icons.scss +186 -0
- data/vendor/assets/javascripts/webshims/shims/jme/b.js +63 -28
- data/vendor/assets/javascripts/webshims/shims/jme/c.js +86 -46
- data/vendor/assets/javascripts/webshims/shims/jme/controls.css +317 -211
- data/vendor/assets/javascripts/webshims/shims/jme/controls.scss +59 -223
- data/vendor/assets/javascripts/webshims/shims/jme/jme.eot +0 -0
- data/vendor/assets/javascripts/webshims/shims/jme/jme.svg +0 -0
- data/vendor/assets/javascripts/webshims/shims/jme/jme.ttf +0 -0
- data/vendor/assets/javascripts/webshims/shims/jme/jme.woff +0 -0
- data/vendor/assets/javascripts/webshims/shims/jme/mediacontrols-lazy.js +66 -14
- data/vendor/assets/javascripts/webshims/shims/jme/p.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/ChangeLog.txt +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/ReadMe.txt +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/images/AlphaBar.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/images/Bars.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/images/Maps.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/images/NoColor.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/images/bar-opacity.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/images/map-opacity.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/images/mappoint.gif +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/images/picker.gif +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/images/preview-opacity.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/images/rangearrows.gif +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/jpicker.css +55 -48
- data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +66 -43
- data/vendor/assets/javascripts/webshims/shims/mediaelement-debug.js +833 -0
- data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +31 -76
- data/vendor/assets/javascripts/webshims/shims/mediaelement-native-fix.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/moxie/flash/Moxie.cdn.swf +0 -0
- data/vendor/assets/javascripts/webshims/shims/moxie/flash/Moxie.min.swf +0 -0
- data/vendor/assets/javascripts/webshims/shims/moxie/js/moxie.js +1542 -2303
- data/vendor/assets/javascripts/webshims/shims/moxie/silverlight/Moxie.cdn.xap +0 -0
- data/vendor/assets/javascripts/webshims/shims/moxie/silverlight/Moxie.min.xap +0 -0
- data/vendor/assets/javascripts/webshims/shims/picture.js +160 -79
- data/vendor/assets/javascripts/webshims/shims/plugins/jquery.ui.position.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/promise.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/range-ui.js +26 -20
- data/vendor/assets/javascripts/webshims/shims/sizzle.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/color-picker.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +444 -326
- data/vendor/assets/javascripts/webshims/shims/styles/forms-picker.css +379 -300
- data/vendor/assets/javascripts/webshims/shims/styles/progress.gif +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/progress.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/_api-forms-ext.scss +8 -8
- data/vendor/assets/javascripts/webshims/shims/styles/scss/_api-shim.scss +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/_extends.scss +0 -14
- data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-ext.scss +104 -85
- data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-picker.scss +20 -32
- data/vendor/assets/javascripts/webshims/shims/styles/scss/shim-ext.scss +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +14 -34
- data/vendor/assets/javascripts/webshims/shims/styles/shim-ext.css +920 -728
- data/vendor/assets/javascripts/webshims/shims/styles/shim.css +471 -391
- data/vendor/assets/javascripts/webshims/shims/styles/widget.eot +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/widget.svg +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/widget.ttf +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/widget.woff +0 -0
- data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
- data/vendor/assets/javascripts/webshims/shims/swfmini-embed.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/swfmini.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/track-ui.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/track.js +30 -16
- metadata +8 -4
- data/vendor/assets/javascripts/webshims/shims/styles/config.rb +0 -12
- data/vendor/assets/javascripts/webshims/shims/swf/filereader.swf +0 -0
@@ -11,6 +11,23 @@
|
|
11
11
|
return val * 1;
|
12
12
|
};
|
13
13
|
var createOpts = ['step', 'min', 'max', 'readonly', 'title', 'disabled', 'tabindex'];
|
14
|
+
var normalizeTouch = (function(){
|
15
|
+
var types = {
|
16
|
+
touchstart: 1,
|
17
|
+
touchend: 1,
|
18
|
+
touchmove: 1
|
19
|
+
};
|
20
|
+
var normalize = ['pageX', 'pageY'];
|
21
|
+
return function(e){
|
22
|
+
if(types[e.type] && e.originalEvent && e.originalEvent.touches && e.originalEvent.touches.length){
|
23
|
+
for(var i = 0; i < normalize.length; i++){
|
24
|
+
e[normalize[i]] = e.originalEvent.touches[0][normalize[i]];
|
25
|
+
}
|
26
|
+
|
27
|
+
}
|
28
|
+
return e;
|
29
|
+
};
|
30
|
+
})();
|
14
31
|
var rangeProto = {
|
15
32
|
_create: function(){
|
16
33
|
var i;
|
@@ -329,23 +346,7 @@
|
|
329
346
|
}
|
330
347
|
};
|
331
348
|
})();
|
332
|
-
|
333
|
-
var types = {
|
334
|
-
touchstart: 1,
|
335
|
-
touchend: 1,
|
336
|
-
touchmove: 1
|
337
|
-
};
|
338
|
-
var normalize = ['pageX', 'pageY'];
|
339
|
-
return function(e){
|
340
|
-
if(types[e.type] && e.originalEvent && e.originalEvent.touches && e.originalEvent.touches.length){
|
341
|
-
for(var i = 0; i < normalize.length; i++){
|
342
|
-
e[normalize[i]] = e.originalEvent.touches[0][normalize[i]];
|
343
|
-
}
|
344
|
-
|
345
|
-
}
|
346
|
-
return e;
|
347
|
-
};
|
348
|
-
})();
|
349
|
+
|
349
350
|
var updateValue = function(val, animate){
|
350
351
|
if(val != o.value){
|
351
352
|
that.value(val, false, animate);
|
@@ -365,7 +366,7 @@
|
|
365
366
|
}
|
366
367
|
};
|
367
368
|
var remove = function(e){
|
368
|
-
if(e && e.type == 'mouseup'){
|
369
|
+
if(e && (e.type == 'mouseup' || e.type == 'touchend')){
|
369
370
|
eventTimer.call('input', o.value);
|
370
371
|
eventTimer.call('change', o.value);
|
371
372
|
}
|
@@ -386,6 +387,8 @@
|
|
386
387
|
$(document).off('mousemove touchmove', setValueFromPos).off('mouseup touchend', remove);
|
387
388
|
$(window).off('blur', removeWin);
|
388
389
|
if(!o.readonly && !o.disabled){
|
390
|
+
eventTimer.init('input', o.value);
|
391
|
+
eventTimer.init('change', o.value);
|
389
392
|
normalizeTouch(e);
|
390
393
|
that.element.trigger('focus');
|
391
394
|
that.addRemoveClass('ws-active', true);
|
@@ -421,8 +424,10 @@
|
|
421
424
|
'touchstart mousedown': add,
|
422
425
|
focus: function(e){
|
423
426
|
if(!o.disabled && !hasFocus){
|
424
|
-
|
425
|
-
|
427
|
+
if(!isActive){
|
428
|
+
eventTimer.init('input', o.value);
|
429
|
+
eventTimer.init('change', o.value);
|
430
|
+
}
|
426
431
|
that.addRemoveClass('ws-focus', true);
|
427
432
|
that.updateMetrics();
|
428
433
|
}
|
@@ -608,6 +613,7 @@
|
|
608
613
|
obj._create.call(obj);
|
609
614
|
});
|
610
615
|
};
|
616
|
+
$.fn.rangeUI.normalizeTouch = normalizeTouch;
|
611
617
|
if(window.webshims && webshims.isReady){
|
612
618
|
webshims.isReady('range-ui', true);
|
613
619
|
}
|
@@ -1315,11 +1321,7 @@
|
|
1315
1321
|
if( steps[this.type] && typeof steps[this.type].start == 'object'){
|
1316
1322
|
steps[this.type].start = this.asNumber(steps[this.type].start);
|
1317
1323
|
}
|
1318
|
-
|
1319
|
-
if(!webshims.picker[this.type]){
|
1320
|
-
o.buttonOnly = false;
|
1321
|
-
}
|
1322
|
-
|
1324
|
+
|
1323
1325
|
for(i = 0; i < createOpts.length; i++){
|
1324
1326
|
if(o[createOpts[i]] != null){
|
1325
1327
|
this[createOpts[i]](o[createOpts[i]], o[createOpts[i]]);
|
@@ -1549,7 +1551,7 @@
|
|
1549
1551
|
wsWidgetProto._create.apply(this, arguments);
|
1550
1552
|
this._init = false;
|
1551
1553
|
|
1552
|
-
this.buttonWrapper.html('<span unselectable="on" class="step-controls"><span class="step-up"></span><span class="step-down"></span></span>');
|
1554
|
+
this.buttonWrapper.html('<span unselectable="on" class="step-controls"><span class="step-up step-control"></span><span class="step-down step-control"></span></span>');
|
1553
1555
|
|
1554
1556
|
if(this.type == 'number'){
|
1555
1557
|
this.inputElements.attr('inputmode', 'numeric');
|
@@ -1732,7 +1734,7 @@
|
|
1732
1734
|
}
|
1733
1735
|
|
1734
1736
|
touch = changedTouches[0];
|
1735
|
-
if(Math.abs(touchData.x - touch.pageX) > 40 || Math.abs(touchData.y - touch.pageY) > 40 || Date.now() - touchData.now >
|
1737
|
+
if(Math.abs(touchData.x - touch.pageX) > 40 || Math.abs(touchData.y - touch.pageY) > 40 || Date.now() - touchData.now > 300){
|
1736
1738
|
return;
|
1737
1739
|
}
|
1738
1740
|
e.preventDefault();
|
@@ -1930,7 +1932,7 @@
|
|
1930
1932
|
}
|
1931
1933
|
};
|
1932
1934
|
return function(prop){
|
1933
|
-
if(prop == 'value' && !data.options.inlinePicker){return;}
|
1935
|
+
if(prop == 'value' && (!data.options.inlinePicker || data._handledValue )){return;}
|
1934
1936
|
popover.isDirty = true;
|
1935
1937
|
|
1936
1938
|
if(popover.isVisible){
|
@@ -1989,6 +1991,13 @@
|
|
1989
1991
|
}
|
1990
1992
|
show();
|
1991
1993
|
};
|
1994
|
+
var toogle = function(){
|
1995
|
+
if(popover.openedByFocus || !popover.isVisible){
|
1996
|
+
open();
|
1997
|
+
} else {
|
1998
|
+
popover.hide();
|
1999
|
+
}
|
2000
|
+
}
|
1992
2001
|
|
1993
2002
|
|
1994
2003
|
options.containerElements.push(popover.element[0]);
|
@@ -2029,7 +2038,7 @@
|
|
2029
2038
|
}
|
2030
2039
|
|
2031
2040
|
|
2032
|
-
opener.wsTouchClick(
|
2041
|
+
opener.wsTouchClick(toogle);
|
2033
2042
|
|
2034
2043
|
if(options.inlinePicker){
|
2035
2044
|
popover.openedByFocus = true;
|
@@ -2381,9 +2390,9 @@
|
|
2381
2390
|
}
|
2382
2391
|
|
2383
2392
|
data.shim.element.on('change input', stopPropagation).addClass(cNames+' '+webshims.shadowClass);
|
2384
|
-
|
2393
|
+
|
2385
2394
|
if(data.shim.buttonWrapper){
|
2386
|
-
|
2395
|
+
|
2387
2396
|
data.shim.buttonWrapper.addClass('input-button-size-'+(data.shim.buttonWrapper.children().filter(isVisible).length)+' '+webshims.shadowClass);
|
2388
2397
|
|
2389
2398
|
if(data.shim.buttonWrapper.filter(isVisible).length){
|
@@ -2540,6 +2549,32 @@
|
|
2540
2549
|
;
|
2541
2550
|
});
|
2542
2551
|
};
|
2552
|
+
|
2553
|
+
|
2554
|
+
if($('<input />').prop('labels') == null){
|
2555
|
+
webshims.defineNodeNamesProperty('button, input, keygen, meter, output, progress, select, textarea', 'labels', {
|
2556
|
+
prop: {
|
2557
|
+
get: function(){
|
2558
|
+
if(this.type == 'hidden'){return null;}
|
2559
|
+
var id = this.id;
|
2560
|
+
var labels = $(this)
|
2561
|
+
.closest('label')
|
2562
|
+
.filter(function(){
|
2563
|
+
var hFor = (this.attributes['for'] || {});
|
2564
|
+
return (!hFor.specified || hFor.value == id);
|
2565
|
+
})
|
2566
|
+
;
|
2567
|
+
|
2568
|
+
if(id) {
|
2569
|
+
labels = labels.add('label[for="'+ id +'"]');
|
2570
|
+
}
|
2571
|
+
return labels.get();
|
2572
|
+
},
|
2573
|
+
writeable: false
|
2574
|
+
}
|
2575
|
+
});
|
2576
|
+
}
|
2577
|
+
|
2543
2578
|
if(formcfg._isLoading){
|
2544
2579
|
$(formcfg).one('change', init);
|
2545
2580
|
} else {
|
@@ -238,7 +238,7 @@ webshims.isReady('swfmini', true);
|
|
238
238
|
|
239
239
|
var wsCfg = webshims.cfg;
|
240
240
|
var options = wsCfg.mediaelement;
|
241
|
-
var
|
241
|
+
var isIE = navigator.userAgent.indexOf('MSIE') != -1;
|
242
242
|
if(!options){
|
243
243
|
webshims.error("mediaelement wasn't implemented but loaded");
|
244
244
|
return;
|
@@ -253,7 +253,7 @@ webshims.isReady('swfmini', true);
|
|
253
253
|
|
254
254
|
webshims.capturingEvents(['play', 'playing', 'waiting', 'paused', 'ended', 'durationchange', 'loadedmetadata', 'canplay', 'volumechange']);
|
255
255
|
|
256
|
-
if( !Modernizr.videoBuffered || !supportsLoop || (!Modernizr.mediaDefaultMuted &&
|
256
|
+
if( !Modernizr.videoBuffered || !supportsLoop || (!Modernizr.mediaDefaultMuted && isIE && 'ActiveXObject' in window) ){
|
257
257
|
webshims.addPolyfill('mediaelement-native-fix', {
|
258
258
|
d: ['dom-support']
|
259
259
|
});
|
@@ -281,7 +281,7 @@ webshims.isReady('swfmini', true);
|
|
281
281
|
}
|
282
282
|
|
283
283
|
webshims.register('mediaelement-core', function($, webshims, window, document, undefined, options){
|
284
|
-
hasSwf = swfmini.hasFlashPlayerVersion('10.0.3');
|
284
|
+
var hasSwf = swfmini.hasFlashPlayerVersion('10.0.3');
|
285
285
|
var mediaelement = webshims.mediaelement;
|
286
286
|
|
287
287
|
mediaelement.parseRtmp = function(data){
|
@@ -343,11 +343,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
343
343
|
}
|
344
344
|
}
|
345
345
|
}
|
346
|
-
|
347
|
-
if(!src.container){
|
348
|
-
$(elem).attr('data-wsrecheckmimetype', '');
|
349
|
-
}
|
350
|
-
|
346
|
+
|
351
347
|
tmp = elem.attr('media');
|
352
348
|
if(tmp){
|
353
349
|
src.media = tmp;
|
@@ -477,11 +473,6 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
477
473
|
}
|
478
474
|
};
|
479
475
|
|
480
|
-
|
481
|
-
$.fn.loadMediaSrc = function(){
|
482
|
-
webshims.error('loadMediaSrc was removed.');
|
483
|
-
};
|
484
|
-
|
485
476
|
mediaelement.swfMimeTypes = ['video/3gpp', 'video/x-msvideo', 'video/quicktime', 'video/x-m4v', 'video/mp4', 'video/m4p', 'video/x-flv', 'video/flv', 'audio/mpeg', 'audio/aac', 'audio/mp4', 'audio/x-m4a', 'audio/m4a', 'audio/mp3', 'audio/x-fla', 'audio/fla', 'youtube/flv', 'video/jarisplayer', 'jarisplayer/jarisplayer', 'video/youtube', 'video/rtmp', 'audio/rtmp'];
|
486
477
|
|
487
478
|
mediaelement.canThirdPlaySrces = function(mediaElem, srces){
|
@@ -539,7 +530,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
539
530
|
message = "can't play sources";
|
540
531
|
}
|
541
532
|
$(elem).pause().data('mediaerror', message);
|
542
|
-
webshims.error('mediaelementError: '+ message);
|
533
|
+
webshims.error('mediaelementError: '+ message +'. Run the following line in your console to get more info: webshim.mediaelement.loadDebugger();');
|
543
534
|
setTimeout(function(){
|
544
535
|
if($(elem).data('mediaerror')){
|
545
536
|
$(elem).addClass('media-error').trigger('mediaerror');
|
@@ -571,36 +562,49 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
571
562
|
}
|
572
563
|
};
|
573
564
|
})();
|
574
|
-
|
575
|
-
var
|
576
|
-
|
577
|
-
|
578
|
-
|
579
|
-
if(!ret){
|
580
|
-
if(_noLoop){
|
581
|
-
mediaelement.setError(elem, false);
|
582
|
-
} else {
|
583
|
-
stepSources(elem, data, false, _srces, true);
|
584
|
-
}
|
585
|
-
} else {
|
586
|
-
handleThird(elem, ret, data);
|
565
|
+
|
566
|
+
var activate = {
|
567
|
+
native: function(elem, src, data){
|
568
|
+
if(data && data.isActive == 'third') {
|
569
|
+
mediaelement.setActive(elem, 'html5', data);
|
587
570
|
}
|
588
|
-
}
|
589
|
-
|
590
|
-
|
591
|
-
|
592
|
-
|
593
|
-
|
594
|
-
|
595
|
-
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
|
571
|
+
},
|
572
|
+
third: handleThird
|
573
|
+
};
|
574
|
+
|
575
|
+
var stepSources = function(elem, data, srces){
|
576
|
+
var i, src;
|
577
|
+
var testOrder = [{test: 'canNativePlaySrces', activate: 'native'}, {test: 'canThirdPlaySrces', activate: 'third'}];
|
578
|
+
if(options.preferFlash || (data && data.isActive == 'third') ){
|
579
|
+
testOrder.reverse();
|
580
|
+
}
|
581
|
+
for(i = 0; i < 2; i++){
|
582
|
+
src = mediaelement[testOrder[i].test](elem, srces);
|
583
|
+
if(src){
|
584
|
+
activate[testOrder[i].activate](elem, src, data);
|
585
|
+
break;
|
586
|
+
}
|
587
|
+
}
|
588
|
+
|
589
|
+
if(!src){
|
590
|
+
mediaelement.setError(elem, false);
|
591
|
+
if(data && data.isActive == 'third') {
|
600
592
|
mediaelement.setActive(elem, 'html5', data);
|
601
593
|
}
|
602
594
|
}
|
603
595
|
};
|
596
|
+
var allowedPreload = {'metadata': 1, 'auto': 1, '': 1};
|
597
|
+
var fixPreload = function(elem){
|
598
|
+
var preload, img;
|
599
|
+
if(elem.getAttribute('preload') == 'none'){
|
600
|
+
if(allowedPreload[(preload = $.attr(elem, 'data-preload'))]){
|
601
|
+
$.attr(elem, 'preload', preload);
|
602
|
+
} else if(hasNative && (preload = elem.getAttribute('poster'))){
|
603
|
+
img = document.createElement('img');
|
604
|
+
img.src = preload;
|
605
|
+
}
|
606
|
+
}
|
607
|
+
};
|
604
608
|
var stopParent = /^(?:embed|object|datalist)$/i;
|
605
609
|
var selectSource = function(elem, data){
|
606
610
|
var baseData = webshims.data(elem, 'mediaelementBase') || webshims.data(elem, 'mediaelementBase', {});
|
@@ -616,7 +620,9 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
616
620
|
if(mediaelement.sortMedia){
|
617
621
|
_srces.sort(mediaelement.sortMedia);
|
618
622
|
}
|
619
|
-
|
623
|
+
fixPreload(elem);
|
624
|
+
stepSources(elem, data, _srces);
|
625
|
+
|
620
626
|
};
|
621
627
|
mediaelement.selectSource = selectSource;
|
622
628
|
|
@@ -627,20 +633,22 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
627
633
|
setTimeout(function(){
|
628
634
|
if( $.prop(e.target, 'paused') || !$.prop(e.target, 'loop') ){return;}
|
629
635
|
$(e.target).prop('currentTime', 0).play();
|
630
|
-
}
|
636
|
+
});
|
631
637
|
|
632
638
|
});
|
633
639
|
|
634
640
|
var handleMedia = false;
|
641
|
+
|
635
642
|
var initMediaElements = function(){
|
636
643
|
var testFixMedia = function(){
|
644
|
+
|
637
645
|
if(webshims.implement(this, 'mediaelement')){
|
638
646
|
selectSource(this);
|
639
647
|
if(!Modernizr.mediaDefaultMuted && $.attr(this, 'muted') != null){
|
640
648
|
$.prop(this, 'muted', true);
|
641
649
|
}
|
650
|
+
|
642
651
|
}
|
643
|
-
|
644
652
|
};
|
645
653
|
|
646
654
|
webshims.ready('dom-support', function(){
|
@@ -656,6 +664,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
656
664
|
prop: {
|
657
665
|
value: function(){
|
658
666
|
var data = webshims.data(this, 'mediaelement');
|
667
|
+
|
659
668
|
selectSource(this, data);
|
660
669
|
if(hasNative && (!data || data.isActive == 'html5') && supLoad.prop._supvalue){
|
661
670
|
supLoad.prop._supvalue.apply(this, arguments);
|
@@ -667,6 +676,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
667
676
|
}
|
668
677
|
}
|
669
678
|
});
|
679
|
+
|
670
680
|
nativeCanPlayType[nodeName] = webshims.defineNodeNameProperty(nodeName, 'canPlayType', {
|
671
681
|
prop: {
|
672
682
|
value: function(type){
|
@@ -683,6 +693,9 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
683
693
|
ret = 'maybe';
|
684
694
|
}
|
685
695
|
}
|
696
|
+
if(!ret && hasYt && type == 'video/youtube'){
|
697
|
+
ret = 'maybe';
|
698
|
+
}
|
686
699
|
return ret;
|
687
700
|
}
|
688
701
|
}
|
@@ -732,8 +745,18 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
732
745
|
});
|
733
746
|
}
|
734
747
|
};
|
735
|
-
|
736
748
|
|
749
|
+
mediaelement.loadDebugger = function(){
|
750
|
+
webshims.ready('dom-support', function(){
|
751
|
+
webshims.loader.loadScript('mediaelement-debug');
|
752
|
+
});
|
753
|
+
};
|
754
|
+
|
755
|
+
if(({noCombo: 1, media: 1})[webshims.cfg.debug]){
|
756
|
+
$(document).on('mediaerror', function(e){
|
757
|
+
mediaelement.loadDebugger();
|
758
|
+
});
|
759
|
+
}
|
737
760
|
//set native implementation ready, before swf api is retested
|
738
761
|
if(hasNative){
|
739
762
|
webshims.isReady('mediaelement-core', true);
|
@@ -1042,6 +1065,26 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
1042
1065
|
return cueText.replace(tagSplits, replacer);
|
1043
1066
|
};
|
1044
1067
|
})();
|
1068
|
+
var mapTtmlToVtt = function(i){
|
1069
|
+
var content = i+'';
|
1070
|
+
var begin = this.getAttribute('begin') || '';
|
1071
|
+
var end = this.getAttribute('end') || '';
|
1072
|
+
var text = $.trim($.text(this));
|
1073
|
+
if(!/\./.test(begin)){
|
1074
|
+
begin += '.000';
|
1075
|
+
}
|
1076
|
+
if(!/\./.test(end)){
|
1077
|
+
end += '.000';
|
1078
|
+
}
|
1079
|
+
content += '\n';
|
1080
|
+
content += begin +' --> '+end+'\n';
|
1081
|
+
content += text;
|
1082
|
+
return content;
|
1083
|
+
};
|
1084
|
+
var ttmlTextToVTT = function(ttml){
|
1085
|
+
ttml = $.parseXML(ttml) || [];
|
1086
|
+
return $(ttml).find('[begin][end]').map(mapTtmlToVtt).get().join('\n\n') || '';
|
1087
|
+
};
|
1045
1088
|
|
1046
1089
|
mediaelement.loadTextTrack = function(mediaelem, track, trackData, _default){
|
1047
1090
|
var loadEvents = 'play playing';
|
@@ -1069,7 +1112,11 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
1069
1112
|
dataType: 'text',
|
1070
1113
|
url: src,
|
1071
1114
|
success: function(text){
|
1072
|
-
|
1115
|
+
var contentType = ajax.getResponseHeader('content-type');
|
1116
|
+
|
1117
|
+
if(!contentType.indexOf('application/xml')){
|
1118
|
+
text = ttmlTextToVTT(text);
|
1119
|
+
} else if(contentType.indexOf('text/vtt')){
|
1073
1120
|
webshims.error('set the mime-type of your WebVTT files to text/vtt. see: http://dev.w3.org/html5/webvtt/#text/vtt');
|
1074
1121
|
}
|
1075
1122
|
mediaelement.parseCaptions(text, obj, function(cues){
|
@@ -1189,25 +1236,20 @@ modified for webshims
|
|
1189
1236
|
*/
|
1190
1237
|
mediaelement.parseCaptionChunk = (function(){
|
1191
1238
|
// Set up timestamp parsers
|
1192
|
-
var WebVTTTimestampParser
|
1239
|
+
var WebVTTTimestampParser = /^(\d{2})?:?(\d{2}):(\d{2})\.(\d+)\s+\-\-\>\s+(\d{2})?:?(\d{2}):(\d{2})\.(\d+)\s*(.*)/;
|
1193
1240
|
var WebVTTDEFAULTSCueParser = /^(DEFAULTS|DEFAULT)\s+\-\-\>\s+(.*)/g;
|
1194
1241
|
var WebVTTSTYLECueParser = /^(STYLE|STYLES)\s+\-\-\>\s*\n([\s\S]*)/g;
|
1195
1242
|
var WebVTTCOMMENTCueParser = /^(COMMENT|COMMENTS)\s+\-\-\>\s+(.*)/g;
|
1243
|
+
var SRTTimestampParser = /^(\d{2})?:?(\d{2}):(\d{2})[\.\,](\d+)\s+\-\-\>\s+(\d{2})?:?(\d{2}):(\d{2})[\.\,](\d+)\s*(.*)/;
|
1196
1244
|
|
1197
1245
|
return function(subtitleElement,objectCount){
|
1198
1246
|
|
1199
|
-
var subtitleParts, timeIn, timeOut, html, timeData, subtitlePartIndex, id
|
1247
|
+
var subtitleParts, timeIn, timeOut, html, timeData, subtitlePartIndex, id;
|
1200
1248
|
var timestampMatch, tmpCue;
|
1201
1249
|
|
1202
1250
|
// WebVTT Special Cue Logic
|
1203
|
-
if (WebVTTDEFAULTSCueParser.exec(subtitleElement)) {
|
1204
|
-
// cueDefaults = specialCueData.slice(2).join("");
|
1205
|
-
// cueDefaults = cueDefaults.split(/\s+/g).filter(function(def) { return def && !!def.length; });
|
1206
|
-
return null;
|
1207
|
-
} else if ((specialCueData = WebVTTSTYLECueParser.exec(subtitleElement))) {
|
1251
|
+
if (WebVTTDEFAULTSCueParser.exec(subtitleElement) || WebVTTCOMMENTCueParser.exec(subtitleElement) || WebVTTSTYLECueParser.exec(subtitleElement)) {
|
1208
1252
|
return null;
|
1209
|
-
} else if ((specialCueData = WebVTTCOMMENTCueParser.exec(subtitleElement))) {
|
1210
|
-
return null; // At this stage, we don't want to do anything with these.
|
1211
1253
|
}
|
1212
1254
|
|
1213
1255
|
subtitleParts = subtitleElement.split(/\n/g);
|
@@ -1225,7 +1267,7 @@ modified for webshims
|
|
1225
1267
|
for (subtitlePartIndex = 0; subtitlePartIndex < subtitleParts.length; subtitlePartIndex ++) {
|
1226
1268
|
var timestamp = subtitleParts[subtitlePartIndex];
|
1227
1269
|
|
1228
|
-
if ((timestampMatch = WebVTTTimestampParser.exec(timestamp))) {
|
1270
|
+
if ((timestampMatch = WebVTTTimestampParser.exec(timestamp)) || (timestampMatch = SRTTimestampParser.exec(timestamp))) {
|
1229
1271
|
|
1230
1272
|
// WebVTT
|
1231
1273
|
|
@@ -1312,11 +1354,6 @@ modified for webshims
|
|
1312
1354
|
if(regWevVTT.test(cue)){
|
1313
1355
|
isWEBVTT = true;
|
1314
1356
|
} else if(cue.replace(/\s*/ig,"").length){
|
1315
|
-
if(!isWEBVTT){
|
1316
|
-
webshims.error('please use WebVTT format. This is the standard');
|
1317
|
-
complete(null);
|
1318
|
-
break;
|
1319
|
-
}
|
1320
1357
|
cue = mediaelement.parseCaptionChunk(cue, i);
|
1321
1358
|
if(cue){
|
1322
1359
|
track.addCue(cue);
|