webshims-rails 1.11.1 → 1.11.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 +8 -8
- data/lib/webshims-rails/version.rb +2 -2
- data/vendor/assets/javascripts/webshims/polyfiller.js +41 -20
- data/vendor/assets/javascripts/webshims/shims/combos/10.js +212 -42
- data/vendor/assets/javascripts/webshims/shims/combos/11.js +196 -37
- data/vendor/assets/javascripts/webshims/shims/combos/12.js +82 -36
- data/vendor/assets/javascripts/webshims/shims/combos/13.js +82 -36
- data/vendor/assets/javascripts/webshims/shims/combos/14.js +17 -6
- data/vendor/assets/javascripts/webshims/shims/combos/15.js +234 -1247
- data/vendor/assets/javascripts/webshims/shims/combos/16.js +234 -1247
- data/vendor/assets/javascripts/webshims/shims/combos/17.js +202 -45
- data/vendor/assets/javascripts/webshims/shims/combos/18.js +202 -45
- data/vendor/assets/javascripts/webshims/shims/combos/19.js +16 -5
- data/vendor/assets/javascripts/webshims/shims/combos/2.js +51 -11
- data/vendor/assets/javascripts/webshims/shims/combos/20.js +16 -5
- data/vendor/assets/javascripts/webshims/shims/combos/21.js +82 -36
- data/vendor/assets/javascripts/webshims/shims/combos/22.js +82 -36
- data/vendor/assets/javascripts/webshims/shims/combos/24.js +1689 -997
- data/vendor/assets/javascripts/webshims/shims/combos/25.js +16 -5
- data/vendor/assets/javascripts/webshims/shims/combos/26.js +16 -5
- data/vendor/assets/javascripts/webshims/shims/combos/3.js +16 -5
- data/vendor/assets/javascripts/webshims/shims/combos/30.js +51 -11
- data/vendor/assets/javascripts/webshims/shims/combos/31.js +51 -11
- data/vendor/assets/javascripts/webshims/shims/combos/4.js +16 -5
- data/vendor/assets/javascripts/webshims/shims/combos/5.js +202 -45
- data/vendor/assets/javascripts/webshims/shims/combos/6.js +237 -51
- data/vendor/assets/javascripts/webshims/shims/combos/7.js +51 -11
- data/vendor/assets/javascripts/webshims/shims/combos/8.js +16 -5
- data/vendor/assets/javascripts/webshims/shims/combos/9.js +247 -48
- data/vendor/assets/javascripts/webshims/shims/dom-extend.js +17 -5
- data/vendor/assets/javascripts/webshims/shims/form-datalist-lazy.js +21 -3
- data/vendor/assets/javascripts/webshims/shims/form-datalist.js +35 -6
- data/vendor/assets/javascripts/webshims/shims/form-number-date-api.js +6 -8
- data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +134 -24
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +152 -1205
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend2.js +1076 -0
- data/vendor/assets/javascripts/webshims/shims/form-validation.js +47 -20
- data/vendor/assets/javascripts/webshims/shims/form-validators.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/forms-picker.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/i18n/{formcfg-de.txt → formcfg-de.js} +3 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/{formcfg-en.txt → formcfg-en.js} +5 -1
- data/vendor/assets/javascripts/webshims/shims/json-storage.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/range-ui.js +62 -13
- data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +610 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/_extends.scss +10 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-ext.scss +743 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +1 -755
- data/vendor/assets/javascripts/webshims/shims/styles/shim.css +0 -606
- data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
- data/vendor/assets/javascripts/webshims/shims/track-ui.js +36 -23
- data/vendor/assets/javascripts/webshims/shims/track.js +82 -36
- metadata +8 -6
- data/vendor/assets/javascripts/webshims/shims/combos/28.js +0 -2196
- data/vendor/assets/javascripts/webshims/shims/combos/29.js +0 -1167
@@ -6,7 +6,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
6
6
|
webshims.assumeARIA = supportGetSetAttribute || Modernizr.canvas || Modernizr.video || Modernizr.boxsizing;
|
7
7
|
|
8
8
|
if($('<input type="email" />').attr('type') == 'text' || $('<form />').attr('novalidate') === "" || ('required' in $('<input />')[0].attributes)){
|
9
|
-
webshims.error("IE browser modes are busted in IE10
|
9
|
+
webshims.error("IE browser modes are busted in IE10+. Please test your HTML/CSS/JS with a real IE version or at least IETester or similiar tools");
|
10
10
|
}
|
11
11
|
|
12
12
|
if(!$.parseHTML){
|
@@ -559,7 +559,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
559
559
|
$(this.test);
|
560
560
|
webshims.ready('WINDOWLOAD', this.test);
|
561
561
|
$(document).on('updatelayout', this.handler);
|
562
|
-
$(window).
|
562
|
+
$(window).on('resize', this.handler);
|
563
563
|
(function(){
|
564
564
|
var oldAnimate = $.fn.animate;
|
565
565
|
var animationTimer;
|
@@ -581,6 +581,13 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
581
581
|
webshims.docObserve = function(){
|
582
582
|
webshims.ready('DOM', function(){
|
583
583
|
docObserve.start();
|
584
|
+
if($.support.boxSizing == null){
|
585
|
+
$(function(){
|
586
|
+
if($.support.boxSizing){
|
587
|
+
docObserve.handler({type: 'boxsizing'});
|
588
|
+
}
|
589
|
+
});
|
590
|
+
}
|
584
591
|
});
|
585
592
|
};
|
586
593
|
return function(nativeElem, shadowElem, opts){
|
@@ -741,7 +748,12 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
741
748
|
havePolyfill[prop] = true;
|
742
749
|
|
743
750
|
if(descs.reflect){
|
744
|
-
webshims.propTypes[descs.propType
|
751
|
+
if(descs.propType && !webshims.propTypes[descs.propType]){
|
752
|
+
webshims.error('could not finde propType '+ descs.propType);
|
753
|
+
} else {
|
754
|
+
webshims.propTypes[descs.propType || 'standard'](descs, prop);
|
755
|
+
}
|
756
|
+
|
745
757
|
}
|
746
758
|
|
747
759
|
['prop', 'attr', 'removeAttr'].forEach(function(type){
|
@@ -927,7 +939,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
927
939
|
var notLocal = /:\/\/|^\.*\//;
|
928
940
|
var loadRemoteLang = function(data, lang, options){
|
929
941
|
var langSrc;
|
930
|
-
if(lang && options && $.inArray(lang, options.availabeLangs || []) !== -1){
|
942
|
+
if(lang && options && $.inArray(lang, options.availableLangs || options.availabeLangs || []) !== -1){
|
931
943
|
data.loading = true;
|
932
944
|
langSrc = options.langSrc;
|
933
945
|
if(!notLocal.test(langSrc)){
|
@@ -1086,4 +1098,4 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1086
1098
|
}
|
1087
1099
|
});
|
1088
1100
|
|
1089
|
-
})(webshims.$, document);
|
1101
|
+
})(webshims.$, document);
|
@@ -25,6 +25,7 @@ webshims.register('form-datalist-lazy', function($, webshims, window, document,
|
|
25
25
|
|
26
26
|
var lReg = /</g;
|
27
27
|
var gReg = />/g;
|
28
|
+
var splitReg = /\s*,\s*/g;
|
28
29
|
|
29
30
|
$.extend(options.shadowListProto, {
|
30
31
|
_lazyCreate: function(opts){
|
@@ -184,7 +185,7 @@ webshims.register('form-datalist-lazy', function($, webshims, window, document,
|
|
184
185
|
}
|
185
186
|
this.addMarkElement = options.addMark || $(this.input).hasClass('mark-option-text');
|
186
187
|
this.listFilter = $(this.input).data('listFilter') || options.listFilter || '*';
|
187
|
-
|
188
|
+
this.multiple = $(this.input).hasClass('list-multiple') || ($(this.input).prop('multiple') && $(this.input).prop('type') == 'email');
|
188
189
|
var list = [];
|
189
190
|
|
190
191
|
var values = [];
|
@@ -256,7 +257,13 @@ webshims.register('form-datalist-lazy', function($, webshims, window, document,
|
|
256
257
|
//first check prevent infinite loop, second creates simple lazy optimization
|
257
258
|
if(value === this.lastUpdatedValue){
|
258
259
|
return;
|
259
|
-
}
|
260
|
+
}
|
261
|
+
|
262
|
+
if(this.multiple){
|
263
|
+
value = value.split(splitReg);
|
264
|
+
value = value[value.length - 1] || '';
|
265
|
+
}
|
266
|
+
|
260
267
|
if(this.lastUnfoundValue && value.indexOf(this.lastUnfoundValue) === 0){
|
261
268
|
this.hideList();
|
262
269
|
return;
|
@@ -268,8 +275,11 @@ webshims.register('form-datalist-lazy', function($, webshims, window, document,
|
|
268
275
|
var startSearch = this.listFilter == '^';
|
269
276
|
var lis = $('li', this.shadowList);
|
270
277
|
var that = this;
|
278
|
+
|
279
|
+
|
271
280
|
if(value && this.listFilter != '!'){
|
272
281
|
|
282
|
+
|
273
283
|
this.arrayOptions.forEach(function(item, i){
|
274
284
|
var search, searchIndex, foundName;
|
275
285
|
if(!('lowerValue' in item)){
|
@@ -390,9 +400,17 @@ webshims.register('form-datalist-lazy', function($, webshims, window, document,
|
|
390
400
|
},
|
391
401
|
changeValue: function(activeItem){
|
392
402
|
if(!activeItem[0]){return;}
|
393
|
-
var spinner;
|
403
|
+
var spinner, tmpValue;
|
394
404
|
var newValue = $('span.option-value', activeItem).text();
|
395
405
|
var oldValue = $.prop(this.input, 'value');
|
406
|
+
|
407
|
+
if(this.multiple){
|
408
|
+
tmpValue = oldValue.split(splitReg);
|
409
|
+
tmpValue[tmpValue.length - 1] = newValue;
|
410
|
+
|
411
|
+
newValue = tmpValue.join(', ');
|
412
|
+
}
|
413
|
+
|
396
414
|
if(newValue != oldValue){
|
397
415
|
|
398
416
|
$(this.input)
|
@@ -33,12 +33,12 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
|
|
33
33
|
/*
|
34
34
|
* implement propType "element" currently only used for list-attribute (will be moved to dom-extend, if needed)
|
35
35
|
*/
|
36
|
-
webshims.propTypes.element = function(descs){
|
36
|
+
webshims.propTypes.element = function(descs, name){
|
37
37
|
webshims.createPropDefault(descs, 'attr');
|
38
38
|
if(descs.prop){return;}
|
39
39
|
descs.prop = {
|
40
40
|
get: function(){
|
41
|
-
var elem = $.attr(this,
|
41
|
+
var elem = $.attr(this, name);
|
42
42
|
if(elem){
|
43
43
|
elem = document.getElementById(elem);
|
44
44
|
if(elem && descs.propNodeName && !$.nodeName(elem, descs.propNodeName)){
|
@@ -62,7 +62,15 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
|
|
62
62
|
if(listSupport && !formsCFG.customDatalist){return;}
|
63
63
|
|
64
64
|
var initializeDatalist = function(){
|
65
|
-
|
65
|
+
|
66
|
+
var updateDatlistAndOptions = function(){
|
67
|
+
var id;
|
68
|
+
if(!$.data(this, 'datalistWidgetData') && (id = $.prop(this, 'id'))){
|
69
|
+
$('input[list="'+ id +'"], input[data-wslist="'+ id +'"]').eq(0).attr('list', id);
|
70
|
+
} else {
|
71
|
+
$(this).triggerHandler('updateDatalist');
|
72
|
+
}
|
73
|
+
};
|
66
74
|
|
67
75
|
var inputListProto = {
|
68
76
|
//override autocomplete
|
@@ -140,6 +148,7 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
|
|
140
148
|
id: value,
|
141
149
|
datalist: $.prop(elem, 'list')
|
142
150
|
});
|
151
|
+
elem.setAttribute('data-wslist', value);
|
143
152
|
} else {
|
144
153
|
elem.setAttribute('list', value);
|
145
154
|
}
|
@@ -151,6 +160,27 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
|
|
151
160
|
propType: 'element',
|
152
161
|
propNodeName: 'datalist'
|
153
162
|
};
|
163
|
+
} else {
|
164
|
+
webshims.defineNodeNameProperties('input', {
|
165
|
+
list: {
|
166
|
+
attr: {
|
167
|
+
get: function(){
|
168
|
+
var val = webshims.contentAttr(this, 'list');
|
169
|
+
return (val == null) ? undefined : val;
|
170
|
+
},
|
171
|
+
set: function(value){
|
172
|
+
var elem = this;
|
173
|
+
webshims.contentAttr(elem, 'list', value);
|
174
|
+
webshims.objectCreate(options.shadowListProto, undefined, {input: elem, id: value, datalist: $.prop(elem, 'list')});
|
175
|
+
$(elem).triggerHandler('listdatalistchange');
|
176
|
+
}
|
177
|
+
},
|
178
|
+
initAttr: true,
|
179
|
+
reflect: true,
|
180
|
+
propType: 'element',
|
181
|
+
propNodeName: 'datalist'
|
182
|
+
}
|
183
|
+
});
|
154
184
|
}
|
155
185
|
|
156
186
|
webshims.defineNodeNameProperties('input', inputListProto);
|
@@ -159,9 +189,7 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
|
|
159
189
|
contextElem
|
160
190
|
.filter('datalist > select, datalist, datalist > option, datalist > select > option')
|
161
191
|
.closest('datalist')
|
162
|
-
.each(
|
163
|
-
$(this).triggerHandler('updateDatalist');
|
164
|
-
})
|
192
|
+
.each(updateDatlistAndOptions)
|
165
193
|
;
|
166
194
|
});
|
167
195
|
};
|
@@ -206,6 +234,7 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
|
|
206
234
|
this.hasViewableData = true;
|
207
235
|
this._autocomplete = $.attr(opts.input, 'autocomplete');
|
208
236
|
$.data(opts.input, 'datalistWidget', this);
|
237
|
+
$.data(datalist, 'datalistWidgetData', this);
|
209
238
|
|
210
239
|
lazyLoad('WINDOWLOAD');
|
211
240
|
|
@@ -198,7 +198,7 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
198
198
|
cache = {type: type};
|
199
199
|
if(!factor){
|
200
200
|
factor = 1;
|
201
|
-
webshims.
|
201
|
+
webshims.warn("you should always use a factor for stepUp/stepDown");
|
202
202
|
}
|
203
203
|
factor *= stepFactor;
|
204
204
|
|
@@ -234,13 +234,11 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
234
234
|
webshims.info("max/min overflow can't apply stepUp/stepDown");
|
235
235
|
throw('invalid state error');
|
236
236
|
}
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
} else if(stepDescriptor.prop && stepDescriptor.prop.value){
|
243
|
-
return stepDescriptor.prop.value.apply(this, arguments);
|
237
|
+
|
238
|
+
$.prop(this, 'valueAsNumber', val);
|
239
|
+
|
240
|
+
} else if(stepDescriptor.prop && stepDescriptor.prop._supvalue){
|
241
|
+
return stepDescriptor.prop._supvalue.apply(this, arguments);
|
244
242
|
} else {
|
245
243
|
webshims.info("no step method for type: "+ type);
|
246
244
|
throw('invalid state error');
|
@@ -10,8 +10,8 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
10
10
|
var str;
|
11
11
|
return function(){
|
12
12
|
if(!str){
|
13
|
-
str = ('<option></option>')+$.map(monthDigits, function(val){
|
14
|
-
return '<option>'+val+'</option>';
|
13
|
+
str = ('<option value=""></option>')+$.map(monthDigits, function(val){
|
14
|
+
return '<option value="'+val+'"]>'+val+'</option>';
|
15
15
|
}).join('');
|
16
16
|
}
|
17
17
|
return str;
|
@@ -33,7 +33,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
33
33
|
splits: [$('<input type="text" class="yy" size="4" inputmode="numeric" />')[0]]
|
34
34
|
};
|
35
35
|
if(opts.monthSelect){
|
36
|
-
obj.splits.push($('<select class="mm">'+getMonthOptions()+'</select>')[0]);
|
36
|
+
obj.splits.push($('<select class="mm">'+getMonthOptions(opts)+'</select>')[0]);
|
37
37
|
} else {
|
38
38
|
obj.splits.push($('<input type="text" class="mm" inputmode="numeric" maxlength="2" size="2" />')[0]);
|
39
39
|
}
|
@@ -68,7 +68,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
68
68
|
splits: [$('<input type="text" class="yy" inputmode="numeric" size="4" />')[0]]
|
69
69
|
};
|
70
70
|
if(opts.monthSelect){
|
71
|
-
obj.splits.push($('<select class="mm ws-spin">'+getMonthOptions()+'</select>')[0]);
|
71
|
+
obj.splits.push($('<select class="mm ws-spin">'+getMonthOptions(opts)+'</select>')[0]);
|
72
72
|
} else {
|
73
73
|
obj.splits.push($('<input type="text" class="mm ws-spin" />')[0]);
|
74
74
|
if(opts.onlyMonthDigits){
|
@@ -160,6 +160,9 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
160
160
|
month: {
|
161
161
|
currentText: 'Aktueller Monat'
|
162
162
|
},
|
163
|
+
time: {
|
164
|
+
currentText: 'Jetzt'
|
165
|
+
},
|
163
166
|
date: {
|
164
167
|
close: 'schließen',
|
165
168
|
clear: 'Löschen',
|
@@ -197,6 +200,9 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
197
200
|
month: {
|
198
201
|
currentText: 'This month'
|
199
202
|
},
|
203
|
+
time: {
|
204
|
+
"currentText": "Now"
|
205
|
+
},
|
200
206
|
date: {
|
201
207
|
"closeText": "Done",
|
202
208
|
clear: 'Clear',
|
@@ -259,6 +265,12 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
259
265
|
if(!langCfg['datetime-localSigns']){
|
260
266
|
langCfg['datetime-localSigns'] = langCfg.dateSigns+langCfg.timeSigns;
|
261
267
|
}
|
268
|
+
if(!langCfg['datetime-local']){
|
269
|
+
langCfg['datetime-local'] = {};
|
270
|
+
}
|
271
|
+
if(!langCfg['datetime-local'].currentText && langCfg.time.currentText){
|
272
|
+
langCfg['datetime-local'].currentText = langCfg.time.currentText;
|
273
|
+
}
|
262
274
|
};
|
263
275
|
var triggerLocaleChange = function(){
|
264
276
|
processLangCFG(curCfg);
|
@@ -326,6 +338,9 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
326
338
|
} else {
|
327
339
|
fVal = 0;
|
328
340
|
}
|
341
|
+
if(val[0] === '00'){
|
342
|
+
val[0] = '12';
|
343
|
+
}
|
329
344
|
val = $.trim(val.join(':')) + ' '+ curCfg.meridian[fVal];
|
330
345
|
}
|
331
346
|
return val;
|
@@ -410,6 +425,9 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
410
425
|
time: function(val){
|
411
426
|
var fVal;
|
412
427
|
if(val && curCfg.meridian){
|
428
|
+
if(val.substr(0,2) === "12"){
|
429
|
+
val = "00" + val.substr(2);
|
430
|
+
}
|
413
431
|
if(val.indexOf(curCfg.meridian[1]) != -1){
|
414
432
|
val = val.split(':');
|
415
433
|
fVal = (val[0] * 1);
|
@@ -495,7 +513,10 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
495
513
|
if(hintValue.length == 2){
|
496
514
|
hintValue = opts.splitInput ?
|
497
515
|
hintValue :
|
498
|
-
curCfg.
|
516
|
+
curCfg.date.showMonthAfterYear ?
|
517
|
+
hintValue[0] +' '+hintValue[1] :
|
518
|
+
|
519
|
+
hintValue[1] +' '+ hintValue[0];
|
499
520
|
} else {
|
500
521
|
hintValue = opts.splitInput ?
|
501
522
|
[val, val] :
|
@@ -870,10 +891,18 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
870
891
|
}
|
871
892
|
try {
|
872
893
|
that.elemHelper[name](factor);
|
894
|
+
|
873
895
|
ret = that.elemHelper.prop('value');
|
896
|
+
|
897
|
+
} catch (er) {
|
898
|
+
if(!o.value && that.maxAsNumber >= that.minAsNumber){
|
899
|
+
ret = o.defValue;
|
900
|
+
}
|
901
|
+
}
|
902
|
+
if(ret !== false && o.value != ret){
|
874
903
|
that.value(ret);
|
875
904
|
eventTimer.call('input', ret);
|
876
|
-
}
|
905
|
+
}
|
877
906
|
return ret;
|
878
907
|
}
|
879
908
|
};
|
@@ -939,15 +968,6 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
939
968
|
|
940
969
|
initChangeEvents();
|
941
970
|
},
|
942
|
-
value: function(val, force){
|
943
|
-
if(!this._init || force || val !== this.options.value){
|
944
|
-
this.element.val(this.formatValue(val));
|
945
|
-
this.options.value = val;
|
946
|
-
this._propertyChange('value');
|
947
|
-
this.mirrorValidity();
|
948
|
-
}
|
949
|
-
|
950
|
-
},
|
951
971
|
required: function(val, boolVal){
|
952
972
|
this.inputElements.attr({'aria-required': ''+boolVal});
|
953
973
|
this.mirrorValidity();
|
@@ -964,7 +984,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
964
984
|
formatValue: function(val, noSplit){
|
965
985
|
return formatVal[this.type](val, noSplit === false ? false : this.options);
|
966
986
|
},
|
967
|
-
createOpts: ['readonly', 'title', 'disabled', 'tabindex', 'placeholder', 'value', 'required'],
|
987
|
+
createOpts: ['readonly', 'title', 'disabled', 'tabindex', 'placeholder', 'defaultValue', 'value', 'required'],
|
968
988
|
placeholder: function(val){
|
969
989
|
var options = this.options;
|
970
990
|
options.placeholder = val;
|
@@ -1034,6 +1054,16 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
1034
1054
|
}
|
1035
1055
|
};
|
1036
1056
|
|
1057
|
+
['defaultValue', 'value'].forEach(function(name){
|
1058
|
+
wsWidgetProto[name] = function(val, force){
|
1059
|
+
if(!this._init || force || val !== this.options[name]){
|
1060
|
+
this.element.prop(name, this.formatValue(val));
|
1061
|
+
this.options[name] = val;
|
1062
|
+
this._propertyChange(name);
|
1063
|
+
this.mirrorValidity();
|
1064
|
+
}
|
1065
|
+
};
|
1066
|
+
});
|
1037
1067
|
|
1038
1068
|
['readonly', 'disabled'].forEach(function(name){
|
1039
1069
|
var isDisabled = name == 'disabled';
|
@@ -1087,7 +1117,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
1087
1117
|
}
|
1088
1118
|
this._init = true;
|
1089
1119
|
},
|
1090
|
-
createOpts: ['step', 'min', 'max', 'readonly', 'title', 'disabled', 'tabindex', 'placeholder', 'value', 'required'],
|
1120
|
+
createOpts: ['step', 'min', 'max', 'readonly', 'title', 'disabled', 'tabindex', 'placeholder', 'defaultValue', 'value', 'required'],
|
1091
1121
|
_addSplitInputs: function(){
|
1092
1122
|
if(!this.inputElements){
|
1093
1123
|
var create = splitInputs[this.type]._create(this.options);
|
@@ -1157,9 +1187,47 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
1157
1187
|
this.options.step = val;
|
1158
1188
|
this.elemHelper.prop('step', retDefault(val, defStep.step));
|
1159
1189
|
this.mirrorValidity();
|
1190
|
+
},
|
1191
|
+
_beforeValue: function(val){
|
1192
|
+
this.valueAsNumber = this.asNumber(val);
|
1193
|
+
this.options.value = val;
|
1194
|
+
|
1195
|
+
if(isNaN(this.valueAsNumber) || (!isNaN(this.minAsNumber) && this.valueAsNumber < this.minAsNumber) || (!isNaN(this.maxAsNumber) && this.valueAsNumber > this.maxAsNumber)){
|
1196
|
+
this._setStartInRange();
|
1197
|
+
} else {
|
1198
|
+
this.elemHelper.prop('value', val);
|
1199
|
+
this.options.defValue = "";
|
1200
|
+
}
|
1160
1201
|
}
|
1161
1202
|
});
|
1162
1203
|
|
1204
|
+
['defaultValue', 'value'].forEach(function(name){
|
1205
|
+
var isValue = name == 'value';
|
1206
|
+
spinBtnProto[name] = function(val, force){
|
1207
|
+
if(!this._init || force || this.options[name] !== val){
|
1208
|
+
if(isValue){
|
1209
|
+
this._beforeValue(val);
|
1210
|
+
}
|
1211
|
+
|
1212
|
+
val = formatVal[this.type](val, this.options);
|
1213
|
+
if(this.options.splitInput){
|
1214
|
+
$.each(this.splits, function(i, elem){
|
1215
|
+
var setOption;
|
1216
|
+
if(!(name in elem) && !isValue && $.nodeName(elem, 'select')){
|
1217
|
+
$('option[value="'+ val[i] +'"]', elem).prop('defaultSelected', true);
|
1218
|
+
} else {
|
1219
|
+
$.prop(elem, name, val[i]);
|
1220
|
+
}
|
1221
|
+
});
|
1222
|
+
} else {
|
1223
|
+
this.element.prop(name, val);
|
1224
|
+
}
|
1225
|
+
this._propertyChange(name);
|
1226
|
+
this.mirrorValidity();
|
1227
|
+
}
|
1228
|
+
};
|
1229
|
+
});
|
1230
|
+
|
1163
1231
|
$.each({min: 1, max: -1}, function(name, factor){
|
1164
1232
|
var numName = name +'AsNumber';
|
1165
1233
|
spinBtnProto[name] = function(val){
|
@@ -1563,10 +1631,12 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
1563
1631
|
var inputTypes = {
|
1564
1632
|
|
1565
1633
|
};
|
1634
|
+
var boolAttrs = {disabled: 1, required: 1, readonly: 1};
|
1566
1635
|
var copyProps = [
|
1567
1636
|
'disabled',
|
1568
1637
|
'readonly',
|
1569
1638
|
'value',
|
1639
|
+
'defaultValue',
|
1570
1640
|
'min',
|
1571
1641
|
'max',
|
1572
1642
|
'step',
|
@@ -1584,14 +1654,18 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
1584
1654
|
if(!stopCircular){
|
1585
1655
|
var shadowData = webshims.data(this, 'shadowData');
|
1586
1656
|
if(shadowData && shadowData.data && shadowData.nativeElement === this && shadowData.data[fnName]){
|
1587
|
-
|
1657
|
+
if(boolAttrs[fnName]){
|
1658
|
+
shadowData.data[fnName](val, boolVal);
|
1659
|
+
} else {
|
1660
|
+
shadowData.data[fnName](val);
|
1661
|
+
}
|
1588
1662
|
}
|
1589
1663
|
}
|
1590
1664
|
});
|
1591
1665
|
});
|
1592
1666
|
|
1593
1667
|
if(options.replaceUI && 'valueAsNumber' in document.createElement('input')){
|
1594
|
-
var reflectFn = function(
|
1668
|
+
var reflectFn = function(){
|
1595
1669
|
if(webshims.data(this, 'hasShadow')){
|
1596
1670
|
$.prop(this, 'value', $.prop(this, 'value'));
|
1597
1671
|
}
|
@@ -1599,6 +1673,20 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
1599
1673
|
|
1600
1674
|
webshims.onNodeNamesPropertyModify('input', 'valueAsNumber', reflectFn);
|
1601
1675
|
webshims.onNodeNamesPropertyModify('input', 'valueAsDate', reflectFn);
|
1676
|
+
$.each({stepUp: 1, stepDown: -1}, function(name, stepFactor){
|
1677
|
+
var stepDescriptor = webshims.defineNodeNameProperty('input', name, {
|
1678
|
+
prop: {
|
1679
|
+
value: function(){
|
1680
|
+
var ret;
|
1681
|
+
if(stepDescriptor.prop && stepDescriptor.prop._supvalue){
|
1682
|
+
ret = stepDescriptor.prop._supvalue.apply(this, arguments);
|
1683
|
+
reflectFn.apply(this, arguments);
|
1684
|
+
}
|
1685
|
+
return ret;
|
1686
|
+
}
|
1687
|
+
}
|
1688
|
+
});
|
1689
|
+
});
|
1602
1690
|
}
|
1603
1691
|
|
1604
1692
|
var extendType = (function(){
|
@@ -1618,7 +1706,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
1618
1706
|
$(data.orig).removeClass('ws-important-hide');
|
1619
1707
|
$.style( data.orig, 'display', '' );
|
1620
1708
|
var hasButtons, marginR, marginL;
|
1621
|
-
var correctWidth = 0.
|
1709
|
+
var correctWidth = 0.8;
|
1622
1710
|
if(!init || data.orig.offsetWidth){
|
1623
1711
|
hasButtons = data.buttonWrapper && data.buttonWrapper.filter(isVisible).length;
|
1624
1712
|
marginR = $.css( data.orig, 'marginRight');
|
@@ -1642,7 +1730,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
1642
1730
|
;
|
1643
1731
|
} else {
|
1644
1732
|
data.buttonWrapper.css('marginRight', marginR);
|
1645
|
-
correctWidth = data.buttonWrapper.outerWidth(true) +
|
1733
|
+
correctWidth = data.buttonWrapper.outerWidth(true) + correctWidth;
|
1646
1734
|
}
|
1647
1735
|
}
|
1648
1736
|
|
@@ -1800,7 +1888,29 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
1800
1888
|
});
|
1801
1889
|
}
|
1802
1890
|
|
1803
|
-
|
1891
|
+
var replace = {};
|
1892
|
+
|
1893
|
+
|
1894
|
+
if(options.replaceUI){
|
1895
|
+
if( $.isPlainObject(options.replaceUI) ){
|
1896
|
+
$.extend(replace, options.replaceUI);
|
1897
|
+
} else {
|
1898
|
+
$.extend(replace, {
|
1899
|
+
'range': 1,
|
1900
|
+
'number': 1,
|
1901
|
+
'time': 1,
|
1902
|
+
'month': 1,
|
1903
|
+
'date': 1,
|
1904
|
+
'color': 1,
|
1905
|
+
'datetime-local': 1
|
1906
|
+
});
|
1907
|
+
}
|
1908
|
+
}
|
1909
|
+
if(modernizrInputTypes.number && navigator.userAgent.indexOf('Touch') == -1 && ((/MSIE 1[0|1]\.\d/.test(navigator.userAgent)) || (/Trident\/7\.0/.test(navigator.userAgent)))){
|
1910
|
+
replace.number = 1;
|
1911
|
+
}
|
1912
|
+
|
1913
|
+
if(!modernizrInputTypes.range || replace.range){
|
1804
1914
|
extendType('range', {
|
1805
1915
|
_create: function(opts, set){
|
1806
1916
|
var data = $('<span />').insertAfter(opts.orig).rangeUI(opts).data('rangeUi');
|
@@ -1809,9 +1919,9 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
1809
1919
|
});
|
1810
1920
|
}
|
1811
1921
|
|
1812
|
-
|
1922
|
+
|
1813
1923
|
['number', 'time', 'month', 'date', 'color', 'datetime-local'].forEach(function(name){
|
1814
|
-
if(!modernizrInputTypes[name] ||
|
1924
|
+
if(!modernizrInputTypes[name] || replace[name]){
|
1815
1925
|
extendType(name, {
|
1816
1926
|
_create: function(opts, set){
|
1817
1927
|
if(opts.monthSelect){
|