webshims-rails 1.11.3.1 → 1.11.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) 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 +114 -104
  4. data/vendor/assets/javascripts/webshims/extras/mousepress.js +5 -5
  5. data/vendor/assets/javascripts/webshims/polyfiller.js +156 -207
  6. data/vendor/assets/javascripts/webshims/shims/$ajax.js +862 -0
  7. data/vendor/assets/javascripts/webshims/shims/FlashCanvas/flashcanvas.js +20 -0
  8. data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/flashcanvas.js +20 -0
  9. data/vendor/assets/javascripts/webshims/shims/color-picker.js +12 -12
  10. data/vendor/assets/javascripts/webshims/shims/combos/1.js +62 -32
  11. data/vendor/assets/javascripts/webshims/shims/combos/10.js +192 -509
  12. data/vendor/assets/javascripts/webshims/shims/combos/11.js +96 -415
  13. data/vendor/assets/javascripts/webshims/shims/combos/12.js +36 -26
  14. data/vendor/assets/javascripts/webshims/shims/combos/13.js +36 -26
  15. data/vendor/assets/javascripts/webshims/shims/combos/14.js +1007 -359
  16. data/vendor/assets/javascripts/webshims/shims/combos/15.js +310 -235
  17. data/vendor/assets/javascripts/webshims/shims/combos/16.js +313 -237
  18. data/vendor/assets/javascripts/webshims/shims/combos/17.js +96 -415
  19. data/vendor/assets/javascripts/webshims/shims/combos/18.js +1003 -678
  20. data/vendor/assets/javascripts/webshims/shims/combos/19.js +1085 -387
  21. data/vendor/assets/javascripts/webshims/shims/combos/2.js +161 -127
  22. data/vendor/assets/javascripts/webshims/shims/combos/20.js +1086 -388
  23. data/vendor/assets/javascripts/webshims/shims/combos/21.js +168 -96
  24. data/vendor/assets/javascripts/webshims/shims/combos/22.js +36 -27
  25. data/vendor/assets/javascripts/webshims/shims/combos/23.js +2 -1
  26. data/vendor/assets/javascripts/webshims/shims/combos/24.js +411 -172
  27. data/vendor/assets/javascripts/webshims/shims/combos/25.js +1085 -387
  28. data/vendor/assets/javascripts/webshims/shims/combos/26.js +96 -94
  29. data/vendor/assets/javascripts/webshims/shims/combos/3.js +163 -140
  30. data/vendor/assets/javascripts/webshims/shims/combos/30.js +166 -141
  31. data/vendor/assets/javascripts/webshims/shims/combos/31.js +159 -126
  32. data/vendor/assets/javascripts/webshims/shims/combos/4.js +103 -109
  33. data/vendor/assets/javascripts/webshims/shims/combos/5.js +98 -417
  34. data/vendor/assets/javascripts/webshims/shims/combos/6.js +101 -418
  35. data/vendor/assets/javascripts/webshims/shims/combos/7.js +168 -142
  36. data/vendor/assets/javascripts/webshims/shims/combos/8.js +165 -141
  37. data/vendor/assets/javascripts/webshims/shims/combos/9.js +195 -510
  38. data/vendor/assets/javascripts/webshims/shims/details.js +2 -2
  39. data/vendor/assets/javascripts/webshims/shims/dom-extend.js +96 -94
  40. data/vendor/assets/javascripts/webshims/shims/es5.js +908 -264
  41. data/vendor/assets/javascripts/webshims/shims/excanvas.js +16 -1
  42. data/vendor/assets/javascripts/webshims/shims/form-combat.js +147 -0
  43. data/vendor/assets/javascripts/webshims/shims/form-core.js +60 -31
  44. data/vendor/assets/javascripts/webshims/shims/form-datalist-lazy.js +114 -33
  45. data/vendor/assets/javascripts/webshims/shims/form-datalist.js +3 -1
  46. data/vendor/assets/javascripts/webshims/shims/form-message.js +7 -15
  47. data/vendor/assets/javascripts/webshims/shims/form-native-extend.js +2 -2
  48. data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +88 -410
  49. data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +143 -93
  50. data/vendor/assets/javascripts/webshims/shims/form-shim-extend2.js +268 -79
  51. data/vendor/assets/javascripts/webshims/shims/form-validation.js +116 -81
  52. data/vendor/assets/javascripts/webshims/shims/form-validators.js +23 -10
  53. data/vendor/assets/javascripts/webshims/shims/forms-picker.js +605 -9
  54. data/vendor/assets/javascripts/webshims/shims/geolocation.js +51 -39
  55. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-de.js +78 -33
  56. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-en.js +24 -6
  57. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-nl.js +110 -49
  58. data/vendor/assets/javascripts/webshims/shims/json-storage.js +3 -1
  59. data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +2 -1
  60. data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +81 -30
  61. data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +131 -54
  62. data/vendor/assets/javascripts/webshims/shims/plugins/jquery.ui.position.js +497 -0
  63. data/vendor/assets/javascripts/webshims/shims/range-ui.js +8 -5
  64. data/vendor/assets/javascripts/webshims/shims/sizzle.js +2026 -0
  65. data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +401 -521
  66. data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-ext.scss +1 -1
  67. data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +94 -82
  68. data/vendor/assets/javascripts/webshims/shims/styles/shim.css +250 -321
  69. data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
  70. data/vendor/assets/javascripts/webshims/shims/track-ui.js +1 -1
  71. data/vendor/assets/javascripts/webshims/shims/track.js +34 -25
  72. metadata +7 -3
