webshims-rails 1.10.10 → 1.10.11
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/MIT_LICENSE.txt +3 -1
- data/lib/webshims-rails/version.rb +2 -2
- data/vendor/assets/javascripts/webshims/polyfiller.js +8 -9
- data/vendor/assets/javascripts/webshims/shims/combos/1.js +91 -58
- data/vendor/assets/javascripts/webshims/shims/combos/10.js +247 -101
- data/vendor/assets/javascripts/webshims/shims/combos/11.js +241 -96
- data/vendor/assets/javascripts/webshims/shims/combos/12.js +79 -58
- data/vendor/assets/javascripts/webshims/shims/combos/13.js +79 -12
- data/vendor/assets/javascripts/webshims/shims/combos/14.js +6 -5
- data/vendor/assets/javascripts/webshims/shims/combos/15.js +68 -75
- data/vendor/assets/javascripts/webshims/shims/combos/16.js +147 -133
- data/vendor/assets/javascripts/webshims/shims/combos/17.js +288 -143
- data/vendor/assets/javascripts/webshims/shims/combos/18.js +288 -143
- data/vendor/assets/javascripts/webshims/shims/combos/19.js +85 -63
- data/vendor/assets/javascripts/webshims/shims/combos/2.js +97 -91
- data/vendor/assets/javascripts/webshims/shims/combos/20.js +85 -17
- data/vendor/assets/javascripts/webshims/shims/combos/21.js +17 -17
- data/vendor/assets/javascripts/webshims/shims/combos/23.js +79 -58
- data/vendor/assets/javascripts/webshims/shims/combos/24.js +17 -16
- data/vendor/assets/javascripts/webshims/shims/combos/25.js +85 -63
- data/vendor/assets/javascripts/webshims/shims/combos/26.js +6 -5
- data/vendor/assets/javascripts/webshims/shims/combos/27.js +0 -46
- data/vendor/assets/javascripts/webshims/shims/combos/28.js +6 -5
- data/vendor/assets/javascripts/webshims/shims/combos/29.js +13 -6
- data/vendor/assets/javascripts/webshims/shims/combos/3.js +47 -31
- data/vendor/assets/javascripts/webshims/shims/combos/30.js +47 -59
- data/vendor/assets/javascripts/webshims/shims/combos/31.js +18 -33
- data/vendor/assets/javascripts/webshims/shims/combos/4.js +35 -31
- data/vendor/assets/javascripts/webshims/shims/combos/5.js +304 -157
- data/vendor/assets/javascripts/webshims/shims/combos/6.js +304 -185
- data/vendor/assets/javascripts/webshims/shims/combos/7.js +126 -117
- data/vendor/assets/javascripts/webshims/shims/combos/8.js +126 -89
- data/vendor/assets/javascripts/webshims/shims/combos/9.js +247 -129
- data/vendor/assets/javascripts/webshims/shims/dom-extend.js +6 -5
- data/vendor/assets/javascripts/webshims/shims/form-core.js +12 -0
- data/vendor/assets/javascripts/webshims/shims/form-datalist-lazy.js +3 -0
- data/vendor/assets/javascripts/webshims/shims/form-datalist.js +0 -28
- data/vendor/assets/javascripts/webshims/shims/form-message.js +29 -26
- data/vendor/assets/javascripts/webshims/shims/form-native-extend.js +16 -14
- data/vendor/assets/javascripts/webshims/shims/form-number-date-api.js +47 -47
- data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +241 -96
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +21 -16
- data/vendor/assets/javascripts/webshims/shims/form-validation.js +17 -16
- data/vendor/assets/javascripts/webshims/shims/forms-picker.js +173 -41
- data/vendor/assets/javascripts/webshims/shims/geolocation.js +17 -17
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ar.js +35 -33
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ch-ZN.js +32 -30
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-de.txt +17 -13
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-el.js +32 -30
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-en.txt +4 -1
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-es.js +30 -28
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-fr.js +35 -32
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-he.js +32 -30
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-hi.js +32 -30
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-hu.js +32 -30
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-it.js +32 -30
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ja.js +32 -30
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-lt.js +37 -36
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-nl.js +32 -30
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pl.js +5 -2
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pt-PT.js +33 -30
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ru.js +3 -1
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-sv.js +32 -30
- data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +79 -12
- data/vendor/assets/javascripts/webshims/shims/styles/forms.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +126 -121
- data/vendor/assets/javascripts/webshims/shims/styles/shim.css +100 -111
- data/vendor/assets/javascripts/webshims/shims/swfmini.js +0 -46
- data/vendor/assets/javascripts/webshims/shims/track-ui.js +13 -6
- data/webshims-rails.gemspec +1 -0
- metadata +4 -3
checksums.yaml
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
!binary "U0hBMQ==":
|
|
3
3
|
metadata.gz: !binary |-
|
|
4
|
-
|
|
4
|
+
MTdiZDJkNTE3NGI2M2E3YjdjOTMyYWYzODM5OWM4YWRmZjlmOGQ2Yg==
|
|
5
5
|
data.tar.gz: !binary |-
|
|
6
|
-
|
|
6
|
+
YmQ1MzQyNDk1MTZkYjIxMTI4MzAyOTY4ZGFlN2UwYjY0OGRmMmM3Yw==
|
|
7
7
|
!binary "U0hBNTEy":
|
|
8
8
|
metadata.gz: !binary |-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
YmRjM2ZmN2Y3NjYwOWRkYzIxMzNjZjI3NTQyNDhhN2M1ZjNmZjM5ZTI4MTJk
|
|
10
|
+
NjdiZTlkZTViNzkwZTdjYWQyOTUyMmZmYWZkMTM0ZDU5NWVmYTk1MmE4YTU0
|
|
11
|
+
ZGJjOThjMjJkMWIyMmM5N2ZkNTgxMjQ2YmY2YWMzMzA3ZDhkMzQ=
|
|
12
12
|
data.tar.gz: !binary |-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
YzdiNmU1NTRhNDFmNmZmNjY2NjBjNTY1NDk5YTUzYmE4ZTRlMGIxNGY4Y2I2
|
|
14
|
+
YWY3NGY4NzZkYmYxNzFkM2U4NmI3YzAyY2VjYzM0ZDJiYWZhNGQ2ODhjOGJj
|
|
15
|
+
MWU0NWY2ZWEzY2RiYjBiMjM3NTc5YTk5YmI0NGFiNjg3YmJmNzY=
|
data/MIT_LICENSE.txt
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
Webshims library, copyright (c) 2010 Alexander Farkas, http://protofunc.com/
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
Rails webshims gem, David Reese, http://whatcould.com/
|
|
4
|
+
|
|
3
5
|
Permission is hereby granted, free of charge, to any person obtaining
|
|
4
6
|
a copy of this software and associated documentation files (the
|
|
5
7
|
"Software"), to deal in the Software without restriction, including
|
|
@@ -27,12 +27,12 @@
|
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
var webshims = {
|
|
30
|
-
version: '1.
|
|
30
|
+
version: '1.11.0RC1',
|
|
31
31
|
cfg: {
|
|
32
|
-
|
|
32
|
+
|
|
33
33
|
//addCacheBuster: false,
|
|
34
34
|
waitReady: true,
|
|
35
|
-
extendNative:
|
|
35
|
+
// extendNative: false,
|
|
36
36
|
loadStyles: true,
|
|
37
37
|
disableShivMethods: true,
|
|
38
38
|
wspopover: {appendTo: 'body', hideOnBlur: true},
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
var script = jScripts.filter('[src*="polyfiller.js"]');
|
|
41
41
|
var path;
|
|
42
42
|
script = script[0] || script.end()[script.end().length - 1];
|
|
43
|
-
path = ( ($.support.hrefNormalized) ? script.src : script.getAttribute("src", 4) ).split('?')[0];
|
|
43
|
+
path = ( ( !('hrefNormalized' in $.support) || $.support.hrefNormalized ) ? script.src : script.getAttribute("src", 4) ).split('?')[0];
|
|
44
44
|
path = path.slice(0, path.lastIndexOf("/") + 1) + 'shims/';
|
|
45
45
|
return path;
|
|
46
46
|
})()
|
|
@@ -143,9 +143,6 @@
|
|
|
143
143
|
webshims.warn('Call webshims.polyfill before DOM-Ready or set waitReady to false.');
|
|
144
144
|
}
|
|
145
145
|
onReady(features, removeLoader);
|
|
146
|
-
if (webCFG.useImportantStyles) {
|
|
147
|
-
addClass.push('polyfill-important');
|
|
148
|
-
}
|
|
149
146
|
if (addClass[0]) {
|
|
150
147
|
$('html').addClass(addClass.join(' '));
|
|
151
148
|
}
|
|
@@ -1053,7 +1050,7 @@
|
|
|
1053
1050
|
addPolyfill(fNuAPI, {
|
|
1054
1051
|
f: 'forms-ext',
|
|
1055
1052
|
options: {
|
|
1056
|
-
types: 'month date time range number'
|
|
1053
|
+
types: 'datetime-local month date time range number'
|
|
1057
1054
|
},
|
|
1058
1055
|
test: function(){
|
|
1059
1056
|
var ret = true;
|
|
@@ -1116,7 +1113,7 @@
|
|
|
1116
1113
|
f: 'forms',
|
|
1117
1114
|
test: function(){
|
|
1118
1115
|
initialFormTest();
|
|
1119
|
-
return modernizrInputAttrs.list && !formOptions.
|
|
1116
|
+
return modernizrInputAttrs.list && !formOptions.fD;
|
|
1120
1117
|
},
|
|
1121
1118
|
d: ['form-core', DOMSUPPORT],
|
|
1122
1119
|
c: [16, 7, 6, 2, 9, 15, 30, 31]
|
|
@@ -1203,10 +1200,12 @@
|
|
|
1203
1200
|
nM: 'texttrackapi'
|
|
1204
1201
|
});
|
|
1205
1202
|
|
|
1203
|
+
|
|
1206
1204
|
addModule('track-ui', {
|
|
1207
1205
|
d: ['track', DOMSUPPORT],
|
|
1208
1206
|
c: [29]
|
|
1209
1207
|
});
|
|
1208
|
+
|
|
1210
1209
|
})();
|
|
1211
1210
|
//>
|
|
1212
1211
|
|
|
@@ -165,52 +165,6 @@ var swfmini = function() {
|
|
|
165
165
|
}
|
|
166
166
|
|
|
167
167
|
|
|
168
|
-
/* Functions to abstract and display alternative content
|
|
169
|
-
*/
|
|
170
|
-
function displayAltContent(obj) {
|
|
171
|
-
if (ua.ie && ua.win && obj.readyState != 4) {
|
|
172
|
-
// IE only: when a SWF is loading (AND: not available in cache) wait for the readyState of the object element to become 4 before removing it,
|
|
173
|
-
// because you cannot properly cancel a loading SWF file without breaking browser load references, also obj.onreadystatechange doesn't work
|
|
174
|
-
var el = createElement("div");
|
|
175
|
-
obj.parentNode.insertBefore(el, obj); // insert placeholder div that will be replaced by the alternative content
|
|
176
|
-
el.parentNode.replaceChild(abstractAltContent(obj), el);
|
|
177
|
-
obj.style.display = "none";
|
|
178
|
-
(function(){
|
|
179
|
-
if (obj.readyState == 4) {
|
|
180
|
-
obj.parentNode.removeChild(obj);
|
|
181
|
-
}
|
|
182
|
-
else {
|
|
183
|
-
setTimeout(arguments.callee, 10);
|
|
184
|
-
}
|
|
185
|
-
})();
|
|
186
|
-
}
|
|
187
|
-
else {
|
|
188
|
-
obj.parentNode.replaceChild(abstractAltContent(obj), obj);
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
function abstractAltContent(obj) {
|
|
193
|
-
var ac = createElement("div");
|
|
194
|
-
if (ua.win && ua.ie) {
|
|
195
|
-
ac.innerHTML = obj.innerHTML;
|
|
196
|
-
}
|
|
197
|
-
else {
|
|
198
|
-
var nestedObj = obj.getElementsByTagName(OBJECT)[0];
|
|
199
|
-
if (nestedObj) {
|
|
200
|
-
var c = nestedObj.childNodes;
|
|
201
|
-
if (c) {
|
|
202
|
-
var cl = c.length;
|
|
203
|
-
for (var i = 0; i < cl; i++) {
|
|
204
|
-
if (!(c[i].nodeType == 1 && c[i].nodeName == "PARAM") && !(c[i].nodeType == 8)) {
|
|
205
|
-
ac.appendChild(c[i].cloneNode(true));
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
return ac;
|
|
212
|
-
}
|
|
213
|
-
|
|
214
168
|
/* Cross-browser dynamic SWF creation
|
|
215
169
|
*/
|
|
216
170
|
function createSWF(attObj, parObj, id) {
|
|
@@ -531,6 +485,10 @@ webshims.register('form-core', function($, webshims, window, document, undefined
|
|
|
531
485
|
options.customMessages = true;
|
|
532
486
|
toLoad.push('form-message');
|
|
533
487
|
}
|
|
488
|
+
if(options.customDatalist){
|
|
489
|
+
options.fD = true;
|
|
490
|
+
toLoad.push('form-datalist');
|
|
491
|
+
}
|
|
534
492
|
if(options.addValidators){
|
|
535
493
|
toLoad.push('form-validators');
|
|
536
494
|
}
|
|
@@ -669,6 +627,14 @@ webshims.register('form-core', function($, webshims, window, document, undefined
|
|
|
669
627
|
return false;
|
|
670
628
|
}
|
|
671
629
|
});
|
|
630
|
+
if(typeof message == 'object'){
|
|
631
|
+
if(validity.typeMismatch && message.badInput){
|
|
632
|
+
message = message.badInput;
|
|
633
|
+
}
|
|
634
|
+
if(validity.badInput && message.typeMismatch){
|
|
635
|
+
message = message.typeMismatch;
|
|
636
|
+
}
|
|
637
|
+
}
|
|
672
638
|
}
|
|
673
639
|
}
|
|
674
640
|
|
|
@@ -762,7 +728,8 @@ webshims.register('form-core', function($, webshims, window, document, undefined
|
|
|
762
728
|
}
|
|
763
729
|
});
|
|
764
730
|
};
|
|
765
|
-
var
|
|
731
|
+
var wsCfg = webshims.cfg;
|
|
732
|
+
var options = wsCfg.mediaelement;
|
|
766
733
|
var hasFullTrackSupport;
|
|
767
734
|
var hasSwf;
|
|
768
735
|
if(!options){
|
|
@@ -849,7 +816,7 @@ webshims.register('form-core', function($, webshims, window, document, undefined
|
|
|
849
816
|
}
|
|
850
817
|
hasFullTrackSupport = Modernizr.track && !bugs.track;
|
|
851
818
|
|
|
852
|
-
webshims.register('mediaelement-core', function($, webshims, window, document, undefined){
|
|
819
|
+
webshims.register('mediaelement-core', function($, webshims, window, document, undefined, options){
|
|
853
820
|
hasSwf = swfmini.hasFlashPlayerVersion('9.0.115');
|
|
854
821
|
$('html').addClass(hasSwf ? 'swf' : 'no-swf');
|
|
855
822
|
var mediaelement = webshims.mediaelement;
|
|
@@ -933,11 +900,21 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
|
933
900
|
var loadTrackUi = function(){
|
|
934
901
|
if(loadTrackUi.loaded){return;}
|
|
935
902
|
loadTrackUi.loaded = true;
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
903
|
+
if(!options.noAutoTrack){
|
|
904
|
+
webshims.ready('WINDOWLOAD', function(){
|
|
905
|
+
loadThird();
|
|
906
|
+
webshims.loader.loadList(['track-ui']);
|
|
907
|
+
});
|
|
908
|
+
}
|
|
940
909
|
};
|
|
910
|
+
// var loadMediaGroup = function(){
|
|
911
|
+
// if(!loadMediaGroup.loaded){
|
|
912
|
+
// loadMediaGroup.loaded = true;
|
|
913
|
+
// webshims.ready(window.MediaController ? 'WINDOWLOAD' : 'DOM', function(){
|
|
914
|
+
// webshims.loader.loadList(['mediagroup']);
|
|
915
|
+
// });
|
|
916
|
+
// }
|
|
917
|
+
// };
|
|
941
918
|
var loadYt = (function(){
|
|
942
919
|
var loaded;
|
|
943
920
|
return function(){
|
|
@@ -962,6 +939,11 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
|
962
939
|
d: ['dom-support']
|
|
963
940
|
});
|
|
964
941
|
|
|
942
|
+
|
|
943
|
+
// webshims.addModule('mediagroup', {
|
|
944
|
+
// d: ['mediaelement', 'dom-support']
|
|
945
|
+
// });
|
|
946
|
+
|
|
965
947
|
mediaelement.mimeTypes = {
|
|
966
948
|
audio: {
|
|
967
949
|
//ogm shouldn´t be used!
|
|
@@ -1260,8 +1242,6 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
|
1260
1242
|
|
|
1261
1243
|
};
|
|
1262
1244
|
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
1245
|
webshims.ready('dom-support', function(){
|
|
1266
1246
|
handleMedia = true;
|
|
1267
1247
|
|
|
@@ -1270,7 +1250,8 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
|
1270
1250
|
}
|
|
1271
1251
|
|
|
1272
1252
|
['audio', 'video'].forEach(function(nodeName){
|
|
1273
|
-
var supLoad
|
|
1253
|
+
var supLoad, supController;
|
|
1254
|
+
supLoad = webshims.defineNodeNameProperty(nodeName, 'load', {
|
|
1274
1255
|
prop: {
|
|
1275
1256
|
value: function(){
|
|
1276
1257
|
var data = webshims.data(this, 'mediaelement');
|
|
@@ -1301,7 +1282,59 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
|
1301
1282
|
}
|
|
1302
1283
|
}
|
|
1303
1284
|
});
|
|
1285
|
+
|
|
1286
|
+
// supController = webshims.defineNodeNameProperty(nodeName, 'controller', {
|
|
1287
|
+
// prop: {
|
|
1288
|
+
// get: function(type){
|
|
1289
|
+
// if(!loadMediaGroup.loaded){
|
|
1290
|
+
// loadMediaGroup();
|
|
1291
|
+
// }
|
|
1292
|
+
// if(mediaelement.controller){
|
|
1293
|
+
// return mediaelement.controller[nodeName].get.apply(this, arguments);
|
|
1294
|
+
// }
|
|
1295
|
+
// return supController.prop._supget && supController.prop._supget.apply(this, arguments);
|
|
1296
|
+
// },
|
|
1297
|
+
// set: function(){
|
|
1298
|
+
// var that = this;
|
|
1299
|
+
// var args = arguments;
|
|
1300
|
+
// if(!loadMediaGroup.loaded){
|
|
1301
|
+
// loadMediaGroup();
|
|
1302
|
+
// }
|
|
1303
|
+
// if(mediaelement.controller){
|
|
1304
|
+
// return mediaelement.controller[nodeName].set.apply(that, args);
|
|
1305
|
+
// } else {
|
|
1306
|
+
// webshims.ready('mediagroup', function(){
|
|
1307
|
+
// mediaelement.controller[nodeName].set.apply(that, args);
|
|
1308
|
+
// });
|
|
1309
|
+
// }
|
|
1310
|
+
// return supController.prop._supset && supController.prop._supset.apply(this, arguments);
|
|
1311
|
+
// }
|
|
1312
|
+
// }
|
|
1313
|
+
// });
|
|
1314
|
+
|
|
1315
|
+
// webshims.ready('mediagroup', function(){
|
|
1316
|
+
// mediaelement.controller[nodeName].sup = supController;
|
|
1317
|
+
// });
|
|
1304
1318
|
});
|
|
1319
|
+
|
|
1320
|
+
// webshims.onNodeNamesPropertyModify(['audio', 'video'], ['mediaGroup'], {
|
|
1321
|
+
// set: function(){
|
|
1322
|
+
// var that = this;
|
|
1323
|
+
// var args = arguments;
|
|
1324
|
+
// if(!loadMediaGroup.loaded){
|
|
1325
|
+
// loadMediaGroup();
|
|
1326
|
+
// }
|
|
1327
|
+
// if(mediaelement.mediagroup){
|
|
1328
|
+
// mediaelement.mediagroup.set.apply(that, args);
|
|
1329
|
+
// } else {
|
|
1330
|
+
// webshims.ready('mediagroup', function(){
|
|
1331
|
+
// mediaelement.mediagroup.set.apply(that, args);
|
|
1332
|
+
// });
|
|
1333
|
+
// }
|
|
1334
|
+
// },
|
|
1335
|
+
// initAttr: true
|
|
1336
|
+
// });
|
|
1337
|
+
|
|
1305
1338
|
webshims.onNodeNamesPropertyModify(['audio', 'video'], ['src', 'poster'], {
|
|
1306
1339
|
set: function(){
|
|
1307
1340
|
var elem = this;
|
|
@@ -1323,6 +1356,9 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
|
1323
1356
|
if(!loadTrackUi.loaded && $('track', media).length){
|
|
1324
1357
|
loadTrackUi();
|
|
1325
1358
|
}
|
|
1359
|
+
// if(!loadMediaGroup.loaded && this.getAttribute('mediagroup')){
|
|
1360
|
+
// loadMediaGroup();
|
|
1361
|
+
// }
|
|
1326
1362
|
media = null;
|
|
1327
1363
|
});
|
|
1328
1364
|
});
|
|
@@ -1338,9 +1374,6 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
|
1338
1374
|
handleMedia = true;
|
|
1339
1375
|
return false;
|
|
1340
1376
|
}
|
|
1341
|
-
if((!hasFullTrackSupport || webshims.modules.track.options.override) && !loadTrackUi.loaded && $('track', this).length){
|
|
1342
|
-
loadTrackUi();
|
|
1343
|
-
}
|
|
1344
1377
|
})
|
|
1345
1378
|
;
|
|
1346
1379
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
//DOM-Extension helper
|
|
2
2
|
webshims.register('dom-extend', function($, webshims, window, document, undefined){
|
|
3
3
|
"use strict";
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
var supportHrefNormalized = !('hrefNormalized' in $.support) || $.support.hrefNormalized;
|
|
5
|
+
var supportGetSetAttribute = !('getSetAttribute' in $.support) || $.support.getSetAttribute;
|
|
6
|
+
webshims.assumeARIA = supportGetSetAttribute || Modernizr.canvas || Modernizr.video || Modernizr.boxsizing;
|
|
6
7
|
|
|
7
8
|
if($('<input type="email" />').attr('type') == 'text' || $('<form />').attr('novalidate') === "" || ('required' in $('<input />')[0].attributes)){
|
|
8
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");
|
|
@@ -12,8 +13,8 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
|
12
13
|
webshims.error("Webshims needs jQuery 1.8+ to work properly. Please update your jQuery version or downgrade webshims.");
|
|
13
14
|
}
|
|
14
15
|
|
|
15
|
-
if(webshims.cfg.extendNative ===
|
|
16
|
-
webshims.warn("extendNative configuration
|
|
16
|
+
if(webshims.cfg.extendNative === undefined){
|
|
17
|
+
webshims.warn("extendNative configuration was set to false by default with this release. In case you rely on it set it to 'true' otherwise to 'false'. See http://bit.ly/16OOTQO");
|
|
17
18
|
}
|
|
18
19
|
|
|
19
20
|
if (!webshims.cfg.no$Switch) {
|
|
@@ -685,7 +686,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
|
685
686
|
|
|
686
687
|
anchor.setAttribute('href', href+'' );
|
|
687
688
|
|
|
688
|
-
if(
|
|
689
|
+
if(!supportHrefNormalized){
|
|
689
690
|
try {
|
|
690
691
|
$(anchor).insertAfter(this);
|
|
691
692
|
ret = anchor.getAttribute('href', 4);
|
|
@@ -1591,10 +1592,21 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
|
1591
1592
|
"use strict";
|
|
1592
1593
|
var curCfg;
|
|
1593
1594
|
var formcfg = webshims.formcfg;
|
|
1594
|
-
|
|
1595
|
+
var monthDigits = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];
|
|
1595
1596
|
var stopPropagation = function(e){
|
|
1596
1597
|
e.stopImmediatePropagation();
|
|
1597
1598
|
};
|
|
1599
|
+
var getMonthOptions = (function(){
|
|
1600
|
+
var str;
|
|
1601
|
+
return function(){
|
|
1602
|
+
if(!str){
|
|
1603
|
+
str = ('<option></option>')+$.map(monthDigits, function(val){
|
|
1604
|
+
return '<option>'+val+'</option>';
|
|
1605
|
+
}).join('');
|
|
1606
|
+
}
|
|
1607
|
+
return str;
|
|
1608
|
+
};
|
|
1609
|
+
})();
|
|
1598
1610
|
var createFormat = function(name){
|
|
1599
1611
|
if(!curCfg.patterns[name+'Obj']){
|
|
1600
1612
|
var obj = {};
|
|
@@ -1606,10 +1618,18 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
|
1606
1618
|
};
|
|
1607
1619
|
var splitInputs = {
|
|
1608
1620
|
date: {
|
|
1609
|
-
_create: function(){
|
|
1621
|
+
_create: function(opts){
|
|
1610
1622
|
var obj = {
|
|
1611
|
-
splits: [$('<input type="text" class="yy" size="4" inputmode="numeric" />')[0]
|
|
1623
|
+
splits: [$('<input type="text" class="yy" size="4" inputmode="numeric" />')[0]]
|
|
1612
1624
|
};
|
|
1625
|
+
if(opts.monthSelect){
|
|
1626
|
+
obj.splits.push($('<select class="mm">'+getMonthOptions()+'</select>')[0]);
|
|
1627
|
+
} else {
|
|
1628
|
+
obj.splits.push($('<input type="text" class="mm" inputmode="numeric" maxlength="2" size="2" />')[0]);
|
|
1629
|
+
}
|
|
1630
|
+
obj.splits.push($('<input type="text" class="dd ws-spin" inputmode="numeric" maxlength="2" size="2" />')[0]);
|
|
1631
|
+
|
|
1632
|
+
|
|
1613
1633
|
obj.elements = [obj.splits[0], $('<span class="ws-input-seperator" />')[0], obj.splits[1], $('<span class="ws-input-seperator" />')[0], obj.splits[2]];
|
|
1614
1634
|
return obj;
|
|
1615
1635
|
},
|
|
@@ -1617,7 +1637,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
|
1617
1637
|
createFormat('d');
|
|
1618
1638
|
var i = 0;
|
|
1619
1639
|
var seperators = $('.ws-input-seperator', element).html(curCfg.dFormat);
|
|
1620
|
-
var inputs = $('input', element);
|
|
1640
|
+
var inputs = $('input, select', element);
|
|
1621
1641
|
$.each(curCfg.patterns.dObj, function(name, value){
|
|
1622
1642
|
var input = inputs.filter('.'+ name);
|
|
1623
1643
|
if(input[0]){
|
|
@@ -1635,17 +1655,23 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
|
1635
1655
|
_create: function(opts){
|
|
1636
1656
|
|
|
1637
1657
|
var obj = {
|
|
1638
|
-
splits: [$('<input type="text" class="yy" inputmode="numeric" size="4" />')[0]
|
|
1658
|
+
splits: [$('<input type="text" class="yy" inputmode="numeric" size="4" />')[0]]
|
|
1639
1659
|
};
|
|
1640
|
-
if(opts.
|
|
1641
|
-
|
|
1660
|
+
if(opts.monthSelect){
|
|
1661
|
+
obj.splits.push($('<select class="mm ws-spin">'+getMonthOptions()+'</select>')[0]);
|
|
1662
|
+
} else {
|
|
1663
|
+
obj.splits.push($('<input type="text" class="mm ws-spin" />')[0]);
|
|
1664
|
+
if(opts.onlyMonthDigits){
|
|
1665
|
+
$(obj.splits[1]).attr({inputmode: 'numeric', size: 2, maxlength: 2});
|
|
1666
|
+
}
|
|
1642
1667
|
}
|
|
1668
|
+
|
|
1643
1669
|
obj.elements = [obj.splits[0], $('<span class="ws-input-seperator" />')[0], obj.splits[1]];
|
|
1644
1670
|
return obj;
|
|
1645
1671
|
},
|
|
1646
1672
|
sort: function(element){
|
|
1647
1673
|
var seperator = $('.ws-input-seperator', element).html(curCfg.dFormat);
|
|
1648
|
-
var mm = $('input.mm', element);
|
|
1674
|
+
var mm = $('input.mm, select.mm', element);
|
|
1649
1675
|
var action;
|
|
1650
1676
|
if(curCfg.date.showMonthAfterYear){
|
|
1651
1677
|
mm.appendTo(element);
|
|
@@ -1659,7 +1685,8 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
|
1659
1685
|
}
|
|
1660
1686
|
};
|
|
1661
1687
|
|
|
1662
|
-
var nowDate = new Date().getTime() - (new Date().getTimezoneOffset() * 60 * 1000 );
|
|
1688
|
+
var nowDate = new Date(new Date().getTime() - (new Date().getTimezoneOffset() * 60 * 1000 ));
|
|
1689
|
+
nowDate = new Date(nowDate.getFullYear(), nowDate.getMonth(), nowDate.getDate(), nowDate.getHours()).getTime()
|
|
1663
1690
|
var steps = {
|
|
1664
1691
|
number: {
|
|
1665
1692
|
step: 1
|
|
@@ -1668,6 +1695,10 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
|
1668
1695
|
// step: 1,
|
|
1669
1696
|
// start: new Date(nowDate)
|
|
1670
1697
|
// },
|
|
1698
|
+
'datetime-local': {
|
|
1699
|
+
step: 60,
|
|
1700
|
+
start: new Date(nowDate).getTime()
|
|
1701
|
+
},
|
|
1671
1702
|
time: {
|
|
1672
1703
|
step: 60
|
|
1673
1704
|
},
|
|
@@ -1703,7 +1734,6 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
|
1703
1734
|
|
|
1704
1735
|
|
|
1705
1736
|
(function(){
|
|
1706
|
-
var monthDigits = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];
|
|
1707
1737
|
|
|
1708
1738
|
formcfg.de = $.extend(true, {
|
|
1709
1739
|
numberFormat: {
|
|
@@ -1753,6 +1783,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
|
1753
1783
|
patterns: {
|
|
1754
1784
|
d: "mm/dd/yy"
|
|
1755
1785
|
},
|
|
1786
|
+
meridian: ['AM', 'PM'],
|
|
1756
1787
|
month: {
|
|
1757
1788
|
currentText: 'This month'
|
|
1758
1789
|
},
|
|
@@ -1806,12 +1837,18 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
|
1806
1837
|
langCfg.date.monthkeys = {};
|
|
1807
1838
|
langCfg.date.monthDigits = monthDigits;
|
|
1808
1839
|
langCfg.numberSigns += '-';
|
|
1840
|
+
if(langCfg.meridian){
|
|
1841
|
+
langCfg.timeSigns += langCfg.meridian[0] + langCfg.meridian[1];
|
|
1842
|
+
}
|
|
1809
1843
|
$.each(langCfg.date.monthNames, create);
|
|
1810
1844
|
$.each(langCfg.date.monthNamesShort, create);
|
|
1811
1845
|
}
|
|
1812
1846
|
if(!langCfg.colorSigns){
|
|
1813
1847
|
langCfg.colorSigns = '#abcdefABCDEF';
|
|
1814
1848
|
}
|
|
1849
|
+
if(!langCfg['datetime-localSigns']){
|
|
1850
|
+
langCfg['datetime-localSigns'] = langCfg.dateSigns+langCfg.timeSigns;
|
|
1851
|
+
}
|
|
1815
1852
|
};
|
|
1816
1853
|
var triggerLocaleChange = function(){
|
|
1817
1854
|
processLangCFG(curCfg);
|
|
@@ -1868,11 +1905,31 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
|
1868
1905
|
return (val+'').replace(/\,/g, '').replace(/\./, curCfg.numberFormat['.']);
|
|
1869
1906
|
},
|
|
1870
1907
|
time: function(val){
|
|
1908
|
+
var fVal;
|
|
1909
|
+
if(val && curCfg.meridian){
|
|
1910
|
+
val = val.split(':');
|
|
1911
|
+
fVal = (val[0] * 1);
|
|
1912
|
+
if(fVal && fVal >= 12){
|
|
1913
|
+
val[0] = addZero(fVal - 12+'');
|
|
1914
|
+
fVal = 1;
|
|
1915
|
+
|
|
1916
|
+
} else {
|
|
1917
|
+
fVal = 0;
|
|
1918
|
+
}
|
|
1919
|
+
val = $.trim(val.join(':')) + ' '+ curCfg.meridian[fVal];
|
|
1920
|
+
}
|
|
1871
1921
|
return val;
|
|
1872
1922
|
},
|
|
1873
|
-
|
|
1923
|
+
'datetime-local': function(val, o){
|
|
1924
|
+
var fVal = $.trim(val || '').split('T');
|
|
1925
|
+
if(fVal.length == 2){
|
|
1926
|
+
val = this.date(fVal[0], o) +' '+this.time(fVal[1], o);
|
|
1927
|
+
}
|
|
1874
1928
|
return val;
|
|
1875
1929
|
},
|
|
1930
|
+
// week: function(val){
|
|
1931
|
+
// return val;
|
|
1932
|
+
// },
|
|
1876
1933
|
//todo empty val for month/split
|
|
1877
1934
|
month: function(val, options){
|
|
1878
1935
|
var names;
|
|
@@ -1925,7 +1982,32 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
|
1925
1982
|
// week: function(val){
|
|
1926
1983
|
// return val;
|
|
1927
1984
|
// },
|
|
1985
|
+
'datetime-local': function(val, o){
|
|
1986
|
+
var tmp;
|
|
1987
|
+
var fVal = $.trim(val || '').split(/\s+/);
|
|
1988
|
+
if(fVal.length == 2){
|
|
1989
|
+
if(fVal[0].indexOf(':') != -1 && fVal[1].indexOf(':') == -1){
|
|
1990
|
+
tmp = fVal[1];
|
|
1991
|
+
fVal[1] = fVal[0];
|
|
1992
|
+
fVal[0] = tmp;
|
|
1993
|
+
}
|
|
1994
|
+
val = this.date(fVal[0], o) +'T'+ this.time(fVal[1], o);
|
|
1995
|
+
}
|
|
1996
|
+
return val;
|
|
1997
|
+
},
|
|
1928
1998
|
time: function(val){
|
|
1999
|
+
var fVal;
|
|
2000
|
+
if(val && curCfg.meridian){
|
|
2001
|
+
if(val.indexOf(curCfg.meridian[1]) != -1){
|
|
2002
|
+
val = val.split(':');
|
|
2003
|
+
fVal = (val[0] * 1);
|
|
2004
|
+
if(!isNaN(fVal)){
|
|
2005
|
+
val[0] = fVal + 12;
|
|
2006
|
+
}
|
|
2007
|
+
val = val.join(':');
|
|
2008
|
+
}
|
|
2009
|
+
val = $.trim(val.replace(curCfg.meridian[0], '').replace(curCfg.meridian[1], ''));
|
|
2010
|
+
}
|
|
1929
2011
|
return val;
|
|
1930
2012
|
},
|
|
1931
2013
|
month: function(val, opts, noCorrect){
|
|
@@ -2026,8 +2108,16 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
|
2026
2108
|
var type = (typeof val == 'object') ? 'valueAsDate' : 'valueAsNumber';
|
|
2027
2109
|
return input.prop(type, val).prop('value');
|
|
2028
2110
|
},
|
|
2029
|
-
isValid: function(val){
|
|
2030
|
-
|
|
2111
|
+
isValid: function(val, attrs){
|
|
2112
|
+
if(attrs && (attrs.nodeName || attrs.jquery)){
|
|
2113
|
+
attrs = {
|
|
2114
|
+
min: $(attrs).prop('min') || '',
|
|
2115
|
+
max: $(attrs).prop('max') || '',
|
|
2116
|
+
step: $(attrs).prop('step') || 'any'
|
|
2117
|
+
};
|
|
2118
|
+
}
|
|
2119
|
+
attrs = $.extend({step: 'any', min: '', max: ''}, attrs || {});
|
|
2120
|
+
return input.attr(attrs).prop('value', val).is(':valid') && input.prop('value') == val;
|
|
2031
2121
|
}
|
|
2032
2122
|
};
|
|
2033
2123
|
}
|
|
@@ -2052,6 +2142,9 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
|
2052
2142
|
o.mirrorValidity = o.mirrorValidity && this.orig && Modernizr.formvalidation && !webshims.bugs.bustedValidity;
|
|
2053
2143
|
|
|
2054
2144
|
if(o.splitInput && this._addSplitInputs){
|
|
2145
|
+
if(o.monthSelect){
|
|
2146
|
+
this.element.addClass('ws-month-select');
|
|
2147
|
+
}
|
|
2055
2148
|
this._addSplitInputs();
|
|
2056
2149
|
} else {
|
|
2057
2150
|
this.inputElements = this.element;
|
|
@@ -2303,7 +2396,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
|
2303
2396
|
try {
|
|
2304
2397
|
$(this)
|
|
2305
2398
|
.next()
|
|
2306
|
-
.next('input')
|
|
2399
|
+
.next('input, select')
|
|
2307
2400
|
.each(select)
|
|
2308
2401
|
;
|
|
2309
2402
|
} catch(er){}
|
|
@@ -2381,7 +2474,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
|
2381
2474
|
}
|
|
2382
2475
|
};
|
|
2383
2476
|
spinEvents.keydown = function(e){
|
|
2384
|
-
if(o.list || e.isDefaultPrevented() || $.attr(this, 'list')){return;}
|
|
2477
|
+
if(o.list || e.isDefaultPrevented() || (e.altKey && e.keyCode == 40) || $.attr(this, 'list')){return;}
|
|
2385
2478
|
var stepped = true;
|
|
2386
2479
|
var code = e.keyCode;
|
|
2387
2480
|
if (code == 38) {
|
|
@@ -2504,7 +2597,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
|
2504
2597
|
return [options, datalist.data('label')];
|
|
2505
2598
|
},
|
|
2506
2599
|
list: function(val){
|
|
2507
|
-
if(this.type == 'number'
|
|
2600
|
+
if(this.type == 'number'){
|
|
2508
2601
|
this.element.attr('list', $.attr(this.orig, 'list'));
|
|
2509
2602
|
}
|
|
2510
2603
|
this.options.list = val;
|
|
@@ -2587,7 +2680,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
|
2587
2680
|
if(!this.inputElements){
|
|
2588
2681
|
var create = splitInputs[this.type]._create(this.options);
|
|
2589
2682
|
this.splits = create.splits;
|
|
2590
|
-
this.inputElements = $(create.elements).prependTo(this.element).filter('input');
|
|
2683
|
+
this.inputElements = $(create.elements).prependTo(this.element).filter('input, select');
|
|
2591
2684
|
}
|
|
2592
2685
|
},
|
|
2593
2686
|
|
|
@@ -2613,11 +2706,11 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
|
2613
2706
|
reorderInputs: function(){
|
|
2614
2707
|
if(splitInputs[this.type]){
|
|
2615
2708
|
var element = this.element;
|
|
2616
|
-
splitInputs[this.type].sort(element);
|
|
2709
|
+
splitInputs[this.type].sort(element, this.options);
|
|
2617
2710
|
setTimeout(function(){
|
|
2618
2711
|
var data = webshims.data(element);
|
|
2619
2712
|
if(data && data.shadowData){
|
|
2620
|
-
data.shadowData.shadowFocusElement = element.find('input')[0] || element[0];
|
|
2713
|
+
data.shadowData.shadowFocusElement = element.find('input, select')[0] || element[0];
|
|
2621
2714
|
}
|
|
2622
2715
|
}, 9);
|
|
2623
2716
|
}
|
|
@@ -2720,8 +2813,21 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
|
2720
2813
|
options: options
|
|
2721
2814
|
});
|
|
2722
2815
|
|
|
2816
|
+
webshims.inlinePopover = {
|
|
2817
|
+
_create: function(){
|
|
2818
|
+
this.element = $('<div class="ws-inline-picker"><div class="ws-po-box" /></div>').data('wspopover', this);
|
|
2819
|
+
this.contentElement = $('.ws-po-box', this.element);
|
|
2820
|
+
this.element.insertAfter(this.options.prepareFor);
|
|
2821
|
+
},
|
|
2822
|
+
show: $.noop,
|
|
2823
|
+
hide: $.noop,
|
|
2824
|
+
preventBlur: $.noop,
|
|
2825
|
+
isVisible: true
|
|
2826
|
+
};
|
|
2827
|
+
|
|
2723
2828
|
picker._genericSetFocus = function(element, _noFocus){
|
|
2724
2829
|
element = $(element || this.activeButton);
|
|
2830
|
+
|
|
2725
2831
|
if(!this.popover.openedByFocus && !_noFocus){
|
|
2726
2832
|
var that = this;
|
|
2727
2833
|
var setFocus = function(noTrigger){
|
|
@@ -2746,12 +2852,14 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
|
2746
2852
|
data.setChange(val);
|
|
2747
2853
|
},
|
|
2748
2854
|
cancel: function(val, popover, data){
|
|
2749
|
-
|
|
2750
|
-
|
|
2751
|
-
|
|
2752
|
-
|
|
2753
|
-
|
|
2754
|
-
|
|
2855
|
+
if(!data.options.inlinePicker){
|
|
2856
|
+
popover.stopOpen = true;
|
|
2857
|
+
data.element.getShadowFocusElement().focus();
|
|
2858
|
+
setTimeout(function(){
|
|
2859
|
+
popover.stopOpen = false;
|
|
2860
|
+
}, 9);
|
|
2861
|
+
popover.hide();
|
|
2862
|
+
}
|
|
2755
2863
|
}
|
|
2756
2864
|
};
|
|
2757
2865
|
|
|
@@ -2764,28 +2872,31 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
|
2764
2872
|
popover.element.on('updatepickercontent pickerchange', function(){
|
|
2765
2873
|
tabbable = false;
|
|
2766
2874
|
});
|
|
2767
|
-
|
|
2768
|
-
|
|
2769
|
-
|
|
2770
|
-
|
|
2771
|
-
|
|
2772
|
-
|
|
2773
|
-
|
|
2774
|
-
|
|
2775
|
-
tabbable.
|
|
2776
|
-
|
|
2777
|
-
|
|
2778
|
-
|
|
2779
|
-
|
|
2875
|
+
|
|
2876
|
+
if(!data.options.inlinePicker){
|
|
2877
|
+
popover.contentElement.on({
|
|
2878
|
+
keydown: function(e){
|
|
2879
|
+
if(e.keyCode == 9){
|
|
2880
|
+
if(!tabbable){
|
|
2881
|
+
tabbable = $('input:not(:disabled), [tabindex="0"]:not(:disabled)', this).filter(':visible');
|
|
2882
|
+
}
|
|
2883
|
+
var index = tabbable.index(e.target);
|
|
2884
|
+
if(e.shiftKey && index <= 0){
|
|
2885
|
+
tabbable.last().focus();
|
|
2886
|
+
return false;
|
|
2887
|
+
}
|
|
2888
|
+
if(!e.shiftKey && index >= tabbable.length - 1){
|
|
2889
|
+
tabbable.first().focus();
|
|
2890
|
+
return false;
|
|
2891
|
+
}
|
|
2892
|
+
} else if(e.keyCode == 27){
|
|
2893
|
+
data.element.getShadowFocusElement().focus();
|
|
2894
|
+
popover.hide();
|
|
2780
2895
|
return false;
|
|
2781
2896
|
}
|
|
2782
|
-
} else if(e.keyCode == 27){
|
|
2783
|
-
data.element.getShadowFocusElement().focus();
|
|
2784
|
-
popover.hide();
|
|
2785
|
-
return false;
|
|
2786
2897
|
}
|
|
2787
|
-
}
|
|
2788
|
-
}
|
|
2898
|
+
});
|
|
2899
|
+
}
|
|
2789
2900
|
|
|
2790
2901
|
data._propertyChange = (function(){
|
|
2791
2902
|
var timer;
|
|
@@ -2795,7 +2906,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
|
2795
2906
|
}
|
|
2796
2907
|
};
|
|
2797
2908
|
return function(prop){
|
|
2798
|
-
if(prop == 'value'){return;}
|
|
2909
|
+
if(prop == 'value' && !data.options.inlinePicker){return;}
|
|
2799
2910
|
popover.isDirty = true;
|
|
2800
2911
|
if(popover.isVisible){
|
|
2801
2912
|
clearTimeout(timer);
|
|
@@ -2832,7 +2943,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
|
2832
2943
|
|
|
2833
2944
|
picker._common = function(data){
|
|
2834
2945
|
var options = data.options;
|
|
2835
|
-
var popover = webshims.objectCreate(webshims.wsPopover, {}, {prepareFor: data.element, position: options.widgetPosition});
|
|
2946
|
+
var popover = webshims.objectCreate(options.inlinePicker ? webshims.inlinePopover : webshims.wsPopover, {}, {prepareFor: options.inlinePicker ? data.buttonWrapper : data.element, position: options.widgetPosition});
|
|
2836
2947
|
var opener = $('<button type="button" class="ws-popover-opener"><span /></button>').appendTo(data.buttonWrapper);
|
|
2837
2948
|
|
|
2838
2949
|
|
|
@@ -2841,18 +2952,34 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
|
2841
2952
|
};
|
|
2842
2953
|
var show = function(){
|
|
2843
2954
|
var type = loadPicker(data.type, 'DOM');
|
|
2844
|
-
if(!options.disabled && !options.readonly && !popover.isVisible){
|
|
2955
|
+
if(!options.disabled && !options.readonly && (options.inlinePicker || !popover.isVisible)){
|
|
2845
2956
|
webshims.ready(type, showPickerContent);
|
|
2846
2957
|
popover.show(data.element);
|
|
2847
2958
|
}
|
|
2848
2959
|
};
|
|
2960
|
+
var open = function(){
|
|
2961
|
+
if((options.inlinePicker || popover.isVisible) && popover.activeElement){
|
|
2962
|
+
popover.openedByFocus = false;
|
|
2963
|
+
popover.activeElement.focus();
|
|
2964
|
+
}
|
|
2965
|
+
show();
|
|
2966
|
+
};
|
|
2967
|
+
|
|
2849
2968
|
|
|
2850
2969
|
options.containerElements.push(popover.element[0]);
|
|
2851
2970
|
|
|
2852
2971
|
if(data.type != 'color'){
|
|
2972
|
+
if(options.yearButtons){
|
|
2973
|
+
options.startView = 2;
|
|
2974
|
+
}
|
|
2853
2975
|
if(!options.startView){
|
|
2854
2976
|
options.startView = 0;
|
|
2855
2977
|
}
|
|
2978
|
+
|
|
2979
|
+
if(data.type == 'time'){
|
|
2980
|
+
options.minView = 3;
|
|
2981
|
+
options.startView = 3;
|
|
2982
|
+
}
|
|
2856
2983
|
if(!options.minView){
|
|
2857
2984
|
options.minView = 0;
|
|
2858
2985
|
}
|
|
@@ -2882,6 +3009,9 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
|
2882
3009
|
if(popover.activeElement){
|
|
2883
3010
|
popover.activeElement.removeClass('ws-focus');
|
|
2884
3011
|
}
|
|
3012
|
+
if(options.inlinePicker){
|
|
3013
|
+
popover.openedByFocus = true;
|
|
3014
|
+
}
|
|
2885
3015
|
}
|
|
2886
3016
|
})
|
|
2887
3017
|
;
|
|
@@ -2897,57 +3027,63 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
|
2897
3027
|
opener.prop({disabled: true});
|
|
2898
3028
|
}
|
|
2899
3029
|
|
|
2900
|
-
opener
|
|
2901
|
-
.on({
|
|
2902
|
-
mousedown: function(){
|
|
2903
|
-
stopPropagation.apply(this, arguments);
|
|
2904
|
-
popover.preventBlur();
|
|
2905
|
-
},
|
|
2906
|
-
click: function(){
|
|
2907
|
-
if(popover.isVisible && popover.activeElement){
|
|
2908
|
-
popover.openedByFocus = false;
|
|
2909
|
-
popover.activeElement.focus();
|
|
2910
|
-
}
|
|
2911
|
-
show();
|
|
2912
|
-
},
|
|
2913
|
-
focus: function(){
|
|
2914
|
-
popover.preventBlur();
|
|
2915
|
-
}
|
|
2916
|
-
})
|
|
2917
|
-
;
|
|
2918
3030
|
|
|
2919
|
-
(
|
|
2920
|
-
|
|
2921
|
-
|
|
2922
|
-
|
|
2923
|
-
|
|
2924
|
-
|
|
2925
|
-
|
|
2926
|
-
|
|
2927
|
-
|
|
2928
|
-
|
|
2929
|
-
}
|
|
3031
|
+
opener.on({click: open});
|
|
3032
|
+
|
|
3033
|
+
if(options.inlinePicker){
|
|
3034
|
+
popover.openedByFocus = true;
|
|
3035
|
+
} else {
|
|
3036
|
+
opener
|
|
3037
|
+
.on({
|
|
3038
|
+
mousedown: function(){
|
|
3039
|
+
stopPropagation.apply(this, arguments);
|
|
3040
|
+
popover.preventBlur();
|
|
3041
|
+
},
|
|
3042
|
+
focus: function(){
|
|
2930
3043
|
popover.preventBlur();
|
|
2931
3044
|
}
|
|
2932
|
-
}
|
|
2933
|
-
|
|
2934
|
-
|
|
2935
|
-
|
|
2936
|
-
|
|
2937
|
-
|
|
2938
|
-
|
|
3045
|
+
})
|
|
3046
|
+
;
|
|
3047
|
+
|
|
3048
|
+
(function(){
|
|
3049
|
+
var mouseFocus = false;
|
|
3050
|
+
var resetMouseFocus = function(){
|
|
3051
|
+
mouseFocus = false;
|
|
3052
|
+
};
|
|
3053
|
+
data.inputElements.on({
|
|
3054
|
+
keydown: function(e){
|
|
3055
|
+
if(e.keyCode == 40 && e.altKey){
|
|
3056
|
+
open();
|
|
3057
|
+
}
|
|
3058
|
+
},
|
|
3059
|
+
focus: function(){
|
|
3060
|
+
if(!popover.stopOpen && (options.buttonOnly || options.openOnFocus || (mouseFocus && options.openOnMouseFocus))){
|
|
3061
|
+
popover.openedByFocus = options.buttonOnly ? false : !options.noInput;
|
|
3062
|
+
show();
|
|
3063
|
+
} else {
|
|
3064
|
+
popover.preventBlur();
|
|
3065
|
+
}
|
|
3066
|
+
},
|
|
3067
|
+
mousedown: function(){
|
|
3068
|
+
mouseFocus = true;
|
|
3069
|
+
setTimeout(resetMouseFocus, 9);
|
|
3070
|
+
if(options.buttonOnly && popover.isVisible && popover.activeElement){
|
|
2939
3071
|
popover.openedByFocus = false;
|
|
2940
|
-
|
|
2941
|
-
|
|
2942
|
-
|
|
2943
|
-
|
|
2944
|
-
|
|
2945
|
-
|
|
3072
|
+
setTimeout(function(){
|
|
3073
|
+
popover.openedByFocus = false;
|
|
3074
|
+
popover.activeElement.focus();
|
|
3075
|
+
}, 4);
|
|
3076
|
+
}
|
|
3077
|
+
if(data.element.is(':focus')){
|
|
3078
|
+
popover.openedByFocus = options.buttonOnly ? false : !options.noInput;
|
|
3079
|
+
show();
|
|
3080
|
+
}
|
|
3081
|
+
popover.preventBlur();
|
|
2946
3082
|
}
|
|
2947
|
-
|
|
2948
|
-
|
|
2949
|
-
|
|
2950
|
-
|
|
3083
|
+
});
|
|
3084
|
+
})();
|
|
3085
|
+
}
|
|
3086
|
+
|
|
2951
3087
|
data.popover = popover;
|
|
2952
3088
|
data.opener = opener;
|
|
2953
3089
|
$(data.orig).on('remove', function(e){
|
|
@@ -2958,12 +3094,16 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
|
2958
3094
|
}, 4);
|
|
2959
3095
|
}
|
|
2960
3096
|
});
|
|
2961
|
-
|
|
3097
|
+
if(options.inlinePicker){
|
|
3098
|
+
show();
|
|
3099
|
+
}
|
|
2962
3100
|
loadPicker(data.type, 'WINDOWLOAD');
|
|
2963
3101
|
};
|
|
2964
3102
|
|
|
2965
3103
|
picker.month = picker._common;
|
|
2966
3104
|
picker.date = picker._common;
|
|
3105
|
+
picker.time = picker._common;
|
|
3106
|
+
picker['datetime-local'] = picker._common;
|
|
2967
3107
|
// picker.week = picker._common;
|
|
2968
3108
|
picker.color = function(data){
|
|
2969
3109
|
var ret = picker._common.apply(this, arguments);
|
|
@@ -3147,6 +3287,9 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
|
3147
3287
|
opts[optsName] = $.attr(this, copyAttrs[i]) || opts[optsName];
|
|
3148
3288
|
}
|
|
3149
3289
|
}
|
|
3290
|
+
if(opts.monthSelect){
|
|
3291
|
+
opts.onlyMonthDigits = true;
|
|
3292
|
+
}
|
|
3150
3293
|
if(opts.onlyMonthDigits){
|
|
3151
3294
|
opts.formatMonthNames = 'monthDigits';
|
|
3152
3295
|
}
|
|
@@ -3252,11 +3395,14 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
|
3252
3395
|
});
|
|
3253
3396
|
}
|
|
3254
3397
|
|
|
3255
|
-
var isStupid = navigator.userAgent.indexOf('
|
|
3256
|
-
['number', 'time', 'month', 'date', 'color'].forEach(function(name){
|
|
3398
|
+
var isStupid = modernizrInputTypes.number && navigator.userAgent.indexOf('Touch') == -1 && (/MSIE 1[0|1]\.\d/.test(navigator.userAgent) || /Trident\/7\.0/.test(navigator.userAgent));
|
|
3399
|
+
['number', 'time', 'month', 'date', 'color', 'datetime-local'].forEach(function(name){
|
|
3257
3400
|
if(!modernizrInputTypes[name] || options.replaceUI || (name == 'number' && isStupid)){
|
|
3258
3401
|
extendType(name, {
|
|
3259
3402
|
_create: function(opts, set){
|
|
3403
|
+
if(opts.monthSelect){
|
|
3404
|
+
opts.splitInput = true;
|
|
3405
|
+
}
|
|
3260
3406
|
if(opts.splitInput && !splitInputs[name]){
|
|
3261
3407
|
webshims.warn('splitInput not supported for '+ name);
|
|
3262
3408
|
opts.splitInput = false;
|