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.
- package/dist/RavnurMediaPlayer.min.js +1 -1
- package/dist/cdn/RavnurMediaPlayer.min.js +1 -1
- package/package.json +72 -68
- package/.eslintignore +0 -7
- package/.eslintrc.js +0 -206
- package/.flowconfig +0 -3
- package/.vscode/extensions.json +0 -7
- package/.vscode/launch.json +0 -37
- package/.vscode/settings.json +0 -4
- package/README-Private.md +0 -54
- package/babel.config.js +0 -28
- package/bitbucket-pipelines.yml +0 -61
- package/cert.pem +0 -23
- package/demo/BaseM.mp4 +0 -0
- package/demo/HD.mp4 +0 -0
- package/demo/annotations.json +0 -50
- package/demo/annotations_ge.json +0 -50
- package/demo/base.mp3 +0 -0
- package/demo/cc_2125en.vtt +0 -4958
- package/demo/cc_en.vtt +0 -171
- package/demo/cc_ge.vtt +0 -178
- package/demo/chapters_en.vtt +0 -38
- package/demo/chapters_ge.vtt +0 -5
- package/demo/chapters_ge1.json +0 -23
- package/demo/hls/audio/stereo/en/128kbit.m3u8 +0 -912
- package/demo/hls/audio/stereo/none/128kbit.m3u8 +0 -912
- package/demo/hls/audio/surround/en/320kbit.m3u8 +0 -912
- package/demo/hls/playlist.m3u8 +0 -31
- package/demo/hls/video/10000kbit.m3u8 +0 -894
- package/demo/hls/video/1100kbit.m3u8 +0 -894
- package/demo/hls/video/1500kbit.m3u8 +0 -894
- package/demo/hls/video/250kbit.m3u8 +0 -894
- package/demo/hls/video/4000kbit.m3u8 +0 -894
- package/demo/hls/video/500kbit.m3u8 +0 -894
- package/demo/hls/video/6000kbit.m3u8 +0 -894
- package/demo/hls/video/800kbit.m3u8 +0 -894
- package/demo/hls.js +0 -5
- package/demo/hls.js.map +0 -1
- package/demo/hls.min.js +0 -2
- package/demo/hls.min.js.map +0 -1
- package/demo/playlist.m3u8 +0 -31
- package/demo/ravnur-flash-audio.swf +0 -0
- package/demo/ravnur-flash-video-hls.swf +0 -0
- package/demo/ravnur-flash-video.swf +0 -0
- package/demo/shaka/shaka-player.foo.debug.d.ts +0 -4532
- package/demo/shaka/shaka-player.foo.debug.externs.js +0 -3886
- package/demo/shaka/shaka-player.foo.debug.js +0 -1746
- package/demo/shaka/shaka-player.foo.debug.map +0 -8
- package/demo/shaka/wrapper.js +0 -7
- package/demo/test.html +0 -458
- package/jest.config.js +0 -4
- package/key.pem +0 -27
- package/lib/es5.js +0 -344
- package/lib/images/Spinner-small.gif +0 -0
- package/lib/images/close.png +0 -0
- package/lib/images/ic_check_box_black_24dp_1x.png +0 -0
- package/lib/images/ic_check_box_outline_blank_black_24dp_1x.png +0 -0
- package/lib/images/ic_chevron_left_white_24dp_1x.png +0 -0
- package/lib/images/ic_chevron_right_white_24dp_1x.png +0 -0
- package/lib/images/ic_closed_caption_white_24dp_1x.png +0 -0
- package/lib/images/ic_fast_forward_white_24dp_1x.png +0 -0
- package/lib/images/ic_fast_rewind_white_24dp_1x.png +0 -0
- package/lib/images/ic_fullscreen_exit_white_24dp_1x.png +0 -0
- package/lib/images/ic_fullscreen_white_24dp_1x.png +0 -0
- package/lib/images/ic_hd_white_24dp_1x.png +0 -0
- package/lib/images/ic_keyboard_arrow_left_black_24dp_1x.png +0 -0
- package/lib/images/ic_keyboard_arrow_right_black_24dp_1x.png +0 -0
- package/lib/images/ic_pause_white_24dp_1x.png +0 -0
- package/lib/images/ic_photo_white_24dp_1x.png +0 -0
- package/lib/images/ic_play_arrow_white_24dp_1x.png +0 -0
- package/lib/images/ic_refresh_white_24dp_1x.png +0 -0
- package/lib/images/ic_settings_white_24dp_1x.png +0 -0
- package/lib/images/ic_skip_next_white_24dp_1x.png +0 -0
- package/lib/images/ic_skip_previous_white_24dp_1x.png +0 -0
- package/lib/images/ic_toc_white_24dp_1x.png +0 -0
- package/lib/images/ic_volume_off_white_24dp_1x.png +0 -0
- package/lib/images/ic_volume_up_white_24dp_1x.png +0 -0
- package/lib/player4ie8.css +0 -225
- package/server.js +0 -29
- package/src/config/cc.js +0 -56
- package/src/config/i18n.js +0 -101
- package/src/config/options.js +0 -123
- package/src/config/playlist.js +0 -9
- package/src/config/source.js +0 -23
- package/src/config/statuses.js +0 -8
- package/src/config/styles.js +0 -16
- package/src/entity.js +0 -27
- package/src/events.js +0 -5
- package/src/extensions/annotations.js +0 -142
- package/src/extensions/audio-tarcks.js +0 -115
- package/src/extensions/backward.js +0 -45
- package/src/extensions/base.js +0 -73
- package/src/extensions/bottom-next.js +0 -50
- package/src/extensions/bottom-prev.js +0 -50
- package/src/extensions/buffering.js +0 -78
- package/src/extensions/c2pa.js +0 -350
- package/src/extensions/caption-search.js +0 -230
- package/src/extensions/cc.js +0 -874
- package/src/extensions/crawl.js +0 -118
- package/src/extensions/download.js +0 -411
- package/src/extensions/error.js +0 -47
- package/src/extensions/forward.js +0 -44
- package/src/extensions/fullscreen.js +0 -84
- package/src/extensions/help.js +0 -201
- package/src/extensions/helpers/FileSaver.js +0 -157
- package/src/extensions/helpers/clickOpener.js +0 -180
- package/src/extensions/helpers/opener.js +0 -30
- package/src/extensions/helpers/openerHeightChecker.js +0 -13
- package/src/extensions/helpers/popover.js +0 -33
- package/src/extensions/helpers/popoverPosition.js +0 -30
- package/src/extensions/helpers/scrollIntoView.js +0 -9
- package/src/extensions/helpers/storage.js +0 -20
- package/src/extensions/helpers/textContent.js +0 -6
- package/src/extensions/helpers/timeCodeToSeconds.js +0 -44
- package/src/extensions/helpers/transport.js +0 -43
- package/src/extensions/helpers/vtt-loader.js +0 -42
- package/src/extensions/index.js +0 -87
- package/src/extensions/live.js +0 -76
- package/src/extensions/mux.js +0 -57
- package/src/extensions/next-frame.js +0 -44
- package/src/extensions/next.js +0 -48
- package/src/extensions/placeholder.js +0 -241
- package/src/extensions/play.js +0 -102
- package/src/extensions/poster.js +0 -47
- package/src/extensions/prev-frame.js +0 -44
- package/src/extensions/prev.js +0 -48
- package/src/extensions/progress.js +0 -465
- package/src/extensions/resizer.js +0 -37
- package/src/extensions/settings.js +0 -367
- package/src/extensions/theater.js +0 -56
- package/src/extensions/title.js +0 -38
- package/src/extensions/toc.js +0 -334
- package/src/extensions/volume.js +0 -196
- package/src/flash/FlashPlugin.js +0 -301
- package/src/flash/MediaElement.js +0 -361
- package/src/flash/plugins.js +0 -32
- package/src/flash-detector.js +0 -66
- package/src/helpers/$t.js +0 -10
- package/src/helpers/binder.js +0 -11
- package/src/helpers/isAndroid.js +0 -5
- package/src/helpers/isBlackBerry.js +0 -5
- package/src/helpers/isCanvasSupported.js +0 -6
- package/src/helpers/isIE.js +0 -21
- package/src/helpers/isMobile.js +0 -10
- package/src/helpers/isWindows.js +0 -5
- package/src/helpers/isWindowsPhone.js +0 -5
- package/src/helpers/isiOS.js +0 -5
- package/src/html5media.js +0 -19
- package/src/index.js +0 -2
- package/src/logger.js +0 -31
- package/src/microevent.js +0 -65
- package/src/normalize-options.js +0 -139
- package/src/player.js +0 -864
- package/src/players/base.js +0 -209
- package/src/players/flash.js +0 -172
- package/src/players/hls.js +0 -278
- package/src/players/html.js +0 -205
- package/src/players/index.js +0 -59
- package/src/players/shaka.js +0 -219
- package/src/playlist.js +0 -362
- package/src/screenfull.js +0 -121
- package/src/state.js +0 -474
- package/src/static/es5.js +0 -344
- package/src/static/images/Spinner-small.gif +0 -0
- package/src/static/images/close.png +0 -0
- package/src/static/images/ic_check_box_black_24dp_1x.png +0 -0
- package/src/static/images/ic_check_box_outline_blank_black_24dp_1x.png +0 -0
- package/src/static/images/ic_chevron_left_white_24dp_1x.png +0 -0
- package/src/static/images/ic_chevron_right_white_24dp_1x.png +0 -0
- package/src/static/images/ic_closed_caption_white_24dp_1x.png +0 -0
- package/src/static/images/ic_fast_forward_white_24dp_1x.png +0 -0
- package/src/static/images/ic_fast_rewind_white_24dp_1x.png +0 -0
- package/src/static/images/ic_fullscreen_exit_white_24dp_1x.png +0 -0
- package/src/static/images/ic_fullscreen_white_24dp_1x.png +0 -0
- package/src/static/images/ic_hd_white_24dp_1x.png +0 -0
- package/src/static/images/ic_keyboard_arrow_left_black_24dp_1x.png +0 -0
- package/src/static/images/ic_keyboard_arrow_right_black_24dp_1x.png +0 -0
- package/src/static/images/ic_pause_white_24dp_1x.png +0 -0
- package/src/static/images/ic_play_arrow_white_24dp_1x.png +0 -0
- package/src/static/images/ic_refresh_white_24dp_1x.png +0 -0
- package/src/static/images/ic_settings_white_24dp_1x.png +0 -0
- package/src/static/images/ic_skip_next_white_24dp_1x.png +0 -0
- package/src/static/images/ic_skip_previous_white_24dp_1x.png +0 -0
- package/src/static/images/ic_toc_white_24dp_1x.png +0 -0
- package/src/static/images/ic_volume_off_white_24dp_1x.png +0 -0
- package/src/static/images/ic_volume_up_white_24dp_1x.png +0 -0
- package/src/static/player4ie8.css +0 -225
- package/src/styles/bplaylist.css.js +0 -124
- package/src/styles/index.js +0 -1966
- package/src/styles/playlist.css.js +0 -84
- package/src/styles/rplaylist.css.js +0 -98
- package/src/svgs.js +0 -111
- package/src/types/Logger.js +0 -10
- package/src/types/Options.js +0 -179
- package/src/types/Playlist.js +0 -3
- package/src/types/Source.js +0 -28
- package/src/types/State.js +0 -46
- package/src/types/Styles.js +0 -11
- package/src/types/TimeData.js +0 -8
- package/src/types/Translation.js +0 -69
- package/src/utils/absolutizeUrl.js +0 -9
- package/src/utils/addClass.js +0 -9
- package/src/utils/addEvent.js +0 -31
- package/src/utils/addProperty.js +0 -65
- package/src/utils/appendChild.js +0 -14
- package/src/utils/buff2hex.js +0 -5
- package/src/utils/contains.js +0 -33
- package/src/utils/createElement.js +0 -24
- package/src/utils/each.js +0 -34
- package/src/utils/escapeHTML.js +0 -8
- package/src/utils/existy.js +0 -4
- package/src/utils/extend.js +0 -17
- package/src/utils/filter.js +0 -16
- package/src/utils/find.js +0 -11
- package/src/utils/findIndex.js +0 -20
- package/src/utils/first.js +0 -5
- package/src/utils/get.js +0 -19
- package/src/utils/has.js +0 -5
- package/src/utils/hasClass.js +0 -6
- package/src/utils/head.js +0 -11
- package/src/utils/inRange.js +0 -16
- package/src/utils/index.js +0 -73
- package/src/utils/isArray.js +0 -4
- package/src/utils/isBoolean.js +0 -3
- package/src/utils/isElement.js +0 -7
- package/src/utils/isEmpty.js +0 -6
- package/src/utils/isEqual.js +0 -33
- package/src/utils/isEqualBuffer.js +0 -13
- package/src/utils/isFunction.js +0 -3
- package/src/utils/isNotEmpty.js +0 -5
- package/src/utils/isObject.js +0 -5
- package/src/utils/isString.js +0 -9
- package/src/utils/last.js +0 -4
- package/src/utils/map.js +0 -11
- package/src/utils/negate.js +0 -8
- package/src/utils/noop.js +0 -1
- package/src/utils/notExisty.js +0 -5
- package/src/utils/reduce.js +0 -8
- package/src/utils/remove.js +0 -7
- package/src/utils/removeClass.js +0 -8
- package/src/utils/removeEvent.js +0 -7
- package/src/utils/toArray.js +0 -7
- package/src/utils/toggleClass.js +0 -16
- package/src/utils/uidGenerator.js +0 -8
- package/src/utils/upperFirst.js +0 -4
- package/tests/extensions/__snapshots__/download.spec.js.snap +0 -226
- package/tests/extensions/__snapshots__/fullscreen.spec.js.snap +0 -30
- package/tests/extensions/__snapshots__/title.spec.js.snap +0 -16
- package/tests/extensions/download.spec.js +0 -111
- package/tests/extensions/fullscreen.spec.js +0 -56
- package/tests/extensions/title.spec.js +0 -35
- package/tests/mocks/assets/BaseM.mp4 +0 -0
- package/tests/mocks/assets/hls.min.js +0 -5
- package/tests/mocks/assets/styleMock.js +0 -1
- package/tests/mocks/base-player-options.js +0 -47
- package/tests/mocks/sources.js +0 -58
- package/tests/mocks/timedata/cc_en.vtt +0 -171
- package/tests/mocks/timedata/cc_ge.vtt +0 -178
- package/tests/utils/wait.js +0 -1
- package/webpack.config.js +0 -78
package/src/flash-detector.js
DELETED
|
@@ -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
|
-
}
|
package/src/helpers/binder.js
DELETED
package/src/helpers/isAndroid.js
DELETED
package/src/helpers/isIE.js
DELETED
|
@@ -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
|
-
}
|
package/src/helpers/isMobile.js
DELETED
|
@@ -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
|
-
}
|
package/src/helpers/isWindows.js
DELETED
package/src/helpers/isiOS.js
DELETED
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
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
|
-
}
|
package/src/normalize-options.js
DELETED
|
@@ -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
|
-
}
|