@@ -462,8 +462,8 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
462
462
  webshims.error("IE browser modes are busted in IE10+. Please test your HTML/CSS/JS with a real IE version or at least IETester or similiar tools");
463
463
  }
464
464
 
465
- if(!$.parseHTML){
466
- webshims.error("Webshims needs jQuery 1.8+ to work properly. Please update your jQuery version or downgrade webshims.");
465
+ if('debug' in webshims){
466
+ webshims.error('Use webshims.setOptions("debug", true||false||"noCombo"); to debug flag');
467
467
  }
468
468
 
469
469
  if (!webshims.cfg.no$Switch) {
@@ -499,7 +499,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
499
499
  // '127.0.0.1': 1
500
500
  // };
501
501
  //
502
- // if( webshims.debug && (hostNames[location.hostname] || location.protocol == 'file:') ){
502
+ // if( webshims.cfg.debug && (hostNames[location.hostname] || location.protocol == 'file:') ){
503
503
  // var list = $('<ul class="webshims-debug-list" />');
504
504
  // webshims.errorLog.push = function(message){
505
505
  // list.appendTo('body');
@@ -931,7 +931,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
931
931
  };
932
932
 
933
933
  $.extend(webshims, {
934
-
935
934
  getID: (function(){
936
935
  var ID = new Date().getTime();
937
936
  return function(elem){
@@ -961,6 +960,51 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
961
960
  }
962
961
  });
963
962
  },
963
+ getOptions: (function(){
964
+ var regs = {};
965
+ var regFn = function(f, upper){
966
+ return upper.toLowerCase();
967
+ };
968
+ return function(elem, name, bases){
969
+ var data = elementData(elem, 'cfg'+name);
970
+ var dataName;
971
+ var cfg = {};
972
+
973
+ if(data){
974
+ return data;
975
+ }
976
+ data = $(elem).data();
977
+
978
+ if(!bases){
979
+ bases = [true, {}];
980
+ } else if(!Array.isArray(bases)){
981
+ bases = [true, {}, bases];
982
+ } else {
983
+ bases.unshift(true, {});
984
+ }
985
+
986
+ if(data && data[name]){
987
+ if(typeof data[name] == 'object'){
988
+ bases.push(data[name]);
989
+ } else {
990
+ webshims.error('data-'+ name +' attribute has to be a valid JSON, was: '+ data[name]);
991
+ }
992
+ }
993
+
994
+ if(!regs[name]){
995
+ regs[name] = new RegExp('^'+ name +'([A-Z])');
996
+ }
997
+
998
+ for(dataName in data){
999
+ if(regs[name].test(dataName)){
1000
+ cfg[dataName.replace(regs[name], regFn)] = data[dataName];
1001
+ }
1002
+ }
1003
+ bases.push(cfg);
1004
+
1005
+ return elementData(elem, 'cfg'+name, $.extend.apply($, bases));
1006
+ };
1007
+ })(),
964
1008
  //http://www.w3.org/TR/html5/common-dom-interfaces.html#reflect
965
1009
  createPropDefault: createPropDefault,
966
1010
  data: elementData,
@@ -1048,7 +1092,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1048
1092
  setInterval(this.test, 600);
1049
1093
  $(this.test);
1050
1094
  webshims.ready('WINDOWLOAD', this.test);
1051
- $(document).on('updatelayout', this.handler);
1095
+ $(document).on('updatelayout pageinit collapsibleexpand shown.bs.modal shown.bs.collapse slid.bs.carousel', this.handler);
1052
1096
  $(window).on('resize', this.handler);
1053
1097
  (function(){
1054
1098
  var oldAnimate = $.fn.animate;
@@ -1406,109 +1450,67 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1406
1450
  }
1407
1451
  },
1408
1452
 
1409
- // set current Lang:
1410
- // - webshims.activeLang(lang:string);
1411
- // get current lang
1412
- // - webshims.activeLang();
1413
- // get current lang
1414
- // webshims.activeLang({
1415
- // register: moduleName:string,
1416
- // callback: callback:function
1417
- // });
1418
- // get/set including remoteLang
1419
- // - webshims.activeLang({
1420
- // module: moduleName:string,
1421
- // callback: callback:function,
1422
- // langObj: languageObj:array/object
1423
- // });
1424
1453
  activeLang: (function(){
1425
- var callbacks = [];
1426
- var registeredCallbacks = {};
1427
- var currentLang;
1428
- var shortLang;
1429
- var notLocal = /:\/\/|^\.*\//;
1430
- var loadRemoteLang = function(data, lang, options){
1431
- var langSrc;
1432
- if(lang && options && $.inArray(lang, options.availableLangs || options.availabeLangs || []) !== -1){
1433
- data.loading = true;
1434
- langSrc = options.langSrc;
1435
- if(!notLocal.test(langSrc)){
1436
- langSrc = webshims.cfg.basePath+langSrc;
1437
- }
1438
- webshims.loader.loadScript(langSrc+lang+'.js', function(){
1439
- if(data.langObj[lang]){
1440
- data.loading = false;
1441
- callLang(data, true);
1442
- } else {
1443
- $(function(){
1444
- if(data.langObj[lang]){
1445
- callLang(data, true);
1446
- }
1447
- data.loading = false;
1454
+ var curLang = [];
1455
+ var langDatas = [];
1456
+ var loading = {};
1457
+ var load = function(src, obj, loadingLang){
1458
+ obj._isLoading = true;
1459
+ if(loading[src]){
1460
+ loading[src].push(obj);
1461
+ } else {
1462
+ loading[src] = [obj];
1463
+ webshims.loader.loadScript(src, function(){
1464
+ if(loadingLang == curLang.join()){
1465
+ $.each(loading[src], function(i, obj){
1466
+ select(obj);
1448
1467
  });
1449
1468
  }
1469
+ delete loading[src];
1450
1470
  });
1451
- return true;
1452
1471
  }
1453
- return false;
1454
1472
  };
1455
- var callRegister = function(module){
1456
- if(registeredCallbacks[module]){
1457
- registeredCallbacks[module].forEach(function(data){
1458
- data.callback(currentLang, shortLang, '');
1459
- });
1460
- }
1461
- };
1462
- var callLang = function(data, _noLoop){
1463
- if(data.activeLang != currentLang && data.activeLang !== shortLang){
1464
- var options = modules[data.module].options;
1465
- if( data.langObj[currentLang] || (shortLang && data.langObj[shortLang]) ){
1466
- data.activeLang = currentLang;
1467
- data.callback(data.langObj[currentLang] || data.langObj[shortLang], currentLang);
1468
- callRegister(data.module);
1469
- } else if( !_noLoop &&
1470
- !loadRemoteLang(data, currentLang, options) &&
1471
- !loadRemoteLang(data, shortLang, options) &&
1472
- data.langObj[''] && data.activeLang !== '' ) {
1473
- data.activeLang = '';
1474
- data.callback(data.langObj[''], currentLang);
1475
- callRegister(data.module);
1473
+ var select = function(obj){
1474
+ var oldLang = obj.__active;
1475
+ var selectLang = function(i, lang){
1476
+ obj._isLoading = false;
1477
+ if(obj[lang] || obj.availableLangs.indexOf(lang) != -1){
1478
+ if(obj[lang]){
1479
+ obj.__active = obj[lang];
1480
+ } else {
1481
+ load(obj.langSrc+lang, obj, curLang.join());
1482
+ }
1483
+ return false;
1476
1484
  }
1485
+ };
1486
+ $.each(curLang, selectLang);
1487
+ if(!obj.__active){
1488
+ obj.__active = obj[''];
1489
+ }
1490
+ if(oldLang != obj.__active){
1491
+ $(obj).trigger('change');
1477
1492
  }
1478
1493
  };
1479
-
1480
-
1481
- var activeLang = function(lang){
1482
-
1483
- if(typeof lang == 'string' && lang !== currentLang){
1484
- currentLang = lang;
1485
- shortLang = currentLang.split('-')[0];
1486
- if(currentLang == shortLang){
1487
- shortLang = false;
1494
+ return function(lang){
1495
+ var shortLang;
1496
+ if(typeof lang == 'string'){
1497
+ if(curLang[0] != lang){
1498
+ curLang = [lang];
1499
+ shortLang = curLang[0].split('-')[0];
1500
+ if(shortLang && shortLang != lang){
1501
+ curLang.push(shortLang);
1502
+ }
1503
+ langDatas.forEach(select);
1488
1504
  }
1489
- $.each(callbacks, function(i, data){
1490
- callLang(data);
1491
- });
1492
1505
  } else if(typeof lang == 'object'){
1493
-
1494
- if(lang.register){
1495
- if(!registeredCallbacks[lang.register]){
1496
- registeredCallbacks[lang.register] = [];
1497
- }
1498
- registeredCallbacks[lang.register].push(lang);
1499
- lang.callback(currentLang, shortLang, '');
1500
- } else {
1501
- if(!lang.activeLang){
1502
- lang.activeLang = '';
1503
- }
1504
- callbacks.push(lang);
1505
- callLang(lang);
1506
+ if(!lang.__active){
1507
+ langDatas.push(lang);
1508
+ select(lang);
1506
1509
  }
1510
+ return lang.__active;
1507
1511
  }
1508
- return currentLang;
1512
+ return curLang[0];
1509
1513
  };
1510
-
1511
- return activeLang;
1512
1514
  })()
1513
1515
  });
1514
1516
 
@@ -1652,39 +1654,65 @@ webshims.register('form-core', function($, webshims, window, document, undefined
1652
1654
  return ret;
1653
1655
  };
1654
1656
 
1655
- $.extend($.expr[":"], {
1656
- "valid-element": function(elem){
1657
- return rElementsGroup.test(elem.nodeName || '') ? !hasInvalid(elem) :!!($.prop(elem, 'willValidate') && isValid(elem));
1658
- },
1659
- "invalid-element": function(elem){
1660
- return rElementsGroup.test(elem.nodeName || '') ? hasInvalid(elem) : !!($.prop(elem, 'willValidate') && !isValid(elem));
1661
- },
1662
- "required-element": function(elem){
1663
- return !!($.prop(elem, 'willValidate') && $.prop(elem, 'required'));
1664
- },
1665
- "user-error": function(elem){
1666
- return ($.prop(elem, 'willValidate') && $(elem).hasClass('user-error'));
1667
- },
1668
- "optional-element": function(elem){
1669
- return !!($.prop(elem, 'willValidate') && $.prop(elem, 'required') === false);
1657
+ var extendSels = function(){
1658
+ var exp = $.expr[":"];
1659
+ $.extend(exp, {
1660
+ "valid-element": function(elem){
1661
+ return rElementsGroup.test(elem.nodeName || '') ? !hasInvalid(elem) :!!($.prop(elem, 'willValidate') && isValid(elem));
1662
+ },
1663
+ "invalid-element": function(elem){
1664
+ return rElementsGroup.test(elem.nodeName || '') ? hasInvalid(elem) : !!($.prop(elem, 'willValidate') && !isValid(elem));
1665
+ },
1666
+ "required-element": function(elem){
1667
+ return !!($.prop(elem, 'willValidate') && $.prop(elem, 'required'));
1668
+ },
1669
+ "user-error": function(elem){
1670
+ return ($.prop(elem, 'willValidate') && $(elem).hasClass('user-error'));
1671
+ },
1672
+ "optional-element": function(elem){
1673
+ return !!($.prop(elem, 'willValidate') && $.prop(elem, 'required') === false);
1674
+ }
1675
+ });
1676
+
1677
+ ['valid', 'invalid', 'required', 'optional'].forEach(function(name){
1678
+ exp[name] = $.expr[":"][name+"-element"];
1679
+ });
1680
+
1681
+ // sizzle/jQuery has a bug with :disabled/:enabled selectors
1682
+ if(Modernizr.fieldsetdisabled && !$('<fieldset disabled=""><input /><fieldset>').find('input').is(':disabled')){
1683
+ $.extend(exp, {
1684
+ "enabled": function( elem ) {
1685
+ return elem.disabled === false && !$(elem).is('fieldset[disabled] *');
1686
+ },
1687
+
1688
+ "disabled": function( elem ) {
1689
+ return elem.disabled === true || ('disabled' in elem && $(elem).is('fieldset[disabled] *'));
1690
+ }
1691
+ });
1670
1692
  }
1671
- });
1672
-
1673
- ['valid', 'invalid', 'required', 'optional'].forEach(function(name){
1674
- $.expr[":"][name] = $.expr.filters[name+"-element"];
1675
- });
1676
-
1677
- //bug was partially fixed in 1.10.0 for IE9, but not IE8 (move to es5 as soon as 1.10.2 is used)
1678
- var pseudoFocus = $.expr[":"].focus;
1679
- $.expr[":"].focus = function(){
1680
- try {
1681
- return pseudoFocus.apply(this, arguments);
1682
- } catch(e){
1683
- webshims.error(e);
1693
+
1694
+
1695
+ //bug was partially fixed in 1.10.0 for IE9, but not IE8 (move to es5 as soon as 1.10.2 is used)
1696
+ if(typeof document.activeElement == 'unknown'){
1697
+ var pseudoFocus = exp.focus;
1698
+ exp.focus = function(){
1699
+ try {
1700
+ return pseudoFocus.apply(this, arguments);
1701
+ } catch(e){
1702
+ webshims.error(e);
1703
+ }
1704
+ return false;
1705
+ };
1684
1706
  }
1685
- return false;
1686
1707
  };
1687
1708
 
1709
+ if($.expr.filters){
1710
+ extendSels();
1711
+ } else {
1712
+ webshims.ready('sizzle', extendSels);
1713
+ }
1714
+
1715
+
1688
1716
  webshims.triggerInlineForm = function(elem, event){
1689
1717
  $(elem).trigger(event);
1690
1718
  };
@@ -1752,7 +1780,10 @@ webshims.register('form-core', function($, webshims, window, document, undefined
1752
1780
 
1753
1781
 
1754
1782
  webshims.getContentValidationMessage = function(elem, validity, key){
1755
- var message = $(elem).data('errormessage') || elem.getAttribute('x-moz-errormessage') || '';
1783
+ if(webshims.errorbox && webshims.errorbox.initIvalContentMessage){
1784
+ webshims.errorbox.initIvalContentMessage(elem);
1785
+ }
1786
+ var message = (webshims.getOptions && webshims.errorbox ? webshims.getOptions(elem, 'errormessage') : $(elem).data('errormessage')) || elem.getAttribute('x-moz-errormessage') || '';
1756
1787
  if(key && message[key]){
1757
1788
  message = message[key];
1758
1789
  } else if(message) {
@@ -1798,7 +1829,7 @@ webshims.register('form-core', function($, webshims, window, document, undefined
1798
1829
 
1799
1830
 
1800
1831
  $(document).on('focusin.lazyloadvalidation', function(e){
1801
- if('form' in e.target && (e.target.list || $(e.target).is(':invalid'))){
1832
+ if('form' in e.target){
1802
1833
  lazyLoad();
1803
1834
  }
1804
1835
  });
@@ -2090,7 +2121,9 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
2090
2121
  noAutoCallback: true,
2091
2122
  options: $.extend(options, {shadowListProto: shadowListProto})
2092
2123
  });
2093
-
2124
+ if(!options.list){
2125
+ options.list = {};
2126
+ }
2094
2127
  //init datalist update
2095
2128
  initializeDatalist();
2096
2129
  })();
@@ -2141,7 +2174,7 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
2141
2174
  var switchOptions = function(e){
2142
2175
  var media, error, parent;
2143
2176
  if(!options.preferFlash &&
2144
- ($(e.target).is('audio, video') || ((parent = e.target.parentNode) && $('source:last', parent)[0] == e.target)) &&
2177
+ ($(e.target).is('audio, video') || ((parent = e.target.parentNode) && $('source', parent).last()[0] == e.target)) &&
2145
2178
  (media = $(e.target).closest('audio, video')) && (error = media.prop('error')) && !noSwitch[error.code]
2146
2179
  ){
2147
2180
 
@@ -2649,6 +2682,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2649
2682
  if(hasNative && (!data || data.isActive == 'html5') && supLoad.prop._supvalue){
2650
2683
  supLoad.prop._supvalue.apply(this, arguments);
2651
2684
  }
2685
+ $(this).triggerHandler('wsmediareload');
2652
2686
  }
2653
2687
  }
2654
2688
  });