webshims-rails 1.12.0 → 1.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
@@ -2066,8 +2066,7 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
2066
2066
|
_create: function(){
|
2067
2067
|
var i;
|
2068
2068
|
|
2069
|
-
|
2070
|
-
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>');
|
2069
|
+
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>');
|
2071
2070
|
this.trail = $('.ws-range-track', this.element);
|
2072
2071
|
this.range = $('.ws-range-progress', this.element);
|
2073
2072
|
this.thumb = $('.ws-range-thumb', this.trail);
|
@@ -2089,7 +2088,7 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
2089
2088
|
},
|
2090
2089
|
value: $.noop,
|
2091
2090
|
_value: function(val, _noNormalize, animate){
|
2092
|
-
var left, posDif
|
2091
|
+
var left, posDif;
|
2093
2092
|
var o = this.options;
|
2094
2093
|
var oVal = val;
|
2095
2094
|
var thumbStyle = {};
|
@@ -2105,7 +2104,7 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
2105
2104
|
left = 100 * ((val - o.min) / (o.max - o.min));
|
2106
2105
|
|
2107
2106
|
if(this._init && val == o.value && oVal == val){return;}
|
2108
|
-
|
2107
|
+
o.value = val;
|
2109
2108
|
|
2110
2109
|
if($.fn.stop){
|
2111
2110
|
this.thumb.stop();
|
@@ -2113,6 +2112,7 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
2113
2112
|
}
|
2114
2113
|
|
2115
2114
|
rangeStyle[this.dirs.width] = left+'%';
|
2115
|
+
|
2116
2116
|
if(this.vertical){
|
2117
2117
|
left = Math.abs(left - 100);
|
2118
2118
|
}
|
@@ -2139,15 +2139,26 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
2139
2139
|
this.options._change(val);
|
2140
2140
|
}
|
2141
2141
|
|
2142
|
-
|
2142
|
+
this._setValueMarkup();
|
2143
|
+
},
|
2144
|
+
_setValueMarkup: function(){
|
2145
|
+
var o = this.options;
|
2146
|
+
var textValue = o.textValue ? o.textValue(this.options.value) : o.options[o.value] || o.value;
|
2143
2147
|
this.element.attr({
|
2144
2148
|
'aria-valuenow': this.options.value,
|
2145
2149
|
'aria-valuetext': textValue
|
2146
2150
|
});
|
2147
|
-
this.thumb.attr({
|
2151
|
+
$('span', this.thumb).attr({
|
2148
2152
|
'data-value': this.options.value,
|
2149
2153
|
'data-valuetext': textValue
|
2150
2154
|
});
|
2155
|
+
if(o.selectedOption){
|
2156
|
+
$(o.selectedOption).removeClass('ws-selected-option');
|
2157
|
+
o.selectedOption = null;
|
2158
|
+
}
|
2159
|
+
if(o.value in o.options){
|
2160
|
+
o.selectedOption = $('[data-value="'+o.value+'"].ws-range-ticks').addClass('ws-selected-option');
|
2161
|
+
}
|
2151
2162
|
},
|
2152
2163
|
initDataList: function(){
|
2153
2164
|
if(this.orig){
|
@@ -2190,9 +2201,9 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
2190
2201
|
$.each(o.options, function(val, label){
|
2191
2202
|
if(!isNumber(val) || val < min || val > max){return;}
|
2192
2203
|
var left = 100 * ((val - min) / (max - min));
|
2193
|
-
var attr = '';
|
2204
|
+
var attr = 'data-value="'+val+'"';
|
2194
2205
|
if(label){
|
2195
|
-
attr += 'data-label="'+label+'"';
|
2206
|
+
attr += ' data-label="'+label+'"';
|
2196
2207
|
if(o.showLabels){
|
2197
2208
|
attr += ' title="'+label+'"';
|
2198
2209
|
}
|
@@ -2205,6 +2216,9 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
2205
2216
|
$('<span class="ws-range-ticks"'+ attr +' style="'+(that.dirs.left)+': '+left+'%;" />').appendTo(trail)
|
2206
2217
|
);
|
2207
2218
|
});
|
2219
|
+
if(o.value in o.options){
|
2220
|
+
this._setValueMarkup();
|
2221
|
+
}
|
2208
2222
|
},
|
2209
2223
|
readonly: function(val){
|
2210
2224
|
val = !!val;
|
@@ -2248,12 +2262,13 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
2248
2262
|
var step = val == 'any' ? 'any' : retDefault(val, 1);
|
2249
2263
|
|
2250
2264
|
if(o.stepping){
|
2251
|
-
|
2252
|
-
|
2253
|
-
|
2254
|
-
|
2255
|
-
|
2265
|
+
webshims.error('stepping was removed. Use stepfactor instead.');
|
2266
|
+
}
|
2267
|
+
|
2268
|
+
if(o.stepfactor && step != 'any'){
|
2269
|
+
step *= o.stepfactor;
|
2256
2270
|
}
|
2271
|
+
|
2257
2272
|
o.step = step;
|
2258
2273
|
this.value(this.options.value);
|
2259
2274
|
},
|
@@ -2291,11 +2306,11 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
2291
2306
|
var val, valModStep, alignValue, step;
|
2292
2307
|
|
2293
2308
|
if(pos <= 0){
|
2294
|
-
val = this.options[this.dirs.min];
|
2309
|
+
val = this.options[this.dirs[this.isRtl ? 'max' : 'min']];
|
2295
2310
|
} else if(pos > 100) {
|
2296
|
-
val = this.options[this.dirs.max];
|
2311
|
+
val = this.options[this.dirs[this.isRtl ? 'min' : 'max']];
|
2297
2312
|
} else {
|
2298
|
-
if(this.vertical){
|
2313
|
+
if(this.vertical || this.isRtl){
|
2299
2314
|
pos = Math.abs(pos - 100);
|
2300
2315
|
}
|
2301
2316
|
val = ((this.options.max - this.options.min) * (pos / 100)) + this.options.min;
|
@@ -2380,17 +2395,20 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
2380
2395
|
return e;
|
2381
2396
|
};
|
2382
2397
|
})();
|
2398
|
+
var updateValue = function(val, animate){
|
2399
|
+
if(val != o.value){
|
2400
|
+
that.value(val, false, animate);
|
2401
|
+
eventTimer.call('input', val);
|
2402
|
+
}
|
2403
|
+
};
|
2383
2404
|
var setValueFromPos = function(e, animate){
|
2384
2405
|
if(e.type == 'touchmove'){
|
2385
2406
|
e.preventDefault();
|
2386
2407
|
normalizeTouch(e);
|
2387
2408
|
}
|
2388
2409
|
|
2389
|
-
|
2390
|
-
|
2391
|
-
that.value(val, false, animate);
|
2392
|
-
eventTimer.call('input', val);
|
2393
|
-
}
|
2410
|
+
updateValue(that.getStepedValueFromPos((e[that.dirs.mouse] - leftOffset) * widgetUnits), animate);
|
2411
|
+
|
2394
2412
|
if(e && e.type == 'mousemove'){
|
2395
2413
|
e.preventDefault();
|
2396
2414
|
}
|
@@ -2428,7 +2446,12 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
2428
2446
|
outerWidth = that.thumb[that.dirs.outerWidth]();
|
2429
2447
|
leftOffset = leftOffset[that.dirs.pos];
|
2430
2448
|
widgetUnits = 100 / widgetUnits;
|
2431
|
-
|
2449
|
+
|
2450
|
+
if(e.target.className == 'ws-range-ticks'){
|
2451
|
+
updateValue(e.target.getAttribute('data-value'), o.animate);
|
2452
|
+
} else {
|
2453
|
+
setValueFromPos(e, o.animate);
|
2454
|
+
}
|
2432
2455
|
isActive = true;
|
2433
2456
|
$(document)
|
2434
2457
|
.on(e.type == 'touchstart' ?
|
@@ -2474,6 +2497,13 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
2474
2497
|
var step = true;
|
2475
2498
|
var code = e.keyCode;
|
2476
2499
|
if(!o.readonly && !o.disabled){
|
2500
|
+
if(that.isRtl){
|
2501
|
+
if(code == 39){
|
2502
|
+
code = 37;
|
2503
|
+
} else if(code == 37){
|
2504
|
+
code = 39;
|
2505
|
+
}
|
2506
|
+
}
|
2477
2507
|
if (code == 39 || code == 38) {
|
2478
2508
|
that.doStep(1);
|
2479
2509
|
} else if (code == 37 || code == 40) {
|
@@ -2573,10 +2603,17 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
2573
2603
|
{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'} :
|
2574
2604
|
{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'}
|
2575
2605
|
;
|
2606
|
+
if(!this.vertical && this.element.css('direction') == 'rtl'){
|
2607
|
+
this.isRtl = true;
|
2608
|
+
this.dirs.left = 'right';
|
2609
|
+
this.dirs.right = 'left';
|
2610
|
+
this.dirs.marginLeft = 'marginRight';
|
2611
|
+
}
|
2576
2612
|
this.element
|
2577
2613
|
[this.vertical ? 'addClass' : 'removeClass']('vertical-range')
|
2578
|
-
[this.
|
2614
|
+
[this.isRtl ? 'addClass' : 'removeClass']('ws-is-rtl')
|
2579
2615
|
;
|
2616
|
+
this.updateMetrics = this.posCenter;
|
2580
2617
|
this.posCenter();
|
2581
2618
|
}
|
2582
2619
|
};
|
@@ -2613,7 +2650,8 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
2613
2650
|
if(window.webshims && webshims.isReady){
|
2614
2651
|
webshims.isReady('range-ui', true);
|
2615
2652
|
}
|
2616
|
-
})(window.webshims ? webshims.$ : jQuery)
|
2653
|
+
})(window.webshims ? webshims.$ : jQuery);
|
2654
|
+
;webshims.register('form-number-date-ui', function($, webshims, window, document, undefined, options){
|
2617
2655
|
"use strict";
|
2618
2656
|
var curCfg;
|
2619
2657
|
var formcfg = webshims.formcfg;
|
@@ -2623,9 +2661,9 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
2623
2661
|
e.stopImmediatePropagation();
|
2624
2662
|
};
|
2625
2663
|
var getMonthOptions = function(opts){
|
2626
|
-
var selectName = 'monthSelect'+opts.
|
2664
|
+
var selectName = 'monthSelect'+opts.monthNames;
|
2627
2665
|
if(!curCfg[selectName]){
|
2628
|
-
var labels = curCfg.date[opts.
|
2666
|
+
var labels = curCfg.date[opts.monthNames] || monthDigits;
|
2629
2667
|
curCfg[selectName] = ('<option value=""></option>')+$.map(monthDigits, function(val, i){
|
2630
2668
|
return '<option value="'+val+'"]>'+labels[i]+'</option>';
|
2631
2669
|
}).join('');
|
@@ -2650,13 +2688,39 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
2650
2688
|
curCfg.patterns[name+'Obj'] = obj;
|
2651
2689
|
}
|
2652
2690
|
};
|
2691
|
+
var createYearSelect = function(obj, opts){
|
2692
|
+
var options, nowY, max, min;
|
2693
|
+
if(opts.yearSelect){
|
2694
|
+
nowY = parseInt(opts.value.split('-')[0], 10);
|
2695
|
+
max = opts.max.split('-');
|
2696
|
+
min = opts.min.split('-');
|
2697
|
+
options = webshims.picker.createYearSelect(nowY || parseInt(min[0], 10) || parseInt(max[0], 10) || nowYear, max, min);
|
2698
|
+
options.unshift('<option />');
|
2699
|
+
$(obj.elements)
|
2700
|
+
.filter('select.yy')
|
2701
|
+
.html(options.join(''))
|
2702
|
+
.each(function(){
|
2703
|
+
if(!nowY){
|
2704
|
+
$('option[selected]', this).removeAttr('selected');
|
2705
|
+
$(this).val();
|
2706
|
+
}
|
2707
|
+
})
|
2708
|
+
;
|
2709
|
+
}
|
2710
|
+
};
|
2653
2711
|
var splitInputs = {
|
2654
2712
|
date: {
|
2655
2713
|
_create: function(opts){
|
2656
2714
|
var obj = {
|
2657
|
-
splits: [
|
2715
|
+
splits: []
|
2658
2716
|
};
|
2659
2717
|
|
2718
|
+
if(opts.yearSelect){
|
2719
|
+
obj.splits.push($('<select class="yy"></select>')[0]);
|
2720
|
+
} else {
|
2721
|
+
obj.splits.push($('<input type="text" class="yy" size="4" inputmode="numeric" maxlength="4" />')[0]);
|
2722
|
+
}
|
2723
|
+
|
2660
2724
|
if(opts.monthSelect){
|
2661
2725
|
obj.splits.push($('<select class="mm">'+getMonthOptions(opts)+'</select>')[0]);
|
2662
2726
|
} else {
|
@@ -2669,6 +2733,7 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
2669
2733
|
}
|
2670
2734
|
|
2671
2735
|
obj.elements = [obj.splits[0], $('<span class="ws-input-seperator" />')[0], obj.splits[1], $('<span class="ws-input-seperator" />')[0], obj.splits[2]];
|
2736
|
+
createYearSelect(obj, opts);
|
2672
2737
|
return obj;
|
2673
2738
|
},
|
2674
2739
|
sort: function(element){
|
@@ -2693,8 +2758,15 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
2693
2758
|
_create: function(opts){
|
2694
2759
|
|
2695
2760
|
var obj = {
|
2696
|
-
splits: [
|
2761
|
+
splits: []
|
2697
2762
|
};
|
2763
|
+
|
2764
|
+
if(opts.yearSelect){
|
2765
|
+
obj.splits.push($('<select class="yy"></select>')[0]);
|
2766
|
+
} else {
|
2767
|
+
obj.splits.push($('<input type="text" class="yy" size="4" inputmode="numeric" maxlength="4" />')[0]);
|
2768
|
+
}
|
2769
|
+
|
2698
2770
|
if(opts.monthSelect){
|
2699
2771
|
obj.splits.push($('<select class="mm">'+getMonthOptions(opts)+'</select>')[0]);
|
2700
2772
|
} else {
|
@@ -2705,6 +2777,7 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
2705
2777
|
}
|
2706
2778
|
|
2707
2779
|
obj.elements = [obj.splits[0], $('<span class="ws-input-seperator" />')[0], obj.splits[1]];
|
2780
|
+
createYearSelect(obj, opts);
|
2708
2781
|
return obj;
|
2709
2782
|
},
|
2710
2783
|
sort: function(element){
|
@@ -2724,7 +2797,8 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
2724
2797
|
};
|
2725
2798
|
|
2726
2799
|
var nowDate = new Date(new Date().getTime() - (new Date().getTimezoneOffset() * 60 * 1000 ));
|
2727
|
-
|
2800
|
+
var nowYear = nowDate.getFullYear();
|
2801
|
+
nowDate = new Date(nowDate.getFullYear(), nowDate.getMonth(), nowDate.getDate(), nowDate.getHours()).getTime();
|
2728
2802
|
var steps = {
|
2729
2803
|
number: {
|
2730
2804
|
step: 1
|
@@ -2934,9 +3008,6 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
2934
3008
|
$(document).triggerHandler('wslocalechange');
|
2935
3009
|
};
|
2936
3010
|
|
2937
|
-
|
2938
|
-
|
2939
|
-
|
2940
3011
|
curCfg = webshims.activeLang(formcfg);
|
2941
3012
|
|
2942
3013
|
triggerLocaleChange();
|
@@ -2961,7 +3032,7 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
2961
3032
|
|
2962
3033
|
|
2963
3034
|
var formatVal = {
|
2964
|
-
number: function(val){
|
3035
|
+
number: function(val, o){
|
2965
3036
|
return (val+'').replace(/\,/g, '').replace(/\./, curCfg.numberFormat['.']);
|
2966
3037
|
},
|
2967
3038
|
time: function(val){
|
@@ -2998,7 +3069,7 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
2998
3069
|
var names;
|
2999
3070
|
var p = val.split('-');
|
3000
3071
|
if(p[0] && p[1]){
|
3001
|
-
names = curCfg.date[options.
|
3072
|
+
names = curCfg.date[options.monthNames] || curCfg.date.monthNames;
|
3002
3073
|
p[1] = names[(p[1] * 1) - 1];
|
3003
3074
|
if(options && options.splitInput){
|
3004
3075
|
val = [p[0] || '', p[1] || ''];
|
@@ -3319,7 +3390,15 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
3319
3390
|
})
|
3320
3391
|
.on({
|
3321
3392
|
'change input focus focusin blur focusout': function(e){
|
3393
|
+
var oVal, nVal;
|
3322
3394
|
$(e.target).trigger('ws__'+e.type);
|
3395
|
+
if(o.toFixed && o.type == 'number' && e.type == 'change'){
|
3396
|
+
oVal = that.element.prop('value');
|
3397
|
+
nVal = that.toFixed(oVal, true);
|
3398
|
+
if(oVal != nVal){
|
3399
|
+
that.element[0].value = nVal;
|
3400
|
+
}
|
3401
|
+
}
|
3323
3402
|
}
|
3324
3403
|
})
|
3325
3404
|
|
@@ -3468,11 +3547,14 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
3468
3547
|
this.inputElements.attr('inputmode', 'numeric');
|
3469
3548
|
}
|
3470
3549
|
|
3471
|
-
|
3472
|
-
|
3473
3550
|
if((!o.max && typeof o.relMax == 'number') || (!o.min && typeof o.relMin == 'number')){
|
3474
|
-
webshims.error('relMax/relMin are not supported anymore')
|
3551
|
+
webshims.error('relMax/relMin are not supported anymore calculate at set it your own.');
|
3475
3552
|
}
|
3553
|
+
|
3554
|
+
if(this.options.relDefaultValue){
|
3555
|
+
webshims.warn('relDefaultValue was removed use startValue instead!');
|
3556
|
+
}
|
3557
|
+
|
3476
3558
|
this._init = true;
|
3477
3559
|
},
|
3478
3560
|
createOpts: ['step', 'min', 'max', 'readonly', 'title', 'disabled', 'tabindex', 'placeholder', 'defaultValue', 'value', 'required'],
|
@@ -3483,17 +3565,9 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
3483
3565
|
this.inputElements = $(create.elements).prependTo(this.element).filter('input, select');
|
3484
3566
|
}
|
3485
3567
|
},
|
3486
|
-
|
3487
|
-
getRelNumber: function(rel){
|
3488
|
-
var start = steps[this.type].start || 0;
|
3489
|
-
if(rel){
|
3490
|
-
start += rel;
|
3491
|
-
}
|
3492
|
-
return start;
|
3493
|
-
},
|
3494
3568
|
addZero: addZero,
|
3495
3569
|
_setStartInRange: function(){
|
3496
|
-
var start = this.
|
3570
|
+
var start = this.options.startValue && this.asNumber( this.options.startValue ) || steps[this.type].start || 0;
|
3497
3571
|
if(!isNaN(this.minAsNumber) && start < this.minAsNumber){
|
3498
3572
|
start = this.minAsNumber;
|
3499
3573
|
} else if(!isNaN(this.maxAsNumber) && start > this.maxAsNumber){
|
@@ -3505,7 +3579,7 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
3505
3579
|
},
|
3506
3580
|
reorderInputs: function(){
|
3507
3581
|
if(splitInputs[this.type]){
|
3508
|
-
var element = this.element;
|
3582
|
+
var element = this.element.attr('dir', curCfg.date.isRTL ? 'rtl' : 'ltr');
|
3509
3583
|
splitInputs[this.type].sort(element, this.options);
|
3510
3584
|
setTimeout(function(){
|
3511
3585
|
var data = webshims.data(element);
|
@@ -3531,6 +3605,13 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
3531
3605
|
this.elemHelper.prop('value', val);
|
3532
3606
|
this.options.defValue = "";
|
3533
3607
|
}
|
3608
|
+
},
|
3609
|
+
toFixed: function(val, force){
|
3610
|
+
var o = this.options;
|
3611
|
+
if(o.toFixed && o.type == 'number' && val && this.valueAsNumber && (force || !this.element.is(':focus')) && (!o.fixOnlyFloat || (this.valueAsNumber % 1)) && !$(this.orig).is(':invalid')){
|
3612
|
+
val = formatVal[this.type](this.valueAsNumber.toFixed(o.toFixed), this.options);
|
3613
|
+
}
|
3614
|
+
return val;
|
3534
3615
|
}
|
3535
3616
|
});
|
3536
3617
|
|
@@ -3543,7 +3624,7 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
3543
3624
|
} else {
|
3544
3625
|
this.elemHelper.prop(name, val);
|
3545
3626
|
}
|
3546
|
-
|
3627
|
+
|
3547
3628
|
val = formatVal[this.type](val, this.options);
|
3548
3629
|
if(this.options.splitInput){
|
3549
3630
|
$.each(this.splits, function(i, elem){
|
@@ -3555,7 +3636,7 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
3555
3636
|
}
|
3556
3637
|
});
|
3557
3638
|
} else {
|
3558
|
-
this.element.prop(name, val);
|
3639
|
+
this.element.prop(name, this.toFixed(val));
|
3559
3640
|
}
|
3560
3641
|
this._propertyChange(name);
|
3561
3642
|
this.mirrorValidity();
|
@@ -3572,6 +3653,9 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
3572
3653
|
this._setStartInRange();
|
3573
3654
|
}
|
3574
3655
|
this.options[name] = val;
|
3656
|
+
if(this._init){
|
3657
|
+
createYearSelect({elements: this.inputElements}, this.options);
|
3658
|
+
}
|
3575
3659
|
this._propertyChange(name);
|
3576
3660
|
this.mirrorValidity();
|
3577
3661
|
};
|
@@ -3592,7 +3676,7 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
3592
3676
|
|
3593
3677
|
$.fn.spinbtnUI = function(opts){
|
3594
3678
|
opts = $.extend({
|
3595
|
-
monthNames: '
|
3679
|
+
monthNames: 'monthNamesShort'
|
3596
3680
|
}, opts);
|
3597
3681
|
return this.each(function(){
|
3598
3682
|
$.webshims.objectCreate(spinBtnProto, {
|
@@ -3622,6 +3706,53 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
3622
3706
|
isVisible: true
|
3623
3707
|
};
|
3624
3708
|
|
3709
|
+
picker.isInRange = function(value, max, min){
|
3710
|
+
return !((min[0] && min[0] > value[0]) || (max[0] && max[0] < value[0]));
|
3711
|
+
};
|
3712
|
+
|
3713
|
+
|
3714
|
+
picker.createYearSelect = function(value, max, min, valueAdd, stepper){
|
3715
|
+
if(!stepper){
|
3716
|
+
stepper = {start: value, step: 1, label: value};
|
3717
|
+
}
|
3718
|
+
var temp;
|
3719
|
+
var goUp = true;
|
3720
|
+
var goDown = true;
|
3721
|
+
var options = ['<option selected="">'+ stepper.label + '</option>'];
|
3722
|
+
var i = 0;
|
3723
|
+
var createOption = function(value, add){
|
3724
|
+
var value2, label;
|
3725
|
+
if(stepper.step > 1){
|
3726
|
+
value2 = value + stepper.step - 1;
|
3727
|
+
label = value+' – '+value2;
|
3728
|
+
} else {
|
3729
|
+
label = value;
|
3730
|
+
}
|
3731
|
+
|
3732
|
+
if(picker.isInRange([value], max, min) || (value2 && picker.isInRange([value2], max, min))){
|
3733
|
+
options[add]('<option value="'+ (value+valueAdd) +'">'+ label +'</option>');
|
3734
|
+
return true;
|
3735
|
+
}
|
3736
|
+
};
|
3737
|
+
if(!valueAdd){
|
3738
|
+
valueAdd = '';
|
3739
|
+
}
|
3740
|
+
while(i < 18 && (goUp || goDown)){
|
3741
|
+
i++;
|
3742
|
+
if(goUp){
|
3743
|
+
temp = stepper.start - (i * stepper.step);
|
3744
|
+
goUp = createOption(temp, 'unshift');
|
3745
|
+
}
|
3746
|
+
if(goDown){
|
3747
|
+
temp = stepper.start + (i * stepper.step);
|
3748
|
+
goDown = createOption(temp, 'push');
|
3749
|
+
}
|
3750
|
+
|
3751
|
+
}
|
3752
|
+
|
3753
|
+
return options;
|
3754
|
+
};
|
3755
|
+
|
3625
3756
|
picker._genericSetFocus = function(element, _noFocus){
|
3626
3757
|
element = $(element || this.activeButton);
|
3627
3758
|
|
@@ -3631,12 +3762,12 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
3631
3762
|
clearTimeout(that.timer);
|
3632
3763
|
that.timer = setTimeout(function(){
|
3633
3764
|
if(element[0]){
|
3634
|
-
element
|
3765
|
+
element.trigger('focus');
|
3635
3766
|
if(noTrigger !== true && !element.is(':focus')){
|
3636
3767
|
setFocus(true);
|
3637
3768
|
}
|
3638
3769
|
}
|
3639
|
-
}, that.popover.isVisible ?
|
3770
|
+
}, that.popover.isVisible ? 0 : 360);
|
3640
3771
|
};
|
3641
3772
|
this.popover.activateElement(element);
|
3642
3773
|
setFocus();
|
@@ -3849,7 +3980,7 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
3849
3980
|
popover.preventBlur();
|
3850
3981
|
}
|
3851
3982
|
},
|
3852
|
-
mousedown: function(){
|
3983
|
+
mousedown: function(e){
|
3853
3984
|
mouseFocus = true;
|
3854
3985
|
setTimeout(resetMouseFocus, 9);
|
3855
3986
|
if(options.buttonOnly && popover.isVisible && popover.activeElement){
|
@@ -4007,31 +4138,41 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
4007
4138
|
var updateStyles = function(){
|
4008
4139
|
$(data.orig).removeClass('ws-important-hide');
|
4009
4140
|
$.style( data.orig, 'display', '' );
|
4010
|
-
var hasButtons, marginR, marginL;
|
4141
|
+
var hasButtons, marginR, marginL, left, right, isRtl;
|
4011
4142
|
var correctWidth = 0.8;
|
4012
4143
|
if(!init || data.orig.offsetWidth){
|
4013
4144
|
hasButtons = data.buttonWrapper && data.buttonWrapper.filter(isVisible).length;
|
4014
|
-
|
4015
|
-
data.
|
4016
|
-
|
4017
|
-
|
4018
|
-
|
4145
|
+
|
4146
|
+
isRtl = hasButtons && data.buttonWrapper.css('direction') == 'rtl';
|
4147
|
+
if(isRtl){
|
4148
|
+
left = 'Right';
|
4149
|
+
right = 'Left';
|
4150
|
+
} else {
|
4151
|
+
left = 'Left';
|
4152
|
+
right = 'Right';
|
4153
|
+
}
|
4154
|
+
|
4155
|
+
marginR = $.css( data.orig, 'margin'+right);
|
4156
|
+
|
4157
|
+
data.element
|
4158
|
+
.css('margin'+left, $.css( data.orig, 'margin'+left))
|
4159
|
+
.css('margin'+right, hasButtons ? 0 : marginR)
|
4160
|
+
;
|
4019
4161
|
|
4020
4162
|
if(hasButtons){
|
4021
|
-
|
4022
|
-
data.
|
4163
|
+
data.buttonWrapper[isRtl ? 'addClass' : 'removeClass']('ws-is-rtl');
|
4164
|
+
marginL = (parseInt(data.buttonWrapper.css('margin'+left), 10) || 0);
|
4165
|
+
data.element.css('padding'+right, '');
|
4023
4166
|
|
4024
4167
|
if(marginL < 0){
|
4025
4168
|
marginR = (parseInt(marginR, 10) || 0) + ((data.buttonWrapper.outerWidth() + marginL) * -1);
|
4026
|
-
data.buttonWrapper.css('
|
4169
|
+
data.buttonWrapper.css('margin'+right, marginR);
|
4027
4170
|
data.element
|
4028
|
-
.css(
|
4029
|
-
.css(
|
4030
|
-
paddingRight: (parseInt( data.element.css('paddingRight'), 10) || 0) + data.buttonWrapper.outerWidth()
|
4031
|
-
})
|
4171
|
+
.css('padding'+right, '')
|
4172
|
+
.css('padding'+right, (parseInt( data.element.css('padding'+right), 10) || 0) + data.buttonWrapper.outerWidth())
|
4032
4173
|
;
|
4033
4174
|
} else {
|
4034
|
-
data.buttonWrapper.css('
|
4175
|
+
data.buttonWrapper.css('margin'+right, marginR);
|
4035
4176
|
correctWidth = data.buttonWrapper.outerWidth(true) + correctWidth;
|
4036
4177
|
}
|
4037
4178
|
}
|
@@ -4049,7 +4190,7 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
4049
4190
|
|
4050
4191
|
var type = $.prop(this, 'type');
|
4051
4192
|
|
4052
|
-
var i, opts, data, optsName, labels;
|
4193
|
+
var i, opts, data, optsName, labels, cNames;
|
4053
4194
|
if(inputTypes[type] && webshims.implement(this, 'inputwidgets')){
|
4054
4195
|
data = {};
|
4055
4196
|
optsName = type;
|
@@ -4087,17 +4228,38 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
4087
4228
|
opts[optsName] = $.attr(this, copyAttrs[i]) || opts[optsName];
|
4088
4229
|
}
|
4089
4230
|
}
|
4090
|
-
|
4091
|
-
|
4092
|
-
|
4231
|
+
if(opts.formatMonthNames){
|
4232
|
+
webshims.error('formatMonthNames was renamded to monthNames');
|
4233
|
+
}
|
4234
|
+
if(opts.onlyMonthDigits){
|
4235
|
+
opts.monthNames = 'monthDigits';
|
4093
4236
|
}
|
4094
4237
|
data.shim = inputTypes[type]._create(opts);
|
4095
|
-
|
4238
|
+
|
4096
4239
|
webshims.addShadowDom(this, data.shim.element, {
|
4097
4240
|
data: data.shim || {}
|
4098
4241
|
});
|
4099
4242
|
|
4100
4243
|
data.shim.options.containerElements.push(data.shim.element[0]);
|
4244
|
+
cNames = $.prop(this, 'className');
|
4245
|
+
if(opts.classes){
|
4246
|
+
cNames += ' '+opts.classes;
|
4247
|
+
}
|
4248
|
+
|
4249
|
+
if(opts.splitInput || type == 'range'){
|
4250
|
+
cNames = cNames.replace('form-control', '');
|
4251
|
+
}
|
4252
|
+
|
4253
|
+
data.shim.element.on('change input', stopPropagation).addClass(cNames);
|
4254
|
+
|
4255
|
+
if(data.shim.buttonWrapper){
|
4256
|
+
|
4257
|
+
data.shim.buttonWrapper.addClass('input-button-size-'+(data.shim.buttonWrapper.children().filter(isVisible).length));
|
4258
|
+
|
4259
|
+
if(data.shim.buttonWrapper.filter(isVisible).length){
|
4260
|
+
data.shim.element.addClass('has-input-buttons');
|
4261
|
+
}
|
4262
|
+
}
|
4101
4263
|
|
4102
4264
|
labelWidth($(this).getShadowFocusElement(), labels);
|
4103
4265
|
|
@@ -4129,14 +4291,13 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
4129
4291
|
$(opts.orig).trigger(hasFocus ? 'focusin' : 'focusout');
|
4130
4292
|
}
|
4131
4293
|
hasFocusTriggered = hasFocus;
|
4132
|
-
},
|
4294
|
+
}, 9);
|
4133
4295
|
}
|
4134
4296
|
})
|
4135
4297
|
;
|
4136
4298
|
})();
|
4137
|
-
|
4138
4299
|
|
4139
|
-
|
4300
|
+
|
4140
4301
|
|
4141
4302
|
if(hasFormValidation){
|
4142
4303
|
$(opts.orig).on('firstinvalid', function(e){
|
@@ -4152,13 +4313,6 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
4152
4313
|
});
|
4153
4314
|
}
|
4154
4315
|
|
4155
|
-
|
4156
|
-
if(data.shim.buttonWrapper && data.shim.buttonWrapper.filter(isVisible).length){
|
4157
|
-
data.shim.element.addClass('has-input-buttons');
|
4158
|
-
}
|
4159
|
-
|
4160
|
-
data.shim.element.addClass($.prop(this, 'className'));
|
4161
|
-
|
4162
4316
|
if(opts.calculateWidth){
|
4163
4317
|
sizeInput(data.shim);
|
4164
4318
|
} else {
|
@@ -4220,7 +4374,7 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
4220
4374
|
if(!modernizrInputTypes[name] || replace[name]){
|
4221
4375
|
extendType(name, {
|
4222
4376
|
_create: function(opts, set){
|
4223
|
-
if(opts.monthSelect || opts.daySelect){
|
4377
|
+
if(opts.monthSelect || opts.daySelect || opts.yearSelect){
|
4224
4378
|
opts.splitInput = true;
|
4225
4379
|
}
|
4226
4380
|
if(opts.splitInput && !splitInputs[name]){
|
@@ -4239,7 +4393,6 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
4239
4393
|
if(webshims.picker && webshims.picker[name]){
|
4240
4394
|
webshims.picker[name](data);
|
4241
4395
|
}
|
4242
|
-
data.buttonWrapper.addClass('input-button-size-'+(data.buttonWrapper.children().filter(isVisible).length));
|
4243
4396
|
return data;
|
4244
4397
|
}
|
4245
4398
|
});
|