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/extensions/base.js
DELETED
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
import Entity from '../entity';
|
|
3
|
-
|
|
4
|
-
import { isNotEmpty, upperFirst, isFunction, contains } from '../utils';
|
|
5
|
-
|
|
6
|
-
import BaseController from '../players/base';
|
|
7
|
-
import StateEntity from '../state';
|
|
8
|
-
|
|
9
|
-
import $t from '../helpers/$t';
|
|
10
|
-
|
|
11
|
-
import type { Player$ExtensionOptions } from '../types/Options';
|
|
12
|
-
import type { Player$Translation } from '../types/Translation';
|
|
13
|
-
|
|
14
|
-
type Listener = {
|
|
15
|
-
(event: string, ...args: Array<mixed>): mixed,
|
|
16
|
-
_safe_inner? : boolean
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export default class BaseExtension extends Entity {
|
|
20
|
-
player: BaseController
|
|
21
|
-
options: Player$ExtensionOptions
|
|
22
|
-
state: StateEntity
|
|
23
|
-
_events: string[]
|
|
24
|
-
|
|
25
|
-
constructor(player: BaseController, state: StateEntity, options: Player$ExtensionOptions, events?: string[] = []) {
|
|
26
|
-
super(options.bus, options.logger);
|
|
27
|
-
this.player = player;
|
|
28
|
-
this.options = options;
|
|
29
|
-
this.state = state;
|
|
30
|
-
|
|
31
|
-
this._events = events;
|
|
32
|
-
|
|
33
|
-
const listener: Listener = this._listener.bind(this);
|
|
34
|
-
listener._safe_inner = true; // eslint-disable-line camelcase
|
|
35
|
-
|
|
36
|
-
if (isNotEmpty(events)) {
|
|
37
|
-
// $FlowFixMe
|
|
38
|
-
this._listener = listener;
|
|
39
|
-
// $FlowFixMe
|
|
40
|
-
this.bus.on('*', listener);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
$t(key: $Keys<Player$Translation>): string {
|
|
45
|
-
const i18n = this.options.i18n;
|
|
46
|
-
return $t(i18n, key);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
_listener(event: string, ...args: Array<mixed>) {
|
|
50
|
-
if (contains(this._events, event)) {
|
|
51
|
-
const fncName = `on${upperFirst(event)}`;
|
|
52
|
-
// $FlowFixMe
|
|
53
|
-
const fnc = this[fncName];
|
|
54
|
-
if (isFunction(fnc)) {
|
|
55
|
-
fnc.apply(this, args);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
destroy() {
|
|
61
|
-
super.destroy();
|
|
62
|
-
// $FlowFixMe
|
|
63
|
-
this.bus.off('*', this._listener);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
getElement(): ?HTMLElement {
|
|
67
|
-
return null;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
getOuter(): ?HTMLElement {
|
|
71
|
-
return null;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import BaseExtension from './base';
|
|
2
|
-
|
|
3
|
-
import { createElement } from '../utils';
|
|
4
|
-
|
|
5
|
-
import popover from './helpers/popover';
|
|
6
|
-
|
|
7
|
-
import createSvg, { NEXT_TRACK } from '../svgs';
|
|
8
|
-
|
|
9
|
-
const CN = 'rmp-ext-bottom-next';
|
|
10
|
-
const CN_HIDDEN = `${CN}--hidden`;
|
|
11
|
-
|
|
12
|
-
export default class BottomNext extends BaseExtension {
|
|
13
|
-
constructor(player, sate, options) {
|
|
14
|
-
super(player, sate, options);
|
|
15
|
-
|
|
16
|
-
this.logger.debug('bottom-next:extension:creating');
|
|
17
|
-
|
|
18
|
-
this.render();
|
|
19
|
-
|
|
20
|
-
const bus = this.options.bus;
|
|
21
|
-
this.addEvent(this.$el, 'click', () => bus.emit('nexttrack'));
|
|
22
|
-
|
|
23
|
-
this.logger.debug('bottom-next:extension:created');
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
render() {
|
|
27
|
-
/** @type {HTMLMediaElement} */
|
|
28
|
-
this.$el = createElement('button', { type: 'button', class: `${CN}` });
|
|
29
|
-
setTimeout(() => popover(this, { $button: this.$el, text: this.$t('next') }) );
|
|
30
|
-
createSvg(this.$el, NEXT_TRACK);
|
|
31
|
-
|
|
32
|
-
if (!this.player.options.nextTrackTitle) {
|
|
33
|
-
this.$el.classList.add(CN_HIDDEN);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
getElement() {
|
|
38
|
-
return this.$el;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
destroy() {
|
|
42
|
-
super.destroy();
|
|
43
|
-
|
|
44
|
-
if (!this.$el) return;
|
|
45
|
-
|
|
46
|
-
const parent = this.$el.parentNode;
|
|
47
|
-
parent.removeChild(this.$el);
|
|
48
|
-
this.$el = null;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import BaseExtension from './base';
|
|
2
|
-
|
|
3
|
-
import popover from './helpers/popover';
|
|
4
|
-
|
|
5
|
-
import { createElement } from '../utils';
|
|
6
|
-
|
|
7
|
-
import createSvg, { PREV_TRACK } from '../svgs';
|
|
8
|
-
|
|
9
|
-
const CN = 'rmp-ext-bottom-prev';
|
|
10
|
-
const CN_HIDDEN = `${CN}--hidden`;
|
|
11
|
-
|
|
12
|
-
export default class BottomPrev extends BaseExtension {
|
|
13
|
-
constructor(player, sate, options) {
|
|
14
|
-
super(player, sate, options);
|
|
15
|
-
|
|
16
|
-
this.logger.debug('bottom-prev:extension:creating');
|
|
17
|
-
|
|
18
|
-
this.render();
|
|
19
|
-
|
|
20
|
-
const bus = this.options.bus;
|
|
21
|
-
this.addEvent(this.$el, 'click', () => bus.emit('prevtrack'));
|
|
22
|
-
|
|
23
|
-
this.logger.debug('bottom-prev:extension:created');
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
render() {
|
|
27
|
-
/** @type {HTMLMediaElement} */
|
|
28
|
-
this.$el = createElement('button', { type: 'button', class: `${CN}` });
|
|
29
|
-
setTimeout(() => popover(this, { $button: this.$el, text: this.$t('prev') }) );
|
|
30
|
-
createSvg(this.$el, PREV_TRACK);
|
|
31
|
-
|
|
32
|
-
if (!this.player.options.prevTrackTitle) {
|
|
33
|
-
this.$el.classList.add(CN_HIDDEN);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
getElement() {
|
|
38
|
-
return this.$el;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
destroy() {
|
|
42
|
-
super.destroy();
|
|
43
|
-
|
|
44
|
-
if (!this.$el) return;
|
|
45
|
-
|
|
46
|
-
const parent = this.$el.parentNode;
|
|
47
|
-
parent.removeChild(this.$el);
|
|
48
|
-
this.$el = null;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import BaseExtension from './base';
|
|
2
|
-
|
|
3
|
-
import createElement from '../utils/createElement';
|
|
4
|
-
|
|
5
|
-
import addClass from '../utils/addClass';
|
|
6
|
-
import removeClass from '../utils/removeClass';
|
|
7
|
-
|
|
8
|
-
import createSvg, { SPINNER } from '../svgs';
|
|
9
|
-
|
|
10
|
-
const CN = 'rmp-ext-buffering';
|
|
11
|
-
const PROCESSING_CN = `${CN}--processing`;
|
|
12
|
-
|
|
13
|
-
export default class BufferingExtension extends BaseExtension {
|
|
14
|
-
_timerId
|
|
15
|
-
|
|
16
|
-
constructor(player, state, options) {
|
|
17
|
-
super(player, state, options, ['seeking', 'waiting', 'seeked', 'canplay', 'playing', 'timeupdate']);
|
|
18
|
-
this.logger.debug('buffering:extension:creating');
|
|
19
|
-
|
|
20
|
-
this.render();
|
|
21
|
-
if (!options.isMobile) {
|
|
22
|
-
this.startProcessing();
|
|
23
|
-
}
|
|
24
|
-
this.logger.debug('buffering:extension:created');
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
onWaiting() {
|
|
28
|
-
this.startProcessing();
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
onSeeking() {
|
|
32
|
-
this.startProcessing();
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
startProcessing() {
|
|
36
|
-
clearTimeout(this._timerId);
|
|
37
|
-
this._timerId = setTimeout(() => addClass(this.$outer, PROCESSING_CN), this.options.bufferingTimeout);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
onTimeupdate() {
|
|
41
|
-
this.hideProcessing();
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
onSeeked() {
|
|
45
|
-
this.hideProcessing();
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
onCanplay() {
|
|
49
|
-
this.hideProcessing();
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
onPlaying() {
|
|
53
|
-
this.hideProcessing();
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
render() {
|
|
57
|
-
/** @type {HTMLMediaElement} */
|
|
58
|
-
this.$outer = createElement('div', { class: CN });
|
|
59
|
-
const span = createElement('span', { class: `${CN}__message` }, this.$outer);
|
|
60
|
-
createSvg(span, SPINNER, {});
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
getOuter() {
|
|
64
|
-
return this.$outer;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
hideProcessing() {
|
|
68
|
-
clearTimeout(this._timerId);
|
|
69
|
-
removeClass(this.$outer, PROCESSING_CN);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
destroy() {
|
|
73
|
-
super.destroy();
|
|
74
|
-
const parent = this.$outer.parentNode;
|
|
75
|
-
parent.removeChild(this.$outer);
|
|
76
|
-
this.$outer = null;
|
|
77
|
-
}
|
|
78
|
-
}
|
package/src/extensions/c2pa.js
DELETED
|
@@ -1,350 +0,0 @@
|
|
|
1
|
-
// import BaseExtension from './base';
|
|
2
|
-
|
|
3
|
-
// import { createElement } from '../utils';
|
|
4
|
-
|
|
5
|
-
// import opener from './helpers/clickOpener';
|
|
6
|
-
// import popover from './helpers/popover';
|
|
7
|
-
|
|
8
|
-
// import createSvg, { C2PA, CHEVRON_DOWN, EXT_LINK, INFO, LOCK } from '../svgs';
|
|
9
|
-
// import { ValidationResult } from '@ravnur-inc/c2pa';
|
|
10
|
-
|
|
11
|
-
// const CN = 'rmp-ext-c2pa';
|
|
12
|
-
// const CN_VISIBLE = `${CN}--visible`;
|
|
13
|
-
// const CN_NO_DATA = `${CN}--no-data`;
|
|
14
|
-
// const CN_INVALID = `${CN}--invalid`;
|
|
15
|
-
// const BUTTON_CN = `${CN}__button`;
|
|
16
|
-
// const SELECTOR_CN = `${CN}__selector`;
|
|
17
|
-
// const SELECTOR_OPEN_CN = `${SELECTOR_CN}--open`;
|
|
18
|
-
// const VIEW_MORE_CN = `${CN}__view-more`;
|
|
19
|
-
// const ITEMS_WRAPPER_CN = `${CN}__items-wrapper`;
|
|
20
|
-
// const ITEMS_STATUS_WRAPPER_CN = `${CN}__items-status--wrapper`;
|
|
21
|
-
// const ITEMS_STATUS_CN = `${CN}__items-status`;
|
|
22
|
-
// const ITEMS_STATUS_SUCCESS_CN = `${CN}__items-status--success`;
|
|
23
|
-
// const ITEMS_STATUS_FAILED_CN = `${CN}__items-status--invalid`;
|
|
24
|
-
// const ITEMS_STATUS_NO_DATA_CN = `${CN}__items-status--no-data`;
|
|
25
|
-
// const ITEMS_STATUS_UNDEFINED = `${CN}__items-status--undefined`;
|
|
26
|
-
// const ITEM_CN = `${CN}__item`;
|
|
27
|
-
// const ITEM_CN_INVALID = `${ITEM_CN}--invalid`;
|
|
28
|
-
// const ITEM_COLLAPSED_CN = `${CN}__item--collapsed`;
|
|
29
|
-
// const ITEM_LINE_CN = `${CN}__item--line`;
|
|
30
|
-
// const ITEM_TITLE_CN = `${ITEM_CN}--title`;
|
|
31
|
-
// const ITEM_INFO_WRAPPER_CN = `${ITEM_CN}--info-wrapper`;
|
|
32
|
-
// const ITEM_STATUS_MESSAGE_CN = `${ITEM_CN}--status-message`;
|
|
33
|
-
// const ITEM_STATUS_MESSAGE_EXTENDED_CN = `${ITEM_CN}--status-message-extended`;
|
|
34
|
-
// const ITEM_THUMBNAIL_CN = `${ITEM_CN}--thumbnail`;
|
|
35
|
-
// const ITEM_SECTION_TITLE = `${ITEM_CN}--section-title`;
|
|
36
|
-
// const ITEM_WRAPPER_CN = `${CN}__item--wrapper`;
|
|
37
|
-
// const ITEM_TOGGLER_CN = `${CN}__item--toggler`;
|
|
38
|
-
// const ITEM_TOGGLER_OPENED_CN = `${CN}__item--toggler-opened`;
|
|
39
|
-
// const ITEM_DETAILS_CN = `${CN}__item-details`;
|
|
40
|
-
// const ITEM_DETAILS_VISIBLE_CN = `${CN}__item-details-visible`;
|
|
41
|
-
// const ITEM_DETAILS_ISSUER_ICON_CN = `${ITEM_DETAILS_CN}--icon`;
|
|
42
|
-
// const ITEM_DETAILS_ISSUER_WRAPPER_CN = `${ITEM_DETAILS_CN}--wrapper`;
|
|
43
|
-
// const ITEM_DETAILS_ISSUER_CN = `${ITEM_DETAILS_CN}--issuer`;
|
|
44
|
-
// const ITEM_DETAILS_ISSUER_TITLE_CN = `${ITEM_DETAILS_CN}--issuer-title`;
|
|
45
|
-
// const NO_DATA_MESSAGE_CN = `${CN}__no-data-message`;
|
|
46
|
-
// const NO_DATA_MESSAGE_WRAPPER_CN = `${CN}__no-data-message-wrapper`;
|
|
47
|
-
|
|
48
|
-
// const LEARN_MORE_LINK = 'https://c2pa.org/';
|
|
49
|
-
|
|
50
|
-
// // FIXME: RMP-2900 Temprorary hardcode for demo purposes, will be removed later
|
|
51
|
-
// const ravnurLogo = () => {
|
|
52
|
-
// const pattern = `pattern-${Math.random().toString(36)}`;
|
|
53
|
-
|
|
54
|
-
// return `
|
|
55
|
-
// <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
56
|
-
// <rect width="24" height="24" fill="url(#${pattern})"/>
|
|
57
|
-
// <defs>
|
|
58
|
-
// <pattern id="${pattern}" patternContentUnits="objectBoundingBox" width="1" height="1">
|
|
59
|
-
// <use xlink:href="#image0_89_4522" transform="scale(0.00195312)"/>
|
|
60
|
-
// </pattern>
|
|
61
|
-
// <image id="image0_89_4522" width="512" height="512" xlink:href="data:image/png;base64,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"/>
|
|
62
|
-
// </defs>
|
|
63
|
-
// </svg>
|
|
64
|
-
// `;
|
|
65
|
-
// };
|
|
66
|
-
|
|
67
|
-
// // FIXME: RMP-2900 Temprorary hardcode for demo purposes, will be removed later
|
|
68
|
-
// const micrasoftLogo = () => {
|
|
69
|
-
// const pattern = `pattern-${Math.random().toString(36)}`;
|
|
70
|
-
|
|
71
|
-
// return `
|
|
72
|
-
// <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
73
|
-
// <rect width="24" height="24" fill="url(#${pattern})"/>
|
|
74
|
-
// <defs>
|
|
75
|
-
// <pattern id="${pattern}" patternContentUnits="objectBoundingBox" width="1" height="1">
|
|
76
|
-
// <use xlink:href="#image0_89_4532" transform="scale(0.00357143)"/>
|
|
77
|
-
// </pattern>
|
|
78
|
-
// <image id="image0_89_4532" width="280" height="280" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARgAAAEYCAYAAACHjumMAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADWUlEQVR42u3coW7TURyG4bdkmsANTOwGtjuYG5YEi9tdzBDuYRJJkA0WDBIzySyiQTYpIYiKZiC4AHaalGSH5/Ffmvxy8rp/CwAAAAAAAAAAAAAAAODvFqODH89PnlRnTje1bXXz+P3X3X0Hrz52Uh073dTWry/6MjI42uNHzqpPbj21VXVafR/YXFZXTje1ZfViZPDIzYBDERhAYACBARAYQGAAgQEQGEBgAIEBEBhAYACBARAYQGAAgQEQGEBgAIEBEBhAYACBARAYQGAAgQEQGEBgAIEBEBhAYAAEBhAYQGAABAYQGEBgAAQGEBhAYAAEBhAYQGAABAYQGEBgAAQGEBhAYAAEBhAYQGAABAYQGEBgAAQGEBhAYAAEBhAYAIEBBAYQGACBAQQGEBgAgQEEBhAYAIEBBAYQGACBAQQGEBgAgQEEBhAYAIEBBAYQGACBAQQGEBgAgQEEBhAYAIEBBAZAYACBAQQGQGAAgQEEBkBgAIEBBAZAYACBAQQGQGAAgQEEBkBgAIEBBAZAYACBAQQGQGAAgQEEBkBgAIEBBAZAYACBARAYQGCAh+loj822Wjnd1L5Vd4ObjXcxvfW/CMxNderWU7urfg5urqs3Tje1nRMAAAAAAAAAAAAAAMB/bTG8eLs5qS6dbmqb6rqXT7f3Hfz60EV17nRTu108693IYJ+PHY+rK7ee2qo/Hy5uBzbn3sX0ljUWGP8HAxyMwAACAwgMgMAAAgMIDIDAAAIDCAyAwAACAwgMgMAAAgMIDIDAAAIDCAyAwAACAwgMgMAAAgMIDIDAAAIDCAyAwAACAyAwgMAAAgMgMIDAAAIDIDCAwAACAyAwgMAAAgMgMIDAAAIDIDCAwAACAyAwgMAAAgMgMIDAAAIDIDCAwAACAyAwgMAACAwgMIDAAAgMIDCAwAAIDCAwgMAACAwgMIDAAAgMIDCAwAAIDCAwgMAACAwgMIDAAAgMIDCAwAAIDCAwgMAACAwgMAACAwgMIDAAAgMIDCAwAAIDCAwgMAACAwgMIDAAAgMIDCAwAAIDCAwgMAACAwgMIDAAAgMIDCAwAAIDCAwgMAACAwgMgMAAAgM8TEd7bNbV0ummtq52g5tb72J6n50AAAAAAAAAAAAAAAAAOITfItIwOtIh4WoAAAAASUVORK5CYII="/>
|
|
79
|
-
// </defs>
|
|
80
|
-
// </svg>
|
|
81
|
-
// `;
|
|
82
|
-
// };
|
|
83
|
-
|
|
84
|
-
// export default class C2PAExtension extends BaseExtension {
|
|
85
|
-
// constructor(player, state, options) {
|
|
86
|
-
// super(player, state, options, ['c2painit', 'c2pafragment', 'c2paexception']);
|
|
87
|
-
// this.logger.debug('c2pa:extension:creating');
|
|
88
|
-
|
|
89
|
-
// this.render();
|
|
90
|
-
// this.init();
|
|
91
|
-
// }
|
|
92
|
-
|
|
93
|
-
// render() {
|
|
94
|
-
// this.$el = createElement('div', { class: CN });
|
|
95
|
-
// this.$button = createElement('button', { type: 'button', class: BUTTON_CN }, this.$el);
|
|
96
|
-
// this.$selector = createElement('div', { class: SELECTOR_CN }, this.$el);
|
|
97
|
-
// this.$statusWrapper = createElement('div', { class: ITEMS_STATUS_WRAPPER_CN }, this.$selector);
|
|
98
|
-
// this.$itemsWrapper = createElement('div', { class: `${ITEMS_WRAPPER_CN} tab-content` }, this.$selector);
|
|
99
|
-
|
|
100
|
-
// createSvg(this.$button, C2PA);
|
|
101
|
-
// this._renderViewMore();
|
|
102
|
-
// }
|
|
103
|
-
|
|
104
|
-
// init() {
|
|
105
|
-
// const $button = this.$button;
|
|
106
|
-
// const $selector = this.$selector;
|
|
107
|
-
// const reposition = false;
|
|
108
|
-
// const closeOnClick = false;
|
|
109
|
-
|
|
110
|
-
// opener(this, {
|
|
111
|
-
// $button,
|
|
112
|
-
// $selector,
|
|
113
|
-
// SELECTOR_OPEN_CN,
|
|
114
|
-
// reposition,
|
|
115
|
-
// closeOnClick,
|
|
116
|
-
// firstFocusItemSelector: `.${ITEM_CN}`
|
|
117
|
-
// });
|
|
118
|
-
|
|
119
|
-
// popover(this, { $button, text: this.$t('c2pa') });
|
|
120
|
-
// }
|
|
121
|
-
|
|
122
|
-
// _renderItem(item, collapsed) {
|
|
123
|
-
// const $item = createElement(
|
|
124
|
-
// 'div',
|
|
125
|
-
// { class: `${ITEM_CN} ${item.isValid ? '' : ITEM_CN_INVALID}` },
|
|
126
|
-
// this.$itemsWrapper
|
|
127
|
-
// );
|
|
128
|
-
|
|
129
|
-
// // Using template because there are too many tags and nestings
|
|
130
|
-
// $item.innerHTML = this.itemTemplate(item, collapsed);
|
|
131
|
-
// const toggleButton = $item.querySelector(`.${ITEM_TOGGLER_CN}`);
|
|
132
|
-
|
|
133
|
-
// if (toggleButton) {
|
|
134
|
-
// this._attachClickEvent(toggleButton);
|
|
135
|
-
// }
|
|
136
|
-
// }
|
|
137
|
-
|
|
138
|
-
// _renderStatus(status = null) {
|
|
139
|
-
// const statusClassess = {
|
|
140
|
-
// [ValidationResult.Complete]: ITEMS_STATUS_SUCCESS_CN,
|
|
141
|
-
// [ValidationResult.Failed]: ITEMS_STATUS_FAILED_CN,
|
|
142
|
-
// [ValidationResult.NoData]: ITEMS_STATUS_NO_DATA_CN,
|
|
143
|
-
// [null]: ITEMS_STATUS_UNDEFINED
|
|
144
|
-
// };
|
|
145
|
-
|
|
146
|
-
// const statusValues = {
|
|
147
|
-
// [ValidationResult.Complete]: this.$t('c2pa-status-valid'),
|
|
148
|
-
// [ValidationResult.Failed]: this.$t('c2pa-status-invalid'),
|
|
149
|
-
// [ValidationResult.NoData]: this.$t('c2pa-status-incomplete'),
|
|
150
|
-
// [null]: this.$t('c2pa-status-unknown')
|
|
151
|
-
// };
|
|
152
|
-
|
|
153
|
-
// this.$statusWrapper.innerText = this.$t('c2pa-video-credentials-status');
|
|
154
|
-
|
|
155
|
-
// const $status = createElement(
|
|
156
|
-
// 'div',
|
|
157
|
-
// { class: `${ITEMS_STATUS_CN} ${statusClassess[status]}` },
|
|
158
|
-
// this.$statusWrapper
|
|
159
|
-
// );
|
|
160
|
-
|
|
161
|
-
// $status.innerText = statusValues[status];
|
|
162
|
-
|
|
163
|
-
// this.$el.dataset.status = status;
|
|
164
|
-
|
|
165
|
-
// if (status === ValidationResult.Failed) {
|
|
166
|
-
// this.$el.classList.add(CN_INVALID);
|
|
167
|
-
// }
|
|
168
|
-
|
|
169
|
-
// if (status === ValidationResult.NoData) {
|
|
170
|
-
// this.$el.classList.add(CN_NO_DATA);
|
|
171
|
-
// }
|
|
172
|
-
// }
|
|
173
|
-
|
|
174
|
-
// _renderViewMore() {
|
|
175
|
-
// const $button = createElement('a', {
|
|
176
|
-
// class: VIEW_MORE_CN,
|
|
177
|
-
// href: LEARN_MORE_LINK,
|
|
178
|
-
// target: '_blank'
|
|
179
|
-
// }, this.$selector);
|
|
180
|
-
// $button.innerText = this.$t('view-more');
|
|
181
|
-
// createSvg($button, EXT_LINK, { width: 13, height: 13 });
|
|
182
|
-
// }
|
|
183
|
-
|
|
184
|
-
// _renderInfoMessage(message) {
|
|
185
|
-
// this.$itemsWrapper.innerHTML = '';
|
|
186
|
-
// const $messageWrapper = createElement('div', { class: NO_DATA_MESSAGE_WRAPPER_CN }, this.$itemsWrapper);
|
|
187
|
-
// createSvg($messageWrapper, INFO, { width: 24, height: 24 });
|
|
188
|
-
|
|
189
|
-
// const $message = createElement('div', { class: NO_DATA_MESSAGE_CN }, $messageWrapper);
|
|
190
|
-
// $message.innerText = message;
|
|
191
|
-
// }
|
|
192
|
-
|
|
193
|
-
// _attachClickEvent(toggler) {
|
|
194
|
-
// toggler.addEventListener('click', (e) => {
|
|
195
|
-
// e.preventDefault();
|
|
196
|
-
|
|
197
|
-
// this.handleClick(toggler);
|
|
198
|
-
// });
|
|
199
|
-
// }
|
|
200
|
-
|
|
201
|
-
// handleClick(toggler) {
|
|
202
|
-
// const parent = toggler.parentNode;
|
|
203
|
-
// const detailsWrapper = parent.querySelector(`.${ITEM_INFO_WRAPPER_CN}`);
|
|
204
|
-
// detailsWrapper.classList.toggle(ITEM_DETAILS_VISIBLE_CN);
|
|
205
|
-
// toggler.classList.toggle(ITEM_TOGGLER_OPENED_CN);
|
|
206
|
-
// }
|
|
207
|
-
|
|
208
|
-
// getOuter() {
|
|
209
|
-
// return this.$el;
|
|
210
|
-
// }
|
|
211
|
-
|
|
212
|
-
// onC2painit({ status, data }) {
|
|
213
|
-
// // // Last track was invalid, stop re-rendering
|
|
214
|
-
// if (this.$el.dataset.status && this.$el.dataset.status !== ValidationResult.Complete) {
|
|
215
|
-
// return;
|
|
216
|
-
// }
|
|
217
|
-
|
|
218
|
-
// this.$itemsWrapper.innerHTML = '';
|
|
219
|
-
|
|
220
|
-
// this.$el.classList.add(CN_VISIBLE);
|
|
221
|
-
// this._renderStatus(status);
|
|
222
|
-
|
|
223
|
-
// if (status === ValidationResult.NoData) {
|
|
224
|
-
// this._renderInfoMessage(this.$t('c2pa-no-data-message'));
|
|
225
|
-
|
|
226
|
-
// return;
|
|
227
|
-
// }
|
|
228
|
-
|
|
229
|
-
// try {
|
|
230
|
-
// if (data.length > 1) {
|
|
231
|
-
// for (let i = 0; i < data.length; i++) {
|
|
232
|
-
// this._renderItem(data[i], true);
|
|
233
|
-
// }
|
|
234
|
-
// } else {
|
|
235
|
-
// this._renderItem(data[0]);
|
|
236
|
-
// }
|
|
237
|
-
// } catch (e) {
|
|
238
|
-
// console.error(e);
|
|
239
|
-
// }
|
|
240
|
-
// }
|
|
241
|
-
|
|
242
|
-
// onC2pafragment(fragment) {
|
|
243
|
-
// if (!fragment.valid) {
|
|
244
|
-
// const $message = document.querySelector(`.${ITEM_STATUS_MESSAGE_CN}`);
|
|
245
|
-
// const $icon = document.querySelector(`.${ITEM_DETAILS_ISSUER_ICON_CN}`);
|
|
246
|
-
// const infoSvg = createSvg(document.createElement('div'), INFO, { width: 25, height: 25 });
|
|
247
|
-
|
|
248
|
-
// $message.innerText = this.$t('c2pa-signature-invalid');
|
|
249
|
-
// $icon.innerHTML = infoSvg.outerHTML;
|
|
250
|
-
// this.$statusWrapper.innerHTML = '';
|
|
251
|
-
// this._renderStatus(ValidationResult.Failed);
|
|
252
|
-
// }
|
|
253
|
-
// }
|
|
254
|
-
|
|
255
|
-
// onC2paexception() {
|
|
256
|
-
// this._renderStatus();
|
|
257
|
-
// this._renderInfoMessage(this.$t('c2pa-exception-subtitle'));
|
|
258
|
-
// }
|
|
259
|
-
|
|
260
|
-
// destroy() {
|
|
261
|
-
// super.destroy();
|
|
262
|
-
|
|
263
|
-
// const parent = this.$el.parentNode;
|
|
264
|
-
|
|
265
|
-
// parent.removeChild(this.$el);
|
|
266
|
-
|
|
267
|
-
// this.$el = null;
|
|
268
|
-
// this.$button = null;
|
|
269
|
-
// this.$selector = null;
|
|
270
|
-
// }
|
|
271
|
-
|
|
272
|
-
// encodedByTemplate(item) {
|
|
273
|
-
// return `
|
|
274
|
-
// <div>
|
|
275
|
-
// <div class="${ITEM_SECTION_TITLE}">${this.$t('c2pa-encoded-by')}</div>
|
|
276
|
-
// <div class="${ITEM_WRAPPER_CN}">
|
|
277
|
-
// <div class="${ITEM_THUMBNAIL_CN}">${micrasoftLogo()} </div>
|
|
278
|
-
// <div class="${ITEM_TITLE_CN}">${item.encoder[0].name}</div>
|
|
279
|
-
// </div>
|
|
280
|
-
// </div>
|
|
281
|
-
// `;
|
|
282
|
-
// }
|
|
283
|
-
|
|
284
|
-
// signerDetailsTemplate(item, statusSVG) {
|
|
285
|
-
// return `
|
|
286
|
-
// <div>
|
|
287
|
-
// <div class="${ITEM_DETAILS_ISSUER_ICON_CN}">${statusSVG.outerHTML}</div>
|
|
288
|
-
// <div class="${ITEM_DETAILS_ISSUER_WRAPPER_CN}">
|
|
289
|
-
// <div class="${ITEM_DETAILS_ISSUER_CN}">
|
|
290
|
-
// <div class="${ITEM_DETAILS_ISSUER_TITLE_CN}">${this.$t('c2pa-issued-to')}</div>
|
|
291
|
-
// <div>${item.signer}</div>
|
|
292
|
-
// </div>
|
|
293
|
-
// <div class="${ITEM_DETAILS_ISSUER_CN}">
|
|
294
|
-
// <div class="${ITEM_DETAILS_ISSUER_TITLE_CN}">${this.$t('c2pa-issued-by')}</div>
|
|
295
|
-
// <div>${item.issuer}</div>
|
|
296
|
-
// </div>
|
|
297
|
-
// </div>
|
|
298
|
-
// </div>
|
|
299
|
-
// `;
|
|
300
|
-
// }
|
|
301
|
-
|
|
302
|
-
// itemTemplate(item, collapsed = false) {
|
|
303
|
-
// let statusMessage = this.$t('c2pa-signature-valid');
|
|
304
|
-
// let statusMessageExtended = this.$t('c2pa-signature-valid-extended');
|
|
305
|
-
// // const companyPlaceholderSvg = createSvg(document.createElement('div'), COMPANY_PLACEHOLDER);
|
|
306
|
-
// const caretSvg = createSvg(document.createElement('div'), CHEVRON_DOWN, { height: 25, width: 25 });
|
|
307
|
-
// let statusSVG = createSvg(document.createElement('div'), LOCK, { width: 25, height: 25 });
|
|
308
|
-
|
|
309
|
-
// if (!item.isValid) {
|
|
310
|
-
// statusMessage = this.$t('c2pa-signature-invalid');
|
|
311
|
-
// statusMessageExtended = this.$t('c2pa-signature-invalid');
|
|
312
|
-
// statusSVG = createSvg(document.createElement('div'), INFO, { width: 25, height: 25 });
|
|
313
|
-
// this._renderStatus(ValidationResult.Failed);
|
|
314
|
-
// }
|
|
315
|
-
|
|
316
|
-
// if (!item.encoder || !item.signer) {
|
|
317
|
-
// return `
|
|
318
|
-
// <div class="${collapsed ? ITEM_COLLAPSED_CN : ''}" tabindex="0">
|
|
319
|
-
// <div class="${ITEM_WRAPPER_CN}">
|
|
320
|
-
// <div class="${ITEM_THUMBNAIL_CN}">${statusSVG.outerHTML}</div>
|
|
321
|
-
// <div class="${ITEM_INFO_WRAPPER_CN}">
|
|
322
|
-
// <div class="${ITEM_STATUS_MESSAGE_CN}">${statusMessage}</div>
|
|
323
|
-
// </div>
|
|
324
|
-
// </div>
|
|
325
|
-
// </div>
|
|
326
|
-
// `;
|
|
327
|
-
// }
|
|
328
|
-
|
|
329
|
-
// return `
|
|
330
|
-
// <div class="${collapsed ? ITEM_COLLAPSED_CN : ''}" tabindex="0">
|
|
331
|
-
// ${collapsed ? `<div class="${ITEM_LINE_CN}"></div>` : ''}
|
|
332
|
-
// ${!collapsed ? `<div class="${ITEM_SECTION_TITLE}">${this.$t('c2pa-video-owner')}</div>` : ''}
|
|
333
|
-
// <div class="${ITEM_WRAPPER_CN}">
|
|
334
|
-
// <div class="${ITEM_THUMBNAIL_CN}">${ravnurLogo()}</div>
|
|
335
|
-
// <div class="${ITEM_INFO_WRAPPER_CN}">
|
|
336
|
-
// <div class="${ITEM_TITLE_CN}">${item.signer}</div>
|
|
337
|
-
// <div class="${ITEM_STATUS_MESSAGE_CN}">${statusMessage}</div>
|
|
338
|
-
// <div class="${ITEM_STATUS_MESSAGE_EXTENDED_CN}">${statusMessageExtended}</div>
|
|
339
|
-
// <div class="${ITEM_DETAILS_CN}">
|
|
340
|
-
// ${this.signerDetailsTemplate(item, statusSVG)}
|
|
341
|
-
// ${collapsed ? this.encodedByTemplate(item) : ''}
|
|
342
|
-
// </div>
|
|
343
|
-
// </div>
|
|
344
|
-
// <button class="${ITEM_TOGGLER_CN}">${caretSvg.outerHTML}</button>
|
|
345
|
-
// </div>
|
|
346
|
-
// ${!collapsed ? this.encodedByTemplate(item) : ''}
|
|
347
|
-
// </div>
|
|
348
|
-
// `;
|
|
349
|
-
// }
|
|
350
|
-
// }
|