ravnur-player-public 3.4.4 → 3.4.6

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 (260) hide show
  1. package/dist/RavnurMediaPlayer.min.js +1 -1
  2. package/dist/cdn/RavnurMediaPlayer.min.js +1 -1
  3. package/package.json +72 -68
  4. package/.eslintignore +0 -7
  5. package/.eslintrc.js +0 -206
  6. package/.flowconfig +0 -3
  7. package/.vscode/extensions.json +0 -7
  8. package/.vscode/launch.json +0 -37
  9. package/.vscode/settings.json +0 -4
  10. package/README-Private.md +0 -54
  11. package/babel.config.js +0 -28
  12. package/bitbucket-pipelines.yml +0 -61
  13. package/cert.pem +0 -23
  14. package/demo/BaseM.mp4 +0 -0
  15. package/demo/HD.mp4 +0 -0
  16. package/demo/annotations.json +0 -50
  17. package/demo/annotations_ge.json +0 -50
  18. package/demo/base.mp3 +0 -0
  19. package/demo/cc_2125en.vtt +0 -4958
  20. package/demo/cc_en.vtt +0 -171
  21. package/demo/cc_ge.vtt +0 -178
  22. package/demo/chapters_en.vtt +0 -38
  23. package/demo/chapters_ge.vtt +0 -5
  24. package/demo/chapters_ge1.json +0 -23
  25. package/demo/hls/audio/stereo/en/128kbit.m3u8 +0 -912
  26. package/demo/hls/audio/stereo/none/128kbit.m3u8 +0 -912
  27. package/demo/hls/audio/surround/en/320kbit.m3u8 +0 -912
  28. package/demo/hls/playlist.m3u8 +0 -31
  29. package/demo/hls/video/10000kbit.m3u8 +0 -894
  30. package/demo/hls/video/1100kbit.m3u8 +0 -894
  31. package/demo/hls/video/1500kbit.m3u8 +0 -894
  32. package/demo/hls/video/250kbit.m3u8 +0 -894
  33. package/demo/hls/video/4000kbit.m3u8 +0 -894
  34. package/demo/hls/video/500kbit.m3u8 +0 -894
  35. package/demo/hls/video/6000kbit.m3u8 +0 -894
  36. package/demo/hls/video/800kbit.m3u8 +0 -894
  37. package/demo/hls.js +0 -5
  38. package/demo/hls.js.map +0 -1
  39. package/demo/hls.min.js +0 -2
  40. package/demo/hls.min.js.map +0 -1
  41. package/demo/playlist.m3u8 +0 -31
  42. package/demo/ravnur-flash-audio.swf +0 -0
  43. package/demo/ravnur-flash-video-hls.swf +0 -0
  44. package/demo/ravnur-flash-video.swf +0 -0
  45. package/demo/shaka/shaka-player.foo.debug.d.ts +0 -4532
  46. package/demo/shaka/shaka-player.foo.debug.externs.js +0 -3886
  47. package/demo/shaka/shaka-player.foo.debug.js +0 -1746
  48. package/demo/shaka/shaka-player.foo.debug.map +0 -8
  49. package/demo/shaka/wrapper.js +0 -7
  50. package/demo/test.html +0 -458
  51. package/jest.config.js +0 -4
  52. package/key.pem +0 -27
  53. package/lib/es5.js +0 -344
  54. package/lib/images/Spinner-small.gif +0 -0
  55. package/lib/images/close.png +0 -0
  56. package/lib/images/ic_check_box_black_24dp_1x.png +0 -0
  57. package/lib/images/ic_check_box_outline_blank_black_24dp_1x.png +0 -0
  58. package/lib/images/ic_chevron_left_white_24dp_1x.png +0 -0
  59. package/lib/images/ic_chevron_right_white_24dp_1x.png +0 -0
  60. package/lib/images/ic_closed_caption_white_24dp_1x.png +0 -0
  61. package/lib/images/ic_fast_forward_white_24dp_1x.png +0 -0
  62. package/lib/images/ic_fast_rewind_white_24dp_1x.png +0 -0
  63. package/lib/images/ic_fullscreen_exit_white_24dp_1x.png +0 -0
  64. package/lib/images/ic_fullscreen_white_24dp_1x.png +0 -0
  65. package/lib/images/ic_hd_white_24dp_1x.png +0 -0
  66. package/lib/images/ic_keyboard_arrow_left_black_24dp_1x.png +0 -0
  67. package/lib/images/ic_keyboard_arrow_right_black_24dp_1x.png +0 -0
  68. package/lib/images/ic_pause_white_24dp_1x.png +0 -0
  69. package/lib/images/ic_photo_white_24dp_1x.png +0 -0
  70. package/lib/images/ic_play_arrow_white_24dp_1x.png +0 -0
  71. package/lib/images/ic_refresh_white_24dp_1x.png +0 -0
  72. package/lib/images/ic_settings_white_24dp_1x.png +0 -0
  73. package/lib/images/ic_skip_next_white_24dp_1x.png +0 -0
  74. package/lib/images/ic_skip_previous_white_24dp_1x.png +0 -0
  75. package/lib/images/ic_toc_white_24dp_1x.png +0 -0
  76. package/lib/images/ic_volume_off_white_24dp_1x.png +0 -0
  77. package/lib/images/ic_volume_up_white_24dp_1x.png +0 -0
  78. package/lib/player4ie8.css +0 -225
  79. package/server.js +0 -29
  80. package/src/config/cc.js +0 -56
  81. package/src/config/i18n.js +0 -101
  82. package/src/config/options.js +0 -123
  83. package/src/config/playlist.js +0 -9
  84. package/src/config/source.js +0 -23
  85. package/src/config/statuses.js +0 -8
  86. package/src/config/styles.js +0 -16
  87. package/src/entity.js +0 -27
  88. package/src/events.js +0 -5
  89. package/src/extensions/annotations.js +0 -142
  90. package/src/extensions/audio-tarcks.js +0 -115
  91. package/src/extensions/backward.js +0 -45
  92. package/src/extensions/base.js +0 -73
  93. package/src/extensions/bottom-next.js +0 -50
  94. package/src/extensions/bottom-prev.js +0 -50
  95. package/src/extensions/buffering.js +0 -78
  96. package/src/extensions/c2pa.js +0 -350
  97. package/src/extensions/caption-search.js +0 -230
  98. package/src/extensions/cc.js +0 -874
  99. package/src/extensions/crawl.js +0 -118
  100. package/src/extensions/download.js +0 -411
  101. package/src/extensions/error.js +0 -47
  102. package/src/extensions/forward.js +0 -44
  103. package/src/extensions/fullscreen.js +0 -84
  104. package/src/extensions/help.js +0 -201
  105. package/src/extensions/helpers/FileSaver.js +0 -157
  106. package/src/extensions/helpers/clickOpener.js +0 -180
  107. package/src/extensions/helpers/opener.js +0 -30
  108. package/src/extensions/helpers/openerHeightChecker.js +0 -13
  109. package/src/extensions/helpers/popover.js +0 -33
  110. package/src/extensions/helpers/popoverPosition.js +0 -30
  111. package/src/extensions/helpers/scrollIntoView.js +0 -9
  112. package/src/extensions/helpers/storage.js +0 -20
  113. package/src/extensions/helpers/textContent.js +0 -6
  114. package/src/extensions/helpers/timeCodeToSeconds.js +0 -44
  115. package/src/extensions/helpers/transport.js +0 -43
  116. package/src/extensions/helpers/vtt-loader.js +0 -42
  117. package/src/extensions/index.js +0 -87
  118. package/src/extensions/live.js +0 -76
  119. package/src/extensions/mux.js +0 -57
  120. package/src/extensions/next-frame.js +0 -44
  121. package/src/extensions/next.js +0 -48
  122. package/src/extensions/placeholder.js +0 -241
  123. package/src/extensions/play.js +0 -102
  124. package/src/extensions/poster.js +0 -47
  125. package/src/extensions/prev-frame.js +0 -44
  126. package/src/extensions/prev.js +0 -48
  127. package/src/extensions/progress.js +0 -465
  128. package/src/extensions/resizer.js +0 -37
  129. package/src/extensions/settings.js +0 -367
  130. package/src/extensions/theater.js +0 -56
  131. package/src/extensions/title.js +0 -38
  132. package/src/extensions/toc.js +0 -334
  133. package/src/extensions/volume.js +0 -196
  134. package/src/flash/FlashPlugin.js +0 -301
  135. package/src/flash/MediaElement.js +0 -361
  136. package/src/flash/plugins.js +0 -32
  137. package/src/flash-detector.js +0 -66
  138. package/src/helpers/$t.js +0 -10
  139. package/src/helpers/binder.js +0 -11
  140. package/src/helpers/isAndroid.js +0 -5
  141. package/src/helpers/isBlackBerry.js +0 -5
  142. package/src/helpers/isCanvasSupported.js +0 -6
  143. package/src/helpers/isIE.js +0 -21
  144. package/src/helpers/isMobile.js +0 -10
  145. package/src/helpers/isWindows.js +0 -5
  146. package/src/helpers/isWindowsPhone.js +0 -5
  147. package/src/helpers/isiOS.js +0 -5
  148. package/src/html5media.js +0 -19
  149. package/src/index.js +0 -2
  150. package/src/logger.js +0 -31
  151. package/src/microevent.js +0 -65
  152. package/src/normalize-options.js +0 -139
  153. package/src/player.js +0 -864
  154. package/src/players/base.js +0 -209
  155. package/src/players/flash.js +0 -172
  156. package/src/players/hls.js +0 -278
  157. package/src/players/html.js +0 -205
  158. package/src/players/index.js +0 -59
  159. package/src/players/shaka.js +0 -219
  160. package/src/playlist.js +0 -362
  161. package/src/screenfull.js +0 -121
  162. package/src/state.js +0 -474
  163. package/src/static/es5.js +0 -344
  164. package/src/static/images/Spinner-small.gif +0 -0
  165. package/src/static/images/close.png +0 -0
  166. package/src/static/images/ic_check_box_black_24dp_1x.png +0 -0
  167. package/src/static/images/ic_check_box_outline_blank_black_24dp_1x.png +0 -0
  168. package/src/static/images/ic_chevron_left_white_24dp_1x.png +0 -0
  169. package/src/static/images/ic_chevron_right_white_24dp_1x.png +0 -0
  170. package/src/static/images/ic_closed_caption_white_24dp_1x.png +0 -0
  171. package/src/static/images/ic_fast_forward_white_24dp_1x.png +0 -0
  172. package/src/static/images/ic_fast_rewind_white_24dp_1x.png +0 -0
  173. package/src/static/images/ic_fullscreen_exit_white_24dp_1x.png +0 -0
  174. package/src/static/images/ic_fullscreen_white_24dp_1x.png +0 -0
  175. package/src/static/images/ic_hd_white_24dp_1x.png +0 -0
  176. package/src/static/images/ic_keyboard_arrow_left_black_24dp_1x.png +0 -0
  177. package/src/static/images/ic_keyboard_arrow_right_black_24dp_1x.png +0 -0
  178. package/src/static/images/ic_pause_white_24dp_1x.png +0 -0
  179. package/src/static/images/ic_play_arrow_white_24dp_1x.png +0 -0
  180. package/src/static/images/ic_refresh_white_24dp_1x.png +0 -0
  181. package/src/static/images/ic_settings_white_24dp_1x.png +0 -0
  182. package/src/static/images/ic_skip_next_white_24dp_1x.png +0 -0
  183. package/src/static/images/ic_skip_previous_white_24dp_1x.png +0 -0
  184. package/src/static/images/ic_toc_white_24dp_1x.png +0 -0
  185. package/src/static/images/ic_volume_off_white_24dp_1x.png +0 -0
  186. package/src/static/images/ic_volume_up_white_24dp_1x.png +0 -0
  187. package/src/static/player4ie8.css +0 -225
  188. package/src/styles/bplaylist.css.js +0 -124
  189. package/src/styles/index.js +0 -1966
  190. package/src/styles/playlist.css.js +0 -84
  191. package/src/styles/rplaylist.css.js +0 -98
  192. package/src/svgs.js +0 -111
  193. package/src/types/Logger.js +0 -10
  194. package/src/types/Options.js +0 -179
  195. package/src/types/Playlist.js +0 -3
  196. package/src/types/Source.js +0 -28
  197. package/src/types/State.js +0 -46
  198. package/src/types/Styles.js +0 -11
  199. package/src/types/TimeData.js +0 -8
  200. package/src/types/Translation.js +0 -69
  201. package/src/utils/absolutizeUrl.js +0 -9
  202. package/src/utils/addClass.js +0 -9
  203. package/src/utils/addEvent.js +0 -31
  204. package/src/utils/addProperty.js +0 -65
  205. package/src/utils/appendChild.js +0 -14
  206. package/src/utils/buff2hex.js +0 -5
  207. package/src/utils/contains.js +0 -33
  208. package/src/utils/createElement.js +0 -24
  209. package/src/utils/each.js +0 -34
  210. package/src/utils/escapeHTML.js +0 -8
  211. package/src/utils/existy.js +0 -4
  212. package/src/utils/extend.js +0 -17
  213. package/src/utils/filter.js +0 -16
  214. package/src/utils/find.js +0 -11
  215. package/src/utils/findIndex.js +0 -20
  216. package/src/utils/first.js +0 -5
  217. package/src/utils/get.js +0 -19
  218. package/src/utils/has.js +0 -5
  219. package/src/utils/hasClass.js +0 -6
  220. package/src/utils/head.js +0 -11
  221. package/src/utils/inRange.js +0 -16
  222. package/src/utils/index.js +0 -73
  223. package/src/utils/isArray.js +0 -4
  224. package/src/utils/isBoolean.js +0 -3
  225. package/src/utils/isElement.js +0 -7
  226. package/src/utils/isEmpty.js +0 -6
  227. package/src/utils/isEqual.js +0 -33
  228. package/src/utils/isEqualBuffer.js +0 -13
  229. package/src/utils/isFunction.js +0 -3
  230. package/src/utils/isNotEmpty.js +0 -5
  231. package/src/utils/isObject.js +0 -5
  232. package/src/utils/isString.js +0 -9
  233. package/src/utils/last.js +0 -4
  234. package/src/utils/map.js +0 -11
  235. package/src/utils/negate.js +0 -8
  236. package/src/utils/noop.js +0 -1
  237. package/src/utils/notExisty.js +0 -5
  238. package/src/utils/reduce.js +0 -8
  239. package/src/utils/remove.js +0 -7
  240. package/src/utils/removeClass.js +0 -8
  241. package/src/utils/removeEvent.js +0 -7
  242. package/src/utils/toArray.js +0 -7
  243. package/src/utils/toggleClass.js +0 -16
  244. package/src/utils/uidGenerator.js +0 -8
  245. package/src/utils/upperFirst.js +0 -4
  246. package/tests/extensions/__snapshots__/download.spec.js.snap +0 -226
  247. package/tests/extensions/__snapshots__/fullscreen.spec.js.snap +0 -30
  248. package/tests/extensions/__snapshots__/title.spec.js.snap +0 -16
  249. package/tests/extensions/download.spec.js +0 -111
  250. package/tests/extensions/fullscreen.spec.js +0 -56
  251. package/tests/extensions/title.spec.js +0 -35
  252. package/tests/mocks/assets/BaseM.mp4 +0 -0
  253. package/tests/mocks/assets/hls.min.js +0 -5
  254. package/tests/mocks/assets/styleMock.js +0 -1
  255. package/tests/mocks/base-player-options.js +0 -47
  256. package/tests/mocks/sources.js +0 -58
  257. package/tests/mocks/timedata/cc_en.vtt +0 -171
  258. package/tests/mocks/timedata/cc_ge.vtt +0 -178
  259. package/tests/utils/wait.js +0 -1
  260. package/webpack.config.js +0 -78
