@mux/mux-player 0.1.0-beta.23 → 0.1.0-beta.26

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.
Files changed (73) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README.md +38 -36
  3. package/coverage/lcov-report/index.html +31 -31
  4. package/coverage/lcov-report/src/dialog.ts.html +1 -1
  5. package/coverage/lcov-report/src/errors.ts.html +1 -1
  6. package/coverage/lcov-report/src/helpers.ts.html +30 -9
  7. package/coverage/lcov-report/src/html.ts.html +159 -9
  8. package/coverage/lcov-report/src/index.html +52 -52
  9. package/coverage/lcov-report/src/index.ts.html +156 -27
  10. package/coverage/lcov-report/src/logger.ts.html +1 -1
  11. package/coverage/lcov-report/src/media-chrome/dialog.ts.html +1 -1
  12. package/coverage/lcov-report/src/media-chrome/index.html +1 -1
  13. package/coverage/lcov-report/src/media-chrome/time-display.ts.html +1 -1
  14. package/coverage/lcov-report/src/media-theme-mux/icons/airplay.svg.html +1 -1
  15. package/coverage/lcov-report/src/media-theme-mux/icons/captions-off.svg.html +1 -1
  16. package/coverage/lcov-report/src/media-theme-mux/icons/captions-on.svg.html +1 -1
  17. package/coverage/lcov-report/src/media-theme-mux/icons/cast-enter.svg.html +103 -0
  18. package/coverage/lcov-report/src/media-theme-mux/icons/cast-exit.svg.html +106 -0
  19. package/coverage/lcov-report/src/media-theme-mux/icons/fullscreen-enter.svg.html +1 -1
  20. package/coverage/lcov-report/src/media-theme-mux/icons/fullscreen-exit.svg.html +1 -1
  21. package/coverage/lcov-report/src/media-theme-mux/icons/index.html +33 -3
  22. package/coverage/lcov-report/src/media-theme-mux/icons/pause.svg.html +1 -1
  23. package/coverage/lcov-report/src/media-theme-mux/icons/pip-enter.svg.html +1 -1
  24. package/coverage/lcov-report/src/media-theme-mux/icons/pip-exit.svg.html +1 -1
  25. package/coverage/lcov-report/src/media-theme-mux/icons/play.svg.html +1 -1
  26. package/coverage/lcov-report/src/media-theme-mux/icons/seek-backward.svg.html +1 -1
  27. package/coverage/lcov-report/src/media-theme-mux/icons/seek-forward.svg.html +1 -1
  28. package/coverage/lcov-report/src/media-theme-mux/icons/volume-high.svg.html +1 -1
  29. package/coverage/lcov-report/src/media-theme-mux/icons/volume-low.svg.html +1 -1
  30. package/coverage/lcov-report/src/media-theme-mux/icons/volume-medium.svg.html +1 -1
  31. package/coverage/lcov-report/src/media-theme-mux/icons/volume-off.svg.html +1 -1
  32. package/coverage/lcov-report/src/media-theme-mux/icons.ts.html +18 -6
  33. package/coverage/lcov-report/src/media-theme-mux/index.html +26 -26
  34. package/coverage/lcov-report/src/media-theme-mux/media-theme-mux.ts.html +342 -177
  35. package/coverage/lcov-report/src/media-theme-mux/styles.css.html +117 -18
  36. package/coverage/lcov-report/src/styles.css.html +1 -1
  37. package/coverage/lcov-report/src/template.ts.html +128 -65
  38. package/coverage/lcov-report/src/utils.ts.html +1 -1
  39. package/coverage/lcov-report/src/video-api.ts.html +91 -13
  40. package/coverage/lcov.info +1595 -1273
  41. package/dist/index.cjs.js +503 -343
  42. package/dist/index.mjs +296 -228
  43. package/dist/mux-player.js +556 -396
  44. package/dist/mux-player.mjs +556 -396
  45. package/dist/tsconfig.tsbuildinfo +1 -1
  46. package/dist/types/helpers.d.ts +1 -0
  47. package/dist/types/html.d.ts +5 -0
  48. package/dist/types/index.d.ts +5 -3
  49. package/dist/types/media-theme-mux/icons.d.ts +2 -0
  50. package/dist/types/media-theme-mux/media-theme-mux.d.ts +32 -12
  51. package/dist/types/template.d.ts +0 -1
  52. package/dist/types/video-api.d.ts +4 -0
  53. package/dist/types-ts3.4/helpers.d.ts +1 -0
  54. package/dist/types-ts3.4/html.d.ts +5 -0
  55. package/dist/types-ts3.4/index.d.ts +4 -3
  56. package/dist/types-ts3.4/media-theme-mux/icons.d.ts +2 -0
  57. package/dist/types-ts3.4/media-theme-mux/media-theme-mux.d.ts +32 -12
  58. package/dist/types-ts3.4/template.d.ts +0 -1
  59. package/dist/types-ts3.4/video-api.d.ts +2 -0
  60. package/package.json +5 -5
  61. package/src/helpers.ts +7 -0
  62. package/src/html.ts +50 -0
  63. package/src/index.ts +58 -15
  64. package/src/media-theme-mux/icons/cast-enter.svg +6 -0
  65. package/src/media-theme-mux/icons/cast-exit.svg +7 -0
  66. package/src/media-theme-mux/icons.ts +4 -0
  67. package/src/media-theme-mux/media-theme-mux.ts +179 -124
  68. package/src/media-theme-mux/styles.css +47 -14
  69. package/src/template.ts +78 -57
  70. package/src/types.d.ts +3 -0
  71. package/src/video-api.ts +27 -1
  72. package/test/player.test.js +34 -0
  73. package/test/template.test.js +6 -4
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">73.7% </span>
26
+ <span class="strong">71.56% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>681/924</span>
28
+ <span class='fraction'>692/967</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">80% </span>
33
+ <span class="strong">77.57% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>84/105</span>
35
+ <span class='fraction'>83/107</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">66.66% </span>
40
+ <span class="strong">62.65% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>52/78</span>
42
+ <span class='fraction'>52/83</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">73.7% </span>
47
+ <span class="strong">71.56% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>681/924</span>
49
+ <span class='fraction'>692/967</span>
50
50
  </div>
