@applicaster/zapp-react-native-ui-components 15.1.0-rc.8 → 16.0.0-alpha.1011304583

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 (178) hide show
  1. package/Components/BackgroundImage/BackgroundImage.android.tv.tsx +28 -0
  2. package/Components/BackgroundImage/BackgroundImage.ios.tv.tsx +24 -0
  3. package/Components/BackgroundImage/BackgroundImage.tsx +42 -0
  4. package/Components/BackgroundImage/index.ts +1 -0
  5. package/Components/BaseFocusable/index.ios.ts +12 -2
  6. package/Components/Cell/FocusableWrapper.tsx +3 -0
  7. package/Components/Cell/TvOSCellComponent.tsx +6 -3
  8. package/Components/CellRendererResolver/index.ts +2 -2
  9. package/Components/ComponentResolver/__tests__/componentResolver.test.js +1 -1
  10. package/Components/Focusable/Focusable.tsx +4 -2
  11. package/Components/Focusable/FocusableTvOS.tsx +18 -1
  12. package/Components/Focusable/__tests__/__snapshots__/FocusableTvOS.test.tsx.snap +1 -0
  13. package/Components/FocusableGroup/FocusableTvOS.tsx +41 -8
  14. package/Components/GeneralContentScreen/GeneralContentScreenHookAdapter.tsx +39 -0
  15. package/Components/GeneralContentScreen/__tests__/GeneralContentScreenHookAdapter.test.tsx +64 -0
  16. package/Components/GeneralContentScreen/__tests__/HookContentFocusGroup.web.test.tsx +91 -0
  17. package/Components/GeneralContentScreen/hookAdapter/__tests__/networkService.test.ts +74 -0
  18. package/Components/GeneralContentScreen/hookAdapter/__tests__/runInBackground.test.ts +139 -0
  19. package/Components/GeneralContentScreen/hookAdapter/__tests__/validationHelper.test.ts +124 -0
  20. package/Components/GeneralContentScreen/hookAdapter/logger.ts +6 -0
  21. package/Components/GeneralContentScreen/hookAdapter/networkService.ts +53 -0
  22. package/Components/GeneralContentScreen/hookAdapter/runInBackground.ts +48 -0
  23. package/Components/GeneralContentScreen/hookAdapter/validationHelper.ts +72 -0
  24. package/Components/GeneralContentScreen/hookFocus/index.tsx +13 -0
  25. package/Components/GeneralContentScreen/hookFocus/index.web.tsx +69 -0
  26. package/Components/GeneralContentScreen/index.ts +2 -0
  27. package/Components/GeneralContentScreen/utils/__tests__/useCurationAPI.test.js +1 -1
  28. package/Components/HandlePlayable/HandlePlayable.tsx +13 -8
  29. package/Components/Layout/FullWidthRow.tsx +38 -0
  30. package/Components/Layout/TV/NavBarContainer.tsx +1 -10
  31. package/Components/Layout/TV/ScreenContainer.tsx +2 -6
  32. package/Components/Layout/TV/__tests__/__snapshots__/NavBarContainer.test.tsx.snap +7 -12
  33. package/Components/Layout/TV/__tests__/__snapshots__/ScreenContainer.test.tsx.snap +7 -12
  34. package/Components/Layout/TV/__tests__/__snapshots__/index.test.tsx.snap +0 -1
  35. package/Components/Layout/TV/index.tsx +5 -7
  36. package/Components/Layout/TV/index.web.tsx +5 -7
  37. package/Components/LinkHandler/LinkHandler.tsx +2 -2
  38. package/Components/MasterCell/CONFIG_BUILDER_TO_REACT_COMPONENT.md +144 -0
  39. package/Components/MasterCell/DefaultComponents/ActionButton.tsx +16 -5
  40. package/Components/MasterCell/DefaultComponents/ActionButtonsCore/__tests__/model.test.ts +80 -0
  41. package/Components/MasterCell/DefaultComponents/ActionButtonsCore/__tests__/placement.test.ts +187 -0
  42. package/Components/MasterCell/DefaultComponents/ActionButtonsCore/__tests__/selectors.test.ts +45 -0
  43. package/Components/MasterCell/DefaultComponents/ActionButtonsCore/__tests__/style.test.ts +49 -0
  44. package/Components/MasterCell/DefaultComponents/ActionButtonsCore/components/ActionButtonController.tsx +165 -0
  45. package/Components/MasterCell/DefaultComponents/ActionButtonsCore/components/__tests__/ActionButtonController.test.tsx +405 -0
  46. package/Components/MasterCell/DefaultComponents/ActionButtonsCore/components/index.ts +1 -0
  47. package/Components/MasterCell/DefaultComponents/ActionButtonsCore/model.ts +47 -0
  48. package/Components/MasterCell/DefaultComponents/ActionButtonsCore/placement.ts +170 -0
  49. package/Components/MasterCell/DefaultComponents/ActionButtonsCore/selectors.ts +26 -0
  50. package/Components/MasterCell/DefaultComponents/ActionButtonsCore/style.ts +29 -0
  51. package/Components/MasterCell/DefaultComponents/ActionButtonsCore/types.ts +37 -0
  52. package/Components/MasterCell/DefaultComponents/BorderContainerView/index.tsx +4 -10
  53. package/Components/MasterCell/DefaultComponents/Button.tsx +0 -15
  54. package/Components/MasterCell/DefaultComponents/ButtonContainerView/components/HorizontalSeparator.tsx +8 -0
  55. package/Components/MasterCell/DefaultComponents/ButtonContainerView/index.android.tv.tsx +58 -0
  56. package/Components/MasterCell/DefaultComponents/ButtonContainerView/index.tsx +15 -0
  57. package/Components/MasterCell/DefaultComponents/{tv/ButtonContainerView/index.tsx → ButtonContainerView/index.tv.tsx} +3 -11
  58. package/Components/MasterCell/DefaultComponents/ButtonContainerView/index.web.ts +1 -0
  59. package/Components/MasterCell/DefaultComponents/ButtonContainerView/types.ts +40 -0
  60. package/Components/MasterCell/DefaultComponents/DataProvider/index.tsx +163 -0
  61. package/Components/MasterCell/DefaultComponents/FocusableView/index.android.tsx +2 -23
  62. package/Components/MasterCell/DefaultComponents/FocusableView/index.tsx +4 -22
  63. package/Components/MasterCell/DefaultComponents/Image/Image.android.tsx +8 -2
  64. package/Components/MasterCell/DefaultComponents/Image/Image.ios.tsx +11 -3
  65. package/Components/MasterCell/DefaultComponents/Image/Image.web.tsx +9 -1
  66. package/Components/MasterCell/DefaultComponents/Image/hooks/useImage.ts +15 -14
  67. package/Components/MasterCell/DefaultComponents/LiveImage/index.tsx +1 -2
  68. package/Components/MasterCell/DefaultComponents/PressableView.tsx +34 -0
  69. package/Components/MasterCell/DefaultComponents/SecondaryImage/hooks/__tests__/useGetImageDimensions.test.ts +7 -6
  70. package/Components/MasterCell/DefaultComponents/Text/hooks/useText.ts +11 -0
  71. package/Components/MasterCell/DefaultComponents/__tests__/DataProvider.test.tsx +141 -0
  72. package/Components/MasterCell/DefaultComponents/index.ts +9 -3
  73. package/Components/MasterCell/DefaultComponents/mobile/MobileActionButtons/ActionButton.tsx +135 -0
  74. package/Components/MasterCell/DefaultComponents/mobile/MobileActionButtons/Asset.ts +33 -0
  75. package/Components/MasterCell/DefaultComponents/mobile/MobileActionButtons/AssetComponent.tsx +22 -0
  76. package/Components/MasterCell/DefaultComponents/mobile/MobileActionButtons/Button.ts +125 -0
  77. package/Components/MasterCell/DefaultComponents/mobile/MobileActionButtons/Spacer.ts +16 -0
  78. package/Components/MasterCell/DefaultComponents/mobile/MobileActionButtons/TextLabel.ts +67 -0
  79. package/Components/MasterCell/DefaultComponents/mobile/MobileActionButtons/TextLabelsContainer.ts +37 -0
  80. package/Components/MasterCell/DefaultComponents/mobile/MobileActionButtons/__tests__/PressableView.test.tsx +393 -0
  81. package/Components/MasterCell/DefaultComponents/mobile/MobileActionButtons/__tests__/builders.test.ts +141 -0
  82. package/Components/MasterCell/DefaultComponents/mobile/MobileActionButtons/__tests__/index.test.ts +343 -0
  83. package/Components/MasterCell/DefaultComponents/mobile/MobileActionButtons/helpers.ts +105 -0
  84. package/Components/MasterCell/DefaultComponents/mobile/MobileActionButtons/index.ts +122 -0
  85. package/Components/MasterCell/DefaultComponents/mobile/MobileActionButtons/utils/__tests__/insertButtons.test.ts +118 -0
  86. package/Components/MasterCell/DefaultComponents/mobile/MobileActionButtons/utils/index.ts +238 -0
  87. package/Components/MasterCell/DefaultComponents/tv/TvActionButtons/Asset.ts +4 -18
  88. package/Components/MasterCell/DefaultComponents/tv/TvActionButtons/Button.ts +24 -73
  89. package/Components/MasterCell/DefaultComponents/tv/TvActionButtons/TextLabelsContainer.ts +37 -18
  90. package/Components/MasterCell/DefaultComponents/tv/TvActionButtons/TvActionButton.tsx +27 -0
  91. package/Components/MasterCell/DefaultComponents/tv/TvActionButtons/__tests__/index.test.ts +89 -0
  92. package/Components/MasterCell/DefaultComponents/tv/TvActionButtons/__tests__/renderedTree.test.tsx +231 -0
  93. package/Components/MasterCell/DefaultComponents/tv/TvActionButtons/index.ts +47 -48
  94. package/Components/MasterCell/DefaultComponents/tv/TvActionButtons/utils/__tests__/getPluginIdentifier.test.ts +115 -29
  95. package/Components/MasterCell/DefaultComponents/tv/TvActionButtons/utils/index.ts +101 -144
  96. package/Components/MasterCell/MappingFunctions/index.js +3 -2
  97. package/Components/MasterCell/README.md +4 -0
  98. package/Components/MasterCell/__tests__/__snapshots__/dataAdapter.test.js.snap +24 -0
  99. package/Components/MasterCell/__tests__/configInflater.test.js +1 -0
  100. package/Components/MasterCell/__tests__/elementMapper.test.js +46 -0
  101. package/Components/MasterCell/dataAdapter.ts +19 -6
  102. package/Components/MasterCell/elementMapper.tsx +52 -7
  103. package/Components/MasterCell/index.tsx +30 -5
  104. package/Components/MasterCell/utils/__tests__/cloneChildrenWithIds.test.tsx +43 -0
  105. package/Components/MasterCell/utils/__tests__/resolveColor.test.js +169 -132
  106. package/Components/MasterCell/utils/__tests__/resolveColorForProp.test.js +92 -0
  107. package/Components/MasterCell/utils/__tests__/useFilterChildren.test.tsx +80 -0
  108. package/Components/MasterCell/utils/index.ts +170 -61
  109. package/Components/OfflineHandler/NotificationView/NotificationView.tsx +2 -2
  110. package/Components/OfflineHandler/NotificationView/__tests__/index.test.tsx +17 -18
  111. package/Components/OfflineHandler/__tests__/index.test.tsx +27 -18
  112. package/Components/PlayerContainer/PlayerContainer.tsx +22 -17
  113. package/Components/PlayerContainer/__tests__/PlayerContainer.test.tsx +284 -0
  114. package/Components/River/ComponentsMap/ComponentsMap.tsx +8 -21
  115. package/Components/River/ComponentsMap/hooks/__tests__/useLoadingState.test.ts +1 -1
  116. package/Components/River/RefreshControl.tsx +19 -88
  117. package/Components/River/River.tsx +9 -82
  118. package/Components/River/TV/River.tsx +31 -14
  119. package/Components/River/TV/index.tsx +8 -4
  120. package/Components/River/TV/utils/__tests__/toStringOrEmpty.test.ts +30 -0
  121. package/Components/River/TV/utils/index.ts +4 -0
  122. package/Components/River/TV/withFocusableGroupForContent.tsx +71 -0
  123. package/Components/River/__tests__/__snapshots__/componentsMap.test.js.snap +2 -15
  124. package/Components/River/__tests__/componentsMap.test.js +38 -0
  125. package/Components/River/hooks/__tests__/usePullToRefresh.test.ts +132 -0
  126. package/Components/River/hooks/index.ts +1 -0
  127. package/Components/River/hooks/usePullToRefresh.ts +51 -0
  128. package/Components/Screen/TV/index.web.tsx +4 -2
  129. package/Components/Screen/__tests__/Screen.test.tsx +65 -42
  130. package/Components/Screen/__tests__/__snapshots__/Screen.test.tsx.snap +68 -44
  131. package/Components/Screen/hooks.ts +2 -3
  132. package/Components/Screen/index.tsx +10 -7
  133. package/Components/Screen/orientationHandler.ts +3 -3
  134. package/Components/ScreenResolver/index.tsx +9 -5
  135. package/Components/ScreenRevealManager/Overlay.tsx +34 -0
  136. package/Components/ScreenRevealManager/ScreenRevealManager.ts +40 -8
  137. package/Components/ScreenRevealManager/__tests__/Overlay.test.tsx +88 -0
  138. package/Components/ScreenRevealManager/__tests__/ScreenRevealManager.test.ts +86 -69
  139. package/Components/ScreenRevealManager/withScreenRevealManager.tsx +9 -20
  140. package/Components/Tabs/TabContent.tsx +7 -4
  141. package/Components/TopCutoffOverlay/__tests__/TopCutoffOverlay.test.tsx +201 -0
  142. package/Components/TopCutoffOverlay/hooks/__tests__/useMarginTop.test.ts +130 -0
  143. package/Components/TopCutoffOverlay/hooks/index.ts +1 -0
  144. package/Components/TopCutoffOverlay/hooks/useMarginTop.ts +59 -0
  145. package/Components/TopCutoffOverlay/index.tsx +55 -0
  146. package/Components/Transitioner/index.js +3 -3
  147. package/Components/VideoModal/ModalAnimation/ModalAnimationContext.tsx +5 -5
  148. package/Components/VideoModal/hooks/__tests__/useDelayedPlayerDetails.test.ts +15 -7
  149. package/Components/VideoModal/utils.ts +18 -10
  150. package/Components/Viewport/ViewportAware/__tests__/viewportAware.test.js +0 -2
  151. package/Components/Viewport/ViewportAware/index.tsx +16 -7
  152. package/Components/Viewport/ViewportEvents/__tests__/viewportEvents.test.js +1 -1
  153. package/Components/ZappFrameworkComponents/BarView/BarView.tsx +9 -4
  154. package/Components/default-cell-renderer/viewTrees/mobile/index.ts +0 -3
  155. package/Contexts/CachedDimensionsContext/__tests__/index.test.ts +154 -0
  156. package/Contexts/CachedDimensionsContext/index.ts +17 -2
  157. package/Contexts/ScreenContext/index.tsx +25 -18
  158. package/Contexts/ScreenTrackedViewPositionsContext/__tests__/index.test.tsx +1 -1
  159. package/Decorators/Analytics/index.tsx +6 -5
  160. package/Decorators/ConfigurationWrapper/__tests__/__snapshots__/withConfigurationProvider.test.tsx.snap +1 -0
  161. package/Decorators/ConfigurationWrapper/const.ts +1 -0
  162. package/Decorators/ZappPipesDataConnector/__tests__/UrlFeedResolver.test.tsx +39 -21
  163. package/Decorators/ZappPipesDataConnector/__tests__/zappPipesDataConnector.test.js +1 -1
  164. package/Decorators/ZappPipesDataConnector/index.tsx +2 -2
  165. package/Decorators/ZappPipesDataConnector/resolvers/StaticFeedResolver.tsx +1 -1
  166. package/Decorators/ZappPipesDataConnector/resolvers/UrlFeedResolver.tsx +18 -7
  167. package/Helpers/ComponentCellSelectionHelper/index.js +0 -6
  168. package/Helpers/DataSourceHelper/__tests__/itemLimitForData.test.ts +80 -0
  169. package/Helpers/DataSourceHelper/index.ts +19 -0
  170. package/Helpers/index.js +7 -40
  171. package/package.json +5 -5
  172. package/Components/Layout/TV/LayoutBackground.tsx +0 -28
  173. package/Components/MasterCell/DefaultComponents/tv/ButtonContainerView/index.android.tsx +0 -135
  174. package/Components/MasterCell/DefaultComponents/tv/ButtonContainerView/types.ts +0 -25
  175. package/Components/River/TV/withTVEventHandler.tsx +0 -36
  176. package/Components/Screen/utils.ts +0 -16
  177. package/Helpers/Analytics/index.js +0 -95
  178. package/Helpers/DataSourceHelper/index.js +0 -19
