@gcorevideo/player 2.28.17 → 2.28.19
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/core.js +1 -1
- package/dist/index.css +184 -184
- package/dist/index.embed.js +26 -36
- package/dist/index.js +27 -44
- package/lib/plugins/media-control/MediaControl.d.ts +1 -0
- package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
- package/lib/plugins/media-control/MediaControl.js +26 -43
- package/package.json +1 -1
- package/src/plugins/media-control/MediaControl.ts +28 -43
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaControl.d.ts","sourceRoot":"","sources":["../../../src/plugins/media-control/MediaControl.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"MediaControl.d.ts","sourceRoot":"","sources":["../../../src/plugins/media-control/MediaControl.ts"],"names":[],"mappings":"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"}
|
|
@@ -312,10 +312,9 @@ export class MediaControl extends UICorePlugin {
|
|
|
312
312
|
this.listenTo(this.core.activeContainer, Events.CONTAINER_PAUSE, this.changeTogglePlay);
|
|
313
313
|
this.listenTo(this.core.activeContainer, Events.CONTAINER_STOP, this.changeTogglePlay);
|
|
314
314
|
this.listenTo(this.core.activeContainer, Events.CONTAINER_DBLCLICK, this.toggleFullscreen);
|
|
315
|
-
|
|
316
|
-
this.
|
|
317
|
-
}
|
|
318
|
-
this.listenTo(this.core.activeContainer, Events.CONTAINER_CLICK, clk);
|
|
315
|
+
this.listenTo(this.core.activeContainer, Events.CONTAINER_CLICK, () => {
|
|
316
|
+
this.clickaway(this.core.activeContainer.$el[0]);
|
|
317
|
+
});
|
|
319
318
|
this.listenTo(this.core.activeContainer, Events.CONTAINER_TIMEUPDATE, this.onTimeUpdate);
|
|
320
319
|
this.listenTo(this.core.activeContainer, Events.CONTAINER_PROGRESS, this.updateProgressBar);
|
|
321
320
|
this.listenTo(this.core.activeContainer, Events.CONTAINER_SETTINGSUPDATE, this.updateSettings);
|
|
@@ -332,12 +331,14 @@ export class MediaControl extends UICorePlugin {
|
|
|
332
331
|
});
|
|
333
332
|
this.listenTo(this.core.activeContainer, Events.CONTAINER_MOUSE_ENTER, this.show);
|
|
334
333
|
this.listenTo(this.core.activeContainer, Events.CONTAINER_MOUSE_LEAVE, this.delayHide);
|
|
334
|
+
this.listenTo(this.core.activeContainer, Events.CONTAINER_DESTROYED, () => {
|
|
335
|
+
this.clickaway(null);
|
|
336
|
+
});
|
|
335
337
|
}
|
|
336
338
|
/**
|
|
337
339
|
* Hides the media control UI
|
|
338
340
|
*/
|
|
339
341
|
disable() {
|
|
340
|
-
trace(`${T} disable`);
|
|
341
342
|
this.userDisabled = true; // TODO distinguish between user and system (e.g., unplayable) disabled?
|
|
342
343
|
this.hide();
|
|
343
344
|
this.unbindKeyEvents();
|
|
@@ -686,9 +687,6 @@ export class MediaControl extends UICorePlugin {
|
|
|
686
687
|
else {
|
|
687
688
|
this.hideVolumeId = setTimeout(() => {
|
|
688
689
|
this.hideVolumeId = null;
|
|
689
|
-
trace(`${T} hideVolumeBar`, {
|
|
690
|
-
volumeBarContainer: !!this.$volumeBarContainer,
|
|
691
|
-
});
|
|
692
690
|
this.$volumeBarContainer?.addClass('volume-bar-hide');
|
|
693
691
|
}, timeout);
|
|
694
692
|
}
|
|
@@ -757,27 +755,17 @@ export class MediaControl extends UICorePlugin {
|
|
|
757
755
|
this.core.activeContainer && this.core.activeContainer.seekPercentage(pos);
|
|
758
756
|
this.setSeekPercentage(pos);
|
|
759
757
|
}
|
|
760
|
-
setUserKeepVisible() {
|
|
761
|
-
trace(`${T} setUserKeepVisible`, {
|
|
762
|
-
userKeepVisible: this.userKeepVisible,
|
|
763
|
-
});
|
|
758
|
+
setUserKeepVisible(e) {
|
|
764
759
|
this.userKeepVisible = true;
|
|
760
|
+
this.clickaway(this.core.activeContainer.$el[0]);
|
|
765
761
|
}
|
|
766
|
-
resetUserKeepVisible() {
|
|
767
|
-
trace(`${T} resetUserKeepVisible`, {
|
|
768
|
-
userKeepVisible: this.userKeepVisible,
|
|
769
|
-
});
|
|
762
|
+
resetUserKeepVisible = (e) => {
|
|
770
763
|
this.userKeepVisible = false;
|
|
771
|
-
}
|
|
764
|
+
};
|
|
772
765
|
isVisible() {
|
|
773
766
|
return !this.$el.hasClass('media-control-hide');
|
|
774
767
|
}
|
|
775
768
|
show(event) {
|
|
776
|
-
trace(`${T} show`, {
|
|
777
|
-
disabled: this.disabled,
|
|
778
|
-
disableControlPanel: this.options.disableControlPanel,
|
|
779
|
-
event,
|
|
780
|
-
});
|
|
781
769
|
if (this.disabled || this.options.disableControlPanel) {
|
|
782
770
|
return;
|
|
783
771
|
}
|
|
@@ -804,16 +792,6 @@ export class MediaControl extends UICorePlugin {
|
|
|
804
792
|
this.updateCursorStyle(showing);
|
|
805
793
|
}
|
|
806
794
|
hide(delay = 0) {
|
|
807
|
-
trace(`${T} hide`, {
|
|
808
|
-
delay,
|
|
809
|
-
visible: this.isVisible(),
|
|
810
|
-
disabled: this.disabled,
|
|
811
|
-
hideMediaControl: this.options.hideMediaControl,
|
|
812
|
-
userKeepVisible: this.userKeepVisible,
|
|
813
|
-
keepVisible: this.keepVisible,
|
|
814
|
-
draggingSeekBar: this.draggingSeekBar,
|
|
815
|
-
draggingVolumeBar: this.draggingVolumeBar,
|
|
816
|
-
});
|
|
817
795
|
if (!this.isVisible()) {
|
|
818
796
|
return;
|
|
819
797
|
}
|
|
@@ -1256,12 +1234,12 @@ export class MediaControl extends UICorePlugin {
|
|
|
1256
1234
|
this.$el.removeClass('dvr');
|
|
1257
1235
|
}
|
|
1258
1236
|
}
|
|
1259
|
-
delayHide(
|
|
1260
|
-
trace(`${T} delayHide`, {
|
|
1261
|
-
e,
|
|
1262
|
-
});
|
|
1237
|
+
delayHide() {
|
|
1263
1238
|
this.hide(this.options.hideMediaControlDelay || DEFAULT_HIDE_DELAY);
|
|
1264
1239
|
}
|
|
1240
|
+
// 2 seconds delay is needed since on mobile devices mouse(touch)move events are not dispatched immediately
|
|
1241
|
+
// as opposed to the click event
|
|
1242
|
+
clickaway = clickaway(() => setTimeout(this.resetUserKeepVisible, 0));
|
|
1265
1243
|
}
|
|
1266
1244
|
MediaControl.extend = function (properties) {
|
|
1267
1245
|
return extend(MediaControl, properties);
|
|
@@ -1302,14 +1280,19 @@ function mergeElements(a, b) {
|
|
|
1302
1280
|
return acc;
|
|
1303
1281
|
}, a);
|
|
1304
1282
|
}
|
|
1305
|
-
function clickaway(callback
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1283
|
+
function clickaway(callback) {
|
|
1284
|
+
let handler = (event) => { };
|
|
1285
|
+
return (node) => {
|
|
1286
|
+
window.removeEventListener('click', handler);
|
|
1287
|
+
if (!node) {
|
|
1288
|
+
return;
|
|
1310
1289
|
}
|
|
1311
|
-
|
|
1312
|
-
|
|
1290
|
+
handler = (event) => {
|
|
1291
|
+
if (!node.contains(event.target)) {
|
|
1292
|
+
window.removeEventListener('click', handler);
|
|
1293
|
+
callback();
|
|
1294
|
+
}
|
|
1295
|
+
};
|
|
1313
1296
|
window.addEventListener('click', handler);
|
|
1314
1297
|
};
|
|
1315
1298
|
}
|
package/package.json
CHANGED
|
@@ -468,13 +468,12 @@ export class MediaControl extends UICorePlugin {
|
|
|
468
468
|
Events.CONTAINER_DBLCLICK,
|
|
469
469
|
this.toggleFullscreen,
|
|
470
470
|
)
|
|
471
|
-
const clk = clickaway(() => {
|
|
472
|
-
this.resetUserKeepVisible()
|
|
473
|
-
}, this.core.activeContainer.$el[0])
|
|
474
471
|
this.listenTo(
|
|
475
472
|
this.core.activeContainer,
|
|
476
473
|
Events.CONTAINER_CLICK,
|
|
477
|
-
|
|
474
|
+
() => {
|
|
475
|
+
this.clickaway(this.core.activeContainer.$el[0])
|
|
476
|
+
},
|
|
478
477
|
)
|
|
479
478
|
this.listenTo(
|
|
480
479
|
this.core.activeContainer,
|
|
@@ -532,13 +531,16 @@ export class MediaControl extends UICorePlugin {
|
|
|
532
531
|
})
|
|
533
532
|
this.listenTo(this.core.activeContainer, Events.CONTAINER_MOUSE_ENTER, this.show)
|
|
534
533
|
this.listenTo(this.core.activeContainer, Events.CONTAINER_MOUSE_LEAVE, this.delayHide)
|
|
534
|
+
|
|
535
|
+
this.listenTo(this.core.activeContainer, Events.CONTAINER_DESTROYED, () => {
|
|
536
|
+
this.clickaway(null)
|
|
537
|
+
})
|
|
535
538
|
}
|
|
536
539
|
|
|
537
540
|
/**
|
|
538
541
|
* Hides the media control UI
|
|
539
542
|
*/
|
|
540
543
|
override disable() {
|
|
541
|
-
trace(`${T} disable`)
|
|
542
544
|
this.userDisabled = true // TODO distinguish between user and system (e.g., unplayable) disabled?
|
|
543
545
|
this.hide()
|
|
544
546
|
this.unbindKeyEvents()
|
|
@@ -949,9 +951,6 @@ export class MediaControl extends UICorePlugin {
|
|
|
949
951
|
} else {
|
|
950
952
|
this.hideVolumeId = setTimeout(() => {
|
|
951
953
|
this.hideVolumeId = null
|
|
952
|
-
trace(`${T} hideVolumeBar`, {
|
|
953
|
-
volumeBarContainer: !!this.$volumeBarContainer,
|
|
954
|
-
})
|
|
955
954
|
this.$volumeBarContainer?.addClass('volume-bar-hide')
|
|
956
955
|
}, timeout)
|
|
957
956
|
}
|
|
@@ -1043,17 +1042,12 @@ export class MediaControl extends UICorePlugin {
|
|
|
1043
1042
|
this.setSeekPercentage(pos)
|
|
1044
1043
|
}
|
|
1045
1044
|
|
|
1046
|
-
private setUserKeepVisible() {
|
|
1047
|
-
trace(`${T} setUserKeepVisible`, {
|
|
1048
|
-
userKeepVisible: this.userKeepVisible,
|
|
1049
|
-
})
|
|
1045
|
+
private setUserKeepVisible(e?: MouseEvent) {
|
|
1050
1046
|
this.userKeepVisible = true
|
|
1047
|
+
this.clickaway(this.core.activeContainer.$el[0])
|
|
1051
1048
|
}
|
|
1052
1049
|
|
|
1053
|
-
private resetUserKeepVisible() {
|
|
1054
|
-
trace(`${T} resetUserKeepVisible`, {
|
|
1055
|
-
userKeepVisible: this.userKeepVisible,
|
|
1056
|
-
})
|
|
1050
|
+
private resetUserKeepVisible = (e?: MouseEvent) => {
|
|
1057
1051
|
this.userKeepVisible = false
|
|
1058
1052
|
}
|
|
1059
1053
|
|
|
@@ -1062,11 +1056,6 @@ export class MediaControl extends UICorePlugin {
|
|
|
1062
1056
|
}
|
|
1063
1057
|
|
|
1064
1058
|
private show(event?: MouseEvent) {
|
|
1065
|
-
trace(`${T} show`, {
|
|
1066
|
-
disabled: this.disabled,
|
|
1067
|
-
disableControlPanel: this.options.disableControlPanel,
|
|
1068
|
-
event,
|
|
1069
|
-
})
|
|
1070
1059
|
if (this.disabled || this.options.disableControlPanel) {
|
|
1071
1060
|
return
|
|
1072
1061
|
}
|
|
@@ -1101,17 +1090,6 @@ export class MediaControl extends UICorePlugin {
|
|
|
1101
1090
|
}
|
|
1102
1091
|
|
|
1103
1092
|
private hide(delay = 0) {
|
|
1104
|
-
trace(`${T} hide`, {
|
|
1105
|
-
delay,
|
|
1106
|
-
visible: this.isVisible(),
|
|
1107
|
-
disabled: this.disabled,
|
|
1108
|
-
hideMediaControl: this.options.hideMediaControl,
|
|
1109
|
-
userKeepVisible: this.userKeepVisible,
|
|
1110
|
-
keepVisible: this.keepVisible,
|
|
1111
|
-
draggingSeekBar: this.draggingSeekBar,
|
|
1112
|
-
draggingVolumeBar: this.draggingVolumeBar,
|
|
1113
|
-
})
|
|
1114
|
-
|
|
1115
1093
|
if (!this.isVisible()) {
|
|
1116
1094
|
return
|
|
1117
1095
|
}
|
|
@@ -1648,12 +1626,13 @@ export class MediaControl extends UICorePlugin {
|
|
|
1648
1626
|
}
|
|
1649
1627
|
}
|
|
1650
1628
|
|
|
1651
|
-
private delayHide(
|
|
1652
|
-
trace(`${T} delayHide`, {
|
|
1653
|
-
e,
|
|
1654
|
-
})
|
|
1629
|
+
private delayHide() {
|
|
1655
1630
|
this.hide(this.options.hideMediaControlDelay || DEFAULT_HIDE_DELAY)
|
|
1656
1631
|
}
|
|
1632
|
+
|
|
1633
|
+
// 2 seconds delay is needed since on mobile devices mouse(touch)move events are not dispatched immediately
|
|
1634
|
+
// as opposed to the click event
|
|
1635
|
+
private clickaway = clickaway(() => setTimeout(this.resetUserKeepVisible, 0))
|
|
1657
1636
|
}
|
|
1658
1637
|
|
|
1659
1638
|
MediaControl.extend = function (properties) {
|
|
@@ -1708,14 +1687,20 @@ function mergeElements(
|
|
|
1708
1687
|
}, a)
|
|
1709
1688
|
}
|
|
1710
1689
|
|
|
1711
|
-
function clickaway(callback: () => void
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1690
|
+
function clickaway(callback: () => void) {
|
|
1691
|
+
let handler = (event: MouseEvent | TouchEvent) => {}
|
|
1692
|
+
|
|
1693
|
+
return (node: HTMLElement | null) => {
|
|
1694
|
+
window.removeEventListener('click', handler)
|
|
1695
|
+
if (!node) {
|
|
1696
|
+
return
|
|
1697
|
+
}
|
|
1698
|
+
handler = (event: MouseEvent | TouchEvent) => {
|
|
1699
|
+
if (!node.contains(event.target as Node)) {
|
|
1700
|
+
window.removeEventListener('click', handler)
|
|
1701
|
+
callback()
|
|
1702
|
+
}
|
|
1716
1703
|
}
|
|
1717
|
-
}
|
|
1718
|
-
return () => {
|
|
1719
1704
|
window.addEventListener('click', handler)
|
|
1720
1705
|
}
|
|
1721
1706
|
}
|