51
51
 
52
52
 
@@ -987,7 +987,53 @@
987
987
  <a name='L922'></a><a href='#L922'>922</a>
988
988
  <a name='L923'></a><a href='#L923'>923</a>
989
989
  <a name='L924'></a><a href='#L924'>924</a>
990
- <a name='L925'></a><a href='#L925'>925</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
990
+ <a name='L925'></a><a href='#L925'>925</a>
991
+ <a name='L926'></a><a href='#L926'>926</a>
992
+ <a name='L927'></a><a href='#L927'>927</a>
993
+ <a name='L928'></a><a href='#L928'>928</a>
994
+ <a name='L929'></a><a href='#L929'>929</a>
995
+ <a name='L930'></a><a href='#L930'>930</a>
996
+ <a name='L931'></a><a href='#L931'>931</a>
997
+ <a name='L932'></a><a href='#L932'>932</a>
998
+ <a name='L933'></a><a href='#L933'>933</a>
999
+ <a name='L934'></a><a href='#L934'>934</a>
1000
+ <a name='L935'></a><a href='#L935'>935</a>
1001
+ <a name='L936'></a><a href='#L936'>936</a>
1002
+ <a name='L937'></a><a href='#L937'>937</a>
1003
+ <a name='L938'></a><a href='#L938'>938</a>
1004
+ <a name='L939'></a><a href='#L939'>939</a>
1005
+ <a name='L940'></a><a href='#L940'>940</a>
1006
+ <a name='L941'></a><a href='#L941'>941</a>
1007
+ <a name='L942'></a><a href='#L942'>942</a>
1008
+ <a name='L943'></a><a href='#L943'>943</a>
1009
+ <a name='L944'></a><a href='#L944'>944</a>
1010
+ <a name='L945'></a><a href='#L945'>945</a>
1011
+ <a name='L946'></a><a href='#L946'>946</a>
1012
+ <a name='L947'></a><a href='#L947'>947</a>
1013
+ <a name='L948'></a><a href='#L948'>948</a>
1014
+ <a name='L949'></a><a href='#L949'>949</a>
1015
+ <a name='L950'></a><a href='#L950'>950</a>
1016
+ <a name='L951'></a><a href='#L951'>951</a>
1017
+ <a name='L952'></a><a href='#L952'>952</a>
1018
+ <a name='L953'></a><a href='#L953'>953</a>
1019
+ <a name='L954'></a><a href='#L954'>954</a>
1020
+ <a name='L955'></a><a href='#L955'>955</a>
1021
+ <a name='L956'></a><a href='#L956'>956</a>
1022
+ <a name='L957'></a><a href='#L957'>957</a>
1023
+ <a name='L958'></a><a href='#L958'>958</a>
1024
+ <a name='L959'></a><a href='#L959'>959</a>
1025
+ <a name='L960'></a><a href='#L960'>960</a>
1026
+ <a name='L961'></a><a href='#L961'>961</a>
1027
+ <a name='L962'></a><a href='#L962'>962</a>
1028
+ <a name='L963'></a><a href='#L963'>963</a>
1029
+ <a name='L964'></a><a href='#L964'>964</a>
1030
+ <a name='L965'></a><a href='#L965'>965</a>
1031
+ <a name='L966'></a><a href='#L966'>966</a>
1032
+ <a name='L967'></a><a href='#L967'>967</a>
1033
+ <a name='L968'></a><a href='#L968'>968</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
1034
+ <span class="cline-any cline-yes">2x</span>
1035
+ <span class="cline-any cline-yes">2x</span>
1036
+ <span class="cline-any cline-yes">2x</span>
991
1037
  <span class="cline-any cline-yes">2x</span>
