webshims-rails 1.12.5 → 1.12.7
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 +111 -132
- data/vendor/assets/javascripts/webshims/shims/combos/1.js +40 -37
- data/vendor/assets/javascripts/webshims/shims/combos/10.js +217 -36
- data/vendor/assets/javascripts/webshims/shims/combos/11.js +151 -29
- data/vendor/assets/javascripts/webshims/shims/combos/12.js +70 -93
- data/vendor/assets/javascripts/webshims/shims/combos/13.js +70 -93
- data/vendor/assets/javascripts/webshims/shims/combos/14.js +90 -13
- data/vendor/assets/javascripts/webshims/shims/combos/15.js +202 -59
- data/vendor/assets/javascripts/webshims/shims/combos/16.js +208 -70
- data/vendor/assets/javascripts/webshims/shims/combos/17.js +151 -29
- data/vendor/assets/javascripts/webshims/shims/combos/18.js +155 -30
- data/vendor/assets/javascripts/webshims/shims/combos/19.js +79 -20
- data/vendor/assets/javascripts/webshims/shims/combos/2.js +109 -47
- data/vendor/assets/javascripts/webshims/shims/combos/20.js +79 -20
- data/vendor/assets/javascripts/webshims/shims/combos/21.js +80 -87
- data/vendor/assets/javascripts/webshims/shims/combos/22.js +66 -83
- data/vendor/assets/javascripts/webshims/shims/combos/23.js +4 -10
- data/vendor/assets/javascripts/webshims/shims/combos/25.js +79 -20
- data/vendor/assets/javascripts/webshims/shims/combos/26.js +66 -7
- data/vendor/assets/javascripts/webshims/shims/combos/28.js +100 -25
- data/vendor/assets/javascripts/webshims/shims/combos/3.js +192 -47
- data/vendor/assets/javascripts/webshims/shims/combos/30.js +193 -49
- data/vendor/assets/javascripts/webshims/shims/combos/31.js +103 -36
- data/vendor/assets/javascripts/webshims/shims/combos/32.js +5 -3
- data/vendor/assets/javascripts/webshims/shims/combos/33.js +1 -2
- data/vendor/assets/javascripts/webshims/shims/combos/34.js +2048 -0
- data/vendor/assets/javascripts/webshims/shims/combos/4.js +156 -20
- data/vendor/assets/javascripts/webshims/shims/combos/5.js +151 -29
- data/vendor/assets/javascripts/webshims/shims/combos/6.js +152 -31
- data/vendor/assets/javascripts/webshims/shims/combos/7.js +199 -60
- data/vendor/assets/javascripts/webshims/shims/combos/8.js +197 -58
- data/vendor/assets/javascripts/webshims/shims/combos/9.js +218 -38
- data/vendor/assets/javascripts/webshims/shims/combos/97.js +1004 -0
- data/vendor/assets/javascripts/webshims/shims/combos/98.js +1283 -0
- data/vendor/assets/javascripts/webshims/shims/combos/99.js +204 -1248
- data/vendor/assets/javascripts/webshims/shims/dom-extend.js +66 -7
- data/vendor/assets/javascripts/webshims/shims/es5.js +4 -1
- data/vendor/assets/javascripts/webshims/shims/form-combat.js +3 -3
- data/vendor/assets/javascripts/webshims/shims/form-core.js +36 -27
- data/vendor/assets/javascripts/webshims/shims/form-datalist.js +1 -2
- data/vendor/assets/javascripts/webshims/shims/form-fixrangechange.js +137 -0
- data/vendor/assets/javascripts/webshims/shims/form-message.js +90 -13
- data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +129 -15
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +9 -10
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend2.js +886 -985
- data/vendor/assets/javascripts/webshims/shims/form-validation.js +78 -174
- data/vendor/assets/javascripts/webshims/shims/form-validators.js +39 -26
- data/vendor/assets/javascripts/webshims/shims/forms-picker.js +45 -17
- data/vendor/assets/javascripts/webshims/shims/geolocation.js +10 -3
- data/vendor/assets/javascripts/webshims/shims/jme/b.js +71 -246
- data/vendor/assets/javascripts/webshims/shims/jme/c.js +133 -1002
- data/vendor/assets/javascripts/webshims/shims/jme/controls.css +62 -23
- data/vendor/assets/javascripts/webshims/shims/jme/controls.scss +73 -10
- data/vendor/assets/javascripts/webshims/shims/jme/mediacontrols-lazy.js +1117 -0
- data/vendor/assets/javascripts/webshims/shims/jme/p.js +603 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/jpicker.css +5 -2
- data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +4 -10
- data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +4 -1
- data/vendor/assets/javascripts/webshims/shims/range-ui.js +22 -14
- data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +29 -344
- data/vendor/assets/javascripts/webshims/shims/styles/forms-picker.css +362 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-ext.scss +6 -483
- data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-picker.scss +488 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/shim-ext.scss +2 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +10 -2
- data/vendor/assets/javascripts/webshims/shims/styles/shim.css +6 -2
- data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
- data/vendor/assets/javascripts/webshims/shims/track-ui.js +8 -1
- data/vendor/assets/javascripts/webshims/shims/track.js +66 -83
- metadata +12 -5
- data/vendor/assets/javascripts/webshims/shims/$ajax.js +0 -862
- data/vendor/assets/javascripts/webshims/shims/combos/24.js +0 -2087
@@ -221,7 +221,65 @@ var swfmini = function() {
|
|
221
221
|
}();
|
222
222
|
|
223
223
|
webshims.isReady('swfmini', true);
|
224
|
-
|
224
|
+
;
|
225
|
+
//this might was already extended by ES5 shim feature
|
226
|
+
(function($){
|
227
|
+
"use strict";
|
228
|
+
var webshims = window.webshims;
|
229
|
+
if(webshims.defineProperties){return;}
|
230
|
+
var defineProperty = 'defineProperty';
|
231
|
+
var has = Object.prototype.hasOwnProperty;
|
232
|
+
var descProps = ['configurable', 'enumerable', 'writable'];
|
233
|
+
var extendUndefined = function(prop){
|
234
|
+
for(var i = 0; i < 3; i++){
|
235
|
+
if(prop[descProps[i]] === undefined && (descProps[i] !== 'writable' || prop.value !== undefined)){
|
236
|
+
prop[descProps[i]] = true;
|
237
|
+
}
|
238
|
+
}
|
239
|
+
};
|
240
|
+
|
241
|
+
var extendProps = function(props){
|
242
|
+
if(props){
|
243
|
+
for(var i in props){
|
244
|
+
if(has.call(props, i)){
|
245
|
+
extendUndefined(props[i]);
|
246
|
+
}
|
247
|
+
}
|
248
|
+
}
|
249
|
+
};
|
250
|
+
|
251
|
+
if(Object.create){
|
252
|
+
webshims.objectCreate = function(proto, props, opts){
|
253
|
+
extendProps(props);
|
254
|
+
var o = Object.create(proto, props);
|
255
|
+
if(opts){
|
256
|
+
o.options = $.extend(true, {}, o.options || {}, opts);
|
257
|
+
opts = o.options;
|
258
|
+
}
|
259
|
+
if(o._create && $.isFunction(o._create)){
|
260
|
+
o._create(opts);
|
261
|
+
}
|
262
|
+
return o;
|
263
|
+
};
|
264
|
+
}
|
265
|
+
|
266
|
+
if(Object[defineProperty]){
|
267
|
+
webshims[defineProperty] = function(obj, prop, desc){
|
268
|
+
extendUndefined(desc);
|
269
|
+
return Object[defineProperty](obj, prop, desc);
|
270
|
+
};
|
271
|
+
}
|
272
|
+
if(Object.defineProperties){
|
273
|
+
webshims.defineProperties = function(obj, props){
|
274
|
+
extendProps(props);
|
275
|
+
return Object.defineProperties(obj, props);
|
276
|
+
};
|
277
|
+
}
|
278
|
+
webshims.getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
|
279
|
+
|
280
|
+
webshims.getPrototypeOf = Object.getPrototypeOf;
|
281
|
+
})(window.webshims.$);
|
282
|
+
//DOM-Extension helper
|
225
283
|
webshims.register('dom-extend', function($, webshims, window, document, undefined){
|
226
284
|
"use strict";
|
227
285
|
var supportHrefNormalized = !('hrefNormalized' in $.support) || $.support.hrefNormalized;
|
@@ -856,6 +914,13 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
856
914
|
this.width = docObserve.getWidth();
|
857
915
|
setInterval(this.test, 999);
|
858
916
|
$(this.test);
|
917
|
+
if($.support.boxSizing == null){
|
918
|
+
$(function(){
|
919
|
+
if($.support.boxSizing){
|
920
|
+
docObserve.handler({type: 'boxsizing'});
|
921
|
+
}
|
922
|
+
});
|
923
|
+
}
|
859
924
|
webshims.ready('WINDOWLOAD', this.test);
|
860
925
|
$(document).on('updatelayout.webshim pageinit popupafteropen panelbeforeopen tabsactivate collapsibleexpand shown.bs.modal shown.bs.collapse slid.bs.carousel', this.handler);
|
861
926
|
$(window).on('resize', this.handler);
|
@@ -867,13 +932,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
867
932
|
webshims.docObserve = function(){
|
868
933
|
webshims.ready('DOM', function(){
|
869
934
|
docObserve.start();
|
870
|
-
|
871
|
-
$(function(){
|
872
|
-
if($.support.boxSizing){
|
873
|
-
docObserve.handler({type: 'boxsizing'});
|
874
|
-
}
|
875
|
-
});
|
876
|
-
}
|
935
|
+
|
877
936
|
});
|
878
937
|
};
|
879
938
|
return function(nativeElem, shadowElem, opts){
|
@@ -1404,27 +1463,27 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1404
1463
|
/*
|
1405
1464
|
* Selectors for all browsers
|
1406
1465
|
*/
|
1407
|
-
var rElementsGroup = /^(?:form|fieldset)$/i;
|
1408
|
-
var hasInvalid = function(elem){
|
1409
|
-
var ret = false;
|
1410
|
-
$(elem).jProp('elements').each(function(){
|
1411
|
-
if(!rElementsGroup.test(this.nodeName || '')){
|
1412
|
-
ret = $(this).is(':invalid');
|
1413
|
-
if(ret){
|
1414
|
-
return false;
|
1415
|
-
}
|
1416
|
-
}
|
1417
|
-
|
1418
|
-
});
|
1419
|
-
return ret;
|
1420
|
-
};
|
1421
1466
|
|
1422
1467
|
var extendSels = function(){
|
1423
1468
|
var matches, matchesOverride;
|
1424
1469
|
var exp = $.expr[":"];
|
1470
|
+
var rElementsGroup = /^(?:form|fieldset)$/i;
|
1471
|
+
var hasInvalid = function(elem){
|
1472
|
+
var ret = false;
|
1473
|
+
$(elem).jProp('elements').each(function(){
|
1474
|
+
if(!rElementsGroup.test(this.nodeName || '')){
|
1475
|
+
ret = exp.invalid(this);
|
1476
|
+
if(ret){
|
1477
|
+
return false;
|
1478
|
+
}
|
1479
|
+
}
|
1480
|
+
|
1481
|
+
});
|
1482
|
+
return ret;
|
1483
|
+
};
|
1425
1484
|
$.extend(exp, {
|
1426
1485
|
"valid-element": function(elem){
|
1427
|
-
return rElementsGroup.test(elem.nodeName || '') ? !hasInvalid(elem)
|
1486
|
+
return rElementsGroup.test(elem.nodeName || '') ? !hasInvalid(elem) : !!($.prop(elem, 'willValidate') && isValid(elem));
|
1428
1487
|
},
|
1429
1488
|
"invalid-element": function(elem){
|
1430
1489
|
return rElementsGroup.test(elem.nodeName || '') ? hasInvalid(elem) : !!($.prop(elem, 'willValidate') && !isValid(elem));
|
@@ -1479,27 +1538,36 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1479
1538
|
};
|
1480
1539
|
}
|
1481
1540
|
};
|
1541
|
+
var formExtras = {
|
1542
|
+
noAutoCallback: true,
|
1543
|
+
options: options
|
1544
|
+
};
|
1545
|
+
var addModule = webshims.loader.addModule;
|
1546
|
+
var lazyLoadProxy = function(obj, fn, args){
|
1547
|
+
lazyLoad();
|
1548
|
+
webshims.ready('form-validation', function(){
|
1549
|
+
obj[fn].apply(obj, args);
|
1550
|
+
});
|
1551
|
+
};
|
1552
|
+
|
1553
|
+
var transClass = ('transitionDelay' in document.documentElement.style) ? '' : ' no-transition';
|
1554
|
+
var poCFG = webshims.cfg.wspopover;
|
1555
|
+
|
1556
|
+
addModule('form-validation', $.extend({d: ['form-message']}, formExtras));
|
1557
|
+
|
1558
|
+
addModule('form-validators', $.extend({}, formExtras));
|
1482
1559
|
|
1483
1560
|
if($.expr.filters){
|
1484
1561
|
extendSels();
|
1485
1562
|
} else {
|
1486
1563
|
webshims.ready('sizzle', extendSels);
|
1487
1564
|
}
|
1488
|
-
|
1489
|
-
|
1565
|
+
|
1490
1566
|
webshims.triggerInlineForm = function(elem, event){
|
1491
1567
|
$(elem).trigger(event);
|
1492
1568
|
};
|
1493
1569
|
|
1494
|
-
|
1495
|
-
lazyLoad();
|
1496
|
-
webshims.ready('form-validation', function(){
|
1497
|
-
obj[fn].apply(obj, args);
|
1498
|
-
});
|
1499
|
-
};
|
1500
|
-
|
1501
|
-
var transClass = ('transitionDelay' in document.documentElement.style) ? '' : ' no-transition';
|
1502
|
-
var poCFG = webshims.cfg.wspopover;
|
1570
|
+
|
1503
1571
|
if(!poCFG.position && poCFG.position !== false){
|
1504
1572
|
poCFG.position = {
|
1505
1573
|
at: 'left bottom',
|
@@ -1621,7 +1689,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1621
1689
|
|
1622
1690
|
webshims.ready('WINDOWLOAD', lazyLoad);
|
1623
1691
|
|
1624
|
-
if(modules['form-number-date-ui'].loaded && modules['form-number-date-api'].test()){
|
1692
|
+
if(modules['form-number-date-ui'].loaded && !options.customMessages && (modules['form-number-date-api'].test() || (Modernizr.inputtypes.range && Modernizr.inputtypes.color))){
|
1625
1693
|
webshims.isReady('form-number-date-ui', true);
|
1626
1694
|
}
|
1627
1695
|
});
|
@@ -1657,8 +1725,8 @@ var isNumber = function(string){
|
|
1657
1725
|
(function(){
|
1658
1726
|
var find = $.find;
|
1659
1727
|
var matchesSelector = $.find.matchesSelector;
|
1660
|
-
|
1661
|
-
var regExp = /(\:valid|\:invalid|\:optional|\:required
|
1728
|
+
|
1729
|
+
var regExp = /(\:valid|\:invalid|\:optional|\:required)(?=[\s\[\~\.\+\>\:\#*]|$)/ig;
|
1662
1730
|
var regFn = function(sel){
|
1663
1731
|
return sel + '-element';
|
1664
1732
|
};
|
@@ -2019,14 +2087,13 @@ var rsubmittable = /^(?:select|textarea|input)/i;
|
|
2019
2087
|
if(validityState){
|
2020
2088
|
return validityState;
|
2021
2089
|
}
|
2022
|
-
validityState
|
2090
|
+
validityState = $.extend({}, validityPrototype);
|
2023
2091
|
|
2024
2092
|
if( !$.prop(elem, 'willValidate') || elem.type == 'submit' ){
|
2025
2093
|
return validityState;
|
2026
2094
|
}
|
2027
|
-
var val
|
2028
|
-
|
2029
|
-
;
|
2095
|
+
var val = jElm.val();
|
2096
|
+
var cache = {nodeName: elem.nodeName.toLowerCase()};
|
2030
2097
|
|
2031
2098
|
validityState.customError = !!(webshims.data(elem, 'customvalidationMessage'));
|
2032
2099
|
if( validityState.customError ){
|
@@ -2053,7 +2120,7 @@ var rsubmittable = /^(?:select|textarea|input)/i;
|
|
2053
2120
|
baseCheckValidity.unhandledInvalids = false;
|
2054
2121
|
return baseCheckValidity($(this).getNativeElement()[0], name);
|
2055
2122
|
}
|
2056
|
-
}
|
2123
|
+
};
|
2057
2124
|
});
|
2058
2125
|
|
2059
2126
|
webshims.defineNodeNameProperties(nodeName, inputValidationAPI, 'prop');
|
@@ -2064,7 +2131,7 @@ webshims.defineNodeNamesBooleanProperty(['input', 'textarea', 'select'], 'requir
|
|
2064
2131
|
set: function(value){
|
2065
2132
|
$(this).getShadowFocusElement().attr('aria-required', !!(value)+'');
|
2066
2133
|
},
|
2067
|
-
initAttr:
|
2134
|
+
initAttr: true
|
2068
2135
|
});
|
2069
2136
|
webshims.defineNodeNamesBooleanProperty(['input'], 'multiple');
|
2070
2137
|
|
@@ -2231,7 +2298,7 @@ webshims.addReady(function(context, contextElem){
|
|
2231
2298
|
|
2232
2299
|
try {
|
2233
2300
|
if(context == document && !('form' in (document.activeElement || {}))) {
|
2234
|
-
focusElem = $('input[autofocus], select[autofocus], textarea[autofocus]'
|
2301
|
+
focusElem = $(context.querySelector('input[autofocus], select[autofocus], textarea[autofocus]')).eq(0).getShadowFocusElement()[0];
|
2235
2302
|
if (focusElem && focusElem.offsetHeight && focusElem.offsetWidth) {
|
2236
2303
|
focusElem.focus();
|
2237
2304
|
}
|
@@ -2252,7 +2319,7 @@ if(!Modernizr.input.list){
|
|
2252
2319
|
if(select[0]){
|
2253
2320
|
options = $.makeArray(select[0].options || []);
|
2254
2321
|
} else {
|
2255
|
-
options =
|
2322
|
+
options = elem.getElementsByTagName('option');
|
2256
2323
|
if(options.length){
|
2257
2324
|
webshims.warn('you should wrap your option-elements for a datalist in a select element to support IE and other old browsers.');
|
2258
2325
|
}
|
@@ -2547,26 +2614,103 @@ webshims.defineNodeNamesProperties(['input', 'button'], formSubmitterDescriptors
|
|
2547
2614
|
min: 1,
|
2548
2615
|
max: 1
|
2549
2616
|
};
|
2617
|
+
var toLocale = (function(){
|
2618
|
+
var monthFormatter;
|
2619
|
+
var transforms = {
|
2620
|
+
number: function(val){
|
2621
|
+
var num = val * 1;
|
2622
|
+
if(num.toLocaleString && !isNaN(num)){
|
2623
|
+
val = num.toLocaleString() || val;
|
2624
|
+
}
|
2625
|
+
return val;
|
2626
|
+
}
|
2627
|
+
};
|
2628
|
+
var _toLocale = function(val, elem, attr){
|
2629
|
+
var type, widget;
|
2630
|
+
if(valueVals[attr]){
|
2631
|
+
type = $.prop(elem, 'type');
|
2632
|
+
widget = $(elem).getShadowElement().data('wsWidget'+ type );
|
2633
|
+
if(widget && widget.formatValue){
|
2634
|
+
val = widget.formatValue(val, false);
|
2635
|
+
} else if(transforms[type]){
|
2636
|
+
val = transforms[type](val);
|
2637
|
+
}
|
2638
|
+
}
|
2639
|
+
return val;
|
2640
|
+
};
|
2641
|
+
|
2642
|
+
[{n: 'date', f: 'toLocaleDateString'}, {n: 'time', f: 'toLocaleTimeString'}, {n: 'datetime-local', f: 'toLocaleString'}].forEach(function(desc){
|
2643
|
+
transforms[desc.n] = function(val){
|
2644
|
+
var date = new Date(val);
|
2645
|
+
if(date && date[desc.f]){
|
2646
|
+
val = date[desc.f]() || val;
|
2647
|
+
}
|
2648
|
+
return val;
|
2649
|
+
};
|
2650
|
+
});
|
2651
|
+
|
2652
|
+
if(window.Intl && Intl.DateTimeFormat){
|
2653
|
+
monthFormatter = new Intl.DateTimeFormat(navigator.browserLanguage || navigator.language, {year: "numeric", month: "2-digit"}).format(new Date());
|
2654
|
+
if(monthFormatter && monthFormatter.format){
|
2655
|
+
transforms.month = function(val){
|
2656
|
+
var date = new Date(val);
|
2657
|
+
if(date){
|
2658
|
+
val = monthFormatter.format(date) || val;
|
2659
|
+
}
|
2660
|
+
return val;
|
2661
|
+
};
|
2662
|
+
}
|
2663
|
+
}
|
2664
|
+
|
2665
|
+
webshims.format = {};
|
2666
|
+
|
2667
|
+
['date', 'number', 'month', 'time', 'datetime-local'].forEach(function(name){
|
2668
|
+
webshims.format[name] = function(val, opts){
|
2669
|
+
if(opts && opts.nodeType){
|
2670
|
+
return _toLocale(val, opts, name);
|
2671
|
+
}
|
2672
|
+
if(name == 'number' && opts && opts.toFixed ){
|
2673
|
+
val = (val * 1);
|
2674
|
+
if(!opts.fixOnlyFloat || val % 1){
|
2675
|
+
val = val.toFixed(opts.toFixed);
|
2676
|
+
}
|
2677
|
+
}
|
2678
|
+
if(webshims._format && webshims._format[name]){
|
2679
|
+
return webshims._format[name](val, opts);
|
2680
|
+
}
|
2681
|
+
return transforms[name](val);
|
2682
|
+
};
|
2683
|
+
});
|
2684
|
+
|
2685
|
+
return _toLocale;
|
2686
|
+
})();
|
2550
2687
|
|
2551
2688
|
webshims.replaceValidationplaceholder = function(elem, message, name){
|
2552
|
-
var
|
2689
|
+
var val = $.prop(elem, 'title');
|
2690
|
+
if(message){
|
2691
|
+
if(name == 'patternMismatch' && !val){
|
2692
|
+
webshims.error('no title for patternMismatch provided. Always add a title attribute.');
|
2693
|
+
}
|
2694
|
+
if(val){
|
2695
|
+
val = '<span class="ws-titlevalue">'+ val.replace(lReg, '<').replace(gReg, '>') +'</span>';
|
2696
|
+
}
|
2697
|
+
|
2698
|
+
if(message.indexOf('{%title}') != -1){
|
2699
|
+
message = message.replace('{%title}', val);
|
2700
|
+
} else if(val) {
|
2701
|
+
message = message+' '+val;
|
2702
|
+
}
|
2703
|
+
}
|
2704
|
+
|
2553
2705
|
if(message && message.indexOf('{%') != -1){
|
2554
|
-
['value', 'min', 'max', '
|
2706
|
+
['value', 'min', 'max', 'maxlength', 'minlength', 'label'].forEach(function(attr){
|
2555
2707
|
if(message.indexOf('{%'+attr) === -1){return;}
|
2556
2708
|
var val = ((attr == 'label') ? $.trim($('label[for="'+ elem.id +'"]', elem.form).text()).replace(/\*$|:$/, '') : $.prop(elem, attr)) || '';
|
2557
2709
|
val = ''+val;
|
2558
|
-
if(name == 'patternMismatch' && attr == 'title' && !val){
|
2559
|
-
webshims.error('no title for patternMismatch provided. Always add a title attribute.');
|
2560
|
-
}
|
2561
2710
|
|
2562
|
-
|
2563
|
-
|
2564
|
-
|
2565
|
-
}
|
2566
|
-
if(widget && widget.formatValue){
|
2567
|
-
val = widget.formatValue(val, false);
|
2568
|
-
}
|
2569
|
-
}
|
2711
|
+
|
2712
|
+
val = toLocale(val, elem, attr);
|
2713
|
+
|
2570
2714
|
message = message.replace('{%'+ attr +'}', val.replace(lReg, '<').replace(gReg, '>'));
|
2571
2715
|
if('value' == attr){
|
2572
2716
|
message = message.replace('{%valueLen}', val.length);
|
@@ -2655,7 +2799,6 @@ webshims.defineNodeNamesProperties(['input', 'button'], formSubmitterDescriptors
|
|
2655
2799
|
});
|
2656
2800
|
;webshims.register('form-datalist', function($, webshims, window, document, undefined, options){
|
2657
2801
|
"use strict";
|
2658
|
-
var doc = document;
|
2659
2802
|
var lazyLoad = function(name){
|
2660
2803
|
if(!name || typeof name != 'string'){
|
2661
2804
|
name = 'DOM';
|
@@ -2950,7 +3093,8 @@ webshims.defineNodeNamesProperties(['input', 'button'], formSubmitterDescriptors
|
|
2950
3093
|
initializeDatalist();
|
2951
3094
|
})();
|
2952
3095
|
|
2953
|
-
})
|
3096
|
+
});
|
3097
|
+
;(function(Modernizr, webshims){
|
2954
3098
|
"use strict";
|
2955
3099
|
var hasNative = Modernizr.audio && Modernizr.video;
|
2956
3100
|
var supportsLoop = false;
|
@@ -2967,7 +3111,6 @@ webshims.defineNodeNamesProperties(['input', 'button'], formSubmitterDescriptors
|
|
2967
3111
|
|
2968
3112
|
var wsCfg = webshims.cfg;
|
2969
3113
|
var options = wsCfg.mediaelement;
|
2970
|
-
var hasFullTrackSupport;
|
2971
3114
|
var hasSwf;
|
2972
3115
|
if(!options){
|
2973
3116
|
webshims.error("mediaelement wasn't implemented but loaded");
|
@@ -3009,11 +3152,9 @@ webshims.defineNodeNamesProperties(['input', 'button'], formSubmitterDescriptors
|
|
3009
3152
|
}
|
3010
3153
|
})();
|
3011
3154
|
}
|
3012
|
-
hasFullTrackSupport = Modernizr.track && !bugs.track;
|
3013
3155
|
|
3014
3156
|
webshims.register('mediaelement-core', function($, webshims, window, document, undefined, options){
|
3015
3157
|
hasSwf = swfmini.hasFlashPlayerVersion('10.0.3');
|
3016
|
-
$('html').addClass(hasSwf ? 'swf' : 'no-swf');
|
3017
3158
|
var mediaelement = webshims.mediaelement;
|
3018
3159
|
|
3019
3160
|
mediaelement.parseRtmp = function(data){
|
@@ -3392,6 +3533,9 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
3392
3533
|
if(hasNative && (!data || data.isActive == 'html5') && supLoad.prop._supvalue){
|
3393
3534
|
supLoad.prop._supvalue.apply(this, arguments);
|
3394
3535
|
}
|
3536
|
+
if(!loadTrackUi.loaded && $('track', this).length){
|
3537
|
+
loadTrackUi();
|
3538
|
+
}
|
3395
3539
|
$(this).triggerHandler('wsmediareload');
|
3396
3540
|
}
|
3397
3541
|
}
|
@@ -3462,13 +3606,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
3462
3606
|
}
|
3463
3607
|
};
|
3464
3608
|
|
3465
|
-
|
3466
|
-
webshims.defineProperty(TextTrack.prototype, 'shimActiveCues', {
|
3467
|
-
get: function(){
|
3468
|
-
return this._shimActiveCues || this.activeCues;
|
3469
|
-
}
|
3470
|
-
});
|
3471
|
-
}
|
3609
|
+
|
3472
3610
|
//set native implementation ready, before swf api is retested
|
3473
3611
|
if(hasNative){
|
3474
3612
|
webshims.isReady('mediaelement-core', true);
|
@@ -620,10 +620,11 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
620
620
|
_create: function(){
|
621
621
|
var i;
|
622
622
|
|
623
|
-
this.element.addClass(this.options.baseClass || 'ws-range').attr({role: 'slider'}).append('<span class="ws-range-
|
623
|
+
this.element.addClass(this.options.baseClass || 'ws-range ws-input').attr({role: 'slider'}).append('<span class="ws-range-rail ws-range-track"><span class="ws-range-min ws-range-progress" /><span class="ws-range-thumb"><span><span data-value="" data-valuetext="" /></span></span></span>');
|
624
624
|
this.trail = $('.ws-range-track', this.element);
|
625
625
|
this.range = $('.ws-range-progress', this.element);
|
626
626
|
this.thumb = $('.ws-range-thumb', this.trail);
|
627
|
+
this.thumbValue = $('span[data-value]', this.thumb);
|
627
628
|
|
628
629
|
this.updateMetrics();
|
629
630
|
|
@@ -674,8 +675,8 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
674
675
|
|
675
676
|
|
676
677
|
if(!animate || !$.fn.animate){
|
677
|
-
this.thumb.
|
678
|
-
this.range.
|
678
|
+
this.thumb[0].style[this.dirs.left] = thumbStyle[this.dirs.left];
|
679
|
+
this.range[0].style[this.dirs.width] = rangeStyle[this.dirs.width];
|
679
680
|
} else {
|
680
681
|
if(typeof animate != 'object'){
|
681
682
|
animate = {};
|
@@ -698,20 +699,19 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
698
699
|
_setValueMarkup: function(){
|
699
700
|
var o = this.options;
|
700
701
|
var textValue = o.textValue ? o.textValue(this.options.value) : o.options[o.value] || o.value;
|
701
|
-
|
702
|
-
|
703
|
-
|
704
|
-
|
705
|
-
|
706
|
-
|
707
|
-
|
708
|
-
});
|
702
|
+
|
703
|
+
this.element[0].setAttribute('aria-valuenow', this.options.value);
|
704
|
+
this.element[0].setAttribute('aria-valuetext', textValue);
|
705
|
+
|
706
|
+
this.thumbValue[0].setAttribute('data-value', this.options.value);
|
707
|
+
this.thumbValue[0].setAttribute('data-valuetext', textValue);
|
708
|
+
|
709
709
|
if(o.selectedOption){
|
710
710
|
$(o.selectedOption).removeClass('ws-selected-option');
|
711
711
|
o.selectedOption = null;
|
712
712
|
}
|
713
713
|
if(o.value in o.options){
|
714
|
-
o.selectedOption = $('[data-value="'+o.value+'"].ws-range-ticks').addClass('ws-selected-option');
|
714
|
+
o.selectedOption = $('[data-value="'+o.value+'"].ws-range-ticks', this.trail).addClass('ws-selected-option');
|
715
715
|
}
|
716
716
|
},
|
717
717
|
initDataList: function(){
|
@@ -1147,9 +1147,16 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
1147
1147
|
temp = this.element[this.dirs.innerHeight]();
|
1148
1148
|
eS[this.dirs.marginTop] = ((elem[this.dirs.outerHeight]() - temp) / -2) + 'px';
|
1149
1149
|
this.range[0].style[this.dirs.marginTop] = ((this.range[this.dirs.outerHeight]() - temp) / -2 ) +'px';
|
1150
|
+
|
1151
|
+
this.range[0].style[this.dirs.posLeft] = outerWidth +'px';
|
1152
|
+
|
1150
1153
|
outerWidth *= -1;
|
1154
|
+
|
1155
|
+
this.range[0].style[this.dirs.paddingRight] = outerWidth +'px';
|
1151
1156
|
this.trail[0].style[this.dirs.left] = outerWidth +'px';
|
1152
1157
|
this.trail[0].style[this.dirs.right] = outerWidth +'px';
|
1158
|
+
|
1159
|
+
|
1153
1160
|
}
|
1154
1161
|
}
|
1155
1162
|
},
|
@@ -1158,14 +1165,15 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
1158
1165
|
this.vertical = (width && this.element.innerHeight() - width > 10);
|
1159
1166
|
|
1160
1167
|
this.dirs = this.vertical ?
|
1161
|
-
{mouse: 'pageY', pos: 'top', min: 'max', max: 'min', left: 'top', right: 'bottom', width: 'height', innerWidth: 'innerHeight', innerHeight: 'innerWidth', outerWidth: 'outerHeight', outerHeight: 'outerWidth', marginTop: 'marginLeft', marginLeft: 'marginTop'} :
|
1162
|
-
{mouse: 'pageX', pos: 'left', min: 'min', max: 'max', left: 'left', right: 'right', width: 'width', innerWidth: 'innerWidth', innerHeight: 'innerHeight', outerWidth: 'outerWidth', outerHeight: 'outerHeight', marginTop: 'marginTop', marginLeft: 'marginLeft'}
|
1168
|
+
{mouse: 'pageY', pos: 'top', posLeft: 'bottom', paddingRight: 'paddingTop', min: 'max', max: 'min', left: 'top', right: 'bottom', width: 'height', innerWidth: 'innerHeight', innerHeight: 'innerWidth', outerWidth: 'outerHeight', outerHeight: 'outerWidth', marginTop: 'marginLeft', marginLeft: 'marginTop'} :
|
1169
|
+
{mouse: 'pageX', pos: 'left', posLeft: 'left', paddingRight: 'paddingRight', min: 'min', max: 'max', left: 'left', right: 'right', width: 'width', innerWidth: 'innerWidth', innerHeight: 'innerHeight', outerWidth: 'outerWidth', outerHeight: 'outerHeight', marginTop: 'marginTop', marginLeft: 'marginLeft'}
|
1163
1170
|
;
|
1164
1171
|
if(!this.vertical && this.element.css('direction') == 'rtl'){
|
1165
1172
|
this.isRtl = true;
|
1166
1173
|
this.dirs.left = 'right';
|
1167
1174
|
this.dirs.right = 'left';
|
1168
1175
|
this.dirs.marginLeft = 'marginRight';
|
1176
|
+
this.dirs.posLeft = 'right';
|
1169
1177
|
}
|
1170
1178
|
this.element
|
1171
1179
|
[this.vertical ? 'addClass' : 'removeClass']('vertical-range')
|
@@ -1418,6 +1426,7 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
1418
1426
|
options.addZero = addZero;
|
1419
1427
|
webshims.loader.addModule('forms-picker', {
|
1420
1428
|
noAutoCallback: true,
|
1429
|
+
css: 'styles/forms-picker.css',
|
1421
1430
|
options: options
|
1422
1431
|
});
|
1423
1432
|
webshims.loader.addModule('color-picker', {
|
@@ -1590,8 +1599,40 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
1590
1599
|
|
1591
1600
|
|
1592
1601
|
var formatVal = {
|
1593
|
-
number: function(val, o){
|
1594
|
-
|
1602
|
+
number: function(val, o, noCorrect){
|
1603
|
+
var parts, len, i, isNegative;
|
1604
|
+
if(o && o.nogrouping){
|
1605
|
+
return (val+'').replace(/\,/g, '').replace(/\./, curCfg.numberFormat['.']);
|
1606
|
+
}
|
1607
|
+
|
1608
|
+
val += '';
|
1609
|
+
|
1610
|
+
if(val.charAt(0) == '-'){
|
1611
|
+
isNegative = true;
|
1612
|
+
val = val.replace('-', '');
|
1613
|
+
}
|
1614
|
+
parts = val.split('.');
|
1615
|
+
len = parts[0].length;
|
1616
|
+
i = len - 1;
|
1617
|
+
|
1618
|
+
val = "";
|
1619
|
+
while(i >= 0) {
|
1620
|
+
val = parts[0].charAt(i) + val;
|
1621
|
+
if (i > 0 && (len - i) % 3 === 0) {
|
1622
|
+
val = curCfg.numberFormat[','] + val;
|
1623
|
+
}
|
1624
|
+
--i;
|
1625
|
+
}
|
1626
|
+
if(parts[1] != null){
|
1627
|
+
if(!noCorrect){
|
1628
|
+
parts[1] = parts[1].replace(/\-/g, '0');
|
1629
|
+
}
|
1630
|
+
val += curCfg.numberFormat['.'] + parts[1];
|
1631
|
+
}
|
1632
|
+
if(isNegative){
|
1633
|
+
val = '-'+val;
|
1634
|
+
}
|
1635
|
+
return val;
|
1595
1636
|
},
|
1596
1637
|
time: function(val){
|
1597
1638
|
var fVal;
|
@@ -1670,10 +1711,10 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
1670
1711
|
return ret;
|
1671
1712
|
}
|
1672
1713
|
};
|
1673
|
-
|
1714
|
+
|
1674
1715
|
var parseVal = {
|
1675
1716
|
number: function(val){
|
1676
|
-
return (val+'').
|
1717
|
+
return (val+'').split(curCfg.numberFormat[',']).join('').replace(curCfg.numberFormat['.'], '.');
|
1677
1718
|
},
|
1678
1719
|
// week: function(val){
|
1679
1720
|
// return val;
|
@@ -1742,7 +1783,7 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
1742
1783
|
val = val.split(curCfg.dFormat);
|
1743
1784
|
}
|
1744
1785
|
if(val.length == 3 && val[0] && val[1] && val[2] && (!noCorrect || (val[obj.yy].length > 3 && val[obj.mm].length == 2 && val[obj.dd].length == 2))){
|
1745
|
-
if(val[obj.mm] > 12 && val[obj.dd] < 13){
|
1786
|
+
if(!opts.noDayMonthSwitch && val[obj.mm] > 12 && val[obj.dd] < 13){
|
1746
1787
|
tmp = val[obj.dd];
|
1747
1788
|
val[obj.dd] = val[obj.mm];
|
1748
1789
|
val[obj.mm] = tmp;
|
@@ -2175,7 +2216,7 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
2175
2216
|
},
|
2176
2217
|
toFixed: function(val, force){
|
2177
2218
|
var o = this.options;
|
2178
|
-
if(o.toFixed && o.type == 'number' && val && this.valueAsNumber && (force || !this.element.is(':focus')) && (!o.fixOnlyFloat || (this.valueAsNumber % 1))
|
2219
|
+
if(o.toFixed && o.type == 'number' && val && !isNaN(this.valueAsNumber) && (force || !this.element.is(':focus')) && (!o.fixOnlyFloat || (this.valueAsNumber % 1))){
|
2179
2220
|
val = formatVal[this.type](this.valueAsNumber.toFixed(o.toFixed), this.options);
|
2180
2221
|
}
|
2181
2222
|
return val;
|
@@ -2184,7 +2225,8 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
2184
2225
|
|
2185
2226
|
['defaultValue', 'value'].forEach(function(name){
|
2186
2227
|
var isValue = name == 'value';
|
2187
|
-
spinBtnProto[name] = function(val, force){
|
2228
|
+
spinBtnProto[name] = function(val, force, isLive){
|
2229
|
+
var selectionEnd;
|
2188
2230
|
if(!this._init || force || this.options[name] !== val){
|
2189
2231
|
if(isValue){
|
2190
2232
|
this._beforeValue(val);
|
@@ -2203,7 +2245,14 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
2203
2245
|
}
|
2204
2246
|
});
|
2205
2247
|
} else {
|
2206
|
-
|
2248
|
+
val = this.toFixed(val);
|
2249
|
+
if(isLive && this._getSelectionEnd){
|
2250
|
+
selectionEnd = this._getSelectionEnd(val);
|
2251
|
+
}
|
2252
|
+
this.element.prop(name, val);
|
2253
|
+
if(selectionEnd){
|
2254
|
+
this.element.prop('selectionEnd', selectionEnd);
|
2255
|
+
}
|
2207
2256
|
}
|
2208
2257
|
this._propertyChange(name);
|
2209
2258
|
this.mirrorValidity();
|
@@ -2231,7 +2280,7 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
2231
2280
|
$.fn.wsBaseWidget = function(opts){
|
2232
2281
|
opts = $.extend({}, opts);
|
2233
2282
|
return this.each(function(){
|
2234
|
-
|
2283
|
+
webshims.objectCreate(wsWidgetProto, {
|
2235
2284
|
element: {
|
2236
2285
|
value: $(this)
|
2237
2286
|
}
|
@@ -2246,7 +2295,7 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
2246
2295
|
monthNames: 'monthNamesShort'
|
2247
2296
|
}, opts);
|
2248
2297
|
return this.each(function(){
|
2249
|
-
|
2298
|
+
webshims.objectCreate(spinBtnProto, {
|
2250
2299
|
element: {
|
2251
2300
|
value: $(this)
|
2252
2301
|
}
|
@@ -2255,12 +2304,80 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
2255
2304
|
};
|
2256
2305
|
|
2257
2306
|
$.fn.spinbtnUI.wsProto = spinBtnProto;
|
2307
|
+
|
2308
|
+
webshims._format = formatVal;
|
2258
2309
|
|
2259
2310
|
})();
|
2260
|
-
|
2311
|
+
|
2312
|
+
|
2313
|
+
$.fn.wsTouchClick = (function(){
|
2314
|
+
var supportsTouchaction = ('touchAction' in document.documentElement.style);
|
2315
|
+
var addTouch = !supportsTouchaction && ('ontouchstart' in window) && document.addEventListener;
|
2316
|
+
return function(target, handler){
|
2317
|
+
var touchData, touchEnd, touchStart;
|
2318
|
+
|
2319
|
+
if(addTouch){
|
2320
|
+
|
2321
|
+
touchEnd = function(e){
|
2322
|
+
var ret, touch;
|
2323
|
+
e = e.originalEvent || {};
|
2324
|
+
$(this).off('touchend', touchEnd);
|
2325
|
+
var changedTouches = e.changedTouches || e.touches;
|
2326
|
+
if(!touchData || !changedTouches || changedTouches.length != 1){
|
2327
|
+
return;
|
2328
|
+
}
|
2329
|
+
|
2330
|
+
touch = changedTouches[0];
|
2331
|
+
if(Math.abs(touchData.x - touch.pageX) > 40 || Math.abs(touchData.y - touch.pageY) > 40 || Date.now() - touchData.now > 600){
|
2332
|
+
return;
|
2333
|
+
}
|
2334
|
+
e.preventDefault();
|
2335
|
+
ret = handler.apply(this, arguments);
|
2336
|
+
|
2337
|
+
return ret;
|
2338
|
+
};
|
2339
|
+
|
2340
|
+
touchStart = function(e){
|
2341
|
+
var touch, elemTarget;
|
2342
|
+
|
2343
|
+
|
2344
|
+
if((!e || e.touches.length != 1)){
|
2345
|
+
return;
|
2346
|
+
}
|
2347
|
+
touch = e.touches[0];
|
2348
|
+
elemTarget = target ? $(touch.target).closest(target) : $(this);
|
2349
|
+
if(!elemTarget.length){
|
2350
|
+
return;
|
2351
|
+
}
|
2352
|
+
touchData = {
|
2353
|
+
x: touch.pageX,
|
2354
|
+
y: touch.pageY,
|
2355
|
+
now: Date.now()
|
2356
|
+
};
|
2357
|
+
elemTarget.on('touchend', touchEnd);
|
2358
|
+
};
|
2359
|
+
|
2360
|
+
this.each(function(){
|
2361
|
+
this.addEventListener('touchstart', touchStart, true);
|
2362
|
+
});
|
2363
|
+
} else if(supportsTouchaction){
|
2364
|
+
this.css('touch-action', 'manipulation');
|
2365
|
+
}
|
2366
|
+
|
2367
|
+
if($.isFunction(target)){
|
2368
|
+
handler = target;
|
2369
|
+
target = false;
|
2370
|
+
this.on('click', handler);
|
2371
|
+
} else {
|
2372
|
+
this.on('click', target, handler);
|
2373
|
+
}
|
2374
|
+
return this;
|
2375
|
+
};
|
2376
|
+
})();
|
2377
|
+
|
2261
2378
|
(function(){
|
2262
2379
|
var picker = {};
|
2263
|
-
|
2380
|
+
var assumeVirtualKeyBoard = Modernizr.touchevents || Modernizr.touch || (/android|iphone|ipad|ipod|blackberry|iemobile/i.test(navigator.userAgent.toLowerCase()));
|
2264
2381
|
webshims.inlinePopover = {
|
2265
2382
|
_create: function(){
|
2266
2383
|
this.element = $('<div class="ws-inline-picker"><div class="ws-po-box" /></div>').data('wspopover', this);
|
@@ -2351,7 +2468,11 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
2351
2468
|
cancel: function(val, popover, data){
|
2352
2469
|
if(!data.options.inlinePicker){
|
2353
2470
|
popover.stopOpen = true;
|
2354
|
-
|
2471
|
+
if(assumeVirtualKeyBoard){
|
2472
|
+
$('button', data.buttonWrapper).trigger('focus');
|
2473
|
+
} else {
|
2474
|
+
data.element.getShadowFocusElement().trigger('focus');
|
2475
|
+
}
|
2355
2476
|
setTimeout(function(){
|
2356
2477
|
popover.stopOpen = false;
|
2357
2478
|
}, 9);
|
@@ -2442,6 +2563,7 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
2442
2563
|
|
2443
2564
|
|
2444
2565
|
picker._common = function(data){
|
2566
|
+
if(data.options.nopicker){return;}
|
2445
2567
|
var options = data.options;
|
2446
2568
|
var popover = webshims.objectCreate(options.inlinePicker ? webshims.inlinePopover : webshims.wsPopover, {}, $.extend(options.popover || {}, {prepareFor: options.inlinePicker ? data.buttonWrapper : data.element}));
|
2447
2569
|
var opener = $('<button type="button" class="ws-popover-opener"><span /></button>').appendTo(data.buttonWrapper);
|
@@ -2511,7 +2633,7 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
2511
2633
|
}
|
2512
2634
|
|
2513
2635
|
|
2514
|
-
opener.
|
2636
|
+
opener.wsTouchClick(open);
|
2515
2637
|
|
2516
2638
|
if(options.inlinePicker){
|
2517
2639
|
popover.openedByFocus = true;
|
@@ -2704,7 +2826,7 @@ webshims.register('form-number-date-api', function($, webshims, window, document
|
|
2704
2826
|
var init, parent, lastWidth, left, right, isRtl, hasButtons;
|
2705
2827
|
var oriStyleO = data.orig.style;
|
2706
2828
|
var styleO = data.element[0].style;
|
2707
|
-
if($.support.boxSizing == null
|
2829
|
+
if($.support.boxSizing == null){
|
2708
2830
|
$(function(){
|
2709
2831
|
parent = data.orig.parentNode;
|
2710
2832
|
});
|