webshims-rails 1.11.2 → 1.11.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
});
|