@tiledev/sdk-apptile-live-selling 0.8.1 → 0.9.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.
Files changed (196) hide show
  1. package/README.md +452 -34
  2. package/dist/auctionComments.d.ts +25 -0
  3. package/dist/auctionComments.d.ts.map +1 -0
  4. package/dist/auctionComments.js +28 -0
  5. package/dist/auctionComments.js.map +1 -0
  6. package/dist/auctionRules.d.ts +76 -0
  7. package/dist/auctionRules.d.ts.map +1 -0
  8. package/dist/auctionRules.js +106 -0
  9. package/dist/auctionRules.js.map +1 -0
  10. package/dist/auctions.d.ts.map +1 -1
  11. package/dist/auctions.js +19 -10
  12. package/dist/auctions.js.map +1 -1
  13. package/dist/client.d.ts +51 -2
  14. package/dist/client.d.ts.map +1 -1
  15. package/dist/client.js +123 -23
  16. package/dist/client.js.map +1 -1
  17. package/dist/commentHistory.d.ts +66 -0
  18. package/dist/commentHistory.d.ts.map +1 -0
  19. package/dist/commentHistory.js +125 -0
  20. package/dist/commentHistory.js.map +1 -0
  21. package/dist/engine.native.d.ts.map +1 -1
  22. package/dist/engine.native.js +17 -845
  23. package/dist/engine.native.js.map +1 -1
  24. package/dist/giveawayPrize.d.ts +13 -0
  25. package/dist/giveawayPrize.d.ts.map +1 -0
  26. package/dist/giveawayPrize.js +18 -0
  27. package/dist/giveawayPrize.js.map +1 -0
  28. package/dist/giveawayPrizeLines.d.ts +67 -0
  29. package/dist/giveawayPrizeLines.d.ts.map +1 -0
  30. package/dist/giveawayPrizeLines.js +48 -0
  31. package/dist/giveawayPrizeLines.js.map +1 -0
  32. package/dist/giveawayRoster.d.ts +53 -0
  33. package/dist/giveawayRoster.d.ts.map +1 -0
  34. package/dist/giveawayRoster.js +93 -0
  35. package/dist/giveawayRoster.js.map +1 -0
  36. package/dist/heldComments.d.ts +29 -0
  37. package/dist/heldComments.d.ts.map +1 -0
  38. package/dist/heldComments.js +61 -0
  39. package/dist/heldComments.js.map +1 -0
  40. package/dist/hiddenShows.d.ts +34 -0
  41. package/dist/hiddenShows.d.ts.map +1 -0
  42. package/dist/hiddenShows.js +42 -0
  43. package/dist/hiddenShows.js.map +1 -0
  44. package/dist/index.d.ts +19 -2
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +93 -3
  47. package/dist/index.js.map +1 -1
  48. package/dist/liveHaptics.d.ts +7 -0
  49. package/dist/liveHaptics.d.ts.map +1 -0
  50. package/dist/liveHaptics.js +11 -0
  51. package/dist/liveHaptics.js.map +1 -0
  52. package/dist/liveHaptics.native.d.ts +7 -0
  53. package/dist/liveHaptics.native.d.ts.map +1 -0
  54. package/dist/liveHaptics.native.js +12 -0
  55. package/dist/liveHaptics.native.js.map +1 -0
  56. package/dist/liveShow.d.ts +58 -0
  57. package/dist/liveShow.d.ts.map +1 -0
  58. package/dist/liveShow.js +55 -0
  59. package/dist/liveShow.js.map +1 -0
  60. package/dist/phoneTaps.d.ts +25 -0
  61. package/dist/phoneTaps.d.ts.map +1 -0
  62. package/dist/phoneTaps.js +47 -0
  63. package/dist/phoneTaps.js.map +1 -0
  64. package/dist/pipWindow.d.ts +85 -0
  65. package/dist/pipWindow.d.ts.map +1 -0
  66. package/dist/pipWindow.js +88 -0
  67. package/dist/pipWindow.js.map +1 -0
  68. package/dist/polls.d.ts.map +1 -1
  69. package/dist/polls.js +3 -0
  70. package/dist/polls.js.map +1 -1
  71. package/dist/react/LiveSellingProvider.d.ts +10 -1
  72. package/dist/react/LiveSellingProvider.d.ts.map +1 -1
  73. package/dist/react/LiveSellingProvider.js +6 -2
  74. package/dist/react/LiveSellingProvider.js.map +1 -1
  75. package/dist/react/LiveVideoTarget.d.ts.map +1 -1
  76. package/dist/react/LiveVideoTarget.js +41 -3
  77. package/dist/react/LiveVideoTarget.js.map +1 -1
  78. package/dist/react/clocks.d.ts +29 -0
  79. package/dist/react/clocks.d.ts.map +1 -0
  80. package/dist/react/clocks.js +124 -0
  81. package/dist/react/clocks.js.map +1 -0
  82. package/dist/react/index.d.ts +7 -2
  83. package/dist/react/index.d.ts.map +1 -1
  84. package/dist/react/index.js +15 -1
  85. package/dist/react/index.js.map +1 -1
  86. package/dist/react/index.web.d.ts +9 -2
  87. package/dist/react/index.web.d.ts.map +1 -1
  88. package/dist/react/index.web.js +27 -4
  89. package/dist/react/index.web.js.map +1 -1
  90. package/dist/react/startSignIn.d.ts +3 -0
  91. package/dist/react/startSignIn.d.ts.map +1 -0
  92. package/dist/react/startSignIn.js +19 -0
  93. package/dist/react/startSignIn.js.map +1 -0
  94. package/dist/react/useAuctionBidGate.d.ts +54 -4
  95. package/dist/react/useAuctionBidGate.d.ts.map +1 -1
  96. package/dist/react/useAuctionBidGate.js +169 -25
  97. package/dist/react/useAuctionBidGate.js.map +1 -1
  98. package/dist/react/useAuctionWins.d.ts +9 -1
  99. package/dist/react/useAuctionWins.d.ts.map +1 -1
  100. package/dist/react/useAuctionWins.js +9 -3
  101. package/dist/react/useAuctionWins.js.map +1 -1
  102. package/dist/react/useGiveawayEntry.d.ts +59 -0
  103. package/dist/react/useGiveawayEntry.d.ts.map +1 -0
  104. package/dist/react/useGiveawayEntry.js +170 -0
  105. package/dist/react/useGiveawayEntry.js.map +1 -0
  106. package/dist/react/useGiveawayPrize.d.ts +12 -0
  107. package/dist/react/useGiveawayPrize.d.ts.map +1 -0
  108. package/dist/react/useGiveawayPrize.js +53 -0
  109. package/dist/react/useGiveawayPrize.js.map +1 -0
  110. package/dist/react/useHiddenShows.d.ts +10 -0
  111. package/dist/react/useHiddenShows.d.ts.map +1 -0
  112. package/dist/react/useHiddenShows.js +30 -0
  113. package/dist/react/useHiddenShows.js.map +1 -0
  114. package/dist/react/useLiveSession.d.ts +7 -3
  115. package/dist/react/useLiveSession.d.ts.map +1 -1
  116. package/dist/react/useLiveSession.js +522 -157
  117. package/dist/react/useLiveSession.js.map +1 -1
  118. package/dist/react/useLiveShow.d.ts +3 -0
  119. package/dist/react/useLiveShow.d.ts.map +1 -0
  120. package/dist/react/useLiveShow.js +21 -0
  121. package/dist/react/useLiveShow.js.map +1 -0
  122. package/dist/react/useLiveStreams.d.ts.map +1 -1
  123. package/dist/react/useLiveStreams.js +6 -2
  124. package/dist/react/useLiveStreams.js.map +1 -1
  125. package/dist/react/useOngoingLive.d.ts +1 -0
  126. package/dist/react/useOngoingLive.d.ts.map +1 -1
  127. package/dist/react/useOngoingLive.js +7 -1
  128. package/dist/react/useOngoingLive.js.map +1 -1
  129. package/dist/react/useReplays.d.ts +12 -0
  130. package/dist/react/useReplays.d.ts.map +1 -1
  131. package/dist/react/useReplays.js +56 -24
  132. package/dist/react/useReplays.js.map +1 -1
  133. package/dist/react/useStreamInfo.d.ts +13 -2
  134. package/dist/react/useStreamInfo.d.ts.map +1 -1
  135. package/dist/react/useStreamInfo.js +31 -5
  136. package/dist/react/useStreamInfo.js.map +1 -1
  137. package/dist/replayPages.d.ts +31 -0
  138. package/dist/replayPages.d.ts.map +1 -0
  139. package/dist/replayPages.js +34 -0
  140. package/dist/replayPages.js.map +1 -0
  141. package/dist/replays.d.ts +7 -0
  142. package/dist/replays.d.ts.map +1 -1
  143. package/dist/replays.js +52 -22
  144. package/dist/replays.js.map +1 -1
  145. package/dist/session.d.ts +39 -6
  146. package/dist/session.d.ts.map +1 -1
  147. package/dist/session.js +209 -22
  148. package/dist/session.js.map +1 -1
  149. package/dist/sessionTypes.d.ts +190 -14
  150. package/dist/sessionTypes.d.ts.map +1 -1
  151. package/dist/sessionTypes.js +2 -1
  152. package/dist/sessionTypes.js.map +1 -1
  153. package/dist/shopifyCommerce.d.ts +149 -0
  154. package/dist/shopifyCommerce.d.ts.map +1 -0
  155. package/dist/shopifyCommerce.js +123 -0
  156. package/dist/shopifyCommerce.js.map +1 -0
  157. package/dist/shopifyIdentity.d.ts +51 -0
  158. package/dist/shopifyIdentity.d.ts.map +1 -0
  159. package/dist/shopifyIdentity.js +52 -0
  160. package/dist/shopifyIdentity.js.map +1 -0
  161. package/dist/shopifyIds.d.ts +9 -0
  162. package/dist/shopifyIds.d.ts.map +1 -0
  163. package/dist/shopifyIds.js +18 -0
  164. package/dist/shopifyIds.js.map +1 -0
  165. package/dist/showLinks.d.ts +24 -0
  166. package/dist/showLinks.d.ts.map +1 -0
  167. package/dist/showLinks.js +23 -0
  168. package/dist/showLinks.js.map +1 -0
  169. package/dist/showLots.d.ts +28 -0
  170. package/dist/showLots.d.ts.map +1 -0
  171. package/dist/showLots.js +51 -0
  172. package/dist/showLots.js.map +1 -0
  173. package/dist/showNames.d.ts +45 -0
  174. package/dist/showNames.d.ts.map +1 -0
  175. package/dist/showNames.js +74 -0
  176. package/dist/showNames.js.map +1 -0
  177. package/dist/streams.d.ts +27 -1
  178. package/dist/streams.d.ts.map +1 -1
  179. package/dist/streams.js +84 -21
  180. package/dist/streams.js.map +1 -1
  181. package/dist/types.d.ts +214 -8
  182. package/dist/types.d.ts.map +1 -1
  183. package/dist/types.js +2 -1
  184. package/dist/types.js.map +1 -1
  185. package/dist/wire.d.ts +31 -0
  186. package/dist/wire.d.ts.map +1 -1
  187. package/dist/wire.js +25 -0
  188. package/dist/wire.js.map +1 -1
  189. package/dist/zego.d.ts +3 -1
  190. package/dist/zego.d.ts.map +1 -1
  191. package/dist/zego.js +1 -1
  192. package/dist/zegoEngine.d.ts +168 -0
  193. package/dist/zegoEngine.d.ts.map +1 -0
  194. package/dist/zegoEngine.js +1052 -0
  195. package/dist/zegoEngine.js.map +1 -0
  196. package/package.json +3 -2
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PIP_DISARM_GRACE_MS = void 0;
4
+ exports.ownsSystemPipWindow = ownsSystemPipWindow;
5
+ exports.whereTheWindowCameFrom = whereTheWindowCameFrom;
6
+ exports.shouldArmSystemWindow = shouldArmSystemWindow;
7
+ exports.isWindowStillUpOnReturn = isWindowStillUpOnReturn;
8
+ exports.isPipUnavailableMessage = isPipUnavailableMessage;
9
+ /**
10
+ * How long after the session disarms that a window opening is still counted as the one it armed.
11
+ * The same beat the session gives the OS to grant a window (`PIP_GRANT_MS`).
12
+ */
13
+ exports.PIP_DISARM_GRACE_MS = 1200;
14
+ /**
15
+ * Whether a system window that just opened (`onPipStart`) is this live session's.
16
+ *
17
+ * On iOS the window is fed by the session's own frame pipeline, so it is ours exactly when a surface
18
+ * is up for it — the in-app bubble, or a player holding the handover.
19
+ *
20
+ * On **Android** the window IS the activity, and the OS opens it by itself off the arm the session
21
+ * set. By the time `onPipStart` reaches JavaScript the player has often already let go of the
22
+ * handover (navigation or focus moved in the same instant), so the old test — bubble or handover —
23
+ * said "not ours", `pipMode` never became `system`, and then the window's close button did not stop
24
+ * playback and its expand button did not open the player (Freckled Poppy, Android 16). The arm state
25
+ * decides instead: armed now, or disarmed within `PIP_DISARM_GRACE_MS`. Anything else minimising into
26
+ * a window — a replay's own player — was never armed by this session and stays not ours.
27
+ */
28
+ function ownsSystemPipWindow(context) {
29
+ if (context.pipMode === 'inapp' || context.handoverWanted)
30
+ return true;
31
+ if (context.platform !== 'android')
32
+ return false;
33
+ if (context.armed)
34
+ return true;
35
+ return context.disarmedAt > 0 && context.now - context.disarmedAt <= exports.PIP_DISARM_GRACE_MS;
36
+ }
37
+ /**
38
+ * Where the system window that just opened took the picture from, so coming back puts it there again:
39
+ * the in-app bubble (`'inapp'`) if it was up, otherwise a full-screen player (`'none'`).
40
+ *
41
+ * `rememberedBefore` is kept when the session already counts the window as up (`'system'`): a second
42
+ * start for one window must not forget where the first one came from.
43
+ */
44
+ function whereTheWindowCameFrom(pipModeAsItOpened, rememberedBefore) {
45
+ if (pipModeAsItOpened === 'system')
46
+ return rememberedBefore;
47
+ return pipModeAsItOpened;
48
+ }
49
+ /**
50
+ * Whether the OS may open its window when the app is put away.
51
+ *
52
+ * Only while there is a picture to hand over: the in-app bubble or a full-screen player holding the
53
+ * show, and the show `playing`. Joining, waiting for the host (camera off) and ended have no picture,
54
+ * and a window of them is an empty black box; the app is simply put away, and the session stops
55
+ * playback after `PIP_GRANT_MS` as it does whenever no window comes. Once the window is up it stays
56
+ * armed whatever the status does: disarming tears the window down on iOS, and a host stepping off
57
+ * camera for a moment is no reason to close it (the session leaves `system` itself when the show ends).
58
+ */
59
+ function shouldArmSystemWindow(context) {
60
+ if (context.pipMode === 'system')
61
+ return true;
62
+ const surfaceWantsIt = context.pipMode === 'inapp' || context.handoverWanted;
63
+ return surfaceWantsIt && context.status === 'playing';
64
+ }
65
+ /**
66
+ * Whether the app came back to the foreground with this session's window still up.
67
+ *
68
+ * iOS only. Expanding the window raises `onPipRestore`; whether coming back by the app's own icon (or a
69
+ * notification) does the same is iOS's choice, not ours. When it does not, the window would float over
70
+ * the app with the show in it while the app's own surface stood aside, so the session takes the window
71
+ * down itself and gives the picture back. If the restore and the return both arrive, whichever comes
72
+ * second finds the window already handed back and does nothing. Never on Android: there the window IS the app, and
73
+ * `AppState` reads `active` for as long as the window is up (`LivePipModule.keepRenderingWhileInPip`).
74
+ */
75
+ function isWindowStillUpOnReturn(platform, pipMode) {
76
+ return platform === 'ios' && pipMode === 'system';
77
+ }
78
+ /**
79
+ * Whether an `onPipError` says the device has no picture-in-picture at all (L21).
80
+ *
81
+ * The native module answers every arming on such an Android device with this error, so a session that
82
+ * reported it at `error` level filed a crash report each time the bubble opened. It is a fact about
83
+ * the device, said once, and the session stops arming after it.
84
+ */
85
+ function isPipUnavailableMessage(message) {
86
+ return typeof message === 'string' && /not available on this device/i.test(message);
87
+ }
88
+ //# sourceMappingURL=pipWindow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipWindow.js","sourceRoot":"","sources":["../src/pipWindow.ts"],"names":[],"mappings":";;;AAuCA,kDAKC;AAYD,wDAMC;AAoBD,sDAIC;AAYD,0DAEC;AASD,0DAEC;AAzGD;;;GAGG;AACU,QAAA,mBAAmB,GAAG,IAAK,CAAC;AAezC;;;;;;;;;;;;;GAaG;AACH,SAAgB,mBAAmB,CAAC,OAAyB;IAC3D,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,IAAI,OAAO,CAAC,cAAc;QAAE,OAAO,IAAI,CAAC;IACvE,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACjD,IAAI,OAAO,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAC/B,OAAO,OAAO,CAAC,UAAU,GAAG,CAAC,IAAI,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,UAAU,IAAI,2BAAmB,CAAC;AAC3F,CAAC;AAKD;;;;;;GAMG;AACH,SAAgB,sBAAsB,CACpC,iBAA8B,EAC9B,gBAAsC;IAEtC,IAAI,iBAAiB,KAAK,QAAQ;QAAE,OAAO,gBAAgB,CAAC;IAC5D,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAUD;;;;;;;;;GASG;AACH,SAAgB,qBAAqB,CAAC,OAAmB;IACvD,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC9C,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,KAAK,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC;IAC7E,OAAO,cAAc,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC;AACxD,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,uBAAuB,CAAC,QAAgB,EAAE,OAAoB;IAC5E,OAAO,QAAQ,KAAK,KAAK,IAAI,OAAO,KAAK,QAAQ,CAAC;AACpD,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,uBAAuB,CAAC,OAAgB;IACtD,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,+BAA+B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACtF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"polls.d.ts","sourceRoot":"","sources":["../src/polls.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,QAAQ,EAAkB,eAAe,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAYnF,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI,CA4BxD;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,GAAG,IAAI,CAoBtE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,GAAG,IAAI,CAGtE;AAqBD,eAAO,MAAM,KAAK,EAAE,QA6BnB,CAAC"}
1
+ {"version":3,"file":"polls.d.ts","sourceRoot":"","sources":["../src/polls.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,QAAQ,EAAkB,eAAe,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAYnF,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI,CA+BxD;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,GAAG,IAAI,CAoBtE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,GAAG,IAAI,CAGtE;AAqBD,eAAO,MAAM,KAAK,EAAE,QA6BnB,CAAC"}
package/dist/polls.js CHANGED
@@ -55,6 +55,9 @@ function toLivePoll(raw) {
55
55
  question: (_c = (0, wire_1.str)((0, wire_1.get)(wire, 'question'))) !== null && _c !== void 0 ? _c : '',
56
56
  options,
57
57
  wireOptionIds,
58
+ // The record keeps its last poll after it closes; the session raises one off the record only while
59
+ // this says "active" (or says nothing).
60
+ status: (0, wire_1.str)((0, wire_1.get)(wire, 'status')),
58
61
  };
59
62
  }
