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.
- checksums.yaml +4 -4
- data/lib/webshims-rails/version.rb +2 -2
- data/vendor/assets/javascripts/webshims/extras/modernizr-custom.js +114 -104
- data/vendor/assets/javascripts/webshims/extras/mousepress.js +5 -5
- data/vendor/assets/javascripts/webshims/polyfiller.js +156 -207
- data/vendor/assets/javascripts/webshims/shims/$ajax.js +862 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvas/flashcanvas.js +20 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/flashcanvas.js +20 -0
- data/vendor/assets/javascripts/webshims/shims/color-picker.js +12 -12
- data/vendor/assets/javascripts/webshims/shims/combos/1.js +62 -32
- data/vendor/assets/javascripts/webshims/shims/combos/10.js +192 -509
- data/vendor/assets/javascripts/webshims/shims/combos/11.js +96 -415
- data/vendor/assets/javascripts/webshims/shims/combos/12.js +36 -26
- data/vendor/assets/javascripts/webshims/shims/combos/13.js +36 -26
- data/vendor/assets/javascripts/webshims/shims/combos/14.js +1007 -359
- data/vendor/assets/javascripts/webshims/shims/combos/15.js +310 -235
- data/vendor/assets/javascripts/webshims/shims/combos/16.js +313 -237
- data/vendor/assets/javascripts/webshims/shims/combos/17.js +96 -415
- data/vendor/assets/javascripts/webshims/shims/combos/18.js +1003 -678
- data/vendor/assets/javascripts/webshims/shims/combos/19.js +1085 -387
- data/vendor/assets/javascripts/webshims/shims/combos/2.js +161 -127
- data/vendor/assets/javascripts/webshims/shims/combos/20.js +1086 -388
- data/vendor/assets/javascripts/webshims/shims/combos/21.js +168 -96
- data/vendor/assets/javascripts/webshims/shims/combos/22.js +36 -27
- data/vendor/assets/javascripts/webshims/shims/combos/23.js +2 -1
- data/vendor/assets/javascripts/webshims/shims/combos/24.js +411 -172
- data/vendor/assets/javascripts/webshims/shims/combos/25.js +1085 -387
- data/vendor/assets/javascripts/webshims/shims/combos/26.js +96 -94
- data/vendor/assets/javascripts/webshims/shims/combos/3.js +163 -140
- data/vendor/assets/javascripts/webshims/shims/combos/30.js +166 -141
- data/vendor/assets/javascripts/webshims/shims/combos/31.js +159 -126
- data/vendor/assets/javascripts/webshims/shims/combos/4.js +103 -109
- data/vendor/assets/javascripts/webshims/shims/combos/5.js +98 -417
- data/vendor/assets/javascripts/webshims/shims/combos/6.js +101 -418
- data/vendor/assets/javascripts/webshims/shims/combos/7.js +168 -142
- data/vendor/assets/javascripts/webshims/shims/combos/8.js +165 -141
- data/vendor/assets/javascripts/webshims/shims/combos/9.js +195 -510
- data/vendor/assets/javascripts/webshims/shims/details.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/dom-extend.js +96 -94
- data/vendor/assets/javascripts/webshims/shims/es5.js +908 -264
- data/vendor/assets/javascripts/webshims/shims/excanvas.js +16 -1
- data/vendor/assets/javascripts/webshims/shims/form-combat.js +147 -0
- data/vendor/assets/javascripts/webshims/shims/form-core.js +60 -31
- data/vendor/assets/javascripts/webshims/shims/form-datalist-lazy.js +114 -33
- data/vendor/assets/javascripts/webshims/shims/form-datalist.js +3 -1
- data/vendor/assets/javascripts/webshims/shims/form-message.js +7 -15
- data/vendor/assets/javascripts/webshims/shims/form-native-extend.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +88 -410
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +143 -93
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend2.js +268 -79
- data/vendor/assets/javascripts/webshims/shims/form-validation.js +116 -81
- data/vendor/assets/javascripts/webshims/shims/form-validators.js +23 -10
- data/vendor/assets/javascripts/webshims/shims/forms-picker.js +605 -9
- data/vendor/assets/javascripts/webshims/shims/geolocation.js +51 -39
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-de.js +78 -33
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-en.js +24 -6
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-nl.js +110 -49
- data/vendor/assets/javascripts/webshims/shims/json-storage.js +3 -1
- data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +2 -1
- data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +81 -30
- data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +131 -54
- data/vendor/assets/javascripts/webshims/shims/plugins/jquery.ui.position.js +497 -0
- data/vendor/assets/javascripts/webshims/shims/range-ui.js +8 -5
- data/vendor/assets/javascripts/webshims/shims/sizzle.js +2026 -0
- data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +401 -521
- data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-ext.scss +1 -1
- data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +94 -82
- data/vendor/assets/javascripts/webshims/shims/styles/shim.css +250 -321
- data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
- data/vendor/assets/javascripts/webshims/shims/track-ui.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/track.js +34 -25
- metadata +7 -3
@@ -49,7 +49,7 @@ webshims.register('form-native-extend', function($, webshims, window, doc, undef
|
|
49
49
|
|
50
50
|
var formsExtModule = webshims.modules['form-number-date-api'];
|
51
51
|
var overrideValidity = formsExtModule.loaded && !formsExtModule.test();
|
52
|
-
var validityProps = ['customError', 'badInput','typeMismatch','rangeUnderflow','rangeOverflow','stepMismatch','tooLong','patternMismatch','valueMissing','valid'];
|
52
|
+
var validityProps = ['customError', 'badInput','typeMismatch','rangeUnderflow','rangeOverflow','stepMismatch','tooLong', 'tooShort','patternMismatch','valueMissing','valid'];
|
53
53
|
|
54
54
|
var validityChanger = ['value'];
|
55
55
|
var validityElements = [];
|
@@ -107,7 +107,7 @@ webshims.register('form-native-extend', function($, webshims, window, doc, undef
|
|
107
107
|
}
|
108
108
|
var validityState = {};
|
109
109
|
validityProps.forEach(function(prop){
|
110
|
-
validityState[prop] = validity[prop];
|
110
|
+
validityState[prop] = validity[prop] || false;
|
111
111
|
});
|
112
112
|
|
113
113
|
if( !$.prop(elem, 'willValidate') ){
|
@@ -856,8 +856,11 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
856
856
|
|
857
857
|
if(this._init && val == o.value && oVal == val){return;}
|
858
858
|
this.options.value = val;
|
859
|
-
|
860
|
-
|
859
|
+
|
860
|
+
if($.fn.stop){
|
861
|
+
this.thumb.stop();
|
862
|
+
this.range.stop();
|
863
|
+
}
|
861
864
|
|
862
865
|
rangeStyle[this.dirs.width] = left+'%';
|
863
866
|
if(this.vertical){
|
@@ -866,7 +869,7 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
866
869
|
thumbStyle[this.dirs.left] = left+'%';
|
867
870
|
|
868
871
|
|
869
|
-
if(!animate){
|
872
|
+
if(!animate || !$.fn.animate){
|
870
873
|
this.thumb.css(thumbStyle);
|
871
874
|
this.range.css(rangeStyle);
|
872
875
|
} else {
|
@@ -1155,9 +1158,9 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
1155
1158
|
$(window).off('blur', removeWin);
|
1156
1159
|
if(!o.readonly && !o.disabled){
|
1157
1160
|
normalizeTouch(e);
|
1158
|
-
that.element.focus
|
1161
|
+
that.element.trigger('focus');
|
1159
1162
|
that.addRemoveClass('ws-active', true);
|
1160
|
-
leftOffset = that.element.
|
1163
|
+
leftOffset = that.element.offset();
|
1161
1164
|
widgetUnits = that.element[that.dirs.innerWidth]();
|
1162
1165
|
if(!widgetUnits || !leftOffset){return;}
|
1163
1166
|
outerWidth = that.thumb[that.dirs.outerWidth]();
|
@@ -1498,6 +1501,32 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
1498
1501
|
return val.length == 1 ? '0'+val : val;
|
1499
1502
|
};
|
1500
1503
|
|
1504
|
+
var loadPicker = function(type, name){
|
1505
|
+
type = (type == 'color' ? 'color' : 'forms')+'-picker';
|
1506
|
+
if(!loadPicker[name+'Loaded'+type]){
|
1507
|
+
loadPicker[name+'Loaded'+type] = true;
|
1508
|
+
webshims.ready(name, function(){
|
1509
|
+
webshims.loader.loadList([type]);
|
1510
|
+
|
1511
|
+
});
|
1512
|
+
}
|
1513
|
+
return type;
|
1514
|
+
};
|
1515
|
+
|
1516
|
+
|
1517
|
+
options.addZero = addZero;
|
1518
|
+
webshims.loader.addModule('forms-picker', {
|
1519
|
+
noAutoCallback: true,
|
1520
|
+
options: options
|
1521
|
+
});
|
1522
|
+
webshims.loader.addModule('color-picker', {
|
1523
|
+
noAutoCallback: true,
|
1524
|
+
css: 'jpicker/jpicker.css',
|
1525
|
+
options: options,
|
1526
|
+
d: ['forms-picker']
|
1527
|
+
});
|
1528
|
+
|
1529
|
+
options.steps = steps;
|
1501
1530
|
|
1502
1531
|
(function(){
|
1503
1532
|
|
@@ -1610,7 +1639,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
1610
1639
|
langCfg.date.monthDigits = monthDigits;
|
1611
1640
|
langCfg.numberSigns += '-';
|
1612
1641
|
if(langCfg.meridian){
|
1613
|
-
langCfg.timeSigns += langCfg.meridian[0] + langCfg.meridian[1];
|
1642
|
+
langCfg.timeSigns += langCfg.meridian[0] + langCfg.meridian[1] + langCfg.meridian[0].toLowerCase() + langCfg.meridian[1].toLowerCase();
|
1614
1643
|
}
|
1615
1644
|
$.each(langCfg.date.monthNames, create);
|
1616
1645
|
$.each(langCfg.date.monthNamesShort, create);
|
@@ -1636,43 +1665,24 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
1636
1665
|
$(document).triggerHandler('wslocalechange');
|
1637
1666
|
};
|
1638
1667
|
|
1639
|
-
triggerLocaleChange();
|
1640
1668
|
|
1641
|
-
|
1642
|
-
|
1643
|
-
|
1644
|
-
|
1645
|
-
|
1646
|
-
|
1647
|
-
|
1648
|
-
|
1649
|
-
|
1650
|
-
return false;
|
1651
|
-
}
|
1652
|
-
});
|
1653
|
-
}
|
1654
|
-
});
|
1655
|
-
webshims.activeLang({
|
1656
|
-
langObj: formcfg,
|
1657
|
-
module: 'form-core',
|
1658
|
-
callback: function(val){
|
1659
|
-
if(curCfg != val){
|
1660
|
-
curCfg = val;
|
1661
|
-
triggerLocaleChange();
|
1662
|
-
}
|
1663
|
-
}
|
1669
|
+
|
1670
|
+
|
1671
|
+
curCfg = webshims.activeLang(formcfg);
|
1672
|
+
|
1673
|
+
triggerLocaleChange();
|
1674
|
+
|
1675
|
+
$(formcfg).on('change', function(){
|
1676
|
+
curCfg = formcfg.__active;
|
1677
|
+
triggerLocaleChange();
|
1664
1678
|
});
|
1679
|
+
|
1665
1680
|
})();
|
1666
1681
|
|
1667
1682
|
|
1668
1683
|
|
1669
1684
|
(function(){
|
1670
1685
|
|
1671
|
-
|
1672
|
-
var mousePress = function(e){
|
1673
|
-
$(this)[e.type == 'mousepressstart' ? 'addClass' : 'removeClass']('mousepress-ui');
|
1674
|
-
};
|
1675
|
-
|
1676
1686
|
var retDefault = function(val, def){
|
1677
1687
|
if(!(typeof val == 'number' || (val && val == val * 1))){
|
1678
1688
|
return def;
|
@@ -1784,6 +1794,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
1784
1794
|
time: function(val){
|
1785
1795
|
var fVal;
|
1786
1796
|
if(val && curCfg.meridian){
|
1797
|
+
val = val.toUpperCase();
|
1787
1798
|
if(val.substr(0,2) === "12"){
|
1788
1799
|
val = "00" + val.substr(2);
|
1789
1800
|
}
|
@@ -2007,300 +2018,32 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
2007
2018
|
}
|
2008
2019
|
},
|
2009
2020
|
addBindings: function(){
|
2010
|
-
var isFocused;
|
2011
|
-
|
2012
2021
|
var that = this;
|
2013
2022
|
var o = this.options;
|
2014
|
-
|
2015
|
-
|
2016
|
-
var events = {};
|
2017
|
-
return {
|
2018
|
-
init: function(name, curVal, fn){
|
2019
|
-
if(!events[name]){
|
2020
|
-
events[name] = {fn: fn};
|
2021
|
-
$(that.orig).on(name, function(){
|
2022
|
-
events[name].val = $.prop(that.orig, 'value');
|
2023
|
-
});
|
2024
|
-
}
|
2025
|
-
events[name].val = curVal;
|
2026
|
-
},
|
2027
|
-
call: function(name, val){
|
2028
|
-
if(events[name] && events[name].val != val){
|
2029
|
-
clearTimeout(events[name].timer);
|
2030
|
-
events[name].val = val;
|
2031
|
-
events[name].timer = setTimeout(function(){
|
2032
|
-
events[name].fn(val, that);
|
2033
|
-
}, 9);
|
2034
|
-
}
|
2035
|
-
}
|
2036
|
-
};
|
2037
|
-
})();
|
2038
|
-
var initChangeEvents = function(){
|
2039
|
-
eventTimer.init('input', $.prop(that.orig, 'value'), that.options.input);
|
2040
|
-
eventTimer.init('change', $.prop(that.orig, 'value'), that.options.change);
|
2041
|
-
};
|
2042
|
-
|
2043
|
-
var step = {};
|
2044
|
-
|
2045
|
-
var preventBlur = function(e){
|
2046
|
-
if(preventBlur.prevent){
|
2047
|
-
e.preventDefault();
|
2048
|
-
(isFocused || that.element.getShadowFocusElement()).focus();
|
2049
|
-
stopPropagation(e);
|
2050
|
-
return true;
|
2051
|
-
}
|
2023
|
+
var run = function(){
|
2024
|
+
that._addBindings();
|
2052
2025
|
};
|
2053
|
-
|
2054
|
-
|
2055
|
-
|
2056
|
-
|
2057
|
-
|
2058
|
-
|
2059
|
-
val = that.parseValue();
|
2060
|
-
if(that.type == 'color'){
|
2061
|
-
that.inputElements.val(val);
|
2062
|
-
}
|
2063
|
-
$.prop(that.orig, 'value', val);
|
2064
|
-
eventTimer.call('input', val);
|
2065
|
-
if(!e || e.type != 'wsupdatevalue'){
|
2066
|
-
eventTimer.call('change', val);
|
2067
|
-
}
|
2068
|
-
};
|
2069
|
-
|
2070
|
-
var onFocus = function(){
|
2071
|
-
clearTimeout(timer);
|
2072
|
-
};
|
2073
|
-
var onBlur = function(e){
|
2074
|
-
clearTimeout(timer);
|
2075
|
-
timer = setTimeout(call, 0);
|
2076
|
-
|
2077
|
-
if(e.type == 'change'){
|
2078
|
-
stopPropagation(e);
|
2079
|
-
if(!o.splitInput){
|
2080
|
-
call();
|
2081
|
-
}
|
2082
|
-
}
|
2083
|
-
};
|
2084
|
-
|
2085
|
-
that.element.on('wsupdatevalue', call);
|
2086
|
-
|
2087
|
-
that.inputElements
|
2088
|
-
.add(that.buttonWrapper)
|
2089
|
-
.add(that.element)
|
2090
|
-
.on(
|
2091
|
-
{
|
2092
|
-
'focus focusin': onFocus,
|
2093
|
-
'blur focusout change': onBlur
|
2094
|
-
}
|
2095
|
-
)
|
2096
|
-
;
|
2097
|
-
setTimeout(function(){
|
2098
|
-
if(that.popover){
|
2099
|
-
that.popover.element.on('wspopoverhide', onBlur);
|
2100
|
-
$('> *', that.popover.element)
|
2101
|
-
.on({
|
2102
|
-
'focusin': onFocus,
|
2103
|
-
'focusout': onBlur
|
2104
|
-
})
|
2105
|
-
;
|
2106
|
-
}
|
2107
|
-
}, 0);
|
2108
|
-
})();
|
2026
|
+
if(this._addBindings){
|
2027
|
+
run();
|
2028
|
+
} else {
|
2029
|
+
webshims.ready('forms-picker', run);
|
2030
|
+
loadPicker(this.type, 'WINDOWLOAD');
|
2031
|
+
}
|
2109
2032
|
|
2110
|
-
|
2111
|
-
|
2112
|
-
|
2113
|
-
|
2114
|
-
|
2115
|
-
|
2116
|
-
|
2117
|
-
|
2118
|
-
|
2119
|
-
stopPropagation(e);
|
2120
|
-
},
|
2121
|
-
focus: function(e){
|
2122
|
-
if(!isFocused){
|
2123
|
-
initChangeEvents();
|
2124
|
-
isFocused = this;
|
2125
|
-
}
|
2126
|
-
},
|
2127
|
-
keypress: function(e){
|
2128
|
-
if(e.isDefaultPrevented()){return;}
|
2129
|
-
var chr;
|
2130
|
-
var stepped = true;
|
2131
|
-
var code = e.keyCode;
|
2132
|
-
if(!e.ctrlKey && !e.metaKey && curCfg[that.type+'Signs']){
|
2133
|
-
chr = String.fromCharCode(e.charCode == null ? code : e.charCode);
|
2134
|
-
stepped = !(chr < " " || (curCfg[that.type+'Signs']+'0123456789').indexOf(chr) > -1);
|
2135
|
-
} else {
|
2136
|
-
stepped = false;
|
2137
|
-
}
|
2138
|
-
if(stepped){
|
2139
|
-
e.preventDefault();
|
2033
|
+
this.inputElements
|
2034
|
+
.add(this.buttonWrapper)
|
2035
|
+
.add(this.element)
|
2036
|
+
.one('mousedown focusin', function(e){
|
2037
|
+
loadPicker(that.type, 'DOM');
|
2038
|
+
})
|
2039
|
+
.on({
|
2040
|
+
'change input focus focusin blur focusout': function(e){
|
2041
|
+
$(e.target).trigger('ws__'+e.type);
|
2140
2042
|
}
|
2141
|
-
}
|
2142
|
-
input: (this.type == 'color' && this.isValid) ?
|
2143
|
-
$.noop :
|
2144
|
-
(function(){
|
2145
|
-
var timer;
|
2146
|
-
var check = function(){
|
2147
|
-
var val = that.parseValue(true);
|
2148
|
-
if(val && that.isValid(val)){
|
2149
|
-
that.setInput(val);
|
2150
|
-
}
|
2151
|
-
|
2152
|
-
};
|
2153
|
-
return function(){
|
2154
|
-
clearTimeout(timer);
|
2155
|
-
timer = setTimeout(check, 200);
|
2156
|
-
};
|
2157
|
-
})(),
|
2158
|
-
'input keydown keypress': (function(){
|
2159
|
-
var timer;
|
2160
|
-
var isStopped = false;
|
2161
|
-
var releaseTab = function(){
|
2162
|
-
if(isStopped === true){
|
2163
|
-
isStopped = 'semi';
|
2164
|
-
timer = setTimeout(releaseTab, 250);
|
2165
|
-
} else {
|
2166
|
-
isStopped = false;
|
2167
|
-
}
|
2168
|
-
};
|
2169
|
-
var stopTab = function(){
|
2170
|
-
isStopped = true;
|
2171
|
-
clearTimeout(timer);
|
2172
|
-
timer = setTimeout(releaseTab, 300);
|
2173
|
-
};
|
2174
|
-
var select = function(){
|
2175
|
-
var elem = this;
|
2176
|
-
setTimeout(function(){
|
2177
|
-
elem.focus();
|
2178
|
-
elem.select();
|
2179
|
-
}, 4);
|
2180
|
-
|
2181
|
-
stopTab();
|
2182
|
-
};
|
2183
|
-
|
2184
|
-
return function(e){
|
2185
|
-
if(o.splitInput && o.jumpInputs){
|
2186
|
-
if(e.type == 'input'){
|
2187
|
-
if($.prop(this, 'value').length === $.prop(this, 'maxLength')){
|
2188
|
-
try {
|
2189
|
-
$(this)
|
2190
|
-
.next()
|
2191
|
-
.next('input, select')
|
2192
|
-
.each(select)
|
2193
|
-
;
|
2194
|
-
} catch(er){}
|
2195
|
-
}
|
2196
|
-
} else if(!e.shiftKey && !e.crtlKey && e.keyCode == 9 && (isStopped === true || (isStopped && !$.prop(this, 'value')))){
|
2197
|
-
e.preventDefault();
|
2198
|
-
}
|
2199
|
-
}
|
2200
|
-
};
|
2201
|
-
})()
|
2202
|
-
};
|
2203
|
-
var mouseDownInit = function(){
|
2204
|
-
if(!o.disabled && !isFocused){
|
2205
|
-
that.element.getShadowFocusElement().focus();
|
2206
|
-
}
|
2207
|
-
preventBlur.set();
|
2043
|
+
})
|
2208
2044
|
|
2209
|
-
|
2210
|
-
};
|
2211
|
-
|
2212
|
-
preventBlur.set = (function(){
|
2213
|
-
var timer;
|
2214
|
-
var reset = function(){
|
2215
|
-
preventBlur.prevent = false;
|
2216
|
-
};
|
2217
|
-
return function(){
|
2218
|
-
clearTimeout(timer);
|
2219
|
-
preventBlur.prevent = true;
|
2220
|
-
setTimeout(reset, 9);
|
2221
|
-
};
|
2222
|
-
})();
|
2223
|
-
|
2224
|
-
|
2225
|
-
this.buttonWrapper.on('mousedown', mouseDownInit);
|
2226
|
-
|
2227
|
-
this.setInput = function(value){
|
2228
|
-
that.value(value);
|
2229
|
-
eventTimer.call('input', value);
|
2230
|
-
};
|
2231
|
-
this.setChange = function(value){
|
2232
|
-
that.setInput(value);
|
2233
|
-
eventTimer.call('change', value);
|
2234
|
-
};
|
2235
|
-
|
2236
|
-
|
2237
|
-
|
2238
|
-
this.inputElements.on(elementEvts);
|
2045
|
+
;
|
2239
2046
|
|
2240
|
-
if(steps[this.type]){
|
2241
|
-
['stepUp', 'stepDown'].forEach(function(name){
|
2242
|
-
step[name] = function(factor){
|
2243
|
-
if(!o.disabled && !o.readonly){
|
2244
|
-
if(!isFocused){
|
2245
|
-
mouseDownInit();
|
2246
|
-
}
|
2247
|
-
var ret = false;
|
2248
|
-
if (!factor) {
|
2249
|
-
factor = 1;
|
2250
|
-
}
|
2251
|
-
try {
|
2252
|
-
that.elemHelper[name](factor);
|
2253
|
-
|
2254
|
-
ret = that.elemHelper.prop('value');
|
2255
|
-
|
2256
|
-
} catch (er) {
|
2257
|
-
if(!o.value && that.maxAsNumber >= that.minAsNumber){
|
2258
|
-
ret = o.defValue;
|
2259
|
-
}
|
2260
|
-
}
|
2261
|
-
if(ret !== false && o.value != ret){
|
2262
|
-
that.value(ret);
|
2263
|
-
eventTimer.call('input', ret);
|
2264
|
-
}
|
2265
|
-
return ret;
|
2266
|
-
}
|
2267
|
-
};
|
2268
|
-
});
|
2269
|
-
if(!o.noSpinbtn){
|
2270
|
-
spinEvents[$.fn.mwheelIntent ? 'mwheelIntent' : 'mousewheel'] = function(e, delta){
|
2271
|
-
if(delta && isFocused && !o.disabled){
|
2272
|
-
step[delta > 0 ? 'stepUp' : 'stepDown']();
|
2273
|
-
e.preventDefault();
|
2274
|
-
}
|
2275
|
-
};
|
2276
|
-
spinEvents.keydown = function(e){
|
2277
|
-
if(o.list || e.isDefaultPrevented() || (e.altKey && e.keyCode == 40) || $.attr(this, 'list')){return;}
|
2278
|
-
var stepped = true;
|
2279
|
-
var code = e.keyCode;
|
2280
|
-
if (code == 38) {
|
2281
|
-
step.stepUp();
|
2282
|
-
} else if (code == 40) {
|
2283
|
-
step.stepDown();
|
2284
|
-
} else {
|
2285
|
-
stepped = false;
|
2286
|
-
}
|
2287
|
-
if(stepped){
|
2288
|
-
e.preventDefault();
|
2289
|
-
}
|
2290
|
-
};
|
2291
|
-
|
2292
|
-
spinElement.attr({'autocomplete': 'off', role: 'spinbutton'}).on(spinEvents);
|
2293
|
-
}
|
2294
|
-
$(this.buttonWrapper)
|
2295
|
-
.on('mousepressstart mousepressend', '.step-up, .step-down', mousePress)
|
2296
|
-
.on('mousedown mousepress', '.step-up', function(e){
|
2297
|
-
step.stepUp();
|
2298
|
-
})
|
2299
|
-
.on('mousedown mousepress', '.step-down', function(e){
|
2300
|
-
step.stepDown();
|
2301
|
-
})
|
2302
|
-
;
|
2303
|
-
}
|
2304
2047
|
if(this.type != 'color'){
|
2305
2048
|
(function(){
|
2306
2049
|
var localeChange ;
|
@@ -2324,8 +2067,6 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
2324
2067
|
$(that.orig).onWSOff('wslocalechange', localeChange);
|
2325
2068
|
})();
|
2326
2069
|
}
|
2327
|
-
|
2328
|
-
initChangeEvents();
|
2329
2070
|
},
|
2330
2071
|
required: function(val, boolVal){
|
2331
2072
|
this.inputElements.attr({'aria-required': ''+boolVal});
|
@@ -2359,34 +2100,6 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
2359
2100
|
this.element.prop('placeholder', placeholder);
|
2360
2101
|
}
|
2361
2102
|
},
|
2362
|
-
initDataList: function(){
|
2363
|
-
var listTimer;
|
2364
|
-
var that = this;
|
2365
|
-
var updateList = function(){
|
2366
|
-
$(that.orig)
|
2367
|
-
.jProp('list')
|
2368
|
-
.off('updateDatalist', updateList)
|
2369
|
-
.on('updateDatalist', updateList)
|
2370
|
-
;
|
2371
|
-
clearTimeout(listTimer);
|
2372
|
-
listTimer = setTimeout(function(){
|
2373
|
-
if(that.list){
|
2374
|
-
that.list();
|
2375
|
-
}
|
2376
|
-
}, 9);
|
2377
|
-
|
2378
|
-
};
|
2379
|
-
|
2380
|
-
$(this.orig).onTrigger('listdatalistchange', updateList);
|
2381
|
-
},
|
2382
|
-
getOptions: function(){
|
2383
|
-
var options = {};
|
2384
|
-
var datalist = $(this.orig).jProp('list');
|
2385
|
-
datalist.find('option').each(function(){
|
2386
|
-
options[$.prop(this, 'value')] = $.prop(this, 'label');
|
2387
|
-
});
|
2388
|
-
return [options, datalist.data('label')];
|
2389
|
-
},
|
2390
2103
|
list: function(val){
|
2391
2104
|
if(this.type == 'number'){
|
2392
2105
|
this.element.attr('list', $.attr(this.orig, 'list'));
|
@@ -2516,31 +2229,6 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
2516
2229
|
}, 9);
|
2517
2230
|
}
|
2518
2231
|
},
|
2519
|
-
value: function(val, force){
|
2520
|
-
|
2521
|
-
if(!this._init || force || this.options.value !== val){
|
2522
|
-
this.valueAsNumber = this.asNumber(val);
|
2523
|
-
this.options.value = val;
|
2524
|
-
|
2525
|
-
if(isNaN(this.valueAsNumber) || (!isNaN(this.minAsNumber) && this.valueAsNumber < this.minAsNumber) || (!isNaN(this.maxAsNumber) && this.valueAsNumber > this.maxAsNumber)){
|
2526
|
-
this._setStartInRange();
|
2527
|
-
} else {
|
2528
|
-
this.elemHelper.prop('value', val);
|
2529
|
-
this.options.defValue = "";
|
2530
|
-
}
|
2531
|
-
|
2532
|
-
val = formatVal[this.type](val, this.options);
|
2533
|
-
if(this.options.splitInput){
|
2534
|
-
$.each(this.splits, function(i, elem){
|
2535
|
-
$.prop(elem, 'value', val[i]);
|
2536
|
-
});
|
2537
|
-
} else {
|
2538
|
-
this.element.prop('value', val);
|
2539
|
-
}
|
2540
|
-
this._propertyChange('value');
|
2541
|
-
this.mirrorValidity();
|
2542
|
-
}
|
2543
|
-
},
|
2544
2232
|
step: function(val){
|
2545
2233
|
var defStep = steps[this.type];
|
2546
2234
|
this.options.step = val;
|
@@ -2612,6 +2300,8 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
2612
2300
|
});
|
2613
2301
|
};
|
2614
2302
|
|
2303
|
+
$.fn.wsBaseWidget.wsProto = wsWidgetProto;
|
2304
|
+
|
2615
2305
|
$.fn.spinbtnUI = function(opts){
|
2616
2306
|
opts = $.extend({
|
2617
2307
|
monthNames: 'monthNames',
|
@@ -2626,32 +2316,14 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
2626
2316
|
}, opts);
|
2627
2317
|
});
|
2628
2318
|
};
|
2319
|
+
|
2320
|
+
$.fn.spinbtnUI.wsProto = spinBtnProto;
|
2321
|
+
|
2629
2322
|
})();
|
2630
2323
|
|
2631
2324
|
(function(){
|
2632
2325
|
var picker = {};
|
2633
2326
|
|
2634
|
-
var loadPicker = function(type, name){
|
2635
|
-
type = (type == 'color' ? 'color' : 'forms')+'-picker';
|
2636
|
-
if(!loadPicker[name+'Loaded'+type]){
|
2637
|
-
loadPicker[name+'Loaded'+type] = true;
|
2638
|
-
webshims.ready(name, function(){
|
2639
|
-
webshims.loader.loadList([type]);
|
2640
|
-
});
|
2641
|
-
}
|
2642
|
-
return type;
|
2643
|
-
};
|
2644
|
-
options.addZero = addZero;
|
2645
|
-
webshims.loader.addModule('forms-picker', {
|
2646
|
-
noAutoCallback: true,
|
2647
|
-
options: options
|
2648
|
-
});
|
2649
|
-
webshims.loader.addModule('color-picker', {
|
2650
|
-
noAutoCallback: true,
|
2651
|
-
css: 'jpicker/jpicker.css',
|
2652
|
-
options: options
|
2653
|
-
});
|
2654
|
-
|
2655
2327
|
webshims.inlinePopover = {
|
2656
2328
|
_create: function(){
|
2657
2329
|
this.element = $('<div class="ws-inline-picker"><div class="ws-po-box" /></div>').data('wspopover', this);
|
@@ -2695,7 +2367,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
2695
2367
|
cancel: function(val, popover, data){
|
2696
2368
|
if(!data.options.inlinePicker){
|
2697
2369
|
popover.stopOpen = true;
|
2698
|
-
data.element.getShadowFocusElement().focus
|
2370
|
+
data.element.getShadowFocusElement().trigger('focus');
|
2699
2371
|
setTimeout(function(){
|
2700
2372
|
popover.stopOpen = false;
|
2701
2373
|
}, 9);
|
@@ -2784,9 +2456,16 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
2784
2456
|
|
2785
2457
|
picker._common = function(data){
|
2786
2458
|
var options = data.options;
|
2787
|
-
var popover = webshims.objectCreate(options.inlinePicker ? webshims.inlinePopover : webshims.wsPopover, {}, {prepareFor: options.inlinePicker ? data.buttonWrapper : data.element
|
2459
|
+
var popover = webshims.objectCreate(options.inlinePicker ? webshims.inlinePopover : webshims.wsPopover, {}, $.extend(options.popover || {}, {prepareFor: options.inlinePicker ? data.buttonWrapper : data.element}));
|
2788
2460
|
var opener = $('<button type="button" class="ws-popover-opener"><span /></button>').appendTo(data.buttonWrapper);
|
2789
2461
|
|
2462
|
+
if(options.widgetPosition){
|
2463
|
+
webshims.error('options.widgetPosition was removed use options.popover.position instead');
|
2464
|
+
}
|
2465
|
+
|
2466
|
+
if(options.openOnFocus && popover.options && (popover.options.appendTo == 'auto' || popover.options.appendTo == 'element')){
|
2467
|
+
webshims.error('openOnFocus and popover.appendTo "auto/element" can prduce a11y problems try to change appendTo to body or similiar or use openOnMouseFocus instead');
|
2468
|
+
}
|
2790
2469
|
|
2791
2470
|
var showPickerContent = function(){
|
2792
2471
|
(picker[data.type].showPickerContent || picker.showPickerContent)(data, popover);
|
@@ -2938,7 +2617,6 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
2938
2617
|
if(options.inlinePicker){
|
2939
2618
|
show();
|
2940
2619
|
}
|
2941
|
-
loadPicker(data.type, 'WINDOWLOAD');
|
2942
2620
|
};
|
2943
2621
|
|
2944
2622
|
picker.month = picker._common;
|
@@ -2954,7 +2632,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
2954
2632
|
.find('.ws-color-indicator')
|
2955
2633
|
;
|
2956
2634
|
var showColor = function(){
|
2957
|
-
colorIndicator.css({backgroundColor: $.prop(this, 'value') || '#
|
2635
|
+
colorIndicator.css({backgroundColor: $.prop(this, 'value') || '#000000'});
|
2958
2636
|
};
|
2959
2637
|
var showOpacity = (function(){
|
2960
2638
|
var timer;
|
@@ -3111,11 +2789,8 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
3111
2789
|
data = {};
|
3112
2790
|
optsName = type;
|
3113
2791
|
|
3114
|
-
//todo: do we need deep extend?
|
3115
|
-
|
3116
2792
|
labels = $(this).jProp('labels');
|
3117
|
-
|
3118
|
-
opts = $.extend({}, options.widgets, options[type], $($.prop(this, 'form')).data(type) || {}, $(this).data(type) || {}, {
|
2793
|
+
opts = $.extend(webshims.getOptions(this, type, [options.widgets, options[type], $($.prop(this, 'form')).data(type)]), {
|
3119
2794
|
orig: this,
|
3120
2795
|
type: type,
|
3121
2796
|
labels: labels,
|
@@ -3137,7 +2812,6 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
3137
2812
|
containerElements: []
|
3138
2813
|
});
|
3139
2814
|
|
3140
|
-
|
3141
2815
|
for(i = 0; i < copyProps.length; i++){
|
3142
2816
|
opts[copyProps[i]] = $.prop(this, copyProps[i]);
|
3143
2817
|
}
|
@@ -3291,8 +2965,8 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
3291
2965
|
opts.splitInput = false;
|
3292
2966
|
}
|
3293
2967
|
var markup = opts.splitInput ?
|
3294
|
-
'<span class="ws-'+name+' ws-input" role="group"></span>' :
|
3295
|
-
'<input class="ws-'+name+'" type="text" />';
|
2968
|
+
'<span class="ws-'+name+' ws-input ws-inputreplace" role="group"></span>' :
|
2969
|
+
'<input class="ws-'+name+' ws-inputreplace" type="text" />';
|
3296
2970
|
var data = $(markup).insertAfter(opts.orig);
|
3297
2971
|
if(steps[name]){
|
3298
2972
|
data = data.spinbtnUI(opts).data('wsWidget'+name);
|
@@ -3309,13 +2983,20 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
3309
2983
|
}
|
3310
2984
|
});
|
3311
2985
|
|
2986
|
+
var init = function(){
|
2987
|
+
webshims.addReady(function(context, contextElem){
|
2988
|
+
$('input', context)
|
2989
|
+
.add(contextElem.filter('input'))
|
2990
|
+
.each(implementType)
|
2991
|
+
;
|
2992
|
+
});
|
2993
|
+
};
|
2994
|
+
if(formcfg._isLoading){
|
2995
|
+
$(formcfg).one('change', init);
|
2996
|
+
} else {
|
2997
|
+
init();
|
2998
|
+
}
|
3312
2999
|
|
3313
|
-
webshims.addReady(function(context, contextElem){
|
3314
|
-
$('input', context)
|
3315
|
-
.add(contextElem.filter('input'))
|
3316
|
-
.each(implementType)
|
3317
|
-
;
|
3318
|
-
});
|
3319
3000
|
})();
|
3320
3001
|
});
|
3321
3002
|
|