webshims-rails 1.14.3 → 1.14.4

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.
Files changed (87) hide show
  1. checksums.yaml +4 -4
  2. data/lib/webshims-rails/version.rb +2 -2
  3. data/vendor/assets/javascripts/webshims/extras/modernizr-custom.js +4 -0
  4. data/vendor/assets/javascripts/webshims/polyfiller.js +141 -139
  5. data/vendor/assets/javascripts/webshims/shims/color-picker.js +1 -3
  6. data/vendor/assets/javascripts/webshims/shims/combos/1.js +22 -33
  7. data/vendor/assets/javascripts/webshims/shims/combos/10.js +76 -73
  8. data/vendor/assets/javascripts/webshims/shims/combos/11.js +73 -61
  9. data/vendor/assets/javascripts/webshims/shims/combos/12.js +37 -41
  10. data/vendor/assets/javascripts/webshims/shims/combos/13.js +36 -40
  11. data/vendor/assets/javascripts/webshims/shims/combos/14.js +7 -7
  12. data/vendor/assets/javascripts/webshims/shims/combos/15.js +23 -32
  13. data/vendor/assets/javascripts/webshims/shims/combos/16.js +36 -57
  14. data/vendor/assets/javascripts/webshims/shims/combos/17.js +73 -61
  15. data/vendor/assets/javascripts/webshims/shims/combos/18.js +611 -4604
  16. data/vendor/assets/javascripts/webshims/shims/combos/2.js +27 -47
  17. data/vendor/assets/javascripts/webshims/shims/combos/21.js +61 -31
  18. data/vendor/assets/javascripts/webshims/shims/combos/22.js +24 -16
  19. data/vendor/assets/javascripts/webshims/shims/combos/23.js +13 -25
  20. data/vendor/assets/javascripts/webshims/shims/combos/25.js +40 -27
  21. data/vendor/assets/javascripts/webshims/shims/combos/27.js +167 -166
  22. data/vendor/assets/javascripts/webshims/shims/combos/28.js +11 -12
  23. data/vendor/assets/javascripts/webshims/shims/combos/29.js +5 -5
  24. data/vendor/assets/javascripts/webshims/shims/combos/3.js +14 -22
  25. data/vendor/assets/javascripts/webshims/shims/combos/30.js +16 -24
  26. data/vendor/assets/javascripts/webshims/shims/combos/31.js +14 -22
  27. data/vendor/assets/javascripts/webshims/shims/combos/33.js +2 -2
  28. data/vendor/assets/javascripts/webshims/shims/combos/34.js +27 -28
  29. data/vendor/assets/javascripts/webshims/shims/combos/4.js +5 -14
  30. data/vendor/assets/javascripts/webshims/shims/combos/5.js +78 -66
  31. data/vendor/assets/javascripts/webshims/shims/combos/6.js +80 -68
  32. data/vendor/assets/javascripts/webshims/shims/combos/7.js +29 -49
  33. data/vendor/assets/javascripts/webshims/shims/combos/8.js +27 -47
  34. data/vendor/assets/javascripts/webshims/shims/combos/9.js +78 -75
  35. data/vendor/assets/javascripts/webshims/shims/combos/97.js +42 -29
  36. data/vendor/assets/javascripts/webshims/shims/combos/98.js +116 -40
  37. data/vendor/assets/javascripts/webshims/shims/combos/99.js +112 -38
  38. data/vendor/assets/javascripts/webshims/shims/dom-extend.js +3 -12
  39. data/vendor/assets/javascripts/webshims/shims/es5.js +4 -4
  40. data/vendor/assets/javascripts/webshims/shims/es6.js +1887 -0
  41. data/vendor/assets/javascripts/webshims/shims/form-core.js +9 -8
  42. data/vendor/assets/javascripts/webshims/shims/form-datalist.js +2 -2
  43. data/vendor/assets/javascripts/webshims/shims/form-inputmode.js +52 -0
  44. data/vendor/assets/javascripts/webshims/shims/form-message.js +2 -2
  45. data/vendor/assets/javascripts/webshims/shims/form-native-extend.js +4 -5
  46. data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +73 -61
  47. data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +7 -8
  48. data/vendor/assets/javascripts/webshims/shims/form-shim-extend2.js +164 -163
  49. data/vendor/assets/javascripts/webshims/shims/form-validation.js +121 -144
  50. data/vendor/assets/javascripts/webshims/shims/jme/_icons.scss +3 -0
  51. data/vendor/assets/javascripts/webshims/shims/jme/alternate-media.js +184 -0
  52. data/vendor/assets/javascripts/webshims/shims/jme/{b.js → base.js} +38 -27
  53. data/vendor/assets/javascripts/webshims/shims/jme/controls.css +129 -39
  54. data/vendor/assets/javascripts/webshims/shims/jme/controls.scss +145 -44
  55. data/vendor/assets/javascripts/webshims/shims/jme/jme.eot +0 -0
  56. data/vendor/assets/javascripts/webshims/shims/jme/jme.svg +0 -0
  57. data/vendor/assets/javascripts/webshims/shims/jme/jme.ttf +0 -0
  58. data/vendor/assets/javascripts/webshims/shims/jme/jme.woff +0 -0
  59. data/vendor/assets/javascripts/webshims/shims/jme/mediacontrols-lazy.js +448 -90
  60. data/vendor/assets/javascripts/webshims/shims/jme/{c.js → mediacontrols.js} +74 -11
  61. data/vendor/assets/javascripts/webshims/shims/jme/{p.js → playlist.js} +4 -2
  62. data/vendor/assets/javascripts/webshims/shims/matchMedia.js +122 -0
  63. data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +12 -24
  64. data/vendor/assets/javascripts/webshims/shims/mediaelement-debug.js +1 -1
  65. data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +37 -15
  66. data/vendor/assets/javascripts/webshims/shims/mediaelement-native-fix.js +3 -3
  67. data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +4 -5
  68. data/vendor/assets/javascripts/webshims/shims/picture.js +13 -54
  69. data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +13 -20
  70. data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-ext.scss +24 -18
  71. data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +32 -10
  72. data/vendor/assets/javascripts/webshims/shims/styles/shim-ext.css +43 -47
  73. data/vendor/assets/javascripts/webshims/shims/styles/shim.css +30 -18
  74. data/vendor/assets/javascripts/webshims/shims/styles/transparent.png +0 -0
  75. data/vendor/assets/javascripts/webshims/shims/styles/widget.eot +0 -0
  76. data/vendor/assets/javascripts/webshims/shims/styles/widget.svg +0 -0
  77. data/vendor/assets/javascripts/webshims/shims/styles/widget.ttf +0 -0
  78. data/vendor/assets/javascripts/webshims/shims/styles/widget.woff +0 -0
  79. data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
  80. data/vendor/assets/javascripts/webshims/shims/swfmini.js +1 -1
  81. data/vendor/assets/javascripts/webshims/shims/track-ui.js +4 -5
  82. data/vendor/assets/javascripts/webshims/shims/track.js +24 -16
  83. metadata +9 -8
  84. data/vendor/assets/javascripts/webshims/shims/combos/19.js +0 -4745
  85. data/vendor/assets/javascripts/webshims/shims/combos/20.js +0 -4522
  86. data/vendor/assets/javascripts/webshims/shims/combos/32.js +0 -2443
  87. data/vendor/assets/javascripts/webshims/shims/combos/comboinfo.json +0 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 839413957e056c7589fb3c02040a8aa4952b15ee