60
63
  function toLivePollResults(raw) {
package/dist/polls.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"polls.js","sourceRoot":"","sources":["../src/polls.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"polls.js","sourceRoot":"","sources":["../src/polls.ts"],"names":[],"mappings":"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"}
@@ -4,13 +4,22 @@ export interface LiveSellingContextType {
4
4
  ready: boolean;
5
5
  error: string | null;
6
6
  client: LiveSellingClient;
7
+ /** The signed-in viewer's email (`LiveSellingProvider`'s `viewerEmail`), or null. Since 0.9.0. */
8
+ viewerEmail: string | null;
7
9
  }
8
10
  export interface LiveSellingProviderProps {
9
11
  children: ReactNode;
10
12
  config: LiveSellingConfig;
11
13
  /** Every live-engine event, for a host that wants to react without subscribing to the engine. */
12
14
  onEvent?: (event: LiveEvent) => void;
15
+ /**
16
+ * The signed-in shopper's email, or null when signed out (0.9.0). Decides which hidden shows they
17
+ * see (`config.hiddenShows`): every hook that hands out shows reads it from here, so a show can't be
18
+ * hidden on one screen and shown on another. A prop, so a sign-in or sign-out reaches every hook at
19
+ * once. Only matters with `hiddenShows` set.
20
+ */
21
+ viewerEmail?: string | null;
13
22
  }
14
- export declare function LiveSellingProvider({ children, config, onEvent }: LiveSellingProviderProps): import("react").FunctionComponentElement<import("react").ProviderProps<LiveSellingContextType | undefined>>;
23
+ export declare function LiveSellingProvider({ children, config, onEvent, viewerEmail }: LiveSellingProviderProps): import("react").FunctionComponentElement<import("react").ProviderProps<LiveSellingContextType | undefined>>;
15
24
  export declare function useLiveSelling(): LiveSellingContextType;
16
25
  //# sourceMappingURL=LiveSellingProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LiveSellingProvider.d.ts","sourceRoot":"","sources":["../../src/react/LiveSellingProvider.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAEhF,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,iGAAiG;IACjG,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;CACtC;AAID,wBAAgB,mBAAmB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,wBAAwB,+GA6B1F;AAED,wBAAgB,cAAc,IAAI,sBAAsB,CAIvD"}
1
+ {"version":3,"file":"LiveSellingProvider.d.ts","sourceRoot":"","sources":["../../src/react/LiveSellingProvider.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAEhF,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,kGAAkG;IAClG,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,iGAAiG;IACjG,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IACrC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAID,wBAAgB,mBAAmB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,wBAAwB,+GA8BvG;AAED,wBAAgB,cAAc,IAAI,sBAAsB,CAIvD"}
@@ -11,11 +11,14 @@ exports.useLiveSelling = useLiveSelling;
11
11
  *
12
12
  * `onEvent` is a passthrough of the live engine's `LiveEvent` union, so a host can react to comments,
13
13
  * bids, sold announcements and co-host signals without subscribing to the engine directly.
14
+ *
15
+ * `viewerEmail` is who is watching, for the hidden shows (`config.hiddenShows`); `useHiddenShows`
16
+ * (its own file) reads it with the rule for the hooks that hand out shows.
14
17
  */
15
18
  const react_1 = require("react");
16
19
  const liveSelling_1 = require("../liveSelling");
17
20
  const LiveSellingContext = (0, react_1.createContext)(undefined);
18
- function LiveSellingProvider({ children, config, onEvent }) {
21
+ function LiveSellingProvider({ children, config, onEvent, viewerEmail }) {
19
22
  const [ready, setReady] = (0, react_1.useState)(false);
20
23
  const [error, setError] = (0, react_1.useState)(null);
21
24
  (0, react_1.useEffect)(() => {
@@ -37,7 +40,8 @@ function LiveSellingProvider({ children, config, onEvent }) {
37
40
  return;
38
41
  return liveSelling_1.liveSelling.engine.subscribe(onEvent);
39
42
  }, [onEvent]);
40
- const value = (0, react_1.useMemo)(() => ({ ready, error, client: liveSelling_1.liveSelling }), [ready, error]);
43
+ const email = (viewerEmail === null || viewerEmail === void 0 ? void 0 : viewerEmail.trim()) || null;
44
+ const value = (0, react_1.useMemo)(() => ({ ready, error, client: liveSelling_1.liveSelling, viewerEmail: email }), [ready, error, email]);
41
45
  return (0, react_1.createElement)(LiveSellingContext.Provider, { value }, children);
42
46
  }
43
47
  function useLiveSelling() {
@@ -1 +1 @@
1
- {"version":3,"file":"LiveSellingProvider.js","sourceRoot":"","sources":["../../src/react/LiveSellingProvider.ts"],"names":[],"mappings":";;AA+BA,kDA6BC;AAED,wCAIC;AAlED;;;;;;;;;GASG;AACH,iCAA+F;AAG/F,gDAA6C;AAgB7C,MAAM,kBAAkB,GAAG,IAAA,qBAAa,EAAqC,SAAS,CAAC,CAAC;AAExF,SAAgB,mBAAmB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAA4B;IACzF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAgB,IAAI,CAAC,CAAC;IAExD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC;YACH,yBAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC9B,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,QAAQ,CAAC,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YACpE,mFAAmF;YACnF,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;QACD,yDAAyD;QACzD,uDAAuD;IACzD,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAEhE,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,OAAO,yBAAW,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,MAAM,KAAK,GAAG,IAAA,eAAO,EACnB,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,yBAAW,EAAE,CAAC,EAC7C,CAAC,KAAK,EAAE,KAAK,CAAC,CACf,CAAC;IAEF,OAAO,IAAA,qBAAa,EAAC,kBAAkB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,CAAC,CAAC;AACzE,CAAC;AAED,SAAgB,cAAc;IAC5B,MAAM,GAAG,GAAG,IAAA,kBAAU,EAAC,kBAAkB,CAAC,CAAC;IAC3C,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IACtF,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"LiveSellingProvider.js","sourceRoot":"","sources":["../../src/react/LiveSellingProvider.ts"],"names":[],"mappings":";;AA2CA,kDA8BC;AAED,wCAIC;AA/ED;;;;;;;;;;;;GAYG;AACH,iCAA+F;AAG/F,gDAA6C;AAyB7C,MAAM,kBAAkB,GAAG,IAAA,qBAAa,EAAqC,SAAS,CAAC,CAAC;AAExF,SAAgB,mBAAmB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAA4B;IACtG,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAgB,IAAI,CAAC,CAAC;IAExD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC;YACH,yBAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC9B,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,QAAQ,CAAC,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YACpE,mFAAmF;YACnF,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;QACD,yDAAyD;QACzD,uDAAuD;IACzD,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAEhE,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,OAAO,yBAAW,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,MAAM,KAAK,GAAG,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,IAAI,EAAE,KAAI,IAAI,CAAC;IAC1C,MAAM,KAAK,GAAG,IAAA,eAAO,EACnB,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,yBAAW,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EACjE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CACtB,CAAC;IAEF,OAAO,IAAA,qBAAa,EAAC,kBAAkB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,CAAC,CAAC;AACzE,CAAC;AAED,SAAgB,cAAc;IAC5B,MAAM,GAAG,GAAG,IAAA,kBAAU,EAAC,kBAAkB,CAAC,CAAC;IAC3C,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IACtF,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"LiveVideoTarget.d.ts","sourceRoot":"","sources":["../../src/react/LiveVideoTarget.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAiB,SAAS,EAAO,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAY,IAAI,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAwBzD,qGAAqG;AACrG,eAAO,MAAM,sBAAsB,SAA4B,CAAC;AAEhE;;;;GAIG;AACH,eAAO,MAAM,eAAe,+FAG1B,CAAC;AAEH,MAAM,WAAW,oBAAoB;IACnC,0FAA0F;IAC1F,MAAM,EAAE,OAAO,CAAC;IAChB;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,sFAAsF;IACtF,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,KAAK,EACL,OAAe,EACf,KAAK,EACL,QAAQ,GACT,EAAE,oBAAoB,6CAmEtB"}
1
+ {"version":3,"file":"LiveVideoTarget.d.ts","sourceRoot":"","sources":["../../src/react/LiveVideoTarget.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAiB,SAAS,EAAO,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAsB,IAAI,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAwBzD,qGAAqG;AACrG,eAAO,MAAM,sBAAsB,SAA4B,CAAC;AAEhE;;;;GAIG;AACH,eAAO,MAAM,eAAe,+FAG1B,CAAC;AAEH,MAAM,WAAW,oBAAoB;IACnC,0FAA0F;IAC1F,MAAM,EAAE,OAAO,CAAC;IAChB;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,sFAAsF;IACtF,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,KAAK,EACL,OAAe,EACf,KAAK,EACL,QAAQ,GACT,EAAE,oBAAoB,6CAuGtB"}
@@ -51,7 +51,9 @@ exports.NativeVideoView = (0, react_1.forwardRef)(function NativeVideoView(props
51
51
  function LiveVideoTarget({ active, muted, autoPip = false, style, children, }) {
52
52
  const viewRef = (0, react_1.useRef)(null);
53
53
  const { status, muted: shopperMuted, actions } = (0, useLiveSession_1.useLiveSession)();
54
- const claim = (0, react_1.useCallback)(() => {
54
+ /* `force` is false only from the foreground re-claim below; `onLayout` passes its event here, so
55
+ anything but an explicit `false` forces. */
56
+ const claim = (0, react_1.useCallback)((force = true) => {
55
57
  if (!active)
56
58
  return;
57
59
  if (status !== 'playing' && status !== 'connecting')
@@ -61,9 +63,41 @@ function LiveVideoTarget({ active, muted, autoPip = false, style, children, }) {
61
63
  return;
62
64
  // Forced: this runs when the surface takes ownership, and the engine may still believe it is
63
65
  // rendering into this view when in fact the view was torn down behind another screen.
64
- actions.bindVideoView(tag, true);
66
+ actions.bindVideoView(tag, force !== false);
65
67
  }, [active, status, actions]);
66
68
  (0, react_1.useEffect)(claim, [claim]);
69
+ /**
70
+ * Back from the background: take the picture again if the engine let go of it.
71
+ *
72
+ * With no system window granted, the session stops playback a moment after the app leaves, and that
73
+ * forgets the bound view. Coming back, the session's own foreground handler re-issues playback only
74
+ * into a view it still has — none — and nothing here re-ran, because `active` and `status` had not
75
+ * changed: a blank surface over a show that was playing (ENG-580, the white bubble after a comment
76
+ * link). Freckled Poppy withheld `active` for one commit to force a re-claim; this asks directly.
77
+ *
78
+ * Unforced, so a view the engine is still playing into is left alone, and on the next task rather
79
+ * than now, so the session's own re-issue goes first.
80
+ */
81
+ const claimRef = (0, react_1.useRef)(claim);
82
+ claimRef.current = claim;
83
+ (0, react_1.useEffect)(() => {
84
+ let pending = null;
85
+ const subscription = react_native_1.AppState.addEventListener('change', (next) => {
86
+ if (next !== 'active')
87
+ return;
88
+ if (pending)
89
+ clearTimeout(pending);
90
+ pending = setTimeout(() => {
91
+ pending = null;
92
+ claimRef.current(false);
93
+ }, 0);
94
+ });
95
+ return () => {
96
+ subscription.remove();
97
+ if (pending)
98
+ clearTimeout(pending);
99
+ };
100
+ }, []);
67
101
  /**
68
102
  * The sound, in its own effect — and the split from `claim` is load-bearing twice over.
69
103
  *
@@ -79,6 +113,10 @@ function LiveVideoTarget({ active, muted, autoPip = false, style, children, }) {
79
113
  * write nothing at all, which kept a handover clean — the arriving surface states the answer — but
80
114
  * also left the room audible when NOTHING arrived. It now stands the room down instead, deferred so
81
115
  * a handover still reads as one continuous sound; see `videoTargets`.
116
+ *
117
+ * Restated on every `status` change as well. A card mounted during a cold start said "silent" while
118
+ * the engine did not exist yet, and nothing said it again once it did: the host was audible over
119
+ * the Home tab (Freckled Poppy). `connecting` → `playing` is exactly the moment to repeat it.
82
120
  */
83
121
  (0, react_1.useEffect)(() => {
84
122
  if (!active) {
@@ -89,7 +127,7 @@ function LiveVideoTarget({ active, muted, autoPip = false, style, children, }) {
89
127
  const release = (0, videoTargets_1.holdVideoTarget)();
90
128
  actions.setOutputMuted(muted !== null && muted !== void 0 ? muted : shopperMuted);
91
129
  return release;
92
- }, [active, muted, shopperMuted, actions]);
130
+ }, [active, muted, shopperMuted, status, actions]);
93
131
  /**
94
132
  * The handover request, released on the way out.
95
133
  *
@@ -1 +1 @@
1
- {"version":3,"file":"LiveVideoTarget.js","sourceRoot":"","sources":["../../src/react/LiveVideoTarget.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LiveVideoTarget.js","sourceRoot":"","sources":["../../src/react/LiveVideoTarget.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * How long until a countdown with `timeLeftMs` to go shows a different second, plus a few
3
+ * milliseconds. The countdown shows `Math.ceil(timeLeftMs / 1000)`, which changes each time the time
4
+ * left crosses a whole second. Null once nothing is left: the countdown stays at zero.
5
+ */
6
+ export declare function waitBeforeCountdownChanges(timeLeftMs: number): number | null;
7
+ /**
8
+ * How long until the show's clock, `elapsedMs` since the start, shows a different second, plus a few
9
+ * milliseconds. The clock shows `Math.floor(elapsedMs / 1000)`. Before the start (negative: the phone's
10
+ * clock is behind the gateway's) it shows 0 until one second past the start.
11
+ */
12
+ export declare function waitBeforeShowClockChanges(elapsedMs: number): number;
13
+ /**
14
+ * The time left until `closesAt` (ms, ≥ 0): the auction round's countdown.
15
+ *
16
+ * Pass `session.auction.closesAt`. The component that calls this is drawn again once a second, as the
17
+ * second it shows (`Math.ceil(timeLeftMs / 1000)`) changes, and never after the countdown reaches zero.
18
+ * With no round (`null`) it is 0 and nothing runs.
19
+ */
20
+ export declare function useAuctionCountdown(closesAt: number | null | undefined): number;
21
+ /**
22
+ * The time since `startedAt` (ms, ≥ 0): the show's clock.
23
+ *
24
+ * Pass `session.stream?.startedAtMs`. The component that calls this is drawn again once a second, as
25
+ * the second it shows (`Math.floor(elapsedMs / 1000)`) changes. With no start time (`null`) it is 0 and
26
+ * nothing runs; pass `null` too while the clock isn't shown (an ended show) to stop it.
27
+ */
28
+ export declare function useShowClock(startedAt: number | null | undefined): number;
29
+ //# sourceMappingURL=clocks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clocks.d.ts","sourceRoot":"","sources":["../../src/react/clocks.ts"],"names":[],"mappings":"AA0CA;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG5E;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAGpE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAuB/E;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAqBzE"}
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.waitBeforeCountdownChanges = waitBeforeCountdownChanges;
4
+ exports.waitBeforeShowClockChanges = waitBeforeShowClockChanges;
5
+ exports.useAuctionCountdown = useAuctionCountdown;
6
+ exports.useShowClock = useShowClock;
7
+ /**
8
+ * The two clocks a live screen shows, kept inside the component that shows them.
9
+ *
10
+ * The session holds moments, never clocks: `auction.closesAt` (when the round closes) and
11
+ * `stream.startedAtMs` (when the show started). A session that ticked drew every component reading it
12
+ * on every tick, and the session is app-wide — before 0.9.0 that was every reader, five times a second
13
+ * during an auction round. These hooks count to a moment inside the one component that calls them, so
14
+ * only that component is drawn again as its clock moves.
15
+ *
16
+ * **Once a second, on the second.** Each hook wakes a few milliseconds after the second it shows
17
+ * changes, never on a free-running interval: a 1 s interval started at an arbitrary moment drifts
18
+ * against the deadline and shows one second twice and skips another (which is why the session's old
19
+ * auction clock ran at 200 ms). The clocks apps draw show whole seconds, so nothing they show changes
20
+ * between two wakes.
21
+ *
22
+ * **They read `Date.now()` as they draw.** A wake only asks for the component to be drawn again; the
23
+ * time left (or since the start) is worked out at the moment of drawing, so a component drawn for any
24
+ * other reason — a new bid, a new deadline — shows the right second too, with no stored time to go
25
+ * stale.
26
+ *
27
+ * They take the moment as a number rather than reading the session, so a tile can call them with its
28
+ * own props, and they work outside `LiveSessionProvider` and on the web. Only `react` is imported, so
29
+ * this file (and the pure helpers in it) loads in Node and in a test runner with no native modules.
30
+ */
31
+ const react_1 = require("react");
32
+ const SECOND_MS = 1000;
33
+ /** How far past the edge of a second to wake, so the second shown has surely changed. */
34
+ const PAST_THE_EDGE_MS = 5;
35
+ /**
36
+ * The longest single wait before the show starts. A start time far in the future (bad data, or a phone
37
+ * clock hours out) would otherwise ask for a timer longer than a timer can hold, which fires at once.
38
+ */
39
+ const LONGEST_WAIT_MS = 60 * SECOND_MS;
40
+ /** A time in milliseconds, or null for anything that isn't one. */
41
+ function timeOrNull(value) {
42
+ return typeof value === 'number' && Number.isFinite(value) ? value : null;
43
+ }
44
+ /**
45
+ * How long until a countdown with `timeLeftMs` to go shows a different second, plus a few
46
+ * milliseconds. The countdown shows `Math.ceil(timeLeftMs / 1000)`, which changes each time the time
47
+ * left crosses a whole second. Null once nothing is left: the countdown stays at zero.
48
+ */
49
+ function waitBeforeCountdownChanges(timeLeftMs) {
50
+ if (!(timeLeftMs > 0))
51
+ return null;
52
+ return (timeLeftMs % SECOND_MS || SECOND_MS) + PAST_THE_EDGE_MS;
53
+ }
54
+ /**
55
+ * How long until the show's clock, `elapsedMs` since the start, shows a different second, plus a few
56
+ * milliseconds. The clock shows `Math.floor(elapsedMs / 1000)`. Before the start (negative: the phone's
57
+ * clock is behind the gateway's) it shows 0 until one second past the start.
58
+ */
59
+ function waitBeforeShowClockChanges(elapsedMs) {
60
+ const untilNextSecond = elapsedMs < 0 ? SECOND_MS - elapsedMs : SECOND_MS - (elapsedMs % SECOND_MS);
61
+ return Math.min(untilNextSecond + PAST_THE_EDGE_MS, LONGEST_WAIT_MS);
62
+ }
63
+ /**
64
+ * The time left until `closesAt` (ms, ≥ 0): the auction round's countdown.
65
+ *
66
+ * Pass `session.auction.closesAt`. The component that calls this is drawn again once a second, as the
67
+ * second it shows (`Math.ceil(timeLeftMs / 1000)`) changes, and never after the countdown reaches zero.
68
+ * With no round (`null`) it is 0 and nothing runs.
69
+ */
70
+ function useAuctionCountdown(closesAt) {
71
+ const deadline = timeOrNull(closesAt);
72
+ /** Counts the wakes. The number means nothing; setting it is what draws this component again. */
73
+ const [, setWakes] = (0, react_1.useState)(0);
74
+ (0, react_1.useEffect)(() => {
75
+ if (deadline === null)
76
+ return;
77
+ let timer = null;
78
+ const waitForNextSecond = () => {
79
+ const wait = waitBeforeCountdownChanges(deadline - Date.now());
80
+ if (wait === null)
81
+ return;
82
+ timer = setTimeout(() => {
83
+ setWakes((wakes) => wakes + 1);
84
+ waitForNextSecond();
85
+ }, wait);
86
+ };
87
+ waitForNextSecond();
88
+ return () => {
89
+ if (timer)
90
+ clearTimeout(timer);
91
+ };
92
+ }, [deadline]);
93
+ return deadline === null ? 0 : Math.max(0, deadline - Date.now());
94
+ }
95
+ /**
96
+ * The time since `startedAt` (ms, ≥ 0): the show's clock.
97
+ *
98
+ * Pass `session.stream?.startedAtMs`. The component that calls this is drawn again once a second, as
99
+ * the second it shows (`Math.floor(elapsedMs / 1000)`) changes. With no start time (`null`) it is 0 and
100
+ * nothing runs; pass `null` too while the clock isn't shown (an ended show) to stop it.
101
+ */
102
+ function useShowClock(startedAt) {
103
+ const start = timeOrNull(startedAt);
104
+ /** Counts the wakes. The number means nothing; setting it is what draws this component again. */
105
+ const [, setWakes] = (0, react_1.useState)(0);
106
+ (0, react_1.useEffect)(() => {
107
+ if (start === null)
108
+ return;
109
+ let timer = null;
110
+ const waitForNextSecond = () => {
111
+ timer = setTimeout(() => {
112
+ setWakes((wakes) => wakes + 1);
113
+ waitForNextSecond();
114
+ }, waitBeforeShowClockChanges(Date.now() - start));
115
+ };
116
+ waitForNextSecond();
117
+ return () => {
118
+ if (timer)
119
+ clearTimeout(timer);
120
+ };
121
+ }, [start]);
122
+ return start === null ? 0 : Math.max(0, Date.now() - start);
123
+ }
124
+ //# sourceMappingURL=clocks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clocks.js","sourceRoot":"","sources":["../../src/react/clocks.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@
5
5
  * client and the native engine work without React entirely.
6
6
  */
7
7
  export { LiveSellingProvider, useLiveSelling, type LiveSellingProviderProps, type LiveSellingContextType, } from './LiveSellingProvider';
8
+ export { useHiddenShows, type HiddenShowsForViewer } from './useHiddenShows';
8
9
  export { useOngoingLive, type UseOngoingLiveState } from './useOngoingLive';
9
10
  export { refreshOngoingLive } from '../ongoingLiveStore';
10
11
  export { useLiveStreams, type UseLiveStreamsState } from './useLiveStreams';
@@ -12,9 +13,13 @@ export { useAuction, type UseAuctionState } from './useAuction';
12
13
  export { useReplays, type UseReplaysOptions, type UseReplaysState } from './useReplays';
13
14
  export { useClips, type UseClipsState } from './useClips';
14
15
  export { LiveSessionProvider, useLiveSession, type LiveSessionProviderProps, } from './useLiveSession';
15
- export { useStreamInfo, refreshStreamRecords, refreshStreamRecordsIfStale, } from './useStreamInfo';
16
+ export { useLiveShow } from './useLiveShow';
17
+ export { useAuctionCountdown, useShowClock } from './clocks';
18
+ export { useStreamInfo, refreshStreamRecords, refreshStreamRecordsIfStale, type UseStreamInfoState, } from './useStreamInfo';
16
19
  export { LiveVideoTarget, NativeVideoView, isNativeVideoSupported, type LiveVideoTargetProps, } from './LiveVideoTarget';
17
- export { useAuctionBidGate, SHEET_HANDOFF_MS, type AuctionBidGate, type BidBlocker } from './useAuctionBidGate';
20
+ export { useAuctionBidGate, SHEET_HANDOFF_MS, type AuctionBidGate, type BidBlocker, type BidRefusal, type UseAuctionBidGateOptions, } from './useAuctionBidGate';
21
+ export { useGiveawayEntry, type GiveawayDraw, type UseGiveawayEntryState, type SessionForGiveaway, type UseGiveawayEntryOptions, } from './useGiveawayEntry';
22
+ export { useGiveawayPrize, type UseGiveawayPrizeState } from './useGiveawayPrize';
18
23
  export { useAuctionWins, type AuctionWinRow, type UseAuctionWinsOptions, type UseAuctionWinsState, } from './useAuctionWins';
19
24
  export { nativeViewTag } from '../nativeViewTag';
20
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AACxF,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAG1D,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,KAAK,wBAAwB,GAC9B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,2BAA2B,GAC5B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,KAAK,oBAAoB,GAC1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,KAAK,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAChH,OAAO,EACL,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,GACzB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AACxF,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAG1D,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,KAAK,wBAAwB,GAC9B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,2BAA2B,EAC3B,KAAK,kBAAkB,GACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,KAAK,oBAAoB,GAC1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,wBAAwB,GAC9B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,gBAAgB,EAChB,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,GAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EACL,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,GACzB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.nativeViewTag = exports.useAuctionWins = exports.SHEET_HANDOFF_MS = exports.useAuctionBidGate = exports.isNativeVideoSupported = exports.NativeVideoView = exports.LiveVideoTarget = exports.refreshStreamRecordsIfStale = exports.refreshStreamRecords = exports.useStreamInfo = exports.useLiveSession = exports.LiveSessionProvider = exports.useClips = exports.useReplays = exports.useAuction = exports.useLiveStreams = exports.refreshOngoingLive = exports.useOngoingLive = exports.useLiveSelling = exports.LiveSellingProvider = void 0;
3
+ exports.nativeViewTag = exports.useAuctionWins = exports.useGiveawayPrize = exports.useGiveawayEntry = exports.SHEET_HANDOFF_MS = exports.useAuctionBidGate = exports.isNativeVideoSupported = exports.NativeVideoView = exports.LiveVideoTarget = exports.refreshStreamRecordsIfStale = exports.refreshStreamRecords = exports.useStreamInfo = exports.useShowClock = exports.useAuctionCountdown = exports.useLiveShow = exports.useLiveSession = exports.LiveSessionProvider = exports.useClips = exports.useReplays = exports.useAuction = exports.useLiveStreams = exports.refreshOngoingLive = exports.useOngoingLive = exports.useHiddenShows = exports.useLiveSelling = exports.LiveSellingProvider = void 0;
4
4
  /**
5
5
  * React helpers for `@tiledev/sdk-apptile-live-selling` — the provider and the read hooks.
6
6
  *
@@ -10,6 +10,8 @@ exports.nativeViewTag = exports.useAuctionWins = exports.SHEET_HANDOFF_MS = expo
10
10
  var LiveSellingProvider_1 = require("./LiveSellingProvider");
11
11
  Object.defineProperty(exports, "LiveSellingProvider", { enumerable: true, get: function () { return LiveSellingProvider_1.LiveSellingProvider; } });
12
12
  Object.defineProperty(exports, "useLiveSelling", { enumerable: true, get: function () { return LiveSellingProvider_1.useLiveSelling; } });
13
+ var useHiddenShows_1 = require("./useHiddenShows");
14
+ Object.defineProperty(exports, "useHiddenShows", { enumerable: true, get: function () { return useHiddenShows_1.useHiddenShows; } });
13
15
  var useOngoingLive_1 = require("./useOngoingLive");
14
16
  Object.defineProperty(exports, "useOngoingLive", { enumerable: true, get: function () { return useOngoingLive_1.useOngoingLive; } });
15
17
  var ongoingLiveStore_1 = require("../ongoingLiveStore");
@@ -26,6 +28,13 @@ Object.defineProperty(exports, "useClips", { enumerable: true, get: function ()
26
28
  var useLiveSession_1 = require("./useLiveSession");
27
29
  Object.defineProperty(exports, "LiveSessionProvider", { enumerable: true, get: function () { return useLiveSession_1.LiveSessionProvider; } });
28
30
  Object.defineProperty(exports, "useLiveSession", { enumerable: true, get: function () { return useLiveSession_1.useLiveSession; } });
31
+ // The show a screen is about, once the session holds its record (0.9.0).
32
+ var useLiveShow_1 = require("./useLiveShow");
33
+ Object.defineProperty(exports, "useLiveShow", { enumerable: true, get: function () { return useLiveShow_1.useLiveShow; } });
34
+ // The clocks a screen shows, kept in the component that shows them: the session itself never ticks.
35
+ var clocks_1 = require("./clocks");
36
+ Object.defineProperty(exports, "useAuctionCountdown", { enumerable: true, get: function () { return clocks_1.useAuctionCountdown; } });
37
+ Object.defineProperty(exports, "useShowClock", { enumerable: true, get: function () { return clocks_1.useShowClock; } });
29
38
  var useStreamInfo_1 = require("./useStreamInfo");
30
39
  Object.defineProperty(exports, "useStreamInfo", { enumerable: true, get: function () { return useStreamInfo_1.useStreamInfo; } });
31
40
  Object.defineProperty(exports, "refreshStreamRecords", { enumerable: true, get: function () { return useStreamInfo_1.refreshStreamRecords; } });
@@ -37,6 +46,11 @@ Object.defineProperty(exports, "isNativeVideoSupported", { enumerable: true, get
37
46
  var useAuctionBidGate_1 = require("./useAuctionBidGate");
38
47
  Object.defineProperty(exports, "useAuctionBidGate", { enumerable: true, get: function () { return useAuctionBidGate_1.useAuctionBidGate; } });
39
48
  Object.defineProperty(exports, "SHEET_HANDOFF_MS", { enumerable: true, get: function () { return useAuctionBidGate_1.SHEET_HANDOFF_MS; } });
49
+ // The giveaway's flows on a screen (0.9.0): the entry, its sheet and sign-in, the draw; the prize.
50
+ var useGiveawayEntry_1 = require("./useGiveawayEntry");
51
+ Object.defineProperty(exports, "useGiveawayEntry", { enumerable: true, get: function () { return useGiveawayEntry_1.useGiveawayEntry; } });
52
+ var useGiveawayPrize_1 = require("./useGiveawayPrize");
53
+ Object.defineProperty(exports, "useGiveawayPrize", { enumerable: true, get: function () { return useGiveawayPrize_1.useGiveawayPrize; } });
40
54
  var useAuctionWins_1 = require("./useAuctionWins");
41
55
  Object.defineProperty(exports, "useAuctionWins", { enumerable: true, get: function () { return useAuctionWins_1.useAuctionWins; } });
42
56
  // React Native only, so it lives here rather than on the root entry.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,6DAK+B;AAJ7B,0HAAA,mBAAmB,OAAA;AACnB,qHAAA,cAAc,OAAA;AAIhB,mDAA4E;AAAnE,gHAAA,cAAc,OAAA;AACvB,wDAAyD;AAAhD,sHAAA,kBAAkB,OAAA;AAC3B,mDAA4E;AAAnE,gHAAA,cAAc,OAAA;AACvB,2CAAgE;AAAvD,wGAAA,UAAU,OAAA;AACnB,2CAAwF;AAA/E,wGAAA,UAAU,OAAA;AACnB,uCAA0D;AAAjD,oGAAA,QAAQ,OAAA;AAEjB,4FAA4F;AAC5F,mDAI0B;AAHxB,qHAAA,mBAAmB,OAAA;AACnB,gHAAA,cAAc,OAAA;AAGhB,iDAIyB;AAHvB,8GAAA,aAAa,OAAA;AACb,qHAAA,oBAAoB,OAAA;AACpB,4HAAA,2BAA2B,OAAA;AAE7B,qDAK2B;AAJzB,kHAAA,eAAe,OAAA;AACf,kHAAA,eAAe,OAAA;AACf,yHAAA,sBAAsB,OAAA;AAGxB,yDAAgH;AAAvG,sHAAA,iBAAiB,OAAA;AAAE,qHAAA,gBAAgB,OAAA;AAC5C,mDAK0B;AAJxB,gHAAA,cAAc,OAAA;AAKhB,qEAAqE;AACrE,kDAAiD;AAAxC,8GAAA,aAAa,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,6DAK+B;AAJ7B,0HAAA,mBAAmB,OAAA;AACnB,qHAAA,cAAc,OAAA;AAIhB,mDAA6E;AAApE,gHAAA,cAAc,OAAA;AACvB,mDAA4E;AAAnE,gHAAA,cAAc,OAAA;AACvB,wDAAyD;AAAhD,sHAAA,kBAAkB,OAAA;AAC3B,mDAA4E;AAAnE,gHAAA,cAAc,OAAA;AACvB,2CAAgE;AAAvD,wGAAA,UAAU,OAAA;AACnB,2CAAwF;AAA/E,wGAAA,UAAU,OAAA;AACnB,uCAA0D;AAAjD,oGAAA,QAAQ,OAAA;AAEjB,4FAA4F;AAC5F,mDAI0B;AAHxB,qHAAA,mBAAmB,OAAA;AACnB,gHAAA,cAAc,OAAA;AAGhB,yEAAyE;AACzE,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AACpB,oGAAoG;AACpG,mCAA6D;AAApD,6GAAA,mBAAmB,OAAA;AAAE,sGAAA,YAAY,OAAA;AAC1C,iDAKyB;AAJvB,8GAAA,aAAa,OAAA;AACb,qHAAA,oBAAoB,OAAA;AACpB,4HAAA,2BAA2B,OAAA;AAG7B,qDAK2B;AAJzB,kHAAA,eAAe,OAAA;AACf,kHAAA,eAAe,OAAA;AACf,yHAAA,sBAAsB,OAAA;AAGxB,yDAO6B;AAN3B,sHAAA,iBAAiB,OAAA;AACjB,qHAAA,gBAAgB,OAAA;AAMlB,mGAAmG;AACnG,uDAM4B;AAL1B,oHAAA,gBAAgB,OAAA;AAMlB,uDAAkF;AAAzE,oHAAA,gBAAgB,OAAA;AACzB,mDAK0B;AAJxB,gHAAA,cAAc,OAAA;AAKhB,qEAAqE;AACrE,kDAAiD;AAAxC,8GAAA,aAAa,OAAA"}
@@ -1,20 +1,25 @@
1
1
  import { View } from 'react-native';
2
2
  import type { ViewProps } from 'react-native';
3
+ import { type LiveShow } from '../liveShow';
3
4
  import type { LiveSession } from '../sessionTypes';
4
5
  import type { AuctionBidGate, UseAuctionBidGateOptions } from './useAuctionBidGate';
5
6
  import type { UseAuctionWinsOptions, UseAuctionWinsState } from './useAuctionWins';
6
7
  import type { LiveSessionProviderProps } from './useLiveSession';
7
8
  import type { LiveVideoTargetProps } from './LiveVideoTarget';
8
9
  export { LiveSellingProvider, useLiveSelling, type LiveSellingProviderProps, type LiveSellingContextType, } from './LiveSellingProvider';
10
+ export { useHiddenShows, type HiddenShowsForViewer } from './useHiddenShows';
9
11
  export { useOngoingLive, type UseOngoingLiveState } from './useOngoingLive';
10
12
  export { refreshOngoingLive } from '../ongoingLiveStore';
11
13
  export { useLiveStreams, type UseLiveStreamsState } from './useLiveStreams';
12
14
  export { useAuction, type UseAuctionState } from './useAuction';
13
15
  export { useReplays, type UseReplaysOptions, type UseReplaysState } from './useReplays';
14
16
  export { useClips, type UseClipsState } from './useClips';
15
- export { useStreamInfo, refreshStreamRecords, refreshStreamRecordsIfStale, } from './useStreamInfo';
17
+ export { useStreamInfo, refreshStreamRecords, refreshStreamRecordsIfStale, type UseStreamInfoState, } from './useStreamInfo';
18
+ export { useAuctionCountdown, useShowClock } from './clocks';
19
+ export { useGiveawayEntry, type GiveawayDraw, type UseGiveawayEntryState, type SessionForGiveaway, type UseGiveawayEntryOptions, } from './useGiveawayEntry';
20
+ export { useGiveawayPrize, type UseGiveawayPrizeState } from './useGiveawayPrize';
16
21
  export { nativeViewTag } from '../nativeViewTag';
17
- export type { AuctionBidGate, BidBlocker } from './useAuctionBidGate';
22
+ export type { AuctionBidGate, BidBlocker, BidRefusal, UseAuctionBidGateOptions } from './useAuctionBidGate';
18
23
  export type { AuctionWinRow, UseAuctionWinsOptions, UseAuctionWinsState } from './useAuctionWins';
19
24
  export type { LiveSessionProviderProps } from './useLiveSession';
20
25
  export type { LiveVideoTargetProps } from './LiveVideoTarget';
@@ -24,6 +29,8 @@ export declare function LiveSessionProvider({ children }: LiveSessionProviderPro
24
29
  * behaves the same as one inside it, because on the web there is only ever this one session.
25
30
  */
26
31
  export declare function useLiveSession<TRaw = unknown>(): LiveSession<TRaw>;
32
+ /** `useLiveShow` over the idle session: always `ended`, with no show, whatever the id. */
33
+ export declare function useLiveShow(_streamingId: string | null | undefined): LiveShow;
27
34
  export declare const isNativeVideoSupported = false;
28
35
  /**
29
36
  * A plain `View`, which is what the native file falls back to on a build without the Zego SDK:
@@ -1 +1 @@
1
- {"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../src/react/index.web.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,KAAK,EAAE,WAAW,EAAsB,MAAM,iBAAiB,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,KAAK,EAAiB,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAClG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAG9D,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AACxF,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,2BAA2B,GAC5B,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtE,YAAY,EAAE,aAAa,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAClG,YAAY,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACjE,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAoE9D,wBAAgB,mBAAmB,CAAC,EAAE,QAAQ,EAAE,EAAE,wBAAwB,+FAEzE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,GAAG,OAAO,KAAK,WAAW,CAAC,IAAI,CAAC,CAElE;AAID,eAAO,MAAM,sBAAsB,QAAQ,CAAC;AAE5C;;;;GAIG;AACH,eAAO,MAAM,eAAe,+FAE1B,CAAC;AAEH,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,oBAAoB,6CAExE;AAID,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC,iGAAiG;AACjG,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,wBAAwB,GAAG,cAAc,CAapF;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,GAAG,OAAO,EAC3C,QAAQ,CAAC,EAAE,qBAAqB,GAC/B,mBAAmB,CAAC,IAAI,CAAC,CAc3B"}
1
+ {"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../src/react/index.web.ts"],"names":[],"mappings":"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"}