cloudx-react-native 3.10.0 → 3.11.0

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 (105) hide show
  1. package/README.md +1 -0
  2. package/android/build.gradle +1 -1
  3. package/android/src/main/java/com/cloudxreactnative/CloudXAdEvents.kt +10 -0
  4. package/android/src/main/java/com/cloudxreactnative/CloudXAdInfo.kt +40 -0
  5. package/android/src/main/java/com/cloudxreactnative/CloudXNativeAdView.kt +718 -0
  6. package/android/src/main/java/com/cloudxreactnative/CloudXNativeAdViewManagerImpl.kt +119 -0
  7. package/android/src/main/java/com/cloudxreactnative/CloudXPackage.kt +4 -1
  8. package/android/src/main/res/layout/cloudx_rn_native_media_banner_template.xml +100 -0
  9. package/android/src/main/res/layout/cloudx_rn_native_medium_template.xml +99 -0
  10. package/android/src/main/res/layout/cloudx_rn_native_small_template.xml +72 -0
  11. package/android/src/main/res/layout/cloudx_rn_native_vertical_media_template.xml +117 -0
  12. package/android/src/newarch/com/cloudxreactnative/CloudXModule.kt +1 -0
  13. package/android/src/newarch/com/cloudxreactnative/CloudXNativeAdViewManager.kt +86 -0
  14. package/android/src/oldarch/com/cloudxreactnative/CloudXModule.kt +1 -0
  15. package/android/src/oldarch/com/cloudxreactnative/CloudXNativeAdViewManager.kt +118 -0
  16. package/cloudx-react-native.podspec +1 -1
  17. package/ios/CloudX.h +8 -0
  18. package/ios/CloudX.mm +159 -29
  19. package/ios/CloudXNativeAdView.h +75 -0
  20. package/ios/CloudXNativeAdView.mm +979 -0
  21. package/ios/CloudXNativeAdViewManager.h +12 -0
  22. package/ios/CloudXNativeAdViewManager.mm +119 -0
  23. package/lib/commonjs/CloudXAdViewBase.js +8 -97
  24. package/lib/commonjs/CloudXAdViewBase.js.map +1 -1
  25. package/lib/commonjs/CloudXNativeAdView.js +331 -0
  26. package/lib/commonjs/CloudXNativeAdView.js.map +1 -0
  27. package/lib/commonjs/CloudXNativeAdViewComponents.js +252 -0
  28. package/lib/commonjs/CloudXNativeAdViewComponents.js.map +1 -0
  29. package/lib/commonjs/CloudXNativeAdViewProvider.js +117 -0
  30. package/lib/commonjs/CloudXNativeAdViewProvider.js.map +1 -0
  31. package/lib/commonjs/extraParameters.js +52 -0
  32. package/lib/commonjs/extraParameters.js.map +1 -0
  33. package/lib/commonjs/hooks.js +34 -0
  34. package/lib/commonjs/hooks.js.map +1 -1
  35. package/lib/commonjs/index.js +72 -0
  36. package/lib/commonjs/index.js.map +1 -1
  37. package/lib/commonjs/specs/CloudXNativeAdViewNativeComponent.js +41 -0
  38. package/lib/commonjs/specs/CloudXNativeAdViewNativeComponent.js.map +1 -0
  39. package/lib/commonjs/types/NativeAd.js +70 -0
  40. package/lib/commonjs/types/NativeAd.js.map +1 -0
  41. package/lib/commonjs/types/index.js +13 -0
  42. package/lib/commonjs/types/index.js.map +1 -1
  43. package/lib/commonjs/useCloudXSdkInitialization.js +75 -0
  44. package/lib/commonjs/useCloudXSdkInitialization.js.map +1 -0
  45. package/lib/commonjs/version.js +1 -1
  46. package/lib/module/CloudXAdViewBase.js +7 -96
  47. package/lib/module/CloudXAdViewBase.js.map +1 -1
  48. package/lib/module/CloudXNativeAdView.js +324 -0
  49. package/lib/module/CloudXNativeAdView.js.map +1 -0
  50. package/lib/module/CloudXNativeAdViewComponents.js +240 -0
  51. package/lib/module/CloudXNativeAdViewComponents.js.map +1 -0
  52. package/lib/module/CloudXNativeAdViewProvider.js +110 -0
  53. package/lib/module/CloudXNativeAdViewProvider.js.map +1 -0
  54. package/lib/module/extraParameters.js +45 -0
  55. package/lib/module/extraParameters.js.map +1 -0
  56. package/lib/module/hooks.js +34 -0
  57. package/lib/module/hooks.js.map +1 -1
  58. package/lib/module/index.js +13 -0
  59. package/lib/module/index.js.map +1 -1
  60. package/lib/module/specs/CloudXNativeAdViewNativeComponent.js +35 -0
  61. package/lib/module/specs/CloudXNativeAdViewNativeComponent.js.map +1 -0
  62. package/lib/module/types/NativeAd.js +68 -0
  63. package/lib/module/types/NativeAd.js.map +1 -0
  64. package/lib/module/types/index.js +1 -0
  65. package/lib/module/types/index.js.map +1 -1
  66. package/lib/module/useCloudXSdkInitialization.js +68 -0
  67. package/lib/module/useCloudXSdkInitialization.js.map +1 -0
  68. package/lib/module/version.js +1 -1
  69. package/lib/typescript/src/CloudXAdViewBase.d.ts.map +1 -1
  70. package/lib/typescript/src/CloudXNativeAdView.d.ts +24 -0
  71. package/lib/typescript/src/CloudXNativeAdView.d.ts.map +1 -0
  72. package/lib/typescript/src/CloudXNativeAdViewComponents.d.ts +67 -0
  73. package/lib/typescript/src/CloudXNativeAdViewComponents.d.ts.map +1 -0
  74. package/lib/typescript/src/CloudXNativeAdViewProvider.d.ts +72 -0
  75. package/lib/typescript/src/CloudXNativeAdViewProvider.d.ts.map +1 -0
  76. package/lib/typescript/src/extraParameters.d.ts +4 -0
  77. package/lib/typescript/src/extraParameters.d.ts.map +1 -0
  78. package/lib/typescript/src/hooks.d.ts.map +1 -1
  79. package/lib/typescript/src/index.d.ts +4 -1
  80. package/lib/typescript/src/index.d.ts.map +1 -1
  81. package/lib/typescript/src/specs/CloudXNativeAdViewNativeComponent.d.ts +103 -0
  82. package/lib/typescript/src/specs/CloudXNativeAdViewNativeComponent.d.ts.map +1 -0
  83. package/lib/typescript/src/types/AdInfo.d.ts +4 -1
  84. package/lib/typescript/src/types/AdInfo.d.ts.map +1 -1
  85. package/lib/typescript/src/types/NativeAd.d.ts +114 -0
  86. package/lib/typescript/src/types/NativeAd.d.ts.map +1 -0
  87. package/lib/typescript/src/types/index.d.ts +2 -0
  88. package/lib/typescript/src/types/index.d.ts.map +1 -1
  89. package/lib/typescript/src/useCloudXSdkInitialization.d.ts +16 -0
  90. package/lib/typescript/src/useCloudXSdkInitialization.d.ts.map +1 -0
  91. package/lib/typescript/src/version.d.ts +1 -1
  92. package/package.json +1 -1
  93. package/src/CloudXAdViewBase.tsx +8 -125
  94. package/src/CloudXNativeAdView.tsx +419 -0
  95. package/src/CloudXNativeAdViewComponents.tsx +203 -0
  96. package/src/CloudXNativeAdViewProvider.tsx +149 -0
  97. package/src/extraParameters.ts +65 -0
  98. package/src/hooks.ts +38 -0
  99. package/src/index.ts +24 -0
  100. package/src/specs/CloudXNativeAdViewNativeComponent.ts +137 -0
  101. package/src/types/AdInfo.ts +5 -1
  102. package/src/types/NativeAd.ts +125 -0
  103. package/src/types/index.ts +7 -0
  104. package/src/useCloudXSdkInitialization.ts +73 -0
  105. package/src/version.ts +1 -1
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Context provider for the manual-render `<CloudXNativeAdView/>` flow.
3
+ *
4
+ * The pre-built asset components (title, advertiser, body, CTA, icon,
5
+ * options, media, star rating) read metadata and refs from this context.
6
+ * The host `<CloudXNativeAdView/>` owns the `setNativeAd` state setter and
7
+ * publishes the latest `CloudXNativeAdMetadata` when `onAdLoaded` fires so
8
+ * pre-built components re-render with the new content.
9
+ *
10
+ * Design notes:
11
+ * - A `starRatingRef` lets the star component participate in the binder
12
+ * pipeline (even though the native side treats it as decorative).
13
+ * - Refs are typed explicitly rather than relying on `any`, so misuse
14
+ * surfaces at compile time.
15
+ * - Adds `registerAssetRole`, called by every pre-built asset component on
16
+ * mount. The host `<CloudXNativeAdView/>` passes `onAssetRoleRegistered`
17
+ * to detect an asset component mounted while `renderMode` is `'template'`
18
+ * — a likely publisher mistake — and warn once.
19
+ */
20
+
21
+ import * as React from 'react';
22
+ import { useCallback, useMemo, useRef, useState, createContext } from 'react';
23
+
24
+ /**
25
+ * Shape exposed to pre-built asset components. Consumers typically destructure
26
+ * a single ref + the `nativeAd` field; the setter is only used by the host.
27
+ */
28
+
29
+ /**
30
+ * Default / no-op type mirror. Consumers that mount a pre-built asset view
31
+ * outside a `<CloudXNativeAdView/>` fall through this and render empty —
32
+ * which is preferable to throwing because a publisher might legitimately
33
+ * mount the UI before an ad is ever loaded.
34
+ */
35
+ const noopRef = {
36
+ current: null
37
+ };
38
+ export const CloudXNativeAdViewContext = /*#__PURE__*/createContext({
39
+ titleRef: noopRef,
40
+ advertiserRef: noopRef,
41
+ bodyRef: noopRef,
42
+ callToActionRef: noopRef,
43
+ iconRef: noopRef,
44
+ optionsRef: noopRef,
45
+ mediaRef: noopRef,
46
+ starRatingRef: noopRef,
47
+ nativeAd: null,
48
+ // eslint-disable-next-line @typescript-eslint/no-empty-function -- default/no-op context value; see comment above.
49
+ setNativeAd: () => {},
50
+ registerAssetRole: () => () => {
51
+ /* default/no-op context value; see comment above */
52
+ },
53
+ mountedAssetRoles: {
54
+ current: new Set()
55
+ }
56
+ });
57
+ /**
58
+ * Wrap this around the root of a `<CloudXNativeAdView/>` tree so descendant
59
+ * asset components share refs and ad state.
60
+ */
61
+ export const CloudXNativeAdViewProvider = ({
62
+ children,
63
+ onAssetRoleRegistered
64
+ }) => {
65
+ const titleRef = useRef(null);
66
+ const advertiserRef = useRef(null);
67
+ const bodyRef = useRef(null);
68
+ const callToActionRef = useRef(null);
69
+ const iconRef = useRef(null);
70
+ const optionsRef = useRef(null);
71
+ const mediaRef = useRef(null);
72
+ const starRatingRef = useRef(null);
73
+ const [nativeAd, setNativeAd] = useState(null);
74
+
75
+ // Ref so `registerAssetRole` stays referentially stable across renders
76
+ // without forcing callers to memoize `onAssetRoleRegistered`.
77
+ const onAssetRoleRegisteredRef = useRef(onAssetRoleRegistered);
78
+ onAssetRoleRegisteredRef.current = onAssetRoleRegistered;
79
+
80
+ // Mounted roles live in a ref, not state: the host reads them inside its
81
+ // bind effect and must not re-run that effect (which dispatches native
82
+ // commands) just because a sibling asset component mounted.
83
+ const mountedAssetRoles = useRef(new Set());
84
+ const registerAssetRole = useCallback(role => {
85
+ var _onAssetRoleRegistere;
86
+ mountedAssetRoles.current.add(role);
87
+ (_onAssetRoleRegistere = onAssetRoleRegisteredRef.current) === null || _onAssetRoleRegistere === void 0 || _onAssetRoleRegistere.call(onAssetRoleRegisteredRef, role);
88
+ return () => {
89
+ mountedAssetRoles.current.delete(role);
90
+ };
91
+ }, []);
92
+ const value = useMemo(() => ({
93
+ titleRef,
94
+ advertiserRef,
95
+ bodyRef,
96
+ callToActionRef,
97
+ iconRef,
98
+ optionsRef,
99
+ mediaRef,
100
+ starRatingRef,
101
+ nativeAd,
102
+ setNativeAd,
103
+ registerAssetRole,
104
+ mountedAssetRoles
105
+ }), [nativeAd, registerAssetRole]);
106
+ return /*#__PURE__*/React.createElement(CloudXNativeAdViewContext.Provider, {
107
+ value: value
108
+ }, children);
109
+ };
110
+ //# sourceMappingURL=CloudXNativeAdViewProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useCallback","useMemo","useRef","useState","createContext","noopRef","current","CloudXNativeAdViewContext","titleRef","advertiserRef","bodyRef","callToActionRef","iconRef","optionsRef","mediaRef","starRatingRef","nativeAd","setNativeAd","registerAssetRole","mountedAssetRoles","Set","CloudXNativeAdViewProvider","children","onAssetRoleRegistered","onAssetRoleRegisteredRef","role","_onAssetRoleRegistere","add","call","delete","value","createElement","Provider"],"sourceRoot":"../../src","sources":["CloudXNativeAdViewProvider.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,45 @@
1
+ const warnIgnoredUndefinedExtraParameter = keyPath => {
2
+ console.warn(`CloudX ad view ignored extra parameter "${keyPath}" because ` + 'undefined values are not supported. Use null when a value is intentional.');
3
+ };
4
+ const normalizeExtraParameterValue = (keyPath, value) => {
5
+ if (value === undefined) {
6
+ warnIgnoredUndefinedExtraParameter(keyPath);
7
+ return undefined;
8
+ }
9
+ if (Array.isArray(value)) {
10
+ return value.reduce((items, item, index) => {
11
+ const normalized = normalizeExtraParameterValue(`${keyPath}[${index}]`, item);
12
+ if (normalized !== undefined) {
13
+ items.push(normalized);
14
+ }
15
+ return items;
16
+ }, []);
17
+ }
18
+ if (value !== null && typeof value === 'object') {
19
+ return Object.entries(value).reduce((object, [childKey, childValue]) => {
20
+ const normalized = normalizeExtraParameterValue(`${keyPath}.${childKey}`, childValue);
21
+ if (normalized !== undefined) {
22
+ object[childKey] = normalized;
23
+ }
24
+ return object;
25
+ }, {});
26
+ }
27
+ return value;
28
+ };
29
+ export const toNativeExtraParameterEntries = extraParameters => {
30
+ if (!extraParameters) {
31
+ return [];
32
+ }
33
+ return Object.entries(extraParameters).reduce((entries, [key, value]) => {
34
+ const normalizedValue = normalizeExtraParameterValue(key, value);
35
+ if (normalizedValue === undefined) {
36
+ return entries;
37
+ }
38
+ entries.push({
39
+ key,
40
+ value: normalizedValue
41
+ });
42
+ return entries;
43
+ }, []);
44
+ };
45
+ //# sourceMappingURL=extraParameters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["warnIgnoredUndefinedExtraParameter","keyPath","console","warn","normalizeExtraParameterValue","value","undefined","Array","isArray","reduce","items","item","index","normalized","push","Object","entries","object","childKey","childValue","toNativeExtraParameterEntries","extraParameters","key","normalizedValue"],"sourceRoot":"../../src","sources":["extraParameters.ts"],"mappings":"AAGA,MAAMA,kCAAkC,GAAIC,OAAe,IAAW;EAClEC,OAAO,CAACC,IAAI,CACR,2CAA2CF,OAAO,YAAY,GAC1D,2EACR,CAAC;AACL,CAAC;AAED,MAAMG,4BAA4B,GAAGA,CACjCH,OAAe,EACfI,KAAc,KACmC;EACjD,IAAIA,KAAK,KAAKC,SAAS,EAAE;IACrBN,kCAAkC,CAACC,OAAO,CAAC;IAC3C,OAAOK,SAAS;EACpB;EAEA,IAAIC,KAAK,CAACC,OAAO,CAACH,KAAK,CAAC,EAAE;IACtB,OAAOA,KAAK,CAACI,MAAM,CAAY,CAACC,KAAK,EAAEC,IAAI,EAAEC,KAAK,KAAK;MACnD,MAAMC,UAAU,GAAGT,4BAA4B,CAAC,GAAGH,OAAO,IAAIW,KAAK,GAAG,EAAED,IAAI,CAAC;MAC7E,IAAIE,UAAU,KAAKP,SAAS,EAAE;QAC1BI,KAAK,CAACI,IAAI,CAACD,UAAU,CAAC;MAC1B;MACA,OAAOH,KAAK;IAChB,CAAC,EAAE,EAAE,CAAC;EACV;EAEA,IAAIL,KAAK,KAAK,IAAI,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC7C,OAAOU,MAAM,CAACC,OAAO,CAACX,KAAgC,CAAC,CAACI,MAAM,CAC1D,CAACQ,MAAM,EAAE,CAACC,QAAQ,EAAEC,UAAU,CAAC,KAAK;MAChC,MAAMN,UAAU,GAAGT,4BAA4B,CAAC,GAAGH,OAAO,IAAIiB,QAAQ,EAAE,EAAEC,UAAU,CAAC;MACrF,IAAIN,UAAU,KAAKP,SAAS,EAAE;QAC1BW,MAAM,CAACC,QAAQ,CAAC,GAAGL,UAAU;MACjC;MACA,OAAOI,MAAM;IACjB,CAAC,EACD,CAAC,CACL,CAAC;EACL;EAEA,OAAOZ,KAAK;AAChB,CAAC;AAED,OAAO,MAAMe,6BAA6B,GACtCC,eAAkD,IACP;EAC3C,IAAI,CAACA,eAAe,EAAE;IAClB,OAAO,EAAE;EACb;EAEA,OAAON,MAAM,CAACC,OAAO,CAACK,eAA0C,CAAC,CAACZ,MAAM,CACpE,CAACO,OAAO,EAAE,CAACM,GAAG,EAAEjB,KAAK,CAAC,KAAK;IACvB,MAAMkB,eAAe,GAAGnB,4BAA4B,CAACkB,GAAG,EAAEjB,KAAK,CAAC;IAChE,IAAIkB,eAAe,KAAKjB,SAAS,EAAE;MAC/B,OAAOU,OAAO;IAClB;IAEAA,OAAO,CAACF,IAAI,CAAC;MAAEQ,GAAG;MAAEjB,KAAK,EAAEkB;IAAgB,CAAC,CAAC;IAC7C,OAAOP,OAAO;EAClB,CAAC,EACD,EACJ,CAAC;AACL,CAAC","ignoreList":[]}
@@ -42,6 +42,15 @@ export function useCloudXInterstitial(adUnitId) {
42
42
  const mountedRef = useRef(true);
43
43
  useEffect(() => {
44
44
  mountedRef.current = true;
45
+
46
+ // A changed adUnitId must not keep reporting the previous unit's
47
+ // result: without this, isLoaded stays true for an ad unit that
48
+ // has not loaded until the new unit happens to emit. isLoading is
49
+ // reset too, because the cleanup below destroys the in-flight
50
+ // request and no load/fail event for it will ever arrive.
51
+ setIsLoaded(false);
52
+ setIsLoading(false);
53
+ setError(null);
45
54
  const subs = [];
46
55
  subs.push(emitter.addListener(ON_INTERSTITIAL_LOADED_EVENT, event => {
47
56
  if (event.adUnitId === adUnitId && mountedRef.current) {
@@ -118,6 +127,15 @@ export function useCloudXAppOpen(adUnitId) {
118
127
  const mountedRef = useRef(true);
119
128
  useEffect(() => {
120
129
  mountedRef.current = true;
130
+
131
+ // A changed adUnitId must not keep reporting the previous unit's
132
+ // result: without this, isLoaded stays true for an ad unit that
133
+ // has not loaded until the new unit happens to emit. isLoading is
134
+ // reset too, because the cleanup below destroys the in-flight
135
+ // request and no load/fail event for it will ever arrive.
136
+ setIsLoaded(false);
137
+ setIsLoading(false);
138
+ setError(null);
121
139
  const subs = [];
122
140
  subs.push(emitter.addListener(ON_APPOPEN_LOADED_EVENT, event => {
123
141
  if (event.adUnitId === adUnitId && mountedRef.current) {
@@ -195,6 +213,16 @@ export function useCloudXRewarded(adUnitId) {
195
213
  const mountedRef = useRef(true);
196
214
  useEffect(() => {
197
215
  mountedRef.current = true;
216
+
217
+ // A changed adUnitId must not keep reporting the previous unit's
218
+ // result: without this, isLoaded stays true for an ad unit that
219
+ // has not loaded until the new unit happens to emit. isLoading is
220
+ // reset too, because the cleanup below destroys the in-flight
221
+ // request and no load/fail event for it will ever arrive.
222
+ setIsLoaded(false);
223
+ setIsLoading(false);
224
+ setError(null);
225
+ setRewardEarned(false);
198
226
  const subs = [];
199
227
  subs.push(emitter.addListener(ON_REWARDED_AD_LOADED_EVENT, event => {
200
228
  if (event.adUnitId === adUnitId && mountedRef.current) {
@@ -282,6 +310,12 @@ export function useCloudXBanner(adUnitId) {
282
310
  const mountedRef = useRef(true);
283
311
  useEffect(() => {
284
312
  mountedRef.current = true;
313
+
314
+ // A changed adUnitId must not keep reporting the previous unit's
315
+ // result: without this, isLoaded stays true for an ad unit that
316
+ // has not loaded until the new unit happens to emit.
317
+ setIsLoaded(false);
318
+ setError(null);
285
319
  const subs = [];
286
320
  subs.push(emitter.addListener(ON_BANNER_AD_LOADED_EVENT, event => {
287
321
  if (event.adUnitId === adUnitId && mountedRef.current) {
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useState","useCallback","useRef","NativeCloudX","emitter","ON_INTERSTITIAL_LOADED_EVENT","ON_INTERSTITIAL_LOAD_FAILED_EVENT","ON_INTERSTITIAL_DISPLAY_FAILED_EVENT","ON_INTERSTITIAL_HIDDEN_EVENT","ON_APPOPEN_LOADED_EVENT","ON_APPOPEN_LOAD_FAILED_EVENT","ON_APPOPEN_DISPLAY_FAILED_EVENT","ON_APPOPEN_HIDDEN_EVENT","ON_REWARDED_AD_LOADED_EVENT","ON_REWARDED_AD_LOAD_FAILED_EVENT","ON_REWARDED_AD_DISPLAY_FAILED_EVENT","ON_REWARDED_AD_HIDDEN_EVENT","ON_REWARDED_AD_RECEIVED_REWARD_EVENT","ON_BANNER_AD_LOADED_EVENT","ON_BANNER_AD_LOAD_FAILED_EVENT","getConstants","useCloudXInterstitial","adUnitId","isLoaded","setIsLoaded","isLoading","setIsLoading","error","setError","mountedRef","current","subs","push","addListener","event","message","forEach","s","remove","destroyInterstitial","load","loadInterstitial","show","placement","customData","showInterstitial","undefined","destroy","useCloudXAppOpen","destroyAppOpen","loadAppOpen","showAppOpen","useCloudXRewarded","rewardEarned","setRewardEarned","destroyRewarded","loadRewarded","showRewarded","useCloudXBanner","destroyBanner"],"sourceRoot":"../../src","sources":["hooks.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useState","useCallback","useRef","NativeCloudX","emitter","ON_INTERSTITIAL_LOADED_EVENT","ON_INTERSTITIAL_LOAD_FAILED_EVENT","ON_INTERSTITIAL_DISPLAY_FAILED_EVENT","ON_INTERSTITIAL_HIDDEN_EVENT","ON_APPOPEN_LOADED_EVENT","ON_APPOPEN_LOAD_FAILED_EVENT","ON_APPOPEN_DISPLAY_FAILED_EVENT","ON_APPOPEN_HIDDEN_EVENT","ON_REWARDED_AD_LOADED_EVENT","ON_REWARDED_AD_LOAD_FAILED_EVENT","ON_REWARDED_AD_DISPLAY_FAILED_EVENT","ON_REWARDED_AD_HIDDEN_EVENT","ON_REWARDED_AD_RECEIVED_REWARD_EVENT","ON_BANNER_AD_LOADED_EVENT","ON_BANNER_AD_LOAD_FAILED_EVENT","getConstants","useCloudXInterstitial","adUnitId","isLoaded","setIsLoaded","isLoading","setIsLoading","error","setError","mountedRef","current","subs","push","addListener","event","message","forEach","s","remove","destroyInterstitial","load","loadInterstitial","show","placement","customData","showInterstitial","undefined","destroy","useCloudXAppOpen","destroyAppOpen","loadAppOpen","showAppOpen","useCloudXRewarded","rewardEarned","setRewardEarned","destroyRewarded","loadRewarded","showRewarded","useCloudXBanner","destroyBanner"],"sourceRoot":"../../src","sources":["hooks.ts"],"mappings":"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","ignoreList":[]}
@@ -19,6 +19,17 @@ export { CloudXAdPosition } from './CloudXAdPosition';
19
19
  // Ad View Components (in-tree; layer correctly under app overlays)
20
20
  export { CloudXBannerView } from './CloudXBannerView';
21
21
  export { CloudXMRECView } from './CloudXMRECView';
22
+ export { CloudXNativeAdView } from './CloudXNativeAdView';
23
+ export { CloudXTitleView, CloudXAdvertiserView, CloudXBodyView, CloudXCallToActionView, CloudXIconView, CloudXOptionsView, CloudXMediaView, CloudXStarRatingView } from './CloudXNativeAdViewComponents';
24
+ // Exposed so publishers can build fully custom manual layouts that consume
25
+ // the loaded-ad context outside the bundled asset components.
26
+ // The provider, its context and the context value type are deliberately NOT
27
+ // public. The host `<CloudXNativeAdView/>` always mounts its own provider: one
28
+ // mounted outside it is ignored, and one mounted inside it breaks binding for
29
+ // the asset components beneath. Exporting the value type would also freeze
30
+ // `setNativeAd` and every asset ref as public API. Widening this surface later
31
+ // is additive; removing it after release would be a breaking change.
32
+
22
33
  // Error Codes
23
34
  export { CloudXErrorCode } from './CloudXErrorCode';
24
35
 
@@ -30,6 +41,8 @@ export { useCloudXInterstitial, useCloudXAppOpen, useCloudXRewarded, useCloudXBa
30
41
 
31
42
  // Types
32
43
 
44
+ export { CloudXNativeTemplate } from './types';
45
+
33
46
  // Log level constants
34
47
  export const CloudXLogLevel = {
35
48
  VERBOSE: 'verbose',
@@ -1 +1 @@
1
- {"version":3,"names":["default","CloudX","NativeCloudX","emitter","cloudXEventEmitter","CloudXArbiterBid","CloudXRevenuePlatform","CloudXRevenuePrecision","CloudXInterstitialAd","CloudXAppOpenAd","CloudXRewardedAd","CloudXBannerAd","CloudXMRECAd","CloudXAdPosition","CloudXBannerView","CloudXMRECView","CloudXErrorCode","requestTrackingAuthorization","getTrackingAuthorizationStatus","CloudXATTStatus","useCloudXInterstitial","useCloudXAppOpen","useCloudXRewarded","useCloudXBanner","CloudXLogLevel","VERBOSE","DEBUG","INFO","WARN","ERROR","NONE"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA;AACA,SAASA,OAAO,EAAEC,MAAM,QAAQ,UAAU;AAC1C,SAASD,OAAO,IAAIE,YAAY,QAAQ,sBAAsB;AAC9D;AACA;AACA;AACA,SAASC,OAAO,IAAIC,kBAAkB,QAAQ,gBAAgB;AAC9D,SAASC,gBAAgB,QAAQ,iBAAiB;AAClD,SAASC,qBAAqB,EAAEC,sBAAsB,QAAQ,qBAAqB;;AAEnF;AACA,SAASC,oBAAoB,QAAQ,wBAAwB;AAC7D,SAASC,eAAe,QAAQ,mBAAmB;AACnD,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,cAAc,QAAQ,kBAAkB;AACjD,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,gBAAgB,QAAQ,oBAAoB;;AAErD;AACA,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,cAAc,QAAQ,kBAAkB;AAGjD;AACA,SAASC,eAAe,QAAQ,mBAAmB;;AAEnD;AACA,SAASC,4BAA4B,EAAEC,8BAA8B,EAAEC,eAAe,QAAQ,2BAA2B;;AAEzH;AACA,SAASC,qBAAqB,EAAEC,gBAAgB,EAAEC,iBAAiB,EAAEC,eAAe,QAAQ,SAAS;;AAQrG;;AAoCA;AACA,OAAO,MAAMC,cAAc,GAAG;EAC1BC,OAAO,EAAE,SAAS;EAClBC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE,MAAM;EACZC,IAAI,EAAE,MAAM;EACZC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE;AACV,CAAU","ignoreList":[]}
1
+ {"version":3,"names":["default","CloudX","NativeCloudX","emitter","cloudXEventEmitter","CloudXArbiterBid","CloudXRevenuePlatform","CloudXRevenuePrecision","CloudXInterstitialAd","CloudXAppOpenAd","CloudXRewardedAd","CloudXBannerAd","CloudXMRECAd","CloudXAdPosition","CloudXBannerView","CloudXMRECView","CloudXNativeAdView","CloudXTitleView","CloudXAdvertiserView","CloudXBodyView","CloudXCallToActionView","CloudXIconView","CloudXOptionsView","CloudXMediaView","CloudXStarRatingView","CloudXErrorCode","requestTrackingAuthorization","getTrackingAuthorizationStatus","CloudXATTStatus","useCloudXInterstitial","useCloudXAppOpen","useCloudXRewarded","useCloudXBanner","CloudXNativeTemplate","CloudXLogLevel","VERBOSE","DEBUG","INFO","WARN","ERROR","NONE"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA;AACA,SAASA,OAAO,EAAEC,MAAM,QAAQ,UAAU;AAC1C,SAASD,OAAO,IAAIE,YAAY,QAAQ,sBAAsB;AAC9D;AACA;AACA;AACA,SAASC,OAAO,IAAIC,kBAAkB,QAAQ,gBAAgB;AAC9D,SAASC,gBAAgB,QAAQ,iBAAiB;AAClD,SAASC,qBAAqB,EAAEC,sBAAsB,QAAQ,qBAAqB;;AAEnF;AACA,SAASC,oBAAoB,QAAQ,wBAAwB;AAC7D,SAASC,eAAe,QAAQ,mBAAmB;AACnD,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,cAAc,QAAQ,kBAAkB;AACjD,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,gBAAgB,QAAQ,oBAAoB;;AAErD;AACA,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,cAAc,QAAQ,kBAAkB;AACjD,SAASC,kBAAkB,QAAQ,sBAAsB;AACzD,SACIC,eAAe,EACfC,oBAAoB,EACpBC,cAAc,EACdC,sBAAsB,EACtBC,cAAc,EACdC,iBAAiB,EACjBC,eAAe,EACfC,oBAAoB,QACjB,gCAAgC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA,SAASC,eAAe,QAAQ,mBAAmB;;AAEnD;AACA,SAASC,4BAA4B,EAAEC,8BAA8B,EAAEC,eAAe,QAAQ,2BAA2B;;AAEzH;AACA,SAASC,qBAAqB,EAAEC,gBAAgB,EAAEC,iBAAiB,EAAEC,eAAe,QAAQ,SAAS;;AAQrG;;AAuCA,SAASC,oBAAoB,QAAQ,SAAS;;AAE9C;AACA,OAAO,MAAMC,cAAc,GAAG;EAC1BC,OAAO,EAAE,SAAS;EAClBC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE,MAAM;EACZC,IAAI,EAAE,MAAM;EACZC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE;AACV,CAAU","ignoreList":[]}
@@ -0,0 +1,35 @@
1
+ import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
2
+ import codegenNativeCommands from 'react-native/Libraries/Utilities/codegenNativeCommands';
3
+
4
+ /**
5
+ * Payload for native-ad lifecycle events (load, click, revenue).
6
+ *
7
+ * Codegen cannot express `Record<string, string>`, so the SDK-owned ad values
8
+ * are delivered as a JSON-encoded string in `adValuesJson` (mirroring
9
+ * CloudXAdViewNativeComponent) and re-parsed into a map by the JS wrapper.
10
+ * The loaded native ad's own metadata (title, media, icon, etc.) is likewise
11
+ * delivered as a JSON-encoded string in `nativeAdJson`, since codegen cannot
12
+ * express the native ad's heterogeneous field set as typed props.
13
+ */
14
+
15
+ /**
16
+ * Payload for native-ad load/display-failure events.
17
+ */
18
+
19
+ /**
20
+ * Props for the native CloudXNativeAdView component.
21
+ *
22
+ * Mirrors the in-tree CloudXAdView (banner/MREC) component: the ad renders as
23
+ * an ordinary React Native view so publisher overlays layer above it via
24
+ * normal RN z-ordering.
25
+ */
26
+
27
+ export const Commands = codegenNativeCommands({
28
+ supportedCommands: ['loadAd', 'destroyAd', 'updateAssetView', 'renderNativeAd']
29
+ });
30
+
31
+ /**
32
+ * Native in-tree view component backing the publisher-facing native ad view.
33
+ */
34
+ export default codegenNativeComponent('CloudXNativeAdView');
35
+ //# sourceMappingURL=CloudXNativeAdViewNativeComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["codegenNativeComponent","codegenNativeCommands","Commands","supportedCommands"],"sourceRoot":"../../../src","sources":["specs/CloudXNativeAdViewNativeComponent.ts"],"mappings":"AAQA,OAAOA,sBAAsB,MAAM,yDAAyD;AAC5F,OAAOC,qBAAqB,MAAM,wDAAwD;;AAE1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAaA;AACA;AACA;;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;;AA4EA,OAAO,MAAMC,QAAwB,GAAGD,qBAAqB,CAAiB;EAC1EE,iBAAiB,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB;AAClF,CAAC,CAAC;;AAEF;AACA;AACA;AACA,eAAeH,sBAAsB,CAAc,oBAAoB,CAAC","ignoreList":[]}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Built-in native ad template variants rendered by the SDK's view component.
3
+ *
4
+ * All four variants have a distinct bundled layout on both iOS and Android,
5
+ * and unknown values fall back to `MEDIUM` on both.
6
+ *
7
+ * On both platforms this prop selects the **local layout only**. Neither
8
+ * bid request carries the selection, so the server sizes the creative's
9
+ * assets for `medium` whatever is chosen here:
10
+ *
11
+ * - iOS: `CLXNativeAdLoader` builds its publisher with
12
+ * `CLXNativeTemplateDefault`, which is `CLXNativeTemplateMedium`.
13
+ * `CLXBidSignals` would thread a non-default template, but the loader
14
+ * never supplies one.
15
+ * - Android: `BidSignalsProvider` writes `nativeRequirements.template`
16
+ * as a fixed `"medium"`, pending a public template-selection API.
17
+ *
18
+ * A creative rendered in a non-`MEDIUM` layout therefore carries assets cut
19
+ * for `MEDIUM` — most visible with `VERTICAL_MEDIA`, the full-screen shape.
20
+ * Tracked as CXD-5385.
21
+ */
22
+ export let CloudXNativeTemplate = /*#__PURE__*/function (CloudXNativeTemplate) {
23
+ /** 320x90 compact template: icon, title, advertiser, CTA. */
24
+ CloudXNativeTemplate["SMALL"] = "small_template";
25
+ /** 320x250 template. */
26
+ CloudXNativeTemplate["MEDIUM"] = "medium_template";
27
+ /** 320x300 media-forward template. */
28
+ CloudXNativeTemplate["MEDIA_BANNER"] = "media_banner_template";
29
+ /**
30
+ * Full-screen vertical template sized to the available bounds.
31
+ * Intended for feed-style vertical experiences. Bundled layout on both
32
+ * iOS and Android.
33
+ */
34
+ CloudXNativeTemplate["VERTICAL_MEDIA"] = "vertical_media_template";
35
+ return CloudXNativeTemplate;
36
+ }({});
37
+
38
+ /**
39
+ * Type-safe asset identifiers for custom native-ad binding.
40
+ */
41
+ export let CloudXNativeAssetType = /*#__PURE__*/function (CloudXNativeAssetType) {
42
+ CloudXNativeAssetType["TITLE"] = "TitleView";
43
+ CloudXNativeAssetType["ADVERTISER"] = "AdvertiserView";
44
+ CloudXNativeAssetType["BODY"] = "BodyView";
45
+ CloudXNativeAssetType["CALL_TO_ACTION"] = "CallToActionView";
46
+ CloudXNativeAssetType["ICON"] = "IconView";
47
+ CloudXNativeAssetType["OPTIONS"] = "OptionsView";
48
+ CloudXNativeAssetType["MEDIA"] = "MediaView";
49
+ CloudXNativeAssetType["STAR_RATING"] = "StarRatingView";
50
+ return CloudXNativeAssetType;
51
+ }({});
52
+
53
+ /**
54
+ * Structured metadata for a single loaded native ad.
55
+ *
56
+ * Surfaced on the `onAdLoaded` callback as `CloudXAdInfo.nativeAd`.
57
+ */
58
+
59
+ // Shares one value type with `extraParameters`: both native setters accept any
60
+ // value, so narrowing one of the two sibling props was an accidental restriction.
61
+
62
+ /**
63
+ * Props for the native-ad view component.
64
+ *
65
+ * Callbacks inherited from {@link CloudXAdProps} (`onAdLoaded`, `onAdLoadFailed`,
66
+ * `onAdClicked`, `onAdRevenuePaid`) receive unwrapped payloads, not synthetic events.
67
+ */
68
+ //# sourceMappingURL=NativeAd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CloudXNativeTemplate","CloudXNativeAssetType"],"sourceRoot":"../../../src","sources":["types/NativeAd.ts"],"mappings":"AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAYA,oBAAoB,0BAApBA,oBAAoB;EAC5B;EADQA,oBAAoB;EAI5B;EAJQA,oBAAoB;EAO5B;EAPQA,oBAAoB;EAU5B;AACJ;AACA;AACA;AACA;EAdYA,oBAAoB;EAAA,OAApBA,oBAAoB;AAAA;;AAkBhC;AACA;AACA;AACA,WAAYC,qBAAqB,0BAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAAA,OAArBA,qBAAqB;AAAA;;AAWjC;AACA;AACA;AACA;AACA;;AAkBA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
@@ -1,2 +1,3 @@
1
1
  export { CloudXRevenuePlatform, CloudXRevenuePrecision } from './RevenueData';
2
+ export { CloudXNativeTemplate, CloudXNativeAssetType } from './NativeAd';
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["CloudXRevenuePlatform","CloudXRevenuePrecision"],"sourceRoot":"../../../src","sources":["types/index.ts"],"mappings":"AAeA,SAASA,qBAAqB,EAAEC,sBAAsB,QAAQ,eAAe","ignoreList":[]}
1
+ {"version":3,"names":["CloudXRevenuePlatform","CloudXRevenuePrecision","CloudXNativeTemplate","CloudXNativeAssetType"],"sourceRoot":"../../../src","sources":["types/index.ts"],"mappings":"AAeA,SAASA,qBAAqB,EAAEC,sBAAsB,QAAQ,eAAe;AAkB7E,SAASC,oBAAoB,EAAEC,qBAAqB,QAAQ,YAAY","ignoreList":[]}
@@ -0,0 +1,68 @@
1
+ import { useEffect, useState } from 'react';
2
+ import NativeCloudX from './specs/NativeCloudX';
3
+
4
+ /*
5
+ * Once the SDK reports initialized it stays initialized for the JS VM's life,
6
+ * so cache it module-wide: only the first ad view mounted before init has to
7
+ * poll + show a placeholder; every later mount (banner, MREC, or native)
8
+ * renders its native view immediately.
9
+ */
10
+ let cachedIsInitialized = false;
11
+
12
+ /**
13
+ * Polls CloudX SDK initialization state and caches the result module-wide.
14
+ *
15
+ * Shared by `CloudXAdViewBase` (banner/MREC) and `CloudXNativeAdView` so
16
+ * every in-tree ad-view component gates native-view creation on SDK
17
+ * initialization identically: a view mounted before `CloudX.initialize()`
18
+ * completes would create its native ad against an uninitialized SDK, which
19
+ * on iOS returns nil and leaves the view permanently dead (no retry, no
20
+ * load-failed event). There is no init event to subscribe to, so poll
21
+ * `isInitialized()` until ready.
22
+ *
23
+ * @param componentName Used only in the console warnings, so callers can
24
+ * tell which component is waiting on initialization.
25
+ */
26
+ export const useCloudXSdkInitializationGate = componentName => {
27
+ const [isInitialized, setIsInitialized] = useState(cachedIsInitialized);
28
+ useEffect(() => {
29
+ if (cachedIsInitialized) {
30
+ return;
31
+ }
32
+ let cancelled = false;
33
+ let timer;
34
+ let warnedOnce = false;
35
+ const check = () => {
36
+ NativeCloudX.isInitialized().then(ready => {
37
+ if (cancelled) {
38
+ return;
39
+ }
40
+ if (ready) {
41
+ cachedIsInitialized = true;
42
+ setIsInitialized(true);
43
+ return;
44
+ }
45
+ if (!warnedOnce) {
46
+ warnedOnce = true;
47
+ console.warn(`${componentName} mounted before CloudX SDK initialization; will render once initialize() completes.`);
48
+ }
49
+ timer = setTimeout(check, 1000);
50
+ }).catch(error => {
51
+ if (cancelled) {
52
+ return;
53
+ }
54
+ console.warn(`${componentName} failed to read initialization state:`, error);
55
+ timer = setTimeout(check, 1000);
56
+ });
57
+ };
58
+ check();
59
+ return () => {
60
+ cancelled = true;
61
+ if (timer) {
62
+ clearTimeout(timer);
63
+ }
64
+ };
65
+ }, [componentName]);
66
+ return isInitialized;
67
+ };
68
+ //# sourceMappingURL=useCloudXSdkInitialization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useState","NativeCloudX","cachedIsInitialized","useCloudXSdkInitializationGate","componentName","isInitialized","setIsInitialized","cancelled","timer","warnedOnce","check","then","ready","console","warn","setTimeout","catch","error","clearTimeout"],"sourceRoot":"../../src","sources":["useCloudXSdkInitialization.ts"],"mappings":"AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,OAAOC,YAAY,MAAM,sBAAsB;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA,IAAIC,mBAAmB,GAAG,KAAK;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,8BAA8B,GAAIC,aAAqB,IAAc;EAC9E,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAGN,QAAQ,CAACE,mBAAmB,CAAC;EAEvEH,SAAS,CAAC,MAAM;IACZ,IAAIG,mBAAmB,EAAE;MACrB;IACJ;IACA,IAAIK,SAAS,GAAG,KAAK;IACrB,IAAIC,KAAgD;IACpD,IAAIC,UAAU,GAAG,KAAK;IACtB,MAAMC,KAAK,GAAGA,CAAA,KAAM;MAChBT,YAAY,CAACI,aAAa,CAAC,CAAC,CACvBM,IAAI,CAAEC,KAAK,IAAK;QACb,IAAIL,SAAS,EAAE;UACX;QACJ;QACA,IAAIK,KAAK,EAAE;UACPV,mBAAmB,GAAG,IAAI;UAC1BI,gBAAgB,CAAC,IAAI,CAAC;UACtB;QACJ;QACA,IAAI,CAACG,UAAU,EAAE;UACbA,UAAU,GAAG,IAAI;UACjBI,OAAO,CAACC,IAAI,CACR,GAAGV,aAAa,qFACpB,CAAC;QACL;QACAI,KAAK,GAAGO,UAAU,CAACL,KAAK,EAAE,IAAI,CAAC;MACnC,CAAC,CAAC,CACDM,KAAK,CAAEC,KAAK,IAAK;QACd,IAAIV,SAAS,EAAE;UACX;QACJ;QACAM,OAAO,CAACC,IAAI,CAAC,GAAGV,aAAa,uCAAuC,EAAEa,KAAK,CAAC;QAC5ET,KAAK,GAAGO,UAAU,CAACL,KAAK,EAAE,IAAI,CAAC;MACnC,CAAC,CAAC;IACV,CAAC;IACDA,KAAK,CAAC,CAAC;IACP,OAAO,MAAM;MACTH,SAAS,GAAG,IAAI;MAChB,IAAIC,KAAK,EAAE;QACPU,YAAY,CAACV,KAAK,CAAC;MACvB;IACJ,CAAC;EACL,CAAC,EAAE,CAACJ,aAAa,CAAC,CAAC;EAEnB,OAAOC,aAAa;AACxB,CAAC","ignoreList":[]}
@@ -3,5 +3,5 @@
3
3
  // This value is reported to the native SDK in CloudX.initialize() and is used
4
4
  // for wrapper-version telemetry/attribution, so a stale value mis-attributes
5
5
  // installs to the wrong release.
6
- export const PLUGIN_VERSION = '3.10.0';
6
+ export const PLUGIN_VERSION = '3.11.0';
7
7
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CloudXAdViewBase.d.ts","sourceRoot":"","sources":["../../../src/CloudXAdViewBase.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAE5D,OAAO,KAAK,EAAmC,SAAS,EAAa,MAAM,cAAc,CAAC;AAS1F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG,SAAS,CAAC;AAE1D,iFAAiF;AACjF,KAAK,qBAAqB,GAAG,iBAAiB,GAAG;IAC7C,QAAQ,EAAE,kBAAkB,CAAC;CAChC,CAAC;AAmHF;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CA8I5D,CAAC"}
1
+ {"version":3,"file":"CloudXAdViewBase.d.ts","sourceRoot":"","sources":["../../../src/CloudXAdViewBase.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAE5D,OAAO,KAAK,EAAmC,SAAS,EAAa,MAAM,cAAc,CAAC;AAK1F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAKrD;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG,SAAS,CAAC;AAE1D,iFAAiF;AACjF,KAAK,qBAAqB,GAAG,iBAAiB,GAAG;IAC7C,QAAQ,EAAE,kBAAkB,CAAC;CAChC,CAAC;AA4CF;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAkG5D,CAAC"}
@@ -0,0 +1,24 @@
1
+ import * as React from 'react';
2
+ import type { CloudXNativeAdViewHandle } from './types/NativeAd';
3
+ import type { CloudXAdDisplayFailedInfo, CloudXAdInfo } from './types/AdInfo';
4
+ /**
5
+ * Renders a native ad. Defaults to the SDK's bundled template layouts;
6
+ * set `renderMode="manual"` to drive layout through the pre-built asset
7
+ * components (`CloudXTitleView`, `CloudXMediaView`, etc.) instead.
8
+ *
9
+ * Manual mode is never inferred from the presence of children — `renderMode`
10
+ * is always explicit so a publisher's intent is visible at the call site.
11
+ */
12
+ export declare const CloudXNativeAdView: React.ForwardRefExoticComponent<import("./types").CloudXAdProps & import("react-native").ViewProps & {
13
+ template?: import("./types/NativeAd").CloudXNativeTemplate;
14
+ localExtraParameters?: import("./types/NativeAd").CloudXLocalExtraParameters;
15
+ disableVideoFullScreen?: boolean;
16
+ startVideoUnmuted?: boolean;
17
+ hideVideoMediaControls?: boolean;
18
+ renderMode?: "template" | "manual";
19
+ onAdDisplayFailed?: (errorInfo: CloudXAdDisplayFailedInfo) => void;
20
+ onAdExpired?: (adInfo: CloudXAdInfo) => void;
21
+ onAdClosed?: (adInfo: CloudXAdInfo) => void;
22
+ } & React.RefAttributes<CloudXNativeAdViewHandle>>;
23
+ export default CloudXNativeAdView;
24
+ //# sourceMappingURL=CloudXNativeAdView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CloudXNativeAdView.d.ts","sourceRoot":"","sources":["../../../src/CloudXNativeAdView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,KAAK,EAA0B,wBAAwB,EAA2B,MAAM,kBAAkB,CAAC;AAClH,OAAO,KAAK,EAAE,yBAAyB,EAAE,YAAY,EAA0B,MAAM,gBAAgB,CAAC;AAoDtG;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;kDAqD9B,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Pre-built asset components for the manual-render `<CloudXNativeAdView/>`
3
+ * flow. Each component reads its content + ref from
4
+ * @{link CloudXNativeAdViewContext} and renders a minimal RN primitive so the
5
+ * publisher can style it with `style` / `textStyle` props without reaching
6
+ * into SDK internals.
7
+ *
8
+ * Mount these as descendants of a `<CloudXNativeAdView/>`. A component
9
+ * mounted outside the provider renders empty rather than throwing, so
10
+ * publisher layouts can be shown before the first ad loads. Each component
11
+ * calls `registerAssetRole` on mount so the host view can warn if it is used
12
+ * while `renderMode` is `'template'` (see CloudXNativeAdViewProvider).
13
+ */
14
+ import * as React from 'react';
15
+ import type { ImageProps, TextProps, ViewProps } from 'react-native';
16
+ /** Renders the headline. */
17
+ export declare const CloudXTitleView: React.FC<TextProps>;
18
+ /** Renders the advertiser / sponsor name. */
19
+ export declare const CloudXAdvertiserView: React.FC<TextProps>;
20
+ /** Renders the body / description copy. */
21
+ export declare const CloudXBodyView: React.FC<TextProps>;
22
+ /**
23
+ * Renders the call-to-action label.
24
+ *
25
+ * iOS wraps the Text in a TouchableOpacity so publishers get the standard
26
+ * press-feedback animation; the Text ref is what the native bridge tags,
27
+ * and UIKit's touch dispatch lets the SDK's gesture recognizer run.
28
+ *
29
+ * Android renders a bare Text. RN's gesture responder system treats a
30
+ * wrapping TouchableOpacity as a touch-capturing ancestor, which blocks
31
+ * the OnClickListener the 3P SDK installs on the Text when registering
32
+ * it for click handling. Without the wrapper, the SDK-set listener
33
+ * receives the tap normally.
34
+ */
35
+ export declare const CloudXCallToActionView: React.FC<TextProps>;
36
+ /**
37
+ * Renders the icon. Prefers the remote URL when available (fast CDN fetch),
38
+ * falling back to the base64-encoded bytes surfaced by the bridge for
39
+ * adapters that only ship a pre-loaded drawable.
40
+ */
41
+ export declare const CloudXIconView: React.FC<Omit<ImageProps, 'source'>>;
42
+ /**
43
+ * Renders the ad-choices / options container. The adapter's actual options
44
+ * view is inserted as a native child of this element by the bridge.
45
+ */
46
+ export declare const CloudXOptionsView: React.FC<ViewProps>;
47
+ /**
48
+ * Renders the media container. The adapter's media view (static image or
49
+ * video surface) is inserted as a native child of this element by the
50
+ * bridge.
51
+ */
52
+ export declare const CloudXMediaView: React.FC<ViewProps>;
53
+ type StarRatingViewProps = ViewProps & {
54
+ /** Color for filled stars. Defaults to #ffe234. */
55
+ color?: string;
56
+ /** Color for empty stars. Defaults to #dedede. */
57
+ shadowColor?: string;
58
+ /** Star size in points. Defaults to 10. */
59
+ size?: number;
60
+ };
61
+ /**
62
+ * Renders the star rating using Unicode glyphs. Partial fractions are
63
+ * clipped so a 3.5-star rating displays as 3.5 stars.
64
+ */
65
+ export declare const CloudXStarRatingView: React.FC<StarRatingViewProps>;
66
+ export {};
67
+ //# sourceMappingURL=CloudXNativeAdViewComponents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CloudXNativeAdViewComponents.d.ts","sourceRoot":"","sources":["../../../src/CloudXNativeAdViewComponents.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAWrE,4BAA4B;AAC5B,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAQ/C,CAAC;AAEF,6CAA6C;AAC7C,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAQpD,CAAC;AAEF,2CAA2C;AAC3C,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAQ9C,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAgBtD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAiB/D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAQjD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAQ/C,CAAC;AAEF,KAAK,mBAAmB,GAAG,SAAS,GAAG;IACnC,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAiC9D,CAAC"}