992
1038
  <span class="cline-any cline-yes">2x</span>
993
1039
  <span class="cline-any cline-yes">2x</span>
@@ -1028,7 +1074,6 @@
1028
1074
  <span class="cline-any cline-yes">2x</span>
1029
1075
  <span class="cline-any cline-yes">2x</span>
1030
1076
  <span class="cline-any cline-yes">2x</span>
1031
- <span class="cline-any cline-yes">1x</span>
1032
1077
  <span class="cline-any cline-yes">2x</span>
1033
1078
  <span class="cline-any cline-yes">2x</span>
1034
1079
  <span class="cline-any cline-yes">2x</span>
@@ -1166,16 +1211,22 @@
1166
1211
  <span class="cline-any cline-yes">2x</span>
1167
1212
  <span class="cline-any cline-yes">2x</span>
1168
1213
  <span class="cline-any cline-yes">2x</span>
1214
+ <span class="cline-any cline-yes">2x</span>
1215
+ <span class="cline-any cline-no">&nbsp;</span>
1169
1216
  <span class="cline-any cline-no">&nbsp;</span>
1170
1217
  <span class="cline-any cline-yes">2x</span>
1171
1218
  <span class="cline-any cline-yes">2x</span>
1172
1219
  <span class="cline-any cline-yes">2x</span>
1173
1220
  <span class="cline-any cline-yes">2x</span>
1221
+ <span class="cline-any cline-yes">2x</span>
1222
+ <span class="cline-any cline-no">&nbsp;</span>
1174
1223
  <span class="cline-any cline-no">&nbsp;</span>
1175
1224
  <span class="cline-any cline-yes">2x</span>
1176
1225
  <span class="cline-any cline-yes">2x</span>
1177
1226
  <span class="cline-any cline-yes">2x</span>
1178
1227
  <span class="cline-any cline-yes">2x</span>
1228
+ <span class="cline-any cline-yes">2x</span>
1229
+ <span class="cline-any cline-no">&nbsp;</span>
1179
1230
  <span class="cline-any cline-no">&nbsp;</span>
1180
1231
  <span class="cline-any cline-yes">2x</span>
1181
1232
  <span class="cline-any cline-yes">2x</span>
@@ -1590,6 +1641,17 @@
1590
1641
  <span class="cline-any cline-no">&nbsp;</span>
1591
1642
  <span class="cline-any cline-no">&nbsp;</span>
1592
1643
  <span class="cline-any cline-no">&nbsp;</span>
1644
+ <span class="cline-any cline-no">&nbsp;</span>
1645
+ <span class="cline-any cline-no">&nbsp;</span>
1646
+ <span class="cline-any cline-no">&nbsp;</span>
1647
+ <span class="cline-any cline-no">&nbsp;</span>
1648
+ <span class="cline-any cline-no">&nbsp;</span>
1649
+ <span class="cline-any cline-no">&nbsp;</span>
1650
+ <span class="cline-any cline-no">&nbsp;</span>
1651
+ <span class="cline-any cline-no">&nbsp;</span>
1652
+ <span class="cline-any cline-no">&nbsp;</span>
1653
+ <span class="cline-any cline-no">&nbsp;</span>
1654
+ <span class="cline-any cline-no">&nbsp;</span>
1593
1655
  <span class="cline-any cline-yes">2x</span>
1594
1656
  <span class="cline-any cline-yes">2x</span>
1595
1657
  <span class="cline-any cline-yes">2x</span>
@@ -1832,6 +1894,14 @@
1832
1894
  <span class="cline-any cline-no">&nbsp;</span>
1833
1895
  <span class="cline-any cline-no">&nbsp;</span>
1834
1896
  <span class="cline-any cline-no">&nbsp;</span>
1897
+ <span class="cline-any cline-no">&nbsp;</span>
1898
+ <span class="cline-any cline-no">&nbsp;</span>
1899
+ <span class="cline-any cline-no">&nbsp;</span>
1900
+ <span class="cline-any cline-no">&nbsp;</span>
1901
+ <span class="cline-any cline-no">&nbsp;</span>
1902
+ <span class="cline-any cline-no">&nbsp;</span>
1903
+ <span class="cline-any cline-no">&nbsp;</span>
1904
+ <span class="cline-any cline-no">&nbsp;</span>
1835
1905
  <span class="cline-any cline-yes">2x</span>
1836
1906
  <span class="cline-any cline-yes">2x</span>
