webshims-rails 1.11.1 → 1.11.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 +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
|
});
|