@@ -1,66 +0,0 @@
1
- /* eslint-disable */
2
-
3
-
4
- const NAV = window.navigator;
5
-
6
- const PluginDetector = {
7
- plugins: [],
8
-
9
- hasPluginVersion: (plugin, v) => {
10
- const pv = PluginDetector.plugins[plugin];
11
- v[1] = v[1] || 0;
12
- v[2] = v[2] || 0;
13
- return (pv[0] > v[0] || (pv[0] === v[0] && pv[1] > v[1]) || (pv[0] === v[0] && pv[1] === v[1] && pv[2] >= v[2]));
14
- },
15
-
16
- addPlugin: (p, pluginName, mimeType, activeX, axDetect) => {
17
- PluginDetector.plugins[p] = PluginDetector.detectPlugin(pluginName, mimeType, activeX, axDetect);
18
- },
19
-
20
- detectPlugin: (pluginName, mimeType, activeX, axDetect) => {
21
-
22
- let
23
- version = [0, 0, 0],
24
- description,
25
- ax
26
- ;
27
-
28
- // Firefox, Webkit, Opera; avoid MS Edge since `plugins` cannot be accessed
29
- if (NAV.plugins !== null && NAV.plugins !== undefined && typeof NAV.plugins[pluginName] === 'object') {
30
- description = NAV.plugins[pluginName].description;
31
- if (description && !(typeof NAV.mimeTypes !== 'undefined' && NAV.mimeTypes[mimeType] && !NAV.mimeTypes[mimeType].enabledPlugin)) {
32
- version = description.replace(pluginName, '').replace(/^\s+/, '').replace(/\sr/gi, '.').split('.');
33
- for (let i = 0, total = version.length; i < total; i++) {
34
- version[i] = parseInt(version[i].match(/\d+/), 10);
35
- }
36
- }
37
- // Internet Explorer / ActiveX
38
- } else if (window.ActiveXObject !== undefined) {
39
- try {
40
- ax = new ActiveXObject(activeX);
41
- if (ax) {
42
- version = axDetect(ax);
43
- }
44
- } catch (e) {
45
- console.log(e);
46
- }
47
- }
48
- return version;
49
- }
50
- };
51
-
52
- PluginDetector.addPlugin('flash', 'Shockwave Flash', 'application/x-shockwave-flash', 'ShockwaveFlash.ShockwaveFlash', (ax) => {
53
- // adapted from SWFObject
54
- let
55
- version = [],
56
- d = ax.GetVariable("$version")
57
- ;
58
-
59
- if (d) {
60
- d = d.split(" ")[1].split(",");
61
- version = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
62
- }
63
- return version;
64
- });
65
-
66
- export default PluginDetector.hasPluginVersion('flash', [10, 0, 0]);
package/src/helpers/$t.js DELETED
@@ -1,10 +0,0 @@
1
- // @flow
2
-
3
- import DEFAULT_I18N from '../config/i18n';
4
-
5
- import type { Player$Translation } from '../types/Translation';
6
-
7
- export default function $t(i18n: ?$Shape<Player$Translation> = {}, key: $Keys<Player$Translation>): string {
8
- const val: ?string = i18n ? i18n[key] : null;
9
- return val || DEFAULT_I18N[key];
10
- }
@@ -1,11 +0,0 @@
1
- // $Flow
2
-
3
- import Entity from '../entity';
4
-
5
- import each from '../utils/each';
6
-
7
- export default function binder(ctx: Entity, funcs: string[]) {
8
- each(funcs, fn => {
9
- ctx[fn] = ctx[fn].bind(ctx);
10
- });
11
- }
@@ -1,5 +0,0 @@
1
- // @flow
2
-
3
- export default function isAndroid() {
4
- return !!navigator.userAgent.match(/Android/i);
5
- }
@@ -1,5 +0,0 @@
1
- // @flow
2
-
3
- export default function isBlackBerry() {
4
- return !!navigator.userAgent.match(/(BlackBerry|BB10)/i);
5
- }
@@ -1,6 +0,0 @@
1
- // @flow
2
-
3
- export default function isCanvasSupported() {
4
- const elem = document.createElement('canvas');
5
- return !!(elem.getContext && elem.getContext('2d'));
6
- }
@@ -1,21 +0,0 @@
1
- // @flow
2
-
3
- const IE_8 = 8;
4
- const NOT_FOUND_IDX = -1;
5
-
6
- export default function isIE(): false | number {
7
- const na = navigator.userAgent.toLowerCase();
8
- return na.indexOf('msie') === NOT_FOUND_IDX ? false : parseInt(na.split('msie')[1], 10);
9
- }
10
-
11
- export function isIE8() {
12
- return isIE() === IE_8;
13
- }
14
-
15
- export function isEdge() {
16
- return 'msLaunchUri' in window.navigator && !('documentMode' in document);
17
- }
18
-
19
- export function isIE11() {
20
- return !!window.MSInputMethodContext && !!document.documentMode;
21
- }
@@ -1,10 +0,0 @@
1
- // @flow
2
-
3
- import isAndroid from './isAndroid';
4
- import isiOS from './isiOS';
5
- import isBlackBerry from './isBlackBerry';
6
- import isWindowsPhone from './isWindowsPhone';
7
-
8
- export default function isMobile() {
9
- return isAndroid() || isiOS() || isBlackBerry() || isWindowsPhone();
10
- }
@@ -1,5 +0,0 @@
1
- // @flow
2
-
3
- export function isWindows10() {
4
- return !!navigator.userAgent.match(/(Windows NT 10)/i);
5
- }
@@ -1,5 +0,0 @@
1
- // @flow
2
-
3
- export default function isWindowsPhone() {
4
- return !!navigator.userAgent.match(/(IEMobile|Windows Phone)/i);
5
- }
@@ -1,5 +0,0 @@
1
- // @flow
2
-
3
- export default function isiOS() {
4
- return !!navigator.userAgent.match(/(iPad|iPhone|iPod)/g);
5
- }
package/src/html5media.js DELETED
@@ -1,19 +0,0 @@
1
- export const properties = [
2
- // GET/SET
3
- 'volume', 'src', 'currentTime', 'muted',
4
-
5
- // GET only
6
- 'duration', 'paused', 'ended', 'levels', 'currentLevel',
7
-
8
- // SET only
9
- 'level',
10
-
11
- // OTHERS
12
- 'error', 'currentSrc', 'networkState', 'preload', 'buffered', 'bufferedBytes', 'bufferedTime',
13
- 'readyState', 'seeking', 'initialTime', 'startOffsetTime', 'defaultPlaybackRate', 'playbackRate',
14
- 'played', 'seekable', 'autoplay', 'loop', 'controls'
15
- ];
16
-
17
- export const methods = [
18
- 'load', 'play', 'pause', 'canPlayType'
19
- ];
package/src/index.js DELETED
@@ -1,2 +0,0 @@
1
- import Player from './player';
2
- export default Player;
package/src/logger.js DELETED
@@ -1,31 +0,0 @@
1
- // @flow
2
- import { noop, isFunction } from './utils';
3
-
4
- import type { Player$Logger } from './types/Logger';
5
-
6
- /* eslint no-console:0 */
7
-
8
- export type Level = 0 | 1 | 2 | 3 | 4
9
-
10
- const DEFAULT_LOG_LEVEL: Level = 2;
11
-
12
- function _createLog(type: $Keys<Player$Logger>) {
13
- return window.console ? _inner : noop;
14
-
15
- function _inner(...args: Array<mixed>) {
16
- if (type in console && isFunction(console[type])) {
17
- args.unshift( (new Date()).toString() );
18
- console[type].apply(console, args);
19
- }
20
- }
21
- }
22
-
23
- export default function createLogger(level: Level = DEFAULT_LOG_LEVEL): Player$Logger {
24
- let idx = 1;
25
- const logger = {};
26
- logger.debug = ++idx > level ? _createLog('debug') : noop;
27
- logger.log = ++idx > level ? _createLog('log') : noop;
28
- logger.warn = ++idx > level ? _createLog('warn' ) : noop;
29
- logger.error = ++idx > level ? _createLog('error') : noop;
30
- return logger;
31
- }
package/src/microevent.js DELETED
@@ -1,65 +0,0 @@
1
- // @flow
2
- import remove from './utils/remove';
3
-
4
- type Callback = {
5
- // eslint-disable-next-line
6
- <T>(...args: Array<T>): mixed,
7
- _safe_inner?: boolean
8
- };
9
-
10
- export default class MicroEvent {
11
- _events: { [key: string]: Callback[] } = {}
12
-
13
- on(event: string, fct: Callback) {
14
- this._events[event] = this._events[event] || [];
15
- this._events[event].push(fct);
16
- }
17
-
18
- off(event: string, fct: Callback) {
19
- this._events = this._events || {};
20
- if ( event in this._events === false ) {
21
- return;
22
- }
23
- remove(this._events[event], fct);
24
- }
25
-
26
- once(event: string, fct: Callback) {
27
- const callback = (...args: Array<mixed>) => {
28
- this._call(fct, args);
29
- this.off(event, callback);
30
- };
31
-
32
- this.on(event, callback);
33
- }
34
-
35
- emit(event: string, ...args: Array<mixed>) {
36
- if ( event !== '*' ) {
37
- // $FlowFixMe
38
- this.emit.apply(this, ['*', event].concat(args));
39
- }
40
-
41
- this._events = this._events || {};
42
- if ( event in this._events === false ) {
43
- return;
44
- }
45
- for (var i = this._events[event].length - 1; i >= 0; i--) {
46
- this._call(this._events[event][i], args);
47
- }
48
- }
49
-
50
- destroy() {
51
- this._events = {};
52
- }
53
-
54
- _call<T>(fnc: Callback, args: Array<T>) {
55
- if (fnc._safe_inner) {
56
- fnc.apply(this, args);
57
- } else {
58
- try {
59
- fnc.apply(this, args);
60
- } catch (e) {
61
- console.error(e); // eslint-disable-line
62
- }
63
- }
64
- }
65
- }
@@ -1,139 +0,0 @@
1
- // @flow
2
-
3
- import { getPlayerType, FLASH_TYPE } from './players';
4
-
5
- import { extend, existy, notExisty, isNotEmpty, contains } from './utils';
6
-
7
- import type { Player$CombineOptions, Player$InputOptions } from './types/Options';
8
-
9
- import isMobile from './helpers/isMobile';
10
- import isAndroid from './helpers/isAndroid';
11
- import isCanvasSupported from './helpers/isCanvasSupported';
12
- import { isIE8 } from './helpers/isIE';
13
- import { isWindows10 } from './helpers/isWindows';
14
- import isiOS from './helpers/isiOS';
15
-
16
- import SOURCE_OPTIONS from './config/source';
17
-
18
- const AUDIO_TYPES = [ 'audio/mp3', 'audio/mpeg', 'audio/mp4' ];
19
-
20
- // eslint-disable-next-line
21
- export default function normalize(common: $Shape<Player$InputOptions>, options: $Shape<Player$CombineOptions>): $Shape<Player$CombineOptions> {
22
- options = extend({}, SOURCE_OPTIONS, common, options);
23
- const custom: $Shape<Player$CombineOptions> = {
24
- showAnnotations: existy(options.showAnnotations) ? options.showAnnotations : true,
25
- showQuality: existy(options.showQuality) ? options.showQuality : true,
26
- showPlaceholder: existy(options.showPlaceholder) ? options.showPlaceholder : true
27
- };
28
-
29
- custom.showPoster = options.showPoster && existy(options.poster);
30
-
31
- if (options.showHelp) {
32
- custom.showHelp = isCanvasSupported();
33
- }
34
-
35
- if (_isAudio(options.type) || options.isAudio) {
36
- custom.showFullScreen = false;
37
- custom.showClosedCaptions = false;
38
- custom.showTOC = false;
39
- custom.showAnnotations = false;
40
- custom.showQuality = false;
41
- custom.isAudio = true;
42
- // =(
43
- // options.showSettings = false;
44
- }
45
-
46
- if (isMobile()) {
47
- custom.showVolume = false;
48
- custom.showQuality = false;
49
- custom.showHelp = false;
50
- custom.preview = null;
51
- custom.showTitle = false;
52
- custom.showCCLayout = false;
53
- custom.isMobile = true;
54
-
55
- custom.extensionsVisibilityTimeout = 4000;
56
- }
57
-
58
- if (isAndroid()) {
59
- custom.showPlaybackRate = false;
60
- }
61
-
62
- if (isIE8()) {
63
- custom.showCCLayout = false;
64
- custom.useMux = false;
65
- }
66
-
67
- if (!options.startTime && isiOS()) {
68
- custom.startTime = 0.5;
69
- }
70
-
71
- if (notExisty(options.annotations)) {
72
- custom.showAnnotations = false;
73
- }
74
-
75
- if (options.startTime && !custom.isAudio) {
76
- custom.showPoster = false;
77
- }
78
-
79
- const type = getPlayerType(options);
80
- if (type === FLASH_TYPE) {
81
- custom.showPlaybackRate = false;
82
- }
83
-
84
- // if (options.showClosedCaptions) {
85
- // custom.showClosedCaptions = existy(options.cc) && isNotEmpty(options.cc);
86
- // }
87
-
88
- // if (options.showTOC) {
89
- // custom.showTOC = existy(options.chapters) && isNotEmpty(options.chapters);
90
- // }
91
-
92
- if (options.showAnnotations) {
93
- custom.showAnnotations = existy(options.annotations) && isNotEmpty(options.annotations);
94
- }
95
-
96
- if ( custom.showAnnotations === false && custom.showPlaybackRate === false && custom.showQuality === false ) {
97
- custom.showSettings = false;
98
- options.showSettings = false;
99
- }
100
-
101
- custom.showDownloadCC = options.showDownloadCC && existy(options.cc) && isNotEmpty(options.cc);
102
-
103
- if (options.showDownloadVideo) {
104
- custom.showDownloadVideo = isWindows10() && existy(options.downloadURL) && isNotEmpty(options.downloadURL);
105
- }
106
-
107
- custom.showDownload = options.showDownload && (custom.showDownloadVideo || custom.showDownloadCC || !!options.downloadVideoURL);
108
-
109
- custom.showCaptionSearch = options.showCaptionSearch && existy(options.cc) && isNotEmpty(options.cc);
110
-
111
- if (!options.showExtensions) {
112
- custom.showPlay = false;
113
- custom.showProgress = false;
114
- custom.showVolume = false;
115
- custom.showFullScreen = false;
116
- custom.showClosedCaptions = false;
117
- custom.showTOC = false;
118
- custom.showAnnotations = false;
119
- custom.showQuality = false;
120
- custom.showPoster = false;
121
- custom.showPlaceholder = false;
122
- custom.showPlaybackRate = false;
123
- custom.showForward = false;
124
- custom.showBackward = false;
125
- custom.showSettings = false;
126
- custom.showDownload = false;
127
- custom.showHelp = false;
128
- custom.showTitle = false;
129
- custom.showNext = false;
130
- }
131
-
132
- const res = extend(options, custom);
133
-
134
- return res;
135
- }
136
-
137
- function _isAudio(type) {
138
- return contains(AUDIO_TYPES, type);
139
- }