webshims-rails 1.13.0 → 1.14.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/webshims-rails/version.rb +2 -2
- data/vendor/assets/javascripts/webshims/extras/modernizr-custom.js +0 -0
- data/vendor/assets/javascripts/webshims/polyfiller.js +45 -26
- data/vendor/assets/javascripts/webshims/shims/FlashCanvas/canvas2png.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvas/flashcanvas.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvas/flashcanvas.swf +0 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvas/proxy.php +0 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvas/save.php +0 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/canvas2png.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/flash10canvas.swf +0 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/flash9canvas.swf +0 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/flashcanvas.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/proxy.php +0 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/save.php +0 -0
- data/vendor/assets/javascripts/webshims/shims/color-picker.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/combos/1.js +33 -2
- data/vendor/assets/javascripts/webshims/shims/combos/10.js +82 -29
- data/vendor/assets/javascripts/webshims/shims/combos/11.js +50 -27
- data/vendor/assets/javascripts/webshims/shims/combos/12.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/combos/13.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/combos/14.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/combos/15.js +115 -43
- data/vendor/assets/javascripts/webshims/shims/combos/16.js +115 -43
- data/vendor/assets/javascripts/webshims/shims/combos/17.js +50 -27
- data/vendor/assets/javascripts/webshims/shims/combos/18.js +50 -27
- data/vendor/assets/javascripts/webshims/shims/combos/19.js +33 -3
- data/vendor/assets/javascripts/webshims/shims/combos/2.js +65 -4
- data/vendor/assets/javascripts/webshims/shims/combos/20.js +33 -3
- data/vendor/assets/javascripts/webshims/shims/combos/21.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/combos/22.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/combos/23.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/combos/25.js +492 -2580
- data/vendor/assets/javascripts/webshims/shims/combos/26.js +8314 -1432
- data/vendor/assets/javascripts/webshims/shims/combos/27.js +1642 -556
- data/vendor/assets/javascripts/webshims/shims/combos/28.js +50 -39
- data/vendor/assets/javascripts/webshims/shims/combos/29.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/combos/3.js +66 -5
- data/vendor/assets/javascripts/webshims/shims/combos/30.js +66 -5
- data/vendor/assets/javascripts/webshims/shims/combos/31.js +65 -4
- data/vendor/assets/javascripts/webshims/shims/combos/32.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/combos/33.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/combos/34.js +32 -2
- data/vendor/assets/javascripts/webshims/shims/combos/4.js +33 -3
- data/vendor/assets/javascripts/webshims/shims/combos/5.js +50 -27
- data/vendor/assets/javascripts/webshims/shims/combos/6.js +50 -27
- data/vendor/assets/javascripts/webshims/shims/combos/7.js +66 -5
- data/vendor/assets/javascripts/webshims/shims/combos/8.js +66 -5
- data/vendor/assets/javascripts/webshims/shims/combos/9.js +82 -29
- data/vendor/assets/javascripts/webshims/shims/combos/97.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/combos/98.js +1 -2
- data/vendor/assets/javascripts/webshims/shims/combos/99.js +1 -2
- data/vendor/assets/javascripts/webshims/shims/combos/comboinfo.json +1 -0
- data/vendor/assets/javascripts/webshims/shims/details.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/dom-extend.js +32 -2
- data/vendor/assets/javascripts/webshims/shims/es5.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/excanvas.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/filereader.js +441 -362
- data/vendor/assets/javascripts/webshims/shims/form-combat.js +19 -7
- data/vendor/assets/javascripts/webshims/shims/form-core.js +33 -2
- data/vendor/assets/javascripts/webshims/shims/form-datalist-lazy.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/form-datalist.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/form-fixrangechange.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/form-message.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/form-native-extend.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/form-number-date-api.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +50 -27
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +49 -38
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend2.js +45 -14
- data/vendor/assets/javascripts/webshims/shims/form-validation.js +105 -7
- data/vendor/assets/javascripts/webshims/shims/form-validators.js +212 -134
- data/vendor/assets/javascripts/webshims/shims/forms-picker.js +15 -12
- data/vendor/assets/javascripts/webshims/shims/geolocation.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ar.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ch-CN.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-cs.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-de.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-el.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-en.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-es.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-fr.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-he.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-hi.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-hu.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-it.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ja.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-lt.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-nl.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pl.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pt-BR.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pt-PT.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pt.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ru.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-sv.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-zh-CN.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/jajax.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/jme/b.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/jme/c.js +1 -2
- data/vendor/assets/javascripts/webshims/shims/jme/controls.css +0 -0
- data/vendor/assets/javascripts/webshims/shims/jme/controls.scss +0 -0
- data/vendor/assets/javascripts/webshims/shims/jme/mediacontrols-lazy.js +3 -3
- data/vendor/assets/javascripts/webshims/shims/jme/p.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/ChangeLog.txt +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/ReadMe.txt +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/images/AlphaBar.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/images/Bars.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/images/Maps.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/images/NoColor.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/images/bar-opacity.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/images/map-opacity.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/images/mappoint.gif +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/images/picker.gif +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/images/preview-opacity.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/images/rangearrows.gif +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/jpicker.css +0 -0
- data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/mediaelement-native-fix.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/moxie/flash/Moxie.cdn.swf +0 -0
- data/vendor/assets/javascripts/webshims/shims/moxie/js/moxie.js +7994 -0
- data/vendor/assets/javascripts/webshims/shims/moxie/silverlight/Moxie.cdn.xap +0 -0
- data/vendor/assets/javascripts/webshims/shims/picture.js +50 -43
- data/vendor/assets/javascripts/webshims/shims/plugins/jquery.ui.position.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/promise.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/range-ui.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/sizzle.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/color-picker.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/config.rb +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +7 -2
- data/vendor/assets/javascripts/webshims/shims/styles/forms-picker.css +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/progress.gif +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/progress.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/_api-forms-ext.scss +219 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/_api-shim.scss +115 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/_extends.scss +31 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-ext.scss +583 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-picker.scss +488 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/shim-ext.scss +2 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +736 -0
- data/vendor/assets/javascripts/webshims/shims/styles/shim-ext.css +105 -21
- data/vendor/assets/javascripts/webshims/shims/styles/shim.css +91 -19
- data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
- data/vendor/assets/javascripts/webshims/shims/swf/filereader.swf +0 -0
- data/vendor/assets/javascripts/webshims/shims/swfmini-embed.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/swfmini.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/track-ui.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/track.js +0 -0
- metadata +13 -2
@@ -402,8 +402,8 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
402
402
|
});
|
403
403
|
return this;
|
404
404
|
};
|
405
|
-
|
406
|
-
var dataID = '
|
405
|
+
var idCount = 0;
|
406
|
+
var dataID = '_webshims'+ (Math.round(Math.random() * 1000));
|
407
407
|
var elementData = function(elem, key, val){
|
408
408
|
elem = elem.jquery ? elem[0] : elem;
|
409
409
|
if(!elem){return val || {};}
|
@@ -434,6 +434,35 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
434
434
|
return this.pushStack(elems);
|
435
435
|
};
|
436
436
|
});
|
437
|
+
|
438
|
+
function clone(elem, dataAndEvents, uniqueIds){
|
439
|
+
var cloned = $.clone( elem, dataAndEvents, false );
|
440
|
+
$(cloned.querySelectorAll('.'+webshims.shadowClass)).detach();
|
441
|
+
if(uniqueIds){
|
442
|
+
idCount++;
|
443
|
+
$(cloned.querySelectorAll('[id]')).prop('id', function(i, id){
|
444
|
+
return id +idCount;
|
445
|
+
});
|
446
|
+
} else {
|
447
|
+
$(cloned.querySelectorAll('audio[id^="ID-"], video[id^="ID-"], label[id^="ID-"]')).removeAttr('id');
|
448
|
+
}
|
449
|
+
return cloned;
|
450
|
+
}
|
451
|
+
|
452
|
+
$.fn.clonePolyfill = function(dataAndEvents, uniqueIds){
|
453
|
+
dataAndEvents = dataAndEvents || false;
|
454
|
+
return this
|
455
|
+
.map(function() {
|
456
|
+
var cloned = clone( this, dataAndEvents, uniqueIds );
|
457
|
+
setTimeout(function(){
|
458
|
+
if($.contains(document.body, cloned)){
|
459
|
+
$(cloned).updatePolyfill();
|
460
|
+
}
|
461
|
+
});
|
462
|
+
return cloned;
|
463
|
+
})
|
464
|
+
;
|
465
|
+
};
|
437
466
|
|
438
467
|
//add support for $('video').trigger('play') in case extendNative is set to false
|
439
468
|
if(!webshims.cfg.extendNative && !webshims.cfg.noTriggerOverride){
|
@@ -745,6 +774,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
745
774
|
return id;
|
746
775
|
};
|
747
776
|
})(),
|
777
|
+
shadowClass: 'wsshadow-'+(Date.now()),
|
748
778
|
implement: function(elem, type){
|
749
779
|
var data = elementData(elem, 'implemented') || elementData(elem, 'implemented', {});
|
750
780
|
if(data[type]){
|
@@ -1556,6 +1586,8 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1556
1586
|
addModule('form-validation', $.extend({d: ['form-message']}, formExtras));
|
1557
1587
|
|
1558
1588
|
addModule('form-validators', $.extend({}, formExtras));
|
1589
|
+
|
1590
|
+
|
1559
1591
|
|
1560
1592
|
if($.expr.filters){
|
1561
1593
|
extendSels();
|
@@ -1676,13 +1708,22 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1676
1708
|
};
|
1677
1709
|
|
1678
1710
|
$.event.special.valuevalidation = {
|
1711
|
+
setup: function(){
|
1712
|
+
webshims.error('valuevalidation was renamed to validatevalue!');
|
1713
|
+
}
|
1714
|
+
};
|
1715
|
+
|
1716
|
+
|
1717
|
+
$.event.special.validatevalue = {
|
1679
1718
|
setup: function(){
|
1680
1719
|
var data = $(this).data() || $.data(this, {});
|
1681
|
-
if(!('
|
1682
|
-
data.
|
1720
|
+
if(!('validatevalue' in data)){
|
1721
|
+
data.validatevalue = true;
|
1683
1722
|
}
|
1684
1723
|
}
|
1685
1724
|
};
|
1725
|
+
|
1726
|
+
|
1686
1727
|
|
1687
1728
|
$(document).on('focusin.lazyloadvalidation', function(e){
|
1688
1729
|
if('form' in e.target){
|
@@ -1695,6 +1736,26 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1695
1736
|
if(modules['form-number-date-ui'].loaded && !options.customMessages && (modules['form-number-date-api'].test() || (Modernizr.inputtypes.range && Modernizr.inputtypes.color))){
|
1696
1737
|
webshims.isReady('form-number-date-ui', true);
|
1697
1738
|
}
|
1739
|
+
|
1740
|
+
webshims.ready('DOM', function(){
|
1741
|
+
if(document.querySelector('.ws-custom-file')){
|
1742
|
+
webshims.reTest(['form-validation']);
|
1743
|
+
}
|
1744
|
+
});
|
1745
|
+
|
1746
|
+
$(function(){
|
1747
|
+
var fileReaderReady = ('FileReader' in window && 'FormData' in window);
|
1748
|
+
if(!fileReaderReady){
|
1749
|
+
webshims.addReady(function(context){
|
1750
|
+
if(!fileReaderReady && !modules.filereader.loaded && !modules.moxie.loaded){
|
1751
|
+
if(context.querySelector('input.ws-filereader')){
|
1752
|
+
webshims.reTest(['filereader', 'moxie']);
|
1753
|
+
fileReaderReady = true;
|
1754
|
+
}
|
1755
|
+
}
|
1756
|
+
});
|
1757
|
+
}
|
1758
|
+
});
|
1698
1759
|
});
|
1699
1760
|
;webshims.register('form-shim-extend', function($, webshims, window, document, undefined, options){
|
1700
1761
|
"use strict";
|
@@ -1702,17 +1763,21 @@ webshims.inputTypes = webshims.inputTypes || {};
|
|
1702
1763
|
//some helper-functions
|
1703
1764
|
var cfg = webshims.cfg.forms;
|
1704
1765
|
var bugs = webshims.bugs;
|
1705
|
-
|
1706
|
-
var
|
1707
|
-
return (typeof string == 'number' || (string && string == string * 1));
|
1708
|
-
},
|
1709
|
-
typeModels = webshims.inputTypes,
|
1766
|
+
var splitReg = /\s*,\s*/g;
|
1767
|
+
var typeModels = webshims.inputTypes,
|
1710
1768
|
checkTypes = {
|
1711
1769
|
radio: 1,
|
1712
1770
|
checkbox: 1
|
1713
1771
|
},
|
1714
|
-
getType = function(
|
1715
|
-
|
1772
|
+
getType = function(){
|
1773
|
+
var elem = this;
|
1774
|
+
var type = (elem.getAttribute('type') || '').toLowerCase();
|
1775
|
+
return (webshims.inputTypes[type]) ? type : elem.type;
|
1776
|
+
},
|
1777
|
+
cacheType = function(cache, input){
|
1778
|
+
if(!('type' in cache)){
|
1779
|
+
cache.type = getType.call(input);
|
1780
|
+
}
|
1716
1781
|
}
|
1717
1782
|
;
|
1718
1783
|
|
@@ -1792,6 +1857,7 @@ var isPlaceholderOptionSelected = function(select){
|
|
1792
1857
|
};
|
1793
1858
|
|
1794
1859
|
var emptyJ = $([]);
|
1860
|
+
//TODO: cache + perftest
|
1795
1861
|
var getGroupElements = function(elem){
|
1796
1862
|
elem = $(elem);
|
1797
1863
|
var name, form;
|
@@ -1816,9 +1882,7 @@ var validityRules = {
|
|
1816
1882
|
valueMissing: function(input, val, cache){
|
1817
1883
|
if(!input.prop('required')){return false;}
|
1818
1884
|
var ret = false;
|
1819
|
-
|
1820
|
-
cache.type = getType(input[0]);
|
1821
|
-
}
|
1885
|
+
cacheType(cache, input[0]);
|
1822
1886
|
if(cache.nodeName == 'select'){
|
1823
1887
|
ret = (!val && (input[0].selectedIndex < 0 || isPlaceholderOptionSelected(input[0]) ));
|
1824
1888
|
} else if(checkTypes[cache.type]){
|
@@ -1829,21 +1893,32 @@ var validityRules = {
|
|
1829
1893
|
return ret;
|
1830
1894
|
},
|
1831
1895
|
patternMismatch: function(input, val, cache) {
|
1832
|
-
|
1833
|
-
|
1834
|
-
|
1835
|
-
|
1836
|
-
|
1896
|
+
var i;
|
1897
|
+
var ret = false;
|
1898
|
+
if(val === '' || cache.nodeName == 'select'){return ret;}
|
1899
|
+
|
1900
|
+
cacheType(cache, input[0]);
|
1901
|
+
|
1902
|
+
if(!patternTypes[cache.type]){return ret;}
|
1837
1903
|
var pattern = input.attr('pattern');
|
1838
|
-
if(!pattern){return
|
1904
|
+
if(!pattern){return ret;}
|
1839
1905
|
try {
|
1840
1906
|
pattern = new RegExp('^(?:' + pattern + ')$');
|
1841
1907
|
} catch(er){
|
1842
1908
|
webshims.error('invalid pattern value: "'+ pattern +'" | '+ er);
|
1843
|
-
pattern =
|
1909
|
+
pattern = ret;
|
1910
|
+
}
|
1911
|
+
if(!pattern){return ret;}
|
1912
|
+
|
1913
|
+
val = cache.type == 'email' && input.prop('multiple') ? val.split(splitReg) : [val];
|
1914
|
+
|
1915
|
+
for(i = 0; i < val.length; i++){
|
1916
|
+
if(!pattern.test(val[i])){
|
1917
|
+
ret = true;
|
1918
|
+
break;
|
1919
|
+
}
|
1844
1920
|
}
|
1845
|
-
|
1846
|
-
return !(pattern.test(val));
|
1921
|
+
return ret;
|
1847
1922
|
}
|
1848
1923
|
}
|
1849
1924
|
;
|
@@ -1852,9 +1927,9 @@ $.each({tooShort: ['minLength', -1], tooLong: ['maxLength', 1]}, function(name,
|
|
1852
1927
|
validityRules[name] = function(input, val, cache){
|
1853
1928
|
//defaultValue is not the same as dirty flag, but very similiar
|
1854
1929
|
if(cache.nodeName == 'select' || input.prop('defaultValue') == val){return false;}
|
1855
|
-
|
1856
|
-
|
1857
|
-
|
1930
|
+
|
1931
|
+
cacheType(cache, input[0]);
|
1932
|
+
|
1858
1933
|
if(!lengthTypes[cache.type]){return false;}
|
1859
1934
|
var prop = input.prop(props[0]);
|
1860
1935
|
|
@@ -1866,9 +1941,8 @@ $.each({typeMismatch: 'mismatch', badInput: 'bad'}, function(name, fn){
|
|
1866
1941
|
validityRules[name] = function (input, val, cache){
|
1867
1942
|
if(val === '' || cache.nodeName == 'select'){return false;}
|
1868
1943
|
var ret = false;
|
1869
|
-
|
1870
|
-
|
1871
|
-
}
|
1944
|
+
|
1945
|
+
cacheType(cache, input[0]);
|
1872
1946
|
|
1873
1947
|
if(typeModels[cache.type] && typeModels[cache.type][fn]){
|
1874
1948
|
ret = typeModels[cache.type][fn](val, input);
|
@@ -1936,6 +2010,7 @@ $.extend($.event.special.submit, {
|
|
1936
2010
|
return submitSetup.apply(this, arguments);
|
1937
2011
|
}
|
1938
2012
|
});
|
2013
|
+
|
1939
2014
|
webshims.ready('form-shim-extend2 WINDOWLOAD', function(){
|
1940
2015
|
$(window).on('invalid', $.noop);
|
1941
2016
|
});
|
@@ -1945,15 +2020,16 @@ webshims.addInputType('email', {
|
|
1945
2020
|
mismatch: (function(){
|
1946
2021
|
//taken from http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#valid-e-mail-address
|
1947
2022
|
var test = cfg.emailReg || /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
|
1948
|
-
var splitReg = /\s*,\s*/g;
|
1949
2023
|
return function(val, input){
|
2024
|
+
var i;
|
1950
2025
|
var ret = false;
|
1951
|
-
|
1952
|
-
|
1953
|
-
|
1954
|
-
|
1955
|
-
|
1956
|
-
|
2026
|
+
if(val){
|
2027
|
+
val = input.prop('multiple') ? val.split(splitReg) : [val];
|
2028
|
+
for(i = 0; i < val.length; i++){
|
2029
|
+
if(!test.test(val[i])){
|
2030
|
+
ret = true;
|
2031
|
+
break;
|
2032
|
+
}
|
1957
2033
|
}
|
1958
2034
|
}
|
1959
2035
|
return ret;
|
@@ -1966,18 +2042,14 @@ webshims.addInputType('url', {
|
|
1966
2042
|
//taken from scott gonzales
|
1967
2043
|
var test = cfg.urlReg || /^([a-z]([a-z]|\d|\+|-|\.)*):(\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?((\[(|(v[\da-f]{1,}\.(([a-z]|\d|-|\.|_|~)|[!\$&'\(\)\*\+,;=]|:)+))\])|((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=])*)(:\d*)?)(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*|(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)){0})(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i;
|
1968
2044
|
return function(val){
|
1969
|
-
return !test.test(val);
|
2045
|
+
return val && !test.test(val);
|
1970
2046
|
};
|
1971
2047
|
})()
|
1972
2048
|
});
|
1973
2049
|
|
1974
2050
|
webshims.defineNodeNameProperty('input', 'type', {
|
1975
2051
|
prop: {
|
1976
|
-
get:
|
1977
|
-
var elem = this;
|
1978
|
-
var type = (elem.getAttribute('type') || '').toLowerCase();
|
1979
|
-
return (webshims.inputTypes[type]) ? type : elem.type;
|
1980
|
-
}
|
2052
|
+
get: getType
|
1981
2053
|
}
|
1982
2054
|
});
|
1983
2055
|
|
@@ -2708,7 +2780,7 @@ webshims.defineNodeNamesProperties(['input', 'button'], formSubmitterDescriptors
|
|
2708
2780
|
if(message && message.indexOf('{%') != -1){
|
2709
2781
|
['value', 'min', 'max', 'maxlength', 'minlength', 'label'].forEach(function(attr){
|
2710
2782
|
if(message.indexOf('{%'+attr) === -1){return;}
|
2711
|
-
var val = ((attr == 'label') ? $.trim($('label[for="'+ elem.id +'"]', elem.form).text()).replace(/\*$|:$/, '') : $.prop(elem, attr)) || '';
|
2783
|
+
var val = ((attr == 'label') ? $.trim($('label[for="'+ elem.id +'"]', elem.form).text()).replace(/\*$|:$/, '') : $.prop(elem, attr) || $.attr(elem, attr) || '') || '';
|
2712
2784
|
val = ''+val;
|
2713
2785
|
|
2714
2786
|
|
@@ -1286,6 +1286,8 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
1286
1286
|
;
|
1287
1287
|
}
|
1288
1288
|
};
|
1289
|
+
var numericType = Modernizr.inputtypes.tel && navigator.userAgent.indexOf('Mobile') != -1 && !('inputMode' in document.createElement('input') && !('inputmode' in document.createElement('input'))) ?
|
1290
|
+
'tel' : 'text';
|
1289
1291
|
var splitInputs = {
|
1290
1292
|
date: {
|
1291
1293
|
_create: function(opts){
|
@@ -1296,18 +1298,18 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
1296
1298
|
if(opts.yearSelect){
|
1297
1299
|
obj.splits.push($('<select class="yy"></select>')[0]);
|
1298
1300
|
} else {
|
1299
|
-
obj.splits.push($('<input type="
|
1301
|
+
obj.splits.push($('<input type="'+ numericType +'" class="yy" size="4" inputmode="numeric" maxlength="4" />')[0]);
|
1300
1302
|
}
|
1301
1303
|
|
1302
1304
|
if(opts.monthSelect){
|
1303
1305
|
obj.splits.push($('<select class="mm">'+getMonthOptions(opts)+'</select>')[0]);
|
1304
1306
|
} else {
|
1305
|
-
obj.splits.push($('<input type="
|
1307
|
+
obj.splits.push($('<input type="'+ numericType +'" class="mm" inputmode="numeric" maxlength="2" size="2" />')[0]);
|
1306
1308
|
}
|
1307
1309
|
if(opts.daySelect){
|
1308
1310
|
obj.splits.push($(daySelect)[0]);
|
1309
1311
|
} else {
|
1310
|
-
obj.splits.push($('<input type="
|
1312
|
+
obj.splits.push($('<input type="'+ numericType +'" class="dd ws-spin" inputmode="numeric" maxlength="2" size="2" />')[0]);
|
1311
1313
|
}
|
1312
1314
|
|
1313
1315
|
obj.elements = [obj.splits[0], $('<span class="ws-input-seperator" />')[0], obj.splits[1], $('<span class="ws-input-seperator" />')[0], obj.splits[2]];
|
@@ -1342,7 +1344,7 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
1342
1344
|
if(opts.yearSelect){
|
1343
1345
|
obj.splits.push($('<select class="yy"></select>')[0]);
|
1344
1346
|
} else {
|
1345
|
-
obj.splits.push($('<input type="
|
1347
|
+
obj.splits.push($('<input type="'+ numericType +'" class="yy" size="4" inputmode="numeric" maxlength="4" />')[0]);
|
1346
1348
|
}
|
1347
1349
|
|
1348
1350
|
if(opts.monthSelect){
|
@@ -1350,7 +1352,10 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
1350
1352
|
} else {
|
1351
1353
|
obj.splits.push($('<input type="text" class="mm ws-spin" />')[0]);
|
1352
1354
|
if(opts.onlyMonthDigits){
|
1353
|
-
$(
|
1355
|
+
$().attr({inputmode: 'numeric', size: 2, maxlength: 2});
|
1356
|
+
try {
|
1357
|
+
obj.splits[1].setAttribute('type', numericType);
|
1358
|
+
} catch(e){}
|
1354
1359
|
}
|
1355
1360
|
}
|
1356
1361
|
|
@@ -1373,7 +1378,7 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
1373
1378
|
}
|
1374
1379
|
}
|
1375
1380
|
};
|
1376
|
-
|
1381
|
+
|
1377
1382
|
var nowDate = new Date(new Date().getTime() - (new Date().getTimezoneOffset() * 60 * 1000 ));
|
1378
1383
|
var nowYear = nowDate.getFullYear();
|
1379
1384
|
nowDate = new Date(nowDate.getFullYear(), nowDate.getMonth(), nowDate.getDate(), nowDate.getHours()).getTime();
|
@@ -2193,7 +2198,11 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
2193
2198
|
} else if(!isNaN(this.maxAsNumber) && start > this.maxAsNumber){
|
2194
2199
|
start = this.maxAsNumber;
|
2195
2200
|
}
|
2196
|
-
|
2201
|
+
try {
|
2202
|
+
this.elemHelper.prop('valueAsNumber', start);
|
2203
|
+
} catch(e){
|
2204
|
+
webshims.warn('valueAsNumber set: '+e);
|
2205
|
+
}
|
2197
2206
|
this.options.defValue = this.elemHelper.prop('value');
|
2198
2207
|
},
|
2199
2208
|
reorderInputs: function(){
|
@@ -2217,7 +2226,7 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
2217
2226
|
_beforeValue: function(val){
|
2218
2227
|
this.valueAsNumber = this.asNumber(val);
|
2219
2228
|
this.options.value = val;
|
2220
|
-
|
2229
|
+
|
2221
2230
|
if(isNaN(this.valueAsNumber) || (!isNaN(this.minAsNumber) && this.valueAsNumber < this.minAsNumber) || (!isNaN(this.maxAsNumber) && this.valueAsNumber > this.maxAsNumber)){
|
2222
2231
|
this._setStartInRange();
|
2223
2232
|
} else {
|
@@ -2333,9 +2342,9 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
2333
2342
|
touchEnd = function(e){
|
2334
2343
|
var ret, touch;
|
2335
2344
|
e = e.originalEvent || {};
|
2336
|
-
$(this).off('touchend', touchEnd);
|
2345
|
+
$(this).off('touchend touchcancel', touchEnd);
|
2337
2346
|
var changedTouches = e.changedTouches || e.touches;
|
2338
|
-
if(!touchData || !changedTouches || changedTouches.length != 1){
|
2347
|
+
if(e.type == 'touchcancel' || !touchData || !changedTouches || changedTouches.length != 1){
|
2339
2348
|
return;
|
2340
2349
|
}
|
2341
2350
|
|
@@ -2366,7 +2375,7 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
2366
2375
|
y: touch.pageY,
|
2367
2376
|
now: Date.now()
|
2368
2377
|
};
|
2369
|
-
elemTarget.on('touchend', touchEnd);
|
2378
|
+
elemTarget.on('touchend touchcancel', touchEnd);
|
2370
2379
|
};
|
2371
2380
|
|
2372
2381
|
this.each(function(){
|
@@ -2480,7 +2489,7 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
2480
2489
|
cancel: function(val, popover, data){
|
2481
2490
|
if(!data.options.inlinePicker){
|
2482
2491
|
popover.stopOpen = true;
|
2483
|
-
if(assumeVirtualKeyBoard){
|
2492
|
+
if(!popover.openedByFocus && assumeVirtualKeyBoard){
|
2484
2493
|
$('button', data.buttonWrapper).trigger('focus');
|
2485
2494
|
} else {
|
2486
2495
|
data.element.getShadowFocusElement().trigger('focus');
|
@@ -2580,14 +2589,6 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
2580
2589
|
var popover = webshims.objectCreate(options.inlinePicker ? webshims.inlinePopover : webshims.wsPopover, {}, $.extend(options.popover || {}, {prepareFor: options.inlinePicker ? data.buttonWrapper : data.element}));
|
2581
2590
|
var opener = $('<button type="button" class="ws-popover-opener"><span /></button>').appendTo(data.buttonWrapper);
|
2582
2591
|
|
2583
|
-
if(options.widgetPosition){
|
2584
|
-
webshims.error('options.widgetPosition was removed use options.popover.position instead');
|
2585
|
-
}
|
2586
|
-
|
2587
|
-
if(options.openOnFocus && popover.options && (popover.options.appendTo == 'auto' || popover.options.appendTo == 'element')){
|
2588
|
-
webshims.error('openOnFocus and popover.appendTo "auto/element" can prduce a11y problems try to change appendTo to body or similiar or use openOnMouseFocus instead');
|
2589
|
-
}
|
2590
|
-
|
2591
2592
|
var showPickerContent = function(){
|
2592
2593
|
(picker[data.type].showPickerContent || picker.showPickerContent)(data, popover);
|
2593
2594
|
};
|
@@ -2656,9 +2657,28 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
2656
2657
|
stopPropagation.apply(this, arguments);
|
2657
2658
|
popover.preventBlur();
|
2658
2659
|
},
|
2659
|
-
|
2660
|
-
|
2661
|
-
|
2660
|
+
keydown: function(e){
|
2661
|
+
if(e.keyCode == 40 && e.altKey){
|
2662
|
+
open();
|
2663
|
+
}
|
2664
|
+
},
|
2665
|
+
'focus mousedown': (function(){
|
2666
|
+
var allowClose = true;
|
2667
|
+
var reset = function(){
|
2668
|
+
allowClose = true;
|
2669
|
+
};
|
2670
|
+
return function(e){
|
2671
|
+
if(e.type == 'mousedown'){
|
2672
|
+
allowClose = false;
|
2673
|
+
setTimeout(reset);
|
2674
|
+
}
|
2675
|
+
if(e.type == 'focus' && allowClose && options.openOnFocus && popover.openedByFocus && (popover.options.appendTo == 'auto' || popover.options.appendTo == 'element')){
|
2676
|
+
popover.hide();
|
2677
|
+
} else {
|
2678
|
+
popover.preventBlur();
|
2679
|
+
}
|
2680
|
+
};
|
2681
|
+
})()
|
2662
2682
|
})
|
2663
2683
|
;
|
2664
2684
|
|
@@ -2905,6 +2925,7 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
2905
2925
|
}
|
2906
2926
|
|
2907
2927
|
};
|
2928
|
+
oriStyleO.webkitAppearance = 'none';
|
2908
2929
|
data.element.onWSOff('updateshadowdom', updateStyles, true);
|
2909
2930
|
};
|
2910
2931
|
|
@@ -2912,13 +2933,14 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
2912
2933
|
var implementType = function(){
|
2913
2934
|
|
2914
2935
|
var type = $.prop(this, 'type');
|
2915
|
-
|
2916
2936
|
var i, opts, data, optsName, labels, cNames, hasInitialFocus;
|
2917
|
-
|
2937
|
+
|
2938
|
+
if(inputTypes[type] && webshims.implement(this, 'inputwidgets') && (!modernizrInputTypes[type] || !$(this).hasClass('ws-noreplace'))){
|
2918
2939
|
data = {};
|
2919
2940
|
optsName = type;
|
2920
2941
|
hasInitialFocus = $(this).is(':focus');
|
2921
2942
|
labels = $(this).jProp('labels');
|
2943
|
+
|
2922
2944
|
opts = $.extend(webshims.getOptions(this, type, [options.widgets, options[type], $($.prop(this, 'form')).data(type)]), {
|
2923
2945
|
orig: this,
|
2924
2946
|
type: type,
|
@@ -2951,6 +2973,7 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
2951
2973
|
opts[optsName] = $.attr(this, copyAttrs[i]) || opts[optsName];
|
2952
2974
|
}
|
2953
2975
|
}
|
2976
|
+
|
2954
2977
|
if(opts.formatMonthNames){
|
2955
2978
|
webshims.error('formatMonthNames was renamded to monthNames');
|
2956
2979
|
}
|
@@ -2974,11 +2997,11 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
2974
2997
|
cNames = cNames.replace('form-control', '');
|
2975
2998
|
}
|
2976
2999
|
|
2977
|
-
data.shim.element.on('change input', stopPropagation).addClass(cNames);
|
3000
|
+
data.shim.element.on('change input', stopPropagation).addClass(cNames+' '+webshims.shadowClass);
|
2978
3001
|
|
2979
3002
|
if(data.shim.buttonWrapper){
|
2980
3003
|
|
2981
|
-
data.shim.buttonWrapper.addClass('input-button-size-'+(data.shim.buttonWrapper.children().filter(isVisible).length));
|
3004
|
+
data.shim.buttonWrapper.addClass('input-button-size-'+(data.shim.buttonWrapper.children().filter(isVisible).length)+' '+webshims.shadowClass);
|
2982
3005
|
|
2983
3006
|
if(data.shim.buttonWrapper.filter(isVisible).length){
|
2984
3007
|
data.shim.element.addClass('has-input-buttons');
|