@24i/bigscreen-sdk 1.0.52 → 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.
- package/package.json +4 -3
- package/packages/analytics/src/clients/GoogleAnalytics/constants.ts +10 -2
- package/packages/analytics/src/clients/GoogleAnalytics/interface.ts +5 -1
- package/packages/analytics/src/clients/TwentyFourIQ/TwentyFourIQClient.ts +2 -0
- package/packages/analytics/src/clients/TwentyFourIQ/constants.ts +15 -4
- package/packages/analytics/src/clients/TwentyFourIQ/interface.ts +7 -4
- package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapAdEvent.ts +20 -0
- package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapBase.ts +2 -0
- package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapPlayerClose.ts +2 -1
- package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoComplete.ts +2 -1
- package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoPause.ts +2 -1
- package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoProgress.ts +2 -1
- package/packages/analytics/src/clients/TwentyFourIQ/types.ts +38 -29
- package/packages/driver-androidtv/src/DeviceAndroidTV.ts +14 -0
- package/packages/driver-androidtv/src/__mocks__/javaScriptBridge.ts +5 -0
- package/packages/driver-androidtv/src/index.ts +1 -0
- package/packages/driver-androidtv/src/types.ts +22 -0
- package/packages/driver-base/src/DeviceBase.ts +14 -0
- package/packages/driver-base/src/__mocks__/DeviceBase.ts +13 -0
- package/packages/driver-base/src/index.ts +3 -0
- package/packages/driver-base/src/types/InAppPurchase.ts +25 -0
- package/packages/driver-browser/src/DeviceBrowser.ts +14 -0
- package/packages/driver-entone/src/DeviceEntone.ts +19 -1
- package/packages/driver-firetv/src/DeviceFireTV.ts +59 -1
- package/packages/driver-firetv/src/__mocks__/javaScriptBridge.ts +5 -0
- package/packages/driver-firetv/src/types.ts +1 -0
- package/packages/driver-hbbtv/src/DeviceHbbTV.ts +14 -0
- package/packages/driver-kreatv/src/DeviceKreaTV.ts +14 -0
- package/packages/driver-saphi/src/DeviceSaphi.ts +14 -0
- package/packages/driver-smartcast/src/DeviceSmartCast.ts +49 -0
- package/packages/driver-smartcast/src/__mocks__/api.ts +26 -0
- package/packages/driver-smartcast/src/types.ts +36 -0
- package/packages/driver-tizen/src/DeviceTizen.ts +102 -7
- package/packages/driver-tizen/src/ITizen.ts +15116 -202
- package/packages/driver-tizen/src/IWebapis.ts +8641 -92
- package/packages/driver-tizen/src/TizenKeys.ts +2 -2
- package/packages/driver-tizen/src/__mocks__/tizen.ts +0 -8
- package/packages/driver-tizen/src/constants.ts +1 -195
- package/packages/driver-vidaa/src/DeviceVidaa.ts +14 -0
- package/packages/driver-webos/src/DeviceWebos.ts +14 -0
- package/packages/driver-xbox/src/DeviceXbox.ts +19 -1
- package/packages/input/src/Input.tsx +6 -0
- package/packages/list/DoubleList/README.md +105 -0
- package/packages/list/DoubleList/index.ts +1 -0
- package/packages/list/src/DoubleList/DoubleList.tsx +267 -0
- package/packages/list/src/DoubleList/DoubleListAdapter.ts +72 -0
- package/packages/list/src/DoubleList/config.ts +15 -0
- package/packages/list/src/DoubleList/interface.ts +82 -0
- package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapAdLoaded.ts +0 -13
- package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapAdSkipped.ts +0 -16
- 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 || '',
|
|
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 || '',
|
|
14
|
-
player_advertisment_name: '', // TODO: adPayload?.adName,
|
|
15
|
-
player_advertisment_position: 0, // TODO: adPayload?.adPosition,
|
|
16
|
-
});
|