webshims-rails 1.12.0 → 1.12.2
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 +440 -440
- data/vendor/assets/javascripts/webshims/polyfiller.js +132 -91
- data/vendor/assets/javascripts/webshims/shims/combos/10.js +248 -91
- data/vendor/assets/javascripts/webshims/shims/combos/11.js +237 -84
- data/vendor/assets/javascripts/webshims/shims/combos/15.js +21 -8
- data/vendor/assets/javascripts/webshims/shims/combos/16.js +21 -8
- data/vendor/assets/javascripts/webshims/shims/combos/17.js +237 -84
- data/vendor/assets/javascripts/webshims/shims/combos/18.js +237 -84
- data/vendor/assets/javascripts/webshims/shims/combos/19.js +11 -7
- data/vendor/assets/javascripts/webshims/shims/combos/2.js +18 -8
- data/vendor/assets/javascripts/webshims/shims/combos/20.js +11 -7
- data/vendor/assets/javascripts/webshims/shims/combos/21.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/combos/22.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/combos/24.js +9 -6
- data/vendor/assets/javascripts/webshims/shims/combos/25.js +11 -7
- data/vendor/assets/javascripts/webshims/shims/combos/26.js +11 -7
- data/vendor/assets/javascripts/webshims/shims/combos/28.js +10 -1
- data/vendor/assets/javascripts/webshims/shims/combos/3.js +11 -7
- data/vendor/assets/javascripts/webshims/shims/combos/30.js +18 -8
- data/vendor/assets/javascripts/webshims/shims/combos/31.js +18 -8
- data/vendor/assets/javascripts/webshims/shims/combos/32.js +7 -1
- data/vendor/assets/javascripts/webshims/shims/combos/33.js +7 -1
- data/vendor/assets/javascripts/webshims/shims/combos/4.js +11 -7
- data/vendor/assets/javascripts/webshims/shims/combos/5.js +237 -84
- data/vendor/assets/javascripts/webshims/shims/combos/6.js +244 -85
- data/vendor/assets/javascripts/webshims/shims/combos/7.js +18 -8
- data/vendor/assets/javascripts/webshims/shims/combos/8.js +11 -7
- data/vendor/assets/javascripts/webshims/shims/combos/9.js +255 -92
- data/vendor/assets/javascripts/webshims/shims/details.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/dom-extend.js +10 -7
- data/vendor/assets/javascripts/webshims/shims/form-datalist-lazy.js +53 -56
- data/vendor/assets/javascripts/webshims/shims/form-datalist.js +7 -1
- data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +175 -60
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +3 -0
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend2.js +6 -6
- data/vendor/assets/javascripts/webshims/shims/form-validation.js +77 -28
- data/vendor/assets/javascripts/webshims/shims/form-validators.js +24 -16
- data/vendor/assets/javascripts/webshims/shims/forms-picker.js +40 -68
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pl.js +4 -4
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-sv.js +13 -6
- data/vendor/assets/javascripts/webshims/shims/range-ui.js +61 -24
- data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +278 -95
- data/vendor/assets/javascripts/webshims/shims/styles/progress.gif +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/_api-forms-ext.scss +203 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/_api-shim.scss +115 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/_extends.scss +18 -2
- data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-ext.scss +227 -113
- data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +168 -159
- data/vendor/assets/javascripts/webshims/shims/styles/shim.css +106 -69
- metadata +4 -7
- data/vendor/assets/javascripts/webshims/shims/styles/details-arrows.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/polyfill-loader.gif +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/range-track.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/vertical-range.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/swf/localStorage.swf +0 -0
@@ -15,8 +15,7 @@
|
|
15
15
|
_create: function(){
|
16
16
|
var i;
|
17
17
|
|
18
|
-
|
19
|
-
this.element.addClass('ws-range').attr({role: 'slider'}).append('<span class="ws-range-min ws-range-progress" /><span class="ws-range-rail ws-range-track"><span class="ws-range-thumb" /></span>');
|
18
|
+
this.element.addClass('ws-range').attr({role: 'slider'}).append('<span class="ws-range-min ws-range-progress" /><span class="ws-range-rail ws-range-track"><span class="ws-range-thumb"><span data-value="" data-valuetext="" /></span></span>');
|
20
19
|
this.trail = $('.ws-range-track', this.element);
|
21
20
|
this.range = $('.ws-range-progress', this.element);
|
22
21
|
this.thumb = $('.ws-range-thumb', this.trail);
|
@@ -38,7 +37,7 @@
|
|
38
37
|
},
|
39
38
|
value: $.noop,
|
40
39
|
_value: function(val, _noNormalize, animate){
|
41
|
-
var left, posDif
|
40
|
+
var left, posDif;
|
42
41
|
var o = this.options;
|
43
42
|
var oVal = val;
|
44
43
|
var thumbStyle = {};
|
@@ -54,7 +53,7 @@
|
|
54
53
|
left = 100 * ((val - o.min) / (o.max - o.min));
|
55
54
|
|
56
55
|
if(this._init && val == o.value && oVal == val){return;}
|
57
|
-
|
56
|
+
o.value = val;
|
58
57
|
|
59
58
|
if($.fn.stop){
|
60
59
|
this.thumb.stop();
|
@@ -62,6 +61,7 @@
|
|
62
61
|
}
|
63
62
|
|
64
63
|
rangeStyle[this.dirs.width] = left+'%';
|
64
|
+
|
65
65
|
if(this.vertical){
|
66
66
|
left = Math.abs(left - 100);
|
67
67
|
}
|
@@ -88,15 +88,26 @@
|
|
88
88
|
this.options._change(val);
|
89
89
|
}
|
90
90
|
|
91
|
-
|
91
|
+
this._setValueMarkup();
|
92
|
+
},
|
93
|
+
_setValueMarkup: function(){
|
94
|
+
var o = this.options;
|
95
|
+
var textValue = o.textValue ? o.textValue(this.options.value) : o.options[o.value] || o.value;
|
92
96
|
this.element.attr({
|
93
97
|
'aria-valuenow': this.options.value,
|
94
98
|
'aria-valuetext': textValue
|
95
99
|
});
|
96
|
-
this.thumb.attr({
|
100
|
+
$('span', this.thumb).attr({
|
97
101
|
'data-value': this.options.value,
|
98
102
|
'data-valuetext': textValue
|
99
103
|
});
|
104
|
+
if(o.selectedOption){
|
105
|
+
$(o.selectedOption).removeClass('ws-selected-option');
|
106
|
+
o.selectedOption = null;
|
107
|
+
}
|
108
|
+
if(o.value in o.options){
|
109
|
+
o.selectedOption = $('[data-value="'+o.value+'"].ws-range-ticks').addClass('ws-selected-option');
|
110
|
+
}
|
100
111
|
},
|
101
112
|
initDataList: function(){
|
102
113
|
if(this.orig){
|
@@ -139,9 +150,9 @@
|
|
139
150
|
$.each(o.options, function(val, label){
|
140
151
|
if(!isNumber(val) || val < min || val > max){return;}
|
141
152
|
var left = 100 * ((val - min) / (max - min));
|
142
|
-
var attr = '';
|
153
|
+
var attr = 'data-value="'+val+'"';
|
143
154
|
if(label){
|
144
|
-
attr += 'data-label="'+label+'"';
|
155
|
+
attr += ' data-label="'+label+'"';
|
145
156
|
if(o.showLabels){
|
146
157
|
attr += ' title="'+label+'"';
|
147
158
|
}
|
@@ -154,6 +165,9 @@
|
|
154
165
|
$('<span class="ws-range-ticks"'+ attr +' style="'+(that.dirs.left)+': '+left+'%;" />').appendTo(trail)
|
155
166
|
);
|
156
167
|
});
|
168
|
+
if(o.value in o.options){
|
169
|
+
this._setValueMarkup();
|
170
|
+
}
|
157
171
|
},
|
158
172
|
readonly: function(val){
|
159
173
|
val = !!val;
|
@@ -197,12 +211,13 @@
|
|
197
211
|
var step = val == 'any' ? 'any' : retDefault(val, 1);
|
198
212
|
|
199
213
|
if(o.stepping){
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
214
|
+
webshims.error('stepping was removed. Use stepfactor instead.');
|
215
|
+
}
|
216
|
+
|
217
|
+
if(o.stepfactor && step != 'any'){
|
218
|
+
step *= o.stepfactor;
|
205
219
|
}
|
220
|
+
|
206
221
|
o.step = step;
|
207
222
|
this.value(this.options.value);
|
208
223
|
},
|
@@ -240,11 +255,11 @@
|
|
240
255
|
var val, valModStep, alignValue, step;
|
241
256
|
|
242
257
|
if(pos <= 0){
|
243
|
-
val = this.options[this.dirs.min];
|
258
|
+
val = this.options[this.dirs[this.isRtl ? 'max' : 'min']];
|
244
259
|
} else if(pos > 100) {
|
245
|
-
val = this.options[this.dirs.max];
|
260
|
+
val = this.options[this.dirs[this.isRtl ? 'min' : 'max']];
|
246
261
|
} else {
|
247
|
-
if(this.vertical){
|
262
|
+
if(this.vertical || this.isRtl){
|
248
263
|
pos = Math.abs(pos - 100);
|
249
264
|
}
|
250
265
|
val = ((this.options.max - this.options.min) * (pos / 100)) + this.options.min;
|
@@ -329,17 +344,20 @@
|
|
329
344
|
return e;
|
330
345
|
};
|
331
346
|
})();
|
347
|
+
var updateValue = function(val, animate){
|
348
|
+
if(val != o.value){
|
349
|
+
that.value(val, false, animate);
|
350
|
+
eventTimer.call('input', val);
|
351
|
+
}
|
352
|
+
};
|
332
353
|
var setValueFromPos = function(e, animate){
|
333
354
|
if(e.type == 'touchmove'){
|
334
355
|
e.preventDefault();
|
335
356
|
normalizeTouch(e);
|
336
357
|
}
|
337
358
|
|
338
|
-
|
339
|
-
|
340
|
-
that.value(val, false, animate);
|
341
|
-
eventTimer.call('input', val);
|
342
|
-
}
|
359
|
+
updateValue(that.getStepedValueFromPos((e[that.dirs.mouse] - leftOffset) * widgetUnits), animate);
|
360
|
+
|
343
361
|
if(e && e.type == 'mousemove'){
|
344
362
|
e.preventDefault();
|
345
363
|
}
|
@@ -377,7 +395,12 @@
|
|
377
395
|
outerWidth = that.thumb[that.dirs.outerWidth]();
|
378
396
|
leftOffset = leftOffset[that.dirs.pos];
|
379
397
|
widgetUnits = 100 / widgetUnits;
|
380
|
-
|
398
|
+
|
399
|
+
if(e.target.className == 'ws-range-ticks'){
|
400
|
+
updateValue(e.target.getAttribute('data-value'), o.animate);
|
401
|
+
} else {
|
402
|
+
setValueFromPos(e, o.animate);
|
403
|
+
}
|
381
404
|
isActive = true;
|
382
405
|
$(document)
|
383
406
|
.on(e.type == 'touchstart' ?
|
@@ -423,6 +446,13 @@
|
|
423
446
|
var step = true;
|
424
447
|
var code = e.keyCode;
|
425
448
|
if(!o.readonly && !o.disabled){
|
449
|
+
if(that.isRtl){
|
450
|
+
if(code == 39){
|
451
|
+
code = 37;
|
452
|
+
} else if(code == 37){
|
453
|
+
code = 39;
|
454
|
+
}
|
455
|
+
}
|
426
456
|
if (code == 39 || code == 38) {
|
427
457
|
that.doStep(1);
|
428
458
|
} else if (code == 37 || code == 40) {
|
@@ -522,10 +552,17 @@
|
|
522
552
|
{mouse: 'pageY', pos: 'top', min: 'max', max: 'min', left: 'top', right: 'bottom', width: 'height', innerWidth: 'innerHeight', innerHeight: 'innerWidth', outerWidth: 'outerHeight', outerHeight: 'outerWidth', marginTop: 'marginLeft', marginLeft: 'marginTop'} :
|
523
553
|
{mouse: 'pageX', pos: 'left', min: 'min', max: 'max', left: 'left', right: 'right', width: 'width', innerWidth: 'innerWidth', innerHeight: 'innerHeight', outerWidth: 'outerWidth', outerHeight: 'outerHeight', marginTop: 'marginTop', marginLeft: 'marginLeft'}
|
524
554
|
;
|
555
|
+
if(!this.vertical && this.element.css('direction') == 'rtl'){
|
556
|
+
this.isRtl = true;
|
557
|
+
this.dirs.left = 'right';
|
558
|
+
this.dirs.right = 'left';
|
559
|
+
this.dirs.marginLeft = 'marginRight';
|
560
|
+
}
|
525
561
|
this.element
|
526
562
|
[this.vertical ? 'addClass' : 'removeClass']('vertical-range')
|
527
|
-
[this.
|
563
|
+
[this.isRtl ? 'addClass' : 'removeClass']('ws-is-rtl')
|
528
564
|
;
|
565
|
+
this.updateMetrics = this.posCenter;
|
529
566
|
this.posCenter();
|
530
567
|
}
|
531
568
|
};
|
@@ -562,7 +599,8 @@
|
|
562
599
|
if(window.webshims && webshims.isReady){
|
563
600
|
webshims.isReady('range-ui', true);
|
564
601
|
}
|
565
|
-
})(window.webshims ? webshims.$ : jQuery)
|
602
|
+
})(window.webshims ? webshims.$ : jQuery);
|
603
|
+
;webshims.register('form-number-date-ui', function($, webshims, window, document, undefined, options){
|
566
604
|
"use strict";
|
567
605
|
var curCfg;
|
568
606
|
var formcfg = webshims.formcfg;
|
@@ -572,9 +610,9 @@
|
|
572
610
|
e.stopImmediatePropagation();
|
573
611
|
};
|
574
612
|
var getMonthOptions = function(opts){
|
575
|
-
var selectName = 'monthSelect'+opts.
|
613
|
+
var selectName = 'monthSelect'+opts.monthNames;
|
576
614
|
if(!curCfg[selectName]){
|
577
|
-
var labels = curCfg.date[opts.
|
615
|
+
var labels = curCfg.date[opts.monthNames] || monthDigits;
|
578
616
|
curCfg[selectName] = ('<option value=""></option>')+$.map(monthDigits, function(val, i){
|
579
617
|
return '<option value="'+val+'"]>'+labels[i]+'</option>';
|
580
618
|
}).join('');
|
@@ -599,13 +637,39 @@
|
|
599
637
|
curCfg.patterns[name+'Obj'] = obj;
|
600
638
|
}
|
601
639
|
};
|
640
|
+
var createYearSelect = function(obj, opts){
|
641
|
+
var options, nowY, max, min;
|
642
|
+
if(opts.yearSelect){
|
643
|
+
nowY = parseInt(opts.value.split('-')[0], 10);
|
644
|
+
max = opts.max.split('-');
|
645
|
+
min = opts.min.split('-');
|
646
|
+
options = webshims.picker.createYearSelect(nowY || parseInt(min[0], 10) || parseInt(max[0], 10) || nowYear, max, min);
|
647
|
+
options.unshift('<option />');
|
648
|
+
$(obj.elements)
|
649
|
+
.filter('select.yy')
|
650
|
+
.html(options.join(''))
|
651
|
+
.each(function(){
|
652
|
+
if(!nowY){
|
653
|
+
$('option[selected]', this).removeAttr('selected');
|
654
|
+
$(this).val();
|
655
|
+
}
|
656
|
+
})
|
657
|
+
;
|
658
|
+
}
|
659
|
+
};
|
602
660
|
var splitInputs = {
|
603
661
|
date: {
|
604
662
|
_create: function(opts){
|
605
663
|
var obj = {
|
606
|
-
splits: [
|
664
|
+
splits: []
|
607
665
|
};
|
608
666
|
|
667
|
+
if(opts.yearSelect){
|
668
|
+
obj.splits.push($('<select class="yy"></select>')[0]);
|
669
|
+
} else {
|
670
|
+
obj.splits.push($('<input type="text" class="yy" size="4" inputmode="numeric" maxlength="4" />')[0]);
|
671
|
+
}
|
672
|
+
|
609
673
|
if(opts.monthSelect){
|
610
674
|
obj.splits.push($('<select class="mm">'+getMonthOptions(opts)+'</select>')[0]);
|
611
675
|
} else {
|
@@ -618,6 +682,7 @@
|
|
618
682
|
}
|
619
683
|
|
620
684
|
obj.elements = [obj.splits[0], $('<span class="ws-input-seperator" />')[0], obj.splits[1], $('<span class="ws-input-seperator" />')[0], obj.splits[2]];
|
685
|
+
createYearSelect(obj, opts);
|
621
686
|
return obj;
|
622
687
|
},
|
623
688
|
sort: function(element){
|
@@ -642,8 +707,15 @@
|
|
642
707
|
_create: function(opts){
|
643
708
|
|
644
709
|
var obj = {
|
645
|
-
splits: [
|
710
|
+
splits: []
|
646
711
|
};
|
712
|
+
|
713
|
+
if(opts.yearSelect){
|
714
|
+
obj.splits.push($('<select class="yy"></select>')[0]);
|
715
|
+
} else {
|
716
|
+
obj.splits.push($('<input type="text" class="yy" size="4" inputmode="numeric" maxlength="4" />')[0]);
|
717
|
+
}
|
718
|
+
|
647
719
|
if(opts.monthSelect){
|
648
720
|
obj.splits.push($('<select class="mm">'+getMonthOptions(opts)+'</select>')[0]);
|
649
721
|
} else {
|
@@ -654,6 +726,7 @@
|
|
654
726
|
}
|
655
727
|
|
656
728
|
obj.elements = [obj.splits[0], $('<span class="ws-input-seperator" />')[0], obj.splits[1]];
|
729
|
+
createYearSelect(obj, opts);
|
657
730
|
return obj;
|
658
731
|
},
|
659
732
|
sort: function(element){
|
@@ -673,7 +746,8 @@
|
|
673
746
|
};
|
674
747
|
|
675
748
|
var nowDate = new Date(new Date().getTime() - (new Date().getTimezoneOffset() * 60 * 1000 ));
|
676
|
-
|
749
|
+
var nowYear = nowDate.getFullYear();
|
750
|
+
nowDate = new Date(nowDate.getFullYear(), nowDate.getMonth(), nowDate.getDate(), nowDate.getHours()).getTime();
|
677
751
|
var steps = {
|
678
752
|
number: {
|
679
753
|
step: 1
|
@@ -883,9 +957,6 @@
|
|
883
957
|
$(document).triggerHandler('wslocalechange');
|
884
958
|
};
|
885
959
|
|
886
|
-
|
887
|
-
|
888
|
-
|
889
960
|
curCfg = webshims.activeLang(formcfg);
|
890
961
|
|
891
962
|
triggerLocaleChange();
|
@@ -910,7 +981,7 @@
|
|
910
981
|
|
911
982
|
|
912
983
|
var formatVal = {
|
913
|
-
number: function(val){
|
984
|
+
number: function(val, o){
|
914
985
|
return (val+'').replace(/\,/g, '').replace(/\./, curCfg.numberFormat['.']);
|
915
986
|
},
|
916
987
|
time: function(val){
|
@@ -947,7 +1018,7 @@
|
|
947
1018
|
var names;
|
948
1019
|
var p = val.split('-');
|
949
1020
|
if(p[0] && p[1]){
|
950
|
-
names = curCfg.date[options.
|
1021
|
+
names = curCfg.date[options.monthNames] || curCfg.date.monthNames;
|
951
1022
|
p[1] = names[(p[1] * 1) - 1];
|
952
1023
|
if(options && options.splitInput){
|
953
1024
|
val = [p[0] || '', p[1] || ''];
|
@@ -1268,7 +1339,15 @@
|
|
1268
1339
|
})
|
1269
1340
|
.on({
|
1270
1341
|
'change input focus focusin blur focusout': function(e){
|
1342
|
+
var oVal, nVal;
|
1271
1343
|
$(e.target).trigger('ws__'+e.type);
|
1344
|
+
if(o.toFixed && o.type == 'number' && e.type == 'change'){
|
1345
|
+
oVal = that.element.prop('value');
|
1346
|
+
nVal = that.toFixed(oVal, true);
|
1347
|
+
if(oVal != nVal){
|
1348
|
+
that.element[0].value = nVal;
|
1349
|
+
}
|
1350
|
+
}
|
1272
1351
|
}
|
1273
1352
|
})
|
1274
1353
|
|
@@ -1417,11 +1496,14 @@
|
|
1417
1496
|
this.inputElements.attr('inputmode', 'numeric');
|
1418
1497
|
}
|
1419
1498
|
|
1420
|
-
|
1421
|
-
|
1422
1499
|
if((!o.max && typeof o.relMax == 'number') || (!o.min && typeof o.relMin == 'number')){
|
1423
|
-
webshims.error('relMax/relMin are not supported anymore')
|
1500
|
+
webshims.error('relMax/relMin are not supported anymore calculate at set it your own.');
|
1424
1501
|
}
|
1502
|
+
|
1503
|
+
if(this.options.relDefaultValue){
|
1504
|
+
webshims.warn('relDefaultValue was removed use startValue instead!');
|
1505
|
+
}
|
1506
|
+
|
1425
1507
|
this._init = true;
|
1426
1508
|
},
|
1427
1509
|
createOpts: ['step', 'min', 'max', 'readonly', 'title', 'disabled', 'tabindex', 'placeholder', 'defaultValue', 'value', 'required'],
|
@@ -1432,17 +1514,9 @@
|
|
1432
1514
|
this.inputElements = $(create.elements).prependTo(this.element).filter('input, select');
|
1433
1515
|
}
|
1434
1516
|
},
|
1435
|
-
|
1436
|
-
getRelNumber: function(rel){
|
1437
|
-
var start = steps[this.type].start || 0;
|
1438
|
-
if(rel){
|
1439
|
-
start += rel;
|
1440
|
-
}
|
1441
|
-
return start;
|
1442
|
-
},
|
1443
1517
|
addZero: addZero,
|
1444
1518
|
_setStartInRange: function(){
|
1445
|
-
var start = this.
|
1519
|
+
var start = this.options.startValue && this.asNumber( this.options.startValue ) || steps[this.type].start || 0;
|
1446
1520
|
if(!isNaN(this.minAsNumber) && start < this.minAsNumber){
|
1447
1521
|
start = this.minAsNumber;
|
1448
1522
|
} else if(!isNaN(this.maxAsNumber) && start > this.maxAsNumber){
|
@@ -1454,7 +1528,7 @@
|
|
1454
1528
|
},
|
1455
1529
|
reorderInputs: function(){
|
1456
1530
|
if(splitInputs[this.type]){
|
1457
|
-
var element = this.element;
|
1531
|
+
var element = this.element.attr('dir', curCfg.date.isRTL ? 'rtl' : 'ltr');
|
1458
1532
|
splitInputs[this.type].sort(element, this.options);
|
1459
1533
|
setTimeout(function(){
|
1460
1534
|
var data = webshims.data(element);
|
@@ -1480,6 +1554,13 @@
|
|
1480
1554
|
this.elemHelper.prop('value', val);
|
1481
1555
|
this.options.defValue = "";
|
1482
1556
|
}
|
1557
|
+
},
|
1558
|
+
toFixed: function(val, force){
|
1559
|
+
var o = this.options;
|
1560
|
+
if(o.toFixed && o.type == 'number' && val && this.valueAsNumber && (force || !this.element.is(':focus')) && (!o.fixOnlyFloat || (this.valueAsNumber % 1)) && !$(this.orig).is(':invalid')){
|
1561
|
+
val = formatVal[this.type](this.valueAsNumber.toFixed(o.toFixed), this.options);
|
1562
|
+
}
|
1563
|
+
return val;
|
1483
1564
|
}
|
1484
1565
|
});
|
1485
1566
|
|
@@ -1492,7 +1573,7 @@
|
|
1492
1573
|
} else {
|
1493
1574
|
this.elemHelper.prop(name, val);
|
1494
1575
|
}
|
1495
|
-
|
1576
|
+
|
1496
1577
|
val = formatVal[this.type](val, this.options);
|
1497
1578
|
if(this.options.splitInput){
|
1498
1579
|
$.each(this.splits, function(i, elem){
|
@@ -1504,7 +1585,7 @@
|
|
1504
1585
|
}
|
1505
1586
|
});
|
1506
1587
|
} else {
|
1507
|
-
this.element.prop(name, val);
|
1588
|
+
this.element.prop(name, this.toFixed(val));
|
1508
1589
|
}
|
1509
1590
|
this._propertyChange(name);
|
1510
1591
|
this.mirrorValidity();
|
@@ -1521,6 +1602,9 @@
|
|
1521
1602
|
this._setStartInRange();
|
1522
1603
|
}
|
1523
1604
|
this.options[name] = val;
|
1605
|
+
if(this._init){
|
1606
|
+
createYearSelect({elements: this.inputElements}, this.options);
|
1607
|
+
}
|
1524
1608
|
this._propertyChange(name);
|
1525
1609
|
this.mirrorValidity();
|
1526
1610
|
};
|
@@ -1541,7 +1625,7 @@
|
|
1541
1625
|
|
1542
1626
|
$.fn.spinbtnUI = function(opts){
|
1543
1627
|
opts = $.extend({
|
1544
|
-
monthNames: '
|
1628
|
+
monthNames: 'monthNamesShort'
|
1545
1629
|
}, opts);
|
1546
1630
|
return this.each(function(){
|
1547
1631
|
$.webshims.objectCreate(spinBtnProto, {
|
@@ -1571,6 +1655,53 @@
|
|
1571
1655
|
isVisible: true
|
1572
1656
|
};
|
1573
1657
|
|
1658
|
+
picker.isInRange = function(value, max, min){
|
1659
|
+
return !((min[0] && min[0] > value[0]) || (max[0] && max[0] < value[0]));
|
1660
|
+
};
|
1661
|
+
|
1662
|
+
|
1663
|
+
picker.createYearSelect = function(value, max, min, valueAdd, stepper){
|
1664
|
+
if(!stepper){
|
1665
|
+
stepper = {start: value, step: 1, label: value};
|
1666
|
+
}
|
1667
|
+
var temp;
|
1668
|
+
var goUp = true;
|
1669
|
+
var goDown = true;
|
1670
|
+
var options = ['<option selected="">'+ stepper.label + '</option>'];
|
1671
|
+
var i = 0;
|
1672
|
+
var createOption = function(value, add){
|
1673
|
+
var value2, label;
|
1674
|
+
if(stepper.step > 1){
|
1675
|
+
value2 = value + stepper.step - 1;
|
1676
|
+
label = value+' – '+value2;
|
1677
|
+
} else {
|
1678
|
+
label = value;
|
1679
|
+
}
|
1680
|
+
|
1681
|
+
if(picker.isInRange([value], max, min) || (value2 && picker.isInRange([value2], max, min))){
|
1682
|
+
options[add]('<option value="'+ (value+valueAdd) +'">'+ label +'</option>');
|
1683
|
+
return true;
|
1684
|
+
}
|
1685
|
+
};
|
1686
|
+
if(!valueAdd){
|
1687
|
+
valueAdd = '';
|
1688
|
+
}
|
1689
|
+
while(i < 18 && (goUp || goDown)){
|
1690
|
+
i++;
|
1691
|
+
if(goUp){
|
1692
|
+
temp = stepper.start - (i * stepper.step);
|
1693
|
+
goUp = createOption(temp, 'unshift');
|
1694
|
+
}
|
1695
|
+
if(goDown){
|
1696
|
+
temp = stepper.start + (i * stepper.step);
|
1697
|
+
goDown = createOption(temp, 'push');
|
1698
|
+
}
|
1699
|
+
|
1700
|
+
}
|
1701
|
+
|
1702
|
+
return options;
|
1703
|
+
};
|
1704
|
+
|
1574
1705
|
picker._genericSetFocus = function(element, _noFocus){
|
1575
1706
|
element = $(element || this.activeButton);
|
1576
1707
|
|
@@ -1580,12 +1711,12 @@
|
|
1580
1711
|
clearTimeout(that.timer);
|
1581
1712
|
that.timer = setTimeout(function(){
|
1582
1713
|
if(element[0]){
|
1583
|
-
element
|
1714
|
+
element.trigger('focus');
|
1584
1715
|
if(noTrigger !== true && !element.is(':focus')){
|
1585
1716
|
setFocus(true);
|
1586
1717
|
}
|
1587
1718
|
}
|
1588
|
-
}, that.popover.isVisible ?
|
1719
|
+
}, that.popover.isVisible ? 0 : 360);
|
1589
1720
|
};
|
1590
1721
|
this.popover.activateElement(element);
|
1591
1722
|
setFocus();
|
@@ -1798,7 +1929,7 @@
|
|
1798
1929
|
popover.preventBlur();
|
1799
1930
|
}
|
1800
1931
|
},
|
1801
|
-
mousedown: function(){
|
1932
|
+
mousedown: function(e){
|
1802
1933
|
mouseFocus = true;
|
1803
1934
|
setTimeout(resetMouseFocus, 9);
|
1804
1935
|
if(options.buttonOnly && popover.isVisible && popover.activeElement){
|
@@ -1956,31 +2087,41 @@
|
|
1956
2087
|
var updateStyles = function(){
|
1957
2088
|
$(data.orig).removeClass('ws-important-hide');
|
1958
2089
|
$.style( data.orig, 'display', '' );
|
1959
|
-
var hasButtons, marginR, marginL;
|
2090
|
+
var hasButtons, marginR, marginL, left, right, isRtl;
|
1960
2091
|
var correctWidth = 0.8;
|
1961
2092
|
if(!init || data.orig.offsetWidth){
|
1962
2093
|
hasButtons = data.buttonWrapper && data.buttonWrapper.filter(isVisible).length;
|
1963
|
-
|
1964
|
-
data.
|
1965
|
-
|
1966
|
-
|
1967
|
-
|
2094
|
+
|
2095
|
+
isRtl = hasButtons && data.buttonWrapper.css('direction') == 'rtl';
|
2096
|
+
if(isRtl){
|
2097
|
+
left = 'Right';
|
2098
|
+
right = 'Left';
|
2099
|
+
} else {
|
2100
|
+
left = 'Left';
|
2101
|
+
right = 'Right';
|
2102
|
+
}
|
2103
|
+
|
2104
|
+
marginR = $.css( data.orig, 'margin'+right);
|
2105
|
+
|
2106
|
+
data.element
|
2107
|
+
.css('margin'+left, $.css( data.orig, 'margin'+left))
|
2108
|
+
.css('margin'+right, hasButtons ? 0 : marginR)
|
2109
|
+
;
|
1968
2110
|
|
1969
2111
|
if(hasButtons){
|
1970
|
-
|
1971
|
-
data.
|
2112
|
+
data.buttonWrapper[isRtl ? 'addClass' : 'removeClass']('ws-is-rtl');
|
2113
|
+
marginL = (parseInt(data.buttonWrapper.css('margin'+left), 10) || 0);
|
2114
|
+
data.element.css('padding'+right, '');
|
1972
2115
|
|
1973
2116
|
if(marginL < 0){
|
1974
2117
|
marginR = (parseInt(marginR, 10) || 0) + ((data.buttonWrapper.outerWidth() + marginL) * -1);
|
1975
|
-
data.buttonWrapper.css('
|
2118
|
+
data.buttonWrapper.css('margin'+right, marginR);
|
1976
2119
|
data.element
|
1977
|
-
.css(
|
1978
|
-
.css(
|
1979
|
-
paddingRight: (parseInt( data.element.css('paddingRight'), 10) || 0) + data.buttonWrapper.outerWidth()
|
1980
|
-
})
|
2120
|
+
.css('padding'+right, '')
|
2121
|
+
.css('padding'+right, (parseInt( data.element.css('padding'+right), 10) || 0) + data.buttonWrapper.outerWidth())
|
1981
2122
|
;
|
1982
2123
|
} else {
|
1983
|
-
data.buttonWrapper.css('
|
2124
|
+
data.buttonWrapper.css('margin'+right, marginR);
|
1984
2125
|
correctWidth = data.buttonWrapper.outerWidth(true) + correctWidth;
|
1985
2126
|
}
|
1986
2127
|
}
|
@@ -1998,7 +2139,7 @@
|
|
1998
2139
|
|
1999
2140
|
var type = $.prop(this, 'type');
|
2000
2141
|
|
2001
|
-
var i, opts, data, optsName, labels;
|
2142
|
+
var i, opts, data, optsName, labels, cNames;
|
2002
2143
|
if(inputTypes[type] && webshims.implement(this, 'inputwidgets')){
|
2003
2144
|
data = {};
|
2004
2145
|
optsName = type;
|
@@ -2036,17 +2177,38 @@
|
|
2036
2177
|
opts[optsName] = $.attr(this, copyAttrs[i]) || opts[optsName];
|
2037
2178
|
}
|
2038
2179
|
}
|
2039
|
-
|
2040
|
-
|
2041
|
-
|
2180
|
+
if(opts.formatMonthNames){
|
2181
|
+
webshims.error('formatMonthNames was renamded to monthNames');
|
2182
|
+
}
|
2183
|
+
if(opts.onlyMonthDigits){
|
2184
|
+
opts.monthNames = 'monthDigits';
|
2042
2185
|
}
|
2043
2186
|
data.shim = inputTypes[type]._create(opts);
|
2044
|
-
|
2187
|
+
|
2045
2188
|
webshims.addShadowDom(this, data.shim.element, {
|
2046
2189
|
data: data.shim || {}
|
2047
2190
|
});
|
2048
2191
|
|
2049
2192
|
data.shim.options.containerElements.push(data.shim.element[0]);
|
2193
|
+
cNames = $.prop(this, 'className');
|
2194
|
+
if(opts.classes){
|
2195
|
+
cNames += ' '+opts.classes;
|
2196
|
+
}
|
2197
|
+
|
2198
|
+
if(opts.splitInput || type == 'range'){
|
2199
|
+
cNames = cNames.replace('form-control', '');
|
2200
|
+
}
|
2201
|
+
|
2202
|
+
data.shim.element.on('change input', stopPropagation).addClass(cNames);
|
2203
|
+
|
2204
|
+
if(data.shim.buttonWrapper){
|
2205
|
+
|
2206
|
+
data.shim.buttonWrapper.addClass('input-button-size-'+(data.shim.buttonWrapper.children().filter(isVisible).length));
|
2207
|
+
|
2208
|
+
if(data.shim.buttonWrapper.filter(isVisible).length){
|
2209
|
+
data.shim.element.addClass('has-input-buttons');
|
2210
|
+
}
|
2211
|
+
}
|
2050
2212
|
|
2051
2213
|
labelWidth($(this).getShadowFocusElement(), labels);
|
2052
2214
|
|
@@ -2078,14 +2240,13 @@
|
|
2078
2240
|
$(opts.orig).trigger(hasFocus ? 'focusin' : 'focusout');
|
2079
2241
|
}
|
2080
2242
|
hasFocusTriggered = hasFocus;
|
2081
|
-
},
|
2243
|
+
}, 9);
|
2082
2244
|
}
|
2083
2245
|
})
|
2084
2246
|
;
|
2085
2247
|
})();
|
2086
|
-
|
2087
2248
|
|
2088
|
-
|
2249
|
+
|
2089
2250
|
|
2090
2251
|
if(hasFormValidation){
|
2091
2252
|
$(opts.orig).on('firstinvalid', function(e){
|
@@ -2101,13 +2262,6 @@
|
|
2101
2262
|
});
|
2102
2263
|
}
|
2103
2264
|
|
2104
|
-
|
2105
|
-
if(data.shim.buttonWrapper && data.shim.buttonWrapper.filter(isVisible).length){
|
2106
|
-
data.shim.element.addClass('has-input-buttons');
|
2107
|
-
}
|
2108
|
-
|
2109
|
-
data.shim.element.addClass($.prop(this, 'className'));
|
2110
|
-
|
2111
2265
|
if(opts.calculateWidth){
|
2112
2266
|
sizeInput(data.shim);
|
2113
2267
|
} else {
|
@@ -2169,7 +2323,7 @@
|
|
2169
2323
|
if(!modernizrInputTypes[name] || replace[name]){
|
2170
2324
|
extendType(name, {
|
2171
2325
|
_create: function(opts, set){
|
2172
|
-
if(opts.monthSelect || opts.daySelect){
|
2326
|
+
if(opts.monthSelect || opts.daySelect || opts.yearSelect){
|
2173
2327
|
opts.splitInput = true;
|
2174
2328
|
}
|
2175
2329
|
if(opts.splitInput && !splitInputs[name]){
|
@@ -2188,7 +2342,6 @@
|
|
2188
2342
|
if(webshims.picker && webshims.picker[name]){
|
2189
2343
|
webshims.picker[name](data);
|
2190
2344
|
}
|
2191
|
-
data.buttonWrapper.addClass('input-button-size-'+(data.buttonWrapper.children().filter(isVisible).length));
|
2192
2345
|
return data;
|
2193
2346
|
}
|
2194
2347
|
});
|