webshims-rails 1.14.6 → 1.15.2
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/polyfiller.js +145 -139
- data/vendor/assets/javascripts/webshims/shims/canvas-blob.js +97 -0
- data/vendor/assets/javascripts/webshims/shims/combos/1.js +13 -15
- data/vendor/assets/javascripts/webshims/shims/combos/10.js +29 -28
- data/vendor/assets/javascripts/webshims/shims/combos/11.js +2 -1
- data/vendor/assets/javascripts/webshims/shims/combos/12.js +22 -10
- data/vendor/assets/javascripts/webshims/shims/combos/13.js +22 -10
- data/vendor/assets/javascripts/webshims/shims/combos/15.js +28 -43
- data/vendor/assets/javascripts/webshims/shims/combos/16.js +41 -44
- data/vendor/assets/javascripts/webshims/shims/combos/17.js +2 -1
- data/vendor/assets/javascripts/webshims/shims/combos/2.js +40 -42
- data/vendor/assets/javascripts/webshims/shims/combos/21.js +98 -71
- data/vendor/assets/javascripts/webshims/shims/combos/22.js +9 -9
- data/vendor/assets/javascripts/webshims/shims/combos/23.js +13 -1
- data/vendor/assets/javascripts/webshims/shims/combos/25.js +141 -51
- data/vendor/assets/javascripts/webshims/shims/combos/27.js +66 -12
- data/vendor/assets/javascripts/webshims/shims/combos/28.js +1 -2
- data/vendor/assets/javascripts/webshims/shims/combos/3.js +27 -41
- data/vendor/assets/javascripts/webshims/shims/combos/30.js +27 -41
- data/vendor/assets/javascripts/webshims/shims/combos/31.js +27 -41
- data/vendor/assets/javascripts/webshims/shims/combos/34.js +36 -36
- data/vendor/assets/javascripts/webshims/shims/combos/4.js +27 -27
- data/vendor/assets/javascripts/webshims/shims/combos/5.js +2 -1
- data/vendor/assets/javascripts/webshims/shims/combos/6.js +2 -1
- data/vendor/assets/javascripts/webshims/shims/combos/7.js +40 -42
- data/vendor/assets/javascripts/webshims/shims/combos/8.js +40 -42
- data/vendor/assets/javascripts/webshims/shims/combos/9.js +29 -28
- data/vendor/assets/javascripts/webshims/shims/combos/98.js +4 -2
- data/vendor/assets/javascripts/webshims/shims/combos/99.js +4 -2
- data/vendor/assets/javascripts/webshims/shims/dom-extend.js +27 -27
- data/vendor/assets/javascripts/webshims/shims/es6.js +23 -29
- data/vendor/assets/javascripts/webshims/shims/{filereader.js → filereader-xhr.js} +66 -12
- data/vendor/assets/javascripts/webshims/shims/form-core.js +0 -14
- data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +2 -1
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +1 -2
- data/vendor/assets/javascripts/webshims/shims/form-validation.js +18 -5
- data/vendor/assets/javascripts/webshims/shims/form-validators.js +15 -14
- data/vendor/assets/javascripts/webshims/shims/geolocation.js +41 -50
- data/vendor/assets/javascripts/webshims/shims/jme/controls.css +4 -4
- data/vendor/assets/javascripts/webshims/shims/jme/controls.scss +2 -1
- data/vendor/assets/javascripts/webshims/shims/jme/mediacontrols.js +4 -2
- data/vendor/assets/javascripts/webshims/shims/mediacapture-picker.js +42 -0
- data/vendor/assets/javascripts/webshims/shims/mediacapture.js +159 -0
- data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +13 -1
- data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +48 -12
- data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +20 -8
- data/vendor/assets/javascripts/webshims/shims/{combos/26.js → moxie/js/moxie-html4.js} +2121 -1257
- data/vendor/assets/javascripts/webshims/shims/moxie/js/{moxie.js → moxie-swf.js} +1125 -1741
- data/vendor/assets/javascripts/webshims/shims/sticky.js +585 -0
- data/vendor/assets/javascripts/webshims/shims/styles/forms-picker.css +20 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-picker.scss +23 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +74 -34
- data/vendor/assets/javascripts/webshims/shims/styles/shim-ext.css +78 -31
- data/vendor/assets/javascripts/webshims/shims/styles/shim.css +78 -31
- data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
- data/vendor/assets/javascripts/webshims/shims/track-ui.js +214 -111
- data/vendor/assets/javascripts/webshims/shims/track.js +9 -9
- data/vendor/assets/javascripts/webshims/shims/usermedia-core.js +27 -0
- data/vendor/assets/javascripts/webshims/shims/usermedia-shim.js +34 -37
- metadata +9 -8
- data/vendor/assets/javascripts/webshims/shims/jajax.js +0 -1262
- data/vendor/assets/javascripts/webshims/shims/moxie/silverlight/Moxie.cdn.xap +0 -0
- data/vendor/assets/javascripts/webshims/shims/moxie/silverlight/Moxie.min.xap +0 -0
@@ -1,11 +1,13 @@
|
|
1
|
-
// ES6-shim 0.
|
1
|
+
// ES6-shim 0.15.0 (c) 2013-2014 Paul Miller (http://paulmillr.com)
|
2
2
|
// ES6-shim may be freely distributed under the MIT license.
|
3
3
|
// For more details and documentation:
|
4
4
|
// https://github.com/paulmillr/es6-shim/
|
5
|
+
|
5
6
|
webshim.register('es6', function($, webshim, window, document, undefined){
|
6
7
|
|
7
8
|
'use strict';
|
8
9
|
|
10
|
+
|
9
11
|
var isCallableWithoutNew = function(func) {
|
10
12
|
try { func(); }
|
11
13
|
catch (e) { return false; }
|
@@ -99,7 +101,7 @@ webshim.register('es6', function($, webshim, window, document, undefined){
|
|
99
101
|
// work properly with each other, even though we don't have full Iterator
|
100
102
|
// support. That is, `Array.from(map.keys())` will work, but we don't
|
101
103
|
// pretend to export a "real" Iterator interface.
|
102
|
-
var $iterator$ = (typeof Symbol === '
|
104
|
+
var $iterator$ = (typeof Symbol === 'function' && Symbol.iterator) ||
|
103
105
|
'_es6shim_iterator_';
|
104
106
|
// Firefox ships a partial implementation using the name @@iterator.
|
105
107
|
// https://bugzilla.mozilla.org/show_bug.cgi?id=907077#c14
|
@@ -328,8 +330,8 @@ webshim.register('es6', function($, webshim, window, document, undefined){
|
|
328
330
|
// Bits to bytes
|
329
331
|
bytes = [];
|
330
332
|
while (str.length) {
|
331
|
-
bytes.push(parseInt(str.
|
332
|
-
str = str.
|
333
|
+
bytes.push(parseInt(str.slice(0, 8), 2));
|
334
|
+
str = str.slice(8);
|
333
335
|
}
|
334
336
|
return bytes;
|
335
337
|
}
|
@@ -351,9 +353,9 @@ webshim.register('es6', function($, webshim, window, document, undefined){
|
|
351
353
|
|
352
354
|
// Unpack sign, exponent, fraction
|
353
355
|
bias = (1 << (ebits - 1)) - 1;
|
354
|
-
s = parseInt(str.
|
355
|
-
e = parseInt(str.
|
356
|
-
f = parseInt(str.
|
356
|
+
s = parseInt(str.slice(0, 1), 2) ? -1 : 1;
|
357
|
+
e = parseInt(str.slice(1, 1 + ebits), 2);
|
358
|
+
f = parseInt(str.slice(1 + ebits), 2);
|
357
359
|
|
358
360
|
// Produce number
|
359
361
|
if (e === (1 << ebits) - 1) {
|
@@ -388,7 +390,7 @@ webshim.register('es6', function($, webshim, window, document, undefined){
|
|
388
390
|
}());
|
389
391
|
|
390
392
|
defineProperties(String, {
|
391
|
-
fromCodePoint: function() {
|
393
|
+
fromCodePoint: function(_) { // length = 1
|
392
394
|
var points = _slice.call(arguments, 0, arguments.length);
|
393
395
|
var result = [];
|
394
396
|
var next;
|
@@ -677,15 +679,17 @@ webshim.register('es6', function($, webshim, window, document, undefined){
|
|
677
679
|
},
|
678
680
|
|
679
681
|
fill: function(value) {
|
680
|
-
var start = arguments
|
682
|
+
var start = arguments.length > 1 ? arguments[1] : undefined;
|
683
|
+
var end = arguments.length > 2 ? arguments[2] : undefined;
|
681
684
|
var O = ES.ToObject(this);
|
682
685
|
var len = ES.ToLength(O.length);
|
683
|
-
start = ES.ToInteger(start===undefined ? 0 : start);
|
684
|
-
end = ES.ToInteger(end===undefined ? len : end);
|
686
|
+
start = ES.ToInteger(start === undefined ? 0 : start);
|
687
|
+
end = ES.ToInteger(end === undefined ? len : end);
|
685
688
|
|
686
689
|
var relativeStart = start < 0 ? Math.max(len + start, 0) : Math.min(start, len);
|
690
|
+
var relativeEnd = end < 0 ? len + end : end;
|
687
691
|
|
688
|
-
for (var i = relativeStart; i < len && i <
|
692
|
+
for (var i = relativeStart; i < len && i < relativeEnd; ++i) {
|
689
693
|
O[i] = value;
|
690
694
|
}
|
691
695
|
return O;
|
@@ -755,9 +759,7 @@ webshim.register('es6', function($, webshim, window, document, undefined){
|
|
755
759
|
},
|
756
760
|
|
757
761
|
isInteger: function(value) {
|
758
|
-
return
|
759
|
-
!Number.isNaN(value) &&
|
760
|
-
Number.isFinite(value) &&
|
762
|
+
return Number.isFinite(value) &&
|
761
763
|
ES.ToInteger(value) === value;
|
762
764
|
},
|
763
765
|
|
@@ -813,20 +815,13 @@ webshim.register('es6', function($, webshim, window, document, undefined){
|
|
813
815
|
throw new TypeError('target must be an object');
|
814
816
|
}
|
815
817
|
return Array.prototype.reduce.call(arguments, function(target, source) {
|
816
|
-
|
817
|
-
throw new TypeError('source must be an object');
|
818
|
-
}
|
819
|
-
return Object.keys(source).reduce(function(target, key) {
|
818
|
+
return Object.keys(Object(source)).reduce(function(target, key) {
|
820
819
|
target[key] = source[key];
|
821
820
|
return target;
|
822
821
|
}, target);
|
823
822
|
});
|
824
823
|
},
|
825
824
|
|
826
|
-
getOwnPropertyKeys: function(subject) {
|
827
|
-
return Object.keys(subject);
|
828
|
-
},
|
829
|
-
|
830
825
|
is: function(a, b) {
|
831
826
|
return ES.SameValue(a, b);
|
832
827
|
},
|
@@ -955,7 +950,6 @@ webshim.register('es6', function($, webshim, window, document, undefined){
|
|
955
950
|
clz32: function(value) {
|
956
951
|
// See https://bugs.ecmascript.org/show_bug.cgi?id=2465
|
957
952
|
value = Number(value);
|
958
|
-
if (Number.isNaN(value)) return NaN;
|
959
953
|
var number = ES.ToUint32(value);
|
960
954
|
if (number === 0) {
|
961
955
|
return 32;
|
@@ -1064,6 +1058,8 @@ webshim.register('es6', function($, webshim, window, document, undefined){
|
|
1064
1058
|
|
1065
1059
|
imul: function(x, y) {
|
1066
1060
|
// taken from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul
|
1061
|
+
x = ES.ToUint32(x);
|
1062
|
+
y = ES.ToUint32(y);
|
1067
1063
|
var ah = (x >>> 16) & 0xffff;
|
1068
1064
|
var al = x & 0xffff;
|
1069
1065
|
var bh = (y >>> 16) & 0xffff;
|
@@ -1523,7 +1519,7 @@ webshim.register('es6', function($, webshim, window, document, undefined){
|
|
1523
1519
|
};
|
1524
1520
|
addIterator(MapIterator.prototype);
|
1525
1521
|
|
1526
|
-
function Map() {
|
1522
|
+
function Map(iterable) {
|
1527
1523
|
var map = this;
|
1528
1524
|
map = emulateES6construct(map);
|
1529
1525
|
if (!map._es6map) {
|
@@ -1541,7 +1537,6 @@ webshim.register('es6', function($, webshim, window, document, undefined){
|
|
1541
1537
|
});
|
1542
1538
|
|
1543
1539
|
// Optionally initialize map from iterable
|
1544
|
-
var iterable = arguments[0];
|
1545
1540
|
if (iterable !== undefined && iterable !== null) {
|
1546
1541
|
var it = ES.GetIterator(iterable);
|
1547
1542
|
var adder = map.set;
|
@@ -1709,7 +1704,7 @@ webshim.register('es6', function($, webshim, window, document, undefined){
|
|
1709
1704
|
// Sets containing only string or numeric keys, we use an object
|
1710
1705
|
// as backing storage and lazily create a full Map only when
|
1711
1706
|
// required.
|
1712
|
-
var SetShim = function Set() {
|
1707
|
+
var SetShim = function Set(iterable) {
|
1713
1708
|
var set = this;
|
1714
1709
|
set = emulateES6construct(set);
|
1715
1710
|
if (!set._es6set) {
|
@@ -1722,7 +1717,6 @@ webshim.register('es6', function($, webshim, window, document, undefined){
|
|
1722
1717
|
});
|
1723
1718
|
|
1724
1719
|
// Optionally initialize map from iterable
|
1725
|
-
var iterable = arguments[0];
|
1726
1720
|
if (iterable !== undefined && iterable !== null) {
|
1727
1721
|
var it = ES.GetIterator(iterable);
|
1728
1722
|
var adder = set.add;
|
@@ -1754,7 +1748,7 @@ webshim.register('es6', function($, webshim, window, document, undefined){
|
|
1754
1748
|
Object.keys(set._storage).forEach(function(k) {
|
1755
1749
|
// fast check for leading '$'
|
1756
1750
|
if (k.charCodeAt(0) === 36) {
|
1757
|
-
k = k.
|
1751
|
+
k = k.slice(1);
|
1758
1752
|
} else {
|
1759
1753
|
k = +k;
|
1760
1754
|
}
|
@@ -1,8 +1,8 @@
|
|
1
|
-
webshim.register('filereader', function($, webshim, window, document, undefined, featureOptions){
|
1
|
+
webshim.register('filereader-xhr', function($, webshim, window, document, undefined, featureOptions){
|
2
2
|
"use strict";
|
3
3
|
var mOxie, moxie, hasXDomain;
|
4
|
-
var
|
5
|
-
var
|
4
|
+
var sel = 'input[type="file"].ws-filereader, input[type="file"].ws-capture';
|
5
|
+
var hasFlash = swfmini.hasFlashPlayerVersion('10.3');
|
6
6
|
var loadMoxie = function (){
|
7
7
|
webshim.loader.loadList(['moxie']);
|
8
8
|
};
|
@@ -114,7 +114,7 @@ webshim.register('filereader', function($, webshim, window, document, undefined,
|
|
114
114
|
}
|
115
115
|
);
|
116
116
|
var shimMoxiePath = webshim.cfg.basePath+'moxie/';
|
117
|
-
var crossXMLMessage = 'You nedd a crossdomain.xml to get all "filereader" / "XHR2" / "CORS" features to work. Or host moxie.swf
|
117
|
+
var crossXMLMessage = 'You nedd a crossdomain.xml to get all "filereader" / "XHR2" / "CORS" features to work. Or host moxie.swf on your server an configure filereader options: "swfpath"';
|
118
118
|
var testMoxie = function(options){
|
119
119
|
return (options.wsType == 'moxie' || (options.data && options.data instanceof mOxie.FormData) || (options.crossDomain && $.support.cors !== false && hasXDomain != 'no' && !noxhr.test(options.dataType || '')));
|
120
120
|
};
|
@@ -297,6 +297,10 @@ webshim.register('filereader', function($, webshim, window, document, undefined,
|
|
297
297
|
}
|
298
298
|
};
|
299
299
|
|
300
|
+
webshim.loader.addModule('moxie', {
|
301
|
+
src: 'moxie/js/moxie-'+ (hasFlash ? 'swf' : 'html4')
|
302
|
+
});
|
303
|
+
|
300
304
|
if(!featureOptions.progress){
|
301
305
|
featureOptions.progress = 'onprogress';
|
302
306
|
}
|
@@ -308,9 +312,6 @@ webshim.register('filereader', function($, webshim, window, document, undefined,
|
|
308
312
|
if(!featureOptions.swfpath){
|
309
313
|
featureOptions.swfpath = shimMoxiePath+'flash/Moxie.min.swf';
|
310
314
|
}
|
311
|
-
if(!featureOptions.xappath){
|
312
|
-
featureOptions.xappath = shimMoxiePath+'silverlight/Moxie.min.xap';
|
313
|
-
}
|
314
315
|
|
315
316
|
if($.support.cors !== false || !window.XDomainRequest){
|
316
317
|
delete transports.xdomain;
|
@@ -337,8 +338,8 @@ webshim.register('filereader', function($, webshim, window, document, undefined,
|
|
337
338
|
writeable: false,
|
338
339
|
get: function(){
|
339
340
|
if(this.type != 'file'){return null;}
|
340
|
-
if(!$(this).
|
341
|
-
webshim.info("please add the 'ws-filereader' class to your input[type='file'] to implement files-property");
|
341
|
+
if(!$(this).is('.ws-filereader, .ws-capture')){
|
342
|
+
webshim.info("please add the 'ws-filereader'/'ws-capture' class to your input[type='file'] to implement files-property");
|
342
343
|
}
|
343
344
|
return webshim.data(this, 'fileList') || [];
|
344
345
|
}
|
@@ -360,11 +361,66 @@ webshim.register('filereader', function($, webshim, window, document, undefined,
|
|
360
361
|
});
|
361
362
|
|
362
363
|
webshim.onNodeNamesPropertyModify('input', 'value', function(value, boolVal, type){
|
363
|
-
if(value === '' && this.type == 'file' && $(this).
|
364
|
+
if(value === '' && this.type == 'file' && $(this).is('.ws-filereader, .ws-capture')){
|
364
365
|
webshim.data(this, 'fileList', []);
|
365
366
|
}
|
366
367
|
});
|
367
368
|
|
369
|
+
if(!document.createElement('canvas').toBlob){
|
370
|
+
|
371
|
+
webshim.defineNodeNameProperty('canvas', 'toBlob', {
|
372
|
+
prop: {
|
373
|
+
value: function(cb, type, qualitiy){
|
374
|
+
var dataURL;
|
375
|
+
var $canvas = $(this);
|
376
|
+
if(!type){
|
377
|
+
type = 'image/jpeg';
|
378
|
+
}
|
379
|
+
if(type == 'image/jpeg' && !qualitiy){
|
380
|
+
qualitiy = 0.8;
|
381
|
+
}
|
382
|
+
loadMoxie();
|
383
|
+
setTimeout(function(){
|
384
|
+
dataURL = $canvas.callProp('getAsDataURL', [type, qualitiy]);
|
385
|
+
webshim.ready('moxie', function(){
|
386
|
+
var img = new mOxie.Image();
|
387
|
+
|
388
|
+
img.onload = function() {
|
389
|
+
var blob = img.getAsBlob();
|
390
|
+
webshim.defineProperty(blob, '_wsDataURL', {
|
391
|
+
value: dataURL,
|
392
|
+
enumerable: false
|
393
|
+
});
|
394
|
+
cb(blob);
|
395
|
+
};
|
396
|
+
img.load(dataURL);
|
397
|
+
});
|
398
|
+
}, 9);
|
399
|
+
}
|
400
|
+
}
|
401
|
+
});
|
402
|
+
|
403
|
+
webshim.ready('url', function(){
|
404
|
+
var _nativeCreateObjectURL = URL.createObjectURL;
|
405
|
+
var _nativeRevokeObjectURL = URL.revokeObjectURL;
|
406
|
+
|
407
|
+
URL.createObjectURL = function(obj){
|
408
|
+
var url = obj;
|
409
|
+
if(obj._wsimgDataURL) {
|
410
|
+
url = obj._wsimgDataURL;
|
411
|
+
} else if(_nativeCreateObjectURL){
|
412
|
+
return _nativeCreateObjectURL.apply(this, arguments);
|
413
|
+
}
|
414
|
+
return url;
|
415
|
+
};
|
416
|
+
|
417
|
+
URL.revokeObjectURL = function(url){
|
418
|
+
if (_nativeRevokeObjectURL){
|
419
|
+
return _nativeRevokeObjectURL.apply(this, arguments);
|
420
|
+
}
|
421
|
+
};
|
422
|
+
});
|
423
|
+
}
|
368
424
|
|
369
425
|
window.FileReader = notReadyYet;
|
370
426
|
window.FormData = notReadyYet;
|
@@ -374,7 +430,6 @@ webshim.register('filereader', function($, webshim, window, document, undefined,
|
|
374
430
|
mOxie = window.mOxie;
|
375
431
|
|
376
432
|
mOxie.Env.swf_url = featureOptions.swfpath;
|
377
|
-
mOxie.Env.xap_url = featureOptions.xappath;
|
378
433
|
|
379
434
|
window.FileReader = mOxie.FileReader;
|
380
435
|
|
@@ -413,7 +468,6 @@ webshim.register('filereader', function($, webshim, window, document, undefined,
|
|
413
468
|
|
414
469
|
return moxieData;
|
415
470
|
};
|
416
|
-
FormData = window.FormData;
|
417
471
|
|
418
472
|
createFilePicker = _createFilePicker;
|
419
473
|
transports.moxie = createMoxieTransport;
|
@@ -301,20 +301,6 @@ webshims.register('form-core', function($, webshims, window, document, undefined
|
|
301
301
|
}
|
302
302
|
});
|
303
303
|
|
304
|
-
$(function(){
|
305
|
-
var fileReaderReady = ('FileReader' in window && 'FormData' in window);
|
306
|
-
if(!fileReaderReady){
|
307
|
-
webshims.addReady(function(context){
|
308
|
-
if(!fileReaderReady && !modules.filereader.loaded && !modules.moxie.loaded){
|
309
|
-
if(context.querySelector('input.ws-filereader')){
|
310
|
-
webshims.reTest(['filereader', 'moxie']);
|
311
|
-
fileReaderReady = true;
|
312
|
-
}
|
313
|
-
}
|
314
|
-
});
|
315
|
-
}
|
316
|
-
});
|
317
|
-
|
318
304
|
if(options.addValidators && options.fastValidators){
|
319
305
|
webshims.reTest(['form-validators', 'form-validation']);
|
320
306
|
}
|
@@ -1194,7 +1194,8 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
1194
1194
|
|
1195
1195
|
(function(){
|
1196
1196
|
var picker = {};
|
1197
|
-
var
|
1197
|
+
var modern = window.Modernizr;
|
1198
|
+
var assumeVirtualKeyBoard = (modern && (modern.touchevents || modern.touch)) || (/android|iphone|ipad|ipod|blackberry|iemobile/i.test(navigator.userAgent.toLowerCase()));
|
1198
1199
|
webshims.inlinePopover = {
|
1199
1200
|
_create: function(){
|
1200
1201
|
this.element = $('<div class="ws-inline-picker"><div class="ws-po-box" /></div>').data('wspopover', this);
|
@@ -97,7 +97,6 @@ var isPlaceholderOptionSelected = function(select){
|
|
97
97
|
};
|
98
98
|
|
99
99
|
var emptyJ = $([]);
|
100
|
-
//TODO: cache + perftest
|
101
100
|
var getGroupElements = function(elem){
|
102
101
|
elem = $(elem);
|
103
102
|
var name, form;
|
@@ -167,7 +166,7 @@ var validityRules = {
|
|
167
166
|
$.each({tooShort: ['minLength', -1], tooLong: ['maxLength', 1]}, function(name, props){
|
168
167
|
validityRules[name] = function(input, val, cache){
|
169
168
|
//defaultValue is not the same as dirty flag, but very similiar
|
170
|
-
if(cache.nodeName == 'select' || input.prop('defaultValue') == val){return false;}
|
169
|
+
if(!val || cache.nodeName == 'select' || input.prop('defaultValue') == val){return false;}
|
171
170
|
|
172
171
|
cacheType(cache, input[0]);
|
173
172
|
|
@@ -32,7 +32,8 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
32
32
|
var nonFormFilter = function(){
|
33
33
|
return !$.prop(this, 'form');
|
34
34
|
};
|
35
|
-
var
|
35
|
+
var modules = webshims.modules;
|
36
|
+
var getGroupElements = modules["form-core"].getGroupElements || function(elem){
|
36
37
|
elem = $(elem);
|
37
38
|
var name;
|
38
39
|
var form;
|
@@ -207,8 +208,8 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
207
208
|
iVal.fieldWrapper = ':not(span):not(label):not(em):not(strong):not(p):not(.ws-custom-file)';
|
208
209
|
}
|
209
210
|
|
210
|
-
if(!
|
211
|
-
|
211
|
+
if(!modules["form-core"].getGroupElements){
|
212
|
+
modules["form-core"].getGroupElements = getGroupElements;
|
212
213
|
}
|
213
214
|
|
214
215
|
$(document.body || 'html')
|
@@ -364,7 +365,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
364
365
|
this._shadowAdded = true;
|
365
366
|
}
|
366
367
|
|
367
|
-
element = $(element || this.options.prepareFor).getNativeElement()
|
368
|
+
element = $(element || this.options.prepareFor).getNativeElement();
|
368
369
|
|
369
370
|
var that = this;
|
370
371
|
var closeOnOutSide = function(e){
|
@@ -971,7 +972,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
971
972
|
|
972
973
|
|
973
974
|
$.data(this, 'wsCustomFile', {showSelected: showSelected});
|
974
|
-
$('button', $module).attr('tabindex', '-1');
|
975
|
+
$('button:not(.ws-capture-button)', $module).attr('tabindex', '-1');
|
975
976
|
|
976
977
|
$file
|
977
978
|
.on('change.webshim', showSelected)
|
@@ -993,6 +994,18 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
993
994
|
|
994
995
|
}
|
995
996
|
|
997
|
+
$(function(){
|
998
|
+
var fileReaderReady = ('FileReader' in window && 'FormData' in window);
|
999
|
+
if(!fileReaderReady){
|
1000
|
+
webshims.addReady(function(context){
|
1001
|
+
if(!fileReaderReady && !modules.filereader.loaded && context.querySelector('input.ws-filereader')){
|
1002
|
+
webshims.reTest(['filereader']);
|
1003
|
+
fileReaderReady = true;
|
1004
|
+
}
|
1005
|
+
});
|
1006
|
+
}
|
1007
|
+
});
|
1008
|
+
|
996
1009
|
webshims.addReady(function(context, contextElem){
|
997
1010
|
$(context.querySelectorAll('.ws-custom-file')).add($(contextElem).filter('.ws-custom-file')).each(customFile);
|
998
1011
|
});
|
@@ -261,8 +261,8 @@ webshims.ready('form-validation', function(){
|
|
261
261
|
if(!val || !pattern){return;}
|
262
262
|
return !(new RegExp('(' + pattern + ')', 'i').test(val));
|
263
263
|
}, 'This format is not allowed here.');
|
264
|
-
|
265
|
-
if(!('tooShort' in ($('<input />').prop('validity') || {}))){
|
264
|
+
|
265
|
+
if($('<input />').prop('minLength') === undefined || !('tooShort' in ($('<input />').prop('validity') || {}))){
|
266
266
|
addCustomValidityRule('tooShort', function(elem, val){
|
267
267
|
var minlength;
|
268
268
|
if(!val || val == elem.defaultValue || !(minlength = elem.getAttribute('minlength'))){return;}
|
@@ -281,9 +281,12 @@ webshims.ready('form-validation', function(){
|
|
281
281
|
data.grouprequired.checkboxes
|
282
282
|
.off('click.groupRequired')
|
283
283
|
.on('click.groupRequired', function(){
|
284
|
-
|
284
|
+
if((data.customMismatchedRule == 'grouprequired') == this.checked){
|
285
|
+
$(elem).trigger('updatevalidation.webshims');
|
286
|
+
}
|
285
287
|
})
|
286
288
|
;
|
289
|
+
|
287
290
|
data.grouprequired.checkboxes.not(elem).removeData('grouprequired');
|
288
291
|
}
|
289
292
|
|
@@ -332,14 +335,14 @@ webshims.ready('form-validation', function(){
|
|
332
335
|
addCustomValidityRule('dependent', function(elem, val, data){
|
333
336
|
data = data.dependentValidation;
|
334
337
|
if( !data ){return;}
|
335
|
-
var specialVal;
|
336
338
|
var depFn = function(e){
|
337
339
|
var val = $.prop(data.masterElement, data["from-prop"]);
|
338
|
-
if(specialVal){
|
339
|
-
val = $.inArray(val, specialVal) !== -1;
|
340
|
-
}
|
341
|
-
if(data.toggle){
|
340
|
+
if(data.specialVal){
|
341
|
+
val = $.inArray(val, data.specialVal) !== -1;
|
342
|
+
} if(data.toggle){
|
342
343
|
val = !val;
|
344
|
+
} else {
|
345
|
+
val = !!val;
|
343
346
|
}
|
344
347
|
$.prop( elem, data.prop, val);
|
345
348
|
if(iValClasses && e){
|
@@ -370,14 +373,13 @@ webshims.ready('form-validation', function(){
|
|
370
373
|
}
|
371
374
|
|
372
375
|
if(data["from-prop"].indexOf('value:') === 0){
|
373
|
-
specialVal = data["from-prop"].replace('value:', '').split('||');
|
376
|
+
data.specialVal = data["from-prop"].replace('value:', '').split('||');
|
374
377
|
data["from-prop"] = 'value';
|
375
|
-
|
376
378
|
}
|
377
|
-
|
379
|
+
|
378
380
|
data = $.data(elem, 'dependentValidation', $.extend({_init: true}, dependentDefaults, data));
|
379
381
|
|
380
|
-
if(data.prop !== "value" || specialVal){
|
382
|
+
if(data.prop !== "value" || data.specialVal){
|
381
383
|
$(data.masterElement.type === 'radio' && getGroupElements(data.masterElement) || data.masterElement).on('change', depFn);
|
382
384
|
} else {
|
383
385
|
$(data.masterElement).on('change', function(){
|
@@ -393,7 +395,7 @@ webshims.ready('form-validation', function(){
|
|
393
395
|
}
|
394
396
|
}
|
395
397
|
|
396
|
-
if(data.prop == "value" && !specialVal){
|
398
|
+
if(data.prop == "value" && !data.specialVal){
|
397
399
|
return ($.prop(data.masterElement, 'value') != val);
|
398
400
|
} else {
|
399
401
|
depFn();
|
@@ -412,7 +414,6 @@ webshims.ready('form-validation', function(){
|
|
412
414
|
if(!val || !data.ajaxvalidate){return;}
|
413
415
|
var opts;
|
414
416
|
if(!data.remoteValidate){
|
415
|
-
webshims.loader.loadList(['jajax']);
|
416
417
|
if(typeof data.ajaxvalidate == 'string'){
|
417
418
|
data.ajaxvalidate = {url: data.ajaxvalidate, depends: $([])};
|
418
419
|
} else {
|