@24i/bigscreen-sdk 1.0.51 → 1.0.53-alpha.2837

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 (57) hide show
  1. package/package.json +4 -3
  2. package/packages/analytics/src/clients/GoogleAnalytics/constants.ts +10 -2
  3. package/packages/analytics/src/clients/GoogleAnalytics/interface.ts +5 -1
  4. package/packages/analytics/src/clients/TwentyFourIQ/TwentyFourIQClient.ts +2 -0
  5. package/packages/analytics/src/clients/TwentyFourIQ/constants.ts +15 -4
  6. package/packages/analytics/src/clients/TwentyFourIQ/interface.ts +7 -4
  7. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapAdEvent.ts +20 -0
  8. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapBase.ts +2 -0
  9. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapBuffering.ts +1 -1
  10. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapPlayerClose.ts +3 -2
  11. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapPlayerOpen.ts +1 -1
  12. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapSceneView.ts +1 -1
  13. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapScroll.ts +1 -1
  14. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoComplete.ts +3 -2
  15. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoPause.ts +3 -2
  16. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoProgress.ts +3 -2
  17. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoStart.ts +1 -1
  18. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoStop.ts +1 -1
  19. package/packages/analytics/src/clients/TwentyFourIQ/types.ts +42 -33
  20. package/packages/driver-androidtv/src/DeviceAndroidTV.ts +14 -0
  21. package/packages/driver-androidtv/src/__mocks__/javaScriptBridge.ts +5 -0
  22. package/packages/driver-androidtv/src/index.ts +1 -0
  23. package/packages/driver-androidtv/src/types.ts +22 -0
  24. package/packages/driver-base/src/DeviceBase.ts +14 -0
  25. package/packages/driver-base/src/__mocks__/DeviceBase.ts +13 -0
  26. package/packages/driver-base/src/index.ts +3 -0
  27. package/packages/driver-base/src/types/InAppPurchase.ts +25 -0
  28. package/packages/driver-browser/src/DeviceBrowser.ts +14 -0
  29. package/packages/driver-entone/src/DeviceEntone.ts +19 -1
  30. package/packages/driver-firetv/src/DeviceFireTV.ts +59 -1
  31. package/packages/driver-firetv/src/__mocks__/javaScriptBridge.ts +5 -0
  32. package/packages/driver-firetv/src/types.ts +1 -0
  33. package/packages/driver-hbbtv/src/DeviceHbbTV.ts +14 -0
  34. package/packages/driver-kreatv/src/DeviceKreaTV.ts +14 -0
  35. package/packages/driver-saphi/src/DeviceSaphi.ts +14 -0
  36. package/packages/driver-smartcast/src/DeviceSmartCast.ts +49 -0
  37. package/packages/driver-smartcast/src/__mocks__/api.ts +26 -0
  38. package/packages/driver-smartcast/src/types.ts +36 -0
  39. package/packages/driver-tizen/src/DeviceTizen.ts +102 -7
  40. package/packages/driver-tizen/src/ITizen.ts +15116 -202
  41. package/packages/driver-tizen/src/IWebapis.ts +8641 -92
  42. package/packages/driver-tizen/src/TizenKeys.ts +2 -2
  43. package/packages/driver-tizen/src/__mocks__/tizen.ts +0 -8
  44. package/packages/driver-tizen/src/constants.ts +1 -195
  45. package/packages/driver-vidaa/src/DeviceVidaa.ts +14 -0
  46. package/packages/driver-webos/src/DeviceWebos.ts +14 -0
  47. package/packages/driver-xbox/src/DeviceXbox.ts +19 -1
  48. package/packages/input/src/Input.tsx +6 -0
  49. package/packages/list/DoubleList/README.md +105 -0
  50. package/packages/list/DoubleList/index.ts +1 -0
  51. package/packages/list/src/DoubleList/DoubleList.tsx +267 -0
  52. package/packages/list/src/DoubleList/DoubleListAdapter.ts +72 -0
  53. package/packages/list/src/DoubleList/config.ts +15 -0
  54. package/packages/list/src/DoubleList/interface.ts +82 -0
  55. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapAdLoaded.ts +0 -13
  56. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapAdSkipped.ts +0 -16
  57. package/packages/driver-tizen/src/types.ts +0 -14