1837
1907
  <span class="cline-any cline-yes">2x</span>
@@ -1899,6 +1969,22 @@
1899
1969
  <span class="cline-any cline-yes">2x</span>
1900
1970
  <span class="cline-any cline-yes">2x</span>
1901
1971
  <span class="cline-any cline-yes">2x</span>
1972
+ <span class="cline-any cline-no">&nbsp;</span>
1973
+ <span class="cline-any cline-no">&nbsp;</span>
1974
+ <span class="cline-any cline-no">&nbsp;</span>
1975
+ <span class="cline-any cline-yes">2x</span>
1976
+ <span class="cline-any cline-yes">2x</span>
1977
+ <span class="cline-any cline-yes">2x</span>
1978
+ <span class="cline-any cline-no">&nbsp;</span>
1979
+ <span class="cline-any cline-no">&nbsp;</span>
1980
+ <span class="cline-any cline-no">&nbsp;</span>
1981
+ <span class="cline-any cline-no">&nbsp;</span>
1982
+ <span class="cline-any cline-no">&nbsp;</span>
1983
+ <span class="cline-any cline-no">&nbsp;</span>
1984
+ <span class="cline-any cline-no">&nbsp;</span>
1985
+ <span class="cline-any cline-yes">2x</span>
1986
+ <span class="cline-any cline-yes">2x</span>
1987
+ <span class="cline-any cline-yes">2x</span>
1902
1988
  <span class="cline-any cline-yes">2x</span>
1903
1989
  <span class="cline-any cline-yes">2x</span>
1904
1990
  <span class="cline-any cline-yes">2x</span>
@@ -1915,9 +2001,8 @@
1915
2001
  import '@mux/playback-core';
1916
2002
  // @ts-ignore
1917
2003
  import { MediaController } from 'media-chrome';
1918
- import MediaThemeMux from './media-theme-mux/media-theme-mux';
1919
2004
  import MuxVideoElement, { MediaError } from '@mux/mux-video';
1920
- import { Metadata, StreamTypes } from '@mux/playback-core';
2005
+ import { Metadata, StreamTypes, addTextTrack, removeTextTrack } from '@mux/playback-core';
1921
2006
  import VideoApiElement, { initVideoApi } from './video-api';
1922
2007
  import { getPlayerVersion, isInLiveWindow, seekToLive, toPropName } from './helpers';
1923
2008
  import { template } from './template';
@@ -1934,8 +2019,6 @@ export type Tokens = {
1934
2019
  storyboard?: string;
1935
2020
  };
1936
2021
  &nbsp;
1937
- type MediaController = Element &amp; { media: HTMLVideoElement };
1938
- &nbsp;
1939
2022
  const streamTypeValues = Object.values(StreamTypes);
1940
2023
  &nbsp;
1941
2024
  const SMALL_BREAKPOINT = 700;
@@ -1988,6 +2071,7 @@ const PlayerAttributes = {
1988
2071
  STORYBOARD_TOKEN: 'storyboard-token',
1989
2072
  THUMBNAIL_TIME: 'thumbnail-time',
1990
2073
  AUDIO: 'audio',
2074
+ NOHOTKEYS: 'nohotkeys',
1991
2075
  };
1992
2076
  &nbsp;
