novvy-ads-react-native 1.0.0-beta.1
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/LICENSE +21 -0
- package/README.md +210 -0
- package/android/build.gradle +84 -0
- package/android/gradle.properties +4 -0
- package/android/src/main/AndroidManifest.xml +4 -0
- package/android/src/main/java/ai/novvy/reactnative/NovvyAdContainerView.kt +63 -0
- package/android/src/main/java/ai/novvy/reactnative/NovvyAdsModule.kt +390 -0
- package/android/src/main/java/ai/novvy/reactnative/NovvyAdsPackage.kt +46 -0
- package/android/src/main/java/ai/novvy/reactnative/NovvyPauseAdViewManager.kt +68 -0
- package/android/src/main/java/ai/novvy/reactnative/NovvyScrollAdViewManager.kt +72 -0
- package/android/src/main/java/ai/novvy/reactnative/RnPlayerAdapter.kt +18 -0
- package/android/src/main/java/ai/novvy/reactnative/ViewReadyEvent.kt +26 -0
- package/app.plugin.js +4 -0
- package/ios/NovvyAds.mm +168 -0
- package/ios/NovvyAdsImpl.swift +409 -0
- package/ios/NovvyPauseAdView.mm +79 -0
- package/ios/NovvyScrollAdView.mm +80 -0
- package/ios/RnPlayerAdapter.swift +14 -0
- package/lib/commonjs/NovvyAds.js +87 -0
- package/lib/commonjs/NovvyAds.js.map +1 -0
- package/lib/commonjs/ads/NovvyAd.js +121 -0
- package/lib/commonjs/ads/NovvyAd.js.map +1 -0
- package/lib/commonjs/ads/NovvyEndAd.js +19 -0
- package/lib/commonjs/ads/NovvyEndAd.js.map +1 -0
- package/lib/commonjs/ads/NovvyFullScreenAd.js +49 -0
- package/lib/commonjs/ads/NovvyFullScreenAd.js.map +1 -0
- package/lib/commonjs/ads/NovvyInterstitialAd.js +19 -0
- package/lib/commonjs/ads/NovvyInterstitialAd.js.map +1 -0
- package/lib/commonjs/ads/NovvyMidAd.js +19 -0
- package/lib/commonjs/ads/NovvyMidAd.js.map +1 -0
- package/lib/commonjs/ads/NovvyPauseAd.js +116 -0
- package/lib/commonjs/ads/NovvyPauseAd.js.map +1 -0
- package/lib/commonjs/ads/NovvyRewardedAd.js +53 -0
- package/lib/commonjs/ads/NovvyRewardedAd.js.map +1 -0
- package/lib/commonjs/ads/NovvyScrollAd.js +136 -0
- package/lib/commonjs/ads/NovvyScrollAd.js.map +1 -0
- package/lib/commonjs/eventBus.js +60 -0
- package/lib/commonjs/eventBus.js.map +1 -0
- package/lib/commonjs/index.js +90 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/spec/NativeNovvyAds.js +27 -0
- package/lib/commonjs/spec/NativeNovvyAds.js.map +1 -0
- package/lib/commonjs/spec/NovvyPauseAdViewNativeComponent.js +16 -0
- package/lib/commonjs/spec/NovvyPauseAdViewNativeComponent.js.map +1 -0
- package/lib/commonjs/spec/NovvyScrollAdViewNativeComponent.js +17 -0
- package/lib/commonjs/spec/NovvyScrollAdViewNativeComponent.js.map +1 -0
- package/lib/commonjs/spec/codegen-event-emitter.d.js +2 -0
- package/lib/commonjs/spec/codegen-event-emitter.d.js.map +1 -0
- package/lib/commonjs/types.js +54 -0
- package/lib/commonjs/types.js.map +1 -0
- package/lib/commonjs/views/NovvyPauseAdView.js +76 -0
- package/lib/commonjs/views/NovvyPauseAdView.js.map +1 -0
- package/lib/commonjs/views/NovvyScrollAdView.js +63 -0
- package/lib/commonjs/views/NovvyScrollAdView.js.map +1 -0
- package/lib/module/NovvyAds.js +83 -0
- package/lib/module/NovvyAds.js.map +1 -0
- package/lib/module/ads/NovvyAd.js +117 -0
- package/lib/module/ads/NovvyAd.js.map +1 -0
- package/lib/module/ads/NovvyEndAd.js +15 -0
- package/lib/module/ads/NovvyEndAd.js.map +1 -0
- package/lib/module/ads/NovvyFullScreenAd.js +45 -0
- package/lib/module/ads/NovvyFullScreenAd.js.map +1 -0
- package/lib/module/ads/NovvyInterstitialAd.js +15 -0
- package/lib/module/ads/NovvyInterstitialAd.js.map +1 -0
- package/lib/module/ads/NovvyMidAd.js +15 -0
- package/lib/module/ads/NovvyMidAd.js.map +1 -0
- package/lib/module/ads/NovvyPauseAd.js +112 -0
- package/lib/module/ads/NovvyPauseAd.js.map +1 -0
- package/lib/module/ads/NovvyRewardedAd.js +49 -0
- package/lib/module/ads/NovvyRewardedAd.js.map +1 -0
- package/lib/module/ads/NovvyScrollAd.js +132 -0
- package/lib/module/ads/NovvyScrollAd.js.map +1 -0
- package/lib/module/eventBus.js +55 -0
- package/lib/module/eventBus.js.map +1 -0
- package/lib/module/index.js +22 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/spec/NativeNovvyAds.js +28 -0
- package/lib/module/spec/NativeNovvyAds.js.map +1 -0
- package/lib/module/spec/NovvyPauseAdViewNativeComponent.js +13 -0
- package/lib/module/spec/NovvyPauseAdViewNativeComponent.js.map +1 -0
- package/lib/module/spec/NovvyScrollAdViewNativeComponent.js +14 -0
- package/lib/module/spec/NovvyScrollAdViewNativeComponent.js.map +1 -0
- package/lib/module/spec/codegen-event-emitter.d.js +2 -0
- package/lib/module/spec/codegen-event-emitter.d.js.map +1 -0
- package/lib/module/types.js +56 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/views/NovvyPauseAdView.js +70 -0
- package/lib/module/views/NovvyPauseAdView.js.map +1 -0
- package/lib/module/views/NovvyScrollAdView.js +57 -0
- package/lib/module/views/NovvyScrollAdView.js.map +1 -0
- package/lib/typescript/NovvyAds.d.ts +69 -0
- package/lib/typescript/NovvyAds.d.ts.map +1 -0
- package/lib/typescript/ads/NovvyAd.d.ts +57 -0
- package/lib/typescript/ads/NovvyAd.d.ts.map +1 -0
- package/lib/typescript/ads/NovvyEndAd.d.ts +7 -0
- package/lib/typescript/ads/NovvyEndAd.d.ts.map +1 -0
- package/lib/typescript/ads/NovvyFullScreenAd.d.ts +19 -0
- package/lib/typescript/ads/NovvyFullScreenAd.d.ts.map +1 -0
- package/lib/typescript/ads/NovvyInterstitialAd.d.ts +7 -0
- package/lib/typescript/ads/NovvyInterstitialAd.d.ts.map +1 -0
- package/lib/typescript/ads/NovvyMidAd.d.ts +7 -0
- package/lib/typescript/ads/NovvyMidAd.d.ts.map +1 -0
- package/lib/typescript/ads/NovvyPauseAd.d.ts +45 -0
- package/lib/typescript/ads/NovvyPauseAd.d.ts.map +1 -0
- package/lib/typescript/ads/NovvyRewardedAd.d.ts +19 -0
- package/lib/typescript/ads/NovvyRewardedAd.d.ts.map +1 -0
- package/lib/typescript/ads/NovvyScrollAd.d.ts +57 -0
- package/lib/typescript/ads/NovvyScrollAd.d.ts.map +1 -0
- package/lib/typescript/eventBus.d.ts +15 -0
- package/lib/typescript/eventBus.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +15 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/spec/NativeNovvyAds.d.ts +73 -0
- package/lib/typescript/spec/NativeNovvyAds.d.ts.map +1 -0
- package/lib/typescript/spec/NovvyPauseAdViewNativeComponent.d.ts +18 -0
- package/lib/typescript/spec/NovvyPauseAdViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/spec/NovvyScrollAdViewNativeComponent.d.ts +19 -0
- package/lib/typescript/spec/NovvyScrollAdViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/types.d.ts +77 -0
- package/lib/typescript/types.d.ts.map +1 -0
- package/lib/typescript/views/NovvyPauseAdView.d.ts +21 -0
- package/lib/typescript/views/NovvyPauseAdView.d.ts.map +1 -0
- package/lib/typescript/views/NovvyScrollAdView.d.ts +22 -0
- package/lib/typescript/views/NovvyScrollAdView.d.ts.map +1 -0
- package/novvy-ads-react-native.podspec +71 -0
- package/package.json +84 -0
- package/plugin/build/index.d.ts +11 -0
- package/plugin/build/index.js +53 -0
- package/react-native.config.js +7 -0
- package/src/NovvyAds.ts +98 -0
- package/src/ads/NovvyAd.ts +125 -0
- package/src/ads/NovvyEndAd.ts +13 -0
- package/src/ads/NovvyFullScreenAd.ts +46 -0
- package/src/ads/NovvyInterstitialAd.ts +13 -0
- package/src/ads/NovvyMidAd.ts +13 -0
- package/src/ads/NovvyPauseAd.ts +125 -0
- package/src/ads/NovvyRewardedAd.ts +49 -0
- package/src/ads/NovvyScrollAd.ts +138 -0
- package/src/eventBus.ts +59 -0
- package/src/index.tsx +29 -0
- package/src/spec/NativeNovvyAds.ts +134 -0
- package/src/spec/NovvyPauseAdViewNativeComponent.ts +20 -0
- package/src/spec/NovvyScrollAdViewNativeComponent.ts +21 -0
- package/src/spec/codegen-event-emitter.d.ts +10 -0
- package/src/types.ts +82 -0
- package/src/views/NovvyPauseAdView.tsx +80 -0
- package/src/views/NovvyScrollAdView.tsx +71 -0
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.NovvyScrollAd = void 0;
|
|
7
|
+
var _eventBus = require("../eventBus");
|
|
8
|
+
var _types = require("../types");
|
|
9
|
+
var _NovvyAd = require("./NovvyAd");
|
|
10
|
+
/**
|
|
11
|
+
* A scroll ad that renders as a native view inserted into a scrollable list.
|
|
12
|
+
*
|
|
13
|
+
* Lifecycle: {@link load} → embed `<NovvyScrollAdView>` → {@link setPlaying} as
|
|
14
|
+
* it enters / leaves the viewport → {@link destroy}. Attach/detach are driven
|
|
15
|
+
* by the `<NovvyScrollAdView>` component's mount lifecycle.
|
|
16
|
+
*/
|
|
17
|
+
class NovvyScrollAd extends _NovvyAd.NovvyAd {
|
|
18
|
+
/** The Fabric component name used by `<NovvyScrollAdView>`. */
|
|
19
|
+
static viewType = 'NovvyScrollAdView';
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Optional override for the episode number used in the bid request. When
|
|
23
|
+
* non-null, takes precedence over the value set via
|
|
24
|
+
* {@link NovvyAds.setContentContext}.
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
/** Called when the ad becomes visible in the viewport. */
|
|
28
|
+
|
|
29
|
+
/** Called when the ad is hidden / removed from the viewport. */
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Called every second during playback with the remaining seconds
|
|
33
|
+
* (0 = user can swipe past the ad).
|
|
34
|
+
*/
|
|
35
|
+
|
|
36
|
+
constructor(adUnitId, episodeNumber) {
|
|
37
|
+
super(adUnitId);
|
|
38
|
+
this.episodeNumber = episodeNumber;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// ── Attach coordination ────────────────────────────────────────────────
|
|
42
|
+
//
|
|
43
|
+
// The native SCROLL contract is strictly two-stage: `load()` must resolve the
|
|
44
|
+
// creative BEFORE `attach()` — the native engine drops an early attach with a
|
|
45
|
+
// "not ready" log and never retries (see NovvyPlacementAd.attach). But the two
|
|
46
|
+
// triggers here are independent: `load()` is host-driven and network-bound,
|
|
47
|
+
// while the native container becomes available on the view's `onViewReady`
|
|
48
|
+
// (local, fast). View-ready therefore almost always beats `loaded`, so a naive
|
|
49
|
+
// "attach on view-ready" fires too early, silently no-ops, and the slot stays
|
|
50
|
+
// on its black placeholder for every creative type.
|
|
51
|
+
//
|
|
52
|
+
// We instead attach only once BOTH signals have arrived (whichever is last),
|
|
53
|
+
// and buffer the host's play intent so it survives being set before attach and
|
|
54
|
+
// is re-applied across detach/re-attach (scroll off- and back on-screen).
|
|
55
|
+
_viewReady = false;
|
|
56
|
+
_attached = false;
|
|
57
|
+
/** Last play intent from the host; (re)applied on each attach. */
|
|
58
|
+
_playing = false;
|
|
59
|
+
_durationSeconds = null;
|
|
60
|
+
_useDefaultSwipeOverlay = true;
|
|
61
|
+
_loadNative() {
|
|
62
|
+
_eventBus.Native.loadScrollAd(this.adUnitId, this.adObjectId, this.episodeNumber ?? null);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Signals that the native container is ready (fired automatically by
|
|
67
|
+
* `<NovvyScrollAdView>` on `onViewReady`). Records the attach params and
|
|
68
|
+
* mounts the ad once it has also finished loading.
|
|
69
|
+
*/
|
|
70
|
+
attach(durationSeconds, useDefaultSwipeOverlay = true) {
|
|
71
|
+
this._durationSeconds = durationSeconds ?? null;
|
|
72
|
+
this._useDefaultSwipeOverlay = useDefaultSwipeOverlay;
|
|
73
|
+
this._viewReady = true;
|
|
74
|
+
this._maybeAttach();
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/** Detach the scroll ad from its container. */
|
|
78
|
+
detach() {
|
|
79
|
+
this._viewReady = false;
|
|
80
|
+
this._attached = false;
|
|
81
|
+
_eventBus.Native.detachScrollAd(this.adObjectId);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Set the playing state. Call `setPlaying(true)` when the item scrolls into
|
|
86
|
+
* the viewport and `setPlaying(false)` when it scrolls out. Safe to call
|
|
87
|
+
* before the ad has attached — the intent is buffered and applied on attach.
|
|
88
|
+
*/
|
|
89
|
+
setPlaying(playing) {
|
|
90
|
+
this._playing = playing;
|
|
91
|
+
if (this._attached) {
|
|
92
|
+
_eventBus.Native.setScrollAdPlaying(this.adObjectId, playing);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Attach once the ad is loaded AND the native view is ready — the native
|
|
98
|
+
* engine requires load-before-attach and does not retry, so we gate on both.
|
|
99
|
+
*/
|
|
100
|
+
_maybeAttach() {
|
|
101
|
+
if (this._attached || this._disposed || !this._isReady || !this._viewReady) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
_eventBus.Native.attachScrollAd(this.adObjectId, this._durationSeconds, this._useDefaultSwipeOverlay);
|
|
105
|
+
this._attached = true;
|
|
106
|
+
// Re-apply the buffered play intent now that a native host exists.
|
|
107
|
+
if (this._playing) {
|
|
108
|
+
_eventBus.Native.setScrollAdPlaying(this.adObjectId, true);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
_handleInternalEvent(event) {
|
|
112
|
+
if (this._handleCommonLoad(event)) {
|
|
113
|
+
// `loaded` may arrive after the view is already ready; attach now that
|
|
114
|
+
// the native engine has the creative (after any onAdLoaded → setPlaying).
|
|
115
|
+
if (event.event === _types.NovvyAdEvent.Loaded) {
|
|
116
|
+
this._maybeAttach();
|
|
117
|
+
}
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
switch (event.event) {
|
|
121
|
+
case _types.NovvyAdEvent.Showed:
|
|
122
|
+
this.onAdShowed?.();
|
|
123
|
+
break;
|
|
124
|
+
case _types.NovvyAdEvent.Hidden:
|
|
125
|
+
this.onAdHidden?.();
|
|
126
|
+
break;
|
|
127
|
+
case _types.NovvyAdEvent.PlaybackTick:
|
|
128
|
+
this.onAdPlaybackTick?.(event.remainingSeconds ?? 0);
|
|
129
|
+
break;
|
|
130
|
+
default:
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
exports.NovvyScrollAd = NovvyScrollAd;
|
|
136
|
+
//# sourceMappingURL=NovvyScrollAd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_eventBus","require","_types","_NovvyAd","NovvyScrollAd","NovvyAd","viewType","constructor","adUnitId","episodeNumber","_viewReady","_attached","_playing","_durationSeconds","_useDefaultSwipeOverlay","_loadNative","Native","loadScrollAd","adObjectId","attach","durationSeconds","useDefaultSwipeOverlay","_maybeAttach","detach","detachScrollAd","setPlaying","playing","setScrollAdPlaying","_disposed","_isReady","attachScrollAd","_handleInternalEvent","event","_handleCommonLoad","NovvyAdEvent","Loaded","Showed","onAdShowed","Hidden","onAdHidden","PlaybackTick","onAdPlaybackTick","remainingSeconds","exports"],"sourceRoot":"../../../src","sources":["ads/NovvyScrollAd.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Native = void 0;
|
|
7
|
+
exports.subscribe = subscribe;
|
|
8
|
+
var _NativeNovvyAds = _interopRequireDefault(require("./spec/NativeNovvyAds"));
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
/**
|
|
11
|
+
* Central hub over the single native→JS `onAdEvent` stream.
|
|
12
|
+
*
|
|
13
|
+
* Mirrors the Flutter plugin's `_NovvyAdsImpl` broadcast stream: one native
|
|
14
|
+
* event source is fanned out to per-ad handlers filtered by `adObjectId`.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
const handlers = new Map();
|
|
18
|
+
let subscription = null;
|
|
19
|
+
function ensureSubscribed() {
|
|
20
|
+
if (subscription) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
subscription = _NativeNovvyAds.default.onAdEvent(event => {
|
|
24
|
+
const set = handlers.get(event.adObjectId);
|
|
25
|
+
if (!set) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
// Copy so a handler may unsubscribe/destroy during dispatch.
|
|
29
|
+
for (const handler of Array.from(set)) {
|
|
30
|
+
handler(event);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Subscribe to events for a single ad instance. Returns an unsubscribe fn.
|
|
37
|
+
*/
|
|
38
|
+
function subscribe(adObjectId, handler) {
|
|
39
|
+
ensureSubscribed();
|
|
40
|
+
let set = handlers.get(adObjectId);
|
|
41
|
+
if (!set) {
|
|
42
|
+
set = new Set();
|
|
43
|
+
handlers.set(adObjectId, set);
|
|
44
|
+
}
|
|
45
|
+
set.add(handler);
|
|
46
|
+
return () => {
|
|
47
|
+
const current = handlers.get(adObjectId);
|
|
48
|
+
if (!current) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
current.delete(handler);
|
|
52
|
+
if (current.size === 0) {
|
|
53
|
+
handlers.delete(adObjectId);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/** The underlying TurboModule instance. */
|
|
59
|
+
const Native = exports.Native = _NativeNovvyAds.default;
|
|
60
|
+
//# sourceMappingURL=eventBus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_NativeNovvyAds","_interopRequireDefault","require","e","__esModule","default","handlers","Map","subscription","ensureSubscribed","NovvyAdsNative","onAdEvent","event","set","get","adObjectId","handler","Array","from","subscribe","Set","add","current","delete","size","Native","exports"],"sourceRoot":"../../src","sources":["eventBus.ts"],"mappings":";;;;;;;AAAA,IAAAA,eAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAmD,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAGnD;AACA;AACA;AACA;AACA;AACA;;AAIA,MAAMG,QAAQ,GAAG,IAAIC,GAAG,CAA8B,CAAC;AACvD,IAAIC,YAAuC,GAAG,IAAI;AAElD,SAASC,gBAAgBA,CAAA,EAAS;EAChC,IAAID,YAAY,EAAE;IAChB;EACF;EACAA,YAAY,GAAGE,uBAAc,CAACC,SAAS,CAAEC,KAAoB,IAAK;IAChE,MAAMC,GAAG,GAAGP,QAAQ,CAACQ,GAAG,CAACF,KAAK,CAACG,UAAU,CAAC;IAC1C,IAAI,CAACF,GAAG,EAAE;MACR;IACF;IACA;IACA,KAAK,MAAMG,OAAO,IAAIC,KAAK,CAACC,IAAI,CAACL,GAAG,CAAC,EAAE;MACrCG,OAAO,CAACJ,KAAK,CAAC;IAChB;EACF,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACO,SAASO,SAASA,CACvBJ,UAAkB,EAClBC,OAAuB,EACX;EACZP,gBAAgB,CAAC,CAAC;EAClB,IAAII,GAAG,GAAGP,QAAQ,CAACQ,GAAG,CAACC,UAAU,CAAC;EAClC,IAAI,CAACF,GAAG,EAAE;IACRA,GAAG,GAAG,IAAIO,GAAG,CAAC,CAAC;IACfd,QAAQ,CAACO,GAAG,CAACE,UAAU,EAAEF,GAAG,CAAC;EAC/B;EACAA,GAAG,CAACQ,GAAG,CAACL,OAAO,CAAC;EAChB,OAAO,MAAM;IACX,MAAMM,OAAO,GAAGhB,QAAQ,CAACQ,GAAG,CAACC,UAAU,CAAC;IACxC,IAAI,CAACO,OAAO,EAAE;MACZ;IACF;IACAA,OAAO,CAACC,MAAM,CAACP,OAAO,CAAC;IACvB,IAAIM,OAAO,CAACE,IAAI,KAAK,CAAC,EAAE;MACtBlB,QAAQ,CAACiB,MAAM,CAACR,UAAU,CAAC;IAC7B;EACF,CAAC;AACH;;AAEA;AACO,MAAMU,MAAM,GAAAC,OAAA,CAAAD,MAAA,GAAGf,uBAAc","ignoreList":[]}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "NovvyAd", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _NovvyAd.NovvyAd;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "NovvyAdEvent", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _types.NovvyAdEvent;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "NovvyAds", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _NovvyAds.NovvyAds;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "NovvyEndAd", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _NovvyEndAd.NovvyEndAd;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(exports, "NovvyFullScreenAd", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function () {
|
|
33
|
+
return _NovvyFullScreenAd.NovvyFullScreenAd;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(exports, "NovvyInterstitialAd", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function () {
|
|
39
|
+
return _NovvyInterstitialAd.NovvyInterstitialAd;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperty(exports, "NovvyMidAd", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
get: function () {
|
|
45
|
+
return _NovvyMidAd.NovvyMidAd;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
Object.defineProperty(exports, "NovvyPauseAd", {
|
|
49
|
+
enumerable: true,
|
|
50
|
+
get: function () {
|
|
51
|
+
return _NovvyPauseAd.NovvyPauseAd;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
Object.defineProperty(exports, "NovvyPauseAdView", {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
get: function () {
|
|
57
|
+
return _NovvyPauseAdView.NovvyPauseAdView;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
Object.defineProperty(exports, "NovvyRewardedAd", {
|
|
61
|
+
enumerable: true,
|
|
62
|
+
get: function () {
|
|
63
|
+
return _NovvyRewardedAd.NovvyRewardedAd;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
Object.defineProperty(exports, "NovvyScrollAd", {
|
|
67
|
+
enumerable: true,
|
|
68
|
+
get: function () {
|
|
69
|
+
return _NovvyScrollAd.NovvyScrollAd;
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
Object.defineProperty(exports, "NovvyScrollAdView", {
|
|
73
|
+
enumerable: true,
|
|
74
|
+
get: function () {
|
|
75
|
+
return _NovvyScrollAdView.NovvyScrollAdView;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
var _NovvyAds = require("./NovvyAds");
|
|
79
|
+
var _NovvyAd = require("./ads/NovvyAd");
|
|
80
|
+
var _NovvyFullScreenAd = require("./ads/NovvyFullScreenAd");
|
|
81
|
+
var _NovvyInterstitialAd = require("./ads/NovvyInterstitialAd");
|
|
82
|
+
var _NovvyRewardedAd = require("./ads/NovvyRewardedAd");
|
|
83
|
+
var _NovvyMidAd = require("./ads/NovvyMidAd");
|
|
84
|
+
var _NovvyEndAd = require("./ads/NovvyEndAd");
|
|
85
|
+
var _NovvyScrollAd = require("./ads/NovvyScrollAd");
|
|
86
|
+
var _NovvyPauseAd = require("./ads/NovvyPauseAd");
|
|
87
|
+
var _NovvyScrollAdView = require("./views/NovvyScrollAdView");
|
|
88
|
+
var _NovvyPauseAdView = require("./views/NovvyPauseAdView");
|
|
89
|
+
var _types = require("./types");
|
|
90
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_NovvyAds","require","_NovvyAd","_NovvyFullScreenAd","_NovvyInterstitialAd","_NovvyRewardedAd","_NovvyMidAd","_NovvyEndAd","_NovvyScrollAd","_NovvyPauseAd","_NovvyScrollAdView","_NovvyPauseAdView","_types"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAAA,SAAA,GAAAC,OAAA;AAGA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,kBAAA,GAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAH,OAAA;AACA,IAAAI,gBAAA,GAAAJ,OAAA;AACA,IAAAK,WAAA,GAAAL,OAAA;AACA,IAAAM,WAAA,GAAAN,OAAA;AACA,IAAAO,cAAA,GAAAP,OAAA;AACA,IAAAQ,aAAA,GAAAR,OAAA;AAGA,IAAAS,kBAAA,GAAAT,OAAA;AAEA,IAAAU,iBAAA,GAAAV,OAAA;AAIA,IAAAW,MAAA,GAAAX,OAAA","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"commonjs"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _reactNative = require("react-native");
|
|
8
|
+
/**
|
|
9
|
+
* Codegen-facing spec for the Novvy Ads TurboModule (new architecture only).
|
|
10
|
+
*
|
|
11
|
+
* Method surface mirrors the Flutter plugin's Pigeon `NovvyAdHostApi`
|
|
12
|
+
* (pigeons/novvy_ads_api.dart) one-to-one. The single `onAdEvent` emitter
|
|
13
|
+
* mirrors Pigeon's `NovvyAdsFlutterApi.onAdEvent`; each JS ad object filters
|
|
14
|
+
* this stream by its own `adObjectId`.
|
|
15
|
+
*
|
|
16
|
+
* NOTE: Codegen struct/event types must live in this file. The public,
|
|
17
|
+
* richly-documented aliases are re-exported from `../types`.
|
|
18
|
+
*/
|
|
19
|
+
// ── Data structs (codegen-facing) ───────────────────────────────────────────
|
|
20
|
+
/**
|
|
21
|
+
* Single native→JS ad lifecycle event. `event` is one of the NovvyAdEvent
|
|
22
|
+
* string values. `remainingSeconds` is only populated for `playbackTick`
|
|
23
|
+
* (flattened from Pigeon's `data` map for codegen compatibility).
|
|
24
|
+
*/
|
|
25
|
+
// ── TurboModule ─────────────────────────────────────────────────────────────
|
|
26
|
+
var _default = exports.default = _reactNative.TurboModuleRegistry.getEnforcing('NovvyAds');
|
|
27
|
+
//# sourceMappingURL=NativeNovvyAds.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["spec/NativeNovvyAds.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AA0BA;AACA;AACA;AACA;AACA;AASA;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAyEeC,gCAAmB,CAACC,YAAY,CAAO,UAAU,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _codegenNativeComponent = _interopRequireDefault(require("react-native/Libraries/Utilities/codegenNativeComponent"));
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
+
/**
|
|
10
|
+
* Fabric component for an inline realtime pause-card ad container
|
|
11
|
+
* (fixed 260×90). The native view registers its container in the TurboModule
|
|
12
|
+
* keyed by `adObjectId`, then fires `onViewReady`, at which point JS issues
|
|
13
|
+
* `attachPauseAd` (there is no load step for pause ads).
|
|
14
|
+
*/
|
|
15
|
+
var _default = exports.default = (0, _codegenNativeComponent.default)('NovvyPauseAdView');
|
|
16
|
+
//# sourceMappingURL=NovvyPauseAdViewNativeComponent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_codegenNativeComponent","_interopRequireDefault","require","e","__esModule","default","_default","exports","codegenNativeComponent"],"sourceRoot":"../../../src","sources":["spec/NovvyPauseAdViewNativeComponent.ts"],"mappings":";;;;;;AACA,IAAAA,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA6F,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAG7F;AACA;AACA;AACA;AACA;AACA;AALA,IAAAG,QAAA,GAAAC,OAAA,CAAAF,OAAA,GAae,IAAAG,+BAAsB,EACnC,kBACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _codegenNativeComponent = _interopRequireDefault(require("react-native/Libraries/Utilities/codegenNativeComponent"));
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
+
/**
|
|
10
|
+
* Fabric component for an inline scroll (feed) ad container.
|
|
11
|
+
*
|
|
12
|
+
* The native view registers its container in the TurboModule keyed by
|
|
13
|
+
* `adObjectId`, then fires `onViewReady` (mirrors the Flutter plugin's
|
|
14
|
+
* `onPlatformViewCreated`), at which point JS issues `attachScrollAd`.
|
|
15
|
+
*/
|
|
16
|
+
var _default = exports.default = (0, _codegenNativeComponent.default)('NovvyScrollAdView');
|
|
17
|
+
//# sourceMappingURL=NovvyScrollAdViewNativeComponent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_codegenNativeComponent","_interopRequireDefault","require","e","__esModule","default","_default","exports","codegenNativeComponent"],"sourceRoot":"../../../src","sources":["spec/NovvyScrollAdViewNativeComponent.ts"],"mappings":";;;;;;AACA,IAAAA,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA6F,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAG7F;AACA;AACA;AACA;AACA;AACA;AACA;AANA,IAAAG,QAAA,GAAAC,OAAA,CAAAF,OAAA,GAce,IAAAG,+BAAsB,EACnC,mBACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["spec/codegen-event-emitter.d.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.NovvyAdEvent = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Public types for the Novvy Ads React Native SDK.
|
|
9
|
+
*
|
|
10
|
+
* These mirror the Flutter plugin's Pigeon data classes
|
|
11
|
+
* (pigeons/novvy_ads_api.dart). At runtime they are structurally identical to
|
|
12
|
+
* the codegen structs in `spec/NativeNovvyAds.ts`, so instances pass straight
|
|
13
|
+
* through the TurboModule with no conversion.
|
|
14
|
+
*/
|
|
15
|
+
/** A single drama-watch history entry used for ad targeting. */
|
|
16
|
+
/** User gender values accepted by the SDK. */
|
|
17
|
+
/**
|
|
18
|
+
* User identity and subscription context.
|
|
19
|
+
*
|
|
20
|
+
* Pass to {@link NovvyAds.setUserContext} (full replace) or
|
|
21
|
+
* {@link NovvyAds.updateUserContext} (incremental merge).
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* Content and episode context used for ad targeting.
|
|
25
|
+
*
|
|
26
|
+
* Pass to {@link NovvyAds.setContentContext} (full replace) or
|
|
27
|
+
* {@link NovvyAds.updateContentContext} (incremental merge).
|
|
28
|
+
*/
|
|
29
|
+
/** Ad lifecycle event names (mirror Pigeon's `NovvyAdEvent` enum). */
|
|
30
|
+
let NovvyAdEvent = exports.NovvyAdEvent = /*#__PURE__*/function (NovvyAdEvent) {
|
|
31
|
+
/** Ad and creative are ready to show (not emitted for Pause — realtime). */
|
|
32
|
+
NovvyAdEvent["Loaded"] = "loaded";
|
|
33
|
+
/** Ad failed to load / request. */
|
|
34
|
+
NovvyAdEvent["FailedToLoad"] = "failedToLoad";
|
|
35
|
+
/** Ad was shown (full-screen) or became visible (Scroll / Pause). */
|
|
36
|
+
NovvyAdEvent["Showed"] = "showed";
|
|
37
|
+
/** Full-screen ad was closed by the user (Rewarded / Interstitial / Mid / End). */
|
|
38
|
+
NovvyAdEvent["Dismissed"] = "dismissed";
|
|
39
|
+
/** Inline ad was hidden / removed (Scroll onAdHidden, Pause hidden). */
|
|
40
|
+
NovvyAdEvent["Hidden"] = "hidden";
|
|
41
|
+
/** Rewarded ad earned a reward. Carries no data payload. */
|
|
42
|
+
NovvyAdEvent["EarnedReward"] = "earnedReward";
|
|
43
|
+
/** Scroll ad playback tick. Carries `remainingSeconds`. */
|
|
44
|
+
NovvyAdEvent["PlaybackTick"] = "playbackTick";
|
|
45
|
+
return NovvyAdEvent;
|
|
46
|
+
}({});
|
|
47
|
+
/**
|
|
48
|
+
* Interface for a media player that a {@link NovvyPauseAd} monitors.
|
|
49
|
+
*
|
|
50
|
+
* Implement this to bridge your video/audio player so the SDK can detect
|
|
51
|
+
* playback position and resumption. Mirrors the Flutter plugin's
|
|
52
|
+
* `NovvyPlayerAdapter`.
|
|
53
|
+
*/
|
|
54
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NovvyAdEvent","exports"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAQA;AAGA;AACA;AACA;AACA;AACA;AACA;AAcA;AACA;AACA;AACA;AACA;AACA;AAOA;AAAA,IACYA,YAAY,GAAAC,OAAA,CAAAD,YAAA,0BAAZA,YAAY;EACtB;EADUA,YAAY;EAGtB;EAHUA,YAAY;EAKtB;EALUA,YAAY;EAOtB;EAPUA,YAAY;EAStB;EATUA,YAAY;EAWtB;EAXUA,YAAY;EAatB;EAbUA,YAAY;EAAA,OAAZA,YAAY;AAAA;AAiBxB;AACA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.NovvyPauseAdView = NovvyPauseAdView;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _NovvyPauseAd = require("../ads/NovvyPauseAd");
|
|
10
|
+
var _NovvyPauseAdViewNativeComponent = _interopRequireDefault(require("../spec/NovvyPauseAdViewNativeComponent"));
|
|
11
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
14
|
+
/**
|
|
15
|
+
* Embeds a {@link NovvyPauseAd} as a native view. Fixed to
|
|
16
|
+
* {@link NovvyPauseAd.cardWidth} × {@link NovvyPauseAd.cardHeight}; position it
|
|
17
|
+
* within your own layout. Mirrors the Flutter plugin's `NovvyPauseAdView`.
|
|
18
|
+
*
|
|
19
|
+
* Touch passthrough / opacity follow the card's shown state so the view is
|
|
20
|
+
* transparent and non-interactive until the ad actually appears.
|
|
21
|
+
*/
|
|
22
|
+
function NovvyPauseAdView({
|
|
23
|
+
ad,
|
|
24
|
+
player,
|
|
25
|
+
style
|
|
26
|
+
}) {
|
|
27
|
+
const attached = (0, _react.useRef)(false);
|
|
28
|
+
const [shown, setShown] = (0, _react.useState)(false);
|
|
29
|
+
(0, _react.useEffect)(() => {
|
|
30
|
+
const prev = ad.onShownChanged;
|
|
31
|
+
ad.onShownChanged = isShown => {
|
|
32
|
+
setShown(isShown);
|
|
33
|
+
prev?.(isShown);
|
|
34
|
+
};
|
|
35
|
+
return () => {
|
|
36
|
+
ad.onShownChanged = prev;
|
|
37
|
+
if (attached.current) {
|
|
38
|
+
ad.detach();
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
42
|
+
}, []);
|
|
43
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
44
|
+
style: [styles.container, style],
|
|
45
|
+
pointerEvents: shown ? 'auto' : 'none'
|
|
46
|
+
// Claim the RN JS responder while the card is shown so an outer
|
|
47
|
+
// Pressable/Touchable in the host layout can't also fire onPress on
|
|
48
|
+
// the same tap and race with the SDK's CTA (which would resume the
|
|
49
|
+
// video and destroy the ad before the browser opens). The SDK's
|
|
50
|
+
// native tap handling is unaffected: on Android JSTouchDispatcher
|
|
51
|
+
// runs in parallel to native dispatch, and on iOS RCTTouchHandler
|
|
52
|
+
// uses cancelsTouchesInView=NO so native touches still reach the
|
|
53
|
+
// ad view's own gesture recognizer.
|
|
54
|
+
,
|
|
55
|
+
onStartShouldSetResponder: shown ? () => true : undefined,
|
|
56
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_NovvyPauseAdViewNativeComponent.default, {
|
|
57
|
+
style: [_reactNative.StyleSheet.absoluteFill, {
|
|
58
|
+
opacity: shown ? 1 : 0
|
|
59
|
+
}],
|
|
60
|
+
adObjectId: ad.adObjectId,
|
|
61
|
+
onViewReady: () => {
|
|
62
|
+
if (!attached.current) {
|
|
63
|
+
attached.current = true;
|
|
64
|
+
ad.attach(player);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
})
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
const styles = _reactNative.StyleSheet.create({
|
|
71
|
+
container: {
|
|
72
|
+
width: _NovvyPauseAd.NovvyPauseAd.cardWidth,
|
|
73
|
+
height: _NovvyPauseAd.NovvyPauseAd.cardHeight
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
//# sourceMappingURL=NovvyPauseAdView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_NovvyPauseAd","_NovvyPauseAdViewNativeComponent","_interopRequireDefault","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","NovvyPauseAdView","ad","player","style","attached","useRef","shown","setShown","useState","useEffect","prev","onShownChanged","isShown","current","detach","jsx","View","styles","container","pointerEvents","onStartShouldSetResponder","undefined","children","StyleSheet","absoluteFill","opacity","adObjectId","onViewReady","attach","create","width","NovvyPauseAd","cardWidth","height","cardHeight"],"sourceRoot":"../../../src","sources":["views/NovvyPauseAdView.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.NovvyScrollAdView = NovvyScrollAdView;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _NovvyScrollAdViewNativeComponent = _interopRequireDefault(require("../spec/NovvyScrollAdViewNativeComponent"));
|
|
10
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
13
|
+
/**
|
|
14
|
+
* Embeds a {@link NovvyScrollAd} as a native view. Wrap it in a container with
|
|
15
|
+
* the desired height for your feed item. Mirrors the Flutter plugin's
|
|
16
|
+
* `NovvyScrollAdView`.
|
|
17
|
+
*
|
|
18
|
+
* A black backdrop paints immediately so the previous page can't show through
|
|
19
|
+
* the slot while the native view is created.
|
|
20
|
+
*/
|
|
21
|
+
function NovvyScrollAdView({
|
|
22
|
+
ad,
|
|
23
|
+
durationSeconds,
|
|
24
|
+
useDefaultSwipeOverlay = true,
|
|
25
|
+
style
|
|
26
|
+
}) {
|
|
27
|
+
const attached = (0, _react.useRef)(false);
|
|
28
|
+
(0, _react.useEffect)(() => {
|
|
29
|
+
return () => {
|
|
30
|
+
if (attached.current) {
|
|
31
|
+
ad.detach();
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
// Detach only on unmount; `ad` identity is stable for the view's lifetime.
|
|
35
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
36
|
+
}, []);
|
|
37
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
38
|
+
style: [styles.container, style]
|
|
39
|
+
// Claim the RN JS responder for taps so an outer Pressable/Touchable
|
|
40
|
+
// in the host layout can't also fire onPress and race with the SDK's
|
|
41
|
+
// CTA. Only onStart is claimed — a subsequent move gesture can still
|
|
42
|
+
// migrate to an ancestor ScrollView/FlatList via the normal responder
|
|
43
|
+
// negotiation, so vertical feed swiping is preserved.
|
|
44
|
+
,
|
|
45
|
+
onStartShouldSetResponder: () => true,
|
|
46
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_NovvyScrollAdViewNativeComponent.default, {
|
|
47
|
+
style: _reactNative.StyleSheet.absoluteFill,
|
|
48
|
+
adObjectId: ad.adObjectId,
|
|
49
|
+
onViewReady: () => {
|
|
50
|
+
if (!attached.current) {
|
|
51
|
+
attached.current = true;
|
|
52
|
+
ad.attach(durationSeconds, useDefaultSwipeOverlay);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
})
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
const styles = _reactNative.StyleSheet.create({
|
|
59
|
+
container: {
|
|
60
|
+
backgroundColor: '#000000'
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
//# sourceMappingURL=NovvyScrollAdView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_NovvyScrollAdViewNativeComponent","_interopRequireDefault","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","NovvyScrollAdView","ad","durationSeconds","useDefaultSwipeOverlay","style","attached","useRef","useEffect","current","detach","jsx","View","styles","container","onStartShouldSetResponder","children","StyleSheet","absoluteFill","adObjectId","onViewReady","attach","create","backgroundColor"],"sourceRoot":"../../../src","sources":["views/NovvyScrollAdView.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAGA,IAAAE,iCAAA,GAAAC,sBAAA,CAAAH,OAAA;AAAwE,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAG,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAN,wBAAAM,CAAA,EAAAG,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAV,uBAAA,YAAAA,CAAAM,CAAA,EAAAG,CAAA,SAAAA,CAAA,IAAAH,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,MAAAO,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAR,OAAA,EAAAF,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAS,CAAA,MAAAF,CAAA,GAAAJ,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAE,CAAA,CAAAI,GAAA,CAAAX,CAAA,UAAAO,CAAA,CAAAK,GAAA,CAAAZ,CAAA,GAAAO,CAAA,CAAAM,GAAA,CAAAb,CAAA,EAAAS,CAAA,gBAAAN,CAAA,IAAAH,CAAA,gBAAAG,CAAA,OAAAW,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAG,CAAA,OAAAK,CAAA,IAAAD,CAAA,GAAAS,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAG,CAAA,OAAAK,CAAA,CAAAI,GAAA,IAAAJ,CAAA,CAAAK,GAAA,IAAAN,CAAA,CAAAE,CAAA,EAAAN,CAAA,EAAAK,CAAA,IAAAC,CAAA,CAAAN,CAAA,IAAAH,CAAA,CAAAG,CAAA,WAAAM,CAAA,KAAAT,CAAA,EAAAG,CAAA;AAYxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASgB,iBAAiBA,CAAC;EAChCC,EAAE;EACFC,eAAe;EACfC,sBAAsB,GAAG,IAAI;EAC7BC;AACsB,CAAC,EAAsB;EAC7C,MAAMC,QAAQ,GAAG,IAAAC,aAAM,EAAC,KAAK,CAAC;EAE9B,IAAAC,gBAAS,EAAC,MAAM;IACd,OAAO,MAAM;MACX,IAAIF,QAAQ,CAACG,OAAO,EAAE;QACpBP,EAAE,CAACQ,MAAM,CAAC,CAAC;MACb;IACF,CAAC;IACD;IACA;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,oBACE,IAAA7B,WAAA,CAAA8B,GAAA,EAACjC,YAAA,CAAAkC,IAAI;IACHP,KAAK,EAAE,CAACQ,MAAM,CAACC,SAAS,EAAET,KAAK;IAC/B;IACA;IACA;IACA;IACA;IAAA;IACAU,yBAAyB,EAAEA,CAAA,KAAM,IAAK;IAAAC,QAAA,eAEtC,IAAAnC,WAAA,CAAA8B,GAAA,EAAChC,iCAAA,CAAAK,OAAgB;MACfqB,KAAK,EAAEY,uBAAU,CAACC,YAAa;MAC/BC,UAAU,EAAEjB,EAAE,CAACiB,UAAW;MAC1BC,WAAW,EAAEA,CAAA,KAAM;QACjB,IAAI,CAACd,QAAQ,CAACG,OAAO,EAAE;UACrBH,QAAQ,CAACG,OAAO,GAAG,IAAI;UACvBP,EAAE,CAACmB,MAAM,CAAClB,eAAe,EAAEC,sBAAsB,CAAC;QACpD;MACF;IAAE,CACH;EAAC,CACE,CAAC;AAEX;AAEA,MAAMS,MAAM,GAAGI,uBAAU,CAACK,MAAM,CAAC;EAC/BR,SAAS,EAAE;IACTS,eAAe,EAAE;EACnB;AACF,CAAC,CAAC","ignoreList":[]}
|