@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.
Files changed (37) hide show
  1. package/package.json +6 -2
  2. package/packages/analytics/README.md +1 -58
  3. package/packages/analytics/src/A.ts +1 -51
  4. package/packages/analytics/src/Analytics.ts +1 -114
  5. package/packages/analytics/src/analyticsOnScroll.ts +1 -11
  6. package/packages/analytics/src/clients/ConsoleAnalytics/ConsoleAnalytics.ts +1 -12
  7. package/packages/analytics/src/constants.ts +1 -56
  8. package/packages/analytics/src/interface.ts +1 -82
  9. package/packages/driver-webos/src/DeviceWebos.ts +8 -0
  10. package/packages/epg/README.md +3 -1
  11. package/packages/epg/src/v2/Cell.tsx +16 -2
  12. package/packages/epg/src/v2/DataManager.ts +4 -1
  13. package/packages/epg/src/v2/Epg.tsx +3 -1
  14. package/packages/epg/src/v2/Row.tsx +3 -1
  15. package/packages/epg/src/v2/basic/CellsManager.tsx +7 -2
  16. package/packages/epg/src/v2/basic/RowsManager.tsx +3 -1
  17. package/packages/epg/src/v2/interface.ts +13 -0
  18. package/packages/events-manager/src/EventsManager.ts +1 -56
  19. package/packages/list/src/Base/Base.tsx +6 -1
  20. package/packages/list/src/Base/interface.ts +2 -2
  21. package/packages/list/src/EdgeOffsetList/EdgeOffsetList.tsx +2 -2
  22. package/packages/logger/src/loggers/SentryLogger/Sentry.ts +1 -0
  23. package/packages/logger/src/loggers/SentryLogger/SentryLogger.ts +2 -2
  24. package/packages/perf-utils/README.md +1 -120
  25. package/packages/perf-utils/src/array/filter.ts +1 -54
  26. package/packages/perf-utils/src/array/find.ts +1 -43
  27. package/packages/perf-utils/src/array/findIndex.ts +1 -43
  28. package/packages/perf-utils/src/array/forEach.ts +1 -48
  29. package/packages/perf-utils/src/array/includes.ts +1 -41
  30. package/packages/perf-utils/src/array/includesNaN.ts +1 -32
  31. package/packages/perf-utils/src/array/index.ts +1 -7
  32. package/packages/perf-utils/src/array/map.ts +1 -52
  33. package/packages/player-ui/src/PlayerUI.tsx +15 -9
  34. package/packages/player-ui/src/Seekbar.tsx +4 -2
  35. package/packages/player-ui/src/index.ts +1 -0
  36. package/packages/player-ui/src/mocks.ts +3 -3
  37. 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
- this.seeking = new Seeking(player);
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.isSeeking()) {
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.isAutomaticallySeeking()) {
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.isSeeking()) {
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 = PlayerUICommonProps;
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 { IPlayerUI } from './types';
3
+ import { IPlayerUIWithSeeking } from './types';
4
4
 
5
- const getSeekingMock = (): jest.Mocked<IPlayerUI['seeking']> => ({
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<IPlayerUI> } => ({
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: 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,