webshims-rails 1.12.0 → 1.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/webshims-rails/version.rb +2 -2
- data/vendor/assets/javascripts/webshims/extras/modernizr-custom.js +440 -440
- data/vendor/assets/javascripts/webshims/polyfiller.js +132 -91
- data/vendor/assets/javascripts/webshims/shims/combos/10.js +248 -91
- data/vendor/assets/javascripts/webshims/shims/combos/11.js +237 -84
- data/vendor/assets/javascripts/webshims/shims/combos/15.js +21 -8
- data/vendor/assets/javascripts/webshims/shims/combos/16.js +21 -8
- data/vendor/assets/javascripts/webshims/shims/combos/17.js +237 -84
- data/vendor/assets/javascripts/webshims/shims/combos/18.js +237 -84
- data/vendor/assets/javascripts/webshims/shims/combos/19.js +11 -7
- data/vendor/assets/javascripts/webshims/shims/combos/2.js +18 -8
- data/vendor/assets/javascripts/webshims/shims/combos/20.js +11 -7
- data/vendor/assets/javascripts/webshims/shims/combos/21.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/combos/22.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/combos/24.js +9 -6
- data/vendor/assets/javascripts/webshims/shims/combos/25.js +11 -7
- data/vendor/assets/javascripts/webshims/shims/combos/26.js +11 -7
- data/vendor/assets/javascripts/webshims/shims/combos/28.js +10 -1
- data/vendor/assets/javascripts/webshims/shims/combos/3.js +11 -7
- data/vendor/assets/javascripts/webshims/shims/combos/30.js +18 -8
- data/vendor/assets/javascripts/webshims/shims/combos/31.js +18 -8
- data/vendor/assets/javascripts/webshims/shims/combos/32.js +7 -1
- data/vendor/assets/javascripts/webshims/shims/combos/33.js +7 -1
- data/vendor/assets/javascripts/webshims/shims/combos/4.js +11 -7
- data/vendor/assets/javascripts/webshims/shims/combos/5.js +237 -84
- data/vendor/assets/javascripts/webshims/shims/combos/6.js +244 -85
- data/vendor/assets/javascripts/webshims/shims/combos/7.js +18 -8
- data/vendor/assets/javascripts/webshims/shims/combos/8.js +11 -7
- data/vendor/assets/javascripts/webshims/shims/combos/9.js +255 -92
- data/vendor/assets/javascripts/webshims/shims/details.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/dom-extend.js +10 -7
- data/vendor/assets/javascripts/webshims/shims/form-datalist-lazy.js +53 -56
- data/vendor/assets/javascripts/webshims/shims/form-datalist.js +7 -1
- data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +175 -60
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +3 -0
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend2.js +6 -6
- data/vendor/assets/javascripts/webshims/shims/form-validation.js +77 -28
- data/vendor/assets/javascripts/webshims/shims/form-validators.js +24 -16
- data/vendor/assets/javascripts/webshims/shims/forms-picker.js +40 -68
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pl.js +4 -4
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-sv.js +13 -6
- data/vendor/assets/javascripts/webshims/shims/range-ui.js +61 -24
- data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +278 -95
- data/vendor/assets/javascripts/webshims/shims/styles/progress.gif +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/_api-forms-ext.scss +203 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/_api-shim.scss +115 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/_extends.scss +18 -2
- data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-ext.scss +227 -113
- data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +168 -159
- data/vendor/assets/javascripts/webshims/shims/styles/shim.css +106 -69
- metadata +4 -7
- data/vendor/assets/javascripts/webshims/shims/styles/details-arrows.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/polyfill-loader.gif +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/range-track.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/vertical-range.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/swf/localStorage.swf +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 64dc8a60020703d0b864c0f4f7ab4b8f39f0f63a
|
4
|
+
data.tar.gz: b1ce0d9be3b195be8381b475f3298ceee290b134
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b77af804aa74df4ef6593b8aba59d7e8e8ee8deba60b34797abc81af83429b24be969e88d90cbce9762ff5085ec6715e7e06aaaaa9de84c8163a988c26a1e5f1
|
7
|
+
data.tar.gz: 979c651edd8c44edba2cb9d8703538019d7fbfe4b2b5d61bae490d71cd86ab65b1cc7f252922153677bb723b2d41c9fee2541280dfb65208054c049e9c22428c
|
@@ -1,4 +1,4 @@
|
|
1
|
-
/* Modernizr 2.7.
|
1
|
+
/* Modernizr 2.7.1 (Custom Build) | MIT & BSD
|
2
2
|
* Build: http://modernizr.com/download/#-canvas-audio-video-input-inputtypes-localstorage-sessionstorage-geolocation-shiv-cssclasses-addtest-prefixed-testprop-testallprops-prefixes-domprefixes-elem_track
|
3
3
|
*/
|
4
4
|
;
|
@@ -7,528 +7,528 @@
|
|
7
7
|
|
8
8
|
window.Modernizr = (function( window, document, undefined ) {
|
9
9
|
|
10
|
-
|
10
|
+
var version = '2.7.1',
|
11
11
|
|
12
|
-
|
12
|
+
Modernizr = {},
|
13
13
|
|
14
|
-
|
14
|
+
enableClasses = true,
|
15
15
|
|
16
|
-
|
16
|
+
docElement = document.documentElement,
|
17
17
|
|
18
|
-
|
19
|
-
|
20
|
-
|
18
|
+
mod = 'modernizr',
|
19
|
+
modElem = document.createElement(mod),
|
20
|
+
mStyle = modElem.style,
|
21
21
|
|
22
|
-
|
22
|
+
inputElem = document.createElement('input') ,
|
23
23
|
|
24
|
-
|
24
|
+
smile = ':)',
|
25
25
|
|
26
|
-
|
26
|
+
toString = {}.toString,
|
27
27
|
|
28
|
-
|
28
|
+
prefixes = ' -webkit- -moz- -o- -ms- '.split(' '),
|
29
29
|
|
30
30
|
|
31
31
|
|
32
|
-
|
32
|
+
omPrefixes = 'Webkit Moz O ms',
|
33
33
|
|
34
|
-
|
34
|
+
cssomPrefixes = omPrefixes.split(' '),
|
35
35
|
|
36
|
-
|
36
|
+
domPrefixes = omPrefixes.toLowerCase().split(' '),
|
37
37
|
|
38
38
|
|
39
|
-
|
40
|
-
|
41
|
-
|
39
|
+
tests = {},
|
40
|
+
inputs = {},
|
41
|
+
attrs = {},
|
42
42
|
|
43
|
-
|
43
|
+
classes = [],
|
44
44
|
|
45
|
-
|
45
|
+
slice = classes.slice,
|
46
46
|
|
47
|
-
|
47
|
+
featureName,
|
48
48
|
|
49
49
|
|
50
50
|
|
51
|
-
|
51
|
+
_hasOwnProperty = ({}).hasOwnProperty, hasOwnProp;
|
52
52
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
53
|
+
if ( !is(_hasOwnProperty, 'undefined') && !is(_hasOwnProperty.call, 'undefined') ) {
|
54
|
+
hasOwnProp = function (object, property) {
|
55
|
+
return _hasOwnProperty.call(object, property);
|
56
|
+
};
|
57
|
+
}
|
58
|
+
else {
|
59
|
+
hasOwnProp = function (object, property) {
|
60
|
+
return ((property in object) && is(object.constructor.prototype[property], 'undefined'));
|
61
|
+
};
|
62
|
+
}
|
63
63
|
|
64
64
|
|
65
|
-
|
66
|
-
|
65
|
+
if (!Function.prototype.bind) {
|
66
|
+
Function.prototype.bind = function bind(that) {
|
67
67
|
|
68
|
-
|
68
|
+
var target = this;
|
69
69
|
|
70
|
-
|
71
|
-
|
72
|
-
|
70
|
+
if (typeof target != "function") {
|
71
|
+
throw new TypeError();
|
72
|
+
}
|
73
73
|
|
74
|
-
|
75
|
-
|
74
|
+
var args = slice.call(arguments, 1),
|
75
|
+
bound = function () {
|
76
76
|
|
77
|
-
|
77
|
+
if (this instanceof bound) {
|
78
78
|
|
79
|
-
|
80
|
-
|
81
|
-
|
79
|
+
var F = function(){};
|
80
|
+
F.prototype = target.prototype;
|
81
|
+
var self = new F();
|
82
82
|
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
83
|
+
var result = target.apply(
|
84
|
+
self,
|
85
|
+
args.concat(slice.call(arguments))
|
86
|
+
);
|
87
|
+
if (Object(result) === result) {
|
88
|
+
return result;
|
89
|
+
}
|
90
|
+
return self;
|
91
91
|
|
92
|
-
|
92
|
+
} else {
|
93
93
|
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
94
|
+
return target.apply(
|
95
|
+
that,
|
96
|
+
args.concat(slice.call(arguments))
|
97
|
+
);
|
98
98
|
|
99
|
-
|
99
|
+
}
|
100
100
|
|
101
|
-
|
101
|
+
};
|
102
102
|
|
103
|
-
|
104
|
-
|
105
|
-
|
103
|
+
return bound;
|
104
|
+
};
|
105
|
+
}
|
106
106
|
|
107
|
-
|
108
|
-
|
109
|
-
|
107
|
+
function setCss( str ) {
|
108
|
+
mStyle.cssText = str;
|
109
|
+
}
|
110
110
|
|
111
|
-
|
112
|
-
|
113
|
-
|
111
|
+
function setCssAll( str1, str2 ) {
|
112
|
+
return setCss(prefixes.join(str1 + ';') + ( str2 || '' ));
|
113
|
+
}
|
114
114
|
|
115
|
-
|
116
|
-
|
117
|
-
|
115
|
+
function is( obj, type ) {
|
116
|
+
return typeof obj === type;
|
117
|
+
}
|
118
118
|
|
119
|
-
|
120
|
-
|
121
|
-
|
119
|
+
function contains( str, substr ) {
|
120
|
+
return !!~('' + str).indexOf(substr);
|
121
|
+
}
|
122
122
|
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
123
|
+
function testProps( props, prefixed ) {
|
124
|
+
for ( var i in props ) {
|
125
|
+
var prop = props[i];
|
126
|
+
if ( !contains(prop, "-") && mStyle[prop] !== undefined ) {
|
127
|
+
return prefixed == 'pfx' ? prop : true;
|
128
|
+
}
|
129
|
+
}
|
130
|
+
return false;
|
131
|
+
}
|
132
132
|
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
133
|
+
function testDOMProps( props, obj, elem ) {
|
134
|
+
for ( var i in props ) {
|
135
|
+
var item = obj[props[i]];
|
136
|
+
if ( item !== undefined) {
|
137
137
|
|
138
|
-
|
138
|
+
if (elem === false) return props[i];
|
139
139
|
|
140
|
-
|
141
|
-
|
142
|
-
|
140
|
+
if (is(item, 'function')){
|
141
|
+
return item.bind(elem || obj);
|
142
|
+
}
|
143
143
|
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
144
|
+
return item;
|
145
|
+
}
|
146
|
+
}
|
147
|
+
return false;
|
148
|
+
}
|
149
149
|
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
150
|
+
function testPropsAll( prop, prefixed, elem ) {
|
151
|
+
|
152
|
+
var ucProp = prop.charAt(0).toUpperCase() + prop.slice(1),
|
153
|
+
props = (prop + ' ' + cssomPrefixes.join(ucProp + ' ') + ucProp).split(' ');
|
154
|
+
|
155
|
+
if(is(prefixed, "string") || is(prefixed, "undefined")) {
|
156
|
+
return testProps(props, prefixed);
|
157
157
|
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
158
|
+
} else {
|
159
|
+
props = (prop + ' ' + (domPrefixes).join(ucProp + ' ') + ucProp).split(' ');
|
160
|
+
return testDOMProps(props, prefixed, elem);
|
161
|
+
}
|
162
|
+
}
|
163
163
|
|
164
164
|
|
165
165
|
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
166
|
+
tests['canvas'] = function() {
|
167
|
+
var elem = document.createElement('canvas');
|
168
|
+
return !!(elem.getContext && elem.getContext('2d'));
|
169
|
+
}; tests['geolocation'] = function() {
|
170
|
+
return 'geolocation' in navigator;
|
171
|
+
};
|
172
172
|
|
173
173
|
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
174
|
+
tests['video'] = function() {
|
175
|
+
var elem = document.createElement('video'),
|
176
|
+
bool = false;
|
177
|
+
|
178
|
+
try {
|
179
|
+
if ( bool = !!elem.canPlayType ) {
|
180
|
+
bool = new Boolean(bool);
|
181
|
+
bool.ogg = elem.canPlayType('video/ogg; codecs="theora"') .replace(/^no$/,'');
|
182
|
+
|
183
|
+
bool.h264 = elem.canPlayType('video/mp4; codecs="avc1.42E01E"') .replace(/^no$/,'');
|
184
|
+
|
185
|
+
bool.webm = elem.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,'');
|
186
|
+
}
|
187
|
+
|
188
|
+
} catch(e) { }
|
189
|
+
|
190
|
+
return bool;
|
191
|
+
};
|
192
192
|
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
193
|
+
tests['audio'] = function() {
|
194
|
+
var elem = document.createElement('audio'),
|
195
|
+
bool = false;
|
196
|
+
|
197
|
+
try {
|
198
|
+
if ( bool = !!elem.canPlayType ) {
|
199
|
+
bool = new Boolean(bool);
|
200
|
+
bool.ogg = elem.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,'');
|
201
|
+
bool.mp3 = elem.canPlayType('audio/mpeg;') .replace(/^no$/,'');
|
202
|
+
|
203
|
+
bool.wav = elem.canPlayType('audio/wav; codecs="1"') .replace(/^no$/,'');
|
204
|
+
bool.m4a = ( elem.canPlayType('audio/x-m4a;') ||
|
205
|
+
elem.canPlayType('audio/aac;')) .replace(/^no$/,'');
|
206
|
+
}
|
207
|
+
} catch(e) { }
|
208
|
+
|
209
|
+
return bool;
|
210
|
+
};
|
211
|
+
|
212
|
+
|
213
|
+
tests['localstorage'] = function() {
|
214
|
+
try {
|
215
|
+
localStorage.setItem(mod, mod);
|
216
|
+
localStorage.removeItem(mod);
|
217
|
+
return true;
|
218
|
+
} catch(e) {
|
219
|
+
return false;
|
220
|
+
}
|
221
|
+
};
|
222
222
|
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
223
|
+
tests['sessionstorage'] = function() {
|
224
|
+
try {
|
225
|
+
sessionStorage.setItem(mod, mod);
|
226
|
+
sessionStorage.removeItem(mod);
|
227
|
+
return true;
|
228
|
+
} catch(e) {
|
229
|
+
return false;
|
230
|
+
}
|
231
|
+
};
|
232
232
|
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
233
|
+
function webforms() {
|
234
|
+
Modernizr['input'] = (function( props ) {
|
235
|
+
for ( var i = 0, len = props.length; i < len; i++ ) {
|
236
|
+
attrs[ props[i] ] = !!(props[i] in inputElem);
|
237
|
+
}
|
238
|
+
if (attrs.list){
|
239
|
+
attrs.list = !!(document.createElement('datalist') && window.HTMLDataListElement);
|
240
|
+
}
|
241
|
+
return attrs;
|
242
|
+
})('autocomplete autofocus list placeholder max min multiple pattern required step'.split(' '));
|
243
|
+
Modernizr['inputtypes'] = (function(props) {
|
244
244
|
|
245
|
-
|
245
|
+
for ( var i = 0, bool, inputElemType, defaultView, len = props.length; i < len; i++ ) {
|
246
246
|
|
247
|
-
|
248
|
-
|
247
|
+
inputElem.setAttribute('type', inputElemType = props[i]);
|
248
|
+
bool = inputElem.type !== 'text';
|
249
249
|
|
250
|
-
|
250
|
+
if ( bool ) {
|
251
251
|
|
252
|
-
|
253
|
-
|
252
|
+
inputElem.value = smile;
|
253
|
+
inputElem.style.cssText = 'position:absolute;visibility:hidden;';
|
254
254
|
|
255
|
-
|
255
|
+
if ( /^range$/.test(inputElemType) && inputElem.style.WebkitAppearance !== undefined ) {
|
256
256
|
|
257
|
-
|
258
|
-
|
257
|
+
docElement.appendChild(inputElem);
|
258
|
+
defaultView = document.defaultView;
|
259
259
|
|
260
|
-
|
261
|
-
|
262
|
-
|
260
|
+
bool = defaultView.getComputedStyle &&
|
261
|
+
defaultView.getComputedStyle(inputElem, null).WebkitAppearance !== 'textfield' &&
|
262
|
+
(inputElem.offsetHeight !== 0);
|
263
263
|
|
264
|
-
|
264
|
+
docElement.removeChild(inputElem);
|
265
265
|
|
266
|
-
|
267
|
-
|
268
|
-
|
266
|
+
} else if ( /^(search|tel)$/.test(inputElemType) ){
|
267
|
+
} else if ( /^(url|email)$/.test(inputElemType) ) {
|
268
|
+
bool = inputElem.checkValidity && inputElem.checkValidity() === false;
|
269
269
|
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
270
|
+
} else {
|
271
|
+
bool = inputElem.value != smile;
|
272
|
+
}
|
273
|
+
}
|
274
274
|
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
275
|
+
inputs[ props[i] ] = !!bool;
|
276
|
+
}
|
277
|
+
return inputs;
|
278
|
+
})('search tel url email datetime date month week time datetime-local number range color'.split(' '));
|
279
|
+
}
|
280
|
+
for ( var feature in tests ) {
|
281
|
+
if ( hasOwnProp(tests, feature) ) {
|
282
|
+
featureName = feature.toLowerCase();
|
283
|
+
Modernizr[featureName] = tests[feature]();
|
284
284
|
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
|
474
|
-
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
285
|
+
classes.push((Modernizr[featureName] ? '' : 'no-') + featureName);
|
286
|
+
}
|
287
|
+
}
|
288
|
+
|
289
|
+
Modernizr.input || webforms();
|
290
|
+
|
291
|
+
|
292
|
+
Modernizr.addTest = function ( feature, test ) {
|
293
|
+
if ( typeof feature == 'object' ) {
|
294
|
+
for ( var key in feature ) {
|
295
|
+
if ( hasOwnProp( feature, key ) ) {
|
296
|
+
Modernizr.addTest( key, feature[ key ] );
|
297
|
+
}
|
298
|
+
}
|
299
|
+
} else {
|
300
|
+
|
301
|
+
feature = feature.toLowerCase();
|
302
|
+
|
303
|
+
if ( Modernizr[feature] !== undefined ) {
|
304
|
+
return Modernizr;
|
305
|
+
}
|
306
|
+
|
307
|
+
test = typeof test == 'function' ? test() : test;
|
308
|
+
|
309
|
+
if (typeof enableClasses !== "undefined" && enableClasses) {
|
310
|
+
docElement.className += ' ' + (test ? '' : 'no-') + feature;
|
311
|
+
}
|
312
|
+
Modernizr[feature] = test;
|
313
|
+
|
314
|
+
}
|
315
|
+
|
316
|
+
return Modernizr;
|
317
|
+
};
|
318
|
+
|
319
|
+
|
320
|
+
setCss('');
|
321
|
+
modElem = inputElem = null;
|
322
|
+
|
323
|
+
;(function(window, document) {
|
324
|
+
var version = '3.7.0';
|
325
|
+
|
326
|
+
var options = window.html5 || {};
|
327
|
+
|
328
|
+
var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i;
|
329
|
+
|
330
|
+
var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i;
|
331
|
+
|
332
|
+
var supportsHtml5Styles;
|
333
|
+
|
334
|
+
var expando = '_html5shiv';
|
335
|
+
|
336
|
+
var expanID = 0;
|
337
|
+
|
338
|
+
var expandoData = {};
|
339
|
+
|
340
|
+
var supportsUnknownElements;
|
341
|
+
|
342
|
+
(function() {
|
343
|
+
try {
|
344
|
+
var a = document.createElement('a');
|
345
|
+
a.innerHTML = '<xyz></xyz>';
|
346
|
+
supportsHtml5Styles = ('hidden' in a);
|
347
|
+
|
348
|
+
supportsUnknownElements = a.childNodes.length == 1 || (function() {
|
349
|
+
(document.createElement)('a');
|
350
|
+
var frag = document.createDocumentFragment();
|
351
|
+
return (
|
352
|
+
typeof frag.cloneNode == 'undefined' ||
|
353
|
+
typeof frag.createDocumentFragment == 'undefined' ||
|
354
|
+
typeof frag.createElement == 'undefined'
|
355
|
+
);
|
356
|
+
}());
|
357
|
+
} catch(e) {
|
358
|
+
supportsHtml5Styles = true;
|
359
|
+
supportsUnknownElements = true;
|
360
|
+
}
|
361
|
+
|
362
|
+
}());
|
363
|
+
|
364
|
+
function addStyleSheet(ownerDocument, cssText) {
|
365
|
+
var p = ownerDocument.createElement('p'),
|
366
|
+
parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement;
|
367
|
+
|
368
|
+
p.innerHTML = 'x<style>' + cssText + '</style>';
|
369
|
+
return parent.insertBefore(p.lastChild, parent.firstChild);
|
370
|
+
}
|
371
|
+
|
372
|
+
function getElements() {
|
373
|
+
var elements = html5.elements;
|
374
|
+
return typeof elements == 'string' ? elements.split(' ') : elements;
|
375
|
+
}
|
376
|
+
|
377
|
+
function getExpandoData(ownerDocument) {
|
378
|
+
var data = expandoData[ownerDocument[expando]];
|
379
|
+
if (!data) {
|
380
|
+
data = {};
|
381
|
+
expanID++;
|
382
|
+
ownerDocument[expando] = expanID;
|
383
|
+
expandoData[expanID] = data;
|
384
|
+
}
|
385
|
+
return data;
|
386
|
+
}
|
387
|
+
|
388
|
+
function createElement(nodeName, ownerDocument, data){
|
389
|
+
if (!ownerDocument) {
|
390
|
+
ownerDocument = document;
|
391
|
+
}
|
392
|
+
if(supportsUnknownElements){
|
393
|
+
return ownerDocument.createElement(nodeName);
|
394
|
+
}
|
395
|
+
if (!data) {
|
396
|
+
data = getExpandoData(ownerDocument);
|
397
|
+
}
|
398
|
+
var node;
|
399
|
+
|
400
|
+
if (data.cache[nodeName]) {
|
401
|
+
node = data.cache[nodeName].cloneNode();
|
402
|
+
} else if (saveClones.test(nodeName)) {
|
403
|
+
node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode();
|
404
|
+
} else {
|
405
|
+
node = data.createElem(nodeName);
|
406
|
+
}
|
407
|
+
|
408
|
+
return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn ? data.frag.appendChild(node) : node;
|
409
|
+
}
|
410
|
+
|
411
|
+
function createDocumentFragment(ownerDocument, data){
|
412
|
+
if (!ownerDocument) {
|
413
|
+
ownerDocument = document;
|
414
|
+
}
|
415
|
+
if(supportsUnknownElements){
|
416
|
+
return ownerDocument.createDocumentFragment();
|
417
|
+
}
|
418
|
+
data = data || getExpandoData(ownerDocument);
|
419
|
+
var clone = data.frag.cloneNode(),
|
420
|
+
i = 0,
|
421
|
+
elems = getElements(),
|
422
|
+
l = elems.length;
|
423
|
+
for(;i<l;i++){
|
424
|
+
clone.createElement(elems[i]);
|
425
|
+
}
|
426
|
+
return clone;
|
427
|
+
}
|
428
|
+
|
429
|
+
function shivMethods(ownerDocument, data) {
|
430
|
+
if (!data.cache) {
|
431
|
+
data.cache = {};
|
432
|
+
data.createElem = ownerDocument.createElement;
|
433
|
+
data.createFrag = ownerDocument.createDocumentFragment;
|
434
|
+
data.frag = data.createFrag();
|
435
|
+
}
|
436
|
+
|
437
|
+
|
438
|
+
ownerDocument.createElement = function(nodeName) {
|
439
|
+
if (!html5.shivMethods) {
|
440
|
+
return data.createElem(nodeName);
|
441
|
+
}
|
442
|
+
return createElement(nodeName, ownerDocument, data);
|
443
|
+
};
|
444
|
+
|
445
|
+
ownerDocument.createDocumentFragment = Function('h,f', 'return function(){' +
|
446
|
+
'var n=f.cloneNode(),c=n.createElement;' +
|
447
|
+
'h.shivMethods&&(' +
|
448
|
+
getElements().join().replace(/[\w\-]+/g, function(nodeName) {
|
449
|
+
data.createElem(nodeName);
|
450
|
+
data.frag.createElement(nodeName);
|
451
|
+
return 'c("' + nodeName + '")';
|
452
|
+
}) +
|
453
|
+
');return n}'
|
454
|
+
)(html5, data.frag);
|
455
|
+
}
|
456
|
+
|
457
|
+
function shivDocument(ownerDocument) {
|
458
|
+
if (!ownerDocument) {
|
459
|
+
ownerDocument = document;
|
460
|
+
}
|
461
|
+
var data = getExpandoData(ownerDocument);
|
462
|
+
|
463
|
+
if (html5.shivCSS && !supportsHtml5Styles && !data.hasCSS) {
|
464
|
+
data.hasCSS = !!addStyleSheet(ownerDocument,
|
465
|
+
'article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}' +
|
466
|
+
'mark{background:#FF0;color:#000}' +
|
467
|
+
'template{display:none}'
|
468
|
+
);
|
469
|
+
}
|
470
|
+
if (!supportsUnknownElements) {
|
471
|
+
shivMethods(ownerDocument, data);
|
472
|
+
}
|
473
|
+
return ownerDocument;
|
474
|
+
}
|
475
|
+
|
476
|
+
var html5 = {
|
477
|
+
|
478
|
+
'elements': options.elements || 'abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video',
|
479
|
+
|
480
|
+
'version': version,
|
481
|
+
|
482
|
+
'shivCSS': (options.shivCSS !== false),
|
483
|
+
|
484
|
+
'supportsUnknownElements': supportsUnknownElements,
|
485
|
+
|
486
|
+
'shivMethods': (options.shivMethods !== false),
|
487
487
|
|
488
|
-
|
489
|
-
|
490
|
-
|
488
|
+
'type': 'default',
|
489
|
+
|
490
|
+
'shivDocument': shivDocument,
|
491
491
|
|
492
|
-
|
492
|
+
createElement: createElement,
|
493
493
|
|
494
|
-
|
495
|
-
|
494
|
+
createDocumentFragment: createDocumentFragment
|
495
|
+
};
|
496
496
|
|
497
|
-
|
497
|
+
window.html5 = html5;
|
498
498
|
|
499
|
-
|
499
|
+
shivDocument(document);
|
500
500
|
|
501
|
-
|
501
|
+
}(this, document));
|
502
502
|
|
503
|
-
|
503
|
+
Modernizr._version = version;
|
504
504
|
|
505
|
-
|
506
|
-
|
507
|
-
|
505
|
+
Modernizr._prefixes = prefixes;
|
506
|
+
Modernizr._domPrefixes = domPrefixes;
|
507
|
+
Modernizr._cssomPrefixes = cssomPrefixes;
|
508
508
|
|
509
509
|
|
510
510
|
|
511
|
-
|
512
|
-
|
513
|
-
|
511
|
+
Modernizr.testProp = function(prop){
|
512
|
+
return testProps([prop]);
|
513
|
+
};
|
514
514
|
|
515
|
-
|
515
|
+
Modernizr.testAllProps = testPropsAll;
|
516
516
|
|
517
517
|
|
518
|
-
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
|
523
|
-
|
524
|
-
|
518
|
+
Modernizr.prefixed = function(prop, obj, elem){
|
519
|
+
if(!obj) {
|
520
|
+
return testPropsAll(prop, 'pfx');
|
521
|
+
} else {
|
522
|
+
return testPropsAll(prop, obj, elem);
|
523
|
+
}
|
524
|
+
};
|
525
525
|
|
526
526
|
|
527
|
-
|
527
|
+
docElement.className = docElement.className.replace(/(^|\s)no-js(\s|$)/, '$1$2') +
|
528
528
|
|
529
|
-
|
529
|
+
(enableClasses ? ' js ' + classes.join(' ') : '');
|
530
530
|
|
531
|
-
|
531
|
+
return Modernizr;
|
532
532
|
|
533
533
|
})(this, this.document);
|
534
534
|
// Track element + Timed Text Track API
|
@@ -542,4 +542,4 @@ Modernizr.addTest({
|
|
542
542
|
// a more strict test for track including UI support: document.createElement('track').kind === 'subtitles'
|
543
543
|
track: ('kind' in document.createElement('track'))
|
544
544
|
});
|
545
|
-
;
|
545
|
+
;
|