@gcorevideo/player 2.22.13 → 2.22.15
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/assets/bottom-gear/gear.scss +20 -13
- package/assets/clappr-nerd-stats/button.ejs +2 -2
- package/assets/clappr-nerd-stats/clappr-nerd-stats.scss +0 -43
- package/assets/context-menu/context_menu.ejs +14 -6
- package/assets/context-menu/context_menu.scss +18 -4
- package/assets/level-selector/button.ejs +3 -3
- package/assets/level-selector/style.scss +0 -5
- package/assets/playback-rate/button.ejs +2 -2
- package/dist/core.js +5 -2
- package/dist/index.css +815 -834
- package/dist/index.js +79 -78
- package/dist/plugins/index.css +669 -688
- package/dist/plugins/index.js +73 -99
- package/lib/Player.d.ts.map +1 -1
- package/lib/Player.js +4 -1
- package/lib/plugins/clappr-nerd-stats/ClapprNerdStats.d.ts.map +1 -1
- package/lib/plugins/click-to-pause/ClickToPause.js +1 -1
- package/lib/plugins/context-menu/ContextMenu.d.ts +33 -12
- package/lib/plugins/context-menu/ContextMenu.d.ts.map +1 -1
- package/lib/plugins/context-menu/ContextMenu.js +40 -37
- package/lib/plugins/media-control/MediaControl.d.ts +4 -1
- package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
- package/lib/plugins/media-control/MediaControl.js +30 -14
- package/lib/plugins/playback-rate/PlaybackRate.d.ts.map +1 -1
- package/lib/plugins/playback-rate/PlaybackRate.js +1 -22
- package/package.json +1 -1
- package/src/Player.ts +4 -3
- package/src/plugins/clappr-nerd-stats/ClapprNerdStats.ts +0 -1
- package/src/plugins/click-to-pause/ClickToPause.ts +1 -1
- package/src/plugins/context-menu/ContextMenu.ts +72 -56
- package/src/plugins/level-selector/__tests__/__snapshots__/QualityLevels.test.ts.snap +3 -3
- package/src/plugins/media-control/MediaControl.ts +36 -15
- package/src/plugins/media-control/__tests__/MediaControl.test.ts +101 -32
- package/src/plugins/media-control/__tests__/__snapshots__/MediaControl.test.ts.snap +20 -20
- package/src/plugins/playback-rate/PlaybackRate.ts +1 -24
- package/src/plugins/playback-rate/__tests__/PlaybackRate.test.ts +2 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/assets/clappr-nerd-stats/options-list.ejs +0 -9
- package/assets/clappr-nerd-stats/settings.ejs +0 -12
package/dist/plugins/index.js
CHANGED
|
@@ -12374,7 +12374,7 @@ function rankConnectionSpeed(dlSpeed) {
|
|
|
12374
12374
|
|
|
12375
12375
|
const pluginHtml$4 = "<% general = metrics.general %>\n<% counters = metrics.counters %>\n<% timers = metrics.timers %>\n<% extra = metrics.extra %>\n<% custom = metrics.custom %>\n\n<div class=\"stats-box\">\n <div class=\"stats-box-top\">\n <a class=\"close-button gplayer-lite-btn\" data-close-button>\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\n <g clip-path=\"url(#clip0_184_1489)\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M7.41376 6.00013L13.7068 -0.292872C14.0978 -0.683872 14.0978 -1.31587 13.7068 -1.70687C13.3158 -2.09787 12.6838 -2.09787 12.2928 -1.70687L5.99976 4.58613L-0.293238 -1.70687C-0.684238 -2.09787 -1.31624 -2.09787 -1.70724 -1.70687C-2.09824 -1.31587 -2.09824 -0.683872 -1.70724 -0.292872L4.58576 6.00013L-1.70724 12.2931C-2.09824 12.6841 -2.09824 13.3161 -1.70724 13.7071C-1.51224 13.9021 -1.25624 14.0001 -1.00024 14.0001C-0.744238 14.0001 -0.488238 13.9021 -0.293238 13.7071L5.99976 7.41413L12.2928 13.7071C12.4878 13.9021 12.7438 14.0001 12.9998 14.0001C13.2558 14.0001 13.5118 13.9021 13.7068 13.7071C14.0978 13.3161 14.0978 12.6841 13.7068 12.2931L7.41376 6.00013Z\"\n fill=\"white\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_184_1489\">\n <rect width=\"12\" height=\"12\" fill=\"white\"/>\n </clipPath>\n </defs>\n </svg>\n </a>\n </div>\n <div class=\"stats-box-main\">\n <ul>\n <li class=\"title\"><span>General</span></li>\n <li>\n Display resolution:\n <div><span><%= general.displayResolution %></span></div>\n </li>\n <li>\n Volume:\n <div><span><%= general.volume %></span></div>\n </li>\n <li>\n Connection speed:\n <div><span id=\"dlText\"><%= custom.connectionSpeed %></span> Mbps</div>\n </li>\n <li class=\"canvas-wrapper\">\n <canvas id=\"speedTestCanvas\" width=\"190\" height=\"20\"></canvas>\n </li>\n <li>\n Ping:\n <div><span id=\"pingText\"><%= custom.ping %></span> ms</div>\n </li>\n <li>\n Jitter:\n <div><span id=\"jitterText\"><%= custom.jitter %></span> ms</div>\n </li>\n </ul>\n\n <ul>\n <li class=\"title\"><span>Counters</span></li>\n <li>\n Plays:\n <div><span><%= counters.play %></span></div>\n </li>\n <li>\n Pauses:\n <div><span><%= counters.pause %></span></div>\n </li>\n <li>\n Errors:\n <div><span><%= counters.error %></span></div>\n </li>\n <li>\n Bufferings:\n <div><span><%= counters.buffering %></span></div>\n </li>\n <li>\n Decoded frames:\n <div><span><%= counters.decodedFrames %></span></div>\n </li>\n <li>\n Dropped frames:\n <div><span><%= counters.droppedFrames %></span></div>\n </li>\n <li>\n Frames per second:\n <div><span><%= counters.fps %></span></div>\n </li>\n <li>\n Bitrate changes:\n <div><span><%= counters.changeLevel %></span></div>\n </li>\n <li>\n Seeks:\n <div><span><%= counters.seek %></span></div>\n </li>\n <li>\n Fullscreen:\n <div><span><%= counters.fullscreen %></span></div>\n </li>\n <li>\n DVR seeks:\n <div><span><%= counters.dvrUsage %></span></div>\n </li>\n </ul>\n\n <ul>\n <li class=\"title\"><span>Timers</span></li>\n <li>\n Startup time:\n <div><span><%= timers.startup %></span></div>\n </li>\n <li>\n Watching time:\n <div><span><%= timers.watch %></span></div>\n </li>\n <li>\n Pause time:\n <div><span><%= timers.pause %></span></div>\n </li>\n <li>\n Buffering time:\n <div><span><%= timers.buffering %></span></div>\n </li>\n <li>\n Session time:\n <div><span><%= timers.session %></span></div>\n </li>\n <!-- <li>-->\n <!-- Latency:-->\n <!-- <div><span><%= timers.latency %></span></div>-->\n <!-- </li>-->\n </ul>\n\n <ul>\n <li class=\"title\"><span>Extra</span></li>\n <li>\n Playback:\n <div><span><%= extra.playbackName %></span></div>\n </li>\n <li>\n Playback type:\n <div><span><%= extra.playbackType %></span></div>\n </li>\n <li>\n Buffer size:\n <div><span><%= extra.buffersize %></span></div>\n </li>\n <li>\n Video duration:\n <div><span><%= extra.duration %></span></div>\n </li>\n <li>\n Current time:\n <div><span><%= extra.currentTime %></span></div>\n </li>\n <li>\n Bitrate weighted mean:\n <div><span><%= extra.bitrateWeightedMean %></span></div>\n </li>\n <li>\n Bitrate most used:\n <div><span><%= extra.bitrateMostUsed %></span></div>\n </li>\n <li>\n % Watched:\n <div><span><%= extra.watchedPercentage %></span></div>\n </li>\n <li>\n % Buffering:\n <div><span><%= extra.bufferingPercentage %></span></div>\n </li>\n </ul>\n </div>\n <div class=\"speedtest-summary\">\n <div class=\"speedtest-summary-header\">Your internet quality summary</div>\n <div class=\"speedtest-summary-block\">\n <div class=\"speedtest-summary-subblock\">\n <div class=\"speedtest-summary-subblock-content\">\n <div class=\"speedtest-quality\">\n <div class=\"speedtest-quality-header\">VOD: <%= custom.vodQuality %></div>\n <div class=\"speedtest-quality-content\" data-streaming-type=\"vod\">\n <div class=\"speedtest-quality-content-item\"></div>\n <div class=\"speedtest-quality-content-item\"></div>\n <div class=\"speedtest-quality-content-item\"></div>\n <div class=\"speedtest-quality-content-item\"></div>\n <div class=\"speedtest-quality-content-item\"></div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"speedtest-summary-subblock\">\n <div class=\"speedtest-summary-subblock-content\">\n <div class=\"speedtest-quality\">\n <div class=\"speedtest-quality-header\">Live: <%= custom.liveQuality %></div>\n <div class=\"speedtest-quality-content\" data-streaming-type=\"live\">\n <div class=\"speedtest-quality-content-item\"></div>\n <div class=\"speedtest-quality-content-item\"></div>\n <div class=\"speedtest-quality-content-item\"></div>\n <div class=\"speedtest-quality-content-item\"></div>\n <div class=\"speedtest-quality-content-item\"></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"speedtest-footer\">\n <!-- <a class=\"speedtest-footer-about-link\" href=\"\" target=\"_blank\">I am not a nerd, what's this all about?</a>-->\n <button class=\"gplayer-lite-btn speedtest-btn speedtest-footer-refresh\" data-refresh-button type=\"button\">\n <svg width=\"12\" height=\"10\" viewBox=\"0 0 12 10\" fill=\"none\">\n <path\n d=\"M6.03968 0.124998C3.64268 0.124998 1.67268 1.9565 1.48068 4.2915H1.00018C0.925833 4.29146 0.853156 4.31353 0.791378 4.35489C0.729601 4.39625 0.681511 4.45503 0.653218 4.52378C0.624925 4.59253 0.617705 4.66814 0.632476 4.74101C0.647248 4.81387 0.683343 4.88069 0.736177 4.933L1.57618 5.766C1.64641 5.83561 1.74129 5.87467 1.84018 5.87467C1.93906 5.87467 2.03395 5.83561 2.10418 5.766L2.94418 4.933C2.99701 4.88069 3.03311 4.81387 3.04788 4.74101C3.06265 4.66814 3.05543 4.59253 3.02714 4.52378C2.99884 4.45503 2.95075 4.39625 2.88898 4.35489C2.8272 4.31353 2.75452 4.29146 2.68018 4.2915H2.23368C2.42368 2.376 4.05268 0.874998 6.03968 0.874998C6.6948 0.873639 7.33932 1.04039 7.91158 1.35931C8.48384 1.67822 8.9647 2.13863 9.30818 2.6965C9.33331 2.73978 9.36686 2.7776 9.40684 2.80771C9.44682 2.83783 9.49243 2.85963 9.54097 2.87184C9.58951 2.88405 9.64001 2.88643 9.68948 2.87881C9.73895 2.8712 9.7864 2.85377 9.82902 2.82753C9.87165 2.80129 9.90859 2.76679 9.93767 2.72605C9.96675 2.68531 9.98739 2.63916 9.99835 2.59032C10.0093 2.54148 10.0104 2.49095 10.0015 2.44168C9.99264 2.39242 9.974 2.34544 9.94668 2.3035C9.53615 1.63664 8.96146 1.08621 8.27752 0.704805C7.59359 0.323402 6.82277 0.123774 6.03968 0.124998ZM10.4207 4.2335C10.3505 4.16419 10.2558 4.12532 10.1572 4.12532C10.0585 4.12532 9.96386 4.16419 9.89368 4.2335L9.05018 5.0665C8.9972 5.11874 8.96096 5.18557 8.94608 5.25847C8.93119 5.33137 8.93833 5.40705 8.96658 5.47588C8.99483 5.54472 9.04292 5.60359 9.10473 5.64501C9.16654 5.68644 9.23927 5.70853 9.31368 5.7085H9.76318C9.57218 7.6235 7.93768 9.125 5.94118 9.125C5.28399 9.12683 4.63729 8.96035 4.06269 8.64141C3.48808 8.32247 3.00473 7.86169 2.65868 7.303C2.63281 7.26107 2.59893 7.22465 2.55899 7.19582C2.51904 7.16699 2.47381 7.14631 2.42587 7.13495C2.37793 7.1236 2.32823 7.1218 2.27959 7.12966C2.23096 7.13752 2.18435 7.15488 2.14243 7.18075C2.05776 7.233 1.99731 7.31674 1.97438 7.41355C1.95146 7.51037 1.96793 7.61233 2.02018 7.697C2.43345 8.36457 3.01076 8.91521 3.69713 9.29647C4.38349 9.67772 5.15604 9.87689 5.94118 9.875C8.34518 9.875 10.3237 8.045 10.5162 5.7085H11.0002C11.0746 5.70853 11.1473 5.68644 11.2091 5.64501C11.2709 5.60359 11.319 5.54472 11.3473 5.47588C11.3755 5.40705 11.3827 5.33137 11.3678 5.25847C11.3529 5.18557 11.3167 5.11874 11.2637 5.0665L10.4207 4.2335Z\"\n fill=\"white\"/>\n </svg>\n Refresh\n </button>\n </div>\n</div>\n";
|
|
12376
12376
|
|
|
12377
|
-
const buttonHtml$3 = "<button class='nerd-button gplayer-lite-btn gcore-skin-text-color gear-option' id=\"nerd-stats-button\">\n <span class=\"
|
|
12377
|
+
const buttonHtml$3 = "<button class='nerd-button gplayer-lite-btn gcore-skin-text-color gear-option' id=\"nerd-stats-button\">\n <span class=\"gear-option_icon\"><%= icon %></span>\n <span class=\"gear-option_label\"><%= i18n.t('statistics') %></span>\n</button>\n";
|
|
12378
12378
|
|
|
12379
12379
|
const statsIcon = "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9.16675 14.1667H10.8334V9.16666H9.16675V14.1667ZM10.0001 7.5C10.2362 7.5 10.4342 7.42 10.5942 7.26C10.7542 7.1 10.834 6.90222 10.8334 6.66666C10.8334 6.43055 10.7534 6.2325 10.5934 6.0725C10.4334 5.9125 10.2356 5.83278 10.0001 5.83333C9.76397 5.83333 9.56591 5.91333 9.40591 6.07333C9.24591 6.23333 9.16619 6.43111 9.16675 6.66666C9.16675 6.90278 9.24675 7.10083 9.40675 7.26083C9.56675 7.42083 9.76453 7.50055 10.0001 7.5ZM10.0001 18.3333C8.8473 18.3333 7.76397 18.1144 6.75008 17.6767C5.73619 17.2389 4.85425 16.6453 4.10425 15.8958C3.35425 15.1458 2.76064 14.2639 2.32341 13.25C1.88619 12.2361 1.6673 11.1528 1.66675 10C1.66675 8.84722 1.88564 7.76389 2.32341 6.75C2.76119 5.73611 3.3548 4.85416 4.10425 4.10416C4.85425 3.35416 5.73619 2.76055 6.75008 2.32333C7.76397 1.88611 8.8473 1.66722 10.0001 1.66666C11.1529 1.66666 12.2362 1.88555 13.2501 2.32333C14.264 2.76111 15.1459 3.35472 15.8959 4.10416C16.6459 4.85416 17.2398 5.73611 17.6776 6.75C18.1154 7.76389 18.334 8.84722 18.3334 10C18.3334 11.1528 18.1145 12.2361 17.6767 13.25C17.239 14.2639 16.6454 15.1458 15.8959 15.8958C15.1459 16.6458 14.264 17.2397 13.2501 17.6775C12.2362 18.1153 11.1529 18.3339 10.0001 18.3333ZM10.0001 16.6667C11.8612 16.6667 13.4376 16.0208 14.7292 14.7292C16.0209 13.4375 16.6667 11.8611 16.6667 10C16.6667 8.13889 16.0209 6.5625 14.7292 5.27083C13.4376 3.97916 11.8612 3.33333 10.0001 3.33333C8.13897 3.33333 6.56258 3.97916 5.27091 5.27083C3.97925 6.5625 3.33341 8.13889 3.33341 10C3.33341 11.8611 3.97925 13.4375 5.27091 14.7292C6.56258 16.0208 8.13897 16.6667 10.0001 16.6667Z\" fill=\"#FFFFFF\"/>\n</svg>\n";
|
|
12380
12380
|
|
|
@@ -13318,42 +13318,18 @@ class ClipsPlugin extends UICorePlugin {
|
|
|
13318
13318
|
}
|
|
13319
13319
|
}
|
|
13320
13320
|
|
|
13321
|
-
const templateHtml$1 = "<ul class=\"context-menu-list\">\n <%
|
|
13322
|
-
|
|
13323
|
-
var version$1 = "2.22.13";
|
|
13324
|
-
|
|
13325
|
-
var packages = {
|
|
13326
|
-
"node_modules/@clappr/core": {
|
|
13327
|
-
version: "0.11.4"},
|
|
13328
|
-
"node_modules/dashjs": {
|
|
13329
|
-
version: "4.7.4"},
|
|
13330
|
-
"node_modules/hls.js": {
|
|
13331
|
-
version: "1.5.20"}};
|
|
13332
|
-
|
|
13333
|
-
/**
|
|
13334
|
-
* Version information about the gplayer and its main dependencies
|
|
13335
|
-
* @returns Version information about the gplayer and its main dependencies
|
|
13336
|
-
* @beta
|
|
13337
|
-
*/
|
|
13338
|
-
function version() {
|
|
13339
|
-
return {
|
|
13340
|
-
gplayer: version$1,
|
|
13341
|
-
clappr: packages['node_modules/@clappr/core'].version,
|
|
13342
|
-
dashjs: packages['node_modules/dashjs'].version,
|
|
13343
|
-
hlsjs: packages['node_modules/hls.js'].version,
|
|
13344
|
-
};
|
|
13345
|
-
}
|
|
13321
|
+
const templateHtml$1 = "<ul class=\"context-menu-list\" role=\"menu\" id=\"context-menu-options\">\n <% for (const item of options) { %>\n <li class=\"context-menu-list-item <%= item.class %>\">\n <button role=\"menuitem\" data-name=\"<%= item.name %>\">\n <% if (iconic) { %>\n <span class=\"context-menu-list-item_icon\"><%= item.icon || '' %></span>\n <% } %>\n <% if (item.labelKey) { %>\n <%= i18n.t(item.labelKey) %>\n <% } else { %>\n <%= item.label %>\n <% } %>\n </button>\n </li>\n <% } %>\n</ul>\n";
|
|
13346
13322
|
|
|
13347
13323
|
/**
|
|
13348
13324
|
* `PLUGIN` that displays a small context menu when clicked on the player container.
|
|
13349
13325
|
* @beta
|
|
13350
13326
|
* @remarks
|
|
13351
13327
|
* Configuration options - {@link ContextMenuPluginSettings}
|
|
13328
|
+
*
|
|
13329
|
+
* Should not be used together with {@link ClickToPause} plugin
|
|
13352
13330
|
*/
|
|
13353
13331
|
class ContextMenu extends UIContainerPlugin {
|
|
13354
|
-
|
|
13355
|
-
_url = '';
|
|
13356
|
-
menuOptions = [];
|
|
13332
|
+
open = false;
|
|
13357
13333
|
/**
|
|
13358
13334
|
* @internal
|
|
13359
13335
|
*/
|
|
@@ -13373,34 +13349,16 @@ class ContextMenu extends UIContainerPlugin {
|
|
|
13373
13349
|
return { class: 'context-menu' };
|
|
13374
13350
|
}
|
|
13375
13351
|
static template = tmpl(templateHtml$1);
|
|
13376
|
-
get label() {
|
|
13377
|
-
return this._label || 'Gcore player ver. ' + version().gplayer;
|
|
13378
|
-
}
|
|
13379
|
-
get url() {
|
|
13380
|
-
return this._url || 'https://gcore.com/';
|
|
13381
|
-
}
|
|
13382
|
-
get exposeVersion() {
|
|
13383
|
-
return {
|
|
13384
|
-
label: this.label,
|
|
13385
|
-
name: 'version',
|
|
13386
|
-
};
|
|
13387
|
-
}
|
|
13388
13352
|
/**
|
|
13389
13353
|
* @internal
|
|
13390
13354
|
*/
|
|
13391
13355
|
get events() {
|
|
13392
13356
|
return {
|
|
13393
|
-
'click [
|
|
13357
|
+
'click [role="menuitem"]': 'runAction',
|
|
13394
13358
|
};
|
|
13395
13359
|
}
|
|
13396
13360
|
constructor(container) {
|
|
13397
13361
|
super(container);
|
|
13398
|
-
if (this.options.contextMenu && this.options.contextMenu.label) {
|
|
13399
|
-
this._label = this.options.contextMenu.label;
|
|
13400
|
-
}
|
|
13401
|
-
if (this.options.contextMenu && this.options.contextMenu.url) {
|
|
13402
|
-
this._url = this.options.contextMenu.url;
|
|
13403
|
-
}
|
|
13404
13362
|
this.render();
|
|
13405
13363
|
$('body').on('click', this.hideOnBodyClick);
|
|
13406
13364
|
}
|
|
@@ -13408,8 +13366,8 @@ class ContextMenu extends UIContainerPlugin {
|
|
|
13408
13366
|
* @internal
|
|
13409
13367
|
*/
|
|
13410
13368
|
bindEvents() {
|
|
13411
|
-
this.listenTo(this.container, Events.CONTAINER_CONTEXTMENU, this.
|
|
13412
|
-
this.listenTo(this.container, Events.CONTAINER_CLICK, this.
|
|
13369
|
+
this.listenTo(this.container, Events.CONTAINER_CONTEXTMENU, this.onContextMenu);
|
|
13370
|
+
this.listenTo(this.container, Events.CONTAINER_CLICK, this.onContainerClick);
|
|
13413
13371
|
}
|
|
13414
13372
|
/**
|
|
13415
13373
|
* @internal
|
|
@@ -13418,34 +13376,55 @@ class ContextMenu extends UIContainerPlugin {
|
|
|
13418
13376
|
$('body').off('click', this.hideOnBodyClick);
|
|
13419
13377
|
return super.destroy();
|
|
13420
13378
|
}
|
|
13421
|
-
|
|
13379
|
+
onContainerClick() {
|
|
13380
|
+
this.hide();
|
|
13381
|
+
}
|
|
13382
|
+
onContextMenu(event) {
|
|
13383
|
+
if (!this.options.contextMenu?.options?.length) {
|
|
13384
|
+
return;
|
|
13385
|
+
}
|
|
13422
13386
|
event.preventDefault();
|
|
13387
|
+
event.stopPropagation();
|
|
13423
13388
|
const offset = this.container?.$el.offset();
|
|
13424
13389
|
this.show(event.pageY - offset.top, event.pageX - offset.left);
|
|
13425
13390
|
}
|
|
13426
13391
|
show(top, left) {
|
|
13427
|
-
this.
|
|
13428
|
-
if (this.options.contextMenu &&
|
|
13429
|
-
this.options.contextMenu.preventShowContextMenu) {
|
|
13430
|
-
return;
|
|
13431
|
-
}
|
|
13392
|
+
this.open = true;
|
|
13432
13393
|
this.$el.css({ top, left });
|
|
13433
13394
|
this.$el.show();
|
|
13434
13395
|
}
|
|
13435
13396
|
hide() {
|
|
13397
|
+
this.open = false;
|
|
13436
13398
|
this.$el.hide();
|
|
13437
13399
|
}
|
|
13438
|
-
|
|
13439
|
-
|
|
13400
|
+
runAction(event) {
|
|
13401
|
+
event.preventDefault();
|
|
13402
|
+
event.stopPropagation();
|
|
13403
|
+
const itemName = event.currentTarget.dataset.name;
|
|
13404
|
+
if (!itemName) {
|
|
13405
|
+
return;
|
|
13406
|
+
}
|
|
13407
|
+
const item = this.options.contextMenu?.options.find((option) => option.name === itemName);
|
|
13408
|
+
if (item?.handler) {
|
|
13409
|
+
item.handler();
|
|
13410
|
+
}
|
|
13411
|
+
this.hide();
|
|
13440
13412
|
}
|
|
13441
13413
|
/**
|
|
13442
13414
|
* @internal
|
|
13443
13415
|
*/
|
|
13444
13416
|
render() {
|
|
13445
|
-
this.
|
|
13446
|
-
|
|
13417
|
+
if (!this.options.contextMenu?.options?.length) {
|
|
13418
|
+
return this;
|
|
13419
|
+
}
|
|
13420
|
+
const options = this.options.contextMenu.options;
|
|
13421
|
+
this.$el.html(ContextMenu.template({
|
|
13422
|
+
options,
|
|
13423
|
+
i18n: this.container.i18n,
|
|
13424
|
+
iconic: options.some((option) => option.icon),
|
|
13425
|
+
}));
|
|
13447
13426
|
this.container.$el.append(this.$el); // TODO append to the container, turn into a container plugin
|
|
13448
|
-
this.hide();
|
|
13427
|
+
this.$el.hide();
|
|
13449
13428
|
return this;
|
|
13450
13429
|
}
|
|
13451
13430
|
hideOnBodyClick = () => {
|
|
@@ -14418,8 +14397,10 @@ class MediaControl extends UICorePlugin {
|
|
|
14418
14397
|
kibo;
|
|
14419
14398
|
lastMouseX = 0;
|
|
14420
14399
|
lastMouseY = 0;
|
|
14421
|
-
|
|
14400
|
+
metadataLoaded = false;
|
|
14401
|
+
hasUpdate = false;
|
|
14422
14402
|
persistConfig;
|
|
14403
|
+
renderTimerId = null;
|
|
14423
14404
|
rendered = false;
|
|
14424
14405
|
settings = INITIAL_SETTINGS;
|
|
14425
14406
|
userDisabled = false;
|
|
@@ -14605,8 +14586,10 @@ class MediaControl extends UICorePlugin {
|
|
|
14605
14586
|
this.listenTo(this.core.activeContainer, Events.CONTAINER_ENDED, this.ended);
|
|
14606
14587
|
this.listenTo(this.core.activeContainer, Events.CONTAINER_VOLUME, this.onVolumeChanged);
|
|
14607
14588
|
this.listenTo(this.core.activeContainer, Events.CONTAINER_OPTIONS_CHANGE, this.setInitialVolume);
|
|
14608
|
-
|
|
14609
|
-
this.
|
|
14589
|
+
this.listenTo(this.core.activeContainer, Events.CONTAINER_LOADEDMETADATA, this.onLoadedMetadata);
|
|
14590
|
+
this.listenTo(this.core, Events.CONTAINER_DESTROYED, () => {
|
|
14591
|
+
this.cancelRenderTimer();
|
|
14592
|
+
});
|
|
14610
14593
|
}
|
|
14611
14594
|
/**
|
|
14612
14595
|
* Hides the media control UI
|
|
@@ -14647,13 +14630,17 @@ class MediaControl extends UICorePlugin {
|
|
|
14647
14630
|
// TODO sort out, use single utility function
|
|
14648
14631
|
this.fullScreenOnVideoTagSupported = true;
|
|
14649
14632
|
}
|
|
14650
|
-
this.
|
|
14651
|
-
|
|
14652
|
-
this
|
|
14653
|
-
|
|
14654
|
-
|
|
14655
|
-
|
|
14656
|
-
|
|
14633
|
+
this.renderTimerId = setTimeout(() => {
|
|
14634
|
+
this.renderTimerId = null;
|
|
14635
|
+
this.metadataLoaded = true;
|
|
14636
|
+
this.render();
|
|
14637
|
+
if (this.core.activeContainer.getPlaybackType() === Playback.LIVE) {
|
|
14638
|
+
this.$el.addClass('live');
|
|
14639
|
+
}
|
|
14640
|
+
else {
|
|
14641
|
+
this.$el.removeClass('live');
|
|
14642
|
+
}
|
|
14643
|
+
}, 25);
|
|
14657
14644
|
}
|
|
14658
14645
|
updateVolumeUI() {
|
|
14659
14646
|
// this will be called after a render
|
|
@@ -14876,6 +14863,7 @@ class MediaControl extends UICorePlugin {
|
|
|
14876
14863
|
}
|
|
14877
14864
|
onActiveContainerChanged() {
|
|
14878
14865
|
this.fullScreenOnVideoTagSupported = false;
|
|
14866
|
+
this.metadataLoaded = false;
|
|
14879
14867
|
// set the new container to match the volume of the last one
|
|
14880
14868
|
this.setInitialVolume();
|
|
14881
14869
|
this.changeTogglePlay();
|
|
@@ -15095,7 +15083,7 @@ class MediaControl extends UICorePlugin {
|
|
|
15095
15083
|
const settingsChanged = serializeSettings(this.settings) !== serializeSettings(newSettings);
|
|
15096
15084
|
if (settingsChanged) {
|
|
15097
15085
|
this.settings = newSettings;
|
|
15098
|
-
this.
|
|
15086
|
+
this.hasUpdate = true;
|
|
15099
15087
|
this.render();
|
|
15100
15088
|
}
|
|
15101
15089
|
}
|
|
@@ -15323,6 +15311,7 @@ class MediaControl extends UICorePlugin {
|
|
|
15323
15311
|
* @internal
|
|
15324
15312
|
*/
|
|
15325
15313
|
destroy() {
|
|
15314
|
+
this.cancelRenderTimer();
|
|
15326
15315
|
$(document).unbind('mouseup', this.stopDrag);
|
|
15327
15316
|
$(document).unbind('mousemove', this.updateDrag);
|
|
15328
15317
|
$(document).unbind('touchend', this.stopDrag);
|
|
@@ -15330,6 +15319,12 @@ class MediaControl extends UICorePlugin {
|
|
|
15330
15319
|
this.unbindKeyEvents();
|
|
15331
15320
|
return super.destroy();
|
|
15332
15321
|
}
|
|
15322
|
+
cancelRenderTimer() {
|
|
15323
|
+
if (this.renderTimerId) {
|
|
15324
|
+
clearTimeout(this.renderTimerId);
|
|
15325
|
+
this.renderTimerId = null;
|
|
15326
|
+
}
|
|
15327
|
+
}
|
|
15333
15328
|
configure() {
|
|
15334
15329
|
this.trigger(Events.MEDIACONTROL_OPTIONS_CHANGE);
|
|
15335
15330
|
}
|
|
@@ -15337,8 +15332,8 @@ class MediaControl extends UICorePlugin {
|
|
|
15337
15332
|
* @internal
|
|
15338
15333
|
*/
|
|
15339
15334
|
render() {
|
|
15340
|
-
trace(`${T$a} render`, { needsUpdate: this.
|
|
15341
|
-
if (!this.
|
|
15335
|
+
trace(`${T$a} render`, { needsUpdate: this.hasUpdate, metadataLoaded: this.metadataLoaded });
|
|
15336
|
+
if (!this.hasUpdate || !this.metadataLoaded) {
|
|
15342
15337
|
return this;
|
|
15343
15338
|
}
|
|
15344
15339
|
const timeout = this.options.hideMediaControlDelay || 2000;
|
|
@@ -15388,7 +15383,7 @@ class MediaControl extends UICorePlugin {
|
|
|
15388
15383
|
this.core.$el.append(this.el);
|
|
15389
15384
|
this.rendered = true;
|
|
15390
15385
|
this.updateVolumeUI();
|
|
15391
|
-
this.
|
|
15386
|
+
this.hasUpdate = false;
|
|
15392
15387
|
// TODO setTimeout?
|
|
15393
15388
|
this.trigger(Events.MEDIACONTROL_RENDERED);
|
|
15394
15389
|
return this;
|
|
@@ -15949,7 +15944,7 @@ class PictureInPicture extends UICorePlugin {
|
|
|
15949
15944
|
}
|
|
15950
15945
|
}
|
|
15951
15946
|
|
|
15952
|
-
const buttonHtml$1 = "<button class='gplayer-lite-btn gcore-skin-text-color gear-option' id=\"playback-rate-button\">\n <span class=\"gear-option_speed-icon\"><%= speedIcon %></span>\n <span class=\"gear-option_label\"><%= i18n.t('playback_rate') %></span>\n <span class
|
|
15947
|
+
const buttonHtml$1 = "<button class='gplayer-lite-btn gcore-skin-text-color gear-option' id=\"playback-rate-button\">\n <span class=\"gear-option_speed-icon gear-option_icon\"><%= speedIcon %></span>\n <span class=\"gear-option_label\"><%= i18n.t('playback_rate') %></span>\n <span class='gear-option_value'><%= title %></span>\n <span class=\"gear-option_arrow-right-icon\"><%= arrowRightIcon %></span>\n</button>\n";
|
|
15953
15948
|
|
|
15954
15949
|
const listHtml$1 = "<button class=\"gplayer-lite-btn go-back gcore-skin-text-color\" id=\"playback-rate-back-button\">\n <span class=\"arrow-left-icon\"><%= arrowLeftIcon %></span>\n <%= i18n.t('playback_rate') %>\n</button>\n<ul class=\"gear-sub-menu\" id=\"playback-rate-menu\">\n <% for (const item of playbackRates) { %>\n <li<%= item.value === current ? ' class=\"current\"' : '' %>>\n <a href=\"#\" class=\"gear-sub-menu_btn gcore-skin-text-color<%= item.value === current ? ' gcore-skin-active' : '' %>\" data-rate=\"<%= item.value %>\">\n <span class=\"check-icon\"><%= checkIcon %></span>\n <%= item.label %>\n </a>\n </li>\n <% } %>\n</ul>";
|
|
15955
15950
|
|
|
@@ -16018,7 +16013,6 @@ class PlaybackRate extends UICorePlugin {
|
|
|
16018
16013
|
// private prevSelectedRate: string | undefined
|
|
16019
16014
|
selectedRate = DEFAULT_PLAYBACK_RATE;
|
|
16020
16015
|
metadataLoaded = false;
|
|
16021
|
-
// private playbackSettingsUpdateReceived = false
|
|
16022
16016
|
mountTimerId = null;
|
|
16023
16017
|
/**
|
|
16024
16018
|
* @internal
|
|
@@ -16077,14 +16071,8 @@ class PlaybackRate extends UICorePlugin {
|
|
|
16077
16071
|
}
|
|
16078
16072
|
onActiveContainerChange() {
|
|
16079
16073
|
this.metadataLoaded = false;
|
|
16080
|
-
// this.playbackSettingsUpdateReceived = false
|
|
16081
16074
|
this.listenTo(this.core.activePlayback, Events.PLAYBACK_STOP, this.onStop);
|
|
16082
16075
|
this.listenTo(this.core.activePlayback, Events.PLAYBACK_PLAY, this.onPlay);
|
|
16083
|
-
// this.listenTo(
|
|
16084
|
-
// this.core.activePlayback,
|
|
16085
|
-
// Events.PLAYBACK_SETTINGSUPDATE,
|
|
16086
|
-
// this.onSettingsUpdate,
|
|
16087
|
-
// )
|
|
16088
16076
|
this.listenTo(this.core.activePlayback, PlaybackEvents.PLAYBACK_RATE_CHANGED, this.onPlaybackRateChange);
|
|
16089
16077
|
this.listenTo(this.core.activeContainer, Events.CONTAINER_LOADEDMETADATA, this.onMetaDataLoaded);
|
|
16090
16078
|
}
|
|
@@ -16111,27 +16099,13 @@ class PlaybackRate extends UICorePlugin {
|
|
|
16111
16099
|
i18n: this.core.i18n,
|
|
16112
16100
|
})));
|
|
16113
16101
|
}
|
|
16114
|
-
// private onSettingsUpdate() {
|
|
16115
|
-
// trace(`${T} onSettingsUpdate`, {
|
|
16116
|
-
// playbackType: this.core.activePlayback.getPlaybackType(),
|
|
16117
|
-
// dvrEnabled: this.core.activePlayback.dvrEnabled,
|
|
16118
|
-
// })
|
|
16119
|
-
// this.playbackSettingsUpdateReceived = true
|
|
16120
|
-
// if (this.metadataLoaded) {
|
|
16121
|
-
// if (this.mountTimerId) {
|
|
16122
|
-
// clearTimeout(this.mountTimerId)
|
|
16123
|
-
// this.mountTimerId = null
|
|
16124
|
-
// }
|
|
16125
|
-
// this.mount()
|
|
16126
|
-
// }
|
|
16127
|
-
// }
|
|
16128
16102
|
onMetaDataLoaded() {
|
|
16129
16103
|
trace(`${T$7} onMetaDataLoaded`, {
|
|
16130
16104
|
playbackType: this.core.activePlayback.getPlaybackType(),
|
|
16131
16105
|
dvrEnabled: this.core.activePlayback.dvrEnabled,
|
|
16132
16106
|
});
|
|
16133
|
-
this.metadataLoaded = true;
|
|
16134
16107
|
this.mountTimerId = setTimeout(() => {
|
|
16108
|
+
this.metadataLoaded = true;
|
|
16135
16109
|
this.mountTimerId = null;
|
|
16136
16110
|
this.mount();
|
|
16137
16111
|
}, 25);
|
|
@@ -16548,7 +16522,7 @@ class Poster extends UIContainerPlugin {
|
|
|
16548
16522
|
}
|
|
16549
16523
|
}
|
|
16550
16524
|
|
|
16551
|
-
const buttonHtml = "<button class='gplayer-lite-btn gcore-skin-text-color gear-option' aria-haspopup=\"menu\">\n <span class=\"gear-
|
|
16525
|
+
const buttonHtml = "<button class='gplayer-lite-btn gcore-skin-text-color gear-option' aria-haspopup=\"menu\">\n <span class=\"gear-option_icon<%= isHd ? '' : ' hidden' %>\"><%= hdIcon %></span>\n <span class=\"gear-option_label\"><%= i18n.t('quality') %></span>\n <span class='gear-option_value'><%= currentText %></span>\n <span class=\"gear-option_arrow-right-icon\"><%= arrowRightIcon %></span>\n</button>\n";
|
|
16552
16526
|
|
|
16553
16527
|
const listHtml = "<button class=\"gplayer-lite-btn go-back gcore-skin-text-color\" id=\"level-selector-back-button\">\n <span class=\"arrow-left-icon\"><%= arrowLeftIcon %></span>\n <%= i18n.t('quality') %>\n</button>\n<ul class=\"gear-sub-menu quality-levels\" id=\"level-selector-menu\" role=\"menu\">\n <% if (!removeAuto) { %>\n <li>\n <a href=\"#\" class='gear-sub-menu_btn gcore-skin-text-color' data-id=\"-1\" id=\"level_selector_auto\">\n <span class=\"check-icon\"><%= checkIcon %></span>\n <%= i18n.t('auto') %>\n </a>\n </li>\n <% } %>\n <% for (const item of levels.slice().reverse()) {\n var disabled = maxLevel >= 0 && item.level > maxLevel\n var checked = item.level === current\n %>\n <li class=\"<%= disabled ? ' disabled' : ''%><%=checked ? ' current' : ''%>\">\n <a href=\"#\"\n class=\"gear-sub-menu_btn gcore-skin-text-color<%= checked ? ' gcore-skin-active' : '' %>\"\n data-id=\"<%= item.level %>\"\n data-disabled=\"<%= disabled %>\"\n data-checked=\"<%= checked %>\"\n role=\"menuitemradio\"\n id=\"level_selector_<%= item.width > item.height ? item.height : item.width %>\"\n >\n <span class=\"check-icon\"><%= checkIcon %></span>\n <%= labels[item.level] %>\n </a>\n </li>\n <% } %>\n</ul>\n";
|
|
16554
16528
|
|
package/lib/Player.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Player.d.ts","sourceRoot":"","sources":["../src/Player.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EACV,aAAa,EAEb,uBAAuB,EACxB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAGtD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEjE;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,WAAW,IACjD,CAAC,SAAS,WAAW,CAAC,IAAI,GACtB,CAAC,MAAM,CAAC,GACR,CAAC,SAAS,WAAW,CAAC,YAAY,GAClC,CAAC,MAAM,CAAC,GACR,CAAC,SAAS,WAAW,CAAC,UAAU,GAChC,CAAC,YAAY,CAAC,GACd,CAAC,SAAS,WAAW,CAAC,MAAM,GAC5B,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GACnC,CAAC,SAAS,WAAW,CAAC,UAAU,GAChC,CAAC,OAAO,CAAC,GACT,CAAC,SAAS,WAAW,CAAC,KAAK,GAC3B,CAAC,aAAa,CAAC,GACf,EAAE,CAAA;AAER;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,WAAW,IAAI,CACtD,GAAG,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAC1B,IAAI,CAAA;AAeT;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,aAAa,CAAA;AAI3D;;;;;;;GAOG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAgC;IAE9C,OAAO,CAAC,OAAO,CAAqB;IAEpC,OAAO,CAAC,MAAM,CAA4B;IAE1C,OAAO,CAAC,KAAK,CAAQ;IAErB,OAAO,CAAC,QAAQ,CAA2B;gBAE/B,MAAM,EAAE,YAAY;IAOhC;;;;OAIG;IACH,EAAE,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAIlE;;;;OAIG;IACH,GAAG,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAInE;;;;;;;;;OASG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC;IAIvC;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,QAAQ,CAAC,aAAa,EAAE,WAAW,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"Player.d.ts","sourceRoot":"","sources":["../src/Player.ts"],"names":[],"mappings":"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"}
|
package/lib/Player.js
CHANGED
|
@@ -93,6 +93,9 @@ export class Player {
|
|
|
93
93
|
* ```
|
|
94
94
|
*/
|
|
95
95
|
attachTo(playerElement) {
|
|
96
|
+
trace(`${T} attachTo`, {
|
|
97
|
+
player: !!this.player,
|
|
98
|
+
});
|
|
96
99
|
assert.ok(!this.player, 'Player already initialized');
|
|
97
100
|
assert.ok(playerElement, 'Player container element is required');
|
|
98
101
|
if (this.config.debug === 'all' || this.config.debug === 'clappr') {
|
|
@@ -304,9 +307,9 @@ export class Player {
|
|
|
304
307
|
trace(`${T} initPlayer`, {
|
|
305
308
|
autoPlay: coreOptions.autoPlay,
|
|
306
309
|
sources: coreOptions.sources,
|
|
310
|
+
player: !!this.player,
|
|
307
311
|
// TODO selected options
|
|
308
312
|
});
|
|
309
|
-
assert.ok(!this.player, 'Player already initialized');
|
|
310
313
|
const player = new PlayerClappr(coreOptions);
|
|
311
314
|
this.player = player;
|
|
312
315
|
this.bindCoreListeners();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClapprNerdStats.d.ts","sourceRoot":"","sources":["../../../src/plugins/clappr-nerd-stats/ClapprNerdStats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoB,IAAI,EAAa,MAAM,cAAc,CAAA;AAsB9E,OAAO,0DAA0D,CAAA;
|
|
1
|
+
{"version":3,"file":"ClapprNerdStats.d.ts","sourceRoot":"","sources":["../../../src/plugins/clappr-nerd-stats/ClapprNerdStats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoB,IAAI,EAAa,MAAM,cAAc,CAAA;AAsB9E,OAAO,0DAA0D,CAAA;AA+FjE;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,SAAS,CAAyB;IAE1C,OAAO,CAAC,aAAa,CAIpB;IAED,OAAO,CAAC,OAAO,CAAwB;IAEvC,OAAO,CAAC,OAAO,CAAQ;IAEvB,OAAO,CAAC,QAAQ,CAAU;IAE1B,OAAO,CAAC,YAAY,CAAc;IAElC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAuB;IAE7D;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAEvD;;OAEG;IACH,IAAa,UAAU;;;MAKtB;IAED;;OAEG;IACH,IAAa,MAAM;;;;MAMlB;IAED,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,sBAAsB,GAEjC;IAED,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,YAAY,GAEvB;gBAEW,IAAI,EAAE,IAAI;IAgBtB;;OAEG;IACM,UAAU;IAInB,OAAO,CAAC,WAAW;IAiCnB,OAAO,CAAC,MAAM;IAQd,OAAO,CAAC,IAAI;IAeZ,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,gBAAgB;IA+BxB,OAAO,CAAC,aAAa;IA4BrB,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACM,MAAM;IASf,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,gBAAgB;CAWzB"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import { ContainerPlugin, Events, Playback } from '@clappr/core';
|
|
6
6
|
import { trace } from '@gcorevideo/utils';
|
|
7
7
|
import { CLAPPR_VERSION } from '../../build.js';
|
|
8
|
-
const T = 'plugins.
|
|
8
|
+
const T = 'plugins.click_to_pause';
|
|
9
9
|
/**
|
|
10
10
|
* A small `PLUGIN` that toggles the playback state on click over the video container
|
|
11
11
|
* @beta
|
|
@@ -1,24 +1,47 @@
|
|
|
1
1
|
import { Container, UIContainerPlugin } from '@clappr/core';
|
|
2
2
|
import '../../../assets/context-menu/context_menu.scss';
|
|
3
|
+
/**
|
|
4
|
+
* @beta
|
|
5
|
+
*/
|
|
6
|
+
export type MenuOption = {
|
|
7
|
+
/**
|
|
8
|
+
* Menu item label text. One of `label` or `labelKey` must be specified.
|
|
9
|
+
*/
|
|
10
|
+
label?: string;
|
|
11
|
+
/**
|
|
12
|
+
* Menu item label localisation key, if specified, the `label` will be ignored
|
|
13
|
+
*/
|
|
14
|
+
labelKey?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Menu item name. Must be unique.
|
|
17
|
+
*/
|
|
18
|
+
name: string;
|
|
19
|
+
/**
|
|
20
|
+
* Menu item handler function
|
|
21
|
+
*/
|
|
22
|
+
handler?: () => void;
|
|
23
|
+
/**
|
|
24
|
+
* Menu item icon, plain HTML string
|
|
25
|
+
*/
|
|
26
|
+
icon?: string;
|
|
27
|
+
};
|
|
3
28
|
/**
|
|
4
29
|
* Context menu plugin settings
|
|
5
30
|
* @beta
|
|
6
31
|
*/
|
|
7
32
|
export interface ContextMenuPluginSettings {
|
|
8
|
-
|
|
9
|
-
url?: string;
|
|
10
|
-
preventShowContextMenu?: boolean;
|
|
33
|
+
options?: MenuOption[];
|
|
11
34
|
}
|
|
12
35
|
/**
|
|
13
36
|
* `PLUGIN` that displays a small context menu when clicked on the player container.
|
|
14
37
|
* @beta
|
|
15
38
|
* @remarks
|
|
16
39
|
* Configuration options - {@link ContextMenuPluginSettings}
|
|
40
|
+
*
|
|
41
|
+
* Should not be used together with {@link ClickToPause} plugin
|
|
17
42
|
*/
|
|
18
43
|
export declare class ContextMenu extends UIContainerPlugin {
|
|
19
|
-
private
|
|
20
|
-
private _url;
|
|
21
|
-
private menuOptions;
|
|
44
|
+
private open;
|
|
22
45
|
/**
|
|
23
46
|
* @internal
|
|
24
47
|
*/
|
|
@@ -36,14 +59,11 @@ export declare class ContextMenu extends UIContainerPlugin {
|
|
|
36
59
|
class: string;
|
|
37
60
|
};
|
|
38
61
|
private static readonly template;
|
|
39
|
-
private get label();
|
|
40
|
-
private get url();
|
|
41
|
-
private get exposeVersion();
|
|
42
62
|
/**
|
|
43
63
|
* @internal
|
|
44
64
|
*/
|
|
45
65
|
get events(): {
|
|
46
|
-
'click [
|
|
66
|
+
'click [role="menuitem"]': string;
|
|
47
67
|
};
|
|
48
68
|
constructor(container: Container);
|
|
49
69
|
/**
|
|
@@ -54,10 +74,11 @@ export declare class ContextMenu extends UIContainerPlugin {
|
|
|
54
74
|
* @internal
|
|
55
75
|
*/
|
|
56
76
|
destroy(): import("@clappr/core").UIObject;
|
|
57
|
-
private
|
|
77
|
+
private onContainerClick;
|
|
78
|
+
private onContextMenu;
|
|
58
79
|
private show;
|
|
59
80
|
private hide;
|
|
60
|
-
private
|
|
81
|
+
private runAction;
|
|
61
82
|
/**
|
|
62
83
|
* @internal
|
|
63
84
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContextMenu.d.ts","sourceRoot":"","sources":["../../../src/plugins/context-menu/ContextMenu.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ContextMenu.d.ts","sourceRoot":"","sources":["../../../src/plugins/context-menu/ContextMenu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,SAAS,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAIhF,OAAO,gDAAgD,CAAA;AAGvD;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,OAAO,CAAC,EAAE,UAAU,EAAE,CAAA;CACvB;AAID;;;;;;;GAOG;AACH,qBAAa,WAAY,SAAQ,iBAAiB;IAChD,OAAO,CAAC,IAAI,CAAQ;IAEpB;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;IACH,IAAa,UAAU;;MAEtB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAEzD;;OAEG;IACH,IAAa,MAAM;;MAIlB;gBAEW,SAAS,EAAE,SAAS;IAMhC;;OAEG;IACM,UAAU;IASnB;;OAEG;IACM,OAAO;IAKhB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,IAAI;IAKZ,OAAO,CAAC,SAAS;IAiBjB;;OAEG;IACM,MAAM;IAkBf,OAAO,CAAC,eAAe,CAEtB;CACF"}
|