webshims-rails 1.14.3 → 1.14.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/webshims-rails/version.rb +2 -2
- data/vendor/assets/javascripts/webshims/extras/modernizr-custom.js +4 -0
- data/vendor/assets/javascripts/webshims/polyfiller.js +141 -139
- data/vendor/assets/javascripts/webshims/shims/color-picker.js +1 -3
- data/vendor/assets/javascripts/webshims/shims/combos/1.js +22 -33
- data/vendor/assets/javascripts/webshims/shims/combos/10.js +76 -73
- data/vendor/assets/javascripts/webshims/shims/combos/11.js +73 -61
- data/vendor/assets/javascripts/webshims/shims/combos/12.js +37 -41
- data/vendor/assets/javascripts/webshims/shims/combos/13.js +36 -40
- data/vendor/assets/javascripts/webshims/shims/combos/14.js +7 -7
- data/vendor/assets/javascripts/webshims/shims/combos/15.js +23 -32
- data/vendor/assets/javascripts/webshims/shims/combos/16.js +36 -57
- data/vendor/assets/javascripts/webshims/shims/combos/17.js +73 -61
- data/vendor/assets/javascripts/webshims/shims/combos/18.js +611 -4604
- data/vendor/assets/javascripts/webshims/shims/combos/2.js +27 -47
- data/vendor/assets/javascripts/webshims/shims/combos/21.js +61 -31
- data/vendor/assets/javascripts/webshims/shims/combos/22.js +24 -16
- data/vendor/assets/javascripts/webshims/shims/combos/23.js +13 -25
- data/vendor/assets/javascripts/webshims/shims/combos/25.js +40 -27
- data/vendor/assets/javascripts/webshims/shims/combos/27.js +167 -166
- data/vendor/assets/javascripts/webshims/shims/combos/28.js +11 -12
- data/vendor/assets/javascripts/webshims/shims/combos/29.js +5 -5
- data/vendor/assets/javascripts/webshims/shims/combos/3.js +14 -22
- data/vendor/assets/javascripts/webshims/shims/combos/30.js +16 -24
- data/vendor/assets/javascripts/webshims/shims/combos/31.js +14 -22
- data/vendor/assets/javascripts/webshims/shims/combos/33.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/combos/34.js +27 -28
- data/vendor/assets/javascripts/webshims/shims/combos/4.js +5 -14
- data/vendor/assets/javascripts/webshims/shims/combos/5.js +78 -66
- data/vendor/assets/javascripts/webshims/shims/combos/6.js +80 -68
- data/vendor/assets/javascripts/webshims/shims/combos/7.js +29 -49
- data/vendor/assets/javascripts/webshims/shims/combos/8.js +27 -47
- data/vendor/assets/javascripts/webshims/shims/combos/9.js +78 -75
- data/vendor/assets/javascripts/webshims/shims/combos/97.js +42 -29
- data/vendor/assets/javascripts/webshims/shims/combos/98.js +116 -40
- data/vendor/assets/javascripts/webshims/shims/combos/99.js +112 -38
- data/vendor/assets/javascripts/webshims/shims/dom-extend.js +3 -12
- data/vendor/assets/javascripts/webshims/shims/es5.js +4 -4
- data/vendor/assets/javascripts/webshims/shims/es6.js +1887 -0
- data/vendor/assets/javascripts/webshims/shims/form-core.js +9 -8
- data/vendor/assets/javascripts/webshims/shims/form-datalist.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/form-inputmode.js +52 -0
- data/vendor/assets/javascripts/webshims/shims/form-message.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/form-native-extend.js +4 -5
- data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +73 -61
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +7 -8
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend2.js +164 -163
- data/vendor/assets/javascripts/webshims/shims/form-validation.js +121 -144
- data/vendor/assets/javascripts/webshims/shims/jme/_icons.scss +3 -0
- data/vendor/assets/javascripts/webshims/shims/jme/alternate-media.js +184 -0
- data/vendor/assets/javascripts/webshims/shims/jme/{b.js → base.js} +38 -27
- data/vendor/assets/javascripts/webshims/shims/jme/controls.css +129 -39
- data/vendor/assets/javascripts/webshims/shims/jme/controls.scss +145 -44
- data/vendor/assets/javascripts/webshims/shims/jme/jme.eot +0 -0
- data/vendor/assets/javascripts/webshims/shims/jme/jme.svg +0 -0
- data/vendor/assets/javascripts/webshims/shims/jme/jme.ttf +0 -0
- data/vendor/assets/javascripts/webshims/shims/jme/jme.woff +0 -0
- data/vendor/assets/javascripts/webshims/shims/jme/mediacontrols-lazy.js +448 -90
- data/vendor/assets/javascripts/webshims/shims/jme/{c.js → mediacontrols.js} +74 -11
- data/vendor/assets/javascripts/webshims/shims/jme/{p.js → playlist.js} +4 -2
- data/vendor/assets/javascripts/webshims/shims/matchMedia.js +122 -0
- data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +12 -24
- data/vendor/assets/javascripts/webshims/shims/mediaelement-debug.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +37 -15
- data/vendor/assets/javascripts/webshims/shims/mediaelement-native-fix.js +3 -3
- data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +4 -5
- data/vendor/assets/javascripts/webshims/shims/picture.js +13 -54
- data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +13 -20
- data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-ext.scss +24 -18
- data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +32 -10
- data/vendor/assets/javascripts/webshims/shims/styles/shim-ext.css +43 -47
- data/vendor/assets/javascripts/webshims/shims/styles/shim.css +30 -18
- data/vendor/assets/javascripts/webshims/shims/styles/transparent.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/widget.eot +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/widget.svg +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/widget.ttf +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/widget.woff +0 -0
- 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 -5
- data/vendor/assets/javascripts/webshims/shims/track.js +24 -16
- metadata +9 -8
- data/vendor/assets/javascripts/webshims/shims/combos/19.js +0 -4745
- data/vendor/assets/javascripts/webshims/shims/combos/20.js +0 -4522
- data/vendor/assets/javascripts/webshims/shims/combos/32.js +0 -2443
- data/vendor/assets/javascripts/webshims/shims/combos/comboinfo.json +0 -1
@@ -2,28 +2,33 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
2
2
|
"use strict";
|
3
3
|
|
4
4
|
var isWebkit = 'webkitURL' in window;
|
5
|
-
var
|
5
|
+
var support = webshims.support;
|
6
|
+
var hasNative = support.formvalidation && !webshims.bugs.bustedValidity;
|
6
7
|
var chromeBugs = isWebkit && hasNative;
|
7
8
|
var ua = navigator.userAgent;
|
9
|
+
var isIE = ua.indexOf('MSIE') != -1;
|
8
10
|
var webkitVersion = chromeBugs && parseFloat((ua.match(/Safari\/([\d\.]+)/) || ['', '999999'])[1], 10);
|
9
|
-
|
11
|
+
|
10
12
|
var iVal = options.iVal;
|
11
13
|
|
12
14
|
var invalidClass = iVal.errorClass || (iVal.errorClass = 'user-error');
|
13
15
|
var validClass = iVal.successClass || (iVal.successClass = 'user-success');
|
14
|
-
|
16
|
+
var markedClases = '.'+validClass+', .'+invalidClass;
|
17
|
+
|
15
18
|
var invalidWrapperClass = iVal.errorWrapperClass || (iVal.errorWrapperClass = 'ws-invalid');
|
16
19
|
var successWrapperClass = iVal.successWrapperClass || (iVal.successWrapperClass = 'ws-success');
|
17
20
|
var errorBoxClass = iVal.errorBoxClass || (iVal.errorBoxClass = 'ws-errorbox');
|
18
21
|
var errorMessageClass = iVal.errorMessageClass || (iVal.errorMessageClass = 'ws-errormessage');
|
19
|
-
|
22
|
+
var errorBoxWrapper = iVal.errorBoxWrapper || (iVal.errorBoxWrapper = 'div');
|
23
|
+
var errorMessageWrapper = iVal.errorMessageWrapper || (iVal.errorMessageWrapper = 'p');
|
24
|
+
|
20
25
|
var checkTypes = {checkbox: 1, radio: 1};
|
21
|
-
|
26
|
+
|
22
27
|
var loader = webshims.loader;
|
23
28
|
var addModule = loader.addModule;
|
24
|
-
|
29
|
+
|
25
30
|
var emptyJ = $([]);
|
26
|
-
|
31
|
+
|
27
32
|
var nonFormFilter = function(){
|
28
33
|
return !$.prop(this, 'form');
|
29
34
|
};
|
@@ -46,8 +51,8 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
46
51
|
}
|
47
52
|
return ret;
|
48
53
|
};
|
49
|
-
|
50
|
-
|
54
|
+
|
55
|
+
|
51
56
|
var returnValidityCause = function(validity, elem){
|
52
57
|
var ret;
|
53
58
|
$.each(validity, function(name, value){
|
@@ -58,7 +63,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
58
63
|
});
|
59
64
|
return ret;
|
60
65
|
};
|
61
|
-
|
66
|
+
|
62
67
|
var isInGroup = function(name){
|
63
68
|
var ret;
|
64
69
|
try {
|
@@ -115,13 +120,13 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
115
120
|
$(elem).one('updatevalidation.webshims', switchValidityClass);
|
116
121
|
return;
|
117
122
|
}
|
118
|
-
|
123
|
+
|
119
124
|
var validity = $.prop(elem, 'validity');
|
120
|
-
|
125
|
+
|
121
126
|
var addClass, removeClass, trigger, generaltrigger, validityCause;
|
122
|
-
|
123
|
-
|
124
|
-
|
127
|
+
|
128
|
+
|
129
|
+
|
125
130
|
if(validity.valid){
|
126
131
|
if(!shadowElem.hasClass(validClass)){
|
127
132
|
addClass = validClass;
|
@@ -150,7 +155,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
150
155
|
trigger = 'changedinvalid';
|
151
156
|
}
|
152
157
|
}
|
153
|
-
|
158
|
+
|
154
159
|
if(addClass){
|
155
160
|
shadowElem.addClass(addClass).removeClass(removeClass);
|
156
161
|
//jQuery 1.6.1 IE9 bug (doubble trigger bug)
|
@@ -163,7 +168,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
163
168
|
$(elem).trigger(generaltrigger);
|
164
169
|
});
|
165
170
|
}
|
166
|
-
|
171
|
+
|
167
172
|
$.removeData(elem, 'webshimsswitchvalidityclass');
|
168
173
|
};
|
169
174
|
if(shadowElem.triggerHandler('wsallowinstantvalidation', [e]) !== false){
|
@@ -185,7 +190,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
185
190
|
};
|
186
191
|
|
187
192
|
if('validityUIEvents' in options){
|
188
|
-
webshims.
|
193
|
+
webshims.error('validityUIEvents was renamed to iVal.events');
|
189
194
|
iVal.events = options.validityUIEvents;
|
190
195
|
}
|
191
196
|
if('events' in iVal){
|
@@ -208,11 +213,16 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
208
213
|
|
209
214
|
$(document.body || 'html')
|
210
215
|
.on(iVal.events+'refreshvalidityui updatevalidation.webshims invalid', switchValidityClass)
|
216
|
+
.on('refreshvalidationui.webshims', function(e){
|
217
|
+
if($(e.target).getShadowElement().is(markedClases)){
|
218
|
+
switchValidityClass({type: 'updatevalidation', target: e.target});
|
219
|
+
}
|
220
|
+
})
|
211
221
|
.on('reset resetvalidation.webshims resetvalui', function(e){
|
212
222
|
var noIValTrigger;
|
213
223
|
var elems = $(e.target);
|
214
224
|
if(e.type == 'resetvalui'){
|
215
|
-
webshims.
|
225
|
+
webshims.error('resetvalui was renamed to resetvalidation');
|
216
226
|
}
|
217
227
|
if(elems.is('form, fieldset')){
|
218
228
|
if(elems[0].nodeName.toLowerCase() == 'form'){
|
@@ -239,10 +249,10 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
239
249
|
}
|
240
250
|
})
|
241
251
|
;
|
242
|
-
|
252
|
+
|
243
253
|
var setRoot = function(){
|
244
254
|
webshims.scrollRoot = (isWebkit || document.compatMode == 'BackCompat') ?
|
245
|
-
$(document.body) :
|
255
|
+
$(document.body) :
|
246
256
|
$(document.documentElement)
|
247
257
|
;
|
248
258
|
};
|
@@ -265,7 +275,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
265
275
|
|
266
276
|
setRoot();
|
267
277
|
webshims.ready('DOM', setRoot);
|
268
|
-
|
278
|
+
|
269
279
|
var rtlReg = /right|left/g;
|
270
280
|
var rtlReplace = function(ret){
|
271
281
|
return ret == 'left' ? 'right' : 'left';
|
@@ -280,7 +290,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
280
290
|
if(!opts.of){
|
281
291
|
opts.of = relElem;
|
282
292
|
}
|
283
|
-
|
293
|
+
|
284
294
|
isRtl = $(opts.of).css('direction') == 'rtl';
|
285
295
|
if(!opts.isRtl){
|
286
296
|
opts.isRtl = false;
|
@@ -290,39 +300,39 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
290
300
|
opts.at = (opts.at || 'center').replace(rtlReg, rtlReplace);
|
291
301
|
opts.isRtl = isRtl;
|
292
302
|
}
|
293
|
-
|
303
|
+
|
294
304
|
posElem[opts.isRtl ? 'addClass' : 'removeClass']('ws-is-rtl');
|
295
|
-
|
305
|
+
|
296
306
|
opts.using = function(calced, data){
|
297
307
|
posElem.attr({'data-horizontal': data.horizontal, 'data-vertical': data.vertical});
|
298
308
|
offset = calced;
|
299
309
|
};
|
300
|
-
|
310
|
+
|
301
311
|
posElem.attr({
|
302
|
-
'data-horizontal': '',
|
312
|
+
'data-horizontal': '',
|
303
313
|
'data-vertical': '',
|
304
314
|
'data-my': opts.my,
|
305
315
|
'data-at': opts.at
|
306
316
|
});
|
307
317
|
posElem.position(opts);
|
308
|
-
|
318
|
+
|
309
319
|
} else {
|
310
320
|
offset = $(relElem).offset();
|
311
321
|
bodyOffset = posElem.offset();
|
312
322
|
offset.top -= bodyOffset.top;
|
313
323
|
offset.left -= bodyOffset.left;
|
314
|
-
|
324
|
+
|
315
325
|
offset.top += relElem.outerHeight();
|
316
326
|
}
|
317
|
-
|
327
|
+
|
318
328
|
});
|
319
|
-
|
329
|
+
|
320
330
|
return offset;
|
321
331
|
};
|
322
|
-
|
332
|
+
|
323
333
|
$.extend(webshims.wsPopover, {
|
324
|
-
|
325
|
-
|
334
|
+
|
335
|
+
|
326
336
|
isInElement: function(containers, contained){
|
327
337
|
if(!$.isArray(containers)){
|
328
338
|
containers = [containers];
|
@@ -355,7 +365,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
355
365
|
}
|
356
366
|
|
357
367
|
element = $(element || this.options.prepareFor).getNativeElement() ;
|
358
|
-
|
368
|
+
|
359
369
|
var that = this;
|
360
370
|
var closeOnOutSide = function(e){
|
361
371
|
if(that.options.hideOnBlur && !that.stopBlur && !that.isInElement([that.lastElement[0], element[0], that.element[0]], e.target)){
|
@@ -372,9 +382,9 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
372
382
|
|
373
383
|
this.clear();
|
374
384
|
this.element.css('display', 'none');
|
375
|
-
|
385
|
+
|
376
386
|
this.prepareFor(element, visual);
|
377
|
-
|
387
|
+
|
378
388
|
this.position(visual);
|
379
389
|
|
380
390
|
if(this.options.inline){
|
@@ -397,21 +407,21 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
397
407
|
.children(':not(script), :not(iframe), :not(noscript)')
|
398
408
|
.on('mousedown'+this.eventns, closeOnOutSide)
|
399
409
|
;
|
400
|
-
|
410
|
+
|
401
411
|
this.element.off('pospopover').on('pospopover', delayedRepos);
|
402
412
|
$(window).on('resize'+this.eventns + ' pospopover'+this.eventns, delayedRepos);
|
403
413
|
},
|
404
414
|
_getAutoAppendElement: (function(){
|
405
415
|
var invalidParent = /^(?:span|i|label|b|p|tr|thead|tbody|table|strong|em|ul|ol|dl|html)$/i;
|
406
416
|
return function(element){
|
407
|
-
|
417
|
+
|
408
418
|
var appendElement;
|
409
419
|
var parent = element[0];
|
410
420
|
var body = document.body;
|
411
421
|
while((parent = parent[appendElement ? 'offsetParent' : 'parentNode']) && parent.nodeType == 1 && parent != body){
|
412
422
|
if(!appendElement && !invalidParent.test(parent.nodeName)){
|
413
423
|
appendElement = parent;
|
414
|
-
}
|
424
|
+
}
|
415
425
|
if(appendElement && $.css(parent, 'overflow') == 'hidden' && $.css(parent, 'position') != 'static'){
|
416
426
|
appendElement = false;
|
417
427
|
}
|
@@ -438,7 +448,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
438
448
|
this.element.appendTo(parentElem);
|
439
449
|
}
|
440
450
|
}
|
441
|
-
|
451
|
+
|
442
452
|
this.element.attr({
|
443
453
|
'data-class': element.prop('className'),
|
444
454
|
'data-id': element.prop('id')
|
@@ -468,13 +478,13 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
468
478
|
that.hide();
|
469
479
|
}
|
470
480
|
};
|
471
|
-
|
481
|
+
|
472
482
|
that.timers.bindBlur = setTimeout(function(){
|
473
483
|
that.lastElement.off(that.eventns).on('focusout'+that.eventns + ' blur'+that.eventns, onBlur);
|
474
484
|
that.lastElement.getNativeElement().off(that.eventns);
|
475
485
|
}, 10);
|
476
486
|
}
|
477
|
-
|
487
|
+
|
478
488
|
this.prepared = true;
|
479
489
|
},
|
480
490
|
clear: function(){
|
@@ -533,39 +543,39 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
533
543
|
}
|
534
544
|
}
|
535
545
|
});
|
536
|
-
|
537
|
-
|
538
|
-
|
546
|
+
|
547
|
+
|
548
|
+
|
539
549
|
/* some extra validation UI */
|
540
550
|
webshims.validityAlert = (function(){
|
541
|
-
|
551
|
+
|
542
552
|
options.messagePopover.position = $.extend({}, {
|
543
553
|
at: 'left bottom',
|
544
554
|
my: 'left top',
|
545
555
|
collision: 'none'
|
546
556
|
}, options.messagePopover.position || {});
|
547
|
-
|
557
|
+
|
548
558
|
var api = webshims.objectCreate(webshims.wsPopover, undefined, options.messagePopover);
|
549
559
|
var boundHide = api.hide.bind(api);
|
550
|
-
|
560
|
+
|
551
561
|
api.element.addClass('validity-alert').attr({role: 'alert'});
|
552
562
|
$.extend(api, {
|
553
563
|
hideDelay: 5000,
|
554
564
|
showFor: function(elem, message, noFocusElem, noBubble){
|
555
|
-
|
565
|
+
|
556
566
|
elem = $(elem).getNativeElement();
|
557
567
|
this.clear();
|
558
568
|
this.hide();
|
559
569
|
if(!noBubble){
|
560
570
|
this.getMessage(elem, message);
|
561
|
-
|
571
|
+
|
562
572
|
this.show(elem);
|
563
573
|
if(this.hideDelay){
|
564
574
|
this.timers.delayedHide = setTimeout(boundHide, this.hideDelay);
|
565
575
|
}
|
566
|
-
|
576
|
+
|
567
577
|
}
|
568
|
-
|
578
|
+
|
569
579
|
if(!noFocusElem){
|
570
580
|
this.setFocus(elem);
|
571
581
|
}
|
@@ -583,21 +593,21 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
583
593
|
}
|
584
594
|
api.element.triggerHandler('pospopover');
|
585
595
|
};
|
586
|
-
|
596
|
+
|
587
597
|
if(scrollTop > elemTop){
|
588
598
|
webshims.scrollRoot.animate(
|
589
|
-
{scrollTop: elemTop - 5 - (options.viewportOffset || 0)},
|
599
|
+
{scrollTop: elemTop - 5 - (options.viewportOffset || 0)},
|
590
600
|
{
|
591
|
-
queue: false,
|
601
|
+
queue: false,
|
592
602
|
duration: Math.max( Math.min( 600, (scrollTop - elemTop) * 1.5 ), 80 ),
|
593
603
|
complete: focus
|
594
604
|
}
|
595
605
|
);
|
596
|
-
|
606
|
+
|
597
607
|
} else {
|
598
608
|
focus();
|
599
609
|
}
|
600
|
-
|
610
|
+
|
601
611
|
},
|
602
612
|
getMessage: function(elem, message){
|
603
613
|
if (!message) {
|
@@ -610,16 +620,16 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
610
620
|
}
|
611
621
|
}
|
612
622
|
});
|
613
|
-
|
614
|
-
|
623
|
+
|
624
|
+
|
615
625
|
return api;
|
616
626
|
})();
|
617
|
-
|
627
|
+
|
618
628
|
|
619
629
|
if(!iVal.fx || !fx[iVal.fx]){
|
620
630
|
iVal.fx = 'slide';
|
621
631
|
}
|
622
|
-
|
632
|
+
|
623
633
|
if(!$.fn[fx[iVal.fx].show]){
|
624
634
|
iVal.fx = 'no';
|
625
635
|
}
|
@@ -629,10 +639,10 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
629
639
|
if(!fieldWrapper){
|
630
640
|
fieldWrapper = this.getFieldWrapper(elem);
|
631
641
|
}
|
632
|
-
var errorBox = $('
|
633
|
-
|
642
|
+
var errorBox = $('.'+errorBoxClass, fieldWrapper);
|
643
|
+
|
634
644
|
if(!errorBox.length){
|
635
|
-
errorBox = $('<
|
645
|
+
errorBox = $('<'+errorBoxWrapper+' class="'+ errorBoxClass +'" hidden="hidden" style="display: none;">');
|
636
646
|
fieldWrapper.append(errorBox);
|
637
647
|
}
|
638
648
|
if(!errorBox.prop('id')){
|
@@ -742,7 +752,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
742
752
|
fieldWrapper[hasVal ? 'addClass' : 'removeClass'](successWrapperClass);
|
743
753
|
};
|
744
754
|
var evt = changeTypes[type] ? 'change' : 'blur';
|
745
|
-
|
755
|
+
|
746
756
|
$(elem).off('.recheckvalid').on(evt+'.recheckinvalid', check);
|
747
757
|
check();
|
748
758
|
},
|
@@ -770,7 +780,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
770
780
|
errorBox[fx[iVal.fx].hide]().each(afterHide);
|
771
781
|
}
|
772
782
|
}
|
773
|
-
|
783
|
+
|
774
784
|
}
|
775
785
|
if(!reset && !invalid){
|
776
786
|
this.addSuccess(elem, fieldWrapper);
|
@@ -788,7 +798,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
788
798
|
.off('.recheckinvalid')
|
789
799
|
.on('input.recheckinvalid', function(){
|
790
800
|
clearTimeout(timer);
|
791
|
-
timer = setTimeout(throttle, iVal.recheckDelay);
|
801
|
+
timer = setTimeout(throttle, iVal.recheckDelay);
|
792
802
|
})
|
793
803
|
.on('focusout.recheckinvalid', function(){
|
794
804
|
clearTimeout(timer);
|
@@ -805,7 +815,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
805
815
|
if(box.stop){
|
806
816
|
box.stop(true, true);
|
807
817
|
}
|
808
|
-
box.html('<
|
818
|
+
box.html('<'+ errorMessageWrapper +' class="'+ errorMessageClass +'">'+ message +'</'+ errorMessageWrapper +'>');
|
809
819
|
box.message = message;
|
810
820
|
fieldWrapper.addClass(invalidWrapperClass).removeClass(successWrapperClass);
|
811
821
|
this.recheckInvalidInput(elem);
|
@@ -818,12 +828,12 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
818
828
|
.removeAttr('hidden')
|
819
829
|
[fx[iVal.fx].show]()
|
820
830
|
;
|
821
|
-
|
831
|
+
|
822
832
|
}
|
823
833
|
}
|
824
834
|
fieldWrapper.removeClass(successWrapperClass);
|
825
835
|
$(elem).off('.recheckvalid');
|
826
|
-
|
836
|
+
|
827
837
|
return fieldWrapper;
|
828
838
|
},
|
829
839
|
reset: function(elem){
|
@@ -837,7 +847,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
837
847
|
}
|
838
848
|
}
|
839
849
|
};
|
840
|
-
|
850
|
+
|
841
851
|
$(document.body)
|
842
852
|
.on({
|
843
853
|
'changedvaliditystate': function(e){
|
@@ -862,7 +872,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
862
872
|
if(form.is(iVal.sel)){
|
863
873
|
e.preventDefault();
|
864
874
|
if(iVal.handleBubble != 'none'){
|
865
|
-
webshims.validityAlert.showFor( e.target, false, false, iVal.handleBubble == 'hide' );
|
875
|
+
webshims.validityAlert.showFor( e.target, false, false, iVal.handleBubble == 'hide' );
|
866
876
|
}
|
867
877
|
}
|
868
878
|
}
|
@@ -875,25 +885,25 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
875
885
|
}
|
876
886
|
})
|
877
887
|
;
|
878
|
-
|
879
888
|
|
880
|
-
|
889
|
+
|
890
|
+
|
881
891
|
if(/[\s\:\>\~\+]/.test(iVal.sel || '')){
|
882
892
|
webshims.error('please use a simple selector for iVal.sel: for example .validate');
|
883
893
|
}
|
884
|
-
|
894
|
+
|
885
895
|
if(options.replaceValidationUI){
|
886
896
|
$(document).on('firstinvalid', function(e){
|
887
897
|
if(!e.isDefaultPrevented()){
|
888
898
|
e.preventDefault();
|
889
|
-
|
899
|
+
|
890
900
|
setTimeout(function(){
|
891
|
-
webshims.validityAlert.showFor( e.target );
|
901
|
+
webshims.validityAlert.showFor( e.target );
|
892
902
|
}, 4);
|
893
903
|
}
|
894
904
|
});
|
895
905
|
}
|
896
|
-
|
906
|
+
|
897
907
|
/* extension, but also used to fix native implementation workaround/bugfixes */
|
898
908
|
(function(){
|
899
909
|
var firstEvent,
|
@@ -901,12 +911,12 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
901
911
|
stopSubmitTimer,
|
902
912
|
stop
|
903
913
|
;
|
904
|
-
|
914
|
+
|
905
915
|
$(document).on('invalid', function(e){
|
906
916
|
if(e.wrongWebkitInvalid || stop){return;}
|
907
917
|
var jElm = $(e.target);
|
908
|
-
|
909
|
-
|
918
|
+
|
919
|
+
|
910
920
|
if(!firstEvent){
|
911
921
|
//trigger firstinvalid
|
912
922
|
firstEvent = $.Event('firstinvalid');
|
@@ -918,7 +928,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
918
928
|
e.preventDefault();
|
919
929
|
}
|
920
930
|
invalids.push(e.target);
|
921
|
-
e.extraData = 'fix';
|
931
|
+
e.extraData = 'fix';
|
922
932
|
clearTimeout(stopSubmitTimer);
|
923
933
|
stopSubmitTimer = setTimeout(function(){
|
924
934
|
var lastEvent = {type: 'lastinvalid', cancelable: false, invalidlist: $(invalids)};
|
@@ -939,65 +949,13 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
939
949
|
});
|
940
950
|
})();
|
941
951
|
|
942
|
-
if(!options.noInputmodeFix && document.addEventListener && Modernizr.inputtypes && Modernizr.inputtypes.tel && ua.indexOf('Mobile') != -1 && !('inputMode' in document.createElement('input') && !('inputmode' in document.createElement('input'))) ){
|
943
|
-
var removeListener = function(elem){
|
944
|
-
elem.removeEventListener('blur', switchBack, true);
|
945
|
-
};
|
946
|
-
var needsPattern = (/iphone|ipod/i).test(ua);
|
947
|
-
var regPattern = /^[\\d\*|\[0\-9\]]*[\+|\{\d*\,\d*\}|*]*$/;
|
948
|
-
var stopPatterns = needsPattern || (/ipad|ios/i).test(ua) ?
|
949
|
-
{
|
950
|
-
'[0-9]*': 1,
|
951
|
-
'\\d*': 1
|
952
|
-
} :
|
953
|
-
false
|
954
|
-
;
|
955
|
-
var switchBack = function(e){
|
956
|
-
removeListener(e.target);
|
957
|
-
e.target.type = 'text';
|
958
|
-
};
|
959
|
-
var removeDocListener = function(){
|
960
|
-
document.removeEventListener('focus', addFix, true);
|
961
|
-
document.removeEventListener('touchstart', addFix, true);
|
962
|
-
};
|
963
|
-
var allowSwitchByPattern = function(elem){
|
964
|
-
var pattern;
|
965
|
-
var switchAllowed = true;
|
966
|
-
|
967
|
-
if(stopPatterns){
|
968
|
-
pattern = elem.getAttribute('pattern') || '';
|
969
|
-
if(stopPatterns[pattern] || (needsPattern && (!pattern || !regPattern.test(pattern)))){
|
970
|
-
switchAllowed = false;
|
971
|
-
}
|
972
|
-
}
|
973
|
-
|
974
|
-
return switchAllowed;
|
975
|
-
};
|
976
|
-
|
977
|
-
var addFix = function(e){
|
978
|
-
if(e.target.type == 'text' && e.target.getAttribute('inputmode') == 'numeric' && allowSwitchByPattern(e.target)){
|
979
|
-
try{
|
980
|
-
removeListener(e.target);
|
981
|
-
e.target.addEventListener('blur', switchBack, true);
|
982
|
-
e.target.type = 'tel';
|
983
|
-
} catch (er){
|
984
|
-
removeDocListener();
|
985
|
-
}
|
986
|
-
}
|
987
|
-
};
|
988
|
-
|
989
|
-
document.addEventListener('focus', addFix, true);
|
990
|
-
document.addEventListener('touchstart', addFix, true);
|
991
|
-
}
|
992
|
-
|
993
952
|
function getFileNames(file){
|
994
953
|
return file.name;
|
995
954
|
}
|
996
955
|
|
997
|
-
|
998
|
-
|
999
956
|
function customFile(){
|
1000
957
|
if($.data(this, 'wsCustomFile')){return;}
|
958
|
+
|
1001
959
|
var map = Array.prototype.map;
|
1002
960
|
var $module = $(this);
|
1003
961
|
var $file = $('input[type="file"]', $module);
|
@@ -1014,13 +972,28 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
1014
972
|
}
|
1015
973
|
};
|
1016
974
|
|
975
|
+
|
1017
976
|
$.data(this, 'wsCustomFile', {showSelected: showSelected});
|
1018
977
|
$('button', $module).attr('tabindex', '-1');
|
1019
978
|
|
1020
|
-
$file
|
1021
|
-
|
1022
|
-
|
1023
|
-
|
979
|
+
$file
|
980
|
+
.on('change.webshim', showSelected)
|
981
|
+
.each(showSelected)
|
982
|
+
.jProp('form')
|
983
|
+
.on('reset', function(){
|
984
|
+
setTimeout(showSelected);
|
985
|
+
})
|
986
|
+
;
|
987
|
+
if(isIE){
|
988
|
+
$('<div class="ws-coverfile" />')
|
989
|
+
.insertAfter($file)
|
990
|
+
.on('click.webshim', function(e){
|
991
|
+
e.stopImmediatePropagation();
|
992
|
+
$file.trigger('click');
|
993
|
+
})
|
994
|
+
;
|
995
|
+
}
|
996
|
+
|
1024
997
|
}
|
1025
998
|
|
1026
999
|
webshims.addReady(function(context, contextElem){
|
@@ -1028,18 +1001,22 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
1028
1001
|
});
|
1029
1002
|
|
1030
1003
|
addModule('form-fixrangechange', {
|
1031
|
-
test: !(!$.event.special.change && !$.event.special.input &&
|
1004
|
+
test: !(!$.event.special.change && !$.event.special.input && support.inputtypes.range && options.fixRangeChange)
|
1005
|
+
});
|
1006
|
+
|
1007
|
+
addModule('form-inputmode', {
|
1008
|
+
test: !(!options.noInputmodeFix && document.addEventListener && support.inputtypes.number && ua.indexOf('Mobile') != -1 && !('inputMode' in document.createElement('input') && !('inputmode' in document.createElement('input'))) )
|
1032
1009
|
});
|
1033
1010
|
|
1034
1011
|
addModule('form-combat', {
|
1035
1012
|
d: ['dom-support'],
|
1036
1013
|
test: !(($.mobile && ($.mobile.selectmenu || $.mobile.checkboxradio)) || ($.ui && $.ui.selectmenu) || $.fn.select2 || $.fn.chosen || $.fn.selectpicker || $.fn.selectBoxIt)
|
1037
1014
|
});
|
1038
|
-
|
1015
|
+
|
1039
1016
|
addModule('position', {
|
1040
1017
|
src: 'plugins/jquery.ui.position.js',
|
1041
1018
|
test: !!($.position && $.position.getScrollInfo)
|
1042
1019
|
});
|
1043
|
-
|
1044
|
-
loader.loadList(['form-combat', 'position', 'form-fixrangechange']);
|
1020
|
+
|
1021
|
+
loader.loadList(['form-combat', 'position', 'form-fixrangechange', 'form-inputmode']);
|
1045
1022
|
});
|
@@ -111,6 +111,7 @@
|
|
111
111
|
content: "\e610";
|
112
112
|
}
|
113
113
|
}
|
114
|
+
|
114
115
|
%icon-share {
|
115
116
|
@extend %iconbase;
|
116
117
|
&:before {
|
@@ -165,12 +166,14 @@
|
|
165
166
|
content: "\e602";
|
166
167
|
}
|
167
168
|
}
|
169
|
+
|
168
170
|
%icon-previous {
|
169
171
|
@extend %iconbase;
|
170
172
|
&:before {
|
171
173
|
content: "\e603";
|
172
174
|
}
|
173
175
|
}
|
176
|
+
|
174
177
|
%icon-olist {
|
175
178
|
@extend %iconbase;
|
176
179
|
&:before {
|