4
- data.tar.gz: 46d183e2a7b005ac562576a79260eab922e239bd
3
+ metadata.gz: 70dcbd524eee50b457561f3a2a2aede14fe1d80e
4
+ data.tar.gz: 6cc097ca6de460a7b3ac400e77ef52288a6050e0
5
5
  SHA512:
6
- metadata.gz: 119df6de643a7c8eda8543314f426fc84cb496d5e19be628079200f5aa06ea04c825802e1a4d3f8e7079e5e08ce41b41e76564eb5f0ecdaa8d5f3a92cee292a3
7
- data.tar.gz: 5ca4936dfbc2cbb80f4f0dcf4546a0044421e8241e3c95e35512ed189011361c8914c377afcb9e8c6d5ade4ad01488a1b7c46cb3530f8bafb9c824da50258bdd
6
+ metadata.gz: d25d1510ee2b1c31aaa293434c8cc65bea8b5f133ec29e2cccce47979c50d3e8447470f66d921414cbba3975884ddae4b3bca4d388db75b22f5bb3458a488495
7
+ data.tar.gz: 6f8de25dcde6680323df9d2966a65a2cc314b7e2cdc16e9278cff6c06dc6e394369dcd5121109f55d85be9daecd122bc8db0a60a37211c4762fa5d1450539e5a
@@ -1,6 +1,6 @@
1
1
  module Webshims
