webshims-rails 1.14.5 → 1.14.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +2 -0
  3. data/lib/webshims-rails/version.rb +2 -2
  4. data/readme.textile +7 -0
  5. data/vendor/assets/javascripts/webshims/polyfiller.js +38 -6
  6. data/vendor/assets/javascripts/webshims/shims/combos/1.js +26 -20
  7. data/vendor/assets/javascripts/webshims/shims/combos/10.js +54 -19
  8. data/vendor/assets/javascripts/webshims/shims/combos/11.js +32 -15
  9. data/vendor/assets/javascripts/webshims/shims/combos/12.js +45 -21
  10. data/vendor/assets/javascripts/webshims/shims/combos/13.js +45 -21
  11. data/vendor/assets/javascripts/webshims/shims/combos/15.js +22 -4
  12. data/vendor/assets/javascripts/webshims/shims/combos/16.js +48 -24
  13. data/vendor/assets/javascripts/webshims/shims/combos/17.js +32 -15
  14. data/vendor/assets/javascripts/webshims/shims/combos/18.js +18 -81
  15. data/vendor/assets/javascripts/webshims/shims/combos/2.js +48 -24
  16. data/vendor/assets/javascripts/webshims/shims/combos/21.js +286 -179
  17. data/vendor/assets/javascripts/webshims/shims/combos/22.js +19 -1
  18. data/vendor/assets/javascripts/webshims/shims/combos/23.js +26 -20
  19. data/vendor/assets/javascripts/webshims/shims/combos/25.js +311 -199
  20. data/vendor/assets/javascripts/webshims/shims/combos/26.js +22 -17
  21. data/vendor/assets/javascripts/webshims/shims/combos/27.js +22 -17
  22. data/vendor/assets/javascripts/webshims/shims/combos/3.js +22 -4
  23. data/vendor/assets/javascripts/webshims/shims/combos/30.js +22 -4
  24. data/vendor/assets/javascripts/webshims/shims/combos/31.js +22 -4
  25. data/vendor/assets/javascripts/webshims/shims/combos/34.js +41 -5
  26. data/vendor/assets/javascripts/webshims/shims/combos/4.js +22 -4
  27. data/vendor/assets/javascripts/webshims/shims/combos/5.js +32 -15
  28. data/vendor/assets/javascripts/webshims/shims/combos/6.js +32 -15
  29. data/vendor/assets/javascripts/webshims/shims/combos/7.js +48 -24
  30. data/vendor/assets/javascripts/webshims/shims/combos/8.js +48 -24
  31. data/vendor/assets/javascripts/webshims/shims/combos/9.js +54 -19
  32. data/vendor/assets/javascripts/webshims/shims/combos/98.js +24 -7
  33. data/vendor/assets/javascripts/webshims/shims/combos/99.js +24 -7
  34. data/vendor/assets/javascripts/webshims/shims/dom-extend.js +22 -4
  35. data/vendor/assets/javascripts/webshims/shims/es5.js +3 -1
  36. data/vendor/assets/javascripts/webshims/shims/es6.js +1 -5
  37. data/vendor/assets/javascripts/webshims/shims/filereader.js +22 -17
  38. data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +32 -15
  39. data/vendor/assets/javascripts/webshims/shims/forms-picker.js +18 -8
  40. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-fa.js +1 -1
  41. data/vendor/assets/javascripts/webshims/shims/jme/controls.css +11 -0
  42. data/vendor/assets/javascripts/webshims/shims/jme/controls.scss +16 -0
  43. data/vendor/assets/javascripts/webshims/shims/jme/mediacontrols-lazy.js +3 -20
  44. data/vendor/assets/javascripts/webshims/shims/jme/mediacontrols.js +24 -7
  45. data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +26 -20
  46. data/vendor/assets/javascripts/webshims/shims/mediaelement-debug.js +9 -1
  47. data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +267 -178
  48. data/vendor/assets/javascripts/webshims/shims/picture.js +18 -81
  49. data/vendor/assets/javascripts/webshims/shims/plugins/jquery.ui.position.js +1 -9
  50. data/vendor/assets/javascripts/webshims/shims/sizzle.js +1 -8
  51. data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +4 -0
  52. data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-ext.scss +5 -0
  53. data/vendor/assets/javascripts/webshims/shims/styles/shim-ext.css +4 -0
  54. data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
  55. data/vendor/assets/javascripts/webshims/shims/track.js +19 -1
  56. data/vendor/assets/javascripts/webshims/shims/url.js +316 -0
  57. data/vendor/assets/javascripts/webshims/shims/usermedia-core.js +28 -0
  58. data/vendor/assets/javascripts/webshims/shims/usermedia-shim.js +179 -0
  59. metadata +5 -3
  60. data/vendor/assets/javascripts/webshims/extras/modernizr-custom.js +0 -511
