webshims-rails 1.11.1 → 1.11.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/lib/webshims-rails/version.rb +2 -2
- data/vendor/assets/javascripts/webshims/polyfiller.js +41 -20
- data/vendor/assets/javascripts/webshims/shims/combos/10.js +212 -42
- data/vendor/assets/javascripts/webshims/shims/combos/11.js +196 -37
- data/vendor/assets/javascripts/webshims/shims/combos/12.js +82 -36
- data/vendor/assets/javascripts/webshims/shims/combos/13.js +82 -36
- data/vendor/assets/javascripts/webshims/shims/combos/14.js +17 -6
- data/vendor/assets/javascripts/webshims/shims/combos/15.js +234 -1247
- data/vendor/assets/javascripts/webshims/shims/combos/16.js +234 -1247
- data/vendor/assets/javascripts/webshims/shims/combos/17.js +202 -45
- data/vendor/assets/javascripts/webshims/shims/combos/18.js +202 -45
- data/vendor/assets/javascripts/webshims/shims/combos/19.js +16 -5
- data/vendor/assets/javascripts/webshims/shims/combos/2.js +51 -11
- data/vendor/assets/javascripts/webshims/shims/combos/20.js +16 -5
- data/vendor/assets/javascripts/webshims/shims/combos/21.js +82 -36
- data/vendor/assets/javascripts/webshims/shims/combos/22.js +82 -36
- data/vendor/assets/javascripts/webshims/shims/combos/24.js +1689 -997
- data/vendor/assets/javascripts/webshims/shims/combos/25.js +16 -5
- data/vendor/assets/javascripts/webshims/shims/combos/26.js +16 -5
- data/vendor/assets/javascripts/webshims/shims/combos/3.js +16 -5
- data/vendor/assets/javascripts/webshims/shims/combos/30.js +51 -11
- data/vendor/assets/javascripts/webshims/shims/combos/31.js +51 -11
- data/vendor/assets/javascripts/webshims/shims/combos/4.js +16 -5
- data/vendor/assets/javascripts/webshims/shims/combos/5.js +202 -45
- data/vendor/assets/javascripts/webshims/shims/combos/6.js +237 -51
- data/vendor/assets/javascripts/webshims/shims/combos/7.js +51 -11
- data/vendor/assets/javascripts/webshims/shims/combos/8.js +16 -5
- data/vendor/assets/javascripts/webshims/shims/combos/9.js +247 -48
- data/vendor/assets/javascripts/webshims/shims/dom-extend.js +17 -5
- data/vendor/assets/javascripts/webshims/shims/form-datalist-lazy.js +21 -3
- data/vendor/assets/javascripts/webshims/shims/form-datalist.js +35 -6
- data/vendor/assets/javascripts/webshims/shims/form-number-date-api.js +6 -8
- data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +134 -24
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +152 -1205
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend2.js +1076 -0
- data/vendor/assets/javascripts/webshims/shims/form-validation.js +47 -20
- data/vendor/assets/javascripts/webshims/shims/form-validators.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/forms-picker.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/i18n/{formcfg-de.txt → formcfg-de.js} +3 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/{formcfg-en.txt → formcfg-en.js} +5 -1
- data/vendor/assets/javascripts/webshims/shims/json-storage.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/range-ui.js +62 -13
- data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +610 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/_extends.scss +10 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-ext.scss +743 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +1 -755
- data/vendor/assets/javascripts/webshims/shims/styles/shim.css +0 -606
- data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
- data/vendor/assets/javascripts/webshims/shims/track-ui.js +36 -23
- data/vendor/assets/javascripts/webshims/shims/track.js +82 -36
- metadata +8 -6
- data/vendor/assets/javascripts/webshims/shims/combos/28.js +0 -2196
- data/vendor/assets/javascripts/webshims/shims/combos/29.js +0 -1167
@@ -1261,7 +1261,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1261
1261
|
webshims.assumeARIA = supportGetSetAttribute || Modernizr.canvas || Modernizr.video || Modernizr.boxsizing;
|
1262
1262
|
|
1263
1263
|
if($('<input type="email" />').attr('type') == 'text' || $('<form />').attr('novalidate') === "" || ('required' in $('<input />')[0].attributes)){
|
1264
|
-
webshims.error("IE browser modes are busted in IE10
|
1264
|
+
webshims.error("IE browser modes are busted in IE10+. Please test your HTML/CSS/JS with a real IE version or at least IETester or similiar tools");
|
1265
1265
|
}
|
1266
1266
|
|
1267
1267
|
if(!$.parseHTML){
|
@@ -1814,7 +1814,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1814
1814
|
$(this.test);
|
1815
1815
|
webshims.ready('WINDOWLOAD', this.test);
|
1816
1816
|
$(document).on('updatelayout', this.handler);
|
1817
|
-
$(window).
|
1817
|
+
$(window).on('resize', this.handler);
|
1818
1818
|
(function(){
|
1819
1819
|
var oldAnimate = $.fn.animate;
|
1820
1820
|
var animationTimer;
|
@@ -1836,6 +1836,13 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1836
1836
|
webshims.docObserve = function(){
|
1837
1837
|
webshims.ready('DOM', function(){
|
1838
1838
|
docObserve.start();
|
1839
|
+
if($.support.boxSizing == null){
|
1840
|
+
$(function(){
|
1841
|
+
if($.support.boxSizing){
|
1842
|
+
docObserve.handler({type: 'boxsizing'});
|
1843
|
+
}
|
1844
|
+
});
|
1845
|
+
}
|
1839
1846
|
});
|
1840
1847
|
};
|
1841
1848
|
return function(nativeElem, shadowElem, opts){
|
@@ -1996,7 +2003,12 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1996
2003
|
havePolyfill[prop] = true;
|
1997
2004
|
|
1998
2005
|
if(descs.reflect){
|
1999
|
-
webshims.propTypes[descs.propType
|
2006
|
+
if(descs.propType && !webshims.propTypes[descs.propType]){
|
2007
|
+
webshims.error('could not finde propType '+ descs.propType);
|
2008
|
+
} else {
|
2009
|
+
webshims.propTypes[descs.propType || 'standard'](descs, prop);
|
2010
|
+
}
|
2011
|
+
|
2000
2012
|
}
|
2001
2013
|
|
2002
2014
|
['prop', 'attr', 'removeAttr'].forEach(function(type){
|
@@ -2182,7 +2194,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
2182
2194
|
var notLocal = /:\/\/|^\.*\//;
|
2183
2195
|
var loadRemoteLang = function(data, lang, options){
|
2184
2196
|
var langSrc;
|
2185
|
-
if(lang && options && $.inArray(lang, options.availabeLangs || []) !== -1){
|
2197
|
+
if(lang && options && $.inArray(lang, options.availableLangs || options.availabeLangs || []) !== -1){
|
2186
2198
|
data.loading = true;
|
2187
2199
|
langSrc = options.langSrc;
|
2188
2200
|
if(!notLocal.test(langSrc)){
|
@@ -2342,7 +2354,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
2342
2354
|
});
|
2343
2355
|
|
2344
2356
|
})(webshims.$, document);
|
2345
|
-
|
2346
2357
|
(function(Modernizr, webshims){
|
2347
2358
|
"use strict";
|
2348
2359
|
var $ = webshims.$;
|
@@ -458,7 +458,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
458
458
|
webshims.assumeARIA = supportGetSetAttribute || Modernizr.canvas || Modernizr.video || Modernizr.boxsizing;
|
459
459
|
|
460
460
|
if($('<input type="email" />').attr('type') == 'text' || $('<form />').attr('novalidate') === "" || ('required' in $('<input />')[0].attributes)){
|
461
|
-
webshims.error("IE browser modes are busted in IE10
|
461
|
+
webshims.error("IE browser modes are busted in IE10+. Please test your HTML/CSS/JS with a real IE version or at least IETester or similiar tools");
|
462
462
|
}
|
463
463
|
|
464
464
|
if(!$.parseHTML){
|
@@ -1011,7 +1011,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1011
1011
|
$(this.test);
|
1012
1012
|
webshims.ready('WINDOWLOAD', this.test);
|
1013
1013
|
$(document).on('updatelayout', this.handler);
|
1014
|
-
$(window).
|
1014
|
+
$(window).on('resize', this.handler);
|
1015
1015
|
(function(){
|
1016
1016
|
var oldAnimate = $.fn.animate;
|
1017
1017
|
var animationTimer;
|
@@ -1033,6 +1033,13 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1033
1033
|
webshims.docObserve = function(){
|
1034
1034
|
webshims.ready('DOM', function(){
|
1035
1035
|
docObserve.start();
|
1036
|
+
if($.support.boxSizing == null){
|
1037
|
+
$(function(){
|
1038
|
+
if($.support.boxSizing){
|
1039
|
+
docObserve.handler({type: 'boxsizing'});
|
1040
|
+
}
|
1041
|
+
});
|
1042
|
+
}
|
1036
1043
|
});
|
1037
1044
|
};
|
1038
1045
|
return function(nativeElem, shadowElem, opts){
|
@@ -1193,7 +1200,12 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1193
1200
|
havePolyfill[prop] = true;
|
1194
1201
|
|
1195
1202
|
if(descs.reflect){
|
1196
|
-
webshims.propTypes[descs.propType
|
1203
|
+
if(descs.propType && !webshims.propTypes[descs.propType]){
|
1204
|
+
webshims.error('could not finde propType '+ descs.propType);
|
1205
|
+
} else {
|
1206
|
+
webshims.propTypes[descs.propType || 'standard'](descs, prop);
|
1207
|
+
}
|
1208
|
+
|
1197
1209
|
}
|
1198
1210
|
|
1199
1211
|
['prop', 'attr', 'removeAttr'].forEach(function(type){
|
@@ -1379,7 +1391,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1379
1391
|
var notLocal = /:\/\/|^\.*\//;
|
1380
1392
|
var loadRemoteLang = function(data, lang, options){
|
1381
1393
|
var langSrc;
|
1382
|
-
if(lang && options && $.inArray(lang, options.availabeLangs || []) !== -1){
|
1394
|
+
if(lang && options && $.inArray(lang, options.availableLangs || options.availabeLangs || []) !== -1){
|
1383
1395
|
data.loading = true;
|
1384
1396
|
langSrc = options.langSrc;
|
1385
1397
|
if(!notLocal.test(langSrc)){
|
@@ -1539,7 +1551,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1539
1551
|
});
|
1540
1552
|
|
1541
1553
|
})(webshims.$, document);
|
1542
|
-
|
1543
1554
|
webshims.register('form-core', function($, webshims, window, document, undefined, options){
|
1544
1555
|
"use strict";
|
1545
1556
|
|
@@ -1788,12 +1799,12 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
|
|
1788
1799
|
/*
|
1789
1800
|
* implement propType "element" currently only used for list-attribute (will be moved to dom-extend, if needed)
|
1790
1801
|
*/
|
1791
|
-
webshims.propTypes.element = function(descs){
|
1802
|
+
webshims.propTypes.element = function(descs, name){
|
1792
1803
|
webshims.createPropDefault(descs, 'attr');
|
1793
1804
|
if(descs.prop){return;}
|
1794
1805
|
descs.prop = {
|
1795
1806
|
get: function(){
|
1796
|
-
var elem = $.attr(this,
|
1807
|
+
var elem = $.attr(this, name);
|
1797
1808
|
if(elem){
|
1798
1809
|
elem = document.getElementById(elem);
|
1799
1810
|
if(elem && descs.propNodeName && !$.nodeName(elem, descs.propNodeName)){
|
@@ -1817,7 +1828,15 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
|
|
1817
1828
|
if(listSupport && !formsCFG.customDatalist){return;}
|
1818
1829
|
|
1819
1830
|
var initializeDatalist = function(){
|
1820
|
-
|
1831
|
+
|
1832
|
+
var updateDatlistAndOptions = function(){
|
1833
|
+
var id;
|
1834
|
+
if(!$.data(this, 'datalistWidgetData') && (id = $.prop(this, 'id'))){
|
1835
|
+
$('input[list="'+ id +'"], input[data-wslist="'+ id +'"]').eq(0).attr('list', id);
|
1836
|
+
} else {
|
1837
|
+
$(this).triggerHandler('updateDatalist');
|
1838
|
+
}
|
1839
|
+
};
|
1821
1840
|
|
1822
1841
|
var inputListProto = {
|
1823
1842
|
//override autocomplete
|
@@ -1895,6 +1914,7 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
|
|
1895
1914
|
id: value,
|
1896
1915
|
datalist: $.prop(elem, 'list')
|
1897
1916
|
});
|
1917
|
+
elem.setAttribute('data-wslist', value);
|
1898
1918
|
} else {
|
1899
1919
|
elem.setAttribute('list', value);
|
1900
1920
|
}
|
@@ -1906,6 +1926,27 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
|
|
1906
1926
|
propType: 'element',
|
1907
1927
|
propNodeName: 'datalist'
|
1908
1928
|
};
|
1929
|
+
} else {
|
1930
|
+
webshims.defineNodeNameProperties('input', {
|
1931
|
+
list: {
|
1932
|
+
attr: {
|
1933
|
+
get: function(){
|
1934
|
+
var val = webshims.contentAttr(this, 'list');
|
1935
|
+
return (val == null) ? undefined : val;
|
1936
|
+
},
|
1937
|
+
set: function(value){
|
1938
|
+
var elem = this;
|
1939
|
+
webshims.contentAttr(elem, 'list', value);
|
1940
|
+
webshims.objectCreate(options.shadowListProto, undefined, {input: elem, id: value, datalist: $.prop(elem, 'list')});
|
1941
|
+
$(elem).triggerHandler('listdatalistchange');
|
1942
|
+
}
|
1943
|
+
},
|
1944
|
+
initAttr: true,
|
1945
|
+
reflect: true,
|
1946
|
+
propType: 'element',
|
1947
|
+
propNodeName: 'datalist'
|
1948
|
+
}
|
1949
|
+
});
|
1909
1950
|
}
|
1910
1951
|
|
1911
1952
|
webshims.defineNodeNameProperties('input', inputListProto);
|
@@ -1914,9 +1955,7 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
|
|
1914
1955
|
contextElem
|
1915
1956
|
.filter('datalist > select, datalist, datalist > option, datalist > select > option')
|
1916
1957
|
.closest('datalist')
|
1917
|
-
.each(
|
1918
|
-
$(this).triggerHandler('updateDatalist');
|
1919
|
-
})
|
1958
|
+
.each(updateDatlistAndOptions)
|
1920
1959
|
;
|
1921
1960
|
});
|
1922
1961
|
};
|
@@ -1961,6 +2000,7 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
|
|
1961
2000
|
this.hasViewableData = true;
|
1962
2001
|
this._autocomplete = $.attr(opts.input, 'autocomplete');
|
1963
2002
|
$.data(opts.input, 'datalistWidget', this);
|
2003
|
+
$.data(datalist, 'datalistWidgetData', this);
|
1964
2004
|
|
1965
2005
|
lazyLoad('WINDOWLOAD');
|
1966
2006
|
|
@@ -809,7 +809,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
809
809
|
webshims.assumeARIA = supportGetSetAttribute || Modernizr.canvas || Modernizr.video || Modernizr.boxsizing;
|
810
810
|
|
811
811
|
if($('<input type="email" />').attr('type') == 'text' || $('<form />').attr('novalidate') === "" || ('required' in $('<input />')[0].attributes)){
|
812
|
-
webshims.error("IE browser modes are busted in IE10
|
812
|
+
webshims.error("IE browser modes are busted in IE10+. Please test your HTML/CSS/JS with a real IE version or at least IETester or similiar tools");
|
813
813
|
}
|
814
814
|
|
815
815
|
if(!$.parseHTML){
|
@@ -1362,7 +1362,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1362
1362
|
$(this.test);
|
1363
1363
|
webshims.ready('WINDOWLOAD', this.test);
|
1364
1364
|
$(document).on('updatelayout', this.handler);
|
1365
|
-
$(window).
|
1365
|
+
$(window).on('resize', this.handler);
|
1366
1366
|
(function(){
|
1367
1367
|
var oldAnimate = $.fn.animate;
|
1368
1368
|
var animationTimer;
|
@@ -1384,6 +1384,13 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1384
1384
|
webshims.docObserve = function(){
|
1385
1385
|
webshims.ready('DOM', function(){
|
1386
1386
|
docObserve.start();
|
1387
|
+
if($.support.boxSizing == null){
|
1388
|
+
$(function(){
|
1389
|
+
if($.support.boxSizing){
|
1390
|
+
docObserve.handler({type: 'boxsizing'});
|
1391
|
+
}
|
1392
|
+
});
|
1393
|
+
}
|
1387
1394
|
});
|
1388
1395
|
};
|
1389
1396
|
return function(nativeElem, shadowElem, opts){
|
@@ -1544,7 +1551,12 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1544
1551
|
havePolyfill[prop] = true;
|
1545
1552
|
|
1546
1553
|
if(descs.reflect){
|
1547
|
-
webshims.propTypes[descs.propType
|
1554
|
+
if(descs.propType && !webshims.propTypes[descs.propType]){
|
1555
|
+
webshims.error('could not finde propType '+ descs.propType);
|
1556
|
+
} else {
|
1557
|
+
webshims.propTypes[descs.propType || 'standard'](descs, prop);
|
1558
|
+
}
|
1559
|
+
|
1548
1560
|
}
|
1549
1561
|
|
1550
1562
|
['prop', 'attr', 'removeAttr'].forEach(function(type){
|
@@ -1730,7 +1742,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1730
1742
|
var notLocal = /:\/\/|^\.*\//;
|
1731
1743
|
var loadRemoteLang = function(data, lang, options){
|
1732
1744
|
var langSrc;
|
1733
|
-
if(lang && options && $.inArray(lang, options.availabeLangs || []) !== -1){
|
1745
|
+
if(lang && options && $.inArray(lang, options.availableLangs || options.availabeLangs || []) !== -1){
|
1734
1746
|
data.loading = true;
|
1735
1747
|
langSrc = options.langSrc;
|
1736
1748
|
if(!notLocal.test(langSrc)){
|
@@ -1890,7 +1902,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1890
1902
|
});
|
1891
1903
|
|
1892
1904
|
})(webshims.$, document);
|
1893
|
-
|
1894
1905
|
(function(Modernizr, webshims){
|
1895
1906
|
"use strict";
|
1896
1907
|
var $ = webshims.$;
|
@@ -1480,8 +1480,8 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
1480
1480
|
kind: 'subtitles',
|
1481
1481
|
label: '',
|
1482
1482
|
language: '',
|
1483
|
+
id: '',
|
1483
1484
|
mode: 'disabled',
|
1484
|
-
readyState: 0,
|
1485
1485
|
oncuechange: null,
|
1486
1486
|
toString: function() {
|
1487
1487
|
return "[object TextTrack]";
|
@@ -1521,7 +1521,7 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
1521
1521
|
webshims.error("cue not part of track");
|
1522
1522
|
return;
|
1523
1523
|
}
|
1524
|
-
}
|
1524
|
+
}/*,
|
1525
1525
|
DISABLED: 'disabled',
|
1526
1526
|
OFF: 'disabled',
|
1527
1527
|
HIDDEN: 'hidden',
|
@@ -1529,7 +1529,7 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
1529
1529
|
ERROR: 3,
|
1530
1530
|
LOADED: 2,
|
1531
1531
|
LOADING: 1,
|
1532
|
-
NONE: 0
|
1532
|
+
NONE: 0*/
|
1533
1533
|
};
|
1534
1534
|
var copyProps = ['kind', 'label', 'srclang'];
|
1535
1535
|
var copyName = {srclang: 'language'};
|
@@ -1598,21 +1598,47 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
1598
1598
|
if(!trackData){
|
1599
1599
|
trackData = webshims.data(track, 'trackData');
|
1600
1600
|
}
|
1601
|
+
|
1601
1602
|
if(trackData && !trackData.isTriggering){
|
1602
1603
|
trackData.isTriggering = true;
|
1603
1604
|
setTimeout(function(){
|
1604
|
-
|
1605
|
-
$(track).triggerHandler('checktrackmode');
|
1606
|
-
} else {
|
1607
|
-
$(track).closest('audio, video').triggerHandler('updatetrackdisplay');
|
1608
|
-
}
|
1605
|
+
$(track).closest('audio, video').triggerHandler('updatetrackdisplay');
|
1609
1606
|
trackData.isTriggering = false;
|
1610
1607
|
}, 1);
|
1611
1608
|
}
|
1612
1609
|
};
|
1613
|
-
|
1610
|
+
var isDefaultTrack = (function(){
|
1611
|
+
var defaultKinds = {
|
1612
|
+
subtitles: {
|
1613
|
+
subtitles: 1,
|
1614
|
+
captions: 1
|
1615
|
+
},
|
1616
|
+
descriptions: {descriptions: 1},
|
1617
|
+
chapters: {chapters: 1}
|
1618
|
+
};
|
1619
|
+
defaultKinds.captions = defaultKinds.subtitles;
|
1620
|
+
|
1621
|
+
return function(track){
|
1622
|
+
var kind, firstDefaultTrack;
|
1623
|
+
var isDefault = $.prop(track, 'default');
|
1624
|
+
if(isDefault && (kind = $.prop(track, 'kind')) != 'metadata'){
|
1625
|
+
firstDefaultTrack = $(track)
|
1626
|
+
.parent()
|
1627
|
+
.find('track[default]')
|
1628
|
+
.filter(function(){
|
1629
|
+
return !!(defaultKinds[kind][$.prop(this, 'kind')]);
|
1630
|
+
})[0]
|
1631
|
+
;
|
1632
|
+
if(firstDefaultTrack != track){
|
1633
|
+
isDefault = false;
|
1634
|
+
webshims.error('more than one default track of a specific kind detected. Fall back to default = false');
|
1635
|
+
}
|
1636
|
+
}
|
1637
|
+
return isDefault;
|
1638
|
+
};
|
1639
|
+
})();
|
1614
1640
|
var emptyDiv = $('<div />')[0];
|
1615
|
-
|
1641
|
+
var TextTrackCue = function(startTime, endTime, text){
|
1616
1642
|
if(arguments.length != 3){
|
1617
1643
|
webshims.error("wrong arguments.length for TextTrackCue.constructor");
|
1618
1644
|
}
|
@@ -1621,13 +1647,11 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
1621
1647
|
this.endTime = endTime;
|
1622
1648
|
this.text = text;
|
1623
1649
|
|
1624
|
-
this.id = "";
|
1625
|
-
this.pauseOnExit = false;
|
1626
1650
|
|
1627
1651
|
createEventTarget(this);
|
1628
1652
|
};
|
1629
1653
|
|
1630
|
-
|
1654
|
+
TextTrackCue.prototype = {
|
1631
1655
|
|
1632
1656
|
onenter: null,
|
1633
1657
|
onexit: null,
|
@@ -1669,6 +1693,7 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
1669
1693
|
// align: 'middle'
|
1670
1694
|
};
|
1671
1695
|
|
1696
|
+
window.TextTrackCue = TextTrackCue;
|
1672
1697
|
|
1673
1698
|
|
1674
1699
|
|
@@ -1714,23 +1739,20 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
1714
1739
|
})();
|
1715
1740
|
|
1716
1741
|
mediaelement.loadTextTrack = function(mediaelem, track, trackData, _default){
|
1717
|
-
var loadEvents = 'play playing
|
1742
|
+
var loadEvents = 'play playing updatetrackdisplay';
|
1718
1743
|
var obj = trackData.track;
|
1719
1744
|
var load = function(){
|
1720
|
-
var
|
1721
|
-
|
1722
|
-
var ajax;
|
1723
|
-
if(obj.mode != 'disabled' && src && $.attr(track, 'src')){
|
1745
|
+
var error, ajax, src;
|
1746
|
+
if(obj.mode != 'disabled' && $.attr(track, 'src') && (src = $.prop(track, 'src'))){
|
1724
1747
|
$(mediaelem).unbind(loadEvents, load);
|
1725
|
-
|
1726
|
-
if(!obj.readyState){
|
1748
|
+
if(!trackData.readyState){
|
1727
1749
|
error = function(){
|
1728
|
-
|
1750
|
+
trackData.readyState = 3;
|
1729
1751
|
obj.cues = null;
|
1730
1752
|
obj.activeCues = obj.shimActiveCues = obj._shimActiveCues = null;
|
1731
1753
|
$(track).triggerHandler('error');
|
1732
1754
|
};
|
1733
|
-
|
1755
|
+
trackData.readyState = 1;
|
1734
1756
|
try {
|
1735
1757
|
obj.cues = mediaelement.createCueList();
|
1736
1758
|
obj.activeCues = obj.shimActiveCues = obj._shimActiveCues = mediaelement.createCueList();
|
@@ -1743,7 +1765,7 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
1743
1765
|
}
|
1744
1766
|
mediaelement.parseCaptions(text, obj, function(cues){
|
1745
1767
|
if(cues && 'length' in cues){
|
1746
|
-
|
1768
|
+
trackData.readyState = 2;
|
1747
1769
|
$(track).triggerHandler('load');
|
1748
1770
|
$(mediaelem).triggerHandler('updatetrackdisplay');
|
1749
1771
|
} else {
|
@@ -1756,20 +1778,18 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
1756
1778
|
});
|
1757
1779
|
} catch(er){
|
1758
1780
|
error();
|
1759
|
-
webshims.
|
1781
|
+
webshims.error(er);
|
1760
1782
|
}
|
1761
1783
|
}
|
1762
1784
|
}
|
1763
1785
|
};
|
1764
|
-
|
1786
|
+
trackData.readyState = 0;
|
1765
1787
|
obj.shimActiveCues = null;
|
1766
1788
|
obj._shimActiveCues = null;
|
1767
1789
|
obj.activeCues = null;
|
1768
1790
|
obj.cues = null;
|
1769
1791
|
$(mediaelem).unbind(loadEvents, load);
|
1770
|
-
$(track).unbind('checktrackmode', load);
|
1771
1792
|
$(mediaelem).on(loadEvents, load);
|
1772
|
-
$(track).on('checktrackmode', load);
|
1773
1793
|
if(_default){
|
1774
1794
|
obj.mode = showTracks[obj.kind] ? 'showing' : 'hidden';
|
1775
1795
|
load();
|
@@ -1811,9 +1831,9 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
1811
1831
|
});
|
1812
1832
|
});
|
1813
1833
|
}
|
1814
|
-
|
1834
|
+
obj.id = $(track).prop('id');
|
1815
1835
|
trackData = webshims.data(track, 'trackData', {track: obj});
|
1816
|
-
mediaelement.loadTextTrack(mediaelem, track, trackData, (
|
1836
|
+
mediaelement.loadTextTrack(mediaelem, track, trackData, isDefaultTrack(track));
|
1817
1837
|
} else {
|
1818
1838
|
if(supportTrackMod){
|
1819
1839
|
copyProps.forEach(function(copyProp){
|
@@ -1828,7 +1848,12 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
1828
1848
|
obj.mode = 'hidden';
|
1829
1849
|
obj.readyState = 2;
|
1830
1850
|
}
|
1851
|
+
if(obj.kind == 'subtitles' && !obj.language){
|
1852
|
+
webshims.error('you must provide a language for track in subtitles state');
|
1853
|
+
}
|
1854
|
+
obj.__wsmode = obj.mode;
|
1831
1855
|
}
|
1856
|
+
|
1832
1857
|
return obj;
|
1833
1858
|
};
|
1834
1859
|
|
@@ -2021,9 +2046,33 @@ modified for webshims
|
|
2021
2046
|
baseData.textTracks = [];
|
2022
2047
|
webshims.defineProperties(baseData.textTracks, {
|
2023
2048
|
onaddtrack: {value: null},
|
2024
|
-
onremovetrack: {value: null}
|
2049
|
+
onremovetrack: {value: null},
|
2050
|
+
onchange: {value: null},
|
2051
|
+
getTrackById: {
|
2052
|
+
value: function(id){
|
2053
|
+
var track = null;
|
2054
|
+
for(var i = 0; i < baseData.textTracks.length; i++){
|
2055
|
+
if(id == baseData.textTracks[i].id){
|
2056
|
+
track = baseData.textTracks[i];
|
2057
|
+
break;
|
2058
|
+
}
|
2059
|
+
}
|
2060
|
+
return track;
|
2061
|
+
}
|
2062
|
+
}
|
2025
2063
|
});
|
2026
2064
|
createEventTarget(baseData.textTracks);
|
2065
|
+
$(mediaelem).on('updatetrackdisplay', function(){
|
2066
|
+
var track;
|
2067
|
+
for(var i = 0; i < baseData.textTracks.length; i++){
|
2068
|
+
track = baseData.textTracks[i];
|
2069
|
+
if(track.__wsmode != track.mode){
|
2070
|
+
track.__wsmode = track.mode;
|
2071
|
+
$([ baseData.textTracks ]).triggerHandler('change');
|
2072
|
+
}
|
2073
|
+
}
|
2074
|
+
});
|
2075
|
+
|
2027
2076
|
}
|
2028
2077
|
return baseData.textTracks;
|
2029
2078
|
};
|
@@ -2078,10 +2127,6 @@ modified for webshims
|
|
2078
2127
|
if(!supportTrackMod){
|
2079
2128
|
trackData.track[name] = $.prop(this, copyProp);
|
2080
2129
|
}
|
2081
|
-
clearTimeout(trackData.changedTrackPropTimer);
|
2082
|
-
trackData.changedTrackPropTimer = setTimeout(function(){
|
2083
|
-
$(track).trigger('updatesubtitlestate');
|
2084
|
-
}, 1);
|
2085
2130
|
}
|
2086
2131
|
});
|
2087
2132
|
});
|
@@ -2118,7 +2163,8 @@ modified for webshims
|
|
2118
2163
|
},
|
2119
2164
|
readyState: {
|
2120
2165
|
get: function(){
|
2121
|
-
|
2166
|
+
|
2167
|
+
return (webshims.data(this, 'trackData') || {readyState: 0}).readyState;
|
2122
2168
|
},
|
2123
2169
|
writeable: false
|
2124
2170
|
},
|
@@ -2236,7 +2282,7 @@ modified for webshims
|
|
2236
2282
|
});
|
2237
2283
|
});
|
2238
2284
|
|
2239
|
-
if(Modernizr.
|
2285
|
+
if(Modernizr.texttrackapi){
|
2240
2286
|
$('video, audio').trigger('trackapichange');
|
2241
2287
|
}
|
2242
2288
|
});
|