@24i/bigscreen-sdk 1.0.12-alpha.2254 → 1.0.12
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/package.json +6 -2
- package/packages/analytics/README.md +1 -58
- package/packages/analytics/src/A.ts +1 -51
- package/packages/analytics/src/Analytics.ts +1 -114
- package/packages/analytics/src/analyticsOnScroll.ts +1 -11
- package/packages/analytics/src/clients/ConsoleAnalytics/ConsoleAnalytics.ts +1 -12
- package/packages/analytics/src/constants.ts +1 -56
- package/packages/analytics/src/interface.ts +1 -82
- package/packages/driver-webos/src/DeviceWebos.ts +8 -0
- package/packages/epg/README.md +3 -1
- package/packages/epg/src/v2/Cell.tsx +16 -2
- package/packages/epg/src/v2/DataManager.ts +4 -1
- package/packages/epg/src/v2/Epg.tsx +3 -1
- package/packages/epg/src/v2/Row.tsx +3 -1
- package/packages/epg/src/v2/basic/CellsManager.tsx +7 -2
- package/packages/epg/src/v2/basic/RowsManager.tsx +3 -1
- package/packages/epg/src/v2/interface.ts +13 -0
- package/packages/events-manager/src/EventsManager.ts +1 -56
- package/packages/list/src/Base/Base.tsx +6 -1
- package/packages/list/src/Base/interface.ts +2 -2
- package/packages/list/src/EdgeOffsetList/EdgeOffsetList.tsx +2 -2
- package/packages/logger/src/loggers/SentryLogger/Sentry.ts +1 -0
- package/packages/logger/src/loggers/SentryLogger/SentryLogger.ts +2 -2
- package/packages/perf-utils/README.md +1 -120
- package/packages/perf-utils/src/array/filter.ts +1 -54
- package/packages/perf-utils/src/array/find.ts +1 -43
- package/packages/perf-utils/src/array/findIndex.ts +1 -43
- package/packages/perf-utils/src/array/forEach.ts +1 -48
- package/packages/perf-utils/src/array/includes.ts +1 -41
- package/packages/perf-utils/src/array/includesNaN.ts +1 -32
- package/packages/perf-utils/src/array/index.ts +1 -7
- package/packages/perf-utils/src/array/map.ts +1 -52
- package/packages/player-ui/src/PlayerUI.tsx +15 -9
- package/packages/player-ui/src/Seekbar.tsx +4 -2
- package/packages/player-ui/src/index.ts +1 -0
- package/packages/player-ui/src/mocks.ts +3 -3
- package/packages/player-ui/src/types.ts +3 -1
|
@@ -20,6 +20,7 @@ type Props = {
|
|
|
20
20
|
timeout?: number,
|
|
21
21
|
className?: string,
|
|
22
22
|
hidden?: boolean,
|
|
23
|
+
disableSeeking?: boolean,
|
|
23
24
|
onClose?: () => void,
|
|
24
25
|
onHide?: () => void,
|
|
25
26
|
isPauseAllowed?: () => boolean,
|
|
@@ -34,7 +35,7 @@ export class PlayerUI extends Component<Props>
|
|
|
34
35
|
|
|
35
36
|
isHidingDisabled = false;
|
|
36
37
|
|
|
37
|
-
seeking: Seeking;
|
|
38
|
+
seeking: Seeking | undefined;
|
|
38
39
|
|
|
39
40
|
div = createRef<HTMLDivElement>();
|
|
40
41
|
|
|
@@ -47,6 +48,7 @@ export class PlayerUI extends Component<Props>
|
|
|
47
48
|
timeout: 5000,
|
|
48
49
|
className: '',
|
|
49
50
|
hidden: false,
|
|
51
|
+
disableSeeking: false,
|
|
50
52
|
onClose: noop,
|
|
51
53
|
onHide: noop,
|
|
52
54
|
isPauseAllowed: () => true,
|
|
@@ -56,20 +58,22 @@ export class PlayerUI extends Component<Props>
|
|
|
56
58
|
|
|
57
59
|
constructor(props: Props) {
|
|
58
60
|
super(props);
|
|
59
|
-
const { hidden, player } = this.props;
|
|
61
|
+
const { hidden, player, disableSeeking } = this.props;
|
|
60
62
|
this.player = player;
|
|
61
|
-
|
|
63
|
+
if (!disableSeeking) {
|
|
64
|
+
this.seeking = new Seeking(player);
|
|
65
|
+
}
|
|
62
66
|
this.isHidden = hidden;
|
|
63
67
|
}
|
|
64
68
|
|
|
65
69
|
componentDidMount() {
|
|
66
70
|
if (!this.isHidden) this.heartbeat();
|
|
67
|
-
this.seeking.subscribeEvents();
|
|
71
|
+
if (this.seeking) this.seeking.subscribeEvents();
|
|
68
72
|
}
|
|
69
73
|
|
|
70
74
|
componentWillUnmount() {
|
|
71
75
|
this.stopHeartbeat();
|
|
72
|
-
this.seeking.unsubscribeEvents();
|
|
76
|
+
if (this.seeking) this.seeking.unsubscribeEvents();
|
|
73
77
|
}
|
|
74
78
|
|
|
75
79
|
onKeyDown = (event: KeyboardEvent) => {
|
|
@@ -99,7 +103,7 @@ export class PlayerUI extends Component<Props>
|
|
|
99
103
|
};
|
|
100
104
|
|
|
101
105
|
onKeyPlay = () => {
|
|
102
|
-
if (this.seeking
|
|
106
|
+
if (this.seeking?.isSeeking()) {
|
|
103
107
|
this.seeking.confirmSeek();
|
|
104
108
|
if (!this.isPlaying()) this.trigger(PlayerAction.PLAY);
|
|
105
109
|
return true;
|
|
@@ -115,7 +119,7 @@ export class PlayerUI extends Component<Props>
|
|
|
115
119
|
onKeyPause = () => {
|
|
116
120
|
const { isPauseAllowed } = this.props;
|
|
117
121
|
if (!isPauseAllowed()) return false;
|
|
118
|
-
if (this.seeking
|
|
122
|
+
if (this.seeking?.isAutomaticallySeeking()) {
|
|
119
123
|
this.seeking.stopAutomaticSeek();
|
|
120
124
|
if (this.isPlaying()) this.trigger(PlayerAction.PAUSE);
|
|
121
125
|
return true;
|
|
@@ -131,7 +135,7 @@ export class PlayerUI extends Component<Props>
|
|
|
131
135
|
onKeyPlayPause = () => {
|
|
132
136
|
const { isPauseAllowed } = this.props;
|
|
133
137
|
if (!isPauseAllowed()) return false;
|
|
134
|
-
if (this.seeking
|
|
138
|
+
if (this.seeking?.isSeeking()) {
|
|
135
139
|
this.seeking.confirmSeek();
|
|
136
140
|
if (!this.isPlaying()) this.trigger(PlayerAction.PLAY);
|
|
137
141
|
return true;
|
|
@@ -149,6 +153,7 @@ export class PlayerUI extends Component<Props>
|
|
|
149
153
|
};
|
|
150
154
|
|
|
151
155
|
onKeyForward = () => {
|
|
156
|
+
if (!this.seeking) return true;
|
|
152
157
|
if (this.seeking.isAutomaticallySeekingBackward) this.seeking.stopAutomaticSeek();
|
|
153
158
|
this.disableHiding();
|
|
154
159
|
this.seeking.automaticSeekForward();
|
|
@@ -156,6 +161,7 @@ export class PlayerUI extends Component<Props>
|
|
|
156
161
|
};
|
|
157
162
|
|
|
158
163
|
onKeyRewind = () => {
|
|
164
|
+
if (!this.seeking) return true;
|
|
159
165
|
if (this.seeking.isAutomaticallySeekingForward) this.seeking.stopAutomaticSeek();
|
|
160
166
|
this.disableHiding();
|
|
161
167
|
this.seeking.automaticSeekBackward();
|
|
@@ -167,7 +173,7 @@ export class PlayerUI extends Component<Props>
|
|
|
167
173
|
|
|
168
174
|
setPlayer(player: PlayerBase<any>) {
|
|
169
175
|
this.player = player;
|
|
170
|
-
this.seeking.setPlayer(player);
|
|
176
|
+
if (this.seeking) this.seeking.setPlayer(player);
|
|
171
177
|
}
|
|
172
178
|
|
|
173
179
|
trigger(action: PlayerAction, payload?: any) {
|
|
@@ -7,7 +7,7 @@ import { switchByKey } from '@24i/bigscreen-sdk/device/keymap';
|
|
|
7
7
|
import { getDisplayToggler } from '@24i/bigscreen-sdk/utils/displayToggler';
|
|
8
8
|
import { PlayerTime } from './PlayerTime';
|
|
9
9
|
import { getLiveProgressBasedOnCurrentTime } from './timeUtils';
|
|
10
|
-
import { PlayerUICommonProps } from './types';
|
|
10
|
+
import { IPlayerUIWithSeeking, PlayerUICommonProps } from './types';
|
|
11
11
|
|
|
12
12
|
const CONSECUTIVE_TIMEOUT = 500;
|
|
13
13
|
const FAST_TRESHOLD = 5;
|
|
@@ -16,7 +16,9 @@ const FAST_TIME = 30000;
|
|
|
16
16
|
const SAFE_END_MARGIN = 10000;
|
|
17
17
|
const TO_PERCENT = 100;
|
|
18
18
|
|
|
19
|
-
type Props =
|
|
19
|
+
type Props = {
|
|
20
|
+
ui: IPlayerUIWithSeeking;
|
|
21
|
+
} & PlayerUICommonProps;
|
|
20
22
|
|
|
21
23
|
export class Seekbar extends Component<Props> implements IFocusable {
|
|
22
24
|
wrap = createRef<HTMLDivElement>();
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { PlayerUI } from './PlayerUI';
|
|
2
2
|
export type { PlayerUIState } from './PlayerUI';
|
|
3
|
+
export type { IPlayerUIWithSeeking } from './types';
|
|
3
4
|
export { BackwardButton } from './BackwardButton';
|
|
4
5
|
export { CurrentTime } from './CurrentTime';
|
|
5
6
|
export { Duration } from './Duration';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { PlayerBase, PlayerBaseMock } from '@24i/player-base';
|
|
2
2
|
import { EventsManager } from '@24i/bigscreen-sdk/events-manager';
|
|
3
|
-
import {
|
|
3
|
+
import { IPlayerUIWithSeeking } from './types';
|
|
4
4
|
|
|
5
|
-
const getSeekingMock = (): jest.Mocked<
|
|
5
|
+
const getSeekingMock = (): jest.Mocked<IPlayerUIWithSeeking['seeking']> => ({
|
|
6
6
|
events: {} as EventsManager<{}>,
|
|
7
7
|
addEventListener: jest.fn(),
|
|
8
8
|
removeEventListener: jest.fn(),
|
|
@@ -42,7 +42,7 @@ export const getPlayerMock = (): PlayerBase<any> => {
|
|
|
42
42
|
return playerMock;
|
|
43
43
|
};
|
|
44
44
|
|
|
45
|
-
export const getUiMock = (): { ui: jest.Mocked<
|
|
45
|
+
export const getUiMock = (): { ui: jest.Mocked<IPlayerUIWithSeeking> } => ({
|
|
46
46
|
ui: {
|
|
47
47
|
getPlayer: jest.fn((): PlayerBase<any> => getPlayerMock()),
|
|
48
48
|
heartbeat: jest.fn(),
|
|
@@ -20,7 +20,7 @@ export interface ActionsWithPayloadMap {
|
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
export interface IPlayerUI {
|
|
23
|
-
seeking
|
|
23
|
+
seeking?: Seeking;
|
|
24
24
|
getPlayer: () => PlayerBase<any>,
|
|
25
25
|
disableHiding: () => void,
|
|
26
26
|
enableHiding: () => void,
|
|
@@ -32,6 +32,8 @@ export interface IPlayerUI {
|
|
|
32
32
|
isPlaying: () => boolean,
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
+
export type IPlayerUIWithSeeking = Required<IPlayerUI>;
|
|
36
|
+
|
|
35
37
|
export type PlayerUICommonProps = {
|
|
36
38
|
ui: IPlayerUI,
|
|
37
39
|
className?: string,
|