@@ -1,5 +1,4 @@
1
- (function(){
2
- "use strict";
1
+ webshim.ready('matchMedia', function($, webshim, w, doc, undefined){
3
2
  try {
4
3
  new Image();
5
4
  } catch(e){
@@ -7,75 +6,8 @@
7
6
  return document.createElement('img');
8
7
  };
9
8
  }
10
-
11
9
  webshim.isReady('picture', true);
12
- setTimeout(function(){
13
- if(window.picturefill){
14
- var sel = 'picture, img[srcset]';
15
- webshim.addReady(function(context){
16
- if(context.querySelector(sel)){
17
- window.picturefill();
18
- }
19
- });
20
- }
21
- });
22
- })();
23
- /*! Picturefill - v2.1.0-beta - 2014-07-15
24
- * http://scottjehl.github.io/picturefill
25
- * Copyright (c) 2014 https://github.com/scottjehl/picturefill/blob/master/Authors.txt; Licensed MIT */
26
- /*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. Dual MIT/BSD license */
27
-
28
- window.matchMedia || (window.matchMedia = function() {
29
- "use strict";
30
-
31
- // For browsers that support matchMedium api such as IE 9 and webkit
32
- var styleMedia = (window.styleMedia || window.media);
33
-
34
- // For those that don't support matchMedium
35
- if (!styleMedia) {
36
- var style = document.createElement('style'),
37
- script = document.getElementsByTagName('script')[0],
38
- info = null;
39
-
40
- style.type = 'text/css';
41
- style.id = 'matchmediajs-test';
42
-
43
- script.parentNode.insertBefore(style, script);
44
-
45
- // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers
46
- info = ('getComputedStyle' in window) && window.getComputedStyle(style, null) || style.currentStyle;
47
-
48
- styleMedia = {
49
- matchMedium: function(media) {
50
- var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }';
51
-
52
- // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers
53
- if (style.styleSheet) {
54
- style.styleSheet.cssText = text;
55
- } else {
56
- style.textContent = text;
57
- }
58
-
59
- // Test if media query is true or false
60
- return info.width === '1px';
61
- }
62
- };
63
- }
64
-
65
- return function(media) {
66
- return {
67
- matches: styleMedia.matchMedium(media || 'all'),
68
- media: media || 'all'
69
- };
70
- };
71
- }());
72
- /*! Picturefill - Responsive Images that work today.
73
- * Author: Scott Jehl, Filament Group, 2012 ( new proposal implemented by Shawn Jansepar )
74
- * License: MIT/GPLv2
75
- * Spec: http://picture.responsiveimages.org/
76
- */
77
- (function( w, doc ) {
78
- // Enable strict mode
10
+ // Enable strict mode
79
11
  "use strict";
80
12
 
81
13
  // If picture is supported, well, that's awesome. Let's get outta here...
@@ -490,6 +422,10 @@ window.matchMedia || (window.matchMedia = function() {
490
422
  if ( source.nodeName.toUpperCase() !== "SOURCE" ) {
491
423
  continue;
492
424
  }
425
+ // if it's a source element that has the `src` property set, throw a warning in the console
426
+ if ( source.getAttribute( "src" ) !== null && typeof console !== undefined ){
427
+ console.warn("The `src` attribute is invalid on `picture` `source` element; instead, use `srcset`.");
428
+ }
493
429
 
494
430
  var media = source.getAttribute( "media" );
495
431
 
@@ -626,17 +562,18 @@ window.matchMedia || (window.matchMedia = function() {
626
562
  picturefill._ = pf;
627
563
 
628
564
  /* expose picturefill */
629
- if ( typeof module === "object" && typeof module.exports === "object" ) {
630
- // CommonJS, just export
631
- module.exports = picturefill;
632
- } else if ( typeof define === "function" && define.amd ){
633
- // AMD support
634
- define( function() { return picturefill; } );
635
- } else if ( typeof w === "object" ) {
636
- // If no AMD and we are in the browser, attach to window
637
- w.picturefill = picturefill;
638
- }
565
+ w.picturefill = picturefill;
566
+
567
+ (function(){
639
568
 
640
- } )( this, this.document );
569
+ webshim.isReady('picture', true);
570
+ var sel = 'picture, img[srcset]';
571
+ webshim.addReady(function(context){
572
+ if(context.querySelector(sel)){
573
+ window.picturefill();
574
+ }
575
+ });
576
+ })();
577
+ } );
641
578
 
642
579
 
@@ -9,15 +9,7 @@
9
9
  * http://api.jqueryui.com/position/
10
10
  */
11
11
  (function( factory ) {
12
- if ( typeof define === "function" && define.amd ) {
13
-
14
- // AMD. Register as an anonymous module.
15
- define( [ "jquery" ], factory );
16
- } else {
17
-
18
- // Browser globals
19
- factory( window.webshims && window.webshims.$ || jQuery );
20
- }
12
+ factory( window.webshims && window.webshims.$ || jQuery );
21
13
  }(function( $ ) {
22
14
  (function() {
23
15
 
@@ -2031,14 +2031,7 @@
2031
2031
  }
2032
2032
 
2033
2033
  // EXPOSE
2034
- if ( typeof define === "function" && define.amd ) {
2035
- define(function() { return Sizzle; });
2036
- // Sizzle requires that there be a global window in Common-JS like environments
2037
- } else if ( typeof module !== "undefined" && module.exports ) {
2038
- module.exports = Sizzle;
2039
- } else {
2040
- window.Sizzle = Sizzle;
2041
- }
2034
+ window.Sizzle = Sizzle;
2042
2035
  // EXPOSE
2043
2036
 
2044
2037
 
@@ -298,6 +298,10 @@ input[type="color"] {
298
298
  margin-left: 0;
299
299
  margin-right: -24px;
300
300
  }
301
+ .input-button-size-1.number-input-buttons.ws-is-rtl {
302
+ margin-left: 0;
303
+ margin-right: -19px;
304
+ }
301
305
 
302
306
  .input-button-size-2 {
303
307
  margin-left: -39px;
@@ -203,6 +203,11 @@ input[type="color"] {
203
203
  margin-right: -24px;
204
204
  }
205
205
  }
206
+
207
+ &.number-input-buttons.ws-is-rtl {
208
+ margin-left: 0;
209
+ margin-right: -19px;
210
+ }
206
211
  }
207
212
  .input-button-size-2 {
208
213
  margin-left: -39px;
@@ -981,6 +981,10 @@ input[type="color"] {
981
981
  margin-left: 0;
982
982
  margin-right: -24px;
983
983
  }
984
+ .input-button-size-1.number-input-buttons.ws-is-rtl {
985
+ margin-left: 0;
986
+ margin-right: -19px;
987
+ }
984
988
 
985
989
  .input-button-size-2 {
986
990
  margin-left: -39px;
@@ -456,11 +456,29 @@ webshims.register('track', function($, webshims, window, document, undefined){
456
456
  webshims.error('you must provide a language for track in subtitles state');
457
457
  }
458
458
  obj.__wsmode = obj.mode;
459
+
460
+ webshims.defineProperty(obj, '_wsUpdateMode', {
461
+ value: function(){
462
+ $(mediaelem).triggerHandler('updatetrackdisplay');
463
+ },
464
+ enumerable: false
465
+ });
459
466
  }
460
467
 
461
468
  return obj;
462
469
  };
463
470
 
471
+ if(!$.propHooks.mode){
472
+ $.propHooks.mode = {
473
+ set: function(obj, value){
474
+ obj.mode = value;
475
+ if(obj._wsUpdateMode && obj._wsUpdateMode.call){
476
+ obj._wsUpdateMode();
477
+ }
478
+ return obj.mode;
479
+ }
480
+ };
481
+ }
464
482
 
465
483
  /*
466
484
  taken from:
@@ -711,7 +729,7 @@ modified for webshims
711
729
  var name = copyName[copyProp] || copyProp;
712
730
  webshims.onNodeNamesPropertyModify('track', copyProp, function(){
713
731
  var trackData = webshims.data(this, 'trackData');
714
- var track = this;
732
+
715
733
  if(trackData){
716
734
  if(copyProp == 'kind'){
717
735
  refreshTrack(this, trackData);
@@ -0,0 +1,316 @@
1
+ webshim.register('url', function($, webshims, window, document, undefined, options){
2
+ 'use strict';
3
+
4
+ // URL Polyfill
5
+ // Draft specification: http://url.spec.whatwg.org
6
+
7
+ // Notes:
8
+ // - Primarily useful for parsing URLs and modifying query parameters
9
+ // - Should work in IE8+ and everything more modern
10
+
11
+ (function (global) {
12
+ // Browsers may have:
13
+ // * No global URL object
14
+ // * URL with static methods only - may have a dummy constructor
15
+ // * URL with members except searchParams
16
+ // * Full URL API support
17
+ var origURL = global.URL;
18
+ var nativeURL;
19
+ try {
20
+ if (origURL) {
21
+ nativeURL = new global.URL('http://example.com');
22
+ if ('searchParams' in nativeURL)
23
+ return;
24
+ if (!('href' in nativeURL))
25
+ nativeURL = undefined;
26
+ }
27
+ } catch (_) {}
28
+
29
+ function URLUtils(url) {
30
+ if (nativeURL)
31
+ return new origURL(url);
32
+ var anchor = document.createElement('a');
33
+ anchor.href = url;
34
+ return anchor;
35
+ }
36
+
37
+ global.URL = function URL(url, base) {
38
+ if (!(this instanceof global.URL))
39
+ throw new TypeError("Failed to construct 'URL': Please use the 'new' operator.");
40
+
41
+ if (base) {
42
+ url = (function () {
43
+ if (nativeURL) return new origURL(url, base).href;
44
+
45
+ var doc;
46
+ // Use another document/base tag/anchor for relative URL resolution, if possible
47
+ if (document.implementation && document.implementation.createHTMLDocument) {
48
+ doc = document.implementation.createHTMLDocument('');
49
+ } else if (document.implementation && document.implementation.createDocument) {
50
+ doc = document.implementation.createElement('http://www.w3.org/1999/xhtml', 'html', null);
51
+ doc.documentElement.appendChild(doc.createElement('head'));
52
+ doc.documentElement.appendChild(doc.createElement('body'));
53
+ } else if (window.ActiveXObject) {
54
+ doc = new window.ActiveXObject('htmlfile');
55
+ doc.write('<head></head><body></body>');
56
+ doc.close();
57
+ }
58
+
59
+ if (!doc) throw Error('base not supported');
60
+
61
+ var baseTag = doc.createElement('base');
62
+ baseTag.href = base;
63
+ doc.getElementsByTagName('head')[0].appendChild(baseTag);
64
+ var anchor = doc.createElement('a');
65
+ anchor.href = url;
66
+ return anchor.href;
67
+ }());
68
+ }
69
+
70
+ // An inner object implementing URLUtils (either a native URL
71
+ // object or an HTMLAnchorElement instance) is used to perform the
72
+ // URL algorithms. With full ES5 getter/setter support, return a
73
+ // regular object For IE8's limited getter/setter support, a
74
+ // different HTMLAnchorElement is returned with properties
75
+ // overridden
76
+
77
+ var instance = URLUtils(url || '');
78
+
79
+ // Detect for ES5 getter/setter support
80
+ var ES5_GET_SET = (Object.defineProperties && (function () {
81
+ var o = {}; Object.defineProperties(o, { p: { 'get': function () { return true; } } }); return o.p;
82
+ }()));
83
+
84
+ var self = ES5_GET_SET ? this : document.createElement('a');
85
+
86
+ // NOTE: Doesn't do the encoding/decoding dance
87
+ function parse(input, isindex) {
88
+ var sequences = input.split('&');
89
+ if (isindex && sequences[0].indexOf('=') === -1)
90
+ sequences[0] = '=' + sequences[0];
91
+ var pairs = [];
92
+ sequences.forEach(function (bytes) {
93
+ if (bytes.length === 0) return;
94
+ var index = bytes.indexOf('=');
95
+ if (index !== -1) {
96
+ var name = bytes.substring(0, index);
97
+ var value = bytes.substring(index + 1);
98
+ } else {
99
+ name = bytes;
100
+ value = '';
101
+ }
102
+ name = name.replace('+', ' ');
103
+ value = value.replace('+', ' ');
104
+ pairs.push({ name: name, value: value });
105
+ });
106
+ var output = [];
107
+ pairs.forEach(function (pair) {
108
+ output.push({
109
+ name: decodeURIComponent(pair.name),
110
+ value: decodeURIComponent(pair.value)
111
+ });
112
+ });
113
+ return output; // Spec bug?
114
+ }
115
+
116
+ function URLSearchParams(url_object, init) {
117
+ var pairs = [];
118
+ if (init)
119
+ pairs = parse(init);
120
+
121
+ this._setPairs = function (list) { pairs = list; };
122
+ this._updateSteps = function () { updateSteps(); };
123
+
124
+ var updating = false;
125
+ function updateSteps() {
126
+ if (updating) return;
127
+ updating = true;
128
+
129
+ // TODO: For all associated url objects
130
+ url_object.search = serialize(pairs);
131
+
132
+ updating = false;
133
+ }
134
+
135
+ // NOTE: Doesn't do the encoding/decoding dance
136
+ function serialize(pairs) {
137
+ var output = '', first = true;
138
+ pairs.forEach(function (pair) {
139
+ var name = encodeURIComponent(pair.name);
140
+ var value = encodeURIComponent(pair.value);
141
+ if (!first) output += '&';
142
+ output += name + '=' + value;
143
+ first = false;
144
+ });
145
+ return output;
146
+ }
147
+
148
+ webshim.defineProperties(this, {
149
+ append: {
150
+ value: function (name, value) {
151
+ pairs.push({ name: name, value: value });
152
+ updateSteps();
153
+ }
154
+ },
155
+
156
+ 'delete': {
157
+ value: function (name) {
158
+ for (var i = 0; i < pairs.length;) {
159
+ if (pairs[i].name === name)
160
+ pairs.splice(i, 1);
161
+ else
162
+ ++i;
163
+ }
164
+ updateSteps();
165
+ }
166
+ },
167
+
168
+ get: {
169
+ value: function (name) {
170
+ for (var i = 0; i < pairs.length; ++i) {
171
+ if (pairs[i].name === name)
172
+ return pairs[i].value;
173
+ }
174
+ return null;
175
+ }
176
+ },
177
+
178
+ getAll: {
179
+ value: function (name) {
180
+ var result = [];
181
+ for (var i = 0; i < pairs.length; ++i) {
182
+ if (pairs[i].name === name)
183
+ result.push(pairs[i].value);
184
+ }
185
+ return result;
186
+ }
187
+ },
188
+
189
+ has: {
190
+ value: function (name) {
191
+ for (var i = 0; i < pairs.length; ++i) {
192
+ if (pairs[i].name === name)
193
+ return true;
194
+ }
195
+ return false;
196
+ }
197
+ },
198
+
199
+ set: {
200
+ value: function (name, value) {
201
+ var found = false;
202
+ for (var i = 0; i < pairs.length;) {
203
+ if (pairs[i].name === name) {
204
+ if (!found) {
205
+ pairs[i].value = value;
206
+ ++i;
207
+ } else {
208
+ pairs.splice(i, 1);
209
+ }
210
+ } else {
211
+ ++i;
212
+ }
213
+ }
214
+ updateSteps();
215
+ }
216
+ },
217
+
218
+ toString: {
219
+ value: function () {
220
+ return serialize(pairs);
221
+ }
222
+ }
223
+ });
224
+ };
225
+
226
+ var queryObject = new URLSearchParams(
227
+ self, instance.search ? instance.search.substring(1) : null);
228
+
229
+ webshim.defineProperties(self, {
230
+ href: {
231
+ get: function () { return instance.href; },
232
+ set: function (v) { instance.href = v; tidy_instance(); update_steps(); }
233
+ },
234
+ origin: {
235
+ get: function () {
236
+ if ('origin' in instance) return instance.origin;
237
+ return this.protocol + '//' + this.host;
238
+ }
239
+ },
240
+ protocol: {
241
+ get: function () { return instance.protocol; },
242
+ set: function (v) { instance.protocol = v; }
243
+ },
244
+ username: {
245
+ get: function () { return instance.username; },
246
+ set: function (v) { instance.username = v; }
247
+ },
248
+ password: {
249
+ get: function () { return instance.password; },
250
+ set: function (v) { instance.password = v; }
251
+ },
252
+ host: {
253
+ get: function () {
254
+ // IE returns default port in |host|
255
+ var re = {'http:': /:80$/, 'https:': /:443$/, 'ftp:': /:21$/}[instance.protocol];
256
+ return re ? instance.host.replace(re, '') : instance.host;
257
+ },
258
+ set: function (v) { instance.host = v; }
259
+ },
260
+ hostname: {
261
+ get: function () { return instance.hostname; },
262
+ set: function (v) { instance.hostname = v; }
263
+ },
264
+ port: {
265
+ get: function () { return instance.port; },
266
+ set: function (v) { instance.port = v; }
267
+ },
268
+ pathname: {
269
+ get: function () {
270
+ // IE does not include leading '/' in |pathname|
271
+ if (instance.pathname.charAt(0) !== '/') return '/' + instance.pathname;
272
+ return instance.pathname;
273
+ },
274
+ set: function (v) { instance.pathname = v; }
275
+ },
276
+ search: {
277
+ get: function () { return instance.search; },
278
+ set: function (v) {
279
+ if (instance.search === v) return;
280
+ instance.search = v; tidy_instance(); update_steps();
281
+ }
282
+ },
283
+ searchParams: {
284
+ get: function () { return queryObject; }
285
+ // TODO: implement setter
286
+ },
287
+ hash: {
288
+ get: function () { return instance.hash; },
289
+ set: function (v) { instance.hash = v; tidy_instance(); }
290
+ }
291
+ });
292
+
293
+ function tidy_instance() {
294
+ var href = instance.href.replace(/#$|\?$|\?(?=#)/g, '');
295
+ if (instance.href !== href)
296
+ instance.href = href;
297
+ }
298
+
299
+ function update_steps() {
300
+ queryObject._setPairs(instance.search ? parse(instance.search.substring(1)) : []);
301
+ queryObject._updateSteps();
302
+ }
303
+
304
+ return self;
305
+ };
306
+
307
+ if (origURL) {
308
+ for (var i in origURL) {
309
+ if (origURL.hasOwnProperty(i))
310
+ global.URL[i] = origURL[i];
311
+ }
312
+ }
313
+
314
+ }(window));
315
+
316
+ });