1993
2077
  function getProps(el: MuxPlayerElement, state?: any): MuxTemplateProps {
@@ -1998,10 +2082,14 @@ function getProps(el: MuxPlayerElement, state?: any): MuxTemplateProps {
1998
2082
  // it's used if/when it's been explicitly set "from the outside"
1999
2083
  // (See template.ts for additional context) (CJP)
2000
2084
  poster: el.getAttribute('poster'),
2085
+ theme: el.getAttribute('theme'),
2001
2086
  thumbnailTime: !el.tokens.thumbnail &amp;&amp; el.thumbnailTime,
2002
2087
  autoplay: el.autoplay,
2003
2088
  crossOrigin: el.crossOrigin,
2004
2089
  loop: el.loop,
2090
+ // NOTE: Renaming internal prop due to state (sometimes derived from attributeChangedCallback attr values)
2091
+ // overwriting prop value (type mismatch: string vs. boolean) (CJP)
2092
+ noHotKeys: el.hasAttribute(PlayerAttributes.NOHOTKEYS),
2005
2093
  muted: el.muted,
2006
2094
  paused: el.paused,
2007
2095
  playsInline: el.playsInline,
@@ -2088,19 +2176,25 @@ class MuxPlayerElement extends VideoApiElement {
2088
2176
  // Fixes a bug in React where mux-player's CE children were not upgraded yet.
2089
2177
  // These lines ensure the rendered mux-video and media-controller are upgraded,
2090
2178
  // even before they are connected to the main document.
2091
- customElements.upgrade(this.theme as Node);
2092
- if (!(this.theme instanceof MediaThemeMux)) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
2093
- <span class="cstat-no" title="statement not covered" > logger.error('&lt;media-theme-mux&gt; failed to upgrade!');</span>
2179
+ try {
2180
+ customElements.upgrade(this.theme as Node);
2181
+ if (!(this.theme instanceof HTMLElement)) <span class="branch-0 cbranch-no" title="branch not covered" >throw <span class="branch-0 cbranch-no" title="branch not covered" >'';</span></span>
2182
+ <span class="cstat-no" title="statement not covered" > } catch (error) {</span>
2183
+ <span class="cstat-no" title="statement not covered" > logger.error(`&lt;${this.theme?.localName}&gt; failed to upgrade!`);</span>
2094
2184
  }
2095
2185
  &nbsp;
2096
- customElements.upgrade(this.media as Node);
2097
- if (!(this.media instanceof MuxVideoElement)) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
2186
+ try {
2187
+ customElements.upgrade(this.media as Node);
2188
+ if (!(this.media instanceof MuxVideoElement)) <span class="branch-0 cbranch-no" title="branch not covered" >throw <span class="branch-0 cbranch-no" title="branch not covered" >'';</span></span>
2189
+ <span class="cstat-no" title="statement not covered" > } catch (error) {</span>
2098
2190
  <span class="cstat-no" title="statement not covered" > logger.error('&lt;mux-video&gt; failed to upgrade!');</span>
2099
2191
  }
2100
2192
  &nbsp;
2101
- customElements.upgrade(this.mediaController as Node);
2102
- if (!(this.mediaController instanceof MediaController)) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
2103
- <span class="cstat-no" title="statement not covered" > logger.error('&lt;media-controller&gt; failed to upgrade!');</span>
2193
+ try {
2194
+ customElements.upgrade(this.mediaController as Node);
2195
+ if (!(this.mediaController instanceof MediaController)) <span class="branch-0 cbranch-no" title="branch not covered" >throw <span class="branch-0 cbranch-no" title="branch not covered" >'';</span></span>
2196
+ <span class="cstat-no" title="statement not covered" > } catch (error) {</span>
2197
+ <span class="cstat-no" title="statement not covered" > logger.error(`&lt;media-controller&gt; failed to upgrade!`);</span>
2104
2198
  }
2105
2199
  &nbsp;
2106
2200
  initVideoApi(this);
@@ -2458,7 +2552,7 @@ class MuxPlayerElement extends VideoApiElement {
2458
2552
  <span class="cstat-no" title="statement not covered" > file: 'invalid-stream-type.md',</span>
2459
2553
  <span class="cstat-no" title="statement not covered" > message: String(</span>
2460
2554
  <span class="cstat-no" title="statement not covered" > i18n(</span>
2461
- <span class="cstat-no" title="statement not covered" > `No stream-type value supplied. Defaulting to \`on-demand\`. Please provide stream-type as either: \`on-demand\`, \`live\` or \`ll-live\``</span>
2555
+ <span class="cstat-no" title="statement not covered" > `No stream-type value supplied. Defaulting to \`on-demand\`. Please provide stream-type as either: \`on-demand\`, \`live\`, \`ll-live\`, \`live:dvr\`, or \`ll-live:dvr\``</span>
2462
2556
  )
2463
2557
  ),
2464
2558
  });
@@ -2466,7 +2560,7 @@ class MuxPlayerElement extends VideoApiElement {
2466
2560
  <span class="cstat-no" title="statement not covered" > logger.devlog({</span>
2467
2561
  <span class="cstat-no" title="statement not covered" > file: 'invalid-stream-type.md',</span>
2468
2562
  <span class="cstat-no" title="statement not covered" > message: i18n(</span>
2469
- <span class="cstat-no" title="statement not covered" > `Invalid stream-type value supplied: \`{streamType}\`. Please provide stream-type as either: \`on-demand\`, \`live\` or \`ll-live\``</span>
2563
+ <span class="cstat-no" title="statement not covered" > `Invalid stream-type value supplied: \`{streamType}\`. Please provide stream-type as either: \`on-demand\`, \`live\`, \`ll-live\`, \`live:dvr\`, or \`ll-live:dvr\``</span>
2470
2564
  <span class="cstat-no" title="statement not covered" > ).format({ streamType: this.streamType }),</span>
2471
2565
  });
2472
2566
  }
@@ -2513,7 +2607,18 @@ class MuxPlayerElement extends VideoApiElement {
2513
2607
  <span class="cstat-no" title="statement not covered" > if (!val) {</span>
2514
2608
  <span class="cstat-no" title="statement not covered" > this.removeAttribute(PlayerAttributes.AUDIO);</span>
2515
2609
  <span class="cstat-no" title="statement not covered" > }</span>
2516
- <span class="cstat-no" title="statement not covered" > this.setAttribute(PlayerAttributes.AUDIO, '');</span>
2610
+ <span class="cstat-no" title="statement not covered" > this.setAttribute(PlayerAttributes.AUDIO, <span class="fstat-no" title="function not covered" >'');</span></span>
2611
+ <span class="cstat-no" title="statement not covered" > }</span>
2612
+ <span class="cstat-no" title="statement not covered" ></span>
2613
+ <span class="cstat-no" title="statement not covered" > get nohotkeys() {</span>
2614
+ <span class="cstat-no" title="statement not covered" > return this.hasAttribute(PlayerAttributes.<span class="fstat-no" title="function not covered" >NOHOTKEYS);</span></span>
2615
+ <span class="cstat-no" title="statement not covered" > }</span>
2616
+ <span class="cstat-no" title="statement not covered" ></span>
2617
+ <span class="cstat-no" title="statement not covered" > set nohotkeys(val: boolean) {</span>
2618
+ <span class="cstat-no" title="statement not covered" > if (!val) {</span>
2619
+ <span class="cstat-no" title="statement not covered" > this.removeAttribute(PlayerAttributes.NOHOTKEYS);</span>
2620
+ <span class="cstat-no" title="statement not covered" > }</span>
2621
+ <span class="cstat-no" title="statement not covered" > this.setAttribute(PlayerAttributes.NOHOTKEYS, '');</span>
2517
2622
  }
2518
2623
  &nbsp;
2519
2624
  /**
@@ -2755,7 +2860,15 @@ class MuxPlayerElement extends VideoApiElement {
2755
2860
  <span class="cstat-no" title="statement not covered" > * Set the metadata object for Mux Data.</span>
2756
2861
  <span class="cstat-no" title="statement not covered" > */</span>
2757
2862
  <span class="cstat-no" title="statement not covered" > set metadata(val: Readonly&lt;Metadata&gt; | undefined) {</span>
2758
- <span class="cstat-no" title="statement not covered" > if (this.media) this.media.metadata = val;</span>
2863
+ <span class="cstat-no" title="statement not covered" > if (!this.#isInit) {</span>
2864
+ <span class="cstat-no" title="statement not covered" > this.#init();</span>
2865
+ <span class="cstat-no" title="statement not covered" > }</span>
2866
+ <span class="cstat-no" title="statement not covered" > // NOTE: This condition should never be met. If it is, there is a bug (CJP)</span>
2867
+ <span class="cstat-no" title="statement not covered" > if (!this.media) {</span>
2868
+ <span class="cstat-no" title="statement not covered" > logger.error('underlying media element missing when trying to set metadata. metadata will not be set.');</span>
2869
+ <span class="cstat-no" title="statement not covered" > return;</span>
2870
+ <span class="cstat-no" title="statement not covered" > }</span>
2871
+ <span class="cstat-no" title="statement not covered" > this.media.metadata = val;</span>
2759
2872
  }
2760
2873
  &nbsp;
2761
2874
  /**
@@ -2821,6 +2934,22 @@ class MuxPlayerElement extends VideoApiElement {
2821
2934
  <span class="cstat-no" title="statement not covered" > set storyboardToken(val) {</span>
2822
2935
  <span class="cstat-no" title="statement not covered" > this.setAttribute(PlayerAttributes.STORYBOARD_TOKEN, `${val}`);</span>
2823
2936
  }
2937
+ &nbsp;
2938
+ <span class="fstat-no" title="function not covered" > addTextTrack(kind: TextTrackKind, label: string, lang?: string, id?: string) {</span>
2939
+ <span class="cstat-no" title="statement not covered" > const mediaEl = this.media?.nativeEl;</span>
2940
+ <span class="cstat-no" title="statement not covered" > if (!mediaEl) return;</span>
2941
+ <span class="cstat-no" title="statement not covered" > return addTextTrack(mediaEl, kind, label, lang, id);</span>
2942
+ }
2943
+ &nbsp;
2944
+ <span class="fstat-no" title="function not covered" > removeTextTrack(track: TextTrack) {</span>
2945
+ <span class="cstat-no" title="statement not covered" > const mediaEl = this.media?.nativeEl;</span>
2946
+ <span class="cstat-no" title="statement not covered" > if (!mediaEl) return;</span>
2947
+ <span class="cstat-no" title="statement not covered" > return removeTextTrack(mediaEl, <span class="fstat-no" title="function not covered" >track);</span></span>
2948
+ <span class="cstat-no" title="statement not covered" > }</span>
2949
+ <span class="cstat-no" title="statement not covered" ></span>
2950
+ <span class="cstat-no" title="statement not covered" > get textTracks() {</span>
2951
+ <span class="cstat-no" title="statement not covered" > return this.media?.textTracks;</span>
2952
+ }
2824
2953
  }
2825
2954
  &nbsp;
2826
2955
  export function getVideoAttribute(el: MuxPlayerElement, name: string) {
@@ -2842,7 +2971,7 @@ export default MuxPlayerElement;
2842
2971
  <div class='footer quiet pad2 space-top1 center small'>
2843
2972
  Code coverage generated by
2844
2973
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
2845
- at Mon Jul 11 2022 16:36:07 GMT+0000 (Coordinated Universal Time)
2974
+ at Wed Aug 03 2022 19:24:53 GMT+0000 (Coordinated Universal Time)
2846
2975
  </div>
2847
2976
  <script src="../prettify.js"></script>
2848
2977
  <script>
@@ -148,7 +148,7 @@ export <span class="fstat-no" title="function not covered" >function devlog(opts
148
148
  <div class='footer quiet pad2 space-top1 center small'>
149
149
  Code coverage generated by
150
150
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
151
- at Mon Jul 11 2022 16:36:07 GMT+0000 (Coordinated Universal Time)
151
+ at Wed Aug 03 2022 19:24:53 GMT+0000 (Coordinated Universal Time)
152
152
  </div>
153
153
  <script src="../prettify.js"></script>
154
154
  <script>
@@ -646,7 +646,7 @@ export default MediaDialog;
646
646
  <div class='footer quiet pad2 space-top1 center small'>
647
647
  Code coverage generated by
648
648
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
649
- at Mon Jul 11 2022 16:36:07 GMT+0000 (Coordinated Universal Time)
649
+ at Wed Aug 03 2022 19:24:53 GMT+0000 (Coordinated Universal Time)
650
650
  </div>
651
651
  <script src="../../prettify.js"></script>
652
652
  <script>
@@ -116,7 +116,7 @@
116
116
  <div class='footer quiet pad2 space-top1 center small'>
117
117
  Code coverage generated by
118
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
- at Mon Jul 11 2022 16:36:07 GMT+0000 (Coordinated Universal Time)
119
+ at Wed Aug 03 2022 19:24:53 GMT+0000 (Coordinated Universal Time)
120
120
  </div>
121
121
  <script src="../../prettify.js"></script>
122
122
  <script>
@@ -280,7 +280,7 @@ export default MxpTimeDisplay;
280
280
  <div class='footer quiet pad2 space-top1 center small'>
281
281
  Code coverage generated by
282
282
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
283
- at Mon Jul 11 2022 16:36:07 GMT+0000 (Coordinated Universal Time)
283
+ at Wed Aug 03 2022 19:24:53 GMT+0000 (Coordinated Universal Time)
284
284
  </div>
285
285
  <script src="../../prettify.js"></script>
286
286
  <script>
@@ -94,7 +94,7 @@
94
94
  <div class='footer quiet pad2 space-top1 center small'>
95
95
  Code coverage generated by
96
96
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
97
- at Mon Jul 11 2022 16:36:07 GMT+0000 (Coordinated Universal Time)
97
+ at Wed Aug 03 2022 19:24:53 GMT+0000 (Coordinated Universal Time)
98
98
  </div>
99
99
  <script src="../../../prettify.js"></script>
100
100
  <script>
@@ -85,7 +85,7 @@
85
85
  <div class='footer quiet pad2 space-top1 center small'>
86
86
  Code coverage generated by
87
87
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
88
- at Mon Jul 11 2022 16:36:07 GMT+0000 (Coordinated Universal Time)
88
+ at Wed Aug 03 2022 19:24:53 GMT+0000 (Coordinated Universal Time)
89
89
  </div>
90
90
  <script src="../../../prettify.js"></script>
91
91
  <script>
@@ -85,7 +85,7 @@
85
85
  <div class='footer quiet pad2 space-top1 center small'>
86
86
  Code coverage generated by
87
87
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
88
- at Mon Jul 11 2022 16:36:07 GMT+0000 (Coordinated Universal Time)
88
+ at Wed Aug 03 2022 19:24:53 GMT+0000 (Coordinated Universal Time)
89
89
  </div>
90
90
  <script src="../../../prettify.js"></script>
91
91
  <script>
@@ -0,0 +1,103 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/media-theme-mux/icons/cast-enter.svg</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../../prettify.css" />
9
+ <link rel="stylesheet" href="../../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../../index.html">All files</a> / <a href="index.html">src/media-theme-mux/icons</a> cast-enter.svg</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">100% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>6/6</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">100% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>0/0</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">100% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>0/0</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">100% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>6/6</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line high'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">3x</span>
73
+ <span class="cline-any cline-yes">3x</span>
74
+ <span class="cline-any cline-yes">3x</span>
75
+ <span class="cline-any cline-yes">3x</span>
76
+ <span class="cline-any cline-yes">3x</span>
77
+ <span class="cline-any cline-yes">3x</span>
78
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">&lt;svg aria-hidden="true" viewBox="0 0 20 18" slot="enter"&gt;
79
+ &lt;path d="M0 12.5V14C2.2056 14 4 15.7944 4 18H5.5C5.5 14.9624 3.0376 12.5 0 12.5Z"/&gt;
80
+ &lt;path d="M0 15.5V18H2.5C2.5 16.6193 1.3807 15.5 0 15.5Z"/&gt;
81
+ &lt;path d="M0 9.5V11C3.8599 11 7 14.1402 7 18H8.5C8.5 13.3055 4.6945 9.5 0 9.5Z"/&gt;
82
+ &lt;path d="M19 -0.000213623H1C0.4478 -0.000213623 0 0.447386 0 0.999786V7.98359C0.4243 7.98359 0.8396 8.01859 1.25 8.06979V1.24979H18.75V16.75H9.9302C9.9814 17.1604 10.0164 17.5757 10.0164 18H19C19.5523 18 20 17.5522 20 17V0.999786C20 0.447386 19.5523 -0.000213623 19 -0.000213623Z"/&gt;
83
+ &lt;/svg&gt;
84
+ &nbsp;</pre></td></tr></table></pre>
85
+
86
+ <div class='push'></div><!-- for sticky footer -->
87
+ </div><!-- /wrapper -->
88
+ <div class='footer quiet pad2 space-top1 center small'>
89
+ Code coverage generated by
90
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
91
+ at Wed Aug 03 2022 19:24:53 GMT+0000 (Coordinated Universal Time)
92
+ </div>
93
+ <script src="../../../prettify.js"></script>
94
+ <script>
95
+ window.onload = function () {
96
+ prettyPrint();
97
+ };
98
+ </script>
99
+ <script src="../../../sorter.js"></script>
100
+ <script src="../../../block-navigation.js"></script>
101
+ </body>
102
+ </html>
103
+
@@ -0,0 +1,106 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/media-theme-mux/icons/cast-exit.svg</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../../prettify.css" />
9
+ <link rel="stylesheet" href="../../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../../index.html">All files</a> / <a href="index.html">src/media-theme-mux/icons</a> cast-exit.svg</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">100% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>7/7</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">100% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>0/0</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">100% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>0/0</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">100% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>7/7</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line high'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">3x</span>
74
+ <span class="cline-any cline-yes">3x</span>
75
+ <span class="cline-any cline-yes">3x</span>
76
+ <span class="cline-any cline-yes">3x</span>
77
+ <span class="cline-any cline-yes">3x</span>
78
+ <span class="cline-any cline-yes">3x</span>
79
+ <span class="cline-any cline-yes">3x</span>
80
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">&lt;svg aria-hidden="true" viewBox="0 0 20 18" slot="exit"&gt;
81
+ &lt;path d="M0 12.5V14C2.2056 14 4 15.7944 4 18H5.5C5.5 14.9624 3.0376 12.5 0 12.5Z" /&gt;
82
+ &lt;path d="M0 15.5V18H2.5C2.5 16.6193 1.3807 15.5 0 15.5Z" /&gt;
83
+ &lt;path d="M0 9.5V11C3.8599 11 7 14.1402 7 18H8.5C8.5 13.3055 4.6945 9.5 0 9.5Z" /&gt;
84
+ &lt;path d="M19 -0.000198364H1C0.4478 -0.000198364 0 0.447402 0 0.999802V7.9836C0.4243 7.9836 0.8396 8.0186 1.25 8.0698V1.2498H18.75V16.75H9.9302C9.9814 17.1604 10.0164 17.5757 10.0164 18H19C19.5523 18 20 17.5522 20 17V0.999802C20 0.447402 19.5523 -0.000198364 19 -0.000198364Z" /&gt;
85
+ &lt;path d="M17.5 2.4998H2.5V8.311C6.0193 9.2171 8.783 11.9807 9.689 15.5001H17.5V2.4998Z" /&gt;
86
+ &lt;/svg&gt;
87
+ &nbsp;</pre></td></tr></table></pre>
88
+
89
+ <div class='push'></div><!-- for sticky footer -->
90
+ </div><!-- /wrapper -->
91
+ <div class='footer quiet pad2 space-top1 center small'>
92
+ Code coverage generated by
93
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
94
+ at Wed Aug 03 2022 19:24:53 GMT+0000 (Coordinated Universal Time)
95
+ </div>
96
+ <script src="../../../prettify.js"></script>
97
+ <script>
98
+ window.onload = function () {
99
+ prettyPrint();
100
+ };
101
+ </script>
102
+ <script src="../../../sorter.js"></script>
103
+ <script src="../../../block-navigation.js"></script>
104
+ </body>
105
+ </html>
106
+