ravnur-player-public 3.4.4 → 3.4.5

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 +10 -6
  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,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
- }
@@ -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
- // }