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
@@ -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));
|
@@ -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));
|
@@ -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){
|
@@ -1624,6 +1624,9 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
1624
1624
|
if(!langCfg['datetime-local']){
|
1625
1625
|
langCfg['datetime-local'] = {};
|
1626
1626
|
}
|
1627
|
+
if(!langCfg.time){
|
1628
|
+
langCfg.time = {};
|
1629
|
+
}
|
1627
1630
|
if(!langCfg['datetime-local'].currentText && langCfg.time.currentText){
|
1628
1631
|
langCfg['datetime-local'].currentText = langCfg.time.currentText;
|
1629
1632
|
}
|
@@ -1624,6 +1624,9 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
1624
1624
|
if(!langCfg['datetime-local']){
|
1625
1625
|
langCfg['datetime-local'] = {};
|
1626
1626
|
}
|
1627
|
+
if(!langCfg.time){
|
1628
|
+
langCfg.time = {};
|
1629
|
+
}
|
1627
1630
|
if(!langCfg['datetime-local'].currentText && langCfg.time.currentText){
|
1628
1631
|
langCfg['datetime-local'].currentText = langCfg.time.currentText;
|
1629
1632
|
}
|
@@ -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));
|
@@ -2425,7 +2467,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
2425
2467
|
src.server = tmp;
|
2426
2468
|
}
|
2427
2469
|
|
2428
|
-
tmp = elem.attr('type');
|
2470
|
+
tmp = elem.attr('type') || elem.attr('data-type');
|
2429
2471
|
if(tmp){
|
2430
2472
|
src.type = tmp;
|
2431
2473
|
src.container = $.trim(tmp.split(';')[0]);
|
@@ -2449,6 +2491,11 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
2449
2491
|
}
|
2450
2492
|
}
|
2451
2493
|
}
|
2494
|
+
|
2495
|
+
if(!src.container){
|
2496
|
+
$(elem).attr('data-wsrecheckmimetype', '');
|
2497
|
+
}
|
2498
|
+
|
2452
2499
|
tmp = elem.attr('media');
|
2453
2500
|
if(tmp){
|
2454
2501
|
src.media = tmp;
|
@@ -2682,15 +2729,18 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
2682
2729
|
|
2683
2730
|
var handleThird = (function(){
|
2684
2731
|
var requested;
|
2732
|
+
var readyType = hasSwf ? swfType : 'mediaelement-yt';
|
2685
2733
|
return function( mediaElem, ret, data ){
|
2734
|
+
//readd to ready
|
2686
2735
|
|
2687
|
-
|
2688
|
-
|
2736
|
+
|
2737
|
+
webshims.ready(readyType, function(){
|
2738
|
+
if(mediaelement.createSWF && $(mediaElem).parent()[0]){
|
2689
2739
|
mediaelement.createSWF( mediaElem, ret, data );
|
2690
2740
|
} else if(!requested) {
|
2691
2741
|
requested = true;
|
2692
2742
|
loadThird();
|
2693
|
-
|
2743
|
+
|
2694
2744
|
handleThird( mediaElem, ret, data );
|
2695
2745
|
}
|
2696
2746
|
});
|
@@ -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));
|
@@ -2135,7 +2177,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
2135
2177
|
src.server = tmp;
|
2136
2178
|
}
|
2137
2179
|
|
2138
|
-
tmp = elem.attr('type');
|
2180
|
+
tmp = elem.attr('type') || elem.attr('data-type');
|
2139
2181
|
if(tmp){
|
2140
2182
|
src.type = tmp;
|
2141
2183
|
src.container = $.trim(tmp.split(';')[0]);
|
@@ -2159,6 +2201,11 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
2159
2201
|
}
|
2160
2202
|
}
|
2161
2203
|
}
|
2204
|
+
|
2205
|
+
if(!src.container){
|
2206
|
+
$(elem).attr('data-wsrecheckmimetype', '');
|
2207
|
+
}
|
2208
|
+
|
2162
2209
|
tmp = elem.attr('media');
|
2163
2210
|
if(tmp){
|
2164
2211
|
src.media = tmp;
|
@@ -2392,15 +2439,18 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
2392
2439
|
|
2393
2440
|
var handleThird = (function(){
|
2394
2441
|
var requested;
|
2442
|
+
var readyType = hasSwf ? swfType : 'mediaelement-yt';
|
2395
2443
|
return function( mediaElem, ret, data ){
|
2444
|
+
//readd to ready
|
2396
2445
|
|
2397
|
-
|
2398
|
-
|
2446
|
+
|
2447
|
+
webshims.ready(readyType, function(){
|
2448
|
+
if(mediaelement.createSWF && $(mediaElem).parent()[0]){
|
2399
2449
|
mediaelement.createSWF( mediaElem, ret, data );
|
2400
2450
|
} else if(!requested) {
|
2401
2451
|
requested = true;
|
2402
2452
|
loadThird();
|
2403
|
-
|
2453
|
+
|
2404
2454
|
handleThird( mediaElem, ret, data );
|
2405
2455
|
}
|
2406
2456
|
});
|