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
@@ -509,10 +509,15 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
509
509
|
if(!$.parseHTML){
|
510
510
|
webshims.error("Webshims needs jQuery 1.8+ to work properly. Please update your jQuery version or downgrade webshims.");
|
511
511
|
}
|
512
|
+
|
513
|
+
if(webshims.cfg.extendNative == 1){
|
514
|
+
webshims.warn("extendNative configuration will be set to false by default with next release. In case you rely on it set it to 'true' otherwise to 'false'. See http://bit.ly/16OOTQO");
|
515
|
+
}
|
516
|
+
|
512
517
|
if (!webshims.cfg.no$Switch) {
|
513
518
|
var switch$ = function(){
|
514
519
|
if (window.jQuery && (!window.$ || window.jQuery == window.$) && !window.jQuery.webshims) {
|
515
|
-
webshims.error("jQuery was included more than once. Make sure to include it only once! Webshims and other Plugins might not work properly
|
520
|
+
webshims.error("jQuery was included more than once. Make sure to include it only once or try the $.noConflict(extreme) feature! Webshims and other Plugins might not work properly..");
|
516
521
|
if (window.$) {
|
517
522
|
window.$ = webshims.$;
|
518
523
|
}
|
@@ -530,7 +535,10 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
530
535
|
};
|
531
536
|
switch$();
|
532
537
|
setTimeout(switch$, 90);
|
538
|
+
webshims.ready('DOM', switch$);
|
533
539
|
$(switch$);
|
540
|
+
webshims.ready('WINDOWLOAD', switch$);
|
541
|
+
|
534
542
|
}
|
535
543
|
// (function(){
|
536
544
|
// var hostNames = {
|
@@ -638,6 +646,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
638
646
|
$(evtDel).off(evt, fn);
|
639
647
|
}
|
640
648
|
});
|
649
|
+
return this;
|
641
650
|
};
|
642
651
|
|
643
652
|
var dataID = '_webshimsLib'+ (Math.round(Math.random() * 1000));
|
@@ -672,57 +681,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
672
681
|
};
|
673
682
|
});
|
674
683
|
|
675
|
-
if($.Tween.propHooks._default && $.css){
|
676
|
-
(function(){
|
677
|
-
var isjQ8 = false;
|
678
|
-
try {
|
679
|
-
isjQ8 = $.css($('<b style="width: 10px" />')[0], 'width', '') == '10px';
|
680
|
-
} catch(er){
|
681
|
-
webshims.error(er);
|
682
|
-
}
|
683
|
-
var css = isjQ8 ?
|
684
|
-
function(elem, prop){
|
685
|
-
return $.css( elem, prop, false, "" );
|
686
|
-
} :
|
687
|
-
function(elem, prop){
|
688
|
-
return $.css( elem, prop, "" );
|
689
|
-
}
|
690
|
-
;
|
691
|
-
|
692
|
-
$.extend($.Tween.propHooks._default, {
|
693
|
-
get: function( tween ) {
|
694
|
-
var result;
|
695
|
-
|
696
|
-
if ( (tween.elem[ tween.prop ] != null || havePolyfill[ tween.prop ]) &&
|
697
|
-
(!tween.elem.style || tween.elem.style[ tween.prop ] == null) ) {
|
698
|
-
return havePolyfill[ tween.prop ] ? $.prop(tween.elem, tween.prop) : tween.elem[ tween.prop ];
|
699
|
-
}
|
700
|
-
|
701
|
-
// passing an empty string as a 3rd parameter to .css will automatically
|
702
|
-
// attempt a parseFloat and fallback to a string if the parse fails
|
703
|
-
// so, simple values such as "10px" are parsed to Float.
|
704
|
-
// complex values such as "rotate(1rad)" are returned as is.
|
705
|
-
result = css( tween.elem, tween.prop );
|
706
|
-
// Empty strings, null, undefined and "auto" are converted to 0.
|
707
|
-
return !result || result === "auto" ? 0 : result;
|
708
|
-
},
|
709
|
-
set: function( tween ) {
|
710
|
-
// use step hook for back compat - use cssHook if its there - use .style if its
|
711
|
-
// available and use plain properties where available
|
712
|
-
if ( jQuery.fx.step[ tween.prop ] ) {
|
713
|
-
jQuery.fx.step[ tween.prop ]( tween );
|
714
|
-
} else if ( tween.elem.style && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) {
|
715
|
-
jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
|
716
|
-
} else if( !havePolyfill[ tween.prop ] ) {
|
717
|
-
tween.elem[ tween.prop ] = tween.now;
|
718
|
-
} else {
|
719
|
-
$.prop(tween.elem, tween.prop, tween.now);
|
720
|
-
}
|
721
|
-
}
|
722
|
-
});
|
723
|
-
})();
|
724
|
-
}
|
725
|
-
|
726
684
|
|
727
685
|
['removeAttr', 'prop', 'attr'].forEach(function(type){
|
728
686
|
olds[type] = $[type];
|
@@ -1126,48 +1084,50 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1126
1084
|
});
|
1127
1085
|
};
|
1128
1086
|
return function(nativeElem, shadowElem, opts){
|
1129
|
-
|
1130
|
-
|
1131
|
-
nativeElem
|
1132
|
-
|
1133
|
-
if(shadowElem.jquery){
|
1134
|
-
shadowElem = shadowElem[0];
|
1135
|
-
}
|
1136
|
-
var nativeData = $.data(nativeElem, dataID) || $.data(nativeElem, dataID, {});
|
1137
|
-
var shadowData = $.data(shadowElem, dataID) || $.data(shadowElem, dataID, {});
|
1138
|
-
var shadowFocusElementData = {};
|
1139
|
-
if(!opts.shadowFocusElement){
|
1140
|
-
opts.shadowFocusElement = shadowElem;
|
1141
|
-
} else if(opts.shadowFocusElement){
|
1142
|
-
if(opts.shadowFocusElement.jquery){
|
1143
|
-
opts.shadowFocusElement = opts.shadowFocusElement[0];
|
1087
|
+
if(nativeElem && shadowElem){
|
1088
|
+
opts = opts || {};
|
1089
|
+
if(nativeElem.jquery){
|
1090
|
+
nativeElem = nativeElem[0];
|
1144
1091
|
}
|
1145
|
-
|
1146
|
-
|
1147
|
-
|
1148
|
-
$(nativeElem).on('remove', function(e){
|
1149
|
-
if (!e.originalEvent) {
|
1150
|
-
$(shadowElem).remove();
|
1092
|
+
if(shadowElem.jquery){
|
1093
|
+
shadowElem = shadowElem[0];
|
1151
1094
|
}
|
1152
|
-
|
1153
|
-
|
1154
|
-
|
1155
|
-
|
1156
|
-
|
1157
|
-
|
1158
|
-
|
1159
|
-
|
1160
|
-
|
1161
|
-
|
1162
|
-
|
1163
|
-
|
1095
|
+
var nativeData = $.data(nativeElem, dataID) || $.data(nativeElem, dataID, {});
|
1096
|
+
var shadowData = $.data(shadowElem, dataID) || $.data(shadowElem, dataID, {});
|
1097
|
+
var shadowFocusElementData = {};
|
1098
|
+
if(!opts.shadowFocusElement){
|
1099
|
+
opts.shadowFocusElement = shadowElem;
|
1100
|
+
} else if(opts.shadowFocusElement){
|
1101
|
+
if(opts.shadowFocusElement.jquery){
|
1102
|
+
opts.shadowFocusElement = opts.shadowFocusElement[0];
|
1103
|
+
}
|
1104
|
+
shadowFocusElementData = $.data(opts.shadowFocusElement, dataID) || $.data(opts.shadowFocusElement, dataID, shadowFocusElementData);
|
1105
|
+
}
|
1106
|
+
|
1107
|
+
$(nativeElem).on('remove', function(e){
|
1108
|
+
if (!e.originalEvent) {
|
1109
|
+
$(shadowElem).remove();
|
1110
|
+
}
|
1164
1111
|
});
|
1112
|
+
|
1113
|
+
nativeData.hasShadow = shadowElem;
|
1114
|
+
shadowFocusElementData.nativeElement = shadowData.nativeElement = nativeElem;
|
1115
|
+
shadowFocusElementData.shadowData = shadowData.shadowData = nativeData.shadowData = {
|
1116
|
+
nativeElement: nativeElem,
|
1117
|
+
shadowElement: shadowElem,
|
1118
|
+
shadowFocusElement: opts.shadowFocusElement
|
1119
|
+
};
|
1120
|
+
if(opts.shadowChilds){
|
1121
|
+
opts.shadowChilds.each(function(){
|
1122
|
+
elementData(this, 'shadowData', shadowData.shadowData);
|
1123
|
+
});
|
1124
|
+
}
|
1125
|
+
|
1126
|
+
if(opts.data){
|
1127
|
+
shadowFocusElementData.shadowData.data = shadowData.shadowData.data = nativeData.shadowData.data = opts.data;
|
1128
|
+
}
|
1129
|
+
opts = null;
|
1165
1130
|
}
|
1166
|
-
|
1167
|
-
if(opts.data){
|
1168
|
-
shadowFocusElementData.shadowData.data = shadowData.shadowData.data = nativeData.shadowData.data = opts.data;
|
1169
|
-
}
|
1170
|
-
opts = null;
|
1171
1131
|
webshims.docObserve();
|
1172
1132
|
};
|
1173
1133
|
})(),
|
@@ -1451,7 +1411,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1451
1411
|
// register: moduleName:string,
|
1452
1412
|
// callback: callback:function
|
1453
1413
|
// });
|
1454
|
-
// get/set including
|
1414
|
+
// get/set including remoteLang
|
1455
1415
|
// - webshims.activeLang({
|
1456
1416
|
// module: moduleName:string,
|
1457
1417
|
// callback: callback:function,
|
@@ -1703,12 +1663,13 @@ webshims.register('form-core', function($, webshims, window, document, undefined
|
|
1703
1663
|
$.expr[":"][name] = $.expr.filters[name+"-element"];
|
1704
1664
|
});
|
1705
1665
|
|
1706
|
-
|
1707
|
-
$.expr[":"].focus = function(
|
1666
|
+
var pseudoFocus = $.expr[":"].focus;
|
1667
|
+
$.expr[":"].focus = function(){
|
1708
1668
|
try {
|
1709
|
-
|
1710
|
-
|
1711
|
-
|
1669
|
+
return pseudoFocus.apply(this, arguments);
|
1670
|
+
} catch(e){
|
1671
|
+
webshims.error(e);
|
1672
|
+
}
|
1712
1673
|
return false;
|
1713
1674
|
};
|
1714
1675
|
|
@@ -1723,7 +1684,7 @@ webshims.register('form-core', function($, webshims, window, document, undefined
|
|
1723
1684
|
});
|
1724
1685
|
};
|
1725
1686
|
|
1726
|
-
|
1687
|
+
var transClass = ('transitionDelay' in document.documentElement.style) ? '' : ' no-transition';
|
1727
1688
|
webshims.wsPopover = {
|
1728
1689
|
id: 0,
|
1729
1690
|
_create: function(){
|
@@ -1731,7 +1692,7 @@ webshims.register('form-core', function($, webshims, window, document, undefined
|
|
1731
1692
|
this.id = webshims.wsPopover.id++;
|
1732
1693
|
this.eventns = '.wsoverlay' + this.id;
|
1733
1694
|
this.timers = {};
|
1734
|
-
this.element = $('<div class="ws-popover" tabindex="-1"><div class="ws-po-outerbox"><div class="ws-po-arrow"><div class="ws-po-arrowbox" /></div><div class="ws-po-box" /></div></div>');
|
1695
|
+
this.element = $('<div class="ws-popover'+transClass+'" tabindex="-1"><div class="ws-po-outerbox"><div class="ws-po-arrow"><div class="ws-po-arrowbox" /></div><div class="ws-po-box" /></div></div>');
|
1735
1696
|
this.contentElement = $('.ws-po-box', this.element);
|
1736
1697
|
this.lastElement = $([]);
|
1737
1698
|
this.bindElement();
|
@@ -1770,47 +1731,6 @@ webshims.register('form-core', function($, webshims, window, document, undefined
|
|
1770
1731
|
};
|
1771
1732
|
|
1772
1733
|
|
1773
|
-
/* extension, but also used to fix native implementation workaround/bugfixes */
|
1774
|
-
(function(){
|
1775
|
-
var firstEvent,
|
1776
|
-
invalids = [],
|
1777
|
-
stopSubmitTimer,
|
1778
|
-
form
|
1779
|
-
;
|
1780
|
-
|
1781
|
-
$(document).on('invalid', function(e){
|
1782
|
-
if(e.wrongWebkitInvalid){return;}
|
1783
|
-
var jElm = $(e.target);
|
1784
|
-
|
1785
|
-
|
1786
|
-
if(!firstEvent){
|
1787
|
-
//trigger firstinvalid
|
1788
|
-
firstEvent = $.Event('firstinvalid');
|
1789
|
-
firstEvent.isInvalidUIPrevented = e.isDefaultPrevented;
|
1790
|
-
var firstSystemInvalid = $.Event('firstinvalidsystem');
|
1791
|
-
$(document).triggerHandler(firstSystemInvalid, {element: e.target, form: e.target.form, isInvalidUIPrevented: e.isDefaultPrevented});
|
1792
|
-
jElm.trigger(firstEvent);
|
1793
|
-
}
|
1794
|
-
|
1795
|
-
//if firstinvalid was prevented all invalids will be also prevented
|
1796
|
-
if( firstEvent && firstEvent.isDefaultPrevented() ){
|
1797
|
-
e.preventDefault();
|
1798
|
-
}
|
1799
|
-
invalids.push(e.target);
|
1800
|
-
e.extraData = 'fix';
|
1801
|
-
clearTimeout(stopSubmitTimer);
|
1802
|
-
stopSubmitTimer = setTimeout(function(){
|
1803
|
-
var lastEvent = {type: 'lastinvalid', cancelable: false, invalidlist: $(invalids)};
|
1804
|
-
//reset firstinvalid
|
1805
|
-
firstEvent = false;
|
1806
|
-
invalids = [];
|
1807
|
-
$(e.target).trigger(lastEvent, lastEvent);
|
1808
|
-
}, 9);
|
1809
|
-
jElm = null;
|
1810
|
-
});
|
1811
|
-
})();
|
1812
|
-
|
1813
|
-
|
1814
1734
|
webshims.getContentValidationMessage = function(elem, validity, key){
|
1815
1735
|
var message = $(elem).data('errormessage') || elem.getAttribute('x-moz-errormessage') || '';
|
1816
1736
|
if(key && message[key]){
|
@@ -1844,19 +1764,13 @@ webshims.register('form-core', function($, webshims, window, document, undefined
|
|
1844
1764
|
};
|
1845
1765
|
|
1846
1766
|
|
1847
|
-
|
1848
|
-
$(
|
1849
|
-
|
1850
|
-
|
1851
|
-
}
|
1852
|
-
});
|
1767
|
+
$(document).on('focusin.lazyloadvalidation', function(e){
|
1768
|
+
if('form' in e.target && $(e.target).is(':invalid')){
|
1769
|
+
lazyLoad();
|
1770
|
+
}
|
1853
1771
|
});
|
1854
1772
|
webshims.ready('WINDOWLOAD', lazyLoad);
|
1855
|
-
|
1856
|
-
options.customMessages = true;
|
1857
|
-
webshims.reTest('form-message');
|
1858
|
-
webshims.error('overrideMessages is deprecated. use customMessages instead.');
|
1859
|
-
}
|
1773
|
+
|
1860
1774
|
if(options.replaceValidationUI){
|
1861
1775
|
webshims.ready('DOM forms', function(){
|
1862
1776
|
$(document).on('firstinvalid', function(e){
|
@@ -1867,8 +1781,47 @@ webshims.register('form-core', function($, webshims, window, document, undefined
|
|
1867
1781
|
});
|
1868
1782
|
});
|
1869
1783
|
}
|
1870
|
-
|
1784
|
+
|
1785
|
+
/* extension, but also used to fix native implementation workaround/bugfixes */
|
1786
|
+
(function(){
|
1787
|
+
var firstEvent,
|
1788
|
+
invalids = [],
|
1789
|
+
stopSubmitTimer,
|
1790
|
+
form
|
1791
|
+
;
|
1792
|
+
|
1793
|
+
$(document).on('invalid', function(e){
|
1794
|
+
if(e.wrongWebkitInvalid){return;}
|
1795
|
+
var jElm = $(e.target);
|
1796
|
+
|
1797
|
+
|
1798
|
+
if(!firstEvent){
|
1799
|
+
//trigger firstinvalid
|
1800
|
+
firstEvent = $.Event('firstinvalid');
|
1801
|
+
firstEvent.isInvalidUIPrevented = e.isDefaultPrevented;
|
1802
|
+
var firstSystemInvalid = $.Event('firstinvalidsystem');
|
1803
|
+
$(document).triggerHandler(firstSystemInvalid, {element: e.target, form: e.target.form, isInvalidUIPrevented: e.isDefaultPrevented});
|
1804
|
+
jElm.trigger(firstEvent);
|
1805
|
+
}
|
1871
1806
|
|
1807
|
+
//if firstinvalid was prevented all invalids will be also prevented
|
1808
|
+
if( firstEvent && firstEvent.isDefaultPrevented() ){
|
1809
|
+
e.preventDefault();
|
1810
|
+
}
|
1811
|
+
invalids.push(e.target);
|
1812
|
+
e.extraData = 'fix';
|
1813
|
+
clearTimeout(stopSubmitTimer);
|
1814
|
+
stopSubmitTimer = setTimeout(function(){
|
1815
|
+
var lastEvent = {type: 'lastinvalid', cancelable: false, invalidlist: $(invalids)};
|
1816
|
+
//reset firstinvalid
|
1817
|
+
firstEvent = false;
|
1818
|
+
invalids = [];
|
1819
|
+
$(e.target).trigger(lastEvent, lastEvent);
|
1820
|
+
}, 9);
|
1821
|
+
jElm = null;
|
1822
|
+
});
|
1823
|
+
})();
|
1824
|
+
});
|
1872
1825
|
|
1873
1826
|
if(!Modernizr.formvalidation || webshims.bugs.bustedValidity){
|
1874
1827
|
webshims.register('form-shim-extend', function($, webshims, window, document, undefined, options){
|
@@ -2613,6 +2566,8 @@ if(Modernizr.inputtypes.date && /webkit/i.test(navigator.userAgent)){
|
|
2613
2566
|
fixInputTypes = {
|
2614
2567
|
date: 1,
|
2615
2568
|
time: 1,
|
2569
|
+
month: 1,
|
2570
|
+
week: 1,
|
2616
2571
|
"datetime-local": 1
|
2617
2572
|
},
|
2618
2573
|
noFocusEvents = {
|
@@ -2682,83 +2637,7 @@ if(Modernizr.inputtypes.date && /webkit/i.test(navigator.userAgent)){
|
|
2682
2637
|
;
|
2683
2638
|
}
|
2684
2639
|
;
|
2685
|
-
if($.event.customEvent){
|
2686
|
-
$.event.customEvent.updateInput = true;
|
2687
|
-
}
|
2688
2640
|
|
2689
|
-
(function(){
|
2690
|
-
|
2691
|
-
var correctValue = function(elem){
|
2692
|
-
var i = 1;
|
2693
|
-
var len = 3;
|
2694
|
-
var abort, val;
|
2695
|
-
if(elem.type == 'date' && (isSubmit || !$(elem).is(':focus'))){
|
2696
|
-
val = elem.value;
|
2697
|
-
if(val && val.length < 10 && (val = val.split('-')) && val.length == len){
|
2698
|
-
for(; i < len; i++){
|
2699
|
-
if(val[i].length == 1){
|
2700
|
-
val[i] = '0'+val[i];
|
2701
|
-
} else if(val[i].length != 2){
|
2702
|
-
abort = true;
|
2703
|
-
break;
|
2704
|
-
}
|
2705
|
-
}
|
2706
|
-
if(!abort){
|
2707
|
-
val = val.join('-');
|
2708
|
-
$.prop(elem, 'value', val);
|
2709
|
-
return val;
|
2710
|
-
}
|
2711
|
-
}
|
2712
|
-
}
|
2713
|
-
};
|
2714
|
-
var inputCheckValidityDesc, formCheckValidityDesc, inputValueDesc, inputValidityDesc;
|
2715
|
-
|
2716
|
-
inputCheckValidityDesc = webshims.defineNodeNameProperty('input', 'checkValidity', {
|
2717
|
-
prop: {
|
2718
|
-
value: function(){
|
2719
|
-
correctValue(this);
|
2720
|
-
return inputCheckValidityDesc.prop._supvalue.apply(this, arguments);
|
2721
|
-
}
|
2722
|
-
}
|
2723
|
-
});
|
2724
|
-
|
2725
|
-
formCheckValidityDesc = webshims.defineNodeNameProperty('form', 'checkValidity', {
|
2726
|
-
prop: {
|
2727
|
-
value: function(){
|
2728
|
-
$('input', this).each(function(){
|
2729
|
-
correctValue(this);
|
2730
|
-
});
|
2731
|
-
return formCheckValidityDesc.prop._supvalue.apply(this, arguments);
|
2732
|
-
}
|
2733
|
-
}
|
2734
|
-
});
|
2735
|
-
|
2736
|
-
inputValueDesc = webshims.defineNodeNameProperty('input', 'value', {
|
2737
|
-
prop: {
|
2738
|
-
set: function(){
|
2739
|
-
return inputValueDesc.prop._supset.apply(this, arguments);
|
2740
|
-
},
|
2741
|
-
get: function(){
|
2742
|
-
return correctValue(this) || inputValueDesc.prop._supget.apply(this, arguments);
|
2743
|
-
}
|
2744
|
-
}
|
2745
|
-
});
|
2746
|
-
|
2747
|
-
inputValidityDesc = webshims.defineNodeNameProperty('input', 'validity', {
|
2748
|
-
prop: {
|
2749
|
-
writeable: false,
|
2750
|
-
get: function(){
|
2751
|
-
correctValue(this);
|
2752
|
-
return inputValidityDesc.prop._supget.apply(this, arguments);
|
2753
|
-
}
|
2754
|
-
}
|
2755
|
-
});
|
2756
|
-
|
2757
|
-
$(document).on('change', function(e){
|
2758
|
-
correctValue(e.target);
|
2759
|
-
});
|
2760
|
-
|
2761
|
-
})();
|
2762
2641
|
|
2763
2642
|
$(document)
|
2764
2643
|
.on('focusin', function(e){
|
@@ -3779,8 +3658,15 @@ webshims.register('form-message', function($, webshims, window, document, undefi
|
|
3779
3658
|
validityMessages.en.rangeOverflow[type] = validityMessages.en.rangeOverflow[type] || 'Value must be at or before {%max}.';
|
3780
3659
|
});
|
3781
3660
|
}
|
3782
|
-
|
3783
|
-
|
3661
|
+
if(!validityMessages['en-US']){
|
3662
|
+
validityMessages['en-US'] = $.extend(true, {}, validityMessages.en);
|
3663
|
+
}
|
3664
|
+
if(!validityMessages['en-GB']){
|
3665
|
+
validityMessages['en-GB'] = $.extend(true, {}, validityMessages.en);
|
3666
|
+
}
|
3667
|
+
if(!validityMessages['en-AU']){
|
3668
|
+
validityMessages['en-AU'] = $.extend(true, {}, validityMessages.en);
|
3669
|
+
}
|
3784
3670
|
validityMessages[''] = validityMessages[''] || validityMessages['en-US'];
|
3785
3671
|
|
3786
3672
|
validityMessages.de = $.extend(true, {
|
@@ -3880,12 +3766,22 @@ webshims.register('form-message', function($, webshims, window, document, undefi
|
|
3880
3766
|
|
3881
3767
|
webshims.activeLang({
|
3882
3768
|
langObj: validityMessages,
|
3883
|
-
module: 'form-core',
|
3769
|
+
module: 'form-core',
|
3884
3770
|
callback: function(langObj){
|
3885
|
-
|
3886
3771
|
currentValidationMessage = langObj;
|
3887
3772
|
}
|
3888
3773
|
});
|
3774
|
+
webshims.activeLang({
|
3775
|
+
register: 'form-core',
|
3776
|
+
callback: function(val){
|
3777
|
+
$.each(validityMessages, function(i, val){
|
3778
|
+
if(validityMessages[val]){
|
3779
|
+
currentValidationMessage = validityMessages[val];
|
3780
|
+
return false;
|
3781
|
+
}
|
3782
|
+
});
|
3783
|
+
}
|
3784
|
+
});
|
3889
3785
|
|
3890
3786
|
implementProperties.forEach(function(messageProp){
|
3891
3787
|
webshims.defineNodeNamesProperty(['fieldset', 'output', 'button'], messageProp, {
|
@@ -3932,6 +3828,7 @@ webshims.register('form-message', function($, webshims, window, document, undefi
|
|
3932
3828
|
|
3933
3829
|
});
|
3934
3830
|
});
|
3831
|
+
|
3935
3832
|
webshims.register('form-datalist', function($, webshims, window, document, undefined, options){
|
3936
3833
|
"use strict";
|
3937
3834
|
var doc = document;
|
@@ -4255,52 +4152,55 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
|
|
4255
4152
|
});
|
4256
4153
|
webshims.loader.loadList(['mediaelement-native-fix']);
|
4257
4154
|
}
|
4258
|
-
|
4259
|
-
|
4260
|
-
|
4261
|
-
|
4262
|
-
|
4263
|
-
|
4264
|
-
|
4265
|
-
|
4266
|
-
|
4267
|
-
var parent;
|
4268
|
-
if(!options.preferFlash &&
|
4155
|
+
|
4156
|
+
if(!options.preferFlash){
|
4157
|
+
var noSwitch = {
|
4158
|
+
1: 1,
|
4159
|
+
2: 1
|
4160
|
+
};
|
4161
|
+
var switchOptions = function(e){
|
4162
|
+
var media, error, parent;
|
4163
|
+
if(!options.preferFlash &&
|
4269
4164
|
($(e.target).is('audio, video') || ((parent = e.target.parentNode) && $('source:last', parent)[0] == e.target)) &&
|
4270
|
-
(media = $(e.target).closest('audio, video')) && !noSwitch[media.prop('error')]
|
4165
|
+
(media = $(e.target).closest('audio, video')) && !noSwitch[(error = media.prop('error'))]
|
4271
4166
|
){
|
4272
|
-
|
4273
|
-
|
4274
|
-
|
4275
|
-
|
4276
|
-
setTimeout(function(){
|
4277
|
-
if(!options.preferFlash && webshims.mediaelement.createSWF && !media.is('.nonnative-api-active')){
|
4278
|
-
options.preferFlash = true;
|
4279
|
-
document.removeEventListener('error', switchOptions, true);
|
4280
|
-
$('audio, video').each(function(){
|
4281
|
-
webshims.mediaelement.selectSource(this);
|
4282
|
-
});
|
4283
|
-
webshims.error("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src+" Mediaerror: "+ media.prop('error'));
|
4284
|
-
}
|
4285
|
-
}, 9);
|
4286
|
-
});
|
4287
|
-
} else{
|
4288
|
-
document.removeEventListener('error', switchOptions, true);
|
4167
|
+
if(error == null){
|
4168
|
+
webshims.warn("There was an unspecified error on a mediaelement");
|
4169
|
+
return;
|
4170
|
+
|
4289
4171
|
}
|
4290
|
-
|
4291
|
-
|
4292
|
-
|
4293
|
-
|
4294
|
-
|
4295
|
-
|
4296
|
-
|
4297
|
-
|
4298
|
-
|
4299
|
-
|
4300
|
-
|
4172
|
+
$(function(){
|
4173
|
+
if(hasSwf && !options.preferFlash){
|
4174
|
+
loadSwf();
|
4175
|
+
webshims.ready('WINDOWLOAD '+swfType, function(){
|
4176
|
+
setTimeout(function(){
|
4177
|
+
if(!options.preferFlash && webshims.mediaelement.createSWF && !media.is('.nonnative-api-active')){
|
4178
|
+
options.preferFlash = true;
|
4179
|
+
document.removeEventListener('error', switchOptions, true);
|
4180
|
+
$('audio, video').each(function(){
|
4181
|
+
webshims.mediaelement.selectSource(this);
|
4182
|
+
});
|
4183
|
+
webshims.error("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src+" Mediaerror: "+ media.prop('error'));
|
4184
|
+
}
|
4185
|
+
}, 9);
|
4186
|
+
});
|
4187
|
+
} else{
|
4188
|
+
document.removeEventListener('error', switchOptions, true);
|
4189
|
+
}
|
4190
|
+
});
|
4191
|
+
}
|
4192
|
+
};
|
4193
|
+
document.addEventListener('error', switchOptions, true);
|
4194
|
+
$('audio, video').each(function(){
|
4195
|
+
var error = $.prop(this, 'error');
|
4196
|
+
if(error && !noSwitch[error]){
|
4197
|
+
switchOptions({target: this});
|
4198
|
+
return false;
|
4199
|
+
}
|
4200
|
+
});
|
4201
|
+
}
|
4301
4202
|
}
|
4302
4203
|
|
4303
|
-
|
4304
4204
|
if(Modernizr.track && !bugs.track){
|
4305
4205
|
(function(){
|
4306
4206
|
|
@@ -4681,63 +4581,14 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
4681
4581
|
|
4682
4582
|
});
|
4683
4583
|
|
4684
|
-
|
4685
|
-
if(!supportsLoop){
|
4686
|
-
webshims.defineNodeNamesBooleanProperty(['audio', 'video'], 'loop');
|
4687
|
-
}
|
4688
|
-
|
4689
|
-
['audio', 'video'].forEach(function(nodeName){
|
4690
|
-
var supLoad = webshims.defineNodeNameProperty(nodeName, 'load', {
|
4691
|
-
prop: {
|
4692
|
-
value: function(){
|
4693
|
-
var data = webshims.data(this, 'mediaelement');
|
4694
|
-
selectSource(this, data);
|
4695
|
-
if(hasNative && (!data || data.isActive == 'html5') && supLoad.prop._supvalue){
|
4696
|
-
supLoad.prop._supvalue.apply(this, arguments);
|
4697
|
-
}
|
4698
|
-
}
|
4699
|
-
}
|
4700
|
-
});
|
4701
|
-
nativeCanPlayType[nodeName] = webshims.defineNodeNameProperty(nodeName, 'canPlayType', {
|
4702
|
-
prop: {
|
4703
|
-
value: function(type){
|
4704
|
-
var ret = '';
|
4705
|
-
if(hasNative && nativeCanPlayType[nodeName].prop._supvalue){
|
4706
|
-
ret = nativeCanPlayType[nodeName].prop._supvalue.call(this, type);
|
4707
|
-
if(ret == 'no'){
|
4708
|
-
ret = '';
|
4709
|
-
}
|
4710
|
-
}
|
4711
|
-
if(!ret && hasSwf){
|
4712
|
-
type = $.trim((type || '').split(';')[0]);
|
4713
|
-
if(mediaelement.swfMimeTypes.indexOf(type) != -1){
|
4714
|
-
ret = 'maybe';
|
4715
|
-
}
|
4716
|
-
}
|
4717
|
-
return ret;
|
4718
|
-
}
|
4719
|
-
}
|
4720
|
-
});
|
4721
|
-
});
|
4722
|
-
webshims.onNodeNamesPropertyModify(['audio', 'video'], ['src', 'poster'], {
|
4723
|
-
set: function(){
|
4724
|
-
var elem = this;
|
4725
|
-
var baseData = webshims.data(elem, 'mediaelementBase') || webshims.data(elem, 'mediaelementBase', {});
|
4726
|
-
clearTimeout(baseData.loadTimer);
|
4727
|
-
baseData.loadTimer = setTimeout(function(){
|
4728
|
-
selectSource(elem);
|
4729
|
-
elem = null;
|
4730
|
-
}, 9);
|
4731
|
-
}
|
4732
|
-
});
|
4733
|
-
});
|
4734
|
-
|
4584
|
+
var handleMedia = false;
|
4735
4585
|
var initMediaElements = function(){
|
4736
4586
|
var testFixMedia = function(){
|
4737
4587
|
if(webshims.implement(this, 'mediaelement')){
|
4738
4588
|
selectSource(this);
|
4739
4589
|
|
4740
|
-
if
|
4590
|
+
//fixes for FF 12 and IE9/10 || does not hurt, if run in other browsers
|
4591
|
+
if(hasNative && (!supportsLoop || ('ActiveXObject' in window))){
|
4741
4592
|
var bufferTimer;
|
4742
4593
|
var lastBuffered;
|
4743
4594
|
var elem = this;
|
@@ -4766,7 +4617,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
4766
4617
|
lastBuffered = getBufferedString();
|
4767
4618
|
}
|
4768
4619
|
clearTimeout(bufferTimer);
|
4769
|
-
bufferTimer = setTimeout(testBuffer,
|
4620
|
+
bufferTimer = setTimeout(testBuffer, 400);
|
4770
4621
|
},
|
4771
4622
|
'emptied stalled mediaerror abort suspend': function(e){
|
4772
4623
|
if(e.type == 'emptied'){
|
@@ -4783,11 +4634,62 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
4783
4634
|
}
|
4784
4635
|
|
4785
4636
|
};
|
4786
|
-
|
4637
|
+
|
4787
4638
|
|
4788
4639
|
|
4789
4640
|
webshims.ready('dom-support', function(){
|
4790
4641
|
handleMedia = true;
|
4642
|
+
|
4643
|
+
if(!supportsLoop){
|
4644
|
+
webshims.defineNodeNamesBooleanProperty(['audio', 'video'], 'loop');
|
4645
|
+
}
|
4646
|
+
|
4647
|
+
['audio', 'video'].forEach(function(nodeName){
|
4648
|
+
var supLoad = webshims.defineNodeNameProperty(nodeName, 'load', {
|
4649
|
+
prop: {
|
4650
|
+
value: function(){
|
4651
|
+
var data = webshims.data(this, 'mediaelement');
|
4652
|
+
selectSource(this, data);
|
4653
|
+
if(hasNative && (!data || data.isActive == 'html5') && supLoad.prop._supvalue){
|
4654
|
+
supLoad.prop._supvalue.apply(this, arguments);
|
4655
|
+
}
|
4656
|
+
}
|
4657
|
+
}
|
4658
|
+
});
|
4659
|
+
nativeCanPlayType[nodeName] = webshims.defineNodeNameProperty(nodeName, 'canPlayType', {
|
4660
|
+
prop: {
|
4661
|
+
value: function(type){
|
4662
|
+
var ret = '';
|
4663
|
+
if(hasNative && nativeCanPlayType[nodeName].prop._supvalue){
|
4664
|
+
ret = nativeCanPlayType[nodeName].prop._supvalue.call(this, type);
|
4665
|
+
if(ret == 'no'){
|
4666
|
+
ret = '';
|
4667
|
+
}
|
4668
|
+
}
|
4669
|
+
if(!ret && hasSwf){
|
4670
|
+
type = $.trim((type || '').split(';')[0]);
|
4671
|
+
if(mediaelement.swfMimeTypes.indexOf(type) != -1){
|
4672
|
+
ret = 'maybe';
|
4673
|
+
}
|
4674
|
+
}
|
4675
|
+
return ret;
|
4676
|
+
}
|
4677
|
+
}
|
4678
|
+
});
|
4679
|
+
});
|
4680
|
+
webshims.onNodeNamesPropertyModify(['audio', 'video'], ['src', 'poster'], {
|
4681
|
+
set: function(){
|
4682
|
+
var elem = this;
|
4683
|
+
var baseData = webshims.data(elem, 'mediaelementBase') || webshims.data(elem, 'mediaelementBase', {});
|
4684
|
+
clearTimeout(baseData.loadTimer);
|
4685
|
+
baseData.loadTimer = setTimeout(function(){
|
4686
|
+
selectSource(elem);
|
4687
|
+
elem = null;
|
4688
|
+
}, 9);
|
4689
|
+
}
|
4690
|
+
});
|
4691
|
+
|
4692
|
+
|
4791
4693
|
webshims.addReady(function(context, insertedElement){
|
4792
4694
|
var media = $('video, audio', context)
|
4793
4695
|
.add(insertedElement.filter('video, audio'))
|