webshims-rails 1.10.9 → 1.10.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- 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 +24 -14
- data/vendor/assets/javascripts/webshims/shims/combos/10.js +61 -20
- data/vendor/assets/javascripts/webshims/shims/combos/11.js +54 -16
- data/vendor/assets/javascripts/webshims/shims/combos/12.js +9 -13
- data/vendor/assets/javascripts/webshims/shims/combos/13.js +8 -12
- data/vendor/assets/javascripts/webshims/shims/combos/14.js +10 -7
- data/vendor/assets/javascripts/webshims/shims/combos/15.js +40 -11
- data/vendor/assets/javascripts/webshims/shims/combos/16.js +49 -24
- data/vendor/assets/javascripts/webshims/shims/combos/17.js +128 -19
- data/vendor/assets/javascripts/webshims/shims/combos/18.js +131 -22
- data/vendor/assets/javascripts/webshims/shims/combos/19.js +133 -40
- data/vendor/assets/javascripts/webshims/shims/combos/2.js +31 -18
- data/vendor/assets/javascripts/webshims/shims/combos/20.js +132 -39
- data/vendor/assets/javascripts/webshims/shims/combos/21.js +116 -22
- data/vendor/assets/javascripts/webshims/shims/combos/23.js +9 -13
- data/vendor/assets/javascripts/webshims/shims/combos/24.js +48 -13
- data/vendor/assets/javascripts/webshims/shims/combos/25.js +133 -40
- data/vendor/assets/javascripts/webshims/shims/combos/26.js +7 -4
- data/vendor/assets/javascripts/webshims/shims/combos/27.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/combos/28.js +121 -24
- data/vendor/assets/javascripts/webshims/shims/combos/29.js +4 -6
- data/vendor/assets/javascripts/webshims/shims/combos/3.js +30 -6
- data/vendor/assets/javascripts/webshims/shims/combos/30.js +30 -6
- data/vendor/assets/javascripts/webshims/shims/combos/31.js +22 -5
- data/vendor/assets/javascripts/webshims/shims/combos/4.js +15 -5
- data/vendor/assets/javascripts/webshims/shims/combos/5.js +128 -19
- data/vendor/assets/javascripts/webshims/shims/combos/6.js +128 -19
- data/vendor/assets/javascripts/webshims/shims/combos/7.js +39 -19
- data/vendor/assets/javascripts/webshims/shims/combos/8.js +39 -19
- data/vendor/assets/javascripts/webshims/shims/combos/9.js +61 -20
- data/vendor/assets/javascripts/webshims/shims/dom-extend.js +7 -4
- data/vendor/assets/javascripts/webshims/shims/es5.js +3 -3
- data/vendor/assets/javascripts/webshims/shims/form-core.js +15 -1
- data/vendor/assets/javascripts/webshims/shims/form-message.js +8 -1
- data/vendor/assets/javascripts/webshims/shims/form-number-date-api.js +74 -3
- data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +53 -15
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +10 -5
- data/vendor/assets/javascripts/webshims/shims/form-validation.js +48 -13
- data/vendor/assets/javascripts/webshims/shims/forms-picker.js +14 -2
- data/vendor/assets/javascripts/webshims/shims/geolocation.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ar.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ch-ZN.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-de.txt +2 -2
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-el.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-en.txt +2 -2
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-es.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-fr.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-he.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-hi.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-hu.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-it.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ja.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-lt.js +7 -4
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-nl.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pl.js +106 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pt-PT.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ru.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-sv.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +8 -12
- data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +114 -20
- data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +132 -17
- data/vendor/assets/javascripts/webshims/shims/range-ui.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +38 -3
- data/vendor/assets/javascripts/webshims/shims/styles/shim.css +42 -13
- data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
- data/vendor/assets/javascripts/webshims/shims/swfmini.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/track-ui.js +4 -6
- metadata +3 -2
@@ -12,14 +12,14 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
12
12
|
webshims.error("Webshims needs jQuery 1.8+ to work properly. Please update your jQuery version or downgrade webshims.");
|
13
13
|
}
|
14
14
|
|
15
|
-
if(webshims.cfg.extendNative
|
15
|
+
if(webshims.cfg.extendNative === 1){
|
16
16
|
webshims.warn("extendNative configuration will be set to false by default with next release. In case you rely on it set it to 'true' otherwise to 'false'. See http://bit.ly/16OOTQO");
|
17
17
|
}
|
18
18
|
|
19
19
|
if (!webshims.cfg.no$Switch) {
|
20
20
|
var switch$ = function(){
|
21
21
|
if (window.jQuery && (!window.$ || window.jQuery == window.$) && !window.jQuery.webshims) {
|
22
|
-
webshims.error("jQuery was included more than once. Make sure to include it only once or try the $.noConflict(extreme) feature! Webshims and other Plugins might not work properly
|
22
|
+
webshims.error("jQuery was included more than once. Make sure to include it only once or try the $.noConflict(extreme) feature! Webshims and other Plugins might not work properly. Or set webshims.cfg.no$Switch to 'true'.");
|
23
23
|
if (window.$) {
|
24
24
|
window.$ = webshims.$;
|
25
25
|
}
|
@@ -561,6 +561,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
561
561
|
setInterval(this.test, 600);
|
562
562
|
$(this.test);
|
563
563
|
webshims.ready('WINDOWLOAD', this.test);
|
564
|
+
$(document).on('updatelayout', this.handler);
|
564
565
|
$(window).bind('resize', this.handler);
|
565
566
|
(function(){
|
566
567
|
var oldAnimate = $.fn.animate;
|
@@ -608,7 +609,9 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
608
609
|
|
609
610
|
$(nativeElem).on('remove', function(e){
|
610
611
|
if (!e.originalEvent) {
|
611
|
-
|
612
|
+
setTimeout(function(){
|
613
|
+
$(shadowElem).remove();
|
614
|
+
}, 4);
|
612
615
|
}
|
613
616
|
});
|
614
617
|
|
@@ -1086,4 +1089,4 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1086
1089
|
}
|
1087
1090
|
});
|
1088
1091
|
|
1089
|
-
})(
|
1092
|
+
})(webshims.$, document);
|
@@ -707,11 +707,11 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
707
707
|
}
|
708
708
|
|
709
709
|
if(opts){
|
710
|
-
o.options =
|
710
|
+
o.options = $.extend(true, {}, o.options || {}, opts);
|
711
711
|
opts = o.options;
|
712
712
|
}
|
713
713
|
|
714
|
-
if(o._create &&
|
714
|
+
if(o._create && $.isFunction(o._create)){
|
715
715
|
o._create(opts);
|
716
716
|
}
|
717
717
|
return o;
|
@@ -797,6 +797,6 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
797
797
|
};
|
798
798
|
|
799
799
|
}
|
800
|
-
})(
|
800
|
+
})(webshims.$, webshims);
|
801
801
|
|
802
802
|
|
@@ -75,6 +75,7 @@ webshims.register('form-core', function($, webshims, window, document, undefined
|
|
75
75
|
$.expr[":"][name] = $.expr.filters[name+"-element"];
|
76
76
|
});
|
77
77
|
|
78
|
+
//bug was partially fixed in 1.10.0 for IE9, but not IE8 (move to es5 as soon as 1.10.2 is used)
|
78
79
|
var pseudoFocus = $.expr[":"].focus;
|
79
80
|
$.expr[":"].focus = function(){
|
80
81
|
try {
|
@@ -97,10 +98,18 @@ webshims.register('form-core', function($, webshims, window, document, undefined
|
|
97
98
|
};
|
98
99
|
|
99
100
|
var transClass = ('transitionDelay' in document.documentElement.style) ? '' : ' no-transition';
|
101
|
+
var poCFG = webshims.cfg.wspopover;
|
102
|
+
if(!poCFG.position && poCFG.position !== false){
|
103
|
+
poCFG.position = {
|
104
|
+
at: 'left bottom',
|
105
|
+
my: 'left top',
|
106
|
+
collision: 'fit flip'
|
107
|
+
};
|
108
|
+
}
|
100
109
|
webshims.wsPopover = {
|
101
110
|
id: 0,
|
102
111
|
_create: function(){
|
103
|
-
this.options = $.extend({},
|
112
|
+
this.options = $.extend(true, {}, poCFG, this.options);
|
104
113
|
this.id = webshims.wsPopover.id++;
|
105
114
|
this.eventns = '.wsoverlay' + this.id;
|
106
115
|
this.timers = {};
|
@@ -147,6 +156,11 @@ webshims.register('form-core', function($, webshims, window, document, undefined
|
|
147
156
|
var message = $(elem).data('errormessage') || elem.getAttribute('x-moz-errormessage') || '';
|
148
157
|
if(key && message[key]){
|
149
158
|
message = message[key];
|
159
|
+
} else if(message) {
|
160
|
+
validity = validity || $.prop(elem, 'validity') || {valid: 1};
|
161
|
+
if(validity.valid){
|
162
|
+
message = '';
|
163
|
+
}
|
150
164
|
}
|
151
165
|
if(typeof message == 'object'){
|
152
166
|
validity = validity || $.prop(elem, 'validity') || {valid: 1};
|
@@ -176,6 +176,10 @@ webshims.register('form-message', function($, webshims, window, document, undefi
|
|
176
176
|
});
|
177
177
|
|
178
178
|
implementProperties.forEach(function(messageProp){
|
179
|
+
var skipNames = {
|
180
|
+
valid: 1,
|
181
|
+
badInput: 1
|
182
|
+
};
|
179
183
|
webshims.defineNodeNamesProperty(['fieldset', 'output', 'button'], messageProp, {
|
180
184
|
prop: {
|
181
185
|
value: '',
|
@@ -204,13 +208,16 @@ webshims.register('form-message', function($, webshims, window, document, undefi
|
|
204
208
|
if(message){return message;}
|
205
209
|
}
|
206
210
|
$.each(validity, function(name, prop){
|
207
|
-
if(name
|
211
|
+
if(skipNames[name] || !prop){return;}
|
208
212
|
|
209
213
|
message = webshims.createValidationMessage(elem, name);
|
210
214
|
if(message){
|
211
215
|
return false;
|
212
216
|
}
|
213
217
|
});
|
218
|
+
if(!message && validity.badInput){
|
219
|
+
message = webshims.createValidationMessage(elem, 'typeMismatch') || webshims.createValidationMessage(elem, 'valueMissing');
|
220
|
+
}
|
214
221
|
return message || '';
|
215
222
|
},
|
216
223
|
writeable: false
|
@@ -62,7 +62,7 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
62
62
|
if(!('type' in cache)){
|
63
63
|
cache.type = getType(input[0]);
|
64
64
|
}
|
65
|
-
|
65
|
+
if(cache.type == 'week'){return false;}
|
66
66
|
var ret = (validityState || {}).stepMismatch || false, base;
|
67
67
|
if(typeModels[cache.type] && typeModels[cache.type].step){
|
68
68
|
if( !('step' in cache) ){
|
@@ -250,6 +250,29 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
250
250
|
});
|
251
251
|
});
|
252
252
|
|
253
|
+
/*
|
254
|
+
* ToDO: WEEK
|
255
|
+
*/
|
256
|
+
// var getWeek = function(date){
|
257
|
+
// var time;
|
258
|
+
// var checkDate = new Date(date.getTime());
|
259
|
+
//
|
260
|
+
// checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7));
|
261
|
+
//
|
262
|
+
// time = checkDate.getTime();
|
263
|
+
// checkDate.setMonth(0);
|
264
|
+
// checkDate.setDate(1);
|
265
|
+
// return Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1;
|
266
|
+
// };
|
267
|
+
//
|
268
|
+
// var setWeek = function(year, week){
|
269
|
+
// var date = new Date(year, 0, 1);
|
270
|
+
//
|
271
|
+
// week = (week - 1) * 86400000 * 7;
|
272
|
+
// date = new Date(date.getTime() + week);
|
273
|
+
// date.setDate(date.getDate() + 1 - (date.getDay() || 7));
|
274
|
+
// return date;
|
275
|
+
// };
|
253
276
|
|
254
277
|
var typeProtos = {
|
255
278
|
|
@@ -326,6 +349,56 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
326
349
|
return (date && date.getFullYear) ? addleadingZero(date.getUTCFullYear(), 4) +'-'+ addleadingZero(date.getUTCMonth()+1, 2) +'-'+ addleadingZero(date.getUTCDate(), 2) : false;
|
327
350
|
}
|
328
351
|
},
|
352
|
+
/*
|
353
|
+
* ToDO: WEEK
|
354
|
+
*/
|
355
|
+
// week: {
|
356
|
+
// mismatch: function(val){
|
357
|
+
// if(!val || !val.split){return true;}
|
358
|
+
// var valA = val.split('-W');
|
359
|
+
// var ret = true;
|
360
|
+
// if(valA.length == 2 && valA[0].length > 3 && valA.length == 2){
|
361
|
+
// ret = this.dateToString(setWeek(valA[0], valA[1])) != val;
|
362
|
+
// }
|
363
|
+
// return ret;
|
364
|
+
// },
|
365
|
+
// step: 1,
|
366
|
+
// stepScaleFactor: 604800000,
|
367
|
+
// stepBase: -259200000,
|
368
|
+
// asDate: function(str, _noMismatch){
|
369
|
+
// var ret = null;
|
370
|
+
// if(_noMismatch || !this.mismatch(str)){
|
371
|
+
// ret = str.split('-W');
|
372
|
+
// ret = setWeek(ret[0], ret[1]);
|
373
|
+
// }
|
374
|
+
// return ret;
|
375
|
+
// },
|
376
|
+
// asNumber: function(str, _noMismatch){
|
377
|
+
// var ret = nan;
|
378
|
+
// var date = this.asDate(str, _noMismatch);
|
379
|
+
// if(date && date.getUTCFullYear){
|
380
|
+
// ret = date.getTime();
|
381
|
+
// }
|
382
|
+
// return ret;
|
383
|
+
// },
|
384
|
+
// dateToString: function(date){
|
385
|
+
// var week, checkDate;
|
386
|
+
// var ret = false;
|
387
|
+
// if(date && date.getFullYear){
|
388
|
+
// week = getWeek(date);
|
389
|
+
// if(week == 1){
|
390
|
+
// checkDate = new Date(date.getTime());
|
391
|
+
// checkDate.setDate(checkDate.getDate() + 7);
|
392
|
+
// date.setUTCFullYear(checkDate.getUTCFullYear());
|
393
|
+
// }
|
394
|
+
// ret = addleadingZero(date.getUTCFullYear(), 4) +'-W'+addleadingZero(week, 2);
|
395
|
+
// }
|
396
|
+
// return ret;
|
397
|
+
// },
|
398
|
+
// numberToString: function(num){
|
399
|
+
// return (isNumber(num)) ? this.dateToString(new Date( num * 1)) : false;
|
400
|
+
// }
|
401
|
+
// },
|
329
402
|
time: {
|
330
403
|
mismatch: function(val, _getParsed){
|
331
404
|
if(!val || !val.split || !(/\d$/.test(val))){return true;}
|
@@ -484,8 +557,6 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
484
557
|
// typeProtos['datetime-local'] = $.extend({}, typeProtos.date, typeProtos.time, typeProtos['datetime-local']);
|
485
558
|
}
|
486
559
|
|
487
|
-
|
488
|
-
|
489
560
|
//'datetime-local'
|
490
561
|
['number', 'month', 'range', 'date', 'time', 'color'].forEach(function(type){
|
491
562
|
if(typeBugs || !supportsType(type)){
|
@@ -4,7 +4,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
4
4
|
var formcfg = webshims.formcfg;
|
5
5
|
|
6
6
|
var stopPropagation = function(e){
|
7
|
-
e.stopImmediatePropagation(
|
7
|
+
e.stopImmediatePropagation();
|
8
8
|
};
|
9
9
|
var createFormat = function(name){
|
10
10
|
if(!curCfg.patterns[name+'Obj']){
|
@@ -75,6 +75,10 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
75
75
|
number: {
|
76
76
|
step: 1
|
77
77
|
},
|
78
|
+
// week: {
|
79
|
+
// step: 1,
|
80
|
+
// start: new Date(nowDate)
|
81
|
+
// },
|
78
82
|
time: {
|
79
83
|
step: 60
|
80
84
|
},
|
@@ -277,6 +281,9 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
277
281
|
time: function(val){
|
278
282
|
return val;
|
279
283
|
},
|
284
|
+
week: function(val){
|
285
|
+
return val;
|
286
|
+
},
|
280
287
|
//todo empty val for month/split
|
281
288
|
month: function(val, options){
|
282
289
|
var names;
|
@@ -326,6 +333,9 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
326
333
|
number: function(val){
|
327
334
|
return (val+'').replace(curCfg.numberFormat[','], '').replace(curCfg.numberFormat['.'], '.');
|
328
335
|
},
|
336
|
+
// week: function(val){
|
337
|
+
// return val;
|
338
|
+
// },
|
329
339
|
time: function(val){
|
330
340
|
return val;
|
331
341
|
},
|
@@ -462,6 +472,10 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
462
472
|
steps[this.type].start = this.asNumber(steps[this.type].start);
|
463
473
|
}
|
464
474
|
|
475
|
+
if(!webshims.picker[this.type]){
|
476
|
+
o.buttonOnly = false;
|
477
|
+
}
|
478
|
+
|
465
479
|
for(i = 0; i < createOpts.length; i++){
|
466
480
|
if(o[createOpts[i]] != null){
|
467
481
|
this[createOpts[i]](o[createOpts[i]], o[createOpts[i]]);
|
@@ -473,6 +487,11 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
473
487
|
this.addBindings();
|
474
488
|
$(this.element).data('wsWidget'+o.type, this);
|
475
489
|
|
490
|
+
|
491
|
+
if(o.buttonOnly){
|
492
|
+
this.inputElements.prop({readOnly: true});
|
493
|
+
}
|
494
|
+
|
476
495
|
this._init = true;
|
477
496
|
|
478
497
|
if(o.mirrorValidity){
|
@@ -553,7 +572,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
553
572
|
if(preventBlur.prevent){
|
554
573
|
e.preventDefault();
|
555
574
|
(isFocused || that.element.getShadowFocusElement()).focus();
|
556
|
-
e
|
575
|
+
stopPropagation(e);
|
557
576
|
return true;
|
558
577
|
}
|
559
578
|
};
|
@@ -925,12 +944,18 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
925
944
|
['readonly', 'disabled'].forEach(function(name){
|
926
945
|
var isDisabled = name == 'disabled';
|
927
946
|
wsWidgetProto[name] = function(val, boolVal){
|
928
|
-
|
929
|
-
|
930
|
-
|
931
|
-
|
947
|
+
var options = this.options;
|
948
|
+
if(options[name] != boolVal || !this._init){
|
949
|
+
options[name] = !!boolVal;
|
950
|
+
|
951
|
+
if(!isDisabled && options.buttonOnly){
|
952
|
+
this.inputElements.attr({'aria-readonly': options[name]});
|
953
|
+
} else {
|
954
|
+
this.inputElements.prop(name, options[name]);
|
955
|
+
}
|
956
|
+
this.buttonWrapper[options[name] ? 'addClass' : 'removeClass']('ws-'+name);
|
932
957
|
if(isDisabled){
|
933
|
-
$('button', this.buttonWrapper).prop('disabled',
|
958
|
+
$('button', this.buttonWrapper).prop('disabled', options[name]);
|
934
959
|
}
|
935
960
|
}
|
936
961
|
};
|
@@ -1217,9 +1242,10 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
1217
1242
|
|
1218
1243
|
|
1219
1244
|
picker._common = function(data){
|
1220
|
-
var popover = webshims.objectCreate(webshims.wsPopover, {}, {prepareFor: data.element});
|
1221
|
-
var opener = $('<button type="button" class="ws-popover-opener"><span /></button>').appendTo(data.buttonWrapper);
|
1222
1245
|
var options = data.options;
|
1246
|
+
var popover = webshims.objectCreate(webshims.wsPopover, {}, {prepareFor: data.element, position: options.widgetPosition});
|
1247
|
+
var opener = $('<button type="button" class="ws-popover-opener"><span /></button>').appendTo(data.buttonWrapper);
|
1248
|
+
|
1223
1249
|
|
1224
1250
|
var showPickerContent = function(){
|
1225
1251
|
(picker[data.type].showPickerContent || picker.showPickerContent)(data, popover);
|
@@ -1308,8 +1334,8 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
1308
1334
|
};
|
1309
1335
|
data.inputElements.on({
|
1310
1336
|
focus: function(){
|
1311
|
-
if(!popover.stopOpen && (
|
1312
|
-
popover.openedByFocus = !options.noInput;
|
1337
|
+
if(!popover.stopOpen && (options.buttonOnly || options.openOnFocus || (mouseFocus && options.openOnMouseFocus))){
|
1338
|
+
popover.openedByFocus = options.buttonOnly ? false : !options.noInput;
|
1313
1339
|
show();
|
1314
1340
|
} else {
|
1315
1341
|
popover.preventBlur();
|
@@ -1318,8 +1344,15 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
1318
1344
|
mousedown: function(){
|
1319
1345
|
mouseFocus = true;
|
1320
1346
|
setTimeout(resetMouseFocus, 9);
|
1347
|
+
if(options.buttonOnly && popover.isVisible && popover.activeElement){
|
1348
|
+
popover.openedByFocus = false;
|
1349
|
+
setTimeout(function(){
|
1350
|
+
popover.openedByFocus = false;
|
1351
|
+
popover.activeElement.focus();
|
1352
|
+
}, 4);
|
1353
|
+
}
|
1321
1354
|
if(data.element.is(':focus')){
|
1322
|
-
popover.openedByFocus = !options.noInput;
|
1355
|
+
popover.openedByFocus = options.buttonOnly ? false : !options.noInput;
|
1323
1356
|
show();
|
1324
1357
|
}
|
1325
1358
|
popover.preventBlur();
|
@@ -1330,8 +1363,10 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
1330
1363
|
data.opener = opener;
|
1331
1364
|
$(data.orig).on('remove', function(e){
|
1332
1365
|
if(!e.originalEvent){
|
1333
|
-
|
1334
|
-
|
1366
|
+
setTimeout(function(){
|
1367
|
+
opener.remove();
|
1368
|
+
popover.element.remove();
|
1369
|
+
}, 4);
|
1335
1370
|
}
|
1336
1371
|
});
|
1337
1372
|
|
@@ -1340,6 +1375,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
1340
1375
|
|
1341
1376
|
picker.month = picker._common;
|
1342
1377
|
picker.date = picker._common;
|
1378
|
+
// picker.week = picker._common;
|
1343
1379
|
picker.color = function(data){
|
1344
1380
|
var ret = picker._common.apply(this, arguments);
|
1345
1381
|
var alpha = $(data.orig).data('alphacontrol');
|
@@ -1591,10 +1627,12 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
1591
1627
|
data.shim.element.addClass('has-input-buttons');
|
1592
1628
|
}
|
1593
1629
|
|
1630
|
+
data.shim.element.addClass($.prop(this, 'className'));
|
1631
|
+
|
1594
1632
|
if(opts.calculateWidth){
|
1595
1633
|
sizeInput(data.shim);
|
1596
1634
|
} else {
|
1597
|
-
$(this).
|
1635
|
+
$(this).addClass('ws-important-hide');
|
1598
1636
|
}
|
1599
1637
|
}
|
1600
1638
|
|
@@ -257,8 +257,16 @@ $(window).on('invalid', $.noop);
|
|
257
257
|
webshims.addInputType('email', {
|
258
258
|
mismatch: (function(){
|
259
259
|
//taken from http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#valid-e-mail-address
|
260
|
-
var test = cfg.emailReg || /^[a-zA-Z0-9.!#$%&'
|
260
|
+
var test = cfg.emailReg || /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
|
261
261
|
return function(val){
|
262
|
+
// optional punycode support: https://github.com/bestiejs/punycode.js
|
263
|
+
if(window.punycode && punycode.toASCII){
|
264
|
+
try {
|
265
|
+
if( test.test(punycode.toASCII(val)) ){
|
266
|
+
return false;
|
267
|
+
}
|
268
|
+
} catch(er){}
|
269
|
+
}
|
262
270
|
return !test.test(val);
|
263
271
|
};
|
264
272
|
})()
|
@@ -1764,10 +1772,7 @@ try {
|
|
1764
1772
|
});
|
1765
1773
|
}
|
1766
1774
|
;
|
1767
|
-
|
1768
|
-
$.event.customEvent.updateInput = true;
|
1769
|
-
}
|
1770
|
-
|
1775
|
+
|
1771
1776
|
$(doc)
|
1772
1777
|
.on('focusin', function(e){
|
1773
1778
|
if( e.target && !e.target.readOnly && !e.target.disabled && (e.target.nodeName || '').toLowerCase() == 'input' && !noInputTypes[e.target.type] && !(webshims.data(e.target, 'implemented') || {}).inputwidgets){
|
@@ -80,7 +80,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
80
80
|
if(!e.target){return;}
|
81
81
|
elem = $(e.target).getNativeElement()[0];
|
82
82
|
shadowElem = $(elem).getShadowElement();
|
83
|
-
if(elem.type == 'submit' || !$.prop(elem, 'willValidate') || (e.type == 'change' &&
|
83
|
+
if(elem.type == 'submit' || !$.prop(elem, 'willValidate') || (e.type == 'change' && (shadowType = shadowElem.prop('type')) && !changeTypes[shadowType])){return;}
|
84
84
|
timer = $.data(elem, 'webshimsswitchvalidityclass');
|
85
85
|
var switchClass = function(){
|
86
86
|
if(!shadowType){
|
@@ -155,7 +155,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
155
155
|
}
|
156
156
|
};
|
157
157
|
|
158
|
-
$(document.body)
|
158
|
+
$(document.body || 'html')
|
159
159
|
.on(options.validityUIEvents || 'focusout change refreshvalidityui invalid', switchValidityClass)
|
160
160
|
.on('reset resetvalui', function(e){
|
161
161
|
var elems = $(e.target);
|
@@ -187,18 +187,44 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
187
187
|
'width'
|
188
188
|
;
|
189
189
|
var hasTransition = ('transitionDelay' in document.documentElement.style);
|
190
|
+
var resetPos = {display: 'inline-block', left: 0, top: 0, marginTop: 0, marginLeft: 0, marginRight: 0, marginBottom: 0};
|
191
|
+
|
190
192
|
setRoot();
|
191
193
|
webshims.ready('DOM', setRoot);
|
192
194
|
|
193
|
-
|
195
|
+
|
196
|
+
webshims.getRelOffset = function(posElem, relElem, opts){
|
197
|
+
var offset, bodyOffset, dirs;
|
194
198
|
posElem = $(posElem);
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
+
$.swap($(posElem)[0], resetPos, function(){
|
200
|
+
if($.position && opts && $.position.getScrollInfo){
|
201
|
+
if(!opts.of){
|
202
|
+
opts.of = relElem;
|
203
|
+
}
|
204
|
+
|
205
|
+
opts.using = function(calced, data){
|
206
|
+
posElem.attr({'data-horizontal': data.horizontal, 'data-vertical': data.vertical});
|
207
|
+
offset = calced;
|
208
|
+
};
|
209
|
+
posElem.attr({
|
210
|
+
'data-horizontal': '',
|
211
|
+
'data-vertical': '',
|
212
|
+
'data-my': opts.my || 'center',
|
213
|
+
'data-at': opts.at || 'center'
|
214
|
+
});
|
215
|
+
posElem.position(opts);
|
216
|
+
|
217
|
+
} else {
|
218
|
+
offset = $(relElem).offset();
|
219
|
+
bodyOffset = posElem.offset();
|
220
|
+
offset.top -= bodyOffset.top;
|
221
|
+
offset.left -= bodyOffset.left;
|
222
|
+
|
223
|
+
offset.top += relElem.outerHeight();
|
224
|
+
}
|
225
|
+
|
199
226
|
});
|
200
|
-
|
201
|
-
offset.left -= bodyOffset.left;
|
227
|
+
|
202
228
|
return offset;
|
203
229
|
};
|
204
230
|
|
@@ -249,9 +275,10 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
249
275
|
},
|
250
276
|
prepareFor: function(element, visual){
|
251
277
|
var onBlur;
|
252
|
-
var opts = $.extend({}, this.options, $(element.prop('form') || []).data('wspopover') || {}, element.data('wspopover'));
|
253
278
|
var that = this;
|
254
279
|
var css = {};
|
280
|
+
var opts = $.extend(true, {}, this.options, $(element.prop('form') || []).data('wspopover') || {}, element.data('wspopover'));
|
281
|
+
this.lastOpts = opts;
|
255
282
|
this.lastElement = $(element).getShadowFocusElement();
|
256
283
|
if(!this.prepared || !this.options.prepareFor){
|
257
284
|
if(opts.appendTo == 'element'){
|
@@ -297,6 +324,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
297
324
|
$(document).off(this.eventns);
|
298
325
|
this.element.off('transitionend'+this.eventns);
|
299
326
|
this.stopBlur = false;
|
327
|
+
this.lastOpts = false;
|
300
328
|
$.each(this.timers, function(timerName, val){
|
301
329
|
clearTimeout(val);
|
302
330
|
});
|
@@ -324,9 +352,9 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
324
352
|
that.timers.forcehide = setTimeout(forceHide, hasTransition ? 600 : 40);
|
325
353
|
},
|
326
354
|
position: function(element){
|
327
|
-
var offset = webshims.getRelOffset(this.element.
|
328
|
-
|
329
|
-
this.element.css(
|
355
|
+
var offset = webshims.getRelOffset(this.element.removeAttr('hidden'), element, (this.lastOpts || this.options).position);
|
356
|
+
|
357
|
+
this.element.css(offset);
|
330
358
|
}
|
331
359
|
});
|
332
360
|
|
@@ -334,6 +362,12 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
334
362
|
|
335
363
|
/* some extra validation UI */
|
336
364
|
webshims.validityAlert = (function(){
|
365
|
+
|
366
|
+
options.messagePopover.position = $.extend({}, {
|
367
|
+
at: 'left bottom',
|
368
|
+
my: 'left top',
|
369
|
+
collision: 'none'
|
370
|
+
}, options.messagePopover.position || {});
|
337
371
|
|
338
372
|
var focusTimer = false;
|
339
373
|
|
@@ -565,6 +599,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
565
599
|
},
|
566
600
|
submit: function(e){
|
567
601
|
if(options.iVal.sel && $(e.target).is(options.iVal.sel) && $.prop(e.target, 'noValidate') && !$(e.target).checkValidity()){
|
602
|
+
e.stopImmediatePropagation();
|
568
603
|
return false;
|
569
604
|
}
|
570
605
|
}
|