@@ -1,16 +0,0 @@
1
- import { map, split, replace, compose, trim } from "ramda";
2
-
3
- function colorIsNotTransparent(color) {
4
- const layers = compose(
5
- map(trim),
6
- split(","),
7
- replace(")", ""),
8
- replace("rgba(", "")
9
- )(color);
10
-
11
- return Number(layers?.[3]) > 0;
12
- }
13
-
14
- export function isValidColor(string) {
15
- return string && string !== "transparent" && colorIsNotTransparent(string);
16
- }
@@ -1,95 +0,0 @@
1
- import * as R from "ramda";
2
- import { postAnalyticEvent } from "@applicaster/zapp-react-native-tvos-app/AnalyticsManager";
3
- import { extensionsEvents } from "@applicaster/zapp-react-native-utils/analyticsUtils/AnalyticsEvents/helper";
4
- import {
5
- ANALYTICS_CORE_EVENTS,
6
- ANALYTICS_ENTRY_EVENTS,
7
- ANALYTICS_COMPONENT_EVENTS,
8
- ANALYTICS_MENU_ITEM_EVENTS,
9
- } from "../";
10
-
11
- export function sendTapCellEvent(item, component, headerTitle, itemIndex) {
12
- const itemReadableIndex = itemIndex + 1;
13
-
14
- const analyticsProperties = R.compose(
15
- R.reject(R.isNil),
16
- R.merge(eventForEntry(item, itemReadableIndex))
17
- )(eventForComponent(component, headerTitle));
18
-
19
- postEvent(ANALYTICS_CORE_EVENTS.TAP_CELL, analyticsProperties);
20
- }
21
-
22
- export function sendTapMenuItem({ item, index, isHome }) {
23
- const analyticsProperties = R.compose(R.reject(R.isNil))(
24
- eventForMenuItemEntry({ item, index, isHome })
25
- );
26
-
27
- postEvent(ANALYTICS_CORE_EVENTS.TAP_MENU_ICON, analyticsProperties);
28
-
29
- if (isHome) {
30
- postEvent(ANALYTICS_CORE_EVENTS.HOME_SCREEN_VIEWED, null);
31
- }
32
- }
33
-
34
- function postEvent(event, properties) {
35
- postAnalyticEvent(event, properties);
36
- }
37
-
38
- function eventForEntry(item, itemIndex) {
39
- const {
40
- title,
41
- type: { value: valueType },
42
- id,
43
- } = item;
44
-
45
- const analyticsCustomProperties = extensionsEvents(item.extensions);
46
-
47
- const analyticsEvents = {
48
- [ANALYTICS_ENTRY_EVENTS.ITEM_TYPE]: valueType,
49
- [ANALYTICS_ENTRY_EVENTS.ITEM_TITLE]: title,
50
- [ANALYTICS_ENTRY_EVENTS.ITEM_ID]: id,
51
- [ANALYTICS_ENTRY_EVENTS.ITEM_INDEX]:
52
- (itemIndex && itemIndex.toString()) || null,
53
- };
54
-
55
- if (analyticsCustomProperties) {
56
- analyticsEvents.analyticsCustomProperties = analyticsCustomProperties;
57
- }
58
-
59
- return analyticsEvents;
60
- }
61
-
62
- function eventForComponent(
63
- component,
64
- headerTitle, // Zapp Pipes data passed for group components
65
- zappPipesData = null
66
- ) {
67
- const { id, component_type, styles, data } = component;
68
- const { cell_style } = styles;
69
- const source = data?.source || zappPipesData?.data?.url || null;
70
-
71
- return {
72
- [ANALYTICS_COMPONENT_EVENTS.COMPONENT_ID]: id,
73
- [ANALYTICS_COMPONENT_EVENTS.COMPONENT_TYPE]: component_type,
74
- [ANALYTICS_COMPONENT_EVENTS.CELL_STYLE]:
75
- cell_style || ANALYTICS_CORE_EVENTS.ITEM_NOT_AVAILABLE,
76
- [ANALYTICS_COMPONENT_EVENTS.COMPONENT_SOURCE]:
77
- (source && encodeURIComponent(source)) || null,
78
- [ANALYTICS_COMPONENT_EVENTS.HEADER_TITLE]: headerTitle,
79
- };
80
- }
81
-
82
- function eventForMenuItemEntry({ item, index, isHome }) {
83
- const { title, type, id } = item;
84
-
85
- const itemReadableIndex = index + 1;
86
-
87
- return {
88
- [ANALYTICS_MENU_ITEM_EVENTS.ITEM_INDEX]:
89
- (itemReadableIndex && itemReadableIndex.toString()) || null,
90
- [ANALYTICS_MENU_ITEM_EVENTS.ITEM_TYPE]: type,
91
- [ANALYTICS_MENU_ITEM_EVENTS.ITEM_TITLE]: title,
92
- [ANALYTICS_MENU_ITEM_EVENTS.ITEM_ID]: id,
93
- [ANALYTICS_MENU_ITEM_EVENTS.ITEM_HOME_SCREEN]: isHome ? "YES" : "NO",
94
- };
95
- }
@@ -1,19 +0,0 @@
1
- import * as R from "ramda";
2
-
3
- export function itemLimitForData(entry = [], component) {
4
- const itemLimitValue = Number(R.path(["rules", "item_limit"], component));
5
-
6
- const itemLimit =
7
- itemLimitValue && itemLimitValue > 0
8
- ? itemLimitValue
9
- : Number.MAX_SAFE_INTEGER;
10
-
11
- const isInRange = (min, max) => R.both(R.gte(R.__, min), R.lt(R.__, max));
12
-
13
- const entryShouldBeSliced = (entry) =>
14
- isInRange(0, R.length(entry))(itemLimit);
15
-
16
- const sliceEntriesUpToItemLimit = R.slice(0, itemLimit);
17
-
18
- return R.when(entryShouldBeSliced, sliceEntriesUpToItemLimit)(entry);
19
- }