webshims-rails 1.11.2 → 1.11.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +6 -14
- data/lib/webshims-rails/version.rb +2 -2
- data/vendor/assets/javascripts/webshims/polyfiller.js +3 -4
- data/vendor/assets/javascripts/webshims/shims/combos/1.js +20 -8
- data/vendor/assets/javascripts/webshims/shims/combos/10.js +43 -2
- data/vendor/assets/javascripts/webshims/shims/combos/11.js +3 -0
- data/vendor/assets/javascripts/webshims/shims/combos/12.js +12 -4
- data/vendor/assets/javascripts/webshims/shims/combos/13.js +12 -4
- data/vendor/assets/javascripts/webshims/shims/combos/14.js +40 -2
- data/vendor/assets/javascripts/webshims/shims/combos/15.js +48 -6
- data/vendor/assets/javascripts/webshims/shims/combos/16.js +60 -10
- data/vendor/assets/javascripts/webshims/shims/combos/17.js +3 -0
- data/vendor/assets/javascripts/webshims/shims/combos/18.js +3 -0
- data/vendor/assets/javascripts/webshims/shims/combos/19.js +115 -17
- data/vendor/assets/javascripts/webshims/shims/combos/2.js +60 -10
- data/vendor/assets/javascripts/webshims/shims/combos/20.js +115 -17
- data/vendor/assets/javascripts/webshims/shims/combos/21.js +63 -11
- data/vendor/assets/javascripts/webshims/shims/combos/23.js +12 -4
- data/vendor/assets/javascripts/webshims/shims/combos/24.js +3 -5
- data/vendor/assets/javascripts/webshims/shims/combos/25.js +115 -17
- data/vendor/assets/javascripts/webshims/shims/combos/26.js +40 -2
- data/vendor/assets/javascripts/webshims/shims/combos/3.js +48 -6
- data/vendor/assets/javascripts/webshims/shims/combos/30.js +48 -6
- data/vendor/assets/javascripts/webshims/shims/combos/31.js +48 -6
- data/vendor/assets/javascripts/webshims/shims/combos/4.js +40 -2
- data/vendor/assets/javascripts/webshims/shims/combos/5.js +3 -0
- data/vendor/assets/javascripts/webshims/shims/combos/6.js +3 -0
- data/vendor/assets/javascripts/webshims/shims/combos/7.js +60 -10
- data/vendor/assets/javascripts/webshims/shims/combos/8.js +60 -10
- data/vendor/assets/javascripts/webshims/shims/combos/9.js +43 -2
- data/vendor/assets/javascripts/webshims/shims/dom-extend.js +40 -2
- data/vendor/assets/javascripts/webshims/shims/form-core.js +8 -4
- data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +3 -0
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend2.js +3 -5
- data/vendor/assets/javascripts/webshims/shims/form-validation.js +137 -0
- data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +12 -4
- data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +63 -11
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
ODdjNWY5MWQ2ZGI3NmQ5OTZjYzUzZGQ0ZmMwMzE3ZjE2MmU4MWYwN2E0OGM4
|
10
|
-
ZDllYWE5YWI5ZTNmYzY1YzI4ZjBkZDFmMjI0ZWE5MjU2NGNhY2Q2MTI0YTYx
|
11
|
-
MzU0MTlhZWE1YTM3NmI4M2UwOTgwOTAyOTg1OGQwMDFhNzg2MjU=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
YmExN2NjMmFjNTFlNzVkMDgxMWJhNGZmZjg0ZTNiY2QxYjA1ZTJhY2M3NjQx
|
14
|
-
MjIyODI4YTEyMzM3M2QxYjJiZjJkNGE5MDkwZDFhMWFhY2QyMDNhYzQ1ODdm
|
15
|
-
MTVlZGQ1MTc1OTMxODdlYWJlZGVkYzU5MWFhZDg2ZmUxZDgzYTA=
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: bd71d4a931e677f0ccdfbe32415634a08db05ace
|
4
|
+
data.tar.gz: 1eac083125384b526e9d8624f53a3504b489cbdd
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: abef891b0184f6acdf4ae7d31e60d1a709c5bef44e0b74ed23334adc9f173d70ef2ea26fe9d86d29d2f3c09e107e4868902e538df661649e7086a97b9cdfbaa2
|
7
|
+
data.tar.gz: c06603fb300e0f60ea8a147dfbe28887819eafb68f74848f25956b85c397057f94faef9b664bd13717dc9547f5bee760cb510cf9ff997e9bf0795c66195c65a2
|
@@ -27,7 +27,7 @@
|
|
27
27
|
|
28
28
|
|
29
29
|
var webshims = {
|
30
|
-
version: '1.11.
|
30
|
+
version: '1.11.3',
|
31
31
|
cfg: {
|
32
32
|
|
33
33
|
//addCacheBuster: false,
|
@@ -1010,7 +1010,7 @@
|
|
1010
1010
|
// ,fieldWrapper: undefined
|
1011
1011
|
// ,fx: 'slide'
|
1012
1012
|
},
|
1013
|
-
availableLangs: ['ar', 'ch-ZN', 'el', 'es', 'fr', 'he', 'hi', 'hu', 'it', 'ja', 'lt', 'nl', 'pl', 'pt-PT', 'ru', 'sv'] //en and de are directly implemented in core
|
1013
|
+
availableLangs: ['ar', 'ch-ZN', 'cs', 'el', 'es', 'fr', 'he', 'hi', 'hu', 'it', 'ja', 'lt', 'nl', 'pl', 'pt', 'pt-BR', 'pt-PT', 'ru', 'sv'] //en and de are directly implemented in core
|
1014
1014
|
// ,customMessages: false,
|
1015
1015
|
// overridePlaceholder: false, // might be good for IE10
|
1016
1016
|
// replaceValidationUI: false
|
@@ -1176,7 +1176,6 @@
|
|
1176
1176
|
noAutoCallback: true,
|
1177
1177
|
options: {
|
1178
1178
|
preferFlash: false,
|
1179
|
-
player: 'jaris',
|
1180
1179
|
vars: {},
|
1181
1180
|
params: {},
|
1182
1181
|
attrs: {},
|
@@ -1191,7 +1190,7 @@
|
|
1191
1190
|
|
1192
1191
|
addPolyfill('mediaelement-jaris', {
|
1193
1192
|
f: 'mediaelement',
|
1194
|
-
d: ['swfmini', DOMSUPPORT],
|
1193
|
+
d: ['mediaelement-core', 'swfmini', DOMSUPPORT],
|
1195
1194
|
test: function(){
|
1196
1195
|
if(!Modernizr.audio || !Modernizr.video || webshims.mediaelement.loadSwf){
|
1197
1196
|
return false;
|
@@ -498,17 +498,21 @@ webshims.register('form-core', function($, webshims, window, document, undefined
|
|
498
498
|
/*
|
499
499
|
* Selectors for all browsers
|
500
500
|
*/
|
501
|
+
var rElementsGroup = /^(?:form|fieldset)$/i;
|
501
502
|
var hasInvalid = function(elem){
|
502
503
|
var ret = false;
|
503
504
|
$(elem).jProp('elements').each(function(){
|
504
|
-
|
505
|
-
|
506
|
-
|
505
|
+
if(!rElementsGroup.test(elem.nodeName || '')){
|
506
|
+
ret = $(this).is(':invalid');
|
507
|
+
if(ret){
|
508
|
+
return false;
|
509
|
+
}
|
507
510
|
}
|
511
|
+
|
508
512
|
});
|
509
513
|
return ret;
|
510
514
|
};
|
511
|
-
|
515
|
+
|
512
516
|
$.extend($.expr[":"], {
|
513
517
|
"valid-element": function(elem){
|
514
518
|
return rElementsGroup.test(elem.nodeName || '') ? !hasInvalid(elem) :!!($.prop(elem, 'willValidate') && isValid(elem));
|
@@ -801,7 +805,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
801
805
|
src.server = tmp;
|
802
806
|
}
|
803
807
|
|
804
|
-
tmp = elem.attr('type');
|
808
|
+
tmp = elem.attr('type') || elem.attr('data-type');
|
805
809
|
if(tmp){
|
806
810
|
src.type = tmp;
|
807
811
|
src.container = $.trim(tmp.split(';')[0]);
|
@@ -825,6 +829,11 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
825
829
|
}
|
826
830
|
}
|
827
831
|
}
|
832
|
+
|
833
|
+
if(!src.container){
|
834
|
+
$(elem).attr('data-wsrecheckmimetype', '');
|
835
|
+
}
|
836
|
+
|
828
837
|
tmp = elem.attr('media');
|
829
838
|
if(tmp){
|
830
839
|
src.media = tmp;
|
@@ -1058,15 +1067,18 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
1058
1067
|
|
1059
1068
|
var handleThird = (function(){
|
1060
1069
|
var requested;
|
1070
|
+
var readyType = hasSwf ? swfType : 'mediaelement-yt';
|
1061
1071
|
return function( mediaElem, ret, data ){
|
1072
|
+
//readd to ready
|
1062
1073
|
|
1063
|
-
|
1064
|
-
|
1074
|
+
|
1075
|
+
webshims.ready(readyType, function(){
|
1076
|
+
if(mediaelement.createSWF && $(mediaElem).parent()[0]){
|
1065
1077
|
mediaelement.createSWF( mediaElem, ret, data );
|
1066
1078
|
} else if(!requested) {
|
1067
1079
|
requested = true;
|
1068
1080
|
loadThird();
|
1069
|
-
|
1081
|
+
|
1070
1082
|
handleThird( mediaElem, ret, data );
|
1071
1083
|
}
|
1072
1084
|
});
|
@@ -3,6 +3,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
3
3
|
"use strict";
|
4
4
|
var supportHrefNormalized = !('hrefNormalized' in $.support) || $.support.hrefNormalized;
|
5
5
|
var supportGetSetAttribute = !('getSetAttribute' in $.support) || $.support.getSetAttribute;
|
6
|
+
var has = Object.prototype.hasOwnProperty;
|
6
7
|
webshims.assumeARIA = supportGetSetAttribute || Modernizr.canvas || Modernizr.video || Modernizr.boxsizing;
|
7
8
|
|
8
9
|
if($('<input type="email" />').attr('type') == 'text' || $('<form />').attr('novalidate') === "" || ('required' in $('<input />')[0].attributes)){
|
@@ -75,6 +76,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
75
76
|
//proxying attribute
|
76
77
|
var olds = {};
|
77
78
|
var havePolyfill = {};
|
79
|
+
var hasPolyfillMethod = {};
|
78
80
|
var extendedProps = {};
|
79
81
|
var extendQ = {};
|
80
82
|
var modifyProps = {};
|
@@ -180,6 +182,39 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
180
182
|
};
|
181
183
|
});
|
182
184
|
|
185
|
+
//add support for $('video').trigger('play') in case extendNative is set to false
|
186
|
+
if(!webshims.cfg.extendNative && !webshims.cfg.noTriggerOverride){
|
187
|
+
(function(oldTrigger){
|
188
|
+
$.event.trigger = function(event, data, elem, onlyHandlers){
|
189
|
+
|
190
|
+
if(!hasPolyfillMethod[event] || onlyHandlers || !elem || elem.nodeType !== 1){
|
191
|
+
return oldTrigger.apply(this, arguments);
|
192
|
+
}
|
193
|
+
var ret, isOrig, origName;
|
194
|
+
var origFn = elem[event];
|
195
|
+
var polyfilledFn = $.prop(elem, event);
|
196
|
+
var changeFn = polyfilledFn && origFn != polyfilledFn;
|
197
|
+
if(changeFn){
|
198
|
+
origName = '__ws'+event;
|
199
|
+
isOrig = (event in elem) && has.call(elem, event);
|
200
|
+
elem[event] = polyfilledFn;
|
201
|
+
elem[origName] = origFn;
|
202
|
+
}
|
203
|
+
|
204
|
+
ret = oldTrigger.apply(this, arguments);
|
205
|
+
if (changeFn) {
|
206
|
+
if(isOrig){
|
207
|
+
elem[event] = origFn;
|
208
|
+
} else {
|
209
|
+
delete elem[event];
|
210
|
+
}
|
211
|
+
delete elem[origName];
|
212
|
+
}
|
213
|
+
|
214
|
+
return ret;
|
215
|
+
};
|
216
|
+
})($.event.trigger);
|
217
|
+
}
|
183
218
|
|
184
219
|
['removeAttr', 'prop', 'attr'].forEach(function(type){
|
185
220
|
olds[type] = $[type];
|
@@ -264,6 +299,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
264
299
|
}
|
265
300
|
var oldDesc = extendedProps[nodeName][prop][type];
|
266
301
|
var getSup = function(propType, descriptor, oDesc){
|
302
|
+
var origProp;
|
267
303
|
if(descriptor && descriptor[propType]){
|
268
304
|
return descriptor[propType];
|
269
305
|
}
|
@@ -280,8 +316,10 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
280
316
|
};
|
281
317
|
}
|
282
318
|
if(type == 'prop' && propType == 'value' && desc.value.apply){
|
319
|
+
origProp = '__ws'+prop;
|
320
|
+
hasPolyfillMethod[prop] = true;
|
283
321
|
return function(value){
|
284
|
-
var sup = olds[type](this, prop);
|
322
|
+
var sup = this[origProp] || olds[type](this, prop);
|
285
323
|
if(sup && sup.apply){
|
286
324
|
sup = sup.apply(this, arguments);
|
287
325
|
}
|
@@ -319,7 +357,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
319
357
|
|
320
358
|
var extendNativeValue = (function(){
|
321
359
|
var UNKNOWN = webshims.getPrototypeOf(document.createElement('foobar'));
|
322
|
-
|
360
|
+
|
323
361
|
//see also: https://github.com/lojjic/PIE/issues/40 | https://prototype.lighthouseapp.com/projects/8886/tickets/1107-ie8-fatal-crash-when-prototypejs-is-loaded-with-rounded-cornershtc
|
324
362
|
var isExtendNativeSave = Modernizr.advancedObjectProperties && Modernizr.objectAccessor;
|
325
363
|
return function(nodeName, prop, desc){
|
@@ -1924,6 +1962,9 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
1924
1962
|
if(!langCfg['datetime-local']){
|
1925
1963
|
langCfg['datetime-local'] = {};
|
1926
1964
|
}
|
1965
|
+
if(!langCfg.time){
|
1966
|
+
langCfg.time = {};
|
1967
|
+
}
|
1927
1968
|
if(!langCfg['datetime-local'].currentText && langCfg.time.currentText){
|
1928
1969
|
langCfg['datetime-local'].currentText = langCfg.time.currentText;
|
1929
1970
|
}
|
@@ -823,6 +823,9 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
823
823
|
if(!langCfg['datetime-local']){
|
824
824
|
langCfg['datetime-local'] = {};
|
825
825
|
}
|
826
|
+
if(!langCfg.time){
|
827
|
+
langCfg.time = {};
|
828
|
+
}
|
826
829
|
if(!langCfg['datetime-local'].currentText && langCfg.time.currentText){
|
827
830
|
langCfg['datetime-local'].currentText = langCfg.time.currentText;
|
828
831
|
}
|
@@ -588,7 +588,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
588
588
|
src.server = tmp;
|
589
589
|
}
|
590
590
|
|
591
|
-
tmp = elem.attr('type');
|
591
|
+
tmp = elem.attr('type') || elem.attr('data-type');
|
592
592
|
if(tmp){
|
593
593
|
src.type = tmp;
|
594
594
|
src.container = $.trim(tmp.split(';')[0]);
|
@@ -612,6 +612,11 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
612
612
|
}
|
613
613
|
}
|
614
614
|
}
|
615
|
+
|
616
|
+
if(!src.container){
|
617
|
+
$(elem).attr('data-wsrecheckmimetype', '');
|
618
|
+
}
|
619
|
+
|
615
620
|
tmp = elem.attr('media');
|
616
621
|
if(tmp){
|
617
622
|
src.media = tmp;
|
@@ -845,15 +850,18 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
845
850
|
|
846
851
|
var handleThird = (function(){
|
847
852
|
var requested;
|
853
|
+
var readyType = hasSwf ? swfType : 'mediaelement-yt';
|
848
854
|
return function( mediaElem, ret, data ){
|
855
|
+
//readd to ready
|
849
856
|
|
850
|
-
|
851
|
-
|
857
|
+
|
858
|
+
webshims.ready(readyType, function(){
|
859
|
+
if(mediaelement.createSWF && $(mediaElem).parent()[0]){
|
852
860
|
mediaelement.createSWF( mediaElem, ret, data );
|
853
861
|
} else if(!requested) {
|
854
862
|
requested = true;
|
855
863
|
loadThird();
|
856
|
-
|
864
|
+
|
857
865
|
handleThird( mediaElem, ret, data );
|
858
866
|
}
|
859
867
|
});
|
@@ -136,7 +136,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
136
136
|
src.server = tmp;
|
137
137
|
}
|
138
138
|
|
139
|
-
tmp = elem.attr('type');
|
139
|
+
tmp = elem.attr('type') || elem.attr('data-type');
|
140
140
|
if(tmp){
|
141
141
|
src.type = tmp;
|
142
142
|
src.container = $.trim(tmp.split(';')[0]);
|
@@ -160,6 +160,11 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
160
160
|
}
|
161
161
|
}
|
162
162
|
}
|
163
|
+
|
164
|
+
if(!src.container){
|
165
|
+
$(elem).attr('data-wsrecheckmimetype', '');
|
166
|
+
}
|
167
|
+
|
163
168
|
tmp = elem.attr('media');
|
164
169
|
if(tmp){
|
165
170
|
src.media = tmp;
|
@@ -393,15 +398,18 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
393
398
|
|
394
399
|
var handleThird = (function(){
|
395
400
|
var requested;
|
401
|
+
var readyType = hasSwf ? swfType : 'mediaelement-yt';
|
396
402
|
return function( mediaElem, ret, data ){
|
403
|
+
//readd to ready
|
397
404
|
|
398
|
-
|
399
|
-
|
405
|
+
|
406
|
+
webshims.ready(readyType, function(){
|
407
|
+
if(mediaelement.createSWF && $(mediaElem).parent()[0]){
|
400
408
|
mediaelement.createSWF( mediaElem, ret, data );
|
401
409
|
} else if(!requested) {
|
402
410
|
requested = true;
|
403
411
|
loadThird();
|
404
|
-
|
412
|
+
|
405
413
|
handleThird( mediaElem, ret, data );
|
406
414
|
}
|
407
415
|
});
|
@@ -806,6 +806,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
806
806
|
"use strict";
|
807
807
|
var supportHrefNormalized = !('hrefNormalized' in $.support) || $.support.hrefNormalized;
|
808
808
|
var supportGetSetAttribute = !('getSetAttribute' in $.support) || $.support.getSetAttribute;
|
809
|
+
var has = Object.prototype.hasOwnProperty;
|
809
810
|
webshims.assumeARIA = supportGetSetAttribute || Modernizr.canvas || Modernizr.video || Modernizr.boxsizing;
|
810
811
|
|
811
812
|
if($('<input type="email" />').attr('type') == 'text' || $('<form />').attr('novalidate') === "" || ('required' in $('<input />')[0].attributes)){
|
@@ -878,6 +879,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
878
879
|
//proxying attribute
|
879
880
|
var olds = {};
|
880
881
|
var havePolyfill = {};
|
882
|
+
var hasPolyfillMethod = {};
|
881
883
|
var extendedProps = {};
|
882
884
|
var extendQ = {};
|
883
885
|
var modifyProps = {};
|
@@ -983,6 +985,39 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
983
985
|
};
|
984
986
|
});
|
985
987
|
|
988
|
+
//add support for $('video').trigger('play') in case extendNative is set to false
|
989
|
+
if(!webshims.cfg.extendNative && !webshims.cfg.noTriggerOverride){
|
990
|
+
(function(oldTrigger){
|
991
|
+
$.event.trigger = function(event, data, elem, onlyHandlers){
|
992
|
+
|
993
|
+
if(!hasPolyfillMethod[event] || onlyHandlers || !elem || elem.nodeType !== 1){
|
994
|
+
return oldTrigger.apply(this, arguments);
|
995
|
+
}
|
996
|
+
var ret, isOrig, origName;
|
997
|
+
var origFn = elem[event];
|
998
|
+
var polyfilledFn = $.prop(elem, event);
|
999
|
+
var changeFn = polyfilledFn && origFn != polyfilledFn;
|
1000
|
+
if(changeFn){
|
1001
|
+
origName = '__ws'+event;
|
1002
|
+
isOrig = (event in elem) && has.call(elem, event);
|
1003
|
+
elem[event] = polyfilledFn;
|
1004
|
+
elem[origName] = origFn;
|
1005
|
+
}
|
1006
|
+
|
1007
|
+
ret = oldTrigger.apply(this, arguments);
|
1008
|
+
if (changeFn) {
|
1009
|
+
if(isOrig){
|
1010
|
+
elem[event] = origFn;
|
1011
|
+
} else {
|
1012
|
+
delete elem[event];
|
1013
|
+
}
|
1014
|
+
delete elem[origName];
|
1015
|
+
}
|
1016
|
+
|
1017
|
+
return ret;
|
1018
|
+
};
|
1019
|
+
})($.event.trigger);
|
1020
|
+
}
|
986
1021
|
|
987
1022
|
['removeAttr', 'prop', 'attr'].forEach(function(type){
|
988
1023
|
olds[type] = $[type];
|
@@ -1067,6 +1102,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1067
1102
|
}
|
1068
1103
|
var oldDesc = extendedProps[nodeName][prop][type];
|
1069
1104
|
var getSup = function(propType, descriptor, oDesc){
|
1105
|
+
var origProp;
|
1070
1106
|
if(descriptor && descriptor[propType]){
|
1071
1107
|
return descriptor[propType];
|
1072
1108
|
}
|
@@ -1083,8 +1119,10 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1083
1119
|
};
|
1084
1120
|
}
|
1085
1121
|
if(type == 'prop' && propType == 'value' && desc.value.apply){
|
1122
|
+
origProp = '__ws'+prop;
|
1123
|
+
hasPolyfillMethod[prop] = true;
|
1086
1124
|
return function(value){
|
1087
|
-
var sup = olds[type](this, prop);
|
1125
|
+
var sup = this[origProp] || olds[type](this, prop);
|
1088
1126
|
if(sup && sup.apply){
|
1089
1127
|
sup = sup.apply(this, arguments);
|
1090
1128
|
}
|
@@ -1122,7 +1160,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1122
1160
|
|
1123
1161
|
var extendNativeValue = (function(){
|
1124
1162
|
var UNKNOWN = webshims.getPrototypeOf(document.createElement('foobar'));
|
1125
|
-
|
1163
|
+
|
1126
1164
|
//see also: https://github.com/lojjic/PIE/issues/40 | https://prototype.lighthouseapp.com/projects/8886/tickets/1107-ie8-fatal-crash-when-prototypejs-is-loaded-with-rounded-cornershtc
|
1127
1165
|
var isExtendNativeSave = Modernizr.advancedObjectProperties && Modernizr.objectAccessor;
|
1128
1166
|
return function(nodeName, prop, desc){
|
@@ -3,6 +3,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
3
3
|
"use strict";
|
4
4
|
var supportHrefNormalized = !('hrefNormalized' in $.support) || $.support.hrefNormalized;
|
5
5
|
var supportGetSetAttribute = !('getSetAttribute' in $.support) || $.support.getSetAttribute;
|
6
|
+
var has = Object.prototype.hasOwnProperty;
|
6
7
|
webshims.assumeARIA = supportGetSetAttribute || Modernizr.canvas || Modernizr.video || Modernizr.boxsizing;
|
7
8
|
|
8
9
|
if($('<input type="email" />').attr('type') == 'text' || $('<form />').attr('novalidate') === "" || ('required' in $('<input />')[0].attributes)){
|
@@ -75,6 +76,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
75
76
|
//proxying attribute
|
76
77
|
var olds = {};
|
77
78
|
var havePolyfill = {};
|
79
|
+
var hasPolyfillMethod = {};
|
78
80
|
var extendedProps = {};
|
79
81
|
var extendQ = {};
|
80
82
|
var modifyProps = {};
|
@@ -180,6 +182,39 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
180
182
|
};
|
181
183
|
});
|
182
184
|
|
185
|
+
//add support for $('video').trigger('play') in case extendNative is set to false
|
186
|
+
if(!webshims.cfg.extendNative && !webshims.cfg.noTriggerOverride){
|
187
|
+
(function(oldTrigger){
|
188
|
+
$.event.trigger = function(event, data, elem, onlyHandlers){
|
189
|
+
|
190
|
+
if(!hasPolyfillMethod[event] || onlyHandlers || !elem || elem.nodeType !== 1){
|
191
|
+
return oldTrigger.apply(this, arguments);
|
192
|
+
}
|
193
|
+
var ret, isOrig, origName;
|
194
|
+
var origFn = elem[event];
|
195
|
+
var polyfilledFn = $.prop(elem, event);
|
196
|
+
var changeFn = polyfilledFn && origFn != polyfilledFn;
|
197
|
+
if(changeFn){
|
198
|
+
origName = '__ws'+event;
|
199
|
+
isOrig = (event in elem) && has.call(elem, event);
|
200
|
+
elem[event] = polyfilledFn;
|
201
|
+
elem[origName] = origFn;
|
202
|
+
}
|
203
|
+
|
204
|
+
ret = oldTrigger.apply(this, arguments);
|
205
|
+
if (changeFn) {
|
206
|
+
if(isOrig){
|
207
|
+
elem[event] = origFn;
|
208
|
+
} else {
|
209
|
+
delete elem[event];
|
210
|
+
}
|
211
|
+
delete elem[origName];
|
212
|
+
}
|
213
|
+
|
214
|
+
return ret;
|
215
|
+
};
|
216
|
+
})($.event.trigger);
|
217
|
+
}
|
183
218
|
|
184
219
|
['removeAttr', 'prop', 'attr'].forEach(function(type){
|
185
220
|
olds[type] = $[type];
|
@@ -264,6 +299,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
264
299
|
}
|
265
300
|
var oldDesc = extendedProps[nodeName][prop][type];
|
266
301
|
var getSup = function(propType, descriptor, oDesc){
|
302
|
+
var origProp;
|
267
303
|
if(descriptor && descriptor[propType]){
|
268
304
|
return descriptor[propType];
|
269
305
|
}
|
@@ -280,8 +316,10 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
280
316
|
};
|
281
317
|
}
|
282
318
|
if(type == 'prop' && propType == 'value' && desc.value.apply){
|
319
|
+
origProp = '__ws'+prop;
|
320
|
+
hasPolyfillMethod[prop] = true;
|
283
321
|
return function(value){
|
284
|
-
var sup = olds[type](this, prop);
|
322
|
+
var sup = this[origProp] || olds[type](this, prop);
|
285
323
|
if(sup && sup.apply){
|
286
324
|
sup = sup.apply(this, arguments);
|
287
325
|
}
|
@@ -319,7 +357,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
319
357
|
|
320
358
|
var extendNativeValue = (function(){
|
321
359
|
var UNKNOWN = webshims.getPrototypeOf(document.createElement('foobar'));
|
322
|
-
|
360
|
+
|
323
361
|
//see also: https://github.com/lojjic/PIE/issues/40 | https://prototype.lighthouseapp.com/projects/8886/tickets/1107-ie8-fatal-crash-when-prototypejs-is-loaded-with-rounded-cornershtc
|
324
362
|
var isExtendNativeSave = Modernizr.advancedObjectProperties && Modernizr.objectAccessor;
|
325
363
|
return function(nodeName, prop, desc){
|
@@ -1147,17 +1185,21 @@ webshims.register('form-core', function($, webshims, window, document, undefined
|
|
1147
1185
|
/*
|
1148
1186
|
* Selectors for all browsers
|
1149
1187
|
*/
|
1188
|
+
var rElementsGroup = /^(?:form|fieldset)$/i;
|
1150
1189
|
var hasInvalid = function(elem){
|
1151
1190
|
var ret = false;
|
1152
1191
|
$(elem).jProp('elements').each(function(){
|
1153
|
-
|
1154
|
-
|
1155
|
-
|
1192
|
+
if(!rElementsGroup.test(elem.nodeName || '')){
|
1193
|
+
ret = $(this).is(':invalid');
|
1194
|
+
if(ret){
|
1195
|
+
return false;
|
1196
|
+
}
|
1156
1197
|
}
|
1198
|
+
|
1157
1199
|
});
|
1158
1200
|
return ret;
|
1159
1201
|
};
|
1160
|
-
|
1202
|
+
|
1161
1203
|
$.extend($.expr[":"], {
|
1162
1204
|
"valid-element": function(elem){
|
1163
1205
|
return rElementsGroup.test(elem.nodeName || '') ? !hasInvalid(elem) :!!($.prop(elem, 'willValidate') && isValid(elem));
|
@@ -455,6 +455,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
455
455
|
"use strict";
|
456
456
|
var supportHrefNormalized = !('hrefNormalized' in $.support) || $.support.hrefNormalized;
|
457
457
|
var supportGetSetAttribute = !('getSetAttribute' in $.support) || $.support.getSetAttribute;
|
458
|
+
var has = Object.prototype.hasOwnProperty;
|
458
459
|
webshims.assumeARIA = supportGetSetAttribute || Modernizr.canvas || Modernizr.video || Modernizr.boxsizing;
|
459
460
|
|
460
461
|
if($('<input type="email" />').attr('type') == 'text' || $('<form />').attr('novalidate') === "" || ('required' in $('<input />')[0].attributes)){
|
@@ -527,6 +528,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
527
528
|
//proxying attribute
|
528
529
|
var olds = {};
|
529
530
|
var havePolyfill = {};
|
531
|
+
var hasPolyfillMethod = {};
|
530
532
|
var extendedProps = {};
|
531
533
|
var extendQ = {};
|
532
534
|
var modifyProps = {};
|
@@ -632,6 +634,39 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
632
634
|
};
|
633
635
|
});
|
634
636
|
|
637
|
+
//add support for $('video').trigger('play') in case extendNative is set to false
|
638
|
+
if(!webshims.cfg.extendNative && !webshims.cfg.noTriggerOverride){
|
639
|
+
(function(oldTrigger){
|
640
|
+
$.event.trigger = function(event, data, elem, onlyHandlers){
|
641
|
+
|
642
|
+
if(!hasPolyfillMethod[event] || onlyHandlers || !elem || elem.nodeType !== 1){
|
643
|
+
return oldTrigger.apply(this, arguments);
|
644
|
+
}
|
645
|
+
var ret, isOrig, origName;
|
646
|
+
var origFn = elem[event];
|
647
|
+
var polyfilledFn = $.prop(elem, event);
|
648
|
+
var changeFn = polyfilledFn && origFn != polyfilledFn;
|
649
|
+
if(changeFn){
|
650
|
+
origName = '__ws'+event;
|
651
|
+
isOrig = (event in elem) && has.call(elem, event);
|
652
|
+
elem[event] = polyfilledFn;
|
653
|
+
elem[origName] = origFn;
|
654
|
+
}
|
655
|
+
|
656
|
+
ret = oldTrigger.apply(this, arguments);
|
657
|
+
if (changeFn) {
|
658
|
+
if(isOrig){
|
659
|
+
elem[event] = origFn;
|
660
|
+
} else {
|
661
|
+
delete elem[event];
|
662
|
+
}
|
663
|
+
delete elem[origName];
|
664
|
+
}
|
665
|
+
|
666
|
+
return ret;
|
667
|
+
};
|
668
|
+
})($.event.trigger);
|
669
|
+
}
|
635
670
|
|
636
671
|
['removeAttr', 'prop', 'attr'].forEach(function(type){
|
637
672
|
olds[type] = $[type];
|
@@ -716,6 +751,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
716
751
|
}
|
717
752
|
var oldDesc = extendedProps[nodeName][prop][type];
|
718
753
|
var getSup = function(propType, descriptor, oDesc){
|
754
|
+
var origProp;
|
719
755
|
if(descriptor && descriptor[propType]){
|
720
756
|
return descriptor[propType];
|
721
757
|
}
|
@@ -732,8 +768,10 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
732
768
|
};
|
733
769
|
}
|
734
770
|
if(type == 'prop' && propType == 'value' && desc.value.apply){
|
771
|
+
origProp = '__ws'+prop;
|
772
|
+
hasPolyfillMethod[prop] = true;
|
735
773
|
return function(value){
|
736
|
-
var sup = olds[type](this, prop);
|
774
|
+
var sup = this[origProp] || olds[type](this, prop);
|
737
775
|
if(sup && sup.apply){
|
738
776
|
sup = sup.apply(this, arguments);
|
739
777
|
}
|
@@ -771,7 +809,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
771
809
|
|
772
810
|
var extendNativeValue = (function(){
|
773
811
|
var UNKNOWN = webshims.getPrototypeOf(document.createElement('foobar'));
|
774
|
-
|
812
|
+
|
775
813
|
//see also: https://github.com/lojjic/PIE/issues/40 | https://prototype.lighthouseapp.com/projects/8886/tickets/1107-ie8-fatal-crash-when-prototypejs-is-loaded-with-rounded-cornershtc
|
776
814
|
var isExtendNativeSave = Modernizr.advancedObjectProperties && Modernizr.objectAccessor;
|
777
815
|
return function(nodeName, prop, desc){
|
@@ -1599,17 +1637,21 @@ webshims.register('form-core', function($, webshims, window, document, undefined
|
|
1599
1637
|
/*
|
1600
1638
|
* Selectors for all browsers
|
1601
1639
|
*/
|
1640
|
+
var rElementsGroup = /^(?:form|fieldset)$/i;
|
1602
1641
|
var hasInvalid = function(elem){
|
1603
1642
|
var ret = false;
|
1604
1643
|
$(elem).jProp('elements').each(function(){
|
1605
|
-
|
1606
|
-
|
1607
|
-
|
1644
|
+
if(!rElementsGroup.test(elem.nodeName || '')){
|
1645
|
+
ret = $(this).is(':invalid');
|
1646
|
+
if(ret){
|
1647
|
+
return false;
|
1648
|
+
}
|
1608
1649
|
}
|
1650
|
+
|
1609
1651
|
});
|
1610
1652
|
return ret;
|
1611
1653
|
};
|
1612
|
-
|
1654
|
+
|
1613
1655
|
$.extend($.expr[":"], {
|
1614
1656
|
"valid-element": function(elem){
|
1615
1657
|
return rElementsGroup.test(elem.nodeName || '') ? !hasInvalid(elem) :!!($.prop(elem, 'willValidate') && isValid(elem));
|
@@ -3170,7 +3212,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
3170
3212
|
src.server = tmp;
|
3171
3213
|
}
|
3172
3214
|
|
3173
|
-
tmp = elem.attr('type');
|
3215
|
+
tmp = elem.attr('type') || elem.attr('data-type');
|
3174
3216
|
if(tmp){
|
3175
3217
|
src.type = tmp;
|
3176
3218
|
src.container = $.trim(tmp.split(';')[0]);
|
@@ -3194,6 +3236,11 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
3194
3236
|
}
|
3195
3237
|
}
|
3196
3238
|
}
|
3239
|
+
|
3240
|
+
if(!src.container){
|
3241
|
+
$(elem).attr('data-wsrecheckmimetype', '');
|
3242
|
+
}
|
3243
|
+
|
3197
3244
|
tmp = elem.attr('media');
|
3198
3245
|
if(tmp){
|
3199
3246
|
src.media = tmp;
|
@@ -3427,15 +3474,18 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
3427
3474
|
|
3428
3475
|
var handleThird = (function(){
|
3429
3476
|
var requested;
|
3477
|
+
var readyType = hasSwf ? swfType : 'mediaelement-yt';
|
3430
3478
|
return function( mediaElem, ret, data ){
|
3479
|
+
//readd to ready
|
3431
3480
|
|
3432
|
-
|
3433
|
-
|
3481
|
+
|
3482
|
+
webshims.ready(readyType, function(){
|
3483
|
+
if(mediaelement.createSWF && $(mediaElem).parent()[0]){
|
3434
3484
|
mediaelement.createSWF( mediaElem, ret, data );
|
3435
3485
|
} else if(!requested) {
|
3436
3486
|
requested = true;
|
3437
3487
|
loadThird();
|
3438
|
-
|
3488
|
+
|
3439
3489
|
handleThird( mediaElem, ret, data );
|
3440
3490
|
}
|
3441
3491
|
});
|