2
2
  module Rails
3
- VERSION = "1.14.3"
4
- WEBSHIMS_VERSION = "1.14.3"
3
+ VERSION = "1.14.4"
4
+ WEBSHIMS_VERSION = "1.14.4"
5
5
  end
6
6
  end
@@ -505,3 +505,7 @@ window.Modernizr = (function( window, document, undefined ) {
505
505
 
506
506
  })(this, this.document);
507
507
  ;
508
+ if(window.console){
509
+ console.log('webshim no longer depends on Modernizr. You can still use for feature detection of course.');
510
+ }
511
+
@@ -11,13 +11,13 @@
11
11
  }
12
12
  };
13
13
  var start = function(){
14
- if(window.jQuery && window.Modernizr){
14
+ if(window.jQuery){
15
15
  factory(jQuery);
16
16
  factory = function(){return window.webshims;};
17
17
  }
18
18
  };
19
19
 
20
-
20
+
21
21
  window.webshims = {
22
22
  setOptions: function(){
23
23
  addAsync();
@@ -89,13 +89,14 @@
89
89
  }(function($){
90
90
  "use strict";
91
91
  var firstRun, path;
92
+ var navigator = window.navigator;
92
93
  var webshims = window.webshims;
93
94
  var DOMSUPPORT = 'dom-support';
94
95
  var special = $.event.special;
95
96
  var emptyJ = $([]);
96
- var Modernizr = window.Modernizr;
97
+
97
98
  var asyncWebshims = window.asyncWebshims;
98
- var addTest = Modernizr.addTest;
99
+ var support = {};
99
100
  var Object = window.Object;
100
101
  var addSource = function(text){
101
102
  return text +"\n//# sourceURL="+this.url;
@@ -105,18 +106,23 @@
105
106
  };
106
107
 
107
108
  clearInterval(webshims.timer);
108
- Modernizr.advancedObjectProperties = Modernizr.objectAccessor = Modernizr.ES5 = !!('create' in Object && 'seal' in Object);
109
+ support.advancedObjectProperties = support.objectAccessor = support.ES5 = !!('create' in Object && 'seal' in Object);
109
110
 
110
- if(Modernizr.ES5 && !('toJSON' in Date.prototype)){
111
- Modernizr.ES5 = false;
111
+ if(support.ES5 && !('toJSON' in Date.prototype)){
112
+ support.ES5 = false;
112
113
  }
113
114
 
114
115
 
115
116
  path = ($.support.hrefNormalized === false) ? webshims._curScript.getAttribute("src", 4) : webshims._curScript.src;
116
117
  path = path.split('?')[0].slice(0, path.lastIndexOf("/") + 1) + 'shims/';
117
118
 
119
+ function create(name){
120
+ return document.createElement(name);
121
+ }
122
+
118
123
  $.extend(webshims, {
119
- version: '1.14.3',
124
+ version: '1.14.4',
125
+
120
126
  cfg: {
121
127
  enhanceAuto: window.Audio && (!window.matchMedia || matchMedia('(min-device-width: 721px)').matches),
122
128
  //addCacheBuster: false,
@@ -139,7 +145,7 @@
139
145
  },
140
146
  basePath: path
141
147
  },
142
-
148
+ support: support,
143
149
  bugs: {},
144
150
  /*
145
151
  * some data
@@ -177,22 +183,7 @@
177
183
  webshims.featureList.push(feature);
178
184
  webCFG[feature] = {};
179
185
  }
180
-
181
- if(!webshimsFeatures[feature].failedM && cfg.nM){
182
- $.each(cfg.nM.split(' '), function(i, name){
183
- if(!(name in Modernizr)){
184
- webshimsFeatures[feature].failedM = name;
185
- return false;
186
- }
187
- });
188
- }
189
-
190
- if(webshimsFeatures[feature].failedM){
191
- cfg.test = WSDEBUG ? function(){
192
- webshims.error('webshims needs Modernizr.'+webshimsFeatures[feature].failedM + ' to implement feature: '+ feature);
193
- return true;
194
- } : true;
195
- }
186
+
196
187
  webshimsFeatures[feature].push(name);
197
188
  cfg.options = $.extend(webCFG[feature], cfg.options);
198
189
 
@@ -256,6 +247,9 @@
256
247
  if(feature == 'xhr2'){
257
248
  feature = 'filereader';
258
249
  }
250
+ if(feature == 'promise'){
251
+ feature = 'es6';
252
+ }
259
253
  if(!webshimsFeatures[feature]){
260
254
  WSDEBUG && webshims.error("could not find webshims-feature (aborted): "+ feature);
261
255
  isReady(feature, true);
@@ -438,7 +432,6 @@
438
432
  return true;
439
433
  }
440
434
  var module = modules[name];
441
- var cfg = webCFG[module.f || name] || {};
442
435
  var supported;
443
436
  if (module) {
444
437
  supported = (module.test && $.isFunction(module.test)) ? module.test(list) : module.test;
@@ -667,7 +660,11 @@
667
660
 
668
661
 
669
662
  webshims.activeLang = (function(){
670
- var curLang = $.attr(document.documentElement, 'lang') || navigator.browserLanguage || navigator.language || '';
663
+
664
+ if(!('language' in navigator)){
665
+ navigator.language = navigator.browserLanguage || '';
666
+ }
667
+ var curLang = $.attr(document.documentElement, 'lang') || navigator.language;
671
668
  onReady('webshimLocalization', function(){
672
669
  webshims.activeLang(curLang);
673
670
  });
@@ -909,7 +906,7 @@
909
906
  }
910
907
  return ('swfmini' in window);
911
908
  },
912
- c: [16, 7, 2, 8, 1, 12, 19, 23]
909
+ c: [16, 7, 2, 8, 1, 12, 23]
913
910
  });
914
911
  modules.swfmini.test();
915
912
 
@@ -921,8 +918,7 @@
921
918
 
922
919
  // webshims lib uses a of http://github.com/kriskowal/es5-shim/ to implement
923
920
  addPolyfill('es5', {
924
- test: !!(Modernizr.ES5 && Function.prototype.bind),
925
- c: [18, 19, 20, 32],
921
+ test: !!(support.ES5 && Function.prototype.bind),
926
922
  d: ['sizzle']
927
923
  });
928
924
 
@@ -930,31 +926,44 @@
930
926
  f: DOMSUPPORT,
931
927
  noAutoCallback: true,
932
928
  d: ['es5'],
933
- c: [16, 7, 2, 15, 30, 3, 8, 4, 9, 10, 19, 25, 20, 31, 34]
929
+ c: [16, 7, 2, 15, 30, 3, 8, 4, 9, 10, 25, 31, 34]
934
930
  });
935
931
 
936
- document.createElement('picture');
932
+ //<picture
933
+ create('picture');
937
934
  addPolyfill('picture', {
938
- test: ('picturefill' in window) || !!window.HTMLPictureElement
935
+ test: ('picturefill' in window) || !!window.HTMLPictureElement,
936
+ d: ['matchMedia'],
937
+ c: [18],
938
+ loadInit: function(){
939
+ isReady('picture', true);
940
+ }
939
941
  });
942
+ //>
940
943
 
941
-
942
- addPolyfill('promise', {
943
- test: !!(window.Promise && Promise.all)
944
+ //<matchMedia
945
+ addPolyfill('matchMedia', {
946
+ test: !!(window.matchMedia && matchMedia('all').addListener),
947
+ c: [18]
944
948
  });
949
+ //>
945
950
 
946
-
951
+ //<es6
952
+ addPolyfill('es6', {
953
+ test: !!(Math.imul && Number.MIN_SAFE_INTEGER && Object.is && window.Promise && Promise.all),// && window.Map && Map.prototype && typeof Map.prototype.forEach !== 'function' && window.Set
954
+ d: ['es5']
955
+ });
956
+ //>
947
957
 
948
958
  //<geolocation
949
959
 
950
960
  addPolyfill('geolocation', {
951
- test: Modernizr.geolocation,
961
+ test: 'geolocation' in navigator,
952
962
  options: {
953
963
  destroyWrite: true
954
964
  // ,confirmText: ''
955
965
  },
956
- c: [21],
957
- nM: 'geolocation'
966
+ c: [21]
958
967
  });
959
968
  //>
960
969
 
@@ -962,7 +971,7 @@
962
971
  (function(){
963
972
  addPolyfill('canvas', {
964
973
  src: 'excanvas',
965
- test: Modernizr.canvas,
974
+ test: ('getContext' in create('canvas')),
966
975
  options: {type: 'flash'}, //excanvas | flash | flashpro
967
976
  noAutoCallback: true,
968
977
 
@@ -973,8 +982,7 @@
973
982
  }
974
983
  },
975
984
  methodNames: ['getContext'],
976
- d: [DOMSUPPORT],
977
- nM: 'canvas'
985
+ d: [DOMSUPPORT]
978
986
  });
979
987
  })();
980
988
  //>
@@ -984,52 +992,60 @@
984
992
  (function(){
985
993
  var formExtend, formOptions;
986
994
  var fShim = 'form-shim-extend';
987
- var modernizrInputAttrs = Modernizr.input;
988
- var modernizrInputTypes = Modernizr.inputtypes;
989
995
  var formvalidation = 'formvalidation';
990
996
  var fNuAPI = 'form-number-date-api';
991
997
  var bustedValidity = false;
992
998
  var bustedWidgetUi = false;
993
999
  var replaceBustedUI = false;
994
-
1000
+ var inputtypes = {};
1001
+
1002
+
1003
+ var progress = create('progress');
1004
+ var output = create('output');
1005
+
995
1006
  var initialFormTest = function(){
996
1007
  var tmp, fieldset;
997
- if(!initialFormTest.run){
998
- fieldset = $('<fieldset><textarea required="" /></fieldset>')[0];
999
- addTest(formvalidation, !!(modernizrInputAttrs.required && modernizrInputAttrs.pattern));
1000
-
1001
- addTest('fieldsetelements', (tmp = 'elements' in fieldset));
1002
-
1003
- if(('disabled' in fieldset)){
1004
- if(!tmp) {
1005
- try {
1006
- if($('textarea', fieldset).is(':invalid')){
1007
- fieldset.disabled = true;
1008
- tmp = $('textarea', fieldset).is(':valid');
1009
- }
1010
- } catch(er){}
1008
+ var input = create('input');
1009
+ fieldset = $('<fieldset><textarea required="" /></fieldset>')[0];
1010
+
1011
+ support.inputtypes = inputtypes;
1012
+
1013
+ $.each(['number', 'range', 'date', 'datetime-local', 'month', 'color'], function(i, type){
1014
+ input.setAttribute('type', type);
1015
+ inputtypes[type] = (input.type == type && (input.value = '(') && input.value != '(');
1016
+ });
1017
+
1018
+ support.datalist = !!(('options' in create('datalist')) && window.HTMLDataListElement);
1019
+
1020
+ support[formvalidation] = ('checkValidity' in input);
1021
+
1022
+ support.fieldsetelements = ('elements' in fieldset);
1023
+
1024
+
1025
+ if((support.fieldsetdisabled = ('disabled' in fieldset))){
1026
+ try {
1027
+ if(fieldset.querySelector(':invalid')){
1028
+ fieldset.disabled = true;
1029
+ tmp = !fieldset.querySelector(':invalid');
1011
1030
  }
1012
- addTest('fieldsetdisabled', tmp);
1013
- }
1014
-
1015
- if(Modernizr[formvalidation]){
1016
- bustedWidgetUi = !Modernizr.fieldsetdisabled ||!Modernizr.fieldsetelements || !('value' in document.createElement('progress')) || !('value' in document.createElement('output'));
1017
- replaceBustedUI = bustedWidgetUi && (/Android/i).test(navigator.userAgent);
1018
- bugs.bustedValidity = bustedValidity = window.opera || bugs.bustedValidity || bustedWidgetUi || !modernizrInputAttrs.list;
1019
- } else {
1020
- bugs.bustedValidity = false;
1021
- }
1031
+ } catch(er){}
1032
+ support.fieldsetdisabled = !!tmp;
1033
+ }
1022
1034
 
1023
- formExtend = Modernizr[formvalidation] && !bustedValidity ? 'form-native-extend' : fShim;
1024
-
1035
+ if(support[formvalidation]){
1036
+ bustedWidgetUi = !support.fieldsetdisabled || !support.fieldsetelements || !('value' in progress) || !('value' in output);
1037
+ replaceBustedUI = bustedWidgetUi && (/Android/i).test(navigator.userAgent);
1038
+ bugs.bustedValidity = bustedValidity = window.opera || bugs.bustedValidity || bustedWidgetUi || !support.datalist;
1039
+ } else {
1040
+ bugs.bustedValidity = false;
1025
1041
  }
1026
- initialFormTest.run = true;
1042
+
1043
+ formExtend = support[formvalidation] && !bustedValidity ? 'form-native-extend' : fShim;
1044
+ initialFormTest = $.noop;
1027
1045
  return false;
1028
1046
  };
1029
1047
 
1030
- document.createElement('datalist');
1031
-
1032
-
1048
+
1033
1049
  webshims.validationMessages = webshims.validityMessages = {
1034
1050
  langSrc: 'i18n/formcfg-',
1035
1051
  availableLangs: "ar cs el es fa fr he hi hu it ja lt nl pl pt pt-BR pt-PT ru sv zh-CN zh-TW".split(' ')
@@ -1041,10 +1057,10 @@
1041
1057
  addPolyfill('form-core', {
1042
1058
  f: 'forms',
1043
1059
  d: ['es5'],
1044
- test: initialFormTest,
1045
1060
  options: {
1046
1061
  placeholderType: 'value',
1047
1062
  messagePopover: {},
1063
+ test: initialFormTest,
1048
1064
  list: {
1049
1065
  popover: {
1050
1066
  constrainWidth: true
@@ -1060,9 +1076,8 @@
1060
1076
  // overridePlaceholder: false, // might be good for IE10
1061
1077
  // replaceValidationUI: false
1062
1078
  },
1063
- methodNames: ['setCustomValidity','checkValidity', 'setSelectionRange'],
1064
- c: [16, 7, 2, 8, 1, 15, 30, 3, 31],
1065
- nM: 'input'
1079
+ methodNames: ['setCustomValidity', 'checkValidity', 'setSelectionRange'],
1080
+ c: [16, 7, 2, 8, 1, 15, 30, 3, 31]
1066
1081
  });
1067
1082
 
1068
1083
  formOptions = webCFG.forms;
@@ -1070,7 +1085,8 @@
1070
1085
  addPolyfill('form-native-extend', {
1071
1086
  f: 'forms',
1072
1087
  test: function(toLoad){
1073
- return !Modernizr[formvalidation] || bustedValidity || $.inArray(fNuAPI, toLoad || []) == -1 || modules[fNuAPI].test();
1088
+ initialFormTest();
1089
+ return !support[formvalidation] || bustedValidity || $.inArray(fNuAPI, toLoad || []) == -1 || modules[fNuAPI].test();
1074
1090
  },
1075
1091
  d: ['form-core', DOMSUPPORT, 'form-message'],
1076
1092
  c: [6, 5, 14, 29]
@@ -1079,7 +1095,8 @@
1079
1095
  addPolyfill(fShim, {
1080
1096
  f: 'forms',
1081
1097
  test: function(){
1082
- return Modernizr[formvalidation] && !bustedValidity;
1098
+ initialFormTest();
1099
+ return support[formvalidation] && !bustedValidity;
1083
1100
  },
1084
1101
  d: ['form-core', DOMSUPPORT, 'sizzle'],
1085
1102
  c: [16, 15, 28]
@@ -1088,7 +1105,8 @@
1088
1105
  addPolyfill(fShim+'2', {
1089
1106
  f: 'forms',
1090
1107
  test: function(){
1091
- return Modernizr[formvalidation] && !bustedWidgetUi;
1108
+ initialFormTest();
1109
+ return support[formvalidation] && !bustedWidgetUi;
1092
1110
  },
1093
1111
  d: [fShim],
1094
1112
  c: [27]
@@ -1097,7 +1115,8 @@
1097
1115
  addPolyfill('form-message', {
1098
1116
  f: 'forms',
1099
1117
  test: function(toLoad){
1100
- return !( formOptions.customMessages || !Modernizr[formvalidation] || bustedValidity || !modules[formExtend].test(toLoad) );
1118
+ initialFormTest();
1119
+ return !( formOptions.customMessages || !support[formvalidation] || bustedValidity || !modules[formExtend].test(toLoad) );
1101
1120
  },
1102
1121
  d: [DOMSUPPORT],
1103
1122
  c: [16, 7, 15, 30, 3, 8, 4, 14, 28]
@@ -1115,10 +1134,9 @@
1115
1134
  if(!o._types){
1116
1135
  o._types = o.types.split(' ');
1117
1136
  }
1118
-
1119
1137
  initialFormTest();
1120
1138
  $.each(o._types, function(i, name){
1121
- if((name in modernizrInputTypes) && !modernizrInputTypes[name]){
1139
+ if((name in inputtypes) && !inputtypes[name]){
1122
1140
  ret = false;
1123
1141
  return false;
1124
1142
  }
@@ -1128,8 +1146,7 @@
1128
1146
  },
1129
1147
  methodNames: ['stepUp', 'stepDown'],
1130
1148
  d: ['forms', DOMSUPPORT],
1131
- c: [6, 5, 18, 17, 14, 28, 29, 32, 33],
1132
- nM: 'input inputtypes'
1149
+ c: [6, 5, 17, 14, 28, 29, 33]
1133
1150
  });
1134
1151
 
1135
1152
  addModule('range-ui', {
@@ -1139,17 +1156,15 @@
1139
1156
  return !!$fn.rangeUI;
1140
1157
  },
1141
1158
  d: ['es5'],
1142
- c: [6, 5, 9, 10, 18, 17, 11]
1159
+ c: [6, 5, 9, 10, 17, 11]
1143
1160
  });
1144
1161
 
1145
1162
  addPolyfill('form-number-date-ui', {
1146
1163
  f: 'forms-ext',
1147
1164
  test: function(){
1148
1165
  var o = this.options;
1149
- initialFormTest();
1150
-
1151
1166
  o.replaceUI = getAutoEnhance(o.replaceUI);
1152
-
1167
+ initialFormTest();
1153
1168
  //input widgets on old androids can't be trusted
1154
1169
  if(!o.replaceUI && replaceBustedUI){
1155
1170
  o.replaceUI = true;
@@ -1164,7 +1179,7 @@
1164
1179
  }
1165
1180
  // ,replaceUI: false
1166
1181
  },
1167
- c: [6, 5, 9, 10, 18, 17, 11]
1182
+ c: [6, 5, 9, 10, 17, 11]
1168
1183
  });
1169
1184
 
1170
1185
  addPolyfill('form-datalist', {
@@ -1174,10 +1189,10 @@
1174
1189
  if(replaceBustedUI){
1175
1190
  formOptions.customDatalist = true;
1176
1191
  }
1177
- return modernizrInputAttrs.list && !formOptions.fD;
1192
+ return support.datalist && !formOptions.fD;
1178
1193
  },
1179
1194
  d: ['form-core', DOMSUPPORT],
1180
- c: [16, 7, 6, 2, 9, 15, 30, 31, 28, 32, 33]
1195
+ c: [16, 7, 6, 2, 9, 15, 30, 31, 28, 33]
1181
1196
  });
1182
1197
  })();
1183
1198
  //>
@@ -1195,11 +1210,8 @@
1195
1210
  //>
1196
1211
 
1197
1212
  //<details
1198
- addTest('details', function(){
1199
- return ('open' in document.createElement('details'));
1200
- });
1201
1213
  addPolyfill('details', {
1202
- test: Modernizr.details,
1214
+ test: ('open' in create('details')),
1203
1215
  d: [DOMSUPPORT],
1204
1216
  options: {
1205
1217
  // animate: false,
@@ -1208,15 +1220,24 @@
1208
1220
  c: [21, 22]
1209
1221
  });
1210
1222
  //>
1211
-
1223
+
1212
1224
  //<mediaelement
1213
1225
  (function(){
1214
1226
  webshims.mediaelement = {};
1215
- addTest({
1216
- texttrackapi: ('addTextTrack' in document.createElement('video')),
1217
- // a more strict test for track including UI support: document.createElement('track').kind === 'subtitles'
1218
- track: ('kind' in document.createElement('track'))
1219
- });
1227
+ var video = create('video');
1228
+ var track = create('track');
1229
+ support.mediaelement = ('canPlayType' in video);
1230
+ support.texttrackapi = ('addTextTrack' in video);
1231
+ support.track = ('kind' in track);
1232
+
1233
+ create('audio');
1234
+
1235
+ if(!(bugs.track = !support.texttrackapi)){
1236
+ try {
1237
+ bugs.track = !('oncuechange' in video.addTextTrack('metadata'));
1238
+ } catch(e){}
1239
+ }
1240
+
1220
1241
  addPolyfill('mediaelement-core', {
1221
1242
  f: 'mediaelement',
1222
1243
  noAutoCallback: true,
@@ -1231,8 +1252,7 @@
1231
1252
  },
1232
1253
  methodNames: ['play', 'pause', 'canPlayType', 'mediaLoad:load'],
1233
1254
  d: ['swfmini'],
1234
- c: [16, 7, 2, 8, 1, 12, 13, 19, 20, 23],
1235
- nM: 'audio video'
1255
+ c: [16, 7, 2, 8, 1, 12, 13, 23]
1236
1256
  });
1237
1257
 
1238
1258
 
@@ -1242,7 +1262,7 @@
1242
1262
  test: function(){
1243
1263
  var options = this.options;
1244
1264
 
1245
- if(!Modernizr.audio || !Modernizr.video || webshims.mediaelement.loadSwf){
1265
+ if(!support.mediaelement || webshims.mediaelement.loadSwf){
1246
1266
  return false;
1247
1267
  }
1248
1268
 
@@ -1251,12 +1271,9 @@
1251
1271
  }
1252
1272
  return !( options.preferFlash && swfmini.hasFlashPlayerVersion('10.0.3') );
1253
1273
  },
1254
- c: [21, 19, 25, 20]
1274
+ c: [21, 25]
1255
1275
  });
1256
1276
 
1257
-
1258
- bugs.track = !window.TextTrackCue || !Modernizr.texttrackapi;
1259
-
1260
1277
  addPolyfill('track', {
1261
1278
  options: {
1262
1279
  positionDisplay: true,
@@ -1272,24 +1289,22 @@
1272
1289
  c: [21, 12, 13, 22, 34]
1273
1290
  });
1274
1291
 
1275
- addModule('jme', {
1276
- src: 'jme/b',
1277
- d: ['mediaelement'],
1292
+ addModule('jmebase', {
1293
+ src: 'jme/base',
1278
1294
  c: [98, 99, 97]
1279
1295
  });
1280
1296
 
1281
- addModule('mediacontrols', {
1282
- src: 'jme/c',
1283
- css: 'jme/controls.css',
1284
- d: ['jme'],
1285
- c: [98, 99]
1297
+ $.each([
1298
+ ['mediacontrols', {c: [98, 99], css: 'jme/controls.css'}],
1299
+ ['playlist', {c: [98, 97]}],
1300
+ ['alternate-media']
1301
+ ], function(i, plugin){
1302
+ addModule(plugin[0], $.extend({
1303
+ src: 'jme/'+plugin[0],
1304
+ d: ['jmebase']
1305
+ }, plugin[1]));
1286
1306
  });
1287
1307
 
1288
- addModule('playlist', {
1289
- src: 'jme/p',
1290
- d: ['jme'],
1291
- c: [98, 97]
1292
- });
1293
1308
 
1294
1309
  addModule('track-ui', {
1295
1310
  d: ['track', DOMSUPPORT]
@@ -1307,25 +1322,12 @@
1307
1322
  });
1308
1323
 
1309
1324
  webshims.$ = $;
1310
- webshims.M = Modernizr;
1311
1325
  $.webshims = webshims;
1312
1326
  $.webshim = webshim;
1313
1327
 
1314
1328
  webshims.callAsync = function(){
1315
1329
  webshims.callAsync = $.noop;
1316
- if(WSDEBUG){
1317
- $(document.scripts || 'script')
1318
- .filter('[data-polyfill-cfg]')
1319
- .each(function(){
1320
- webshims.error('script[data-polyfill-cfg] feature was removed')
1321
- })
1322
- .end()
1323
- .filter('[data-polyfill]')
1324
- .each(function(){
1325
- webshims.error('script[data-polyfill] feature was removed')
1326
- })
1327
- ;
1328
- }
1330
+
1329
1331
  if(asyncWebshims){
1330
1332
  if(asyncWebshims.cfg){
1331
1333
  if(!asyncWebshims.cfg.length){
@@ -15,9 +15,7 @@
15
15
  */
16
16
  (function ($, version) {
17
17
  "use strict";
18
- if(!window.Modernizr || !('opacity' in Modernizr) || !('csstransitions' in Modernizr)){
19
- $('html').addClass(('opacity' in document.documentElement.style) ? 'opacity' : 'no-opacity');
20
- }
18
+
21
19
  var mPrecision = function (value, precision) {
22
20
  if (precision === undefined) precision = 0;
23
21
  return Math.round(value * Math.pow(10, precision)) / Math.pow(10, precision);