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
@@ -458,7 +458,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
458
458
|
webshims.assumeARIA = supportGetSetAttribute || Modernizr.canvas || Modernizr.video || Modernizr.boxsizing;
|
459
459
|
|
460
460
|
if($('<input type="email" />').attr('type') == 'text' || $('<form />').attr('novalidate') === "" || ('required' in $('<input />')[0].attributes)){
|
461
|
-
webshims.error("IE browser modes are busted in IE10
|
461
|
+
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");
|
462
462
|
}
|
463
463
|
|
464
464
|
if(!$.parseHTML){
|
@@ -1011,7 +1011,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1011
1011
|
$(this.test);
|
1012
1012
|
webshims.ready('WINDOWLOAD', this.test);
|
1013
1013
|
$(document).on('updatelayout', this.handler);
|
1014
|
-
$(window).
|
1014
|
+
$(window).on('resize', this.handler);
|
1015
1015
|
(function(){
|
1016
1016
|
var oldAnimate = $.fn.animate;
|
1017
1017
|
var animationTimer;
|
@@ -1033,6 +1033,13 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1033
1033
|
webshims.docObserve = function(){
|
1034
1034
|
webshims.ready('DOM', function(){
|
1035
1035
|
docObserve.start();
|
1036
|
+
if($.support.boxSizing == null){
|
1037
|
+
$(function(){
|
1038
|
+
if($.support.boxSizing){
|
1039
|
+
docObserve.handler({type: 'boxsizing'});
|
1040
|
+
}
|
1041
|
+
});
|
1042
|
+
}
|
1036
1043
|
});
|
1037
1044
|
};
|
1038
1045
|
return function(nativeElem, shadowElem, opts){
|
@@ -1193,7 +1200,12 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1193
1200
|
havePolyfill[prop] = true;
|
1194
1201
|
|
1195
1202
|
if(descs.reflect){
|
1196
|
-
webshims.propTypes[descs.propType
|
1203
|
+
if(descs.propType && !webshims.propTypes[descs.propType]){
|
1204
|
+
webshims.error('could not finde propType '+ descs.propType);
|
1205
|
+
} else {
|
1206
|
+
webshims.propTypes[descs.propType || 'standard'](descs, prop);
|
1207
|
+
}
|
1208
|
+
|
1197
1209
|
}
|
1198
1210
|
|
1199
1211
|
['prop', 'attr', 'removeAttr'].forEach(function(type){
|
@@ -1379,7 +1391,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1379
1391
|
var notLocal = /:\/\/|^\.*\//;
|
1380
1392
|
var loadRemoteLang = function(data, lang, options){
|
1381
1393
|
var langSrc;
|
1382
|
-
if(lang && options && $.inArray(lang, options.availabeLangs || []) !== -1){
|
1394
|
+
if(lang && options && $.inArray(lang, options.availableLangs || options.availabeLangs || []) !== -1){
|
1383
1395
|
data.loading = true;
|
1384
1396
|
langSrc = options.langSrc;
|
1385
1397
|
if(!notLocal.test(langSrc)){
|
@@ -1539,7 +1551,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1539
1551
|
});
|
1540
1552
|
|
1541
1553
|
})(webshims.$, document);
|
1542
|
-
|
1543
1554
|
webshims.register('form-core', function($, webshims, window, document, undefined, options){
|
1544
1555
|
"use strict";
|
1545
1556
|
|
@@ -2021,12 +2032,12 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
|
|
2021
2032
|
/*
|
2022
2033
|
* implement propType "element" currently only used for list-attribute (will be moved to dom-extend, if needed)
|
2023
2034
|
*/
|
2024
|
-
webshims.propTypes.element = function(descs){
|
2035
|
+
webshims.propTypes.element = function(descs, name){
|
2025
2036
|
webshims.createPropDefault(descs, 'attr');
|
2026
2037
|
if(descs.prop){return;}
|
2027
2038
|
descs.prop = {
|
2028
2039
|
get: function(){
|
2029
|
-
var elem = $.attr(this,
|
2040
|
+
var elem = $.attr(this, name);
|
2030
2041
|
if(elem){
|
2031
2042
|
elem = document.getElementById(elem);
|
2032
2043
|
if(elem && descs.propNodeName && !$.nodeName(elem, descs.propNodeName)){
|
@@ -2050,7 +2061,15 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
|
|
2050
2061
|
if(listSupport && !formsCFG.customDatalist){return;}
|
2051
2062
|
|
2052
2063
|
var initializeDatalist = function(){
|
2053
|
-
|
2064
|
+
|
2065
|
+
var updateDatlistAndOptions = function(){
|
2066
|
+
var id;
|
2067
|
+
if(!$.data(this, 'datalistWidgetData') && (id = $.prop(this, 'id'))){
|
2068
|
+
$('input[list="'+ id +'"], input[data-wslist="'+ id +'"]').eq(0).attr('list', id);
|
2069
|
+
} else {
|
2070
|
+
$(this).triggerHandler('updateDatalist');
|
2071
|
+
}
|
2072
|
+
};
|
2054
2073
|
|
2055
2074
|
var inputListProto = {
|
2056
2075
|
//override autocomplete
|
@@ -2128,6 +2147,7 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
|
|
2128
2147
|
id: value,
|
2129
2148
|
datalist: $.prop(elem, 'list')
|
2130
2149
|
});
|
2150
|
+
elem.setAttribute('data-wslist', value);
|
2131
2151
|
} else {
|
2132
2152
|
elem.setAttribute('list', value);
|
2133
2153
|
}
|
@@ -2139,6 +2159,27 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
|
|
2139
2159
|
propType: 'element',
|
2140
2160
|
propNodeName: 'datalist'
|
2141
2161
|
};
|
2162
|
+
} else {
|
2163
|
+
webshims.defineNodeNameProperties('input', {
|
2164
|
+
list: {
|
2165
|
+
attr: {
|
2166
|
+
get: function(){
|
2167
|
+
var val = webshims.contentAttr(this, 'list');
|
2168
|
+
return (val == null) ? undefined : val;
|
2169
|
+
},
|
2170
|
+
set: function(value){
|
2171
|
+
var elem = this;
|
2172
|
+
webshims.contentAttr(elem, 'list', value);
|
2173
|
+
webshims.objectCreate(options.shadowListProto, undefined, {input: elem, id: value, datalist: $.prop(elem, 'list')});
|
2174
|
+
$(elem).triggerHandler('listdatalistchange');
|
2175
|
+
}
|
2176
|
+
},
|
2177
|
+
initAttr: true,
|
2178
|
+
reflect: true,
|
2179
|
+
propType: 'element',
|
2180
|
+
propNodeName: 'datalist'
|
2181
|
+
}
|
2182
|
+
});
|
2142
2183
|
}
|
2143
2184
|
|
2144
2185
|
webshims.defineNodeNameProperties('input', inputListProto);
|
@@ -2147,9 +2188,7 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
|
|
2147
2188
|
contextElem
|
2148
2189
|
.filter('datalist > select, datalist, datalist > option, datalist > select > option')
|
2149
2190
|
.closest('datalist')
|
2150
|
-
.each(
|
2151
|
-
$(this).triggerHandler('updateDatalist');
|
2152
|
-
})
|
2191
|
+
.each(updateDatlistAndOptions)
|
2153
2192
|
;
|
2154
2193
|
});
|
2155
2194
|
};
|
@@ -2194,6 +2233,7 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
|
|
2194
2233
|
this.hasViewableData = true;
|
2195
2234
|
this._autocomplete = $.attr(opts.input, 'autocomplete');
|
2196
2235
|
$.data(opts.input, 'datalistWidget', this);
|
2236
|
+
$.data(datalist, 'datalistWidgetData', this);
|
2197
2237
|
|
2198
2238
|
lazyLoad('WINDOWLOAD');
|
2199
2239
|
|
@@ -458,7 +458,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
458
458
|
webshims.assumeARIA = supportGetSetAttribute || Modernizr.canvas || Modernizr.video || Modernizr.boxsizing;
|
459
459
|
|
460
460
|
if($('<input type="email" />').attr('type') == 'text' || $('<form />').attr('novalidate') === "" || ('required' in $('<input />')[0].attributes)){
|
461
|
-
webshims.error("IE browser modes are busted in IE10
|
461
|
+
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");
|
462
462
|
}
|
463
463
|
|
464
464
|
if(!$.parseHTML){
|
@@ -1011,7 +1011,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1011
1011
|
$(this.test);
|
1012
1012
|
webshims.ready('WINDOWLOAD', this.test);
|
1013
1013
|
$(document).on('updatelayout', this.handler);
|
1014
|
-
$(window).
|
1014
|
+
$(window).on('resize', this.handler);
|
1015
1015
|
(function(){
|
1016
1016
|
var oldAnimate = $.fn.animate;
|
1017
1017
|
var animationTimer;
|
@@ -1033,6 +1033,13 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1033
1033
|
webshims.docObserve = function(){
|
1034
1034
|
webshims.ready('DOM', function(){
|
1035
1035
|
docObserve.start();
|
1036
|
+
if($.support.boxSizing == null){
|
1037
|
+
$(function(){
|
1038
|
+
if($.support.boxSizing){
|
1039
|
+
docObserve.handler({type: 'boxsizing'});
|
1040
|
+
}
|
1041
|
+
});
|
1042
|
+
}
|
1036
1043
|
});
|
1037
1044
|
};
|
1038
1045
|
return function(nativeElem, shadowElem, opts){
|
@@ -1193,7 +1200,12 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1193
1200
|
havePolyfill[prop] = true;
|
1194
1201
|
|
1195
1202
|
if(descs.reflect){
|
1196
|
-
webshims.propTypes[descs.propType
|
1203
|
+
if(descs.propType && !webshims.propTypes[descs.propType]){
|
1204
|
+
webshims.error('could not finde propType '+ descs.propType);
|
1205
|
+
} else {
|
1206
|
+
webshims.propTypes[descs.propType || 'standard'](descs, prop);
|
1207
|
+
}
|
1208
|
+
|
1197
1209
|
}
|
1198
1210
|
|
1199
1211
|
['prop', 'attr', 'removeAttr'].forEach(function(type){
|
@@ -1379,7 +1391,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1379
1391
|
var notLocal = /:\/\/|^\.*\//;
|
1380
1392
|
var loadRemoteLang = function(data, lang, options){
|
1381
1393
|
var langSrc;
|
1382
|
-
if(lang && options && $.inArray(lang, options.availabeLangs || []) !== -1){
|
1394
|
+
if(lang && options && $.inArray(lang, options.availableLangs || options.availabeLangs || []) !== -1){
|
1383
1395
|
data.loading = true;
|
1384
1396
|
langSrc = options.langSrc;
|
1385
1397
|
if(!notLocal.test(langSrc)){
|
@@ -1539,7 +1551,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1539
1551
|
});
|
1540
1552
|
|
1541
1553
|
})(webshims.$, document);
|
1542
|
-
|
1543
1554
|
webshims.register('form-core', function($, webshims, window, document, undefined, options){
|
1544
1555
|
"use strict";
|
1545
1556
|
|
@@ -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)){
|
@@ -1087,7 +1099,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1087
1099
|
});
|
1088
1100
|
|
1089
1101
|
})(webshims.$, document);
|
1090
|
-
|
1091
1102
|
(function($){
|
1092
1103
|
|
1093
1104
|
var id = 0;
|
@@ -1106,9 +1117,9 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1106
1117
|
var i;
|
1107
1118
|
|
1108
1119
|
|
1109
|
-
this.element.addClass('ws-range').attr({role: 'slider'}).append('<span class="ws-range-min" /><span class="ws-range-rail"><span class="ws-range-thumb" /></span>');
|
1110
|
-
this.trail = $('.ws-range-
|
1111
|
-
this.range = $('.ws-range-
|
1120
|
+
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>');
|
1121
|
+
this.trail = $('.ws-range-track', this.element);
|
1122
|
+
this.range = $('.ws-range-progress ', this.element);
|
1112
1123
|
this.thumb = $('.ws-range-thumb', this.trail);
|
1113
1124
|
|
1114
1125
|
this.updateMetrics();
|
@@ -1118,6 +1129,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1118
1129
|
for(i = 0; i < createOpts.length; i++){
|
1119
1130
|
this[createOpts[i]](this.options[createOpts[i]]);
|
1120
1131
|
}
|
1132
|
+
|
1121
1133
|
this.value = this._value;
|
1122
1134
|
this.value(this.options.value);
|
1123
1135
|
this.initDataList();
|
@@ -1356,7 +1368,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1356
1368
|
}
|
1357
1369
|
},
|
1358
1370
|
addBindings: function(){
|
1359
|
-
var leftOffset, widgetUnits, hasFocus;
|
1371
|
+
var leftOffset, widgetUnits, hasFocus, isActive;
|
1360
1372
|
var that = this;
|
1361
1373
|
var o = this.options;
|
1362
1374
|
|
@@ -1386,8 +1398,28 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1386
1398
|
}
|
1387
1399
|
};
|
1388
1400
|
})();
|
1389
|
-
|
1401
|
+
var normalizeTouch = (function(){
|
1402
|
+
var types = {
|
1403
|
+
touchstart: 1,
|
1404
|
+
touchend: 1,
|
1405
|
+
touchmove: 1
|
1406
|
+
};
|
1407
|
+
var normalize = ['pageX', 'pageY'];
|
1408
|
+
return function(e){
|
1409
|
+
if(types[e.type] && e.originalEvent && e.originalEvent.touches && e.originalEvent.touches.length){
|
1410
|
+
for(var i = 0; i < normalize.length; i++){
|
1411
|
+
e[normalize[i]] = e.originalEvent.touches[0][normalize[i]];
|
1412
|
+
}
|
1413
|
+
|
1414
|
+
}
|
1415
|
+
return e;
|
1416
|
+
};
|
1417
|
+
})();
|
1390
1418
|
var setValueFromPos = function(e, animate){
|
1419
|
+
if(e.type == 'touchmove'){
|
1420
|
+
e.preventDefault();
|
1421
|
+
normalizeTouch(e);
|
1422
|
+
}
|
1391
1423
|
|
1392
1424
|
var val = that.getStepedValueFromPos((e[that.dirs.mouse] - leftOffset) * widgetUnits);
|
1393
1425
|
if(val != o.value){
|
@@ -1404,18 +1436,25 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1404
1436
|
eventTimer.call('change', o.value);
|
1405
1437
|
}
|
1406
1438
|
that.addRemoveClass('ws-active');
|
1407
|
-
$(document).off('mousemove', setValueFromPos).off('mouseup', remove);
|
1439
|
+
$(document).off('mousemove touchmove', setValueFromPos).off('mouseup touchend', remove);
|
1408
1440
|
$(window).off('blur', removeWin);
|
1441
|
+
isActive = false;
|
1409
1442
|
};
|
1410
1443
|
var removeWin = function(e){
|
1411
1444
|
if(e.target == window){remove();}
|
1412
1445
|
};
|
1413
1446
|
var add = function(e){
|
1414
1447
|
var outerWidth;
|
1448
|
+
|
1449
|
+
if(isActive || (e.type == 'touchstart' && (!e.originalEvent || !e.originalEvent.touches || e.originalEvent.touches.length != 1))){
|
1450
|
+
return;
|
1451
|
+
}
|
1415
1452
|
e.preventDefault();
|
1416
|
-
|
1453
|
+
|
1454
|
+
$(document).off('mousemove touchmove', setValueFromPos).off('mouseup touchend', remove);
|
1417
1455
|
$(window).off('blur', removeWin);
|
1418
1456
|
if(!o.readonly && !o.disabled){
|
1457
|
+
normalizeTouch(e);
|
1419
1458
|
that.element.focus();
|
1420
1459
|
that.addRemoveClass('ws-active', true);
|
1421
1460
|
leftOffset = that.element.focus().offset();
|
@@ -1425,20 +1464,27 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1425
1464
|
leftOffset = leftOffset[that.dirs.pos];
|
1426
1465
|
widgetUnits = 100 / widgetUnits;
|
1427
1466
|
setValueFromPos(e, o.animate);
|
1467
|
+
isActive = true;
|
1428
1468
|
$(document)
|
1429
|
-
.on(
|
1430
|
-
|
1431
|
-
|
1432
|
-
|
1469
|
+
.on(e.type == 'touchstart' ?
|
1470
|
+
{
|
1471
|
+
touchend: remove,
|
1472
|
+
touchmove: setValueFromPos
|
1473
|
+
} :
|
1474
|
+
{
|
1475
|
+
mouseup: remove,
|
1476
|
+
mousemove: setValueFromPos
|
1477
|
+
}
|
1478
|
+
)
|
1433
1479
|
;
|
1434
1480
|
$(window).on('blur', removeWin);
|
1435
1481
|
e.stopPropagation();
|
1436
1482
|
}
|
1437
1483
|
};
|
1438
1484
|
var elementEvts = {
|
1439
|
-
mousedown: add,
|
1485
|
+
'touchstart mousedown': add,
|
1440
1486
|
focus: function(e){
|
1441
|
-
if(!o.disabled){
|
1487
|
+
if(!o.disabled && !hasFocus){
|
1442
1488
|
eventTimer.init('input', o.value);
|
1443
1489
|
eventTimer.init('change', o.value);
|
1444
1490
|
that.addRemoveClass('ws-focus', true);
|
@@ -1501,6 +1547,20 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1501
1547
|
this.thumb.on({
|
1502
1548
|
mousedown: add
|
1503
1549
|
});
|
1550
|
+
|
1551
|
+
if(this.orig){
|
1552
|
+
$(this.orig).jProp('form').on('reset', function(){
|
1553
|
+
var val = $.prop(that.orig, 'value');
|
1554
|
+
that.value(val);
|
1555
|
+
setTimeout(function(){
|
1556
|
+
var val2 = $.prop(that.orig, 'value');
|
1557
|
+
if(val != val2){
|
1558
|
+
that.value(val2);
|
1559
|
+
}
|
1560
|
+
}, 4);
|
1561
|
+
});
|
1562
|
+
}
|
1563
|
+
|
1504
1564
|
if (window.webshims) {
|
1505
1565
|
webshims.ready('WINDOWLOAD', function(){
|
1506
1566
|
webshims.ready('dom-support', function(){
|
@@ -1606,8 +1666,8 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
1606
1666
|
var str;
|
1607
1667
|
return function(){
|
1608
1668
|
if(!str){
|
1609
|
-
str = ('<option></option>')+$.map(monthDigits, function(val){
|
1610
|
-
return '<option>'+val+'</option>';
|
1669
|
+
str = ('<option value=""></option>')+$.map(monthDigits, function(val){
|
1670
|
+
return '<option value="'+val+'"]>'+val+'</option>';
|
1611
1671
|
}).join('');
|
1612
1672
|
}
|
1613
1673
|
return str;
|
@@ -1629,7 +1689,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
1629
1689
|
splits: [$('<input type="text" class="yy" size="4" inputmode="numeric" />')[0]]
|
1630
1690
|
};
|
1631
1691
|
if(opts.monthSelect){
|
1632
|
-
obj.splits.push($('<select class="mm">'+getMonthOptions()+'</select>')[0]);
|
1692
|
+
obj.splits.push($('<select class="mm">'+getMonthOptions(opts)+'</select>')[0]);
|
1633
1693
|
} else {
|
1634
1694
|
obj.splits.push($('<input type="text" class="mm" inputmode="numeric" maxlength="2" size="2" />')[0]);
|
1635
1695
|
}
|
@@ -1664,7 +1724,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
1664
1724
|
splits: [$('<input type="text" class="yy" inputmode="numeric" size="4" />')[0]]
|
1665
1725
|
};
|
1666
1726
|
if(opts.monthSelect){
|
1667
|
-
obj.splits.push($('<select class="mm ws-spin">'+getMonthOptions()+'</select>')[0]);
|
1727
|
+
obj.splits.push($('<select class="mm ws-spin">'+getMonthOptions(opts)+'</select>')[0]);
|
1668
1728
|
} else {
|
1669
1729
|
obj.splits.push($('<input type="text" class="mm ws-spin" />')[0]);
|
1670
1730
|
if(opts.onlyMonthDigits){
|
@@ -1756,6 +1816,9 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
1756
1816
|
month: {
|
1757
1817
|
currentText: 'Aktueller Monat'
|
1758
1818
|
},
|
1819
|
+
time: {
|
1820
|
+
currentText: 'Jetzt'
|
1821
|
+
},
|
1759
1822
|
date: {
|
1760
1823
|
close: 'schließen',
|
1761
1824
|
clear: 'Löschen',
|
@@ -1793,6 +1856,9 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
1793
1856
|
month: {
|
1794
1857
|
currentText: 'This month'
|
1795
1858
|
},
|
1859
|
+
time: {
|
1860
|
+
"currentText": "Now"
|
1861
|
+
},
|
1796
1862
|
date: {
|
1797
1863
|
"closeText": "Done",
|
1798
1864
|
clear: 'Clear',
|
@@ -1855,6 +1921,12 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
1855
1921
|
if(!langCfg['datetime-localSigns']){
|
1856
1922
|
langCfg['datetime-localSigns'] = langCfg.dateSigns+langCfg.timeSigns;
|
1857
1923
|
}
|
1924
|
+
if(!langCfg['datetime-local']){
|
1925
|
+
langCfg['datetime-local'] = {};
|
1926
|
+
}
|
1927
|
+
if(!langCfg['datetime-local'].currentText && langCfg.time.currentText){
|
1928
|
+
langCfg['datetime-local'].currentText = langCfg.time.currentText;
|
1929
|
+
}
|
1858
1930
|
};
|
1859
1931
|
var triggerLocaleChange = function(){
|
1860
1932
|
processLangCFG(curCfg);
|
@@ -1922,6 +1994,9 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
1922
1994
|
} else {
|
1923
1995
|
fVal = 0;
|
1924
1996
|
}
|
1997
|
+
if(val[0] === '00'){
|
1998
|
+
val[0] = '12';
|
1999
|
+
}
|
1925
2000
|
val = $.trim(val.join(':')) + ' '+ curCfg.meridian[fVal];
|
1926
2001
|
}
|
1927
2002
|
return val;
|
@@ -2006,6 +2081,9 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
2006
2081
|
time: function(val){
|
2007
2082
|
var fVal;
|
2008
2083
|
if(val && curCfg.meridian){
|
2084
|
+
if(val.substr(0,2) === "12"){
|
2085
|
+
val = "00" + val.substr(2);
|
2086
|
+
}
|
2009
2087
|
if(val.indexOf(curCfg.meridian[1]) != -1){
|
2010
2088
|
val = val.split(':');
|
2011
2089
|
fVal = (val[0] * 1);
|
@@ -2091,7 +2169,10 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
2091
2169
|
if(hintValue.length == 2){
|
2092
2170
|
hintValue = opts.splitInput ?
|
2093
2171
|
hintValue :
|
2094
|
-
curCfg.
|
2172
|
+
curCfg.date.showMonthAfterYear ?
|
2173
|
+
hintValue[0] +' '+hintValue[1] :
|
2174
|
+
|
2175
|
+
hintValue[1] +' '+ hintValue[0];
|
2095
2176
|
} else {
|
2096
2177
|
hintValue = opts.splitInput ?
|
2097
2178
|
[val, val] :
|
@@ -2466,10 +2547,18 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
2466
2547
|
}
|
2467
2548
|
try {
|
2468
2549
|
that.elemHelper[name](factor);
|
2550
|
+
|
2469
2551
|
ret = that.elemHelper.prop('value');
|
2552
|
+
|
2553
|
+
} catch (er) {
|
2554
|
+
if(!o.value && that.maxAsNumber >= that.minAsNumber){
|
2555
|
+
ret = o.defValue;
|
2556
|
+
}
|
2557
|
+
}
|
2558
|
+
if(ret !== false && o.value != ret){
|
2470
2559
|
that.value(ret);
|
2471
2560
|
eventTimer.call('input', ret);
|
2472
|
-
}
|
2561
|
+
}
|
2473
2562
|
return ret;
|
2474
2563
|
}
|
2475
2564
|
};
|
@@ -2535,15 +2624,6 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
2535
2624
|
|
2536
2625
|
initChangeEvents();
|
2537
2626
|
},
|
2538
|
-
value: function(val, force){
|
2539
|
-
if(!this._init || force || val !== this.options.value){
|
2540
|
-
this.element.val(this.formatValue(val));
|
2541
|
-
this.options.value = val;
|
2542
|
-
this._propertyChange('value');
|
2543
|
-
this.mirrorValidity();
|
2544
|
-
}
|
2545
|
-
|
2546
|
-
},
|
2547
2627
|
required: function(val, boolVal){
|
2548
2628
|
this.inputElements.attr({'aria-required': ''+boolVal});
|
2549
2629
|
this.mirrorValidity();
|
@@ -2560,7 +2640,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
2560
2640
|
formatValue: function(val, noSplit){
|
2561
2641
|
return formatVal[this.type](val, noSplit === false ? false : this.options);
|
2562
2642
|
},
|
2563
|
-
createOpts: ['readonly', 'title', 'disabled', 'tabindex', 'placeholder', 'value', 'required'],
|
2643
|
+
createOpts: ['readonly', 'title', 'disabled', 'tabindex', 'placeholder', 'defaultValue', 'value', 'required'],
|
2564
2644
|
placeholder: function(val){
|
2565
2645
|
var options = this.options;
|
2566
2646
|
options.placeholder = val;
|
@@ -2630,6 +2710,16 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
2630
2710
|
}
|
2631
2711
|
};
|
2632
2712
|
|
2713
|
+
['defaultValue', 'value'].forEach(function(name){
|
2714
|
+
wsWidgetProto[name] = function(val, force){
|
2715
|
+
if(!this._init || force || val !== this.options[name]){
|
2716
|
+
this.element.prop(name, this.formatValue(val));
|
2717
|
+
this.options[name] = val;
|
2718
|
+
this._propertyChange(name);
|
2719
|
+
this.mirrorValidity();
|
2720
|
+
}
|
2721
|
+
};
|
2722
|
+
});
|
2633
2723
|
|
2634
2724
|
['readonly', 'disabled'].forEach(function(name){
|
2635
2725
|
var isDisabled = name == 'disabled';
|
@@ -2683,7 +2773,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
2683
2773
|
}
|
2684
2774
|
this._init = true;
|
2685
2775
|
},
|
2686
|
-
createOpts: ['step', 'min', 'max', 'readonly', 'title', 'disabled', 'tabindex', 'placeholder', 'value', 'required'],
|
2776
|
+
createOpts: ['step', 'min', 'max', 'readonly', 'title', 'disabled', 'tabindex', 'placeholder', 'defaultValue', 'value', 'required'],
|
2687
2777
|
_addSplitInputs: function(){
|
2688
2778
|
if(!this.inputElements){
|
2689
2779
|
var create = splitInputs[this.type]._create(this.options);
|
@@ -2753,9 +2843,47 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
2753
2843
|
this.options.step = val;
|
2754
2844
|
this.elemHelper.prop('step', retDefault(val, defStep.step));
|
2755
2845
|
this.mirrorValidity();
|
2846
|
+
},
|
2847
|
+
_beforeValue: function(val){
|
2848
|
+
this.valueAsNumber = this.asNumber(val);
|
2849
|
+
this.options.value = val;
|
2850
|
+
|
2851
|
+
if(isNaN(this.valueAsNumber) || (!isNaN(this.minAsNumber) && this.valueAsNumber < this.minAsNumber) || (!isNaN(this.maxAsNumber) && this.valueAsNumber > this.maxAsNumber)){
|
2852
|
+
this._setStartInRange();
|
2853
|
+
} else {
|
2854
|
+
this.elemHelper.prop('value', val);
|
2855
|
+
this.options.defValue = "";
|
2856
|
+
}
|
2756
2857
|
}
|
2757
2858
|
});
|
2758
2859
|
|
2860
|
+
['defaultValue', 'value'].forEach(function(name){
|
2861
|
+
var isValue = name == 'value';
|
2862
|
+
spinBtnProto[name] = function(val, force){
|
2863
|
+
if(!this._init || force || this.options[name] !== val){
|
2864
|
+
if(isValue){
|
2865
|
+
this._beforeValue(val);
|
2866
|
+
}
|
2867
|
+
|
2868
|
+
val = formatVal[this.type](val, this.options);
|
2869
|
+
if(this.options.splitInput){
|
2870
|
+
$.each(this.splits, function(i, elem){
|
2871
|
+
var setOption;
|
2872
|
+
if(!(name in elem) && !isValue && $.nodeName(elem, 'select')){
|
2873
|
+
$('option[value="'+ val[i] +'"]', elem).prop('defaultSelected', true);
|
2874
|
+
} else {
|
2875
|
+
$.prop(elem, name, val[i]);
|
2876
|
+
}
|
2877
|
+
});
|
2878
|
+
} else {
|
2879
|
+
this.element.prop(name, val);
|
2880
|
+
}
|
2881
|
+
this._propertyChange(name);
|
2882
|
+
this.mirrorValidity();
|
2883
|
+
}
|
2884
|
+
};
|
2885
|
+
});
|
2886
|
+
|
2759
2887
|
$.each({min: 1, max: -1}, function(name, factor){
|
2760
2888
|
var numName = name +'AsNumber';
|
2761
2889
|
spinBtnProto[name] = function(val){
|
@@ -3159,10 +3287,12 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
3159
3287
|
var inputTypes = {
|
3160
3288
|
|
3161
3289
|
};
|
3290
|
+
var boolAttrs = {disabled: 1, required: 1, readonly: 1};
|
3162
3291
|
var copyProps = [
|
3163
3292
|
'disabled',
|
3164
3293
|
'readonly',
|
3165
3294
|
'value',
|
3295
|
+
'defaultValue',
|
3166
3296
|
'min',
|
3167
3297
|
'max',
|
3168
3298
|
'step',
|
@@ -3180,14 +3310,18 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
3180
3310
|
if(!stopCircular){
|
3181
3311
|
var shadowData = webshims.data(this, 'shadowData');
|
3182
3312
|
if(shadowData && shadowData.data && shadowData.nativeElement === this && shadowData.data[fnName]){
|
3183
|
-
|
3313
|
+
if(boolAttrs[fnName]){
|
3314
|
+
shadowData.data[fnName](val, boolVal);
|
3315
|
+
} else {
|
3316
|
+
shadowData.data[fnName](val);
|
3317
|
+
}
|
3184
3318
|
}
|
3185
3319
|
}
|
3186
3320
|
});
|
3187
3321
|
});
|
3188
3322
|
|
3189
3323
|
if(options.replaceUI && 'valueAsNumber' in document.createElement('input')){
|
3190
|
-
var reflectFn = function(
|
3324
|
+
var reflectFn = function(){
|
3191
3325
|
if(webshims.data(this, 'hasShadow')){
|
3192
3326
|
$.prop(this, 'value', $.prop(this, 'value'));
|
3193
3327
|
}
|
@@ -3195,6 +3329,20 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
3195
3329
|
|
3196
3330
|
webshims.onNodeNamesPropertyModify('input', 'valueAsNumber', reflectFn);
|
3197
3331
|
webshims.onNodeNamesPropertyModify('input', 'valueAsDate', reflectFn);
|
3332
|
+
$.each({stepUp: 1, stepDown: -1}, function(name, stepFactor){
|
3333
|
+
var stepDescriptor = webshims.defineNodeNameProperty('input', name, {
|
3334
|
+
prop: {
|
3335
|
+
value: function(){
|
3336
|
+
var ret;
|
3337
|
+
if(stepDescriptor.prop && stepDescriptor.prop._supvalue){
|
3338
|
+
ret = stepDescriptor.prop._supvalue.apply(this, arguments);
|
3339
|
+
reflectFn.apply(this, arguments);
|
3340
|
+
}
|
3341
|
+
return ret;
|
3342
|
+
}
|
3343
|
+
}
|
3344
|
+
});
|
3345
|
+
});
|
3198
3346
|
}
|
3199
3347
|
|
3200
3348
|
var extendType = (function(){
|
@@ -3214,7 +3362,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
3214
3362
|
$(data.orig).removeClass('ws-important-hide');
|
3215
3363
|
$.style( data.orig, 'display', '' );
|
3216
3364
|
var hasButtons, marginR, marginL;
|
3217
|
-
var correctWidth = 0.
|
3365
|
+
var correctWidth = 0.8;
|
3218
3366
|
if(!init || data.orig.offsetWidth){
|
3219
3367
|
hasButtons = data.buttonWrapper && data.buttonWrapper.filter(isVisible).length;
|
3220
3368
|
marginR = $.css( data.orig, 'marginRight');
|
@@ -3238,7 +3386,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
3238
3386
|
;
|
3239
3387
|
} else {
|
3240
3388
|
data.buttonWrapper.css('marginRight', marginR);
|
3241
|
-
correctWidth = data.buttonWrapper.outerWidth(true) +
|
3389
|
+
correctWidth = data.buttonWrapper.outerWidth(true) + correctWidth;
|
3242
3390
|
}
|
3243
3391
|
}
|
3244
3392
|
|
@@ -3396,7 +3544,29 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
3396
3544
|
});
|
3397
3545
|
}
|
3398
3546
|
|
3399
|
-
|
3547
|
+
var replace = {};
|
3548
|
+
|
3549
|
+
|
3550
|
+
if(options.replaceUI){
|
3551
|
+
if( $.isPlainObject(options.replaceUI) ){
|
3552
|
+
$.extend(replace, options.replaceUI);
|
3553
|
+
} else {
|
3554
|
+
$.extend(replace, {
|
3555
|
+
'range': 1,
|
3556
|
+
'number': 1,
|
3557
|
+
'time': 1,
|
3558
|
+
'month': 1,
|
3559
|
+
'date': 1,
|
3560
|
+
'color': 1,
|
3561
|
+
'datetime-local': 1
|
3562
|
+
});
|
3563
|
+
}
|
3564
|
+
}
|
3565
|
+
if(modernizrInputTypes.number && navigator.userAgent.indexOf('Touch') == -1 && ((/MSIE 1[0|1]\.\d/.test(navigator.userAgent)) || (/Trident\/7\.0/.test(navigator.userAgent)))){
|
3566
|
+
replace.number = 1;
|
3567
|
+
}
|
3568
|
+
|
3569
|
+
if(!modernizrInputTypes.range || replace.range){
|
3400
3570
|
extendType('range', {
|
3401
3571
|
_create: function(opts, set){
|
3402
3572
|
var data = $('<span />').insertAfter(opts.orig).rangeUI(opts).data('rangeUi');
|
@@ -3405,9 +3575,9 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
3405
3575
|
});
|
3406
3576
|
}
|
3407
3577
|
|
3408
|
-
|
3578
|
+
|
3409
3579
|
['number', 'time', 'month', 'date', 'color', 'datetime-local'].forEach(function(name){
|
3410
|
-
if(!modernizrInputTypes[name] ||
|
3580
|
+
if(!modernizrInputTypes[name] || replace[name]){
|
3411
3581
|
extendType(name, {
|
3412
3582
|
_create: function(opts, set){
|
3413
3583
|
if(opts.monthSelect){
|
@@ -3482,12 +3652,12 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
|
|
3482
3652
|
/*
|
3483
3653
|
* implement propType "element" currently only used for list-attribute (will be moved to dom-extend, if needed)
|
3484
3654
|
*/
|
3485
|
-
webshims.propTypes.element = function(descs){
|
3655
|
+
webshims.propTypes.element = function(descs, name){
|
3486
3656
|
webshims.createPropDefault(descs, 'attr');
|
3487
3657
|
if(descs.prop){return;}
|
3488
3658
|
descs.prop = {
|
3489
3659
|
get: function(){
|
3490
|
-
var elem = $.attr(this,
|
3660
|
+
var elem = $.attr(this, name);
|
3491
3661
|
if(elem){
|
3492
3662
|
elem = document.getElementById(elem);
|
3493
3663
|
if(elem && descs.propNodeName && !$.nodeName(elem, descs.propNodeName)){
|
@@ -3511,7 +3681,15 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
|
|
3511
3681
|
if(listSupport && !formsCFG.customDatalist){return;}
|
3512
3682
|
|
3513
3683
|
var initializeDatalist = function(){
|
3514
|
-
|
3684
|
+
|
3685
|
+
var updateDatlistAndOptions = function(){
|
3686
|
+
var id;
|
3687
|
+
if(!$.data(this, 'datalistWidgetData') && (id = $.prop(this, 'id'))){
|
3688
|
+
$('input[list="'+ id +'"], input[data-wslist="'+ id +'"]').eq(0).attr('list', id);
|
3689
|
+
} else {
|
3690
|
+
$(this).triggerHandler('updateDatalist');
|
3691
|
+
}
|
3692
|
+
};
|
3515
3693
|
|
3516
3694
|
var inputListProto = {
|
3517
3695
|
//override autocomplete
|
@@ -3589,6 +3767,7 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
|
|
3589
3767
|
id: value,
|
3590
3768
|
datalist: $.prop(elem, 'list')
|
3591
3769
|
});
|
3770
|
+
elem.setAttribute('data-wslist', value);
|
3592
3771
|
} else {
|
3593
3772
|
elem.setAttribute('list', value);
|
3594
3773
|
}
|
@@ -3600,6 +3779,27 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
|
|
3600
3779
|
propType: 'element',
|
3601
3780
|
propNodeName: 'datalist'
|
3602
3781
|
};
|
3782
|
+
} else {
|
3783
|
+
webshims.defineNodeNameProperties('input', {
|
3784
|
+
list: {
|
3785
|
+
attr: {
|
3786
|
+
get: function(){
|
3787
|
+
var val = webshims.contentAttr(this, 'list');
|
3788
|
+
return (val == null) ? undefined : val;
|
3789
|
+
},
|
3790
|
+
set: function(value){
|
3791
|
+
var elem = this;
|
3792
|
+
webshims.contentAttr(elem, 'list', value);
|
3793
|
+
webshims.objectCreate(options.shadowListProto, undefined, {input: elem, id: value, datalist: $.prop(elem, 'list')});
|
3794
|
+
$(elem).triggerHandler('listdatalistchange');
|
3795
|
+
}
|
3796
|
+
},
|
3797
|
+
initAttr: true,
|
3798
|
+
reflect: true,
|
3799
|
+
propType: 'element',
|
3800
|
+
propNodeName: 'datalist'
|
3801
|
+
}
|
3802
|
+
});
|
3603
3803
|
}
|
3604
3804
|
|
3605
3805
|
webshims.defineNodeNameProperties('input', inputListProto);
|
@@ -3608,9 +3808,7 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
|
|
3608
3808
|
contextElem
|
3609
3809
|
.filter('datalist > select, datalist, datalist > option, datalist > select > option')
|
3610
3810
|
.closest('datalist')
|
3611
|
-
.each(
|
3612
|
-
$(this).triggerHandler('updateDatalist');
|
3613
|
-
})
|
3811
|
+
.each(updateDatlistAndOptions)
|
3614
3812
|
;
|
3615
3813
|
});
|
3616
3814
|
};
|
@@ -3655,6 +3853,7 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
|
|
3655
3853
|
this.hasViewableData = true;
|
3656
3854
|
this._autocomplete = $.attr(opts.input, 'autocomplete');
|
3657
3855
|
$.data(opts.input, 'datalistWidget', this);
|
3856
|
+
$.data(datalist, 'datalistWidgetData', this);
|
3658
3857
|
|
3659
3858
|
lazyLoad('WINDOWLOAD');
|
3660
3859
|
|