@@ -0,0 +1,72 @@
1
+ import { createRef } from '@24i/bigscreen-sdk/jsx';
2
+ import { ListBase } from '../Base';
3
+ import { UnifiedListController } from '../UnifiedListController/UnifiedListController';
4
+ import { RowList, RowType, ROW, Props } from './interface';
5
+ import { Item } from '../types';
6
+
7
+ /*
8
+ * DoubleListAdapter class to manage two RowList instances
9
+ */
10
+ export class DoubleListAdapter<T extends Item<U>, U> {
11
+ readonly topRowList: RowList<T, U>;
12
+
13
+ readonly bottomRowList: RowList<T, U>;
14
+
15
+ constructor(props: Props<T, U>) {
16
+ this.topRowList = new RowList<T, U>(createRef<ListBase<T, U>>(), props);
17
+ this.bottomRowList = new RowList<T, U>(createRef<ListBase<T, U>>(), props);
18
+ }
19
+
20
+ mount(): void {
21
+ this.topRowList.controller.componentDidMount();
22
+ this.bottomRowList.controller.componentDidMount();
23
+ }
24
+
25
+ unmount(): void {
26
+ this.topRowList.controller.componentWillUnmount();
27
+ this.bottomRowList.controller.componentWillUnmount();
28
+ }
29
+
30
+ splitData = (data: U[]): { topData: U[]; bottomData: U[] } => {
31
+ const topData: U[] = [];
32
+ const bottomData: U[] = [];
33
+ data.forEach((item, index) => ((index % 2 === 0) ? topData : bottomData).push(item));
34
+ return { topData, bottomData };
35
+ };
36
+
37
+ appendData(data: U[]): void {
38
+ const { topData, bottomData } = this.splitData(data);
39
+ this.topRowList.appendData(topData);
40
+ this.bottomRowList.appendData(bottomData);
41
+ }
42
+
43
+ getAbsoluteIndex = (row: RowType, columnIndex: number): number => (
44
+ row === ROW.TOP ? columnIndex * 2 : (columnIndex * 2) + 1
45
+ );
46
+
47
+ prependData(data: U[]): void {
48
+ const { topData, bottomData } = this.splitData(data);
49
+ this.topRowList.prependData(topData);
50
+ this.bottomRowList.prependData(bottomData);
51
+ }
52
+
53
+ getController(row: RowType): UnifiedListController<U> {
54
+ return row === ROW.TOP ? this.topRowList.controller : this.bottomRowList.controller;
55
+ }
56
+
57
+ getList(row: RowType): RowList<T, U> {
58
+ return row === ROW.TOP ? this.topRowList : this.bottomRowList;
59
+ }
60
+
61
+ getActiveRow(row: RowType): { controller: UnifiedListController<U>; list: RowList<T, U> } {
62
+ return row === ROW.TOP
63
+ ? { controller: this.topRowList.controller, list: this.topRowList }
64
+ : { controller: this.bottomRowList.controller, list: this.bottomRowList };
65
+ }
66
+
67
+ getInactiveRow(row: RowType): { controller: UnifiedListController<U>; list: RowList<T, U> } {
68
+ return row === ROW.TOP
69
+ ? { controller: this.bottomRowList.controller, list: this.bottomRowList }
70
+ : { controller: this.topRowList.controller, list: this.topRowList };
71
+ }
72
+ }
@@ -0,0 +1,15 @@
1
+ import { AnimationUtils } from '@24i/bigscreen-sdk/animations';
2
+ import { AnimationConfiguration } from '../types';
3
+ import { animate } from '../animate';
4
+
5
+ export const CONFIG = {
6
+ defaultAnimation: {
7
+ normal: {
8
+ time: 700,
9
+ easing: AnimationUtils.easeOutQuart,
10
+ },
11
+ } as AnimationConfiguration,
12
+ animate,
13
+ };
14
+
15
+ export const VISIBLE_ITEMS_OFFSET = 3;
@@ -0,0 +1,82 @@
1
+ import { IFocusable } from '@24i/bigscreen-sdk/focus';
2
+ import { Component } from '@24i/bigscreen-sdk/jsx';
3
+ import { ListBase } from '../Base';
4
+ import { UnifiedListController } from '../UnifiedListController/UnifiedListController';
5
+ import { Item, SharedProps, AnimationConfiguration } from '../types';
6
+ import { CONFIG } from './config';
7
+
8
+ /**
9
+ * Constants for row identification
10
+ */
11
+ export const ROW = {
12
+ TOP: 'top',
13
+ BOTTOM: 'bottom',
14
+ } as const;
15
+
16
+ export type RowType = typeof ROW[keyof typeof ROW];
17
+
18
+ /*
19
+ * Constants for horizontal scroll direction
20
+ */
21
+ export const DIRECTION = {
22
+ FORWARD: 'forward',
23
+ BACKWARD: 'backward',
24
+ } as const;
25
+
26
+ export type DirectionType = typeof DIRECTION[keyof typeof DIRECTION];
27
+
28
+ export type Props<T extends Item<U>, U> = SharedProps<T, U> & {
29
+ firstScrollStep: number,
30
+ animation?: Partial<AnimationConfiguration>,
31
+ rowClassName?: string,
32
+ };
33
+
34
+ /**
35
+ * Interface for DoubleList component
36
+ */
37
+ export interface DoubleRowList<T extends Item<U>, U>
38
+ extends IFocusable, Component<SharedProps<T, U>> {
39
+ appendData(data: U[]): void;
40
+ prependData(data: U[]): void;
41
+ scrollTo(index: number, animate?: boolean): void;
42
+ focus(options?: FocusOptions): void;
43
+ forward(): boolean;
44
+ backward(): boolean;
45
+ }
46
+
47
+ /*
48
+ * RowList class representing a single row in the DoubleList
49
+ */
50
+ export class RowList<T extends Item<U>, U> {
51
+ base: React.RefObject<ListBase<T, U>>;
52
+
53
+ props: Props<T, U>;
54
+
55
+ controller: UnifiedListController<U>;
56
+
57
+ constructor(
58
+ base: React.RefObject<ListBase<T, U>>,
59
+ props: Props<T, U>,
60
+ ) {
61
+ this.base = base;
62
+ this.props = props;
63
+ this.controller = new UnifiedListController<U>(this as any, CONFIG);
64
+ }
65
+
66
+ get current() {
67
+ return this.base.current;
68
+ }
69
+
70
+ setIndex(index: number): void {
71
+ if (!this.base.current) return;
72
+ this.base.current.index = index;
73
+ }
74
+
75
+ appendData(data: U[]): void {
76
+ this.controller.appendData(data);
77
+ }
78
+
79
+ prependData(data: U[]): void {
80
+ this.controller.prependData(data);
81
+ }
82
+ }
@@ -1,13 +0,0 @@
1
- import { AnalyticsTriggers } from '@24i/appstage-shared-analytics';
2
- import { Payload, AdLoadedResult } from '../types';
3
- import { mapBase } from './mapBase';
4
-
5
- export const mapAdLoaded = (triggerName: AnalyticsTriggers, payload: Payload): AdLoadedResult => ({
6
- ...mapBase(payload),
7
- action: triggerName,
8
- event_trigger: triggerName,
9
- thing_id: payload.assetId || '',
10
- attribution_id: payload.attributionId || null,
11
- player_advertisment_name: '', // TODO: adPayload?.adName,
12
- player_advertisment_position: 0, // TODO: adPayload?.adPosition,
13
- });
@@ -1,16 +0,0 @@
1
- import { AnalyticsTriggers } from '@24i/appstage-shared-analytics';
2
- import { Payload, AdSkippedResult } from '../types';
3
- import { mapBase } from './mapBase';
4
-
5
- export const mapAdSkipped = (
6
- triggerName: AnalyticsTriggers,
7
- payload: Payload,
8
- ): AdSkippedResult => ({
9
- ...mapBase(payload),
10
- action: triggerName,
11
- event_trigger: triggerName,
12
- thing_id: payload.assetId || '',
13
- attribution_id: payload.attributionId || null,
14
- player_advertisment_name: '', // TODO: adPayload?.adName,
15
- player_advertisment_position: 0, // TODO: adPayload?.adPosition,
16
- });
@@ -1,14 +0,0 @@
1
- export {
2
- ITizen,
3
- SystemInfo,
4
- TVAudioControl,
5
- TVInputDevice,
6
- TizenApplication,
7
- WebSetting,
8
- } from './ITizen';
9
- export {
10
- AppCommon,
11
- IWebapis,
12
- Network,
13
- ProductInfo,
14
- } from './IWebapis';