@apiteam/twa-bridge 7.8.0 → 8.0.0-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/solid/index.d.ts +88 -18
- package/solid/index.js +1 -1
- package/solid/index.mjs +1 -1
package/package.json
CHANGED
package/solid/index.d.ts
CHANGED
|
@@ -206,6 +206,43 @@ type ShareToStory = (eventData?: SenderData[typeof MethodShareToStory]) => {
|
|
|
206
206
|
declare const shareToStory: ShareToStory;
|
|
207
207
|
declare const supportShareToStory: () => boolean;
|
|
208
208
|
|
|
209
|
+
type CheckHomeScreen = (eventData: SenderData[typeof MethodCheckHomeScreen]) => Promise<{
|
|
210
|
+
status: boolean | typeof NOT_SUPPORTED;
|
|
211
|
+
data?: EventsData[typeof EventCheckHomeScreen];
|
|
212
|
+
}>;
|
|
213
|
+
declare const checkHomeScreen: CheckHomeScreen;
|
|
214
|
+
declare const supportCheckHomeScreen: () => boolean;
|
|
215
|
+
|
|
216
|
+
type AddToHomeScreen = (eventData?: SenderData[typeof MethodAddToHomeScreen]) => {
|
|
217
|
+
status: boolean | typeof NOT_SUPPORTED;
|
|
218
|
+
};
|
|
219
|
+
declare const addToHomeScreen: AddToHomeScreen;
|
|
220
|
+
declare const supportAddToHomeScreen: () => boolean;
|
|
221
|
+
|
|
222
|
+
type RequestSafeAreaInset = (eventData?: SenderData[typeof MethodRequestSafeArea]) => {
|
|
223
|
+
status: boolean | typeof NOT_SUPPORTED;
|
|
224
|
+
};
|
|
225
|
+
declare const requestSafeAreaInset: RequestSafeAreaInset;
|
|
226
|
+
declare const supportRequestSafeAreaInset: () => boolean;
|
|
227
|
+
|
|
228
|
+
type RequestContentSafeAreaInset = (eventData?: SenderData[typeof MethodRequestContentSafeArea]) => {
|
|
229
|
+
status: boolean | typeof NOT_SUPPORTED;
|
|
230
|
+
};
|
|
231
|
+
declare const requestContentSafeAreaInset: RequestContentSafeAreaInset;
|
|
232
|
+
declare const supportRequestContentSafeAreaInset: () => boolean;
|
|
233
|
+
|
|
234
|
+
type SetupFullScreen = (eventData?: SenderData[typeof MethodRequestFullscreen]) => {
|
|
235
|
+
status: boolean | typeof NOT_SUPPORTED;
|
|
236
|
+
};
|
|
237
|
+
declare const setupFullScreen: SetupFullScreen;
|
|
238
|
+
declare const supportSetupFullScreen: () => boolean;
|
|
239
|
+
|
|
240
|
+
type SetupOrientation = (eventData?: SenderData[typeof MethodToggleOrientationLock]) => {
|
|
241
|
+
status: boolean | typeof NOT_SUPPORTED;
|
|
242
|
+
};
|
|
243
|
+
declare const setupOrientation: SetupOrientation;
|
|
244
|
+
declare const supportSetupOrientation: () => boolean;
|
|
245
|
+
|
|
209
246
|
type User = {
|
|
210
247
|
added_to_attachment_menu?: boolean;
|
|
211
248
|
allows_write_to_pm?: boolean;
|
|
@@ -261,6 +298,25 @@ declare const getThemeParams: (theme_params?: ThemeParams) => ThemeParams;
|
|
|
261
298
|
type Sender = (eventType: string, eventData?: any) => void;
|
|
262
299
|
declare const sender: Sender;
|
|
263
300
|
|
|
301
|
+
declare const EventBackButtonPressed = "back_button_pressed";
|
|
302
|
+
declare const EventClipboardTextReceived = "clipboard_text_received";
|
|
303
|
+
declare const EventCustomMethodInvoked = "custom_method_invoked";
|
|
304
|
+
declare const EventInvoiceClosed = "invoice_closed";
|
|
305
|
+
declare const EventMainButtonPressed = "main_button_pressed";
|
|
306
|
+
declare const EventPhoneRequested = "phone_requested";
|
|
307
|
+
declare const EventPopupClosed = "popup_closed";
|
|
308
|
+
declare const EventReloadIframe = "reload_iframe";
|
|
309
|
+
declare const EventQrTextReceived = "qr_text_received";
|
|
310
|
+
declare const EventScanQrPopupClosed = "scan_qr_popup_closed";
|
|
311
|
+
declare const EventSetCustomStyle = "set_custom_style";
|
|
312
|
+
declare const EventSettingsButtonPressed = "settings_button_pressed";
|
|
313
|
+
declare const EventThemeChanged = "theme_changed";
|
|
314
|
+
declare const EventViewportChanged = "viewport_changed";
|
|
315
|
+
declare const EventWriteAccessRequested = "write_access_requested";
|
|
316
|
+
declare const EventSafeAreaChanged = "safe_area_changed";
|
|
317
|
+
declare const EventContentSafeAreaChanged = "content_safe_area_changed";
|
|
318
|
+
declare const EventCheckHomeScreen = "web_app_check_home_screen";
|
|
319
|
+
|
|
264
320
|
type GetPlatform = () => 'phone' | 'web' | 'desktop';
|
|
265
321
|
declare const TG_WEB = "web";
|
|
266
322
|
declare const TG_PHONE = "phone";
|
|
@@ -310,6 +366,9 @@ type EventsData = {
|
|
|
310
366
|
write_access_requested: {
|
|
311
367
|
status: 'allowed';
|
|
312
368
|
};
|
|
369
|
+
[EventCheckHomeScreen]: {
|
|
370
|
+
status: 'unsupported' | 'unknown' | 'added' | 'missed';
|
|
371
|
+
};
|
|
313
372
|
};
|
|
314
373
|
interface TelegramGameProxy {
|
|
315
374
|
receiveEvent: (event: string, data: string) => void;
|
|
@@ -372,6 +431,13 @@ declare const MethodSwitchInlineQuery = "web_app_switch_inline_query";
|
|
|
372
431
|
declare const MethodTriggerHapticFeedback = "web_app_trigger_haptic_feedback";
|
|
373
432
|
declare const MethodSetupSwipeBehavior = "web_app_setup_swipe_behavior";
|
|
374
433
|
declare const MethodShareToStory = "web_app_share_to_story";
|
|
434
|
+
declare const MethodRequestSafeArea = "web_app_request_safe_area";
|
|
435
|
+
declare const MethodRequestContentSafeArea = "web_app_request_content_safe_area";
|
|
436
|
+
declare const MethodRequestFullscreen = "web_app_request_fullscreen";
|
|
437
|
+
declare const MethodExitFullscreen = "web_app_exit_fullscreen";
|
|
438
|
+
declare const MethodToggleOrientationLock = "web_app_toggle_orientation_lock";
|
|
439
|
+
declare const MethodAddToHomeScreen = "web_app_add_to_home_screen";
|
|
440
|
+
declare const MethodCheckHomeScreen = "web_app_check_home_screen";
|
|
375
441
|
declare enum Method {
|
|
376
442
|
InvokeCustomMethod = "web_app_invoke_custom_method",
|
|
377
443
|
OpenScanQrPopup = "web_app_open_scan_qr_popup",
|
|
@@ -401,7 +467,14 @@ declare enum Method {
|
|
|
401
467
|
SwitchInlineQuery = "web_app_switch_inline_query",
|
|
402
468
|
TriggerHapticFeedback = "web_app_trigger_haptic_feedback",
|
|
403
469
|
SetupSwipeBehavior = "web_app_setup_swipe_behavior",
|
|
404
|
-
ShareToStory = "web_app_share_to_story"
|
|
470
|
+
ShareToStory = "web_app_share_to_story",
|
|
471
|
+
RequestSafeArea = "web_app_request_safe_area",
|
|
472
|
+
RequestContentSafeArea = "web_app_request_content_safe_area",
|
|
473
|
+
RequestFullscreen = "web_app_request_fullscreen",
|
|
474
|
+
ExitFullscreen = "web_app_exit_fullscreen",
|
|
475
|
+
ToggleOrientationLock = "web_app_toggle_orientation_lock",
|
|
476
|
+
AddToHomeScreen = "web_app_add_to_home_screen",
|
|
477
|
+
CheckHomeScreen = "web_app_check_home_screen"
|
|
405
478
|
}
|
|
406
479
|
type PopupButton = {
|
|
407
480
|
id: string;
|
|
@@ -511,6 +584,19 @@ type SenderData = {
|
|
|
511
584
|
name: string;
|
|
512
585
|
};
|
|
513
586
|
};
|
|
587
|
+
[MethodRequestSafeArea]: undefined;
|
|
588
|
+
[MethodRequestContentSafeArea]: undefined;
|
|
589
|
+
[MethodRequestFullscreen]: {
|
|
590
|
+
is_full: boolean;
|
|
591
|
+
};
|
|
592
|
+
[MethodExitFullscreen]: {
|
|
593
|
+
is_full: boolean;
|
|
594
|
+
};
|
|
595
|
+
[MethodToggleOrientationLock]: {
|
|
596
|
+
locked: boolean;
|
|
597
|
+
};
|
|
598
|
+
[MethodAddToHomeScreen]: undefined;
|
|
599
|
+
[MethodCheckHomeScreen]: undefined;
|
|
514
600
|
};
|
|
515
601
|
|
|
516
602
|
type Debug = (methondName: string, errorId: number) => void;
|
|
@@ -530,20 +616,4 @@ interface ProviderTWA extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
|
530
616
|
}
|
|
531
617
|
declare const ProviderTWA: Component<ProviderTWA>;
|
|
532
618
|
|
|
533
|
-
|
|
534
|
-
declare const EventClipboardTextReceived = "clipboard_text_received";
|
|
535
|
-
declare const EventCustomMethodInvoked = "custom_method_invoked";
|
|
536
|
-
declare const EventInvoiceClosed = "invoice_closed";
|
|
537
|
-
declare const EventMainButtonPressed = "main_button_pressed";
|
|
538
|
-
declare const EventPhoneRequested = "phone_requested";
|
|
539
|
-
declare const EventPopupClosed = "popup_closed";
|
|
540
|
-
declare const EventReloadIframe = "reload_iframe";
|
|
541
|
-
declare const EventQrTextReceived = "qr_text_received";
|
|
542
|
-
declare const EventScanQrPopupClosed = "scan_qr_popup_closed";
|
|
543
|
-
declare const EventSetCustomStyle = "set_custom_style";
|
|
544
|
-
declare const EventSettingsButtonPressed = "settings_button_pressed";
|
|
545
|
-
declare const EventThemeChanged = "theme_changed";
|
|
546
|
-
declare const EventViewportChanged = "viewport_changed";
|
|
547
|
-
declare const EventWriteAccessRequested = "write_access_requested";
|
|
548
|
-
|
|
549
|
-
export { ContextTwa, EventBackButtonPressed, EventClipboardTextReceived, EventCustomMethodInvoked, EventInvoiceClosed, EventMainButtonPressed, EventPhoneRequested, EventPopupClosed, EventQrTextReceived, EventReloadIframe, EventScanQrPopupClosed, EventSetCustomStyle, EventSettingsButtonPressed, EventThemeChanged, EventViewportChanged, EventWriteAccessRequested, type EventsData, type GetInitData, Method, MethodClose, MethodCloseScanQrPopup, MethodDataSend, MethodExpand, MethodIframeReady, MethodIframeWillReload, MethodInvokeCustomMethod, MethodOpenInvoice, MethodOpenLink, MethodOpenPopup, MethodOpenScanQrPopup, MethodOpenTgLink, MethodReadTextFromClipboard, MethodReady, MethodRequestPhone, MethodRequestTheme, MethodRequestViewport, MethodRequestWriteAccess, MethodSetBackgroundColor, MethodSetBottomBarColor, MethodSetHeaderColor, MethodSetupBackButton, MethodSetupClosingBehavior, MethodSetupMainButton, MethodSetupSettingsButton, MethodSetupSwipeBehavior, MethodShareToStory, MethodSwitchInlineQuery, MethodTriggerHapticFeedback, NOT_SUPPORTED, type PopupButton, ProviderTWA, type SenderData, TG_DESKTOP, TG_PHONE, TG_WEB, type ThemeParams, close as bridgeClose, closeScanQrPopup as bridgeCloseScanQrPopup, dataSend as bridgeDataSend, expand as bridgeExpand, getInitData as bridgeGetInitData, getThemeParams as bridgeGetThemeParams, iframeReady as bridgeIframeReady, iframeWillReload as bridgeIframeWillReload, invokeCustomMethod as bridgeInvokeCustomMethod, openInvoice as bridgeOpenInvoice, openLink as bridgeOpenLink, openPopup as bridgeOpenPopup, openScanQrPopup as bridgeOpenScanQrPopup, openTgLink as bridgeOpenTgLink, readTextFromClipboard as bridgeReadTextFromClipboard, ready as bridgeReady, requestPhone as bridgeRequestPhone, requestTheme as bridgeRequestTheme, requestViewport as bridgeRequestViewport, requestWriteAccess as bridgeRequestWriteAccess, sender as bridgeSend, sessionStorageGet as bridgeSessionStorageGet, sessionStorageSet as bridgeSessionStorageSet, setBackgroundColor as bridgeSetBackgroundColor, setBottomBarColor as bridgeSetBottomBarColor, setHeaderColor as bridgeSetHeaderColor, setupBackButton as bridgeSetupBackButton, setupClosingBehavior as bridgeSetupClosingBehavior, setupMainButton as bridgeSetupMainButton, setupSettingsButton as bridgeSetupSettingsButton, setupSwipeBehavior as bridgeSetupSwipeBehavior, shareToStory as bridgeShareToStory, switchInlineQuery as bridgeSwitchInlineQuery, triggerHapticFeedback as bridgeTriggerHapticFeedback, createIsViewportChanged, debug, getAppData, getPlatform, listener, sender, supportClose, supportCloseScanQrPopup, supportDataSend, supportExpand, supportIframeReady, supportIframeWillReload, supportInvokeCustomMethod, supportOpenInvoice, supportOpenLink, supportOpenPopup, supportOpenScanQrPopup, supportOpenTgLink, supportReadTextFromClipboard, supportReady, supportRequestPhone, supportRequestTheme, supportRequestViewport, supportRequestWriteAccess, supportSessionStorageGet, supportSessionStorageSet, supportSetBackgroundColor, supportSetBottomBarColor, supportSetHeaderColor, supportSetupBackButton, supportSetupClosingBehavior, supportSetupMainButton, supportSetupSettingsButton, supportSetupSwipeBehavior, supportShareToStory, supportSwitchInlineQuery, supportTriggerHapticFeedback };
|
|
619
|
+
export { ContextTwa, EventBackButtonPressed, EventCheckHomeScreen, EventClipboardTextReceived, EventContentSafeAreaChanged, EventCustomMethodInvoked, EventInvoiceClosed, EventMainButtonPressed, EventPhoneRequested, EventPopupClosed, EventQrTextReceived, EventReloadIframe, EventSafeAreaChanged, EventScanQrPopupClosed, EventSetCustomStyle, EventSettingsButtonPressed, EventThemeChanged, EventViewportChanged, EventWriteAccessRequested, type EventsData, type GetInitData, Method, MethodAddToHomeScreen, MethodCheckHomeScreen, MethodClose, MethodCloseScanQrPopup, MethodDataSend, MethodExitFullscreen, MethodExpand, MethodIframeReady, MethodIframeWillReload, MethodInvokeCustomMethod, MethodOpenInvoice, MethodOpenLink, MethodOpenPopup, MethodOpenScanQrPopup, MethodOpenTgLink, MethodReadTextFromClipboard, MethodReady, MethodRequestContentSafeArea, MethodRequestFullscreen, MethodRequestPhone, MethodRequestSafeArea, MethodRequestTheme, MethodRequestViewport, MethodRequestWriteAccess, MethodSetBackgroundColor, MethodSetBottomBarColor, MethodSetHeaderColor, MethodSetupBackButton, MethodSetupClosingBehavior, MethodSetupMainButton, MethodSetupSettingsButton, MethodSetupSwipeBehavior, MethodShareToStory, MethodSwitchInlineQuery, MethodToggleOrientationLock, MethodTriggerHapticFeedback, NOT_SUPPORTED, type PopupButton, ProviderTWA, type SenderData, TG_DESKTOP, TG_PHONE, TG_WEB, type ThemeParams, addToHomeScreen as bridgeAddToHomeScreen, checkHomeScreen as bridgeCheckHomeScreen, close as bridgeClose, closeScanQrPopup as bridgeCloseScanQrPopup, dataSend as bridgeDataSend, expand as bridgeExpand, getInitData as bridgeGetInitData, getThemeParams as bridgeGetThemeParams, iframeReady as bridgeIframeReady, iframeWillReload as bridgeIframeWillReload, invokeCustomMethod as bridgeInvokeCustomMethod, openInvoice as bridgeOpenInvoice, openLink as bridgeOpenLink, openPopup as bridgeOpenPopup, openScanQrPopup as bridgeOpenScanQrPopup, openTgLink as bridgeOpenTgLink, readTextFromClipboard as bridgeReadTextFromClipboard, ready as bridgeReady, requestContentSafeAreaInset as bridgeRequestContentSafeAreaInset, requestPhone as bridgeRequestPhone, requestSafeAreaInset as bridgeRequestSafeAreaInset, requestTheme as bridgeRequestTheme, requestViewport as bridgeRequestViewport, requestWriteAccess as bridgeRequestWriteAccess, sender as bridgeSend, sessionStorageGet as bridgeSessionStorageGet, sessionStorageSet as bridgeSessionStorageSet, setBackgroundColor as bridgeSetBackgroundColor, setBottomBarColor as bridgeSetBottomBarColor, setHeaderColor as bridgeSetHeaderColor, setupBackButton as bridgeSetupBackButton, setupClosingBehavior as bridgeSetupClosingBehavior, setupFullScreen as bridgeSetupFullScreen, setupMainButton as bridgeSetupMainButton, setupOrientation as bridgeSetupOrientation, setupSettingsButton as bridgeSetupSettingsButton, setupSwipeBehavior as bridgeSetupSwipeBehavior, shareToStory as bridgeShareToStory, switchInlineQuery as bridgeSwitchInlineQuery, triggerHapticFeedback as bridgeTriggerHapticFeedback, createIsViewportChanged, debug, getAppData, getPlatform, listener, sender, supportAddToHomeScreen, supportCheckHomeScreen, supportClose, supportCloseScanQrPopup, supportDataSend, supportExpand, supportIframeReady, supportIframeWillReload, supportInvokeCustomMethod, supportOpenInvoice, supportOpenLink, supportOpenPopup, supportOpenScanQrPopup, supportOpenTgLink, supportReadTextFromClipboard, supportReady, supportRequestContentSafeAreaInset, supportRequestPhone, supportRequestSafeAreaInset, supportRequestTheme, supportRequestViewport, supportRequestWriteAccess, supportSessionStorageGet, supportSessionStorageSet, supportSetBackgroundColor, supportSetBottomBarColor, supportSetHeaderColor, supportSetupBackButton, supportSetupClosingBehavior, supportSetupFullScreen, supportSetupMainButton, supportSetupOrientation, supportSetupSettingsButton, supportSetupSwipeBehavior, supportShareToStory, supportSwitchInlineQuery, supportTriggerHapticFeedback };
|
package/solid/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("solid-js"),t=require("solid-js/store");const o="web",s="phone",r="desktop",p=()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppPlatform")??"ios";return["android","ios"].includes(t)?s:["tdesktop","macos"].includes(t)?r:o},a="not_supported",n=(e,t)=>{const o=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppVersion");return Number(o?.replace(".",""))>=Number(String(e)?.replace(".",""))&&-1!==t.indexOf(p())},i=()=>Math.random().toString(36).substring(3,9),u=e=>{var t;if(t=/^\s*#([0-9a-f]{6})\s*$/i.exec(e+=""))return"#"+t[1].toLowerCase();if(t=/^\s*#([0-9a-f])([0-9a-f])([0-9a-f])\s*$/i.exec(e))return("#"+t[1]+t[1]+t[2]+t[2]+t[3]+t[3]).toLowerCase();if(t=/^\s*rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+\.{0,1}\d*))?\)\s*$/.exec(e)){var o=parseInt(t[1]),s=parseInt(t[2]),r=parseInt(t[3]);return"#"+((o<16?"0":"")+o.toString(16))+((s<16?"0":"")+s.toString(16))+((r<16?"0":"")+r.toString(16))}return!1},d=e=>{const t=window.location.hash.slice(1),o=new URLSearchParams(t),s=JSON.parse(o.get("tgWebAppThemeParams")??""),r=e||s;for(var p of Object.keys(r)){var a=u(r[p]);"string"==typeof a&&(r[p]=a)}return"#1c1c1d"==r?.bg_color&&r?.bg_color==r?.secondary_bg_color&&(r.secondary_bg_color="#2c2c2e"),r},c=e=>_()?(he(ve,e),{status:!0}):(le(ve,1),{status:a}),_=()=>n(0,[o,r,s]),x=e=>l()?(he(fe,e),{status:!0}):(le(fe,1),{status:a}),l=()=>n(6.4,[s]),g=e=>h()?(he(ye,e),{status:!0}):(le(ye,1),{status:a}),h=()=>n(0,[o,r,s]),S=e=>b()?(he(Ce,e),{status:!0}):(le(Ce,1),{status:a}),b=()=>n(0,[s]),w=e=>m()?(he(Re,e),{status:!0}):(le(Re,1),{status:a}),m=()=>n(0,[o]),v=()=>f()?(he(Re),{status:!0}):(le(Re,1),{status:a}),f=()=>n(0,[o]),y=async e=>C()?(void 0===e.req_id&&(e.req_id=i()),he(Se,e),new Promise(((t,o)=>{const s=o=>{o.req_id===e.req_id&&(t({status:!0,data:o}),st(je,s))};ot(je,s)}))):(le(Se,1),{status:a}),C=()=>n(6.9,[o,r,s]),R=e=>P()?(he(Be,e),{status:!0}):(le(Be,1),{status:a}),P=()=>n(6.1,[o,r,s]),B=e=>k()?(he(ke,e),{status:!0}):(le(ke,1),{status:a}),k=()=>n(6.4,[o,r,s]),M=async e=>q()?(e.title.length>64&&le(Me,3),e.message.length<1&&le(Me,4),e.message.length>256&&le(Me,5),e.buttons.length<1&&le(Me,6),e.buttons.length>3&&le(Me,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&le(Me,8),he(Me,e),new Promise(((t,o)=>{const s=o=>{t({status:!!e.buttons.find((e=>e.id===o?.button_id)),data:o}),st(Ke,s)};ot(Ke,s)}))):(le(Me,1),{status:a}),q=()=>n(6.2,[o,r,s]),T=async e=>O()?(he(be,e),new Promise(((t,o)=>{rt(Xe,(o=>{e.is_close&&x(),t({status:!0,data:o})})),rt(Ye,(()=>{t({status:"closed"})}))}))):(le(be,1),{status:a}),O=()=>n(6.4,[s]),I=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),E()?(he(qe,e),{status:!0}):(le(qe,1),{status:a})),E=()=>n(7,[o,r,s]),W=async e=>L()?(e||(e={req_id:void 0}),void 0===e.req_id&&(e.req_id=i()),he(we,e),new Promise(((t,o)=>{const s=o=>{o.req_id===e?.req_id&&(t({status:!0,data:o}),st($e,s))};ot($e,s)}))):(le(we,1),{status:a}),L=()=>n(6.4,[o,r,s]),Q=e=>D()?(he(Te,e),{status:!0}):(le(Te,1),{status:a}),D=()=>n(6.9,[o,r,s]),A=async()=>N()?(he(me),new Promise(((e,t)=>{rt(ze,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(le(me,1),{status:a}),N=()=>n(6.9,[o,r,s]),H=e=>F()?(he(Oe,e),{status:!0}):(le(Oe,1),{status:a}),F=()=>n(0,[o,r,s]),V=e=>G()?(he(Ie,e),{status:!0}):(le(Ie,1),{status:a}),G=()=>n(0,[o,r,s]),J=()=>U()?(he(Ee),{status:!0}):(le(Ee,1),{status:a}),U=()=>n(6.9,[o,r,s]),$=e=>j()?(he(We,e),{status:!0}):(le(We,1),{status:a}),j=()=>n(6.1,[o,r,s]),z=e=>K()?(he(Le,e),{status:!0}):(le(Le,1),{status:a}),K=()=>n(6.1,[o,r,s]),X=e=>Y()?(he(Qe,{color:e?.color||e?.color_key}),{status:!0}):(le(Qe,1),{status:a}),Y=()=>n(710,[o,r,s]),Z=e=>ee()?(he(De,e),{status:!0}):(le(De,1),{status:a}),ee=()=>n(6.1,[o,r,s]),te=e=>oe()?(he(Ae,e),{status:!0}):(le(Ae,1),{status:a}),oe=()=>n(0,[o,r,s]),se=e=>re()?(he(Ne,e),{status:!0}):(le(Ne,1),{status:a}),re=()=>n(0,[o,r,s]),pe=e=>ae()?(he(He,e),{status:!0}):(le(He,1),{status:a}),ae=()=>n(6.1,[o,r,s]),ne=e=>ie()?(e.query.length>256&&le(Fe,9),he(Fe,e),{status:!0}):(le(Fe,1),{status:a}),ie=()=>n(6.7,[o,r,s]),ue=e=>de()?(he(Ve,e),{status:!0}):(le(Ve,1),{status:a}),de=()=>n(6.1,[s]),ce=e=>_e()?(he(Ge,e),{status:!0}):(le(Ge,1),{status:a}),_e=()=>n(7.7,[o,r,s]),xe=()=>n(7.8,[o,r,s]),le=(e,t)=>{"development"===process.env.NODE_ENV&&console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)},ge=()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppData");if(!t)return void le("getInitData",2);const o=new URLSearchParams(t);let s={};return o.forEach(((e,t)=>{if(s[t]=e,void 0!==t.match(/^(chat|receiver|user)$/g))try{s[t]=JSON.parse(e)}catch{}})),s},he=(e,t)=>{if(window.TelegramWebviewProxy)window.TelegramWebviewProxy.postEvent(e,JSON.stringify(t));else if(window.external&&"notify"in window.external)window.external.notify(JSON.stringify({eventType:e,eventData:t}));else try{window.parent.postMessage(JSON.stringify({eventType:e,eventData:t}),"*")}catch(e){le("postMessage Iframe",10)}},Se="web_app_invoke_custom_method",be="web_app_open_scan_qr_popup",we="web_app_read_text_from_clipboard",me="web_app_request_phone",ve="web_app_close",fe="web_app_close_scan_qr_popup",ye="web_app_data_send",Ce="web_app_expand",Re="iframe_ready",Pe="iframe_will_reload",Be="web_app_open_invoice",ke="web_app_open_link",Me="web_app_open_popup",qe="web_app_open_tg_link",Te="web_app_ready",Oe="web_app_request_theme",Ie="web_app_request_viewport",Ee="web_app_request_write_access",We="web_app_set_background_color",Le="web_app_set_header_color",Qe="web_app_set_bottom_bar_color",De="web_app_setup_back_button",Ae="web_app_setup_closing_behavior",Ne="web_app_setup_main_button",He="web_app_setup_settings_button",Fe="web_app_switch_inline_query",Ve="web_app_trigger_haptic_feedback",Ge="web_app_setup_swipe_behavior",Je="web_app_share_to_story";var Ue=(e=>(e[e.InvokeCustomMethod=Se]="InvokeCustomMethod",e[e.OpenScanQrPopup=be]="OpenScanQrPopup",e[e.ReadTextFromClipboard=we]="ReadTextFromClipboard",e[e.RequestPhone=me]="RequestPhone",e[e.Close=ve]="Close",e[e.CloseScanQrPopup=fe]="CloseScanQrPopup",e[e.DataSend=ye]="DataSend",e[e.Expand=Ce]="Expand",e[e.IframeReady=Re]="IframeReady",e[e.IframeWillReload=Pe]="IframeWillReload",e[e.OpenInvoice=Be]="OpenInvoice",e[e.OpenLink=ke]="OpenLink",e[e.OpenPopup=Me]="OpenPopup",e[e.OpenTgLink=qe]="OpenTgLink",e[e.Ready=Te]="Ready",e[e.RequestTheme=Oe]="RequestTheme",e[e.RequestViewport=Ie]="RequestViewport",e[e.RequestWriteAccess=Ee]="RequestWriteAccess",e[e.SetBackgroundColor=We]="SetBackgroundColor",e[e.SetHeaderColor=Le]="SetHeaderColor",e[e.SetBottomBarColor=Qe]="SetBottomBarColor",e[e.SetupBackButton=De]="SetupBackButton",e[e.SetupClosingBehavior=Ae]="SetupClosingBehavior",e[e.SetupMainButton=Ne]="SetupMainButton",e[e.SetupSettingsButton=He]="SetupSettingsButton",e[e.SwitchInlineQuery=Fe]="SwitchInlineQuery",e[e.TriggerHapticFeedback=Ve]="TriggerHapticFeedback",e[e.SetupSwipeBehavior=Ge]="SetupSwipeBehavior",e[e.ShareToStory=Je]="ShareToStory",e))(Ue||{});const $e="clipboard_text_received",je="custom_method_invoked",ze="phone_requested",Ke="popup_closed",Xe="qr_text_received",Ye="scan_qr_popup_closed",Ze="theme_changed",et="viewport_changed",tt=((e=new Map)=>({once:(t,o,s=e.get(t),r=e=>{o(e),s&&s.splice(s.indexOf(o)>>>0,1)})=>s?s.push(r):e.set(t,[r]),on:(t,o,s=e.get(t))=>s?s.push(o):e.set(t,[o]),off:(t,o,s=e.get(t))=>s&&o?s.splice(s.indexOf(o)>>>0,1):e.set(t,[]),emit:(t,o,s=e.get(t)||[])=>{for(const e of s)e(o)}}))();(()=>{function e(e,t){e===Ze&&(t.theme_params=d(t.theme_params)),tt.emit(e,t),tt.emit("*",{name:e,data:t})}window.TelegramGameProxy_receiveEvent=e,window.Telegram={WebView:{receiveEvent:e}},window.TelegramGameProxy={receiveEvent:e}})();const ot=(e,t)=>{tt.on(e,t)},st=(e,t)=>{tt.off(e,t)},rt=(e,t)=>{tt.once(e,t)};var pt=Object.freeze({__proto__:null,off:st,on:ot,once:rt});const at=e.createContext({viewport:void 0,theme:void 0,init:void 0});exports.ContextTwa=at,exports.EventBackButtonPressed="back_button_pressed",exports.EventClipboardTextReceived=$e,exports.EventCustomMethodInvoked=je,exports.EventInvoiceClosed="invoice_closed",exports.EventMainButtonPressed="main_button_pressed",exports.EventPhoneRequested=ze,exports.EventPopupClosed=Ke,exports.EventQrTextReceived=Xe,exports.EventReloadIframe="reload_iframe",exports.EventScanQrPopupClosed=Ye,exports.EventSetCustomStyle="set_custom_style",exports.EventSettingsButtonPressed="settings_button_pressed",exports.EventThemeChanged=Ze,exports.EventViewportChanged=et,exports.EventWriteAccessRequested="write_access_requested",exports.Method=Ue,exports.MethodClose=ve,exports.MethodCloseScanQrPopup=fe,exports.MethodDataSend=ye,exports.MethodExpand=Ce,exports.MethodIframeReady=Re,exports.MethodIframeWillReload=Pe,exports.MethodInvokeCustomMethod=Se,exports.MethodOpenInvoice=Be,exports.MethodOpenLink=ke,exports.MethodOpenPopup=Me,exports.MethodOpenScanQrPopup=be,exports.MethodOpenTgLink=qe,exports.MethodReadTextFromClipboard=we,exports.MethodReady=Te,exports.MethodRequestPhone=me,exports.MethodRequestTheme=Oe,exports.MethodRequestViewport=Ie,exports.MethodRequestWriteAccess=Ee,exports.MethodSetBackgroundColor=We,exports.MethodSetBottomBarColor=Qe,exports.MethodSetHeaderColor=Le,exports.MethodSetupBackButton=De,exports.MethodSetupClosingBehavior=Ae,exports.MethodSetupMainButton=Ne,exports.MethodSetupSettingsButton=He,exports.MethodSetupSwipeBehavior=Ge,exports.MethodShareToStory=Je,exports.MethodSwitchInlineQuery=Fe,exports.MethodTriggerHapticFeedback=Ve,exports.NOT_SUPPORTED=a,exports.ProviderTWA=o=>{const[s,r]=t.createStore({viewport:void 0,theme:void 0,init:void 0});return e.createEffect((()=>{const t=()=>{r("init",ge())};t();const o=e=>{t(),r("viewport",{...e,safe_area_bottom:e.is_expanded&&e.is_state_stable?window.outerHeight-e.height:0})};ot(et,o),V();const s=e=>{t(),r("theme",e)};return ot(Ze,s),V(),e.onCleanup((()=>{st(et,o),st(Ze,s)})),()=>{st(et,o),st(Ze,s)}})),at.Provider({value:s,children:o.children})},exports.TG_DESKTOP=r,exports.TG_PHONE=s,exports.TG_WEB=o,exports.bridgeClose=c,exports.bridgeCloseScanQrPopup=x,exports.bridgeDataSend=g,exports.bridgeExpand=S,exports.bridgeGetInitData=ge,exports.bridgeGetThemeParams=d,exports.bridgeIframeReady=w,exports.bridgeIframeWillReload=v,exports.bridgeInvokeCustomMethod=y,exports.bridgeOpenInvoice=R,exports.bridgeOpenLink=B,exports.bridgeOpenPopup=M,exports.bridgeOpenScanQrPopup=T,exports.bridgeOpenTgLink=I,exports.bridgeReadTextFromClipboard=W,exports.bridgeReady=Q,exports.bridgeRequestPhone=A,exports.bridgeRequestTheme=H,exports.bridgeRequestViewport=V,exports.bridgeRequestWriteAccess=J,exports.bridgeSend=he,exports.bridgeSessionStorageGet=({key:e})=>{try{return{is_json:!0,value:JSON.parse(window.sessionStorage.getItem("__telegram__"+e)??""),status:!0}}catch(t){return{is_json:!1,value:window.sessionStorage.getItem("__telegram__"+e)??"",status:!0}}},exports.bridgeSessionStorageSet=({key:e,value:t})=>{try{return window.sessionStorage.setItem("__telegram__"+e,JSON.stringify(t)),{status:!0}}catch(o){return window.sessionStorage.setItem("__telegram__"+e,t),{status:!0}}},exports.bridgeSetBackgroundColor=$,exports.bridgeSetBottomBarColor=X,exports.bridgeSetHeaderColor=z,exports.bridgeSetupBackButton=Z,exports.bridgeSetupClosingBehavior=te,exports.bridgeSetupMainButton=se,exports.bridgeSetupSettingsButton=pe,exports.bridgeSetupSwipeBehavior=ce,exports.bridgeShareToStory=e=>xe()?(he(Je,e),{status:!0}):(le(Je,1),{status:a}),exports.bridgeSwitchInlineQuery=ne,exports.bridgeTriggerHapticFeedback=ue,exports.createIsViewportChanged=()=>{const[t,o]=e.createSignal({height:0,is_expanded:!1,is_state_stable:!1}),s=e=>o(e);return e.onMount((()=>{ot(et,s),he(Ie)})),e.onCleanup((()=>{st(et,s)})),t},exports.debug=le,exports.getAppData=()=>{const e=window.location.hash.slice(1);return new URLSearchParams(e).get("tgWebAppData")},exports.getPlatform=p,exports.listener=pt,exports.sender=he,exports.supportClose=_,exports.supportCloseScanQrPopup=l,exports.supportDataSend=h,exports.supportExpand=b,exports.supportIframeReady=m,exports.supportIframeWillReload=f,exports.supportInvokeCustomMethod=C,exports.supportOpenInvoice=P,exports.supportOpenLink=k,exports.supportOpenPopup=q,exports.supportOpenScanQrPopup=O,exports.supportOpenTgLink=E,exports.supportReadTextFromClipboard=L,exports.supportReady=D,exports.supportRequestPhone=N,exports.supportRequestTheme=F,exports.supportRequestViewport=G,exports.supportRequestWriteAccess=U,exports.supportSessionStorageGet=()=>!0,exports.supportSessionStorageSet=()=>!0,exports.supportSetBackgroundColor=j,exports.supportSetBottomBarColor=Y,exports.supportSetHeaderColor=K,exports.supportSetupBackButton=ee,exports.supportSetupClosingBehavior=oe,exports.supportSetupMainButton=re,exports.supportSetupSettingsButton=ae,exports.supportSetupSwipeBehavior=_e,exports.supportShareToStory=xe,exports.supportSwitchInlineQuery=ie,exports.supportTriggerHapticFeedback=de;
|
|
1
|
+
"use strict";var e=require("solid-js"),t=require("solid-js/store");const o="web",s="phone",r="desktop",p=()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppPlatform")??"ios";return["android","ios"].includes(t)?s:["tdesktop","macos"].includes(t)?r:o},a="not_supported",n=(e,t)=>{const o=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppVersion");return Number(o?.replace(".",""))>=Number(String(e)?.replace(".",""))&&-1!==t.indexOf(p())},i=()=>Math.random().toString(36).substring(3,9),u=e=>{var t;if(t=/^\s*#([0-9a-f]{6})\s*$/i.exec(e+=""))return"#"+t[1].toLowerCase();if(t=/^\s*#([0-9a-f])([0-9a-f])([0-9a-f])\s*$/i.exec(e))return("#"+t[1]+t[1]+t[2]+t[2]+t[3]+t[3]).toLowerCase();if(t=/^\s*rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+\.{0,1}\d*))?\)\s*$/.exec(e)){var o=parseInt(t[1]),s=parseInt(t[2]),r=parseInt(t[3]);return"#"+((o<16?"0":"")+o.toString(16))+((s<16?"0":"")+s.toString(16))+((r<16?"0":"")+r.toString(16))}return!1},d=e=>{const t=window.location.hash.slice(1),o=new URLSearchParams(t),s=JSON.parse(o.get("tgWebAppThemeParams")??""),r=e||s;for(var p of Object.keys(r)){var a=u(r[p]);"string"==typeof a&&(r[p]=a)}return"#1c1c1d"==r?.bg_color&&r?.bg_color==r?.secondary_bg_color&&(r.secondary_bg_color="#2c2c2e"),r},c=e=>_()?(fe(ye,e),{status:!0}):(me(ye,1),{status:a}),_=()=>n(0,[o,r,s]),l=e=>x()?(fe(Me,e),{status:!0}):(me(Me,1),{status:a}),x=()=>n(6.4,[s]),g=e=>h()?(fe(Te,e),{status:!0}):(me(Te,1),{status:a}),h=()=>n(0,[o,r,s]),S=e=>b()?(fe(Pe,e),{status:!0}):(me(Pe,1),{status:a}),b=()=>n(0,[s]),w=e=>m()?(fe(Be,e),{status:!0}):(me(Be,1),{status:a}),m=()=>n(0,[o]),v=()=>f()?(fe(Be),{status:!0}):(me(Be,1),{status:a}),f=()=>n(0,[o]),C=async e=>R()?(void 0===e.req_id&&(e.req_id=i()),fe(Ce,e),new Promise(((t,o)=>{const s=o=>{o.req_id===e.req_id&&(t({status:!0,data:o}),St(nt,s))};ht(nt,s)}))):(me(Ce,1),{status:a}),R=()=>n(6.9,[o,r,s]),q=e=>k()?(fe(Ie,e),{status:!0}):(me(Ie,1),{status:a}),k=()=>n(6.1,[o,r,s]),y=e=>M()?(fe(Ee,e),{status:!0}):(me(Ee,1),{status:a}),M=()=>n(6.4,[o,r,s]),T=async e=>P()?(e.title.length>64&&me(Ae,3),e.message.length<1&&me(Ae,4),e.message.length>256&&me(Ae,5),e.buttons.length<1&&me(Ae,6),e.buttons.length>3&&me(Ae,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&me(Ae,8),fe(Ae,e),new Promise(((t,o)=>{const s=o=>{t({status:!!e.buttons.find((e=>e.id===o?.button_id)),data:o}),St(ut,s)};ht(ut,s)}))):(me(Ae,1),{status:a}),P=()=>n(6.2,[o,r,s]),B=async e=>O()?(fe(Re,e),new Promise(((t,o)=>{bt(dt,(o=>{e.is_close&&l(),t({status:!0,data:o})})),bt(ct,(()=>{t({status:"closed"})}))}))):(me(Re,1),{status:a}),O=()=>n(6.4,[s]),I=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),E()?(fe(He,e),{status:!0}):(me(He,1),{status:a})),E=()=>n(7,[o,r,s]),A=async e=>H()?(e||(e={req_id:void 0}),void 0===e.req_id&&(e.req_id=i()),fe(qe,e),new Promise(((t,o)=>{const s=o=>{o.req_id===e?.req_id&&(t({status:!0,data:o}),St(at,s))};ht(at,s)}))):(me(qe,1),{status:a}),H=()=>n(6.4,[o,r,s]),L=e=>W()?(fe(Le,e),{status:!0}):(me(Le,1),{status:a}),W=()=>n(6.9,[o,r,s]),F=async()=>Q()?(fe(ke),new Promise(((e,t)=>{bt(it,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(me(ke,1),{status:a}),Q=()=>n(6.9,[o,r,s]),D=e=>N()?(fe(We,e),{status:!0}):(me(We,1),{status:a}),N=()=>n(0,[o,r,s]),V=e=>G()?(fe(Fe,e),{status:!0}):(me(Fe,1),{status:a}),G=()=>n(0,[o,r,s]),J=()=>U()?(fe(Qe),{status:!0}):(me(Qe,1),{status:a}),U=()=>n(6.9,[o,r,s]),$=e=>j()?(fe(De,e),{status:!0}):(me(De,1),{status:a}),j=()=>n(6.1,[o,r,s]),z=e=>K()?(fe(Ne,e),{status:!0}):(me(Ne,1),{status:a}),K=()=>n(6.1,[o,r,s]),X=e=>Y()?(fe(Ve,{color:e?.color||e?.color_key}),{status:!0}):(me(Ve,1),{status:a}),Y=()=>n(710,[o,r,s]),Z=e=>ee()?(fe(Ge,e),{status:!0}):(me(Ge,1),{status:a}),ee=()=>n(6.1,[o,r,s]),te=e=>oe()?(fe(Je,e),{status:!0}):(me(Je,1),{status:a}),oe=()=>n(0,[o,r,s]),se=e=>re()?(fe(Ue,e),{status:!0}):(me(Ue,1),{status:a}),re=()=>n(0,[o,r,s]),pe=e=>ae()?(fe($e,e),{status:!0}):(me($e,1),{status:a}),ae=()=>n(6.1,[o,r,s]),ne=e=>ie()?(e.query.length>256&&me(je,9),fe(je,e),{status:!0}):(me(je,1),{status:a}),ie=()=>n(6.7,[o,r,s]),ue=e=>de()?(fe(ze,e),{status:!0}):(me(ze,1),{status:a}),de=()=>n(6.1,[s]),ce=e=>_e()?(fe(Ke,e),{status:!0}):(me(Ke,1),{status:a}),_e=()=>n(7.7,[o,r,s]),le=()=>n(7.8,[o,r,s]),xe=()=>n(8,[r,s]),ge=()=>n(8,[r,s]),he=()=>n(8,[o,r,s]),Se=()=>n(8,[o,r,s]),be=()=>n(8,[o,r,s]),we=()=>n(8,[o,r,s]),me=(e,t)=>{"development"===process.env.NODE_ENV&&console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)},ve=()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppData");if(!t)return void me("getInitData",2);const o=new URLSearchParams(t);let s={};return o.forEach(((e,t)=>{if(s[t]=e,void 0!==t.match(/^(chat|receiver|user)$/g))try{s[t]=JSON.parse(e)}catch{}})),s},fe=(e,t)=>{if(window.TelegramWebviewProxy)window.TelegramWebviewProxy.postEvent(e,JSON.stringify(t));else if(window.external&&"notify"in window.external)window.external.notify(JSON.stringify({eventType:e,eventData:t}));else try{window.parent.postMessage(JSON.stringify({eventType:e,eventData:t}),"*")}catch(e){me("postMessage Iframe",10)}},Ce="web_app_invoke_custom_method",Re="web_app_open_scan_qr_popup",qe="web_app_read_text_from_clipboard",ke="web_app_request_phone",ye="web_app_close",Me="web_app_close_scan_qr_popup",Te="web_app_data_send",Pe="web_app_expand",Be="iframe_ready",Oe="iframe_will_reload",Ie="web_app_open_invoice",Ee="web_app_open_link",Ae="web_app_open_popup",He="web_app_open_tg_link",Le="web_app_ready",We="web_app_request_theme",Fe="web_app_request_viewport",Qe="web_app_request_write_access",De="web_app_set_background_color",Ne="web_app_set_header_color",Ve="web_app_set_bottom_bar_color",Ge="web_app_setup_back_button",Je="web_app_setup_closing_behavior",Ue="web_app_setup_main_button",$e="web_app_setup_settings_button",je="web_app_switch_inline_query",ze="web_app_trigger_haptic_feedback",Ke="web_app_setup_swipe_behavior",Xe="web_app_share_to_story",Ye="web_app_request_safe_area",Ze="web_app_request_content_safe_area",et="web_app_request_fullscreen",tt="web_app_exit_fullscreen",ot="web_app_toggle_orientation_lock",st="web_app_add_to_home_screen",rt="web_app_check_home_screen";var pt=(e=>(e[e.InvokeCustomMethod=Ce]="InvokeCustomMethod",e[e.OpenScanQrPopup=Re]="OpenScanQrPopup",e[e.ReadTextFromClipboard=qe]="ReadTextFromClipboard",e[e.RequestPhone=ke]="RequestPhone",e[e.Close=ye]="Close",e[e.CloseScanQrPopup=Me]="CloseScanQrPopup",e[e.DataSend=Te]="DataSend",e[e.Expand=Pe]="Expand",e[e.IframeReady=Be]="IframeReady",e[e.IframeWillReload=Oe]="IframeWillReload",e[e.OpenInvoice=Ie]="OpenInvoice",e[e.OpenLink=Ee]="OpenLink",e[e.OpenPopup=Ae]="OpenPopup",e[e.OpenTgLink=He]="OpenTgLink",e[e.Ready=Le]="Ready",e[e.RequestTheme=We]="RequestTheme",e[e.RequestViewport=Fe]="RequestViewport",e[e.RequestWriteAccess=Qe]="RequestWriteAccess",e[e.SetBackgroundColor=De]="SetBackgroundColor",e[e.SetHeaderColor=Ne]="SetHeaderColor",e[e.SetBottomBarColor=Ve]="SetBottomBarColor",e[e.SetupBackButton=Ge]="SetupBackButton",e[e.SetupClosingBehavior=Je]="SetupClosingBehavior",e[e.SetupMainButton=Ue]="SetupMainButton",e[e.SetupSettingsButton=$e]="SetupSettingsButton",e[e.SwitchInlineQuery=je]="SwitchInlineQuery",e[e.TriggerHapticFeedback=ze]="TriggerHapticFeedback",e[e.SetupSwipeBehavior=Ke]="SetupSwipeBehavior",e[e.ShareToStory=Xe]="ShareToStory",e[e.RequestSafeArea=Ye]="RequestSafeArea",e[e.RequestContentSafeArea=Ze]="RequestContentSafeArea",e[e.RequestFullscreen=et]="RequestFullscreen",e[e.ExitFullscreen=tt]="ExitFullscreen",e[e.ToggleOrientationLock=ot]="ToggleOrientationLock",e[e.AddToHomeScreen=st]="AddToHomeScreen",e[e.CheckHomeScreen=rt]="CheckHomeScreen",e))(pt||{});const at="clipboard_text_received",nt="custom_method_invoked",it="phone_requested",ut="popup_closed",dt="qr_text_received",ct="scan_qr_popup_closed",_t="theme_changed",lt="viewport_changed",xt="web_app_check_home_screen",gt=((e=new Map)=>({once:(t,o,s=e.get(t),r=e=>{o(e),s&&s.splice(s.indexOf(o)>>>0,1)})=>s?s.push(r):e.set(t,[r]),on:(t,o,s=e.get(t))=>s?s.push(o):e.set(t,[o]),off:(t,o,s=e.get(t))=>s&&o?s.splice(s.indexOf(o)>>>0,1):e.set(t,[]),emit:(t,o,s=e.get(t)||[])=>{for(const e of s)e(o)}}))();(()=>{function e(e,t){e===_t&&(t.theme_params=d(t.theme_params)),gt.emit(e,t),gt.emit("*",{name:e,data:t})}window.TelegramGameProxy_receiveEvent=e,window.Telegram={WebView:{receiveEvent:e}},window.TelegramGameProxy={receiveEvent:e}})();const ht=(e,t)=>{gt.on(e,t)},St=(e,t)=>{gt.off(e,t)},bt=(e,t)=>{gt.once(e,t)};var wt=Object.freeze({__proto__:null,off:St,on:ht,once:bt});const mt=e.createContext({viewport:void 0,theme:void 0,init:void 0});exports.ContextTwa=mt,exports.EventBackButtonPressed="back_button_pressed",exports.EventCheckHomeScreen=xt,exports.EventClipboardTextReceived=at,exports.EventContentSafeAreaChanged="content_safe_area_changed",exports.EventCustomMethodInvoked=nt,exports.EventInvoiceClosed="invoice_closed",exports.EventMainButtonPressed="main_button_pressed",exports.EventPhoneRequested=it,exports.EventPopupClosed=ut,exports.EventQrTextReceived=dt,exports.EventReloadIframe="reload_iframe",exports.EventSafeAreaChanged="safe_area_changed",exports.EventScanQrPopupClosed=ct,exports.EventSetCustomStyle="set_custom_style",exports.EventSettingsButtonPressed="settings_button_pressed",exports.EventThemeChanged=_t,exports.EventViewportChanged=lt,exports.EventWriteAccessRequested="write_access_requested",exports.Method=pt,exports.MethodAddToHomeScreen=st,exports.MethodCheckHomeScreen=rt,exports.MethodClose=ye,exports.MethodCloseScanQrPopup=Me,exports.MethodDataSend=Te,exports.MethodExitFullscreen=tt,exports.MethodExpand=Pe,exports.MethodIframeReady=Be,exports.MethodIframeWillReload=Oe,exports.MethodInvokeCustomMethod=Ce,exports.MethodOpenInvoice=Ie,exports.MethodOpenLink=Ee,exports.MethodOpenPopup=Ae,exports.MethodOpenScanQrPopup=Re,exports.MethodOpenTgLink=He,exports.MethodReadTextFromClipboard=qe,exports.MethodReady=Le,exports.MethodRequestContentSafeArea=Ze,exports.MethodRequestFullscreen=et,exports.MethodRequestPhone=ke,exports.MethodRequestSafeArea=Ye,exports.MethodRequestTheme=We,exports.MethodRequestViewport=Fe,exports.MethodRequestWriteAccess=Qe,exports.MethodSetBackgroundColor=De,exports.MethodSetBottomBarColor=Ve,exports.MethodSetHeaderColor=Ne,exports.MethodSetupBackButton=Ge,exports.MethodSetupClosingBehavior=Je,exports.MethodSetupMainButton=Ue,exports.MethodSetupSettingsButton=$e,exports.MethodSetupSwipeBehavior=Ke,exports.MethodShareToStory=Xe,exports.MethodSwitchInlineQuery=je,exports.MethodToggleOrientationLock=ot,exports.MethodTriggerHapticFeedback=ze,exports.NOT_SUPPORTED=a,exports.ProviderTWA=o=>{const[s,r]=t.createStore({viewport:void 0,theme:void 0,init:void 0});return e.createEffect((()=>{const t=()=>{r("init",ve())};t();const o=e=>{t(),r("viewport",{...e,safe_area_bottom:e.is_expanded&&e.is_state_stable?window.outerHeight-e.height:0})};ht(lt,o),V();const s=e=>{t(),r("theme",e)};return ht(_t,s),V(),e.onCleanup((()=>{St(lt,o),St(_t,s)})),()=>{St(lt,o),St(_t,s)}})),mt.Provider({value:s,children:o.children})},exports.TG_DESKTOP=r,exports.TG_PHONE=s,exports.TG_WEB=o,exports.bridgeAddToHomeScreen=()=>ge()?(fe(st),{status:!0}):(me(st,1),{status:a}),exports.bridgeCheckHomeScreen=async e=>xe()?(fe(rt,e),new Promise(((e,t)=>{const o=t=>{e({status:!0,data:t}),St(xt,o)};ht(xt,o)}))):(me(rt,1),{status:a,data:void 0}),exports.bridgeClose=c,exports.bridgeCloseScanQrPopup=l,exports.bridgeDataSend=g,exports.bridgeExpand=S,exports.bridgeGetInitData=ve,exports.bridgeGetThemeParams=d,exports.bridgeIframeReady=w,exports.bridgeIframeWillReload=v,exports.bridgeInvokeCustomMethod=C,exports.bridgeOpenInvoice=q,exports.bridgeOpenLink=y,exports.bridgeOpenPopup=T,exports.bridgeOpenScanQrPopup=B,exports.bridgeOpenTgLink=I,exports.bridgeReadTextFromClipboard=A,exports.bridgeReady=L,exports.bridgeRequestContentSafeAreaInset=()=>Se()?(fe(Ze),{status:!0}):(me(Ze,1),{status:a}),exports.bridgeRequestPhone=F,exports.bridgeRequestSafeAreaInset=()=>he()?(fe(Ye),{status:!0}):(me(Ye,1),{status:a}),exports.bridgeRequestTheme=D,exports.bridgeRequestViewport=V,exports.bridgeRequestWriteAccess=J,exports.bridgeSend=fe,exports.bridgeSessionStorageGet=({key:e})=>{try{return{is_json:!0,value:JSON.parse(window.sessionStorage.getItem("__telegram__"+e)??""),status:!0}}catch(t){return{is_json:!1,value:window.sessionStorage.getItem("__telegram__"+e)??"",status:!0}}},exports.bridgeSessionStorageSet=({key:e,value:t})=>{try{return window.sessionStorage.setItem("__telegram__"+e,JSON.stringify(t)),{status:!0}}catch(o){return window.sessionStorage.setItem("__telegram__"+e,t),{status:!0}}},exports.bridgeSetBackgroundColor=$,exports.bridgeSetBottomBarColor=X,exports.bridgeSetHeaderColor=z,exports.bridgeSetupBackButton=Z,exports.bridgeSetupClosingBehavior=te,exports.bridgeSetupFullScreen=e=>{const t=e?.is_full||!1;return be()?(fe(t?et:tt),{status:!0}):(me(t?et:tt,1),{status:a})},exports.bridgeSetupMainButton=se,exports.bridgeSetupOrientation=e=>we()?(fe(ot),{status:!0}):(me(ot,1),{status:a}),exports.bridgeSetupSettingsButton=pe,exports.bridgeSetupSwipeBehavior=ce,exports.bridgeShareToStory=e=>le()?(fe(Xe,e),{status:!0}):(me(Xe,1),{status:a}),exports.bridgeSwitchInlineQuery=ne,exports.bridgeTriggerHapticFeedback=ue,exports.createIsViewportChanged=()=>{const[t,o]=e.createSignal({height:0,is_expanded:!1,is_state_stable:!1}),s=e=>o(e);return e.onMount((()=>{ht(lt,s),fe(Fe)})),e.onCleanup((()=>{St(lt,s)})),t},exports.debug=me,exports.getAppData=()=>{const e=window.location.hash.slice(1);return new URLSearchParams(e).get("tgWebAppData")},exports.getPlatform=p,exports.listener=wt,exports.sender=fe,exports.supportAddToHomeScreen=ge,exports.supportCheckHomeScreen=xe,exports.supportClose=_,exports.supportCloseScanQrPopup=x,exports.supportDataSend=h,exports.supportExpand=b,exports.supportIframeReady=m,exports.supportIframeWillReload=f,exports.supportInvokeCustomMethod=R,exports.supportOpenInvoice=k,exports.supportOpenLink=M,exports.supportOpenPopup=P,exports.supportOpenScanQrPopup=O,exports.supportOpenTgLink=E,exports.supportReadTextFromClipboard=H,exports.supportReady=W,exports.supportRequestContentSafeAreaInset=Se,exports.supportRequestPhone=Q,exports.supportRequestSafeAreaInset=he,exports.supportRequestTheme=N,exports.supportRequestViewport=G,exports.supportRequestWriteAccess=U,exports.supportSessionStorageGet=()=>!0,exports.supportSessionStorageSet=()=>!0,exports.supportSetBackgroundColor=j,exports.supportSetBottomBarColor=Y,exports.supportSetHeaderColor=K,exports.supportSetupBackButton=ee,exports.supportSetupClosingBehavior=oe,exports.supportSetupFullScreen=be,exports.supportSetupMainButton=re,exports.supportSetupOrientation=we,exports.supportSetupSettingsButton=ae,exports.supportSetupSwipeBehavior=_e,exports.supportShareToStory=le,exports.supportSwitchInlineQuery=ie,exports.supportTriggerHapticFeedback=de;
|
package/solid/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createSignal as e,onMount as t,onCleanup as s,createContext as a,createEffect as o}from"solid-js";import{createStore as r}from"solid-js/store";const n=()=>{const[a,o]=e({height:0,is_expanded:!1,is_state_stable:!1}),r=e=>o(e);return t((()=>{St(wt,r),Re($e)})),s((()=>{vt(wt,r)})),a},i="web",p="phone",u="desktop",_=()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppPlatform")??"ios";return["android","ios"].includes(t)?p:["tdesktop","macos"].includes(t)?u:i},d="not_supported",c=(e,t)=>{const s=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppVersion");return Number(s?.replace(".",""))>=Number(String(e)?.replace(".",""))&&-1!==t.indexOf(_())},g=()=>Math.random().toString(36).substring(3,9),l=e=>{var t;if(t=/^\s*#([0-9a-f]{6})\s*$/i.exec(e+=""))return"#"+t[1].toLowerCase();if(t=/^\s*#([0-9a-f])([0-9a-f])([0-9a-f])\s*$/i.exec(e))return("#"+t[1]+t[1]+t[2]+t[2]+t[3]+t[3]).toLowerCase();if(t=/^\s*rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+\.{0,1}\d*))?\)\s*$/.exec(e)){var s=parseInt(t[1]),a=parseInt(t[2]),o=parseInt(t[3]);return"#"+((s<16?"0":"")+s.toString(16))+((a<16?"0":"")+a.toString(16))+((o<16?"0":"")+o.toString(16))}return!1},b=e=>{const t=window.location.hash.slice(1),s=new URLSearchParams(t),a=JSON.parse(s.get("tgWebAppThemeParams")??""),o=e||a;for(var r of Object.keys(o)){var n=l(o[r]);"string"==typeof n&&(o[r]=n)}return"#1c1c1d"==o?.bg_color&&o?.bg_color==o?.secondary_bg_color&&(o.secondary_bg_color="#2c2c2e"),o},w=e=>m()?(Re(Ie,e),{status:!0}):(qe(Ie,1),{status:d}),m=()=>c(0,[i,u,p]),h=e=>S()?(Re(Te,e),{status:!0}):(qe(Te,1),{status:d}),S=()=>c(6.4,[p]),v=e=>f()?(Re(Le,e),{status:!0}):(qe(Le,1),{status:d}),f=()=>c(0,[i,u,p]),y=e=>k()?(Re(We,e),{status:!0}):(qe(We,1),{status:d}),k=()=>c(0,[p]),q=e=>P()?(Re(Ne,e),{status:!0}):(qe(Ne,1),{status:d}),P=()=>c(0,[i]),R=()=>O()?(Re(Ne),{status:!0}):(qe(Ne,1),{status:d}),O=()=>c(0,[i]),x=async e=>B()?(void 0===e.req_id&&(e.req_id=g()),Re(Oe,e),new Promise(((t,s)=>{const a=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),vt(rt,a))};St(rt,a)}))):(qe(Oe,1),{status:d}),B=()=>c(6.9,[i,u,p]),C=e=>I()?(Re(Ee,e),{status:!0}):(qe(Ee,1),{status:d}),I=()=>c(6.1,[i,u,p]),T=e=>L()?(Re(Me,e),{status:!0}):(qe(Me,1),{status:d}),L=()=>c(6.4,[i,u,p]),W=async e=>N()?(e.title.length>64&&qe(Qe,3),e.message.length<1&&qe(Qe,4),e.message.length>256&&qe(Qe,5),e.buttons.length<1&&qe(Qe,6),e.buttons.length>3&&qe(Qe,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&qe(Qe,8),Re(Qe,e),new Promise(((t,s)=>{const a=s=>{t({status:!!e.buttons.find((e=>e.id===s?.button_id)),data:s}),vt(ut,a)};St(ut,a)}))):(qe(Qe,1),{status:d}),N=()=>c(6.2,[i,u,p]),D=async e=>E()?(Re(xe,e),new Promise(((t,s)=>{ft(dt,(s=>{e.is_close&&h(),t({status:!0,data:s})})),ft(ct,(()=>{t({status:"closed"})}))}))):(qe(xe,1),{status:d}),E=()=>c(6.4,[p]),M=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),Q()?(Re(Ae,e),{status:!0}):(qe(Ae,1),{status:d})),Q=()=>c(7,[i,u,p]),A=async e=>H()?(e||(e={req_id:void 0}),void 0===e.req_id&&(e.req_id=g()),Re(Be,e),new Promise(((t,s)=>{const a=s=>{s.req_id===e?.req_id&&(t({status:!0,data:s}),vt(ot,a))};St(ot,a)}))):(qe(Be,1),{status:d}),H=()=>c(6.4,[i,u,p]),J=e=>$()?(Re(He,e),{status:!0}):(qe(He,1),{status:d}),$=()=>c(6.9,[i,u,p]),j=async()=>F()?(Re(Ce),new Promise(((e,t)=>{ft(pt,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(qe(Ce,1),{status:d}),F=()=>c(6.9,[i,u,p]),U=e=>V()?(Re(Je,e),{status:!0}):(qe(Je,1),{status:d}),V=()=>c(0,[i,u,p]),G=e=>z()?(Re($e,e),{status:!0}):(qe($e,1),{status:d}),z=()=>c(0,[i,u,p]),K=()=>X()?(Re(je),{status:!0}):(qe(je,1),{status:d}),X=()=>c(6.9,[i,u,p]),Y=e=>Z()?(Re(Fe,e),{status:!0}):(qe(Fe,1),{status:d}),Z=()=>c(6.1,[i,u,p]),ee=e=>te()?(Re(Ue,e),{status:!0}):(qe(Ue,1),{status:d}),te=()=>c(6.1,[i,u,p]),se=e=>ae()?(Re(Ve,{color:e?.color||e?.color_key}),{status:!0}):(qe(Ve,1),{status:d}),ae=()=>c(710,[i,u,p]),oe=e=>re()?(Re(Ge,e),{status:!0}):(qe(Ge,1),{status:d}),re=()=>c(6.1,[i,u,p]),ne=e=>ie()?(Re(ze,e),{status:!0}):(qe(ze,1),{status:d}),ie=()=>c(0,[i,u,p]),pe=e=>ue()?(Re(Ke,e),{status:!0}):(qe(Ke,1),{status:d}),ue=()=>c(0,[i,u,p]),_e=e=>de()?(Re(Xe,e),{status:!0}):(qe(Xe,1),{status:d}),de=()=>c(6.1,[i,u,p]),ce=e=>ge()?(e.query.length>256&&qe(Ye,9),Re(Ye,e),{status:!0}):(qe(Ye,1),{status:d}),ge=()=>c(6.7,[i,u,p]),le=e=>be()?(Re(Ze,e),{status:!0}):(qe(Ze,1),{status:d}),be=()=>c(6.1,[p]),we=({key:e,value:t})=>{try{return window.sessionStorage.setItem("__telegram__"+e,JSON.stringify(t)),{status:!0}}catch(s){return window.sessionStorage.setItem("__telegram__"+e,t),{status:!0}}},me=()=>!0,he=({key:e})=>{try{return{is_json:!0,value:JSON.parse(window.sessionStorage.getItem("__telegram__"+e)??""),status:!0}}catch(t){return{is_json:!1,value:window.sessionStorage.getItem("__telegram__"+e)??"",status:!0}}},Se=()=>!0,ve=e=>fe()?(Re(et,e),{status:!0}):(qe(et,1),{status:d}),fe=()=>c(7.7,[i,u,p]),ye=e=>ke()?(Re(tt,e),{status:!0}):(qe(tt,1),{status:d}),ke=()=>c(7.8,[i,u,p]),qe=(e,t)=>{"development"===process.env.NODE_ENV&&console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)},Pe=()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppData");if(!t)return void qe("getInitData",2);const s=new URLSearchParams(t);let a={};return s.forEach(((e,t)=>{if(a[t]=e,void 0!==t.match(/^(chat|receiver|user)$/g))try{a[t]=JSON.parse(e)}catch{}})),a},Re=(e,t)=>{if(window.TelegramWebviewProxy)window.TelegramWebviewProxy.postEvent(e,JSON.stringify(t));else if(window.external&&"notify"in window.external)window.external.notify(JSON.stringify({eventType:e,eventData:t}));else try{window.parent.postMessage(JSON.stringify({eventType:e,eventData:t}),"*")}catch(e){qe("postMessage Iframe",10)}},Oe="web_app_invoke_custom_method",xe="web_app_open_scan_qr_popup",Be="web_app_read_text_from_clipboard",Ce="web_app_request_phone",Ie="web_app_close",Te="web_app_close_scan_qr_popup",Le="web_app_data_send",We="web_app_expand",Ne="iframe_ready",De="iframe_will_reload",Ee="web_app_open_invoice",Me="web_app_open_link",Qe="web_app_open_popup",Ae="web_app_open_tg_link",He="web_app_ready",Je="web_app_request_theme",$e="web_app_request_viewport",je="web_app_request_write_access",Fe="web_app_set_background_color",Ue="web_app_set_header_color",Ve="web_app_set_bottom_bar_color",Ge="web_app_setup_back_button",ze="web_app_setup_closing_behavior",Ke="web_app_setup_main_button",Xe="web_app_setup_settings_button",Ye="web_app_switch_inline_query",Ze="web_app_trigger_haptic_feedback",et="web_app_setup_swipe_behavior",tt="web_app_share_to_story";var st=(e=>(e[e.InvokeCustomMethod=Oe]="InvokeCustomMethod",e[e.OpenScanQrPopup=xe]="OpenScanQrPopup",e[e.ReadTextFromClipboard=Be]="ReadTextFromClipboard",e[e.RequestPhone=Ce]="RequestPhone",e[e.Close=Ie]="Close",e[e.CloseScanQrPopup=Te]="CloseScanQrPopup",e[e.DataSend=Le]="DataSend",e[e.Expand=We]="Expand",e[e.IframeReady=Ne]="IframeReady",e[e.IframeWillReload=De]="IframeWillReload",e[e.OpenInvoice=Ee]="OpenInvoice",e[e.OpenLink=Me]="OpenLink",e[e.OpenPopup=Qe]="OpenPopup",e[e.OpenTgLink=Ae]="OpenTgLink",e[e.Ready=He]="Ready",e[e.RequestTheme=Je]="RequestTheme",e[e.RequestViewport=$e]="RequestViewport",e[e.RequestWriteAccess=je]="RequestWriteAccess",e[e.SetBackgroundColor=Fe]="SetBackgroundColor",e[e.SetHeaderColor=Ue]="SetHeaderColor",e[e.SetBottomBarColor=Ve]="SetBottomBarColor",e[e.SetupBackButton=Ge]="SetupBackButton",e[e.SetupClosingBehavior=ze]="SetupClosingBehavior",e[e.SetupMainButton=Ke]="SetupMainButton",e[e.SetupSettingsButton=Xe]="SetupSettingsButton",e[e.SwitchInlineQuery=Ye]="SwitchInlineQuery",e[e.TriggerHapticFeedback=Ze]="TriggerHapticFeedback",e[e.SetupSwipeBehavior=et]="SetupSwipeBehavior",e[e.ShareToStory=tt]="ShareToStory",e))(st||{});const at="back_button_pressed",ot="clipboard_text_received",rt="custom_method_invoked",nt="invoice_closed",it="main_button_pressed",pt="phone_requested",ut="popup_closed",_t="reload_iframe",dt="qr_text_received",ct="scan_qr_popup_closed",gt="set_custom_style",lt="settings_button_pressed",bt="theme_changed",wt="viewport_changed",mt="write_access_requested",ht=((e=new Map)=>({once:(t,s,a=e.get(t),o=e=>{s(e),a&&a.splice(a.indexOf(s)>>>0,1)})=>a?a.push(o):e.set(t,[o]),on:(t,s,a=e.get(t))=>a?a.push(s):e.set(t,[s]),off:(t,s,a=e.get(t))=>a&&s?a.splice(a.indexOf(s)>>>0,1):e.set(t,[]),emit:(t,s,a=e.get(t)||[])=>{for(const e of a)e(s)}}))();(()=>{function e(e,t){e===bt&&(t.theme_params=b(t.theme_params)),ht.emit(e,t),ht.emit("*",{name:e,data:t})}window.TelegramGameProxy_receiveEvent=e,window.Telegram={WebView:{receiveEvent:e}},window.TelegramGameProxy={receiveEvent:e}})();const St=(e,t)=>{ht.on(e,t)},vt=(e,t)=>{ht.off(e,t)},ft=(e,t)=>{ht.once(e,t)};var yt=Object.freeze({__proto__:null,off:vt,on:St,once:ft});const kt=()=>{const e=window.location.hash.slice(1);return new URLSearchParams(e).get("tgWebAppData")},qt=a({viewport:void 0,theme:void 0,init:void 0}),Pt=e=>{const[t,a]=r({viewport:void 0,theme:void 0,init:void 0});return o((()=>{const e=()=>{a("init",Pe())};e();const t=t=>{e(),a("viewport",{...t,safe_area_bottom:t.is_expanded&&t.is_state_stable?window.outerHeight-t.height:0})};St(wt,t),G();const o=t=>{e(),a("theme",t)};return St(bt,o),G(),s((()=>{vt(wt,t),vt(bt,o)})),()=>{vt(wt,t),vt(bt,o)}})),qt.Provider({value:t,children:e.children})};export{qt as ContextTwa,at as EventBackButtonPressed,ot as EventClipboardTextReceived,rt as EventCustomMethodInvoked,nt as EventInvoiceClosed,it as EventMainButtonPressed,pt as EventPhoneRequested,ut as EventPopupClosed,dt as EventQrTextReceived,_t as EventReloadIframe,ct as EventScanQrPopupClosed,gt as EventSetCustomStyle,lt as EventSettingsButtonPressed,bt as EventThemeChanged,wt as EventViewportChanged,mt as EventWriteAccessRequested,st as Method,Ie as MethodClose,Te as MethodCloseScanQrPopup,Le as MethodDataSend,We as MethodExpand,Ne as MethodIframeReady,De as MethodIframeWillReload,Oe as MethodInvokeCustomMethod,Ee as MethodOpenInvoice,Me as MethodOpenLink,Qe as MethodOpenPopup,xe as MethodOpenScanQrPopup,Ae as MethodOpenTgLink,Be as MethodReadTextFromClipboard,He as MethodReady,Ce as MethodRequestPhone,Je as MethodRequestTheme,$e as MethodRequestViewport,je as MethodRequestWriteAccess,Fe as MethodSetBackgroundColor,Ve as MethodSetBottomBarColor,Ue as MethodSetHeaderColor,Ge as MethodSetupBackButton,ze as MethodSetupClosingBehavior,Ke as MethodSetupMainButton,Xe as MethodSetupSettingsButton,et as MethodSetupSwipeBehavior,tt as MethodShareToStory,Ye as MethodSwitchInlineQuery,Ze as MethodTriggerHapticFeedback,d as NOT_SUPPORTED,Pt as ProviderTWA,u as TG_DESKTOP,p as TG_PHONE,i as TG_WEB,w as bridgeClose,h as bridgeCloseScanQrPopup,v as bridgeDataSend,y as bridgeExpand,Pe as bridgeGetInitData,b as bridgeGetThemeParams,q as bridgeIframeReady,R as bridgeIframeWillReload,x as bridgeInvokeCustomMethod,C as bridgeOpenInvoice,T as bridgeOpenLink,W as bridgeOpenPopup,D as bridgeOpenScanQrPopup,M as bridgeOpenTgLink,A as bridgeReadTextFromClipboard,J as bridgeReady,j as bridgeRequestPhone,U as bridgeRequestTheme,G as bridgeRequestViewport,K as bridgeRequestWriteAccess,Re as bridgeSend,he as bridgeSessionStorageGet,we as bridgeSessionStorageSet,Y as bridgeSetBackgroundColor,se as bridgeSetBottomBarColor,ee as bridgeSetHeaderColor,oe as bridgeSetupBackButton,ne as bridgeSetupClosingBehavior,pe as bridgeSetupMainButton,_e as bridgeSetupSettingsButton,ve as bridgeSetupSwipeBehavior,ye as bridgeShareToStory,ce as bridgeSwitchInlineQuery,le as bridgeTriggerHapticFeedback,n as createIsViewportChanged,qe as debug,kt as getAppData,_ as getPlatform,yt as listener,Re as sender,m as supportClose,S as supportCloseScanQrPopup,f as supportDataSend,k as supportExpand,P as supportIframeReady,O as supportIframeWillReload,B as supportInvokeCustomMethod,I as supportOpenInvoice,L as supportOpenLink,N as supportOpenPopup,E as supportOpenScanQrPopup,Q as supportOpenTgLink,H as supportReadTextFromClipboard,$ as supportReady,F as supportRequestPhone,V as supportRequestTheme,z as supportRequestViewport,X as supportRequestWriteAccess,Se as supportSessionStorageGet,me as supportSessionStorageSet,Z as supportSetBackgroundColor,ae as supportSetBottomBarColor,te as supportSetHeaderColor,re as supportSetupBackButton,ie as supportSetupClosingBehavior,ue as supportSetupMainButton,de as supportSetupSettingsButton,fe as supportSetupSwipeBehavior,ke as supportShareToStory,ge as supportSwitchInlineQuery,be as supportTriggerHapticFeedback};
|
|
1
|
+
import{createSignal as e,onMount as t,onCleanup as s,createContext as a,createEffect as r}from"solid-js";import{createStore as o}from"solid-js/store";const n=()=>{const[a,r]=e({height:0,is_expanded:!1,is_state_stable:!1}),o=e=>r(e);return t((()=>{Mt(Wt,o),Fe(tt)})),s((()=>{Qt(Wt,o)})),a},i="web",p="phone",u="desktop",_=()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppPlatform")??"ios";return["android","ios"].includes(t)?p:["tdesktop","macos"].includes(t)?u:i},d="not_supported",c=(e,t)=>{const s=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppVersion");return Number(s?.replace(".",""))>=Number(String(e)?.replace(".",""))&&-1!==t.indexOf(_())},l=()=>Math.random().toString(36).substring(3,9),g=e=>{var t;if(t=/^\s*#([0-9a-f]{6})\s*$/i.exec(e+=""))return"#"+t[1].toLowerCase();if(t=/^\s*#([0-9a-f])([0-9a-f])([0-9a-f])\s*$/i.exec(e))return("#"+t[1]+t[1]+t[2]+t[2]+t[3]+t[3]).toLowerCase();if(t=/^\s*rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+\.{0,1}\d*))?\)\s*$/.exec(e)){var s=parseInt(t[1]),a=parseInt(t[2]),r=parseInt(t[3]);return"#"+((s<16?"0":"")+s.toString(16))+((a<16?"0":"")+a.toString(16))+((r<16?"0":"")+r.toString(16))}return!1},b=e=>{const t=window.location.hash.slice(1),s=new URLSearchParams(t),a=JSON.parse(s.get("tgWebAppThemeParams")??""),r=e||a;for(var o of Object.keys(r)){var n=g(r[o]);"string"==typeof n&&(r[o]=n)}return"#1c1c1d"==r?.bg_color&&r?.bg_color==r?.secondary_bg_color&&(r.secondary_bg_color="#2c2c2e"),r},w=e=>m()?(Fe(Je,e),{status:!0}):(He(Je,1),{status:d}),m=()=>c(0,[i,u,p]),h=e=>S()?(Fe($e,e),{status:!0}):(He($e,1),{status:d}),S=()=>c(6.4,[p]),f=e=>v()?(Fe(je,e),{status:!0}):(He(je,1),{status:d}),v=()=>c(0,[i,u,p]),y=e=>q()?(Fe(Ue,e),{status:!0}):(He(Ue,1),{status:d}),q=()=>c(0,[p]),k=e=>R()?(Fe(Ve,e),{status:!0}):(He(Ve,1),{status:d}),R=()=>c(0,[i]),C=()=>P()?(Fe(Ve),{status:!0}):(He(Ve,1),{status:d}),P=()=>c(0,[i]),O=async e=>x()?(void 0===e.req_id&&(e.req_id=l()),Fe(Ne,e),new Promise(((t,s)=>{const a=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),Qt(kt,a))};Mt(kt,a)}))):(He(Ne,1),{status:d}),x=()=>c(6.9,[i,u,p]),T=e=>B()?(Fe(ze,e),{status:!0}):(He(ze,1),{status:d}),B=()=>c(6.1,[i,u,p]),I=e=>A()?(Fe(Ke,e),{status:!0}):(He(Ke,1),{status:d}),A=()=>c(6.4,[i,u,p]),L=async e=>W()?(e.title.length>64&&He(Xe,3),e.message.length<1&&He(Xe,4),e.message.length>256&&He(Xe,5),e.buttons.length<1&&He(Xe,6),e.buttons.length>3&&He(Xe,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&He(Xe,8),Fe(Xe,e),new Promise(((t,s)=>{const a=s=>{t({status:!!e.buttons.find((e=>e.id===s?.button_id)),data:s}),Qt(Ot,a)};Mt(Ot,a)}))):(He(Xe,1),{status:d}),W=()=>c(6.2,[i,u,p]),H=async e=>E()?(Fe(De,e),new Promise(((t,s)=>{Jt(Tt,(s=>{e.is_close&&h(),t({status:!0,data:s})})),Jt(Bt,(()=>{t({status:"closed"})}))}))):(He(De,1),{status:d}),E=()=>c(6.4,[p]),F=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),N()?(Fe(Ye,e),{status:!0}):(He(Ye,1),{status:d})),N=()=>c(7,[i,u,p]),D=async e=>M()?(e||(e={req_id:void 0}),void 0===e.req_id&&(e.req_id=l()),Fe(Me,e),new Promise(((t,s)=>{const a=s=>{s.req_id===e?.req_id&&(t({status:!0,data:s}),Qt(qt,a))};Mt(qt,a)}))):(He(Me,1),{status:d}),M=()=>c(6.4,[i,u,p]),Q=e=>J()?(Fe(Ze,e),{status:!0}):(He(Ze,1),{status:d}),J=()=>c(6.9,[i,u,p]),$=async()=>j()?(Fe(Qe),new Promise(((e,t)=>{Jt(Pt,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(He(Qe,1),{status:d}),j=()=>c(6.9,[i,u,p]),U=e=>V()?(Fe(et,e),{status:!0}):(He(et,1),{status:d}),V=()=>c(0,[i,u,p]),G=e=>z()?(Fe(tt,e),{status:!0}):(He(tt,1),{status:d}),z=()=>c(0,[i,u,p]),K=()=>X()?(Fe(st),{status:!0}):(He(st,1),{status:d}),X=()=>c(6.9,[i,u,p]),Y=e=>Z()?(Fe(at,e),{status:!0}):(He(at,1),{status:d}),Z=()=>c(6.1,[i,u,p]),ee=e=>te()?(Fe(rt,e),{status:!0}):(He(rt,1),{status:d}),te=()=>c(6.1,[i,u,p]),se=e=>ae()?(Fe(ot,{color:e?.color||e?.color_key}),{status:!0}):(He(ot,1),{status:d}),ae=()=>c(710,[i,u,p]),re=e=>oe()?(Fe(nt,e),{status:!0}):(He(nt,1),{status:d}),oe=()=>c(6.1,[i,u,p]),ne=e=>ie()?(Fe(it,e),{status:!0}):(He(it,1),{status:d}),ie=()=>c(0,[i,u,p]),pe=e=>ue()?(Fe(pt,e),{status:!0}):(He(pt,1),{status:d}),ue=()=>c(0,[i,u,p]),_e=e=>de()?(Fe(ut,e),{status:!0}):(He(ut,1),{status:d}),de=()=>c(6.1,[i,u,p]),ce=e=>le()?(e.query.length>256&&He(_t,9),Fe(_t,e),{status:!0}):(He(_t,1),{status:d}),le=()=>c(6.7,[i,u,p]),ge=e=>be()?(Fe(dt,e),{status:!0}):(He(dt,1),{status:d}),be=()=>c(6.1,[p]),we=({key:e,value:t})=>{try{return window.sessionStorage.setItem("__telegram__"+e,JSON.stringify(t)),{status:!0}}catch(s){return window.sessionStorage.setItem("__telegram__"+e,t),{status:!0}}},me=()=>!0,he=({key:e})=>{try{return{is_json:!0,value:JSON.parse(window.sessionStorage.getItem("__telegram__"+e)??""),status:!0}}catch(t){return{is_json:!1,value:window.sessionStorage.getItem("__telegram__"+e)??"",status:!0}}},Se=()=>!0,fe=e=>ve()?(Fe(ct,e),{status:!0}):(He(ct,1),{status:d}),ve=()=>c(7.7,[i,u,p]),ye=e=>qe()?(Fe(lt,e),{status:!0}):(He(lt,1),{status:d}),qe=()=>c(7.8,[i,u,p]),ke=async e=>Re()?(Fe(ft,e),new Promise(((e,t)=>{const s=t=>{e({status:!0,data:t}),Qt(Nt,s)};Mt(Nt,s)}))):(He(ft,1),{status:d,data:void 0}),Re=()=>c(8,[u,p]),Ce=()=>Pe()?(Fe(St),{status:!0}):(He(St,1),{status:d}),Pe=()=>c(8,[u,p]),Oe=()=>xe()?(Fe(gt),{status:!0}):(He(gt,1),{status:d}),xe=()=>c(8,[i,u,p]),Te=()=>Be()?(Fe(bt),{status:!0}):(He(bt,1),{status:d}),Be=()=>c(8,[i,u,p]),Ie=e=>{const t=e?.is_full||!1;return Ae()?(Fe(t?wt:mt),{status:!0}):(He(t?wt:mt,1),{status:d})},Ae=()=>c(8,[i,u,p]),Le=e=>We()?(Fe(ht),{status:!0}):(He(ht,1),{status:d}),We=()=>c(8,[i,u,p]),He=(e,t)=>{"development"===process.env.NODE_ENV&&console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)},Ee=()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppData");if(!t)return void He("getInitData",2);const s=new URLSearchParams(t);let a={};return s.forEach(((e,t)=>{if(a[t]=e,void 0!==t.match(/^(chat|receiver|user)$/g))try{a[t]=JSON.parse(e)}catch{}})),a},Fe=(e,t)=>{if(window.TelegramWebviewProxy)window.TelegramWebviewProxy.postEvent(e,JSON.stringify(t));else if(window.external&&"notify"in window.external)window.external.notify(JSON.stringify({eventType:e,eventData:t}));else try{window.parent.postMessage(JSON.stringify({eventType:e,eventData:t}),"*")}catch(e){He("postMessage Iframe",10)}},Ne="web_app_invoke_custom_method",De="web_app_open_scan_qr_popup",Me="web_app_read_text_from_clipboard",Qe="web_app_request_phone",Je="web_app_close",$e="web_app_close_scan_qr_popup",je="web_app_data_send",Ue="web_app_expand",Ve="iframe_ready",Ge="iframe_will_reload",ze="web_app_open_invoice",Ke="web_app_open_link",Xe="web_app_open_popup",Ye="web_app_open_tg_link",Ze="web_app_ready",et="web_app_request_theme",tt="web_app_request_viewport",st="web_app_request_write_access",at="web_app_set_background_color",rt="web_app_set_header_color",ot="web_app_set_bottom_bar_color",nt="web_app_setup_back_button",it="web_app_setup_closing_behavior",pt="web_app_setup_main_button",ut="web_app_setup_settings_button",_t="web_app_switch_inline_query",dt="web_app_trigger_haptic_feedback",ct="web_app_setup_swipe_behavior",lt="web_app_share_to_story",gt="web_app_request_safe_area",bt="web_app_request_content_safe_area",wt="web_app_request_fullscreen",mt="web_app_exit_fullscreen",ht="web_app_toggle_orientation_lock",St="web_app_add_to_home_screen",ft="web_app_check_home_screen";var vt=(e=>(e[e.InvokeCustomMethod=Ne]="InvokeCustomMethod",e[e.OpenScanQrPopup=De]="OpenScanQrPopup",e[e.ReadTextFromClipboard=Me]="ReadTextFromClipboard",e[e.RequestPhone=Qe]="RequestPhone",e[e.Close=Je]="Close",e[e.CloseScanQrPopup=$e]="CloseScanQrPopup",e[e.DataSend=je]="DataSend",e[e.Expand=Ue]="Expand",e[e.IframeReady=Ve]="IframeReady",e[e.IframeWillReload=Ge]="IframeWillReload",e[e.OpenInvoice=ze]="OpenInvoice",e[e.OpenLink=Ke]="OpenLink",e[e.OpenPopup=Xe]="OpenPopup",e[e.OpenTgLink=Ye]="OpenTgLink",e[e.Ready=Ze]="Ready",e[e.RequestTheme=et]="RequestTheme",e[e.RequestViewport=tt]="RequestViewport",e[e.RequestWriteAccess=st]="RequestWriteAccess",e[e.SetBackgroundColor=at]="SetBackgroundColor",e[e.SetHeaderColor=rt]="SetHeaderColor",e[e.SetBottomBarColor=ot]="SetBottomBarColor",e[e.SetupBackButton=nt]="SetupBackButton",e[e.SetupClosingBehavior=it]="SetupClosingBehavior",e[e.SetupMainButton=pt]="SetupMainButton",e[e.SetupSettingsButton=ut]="SetupSettingsButton",e[e.SwitchInlineQuery=_t]="SwitchInlineQuery",e[e.TriggerHapticFeedback=dt]="TriggerHapticFeedback",e[e.SetupSwipeBehavior=ct]="SetupSwipeBehavior",e[e.ShareToStory=lt]="ShareToStory",e[e.RequestSafeArea=gt]="RequestSafeArea",e[e.RequestContentSafeArea=bt]="RequestContentSafeArea",e[e.RequestFullscreen=wt]="RequestFullscreen",e[e.ExitFullscreen=mt]="ExitFullscreen",e[e.ToggleOrientationLock=ht]="ToggleOrientationLock",e[e.AddToHomeScreen=St]="AddToHomeScreen",e[e.CheckHomeScreen=ft]="CheckHomeScreen",e))(vt||{});const yt="back_button_pressed",qt="clipboard_text_received",kt="custom_method_invoked",Rt="invoice_closed",Ct="main_button_pressed",Pt="phone_requested",Ot="popup_closed",xt="reload_iframe",Tt="qr_text_received",Bt="scan_qr_popup_closed",It="set_custom_style",At="settings_button_pressed",Lt="theme_changed",Wt="viewport_changed",Ht="write_access_requested",Et="safe_area_changed",Ft="content_safe_area_changed",Nt="web_app_check_home_screen",Dt=((e=new Map)=>({once:(t,s,a=e.get(t),r=e=>{s(e),a&&a.splice(a.indexOf(s)>>>0,1)})=>a?a.push(r):e.set(t,[r]),on:(t,s,a=e.get(t))=>a?a.push(s):e.set(t,[s]),off:(t,s,a=e.get(t))=>a&&s?a.splice(a.indexOf(s)>>>0,1):e.set(t,[]),emit:(t,s,a=e.get(t)||[])=>{for(const e of a)e(s)}}))();(()=>{function e(e,t){e===Lt&&(t.theme_params=b(t.theme_params)),Dt.emit(e,t),Dt.emit("*",{name:e,data:t})}window.TelegramGameProxy_receiveEvent=e,window.Telegram={WebView:{receiveEvent:e}},window.TelegramGameProxy={receiveEvent:e}})();const Mt=(e,t)=>{Dt.on(e,t)},Qt=(e,t)=>{Dt.off(e,t)},Jt=(e,t)=>{Dt.once(e,t)};var $t=Object.freeze({__proto__:null,off:Qt,on:Mt,once:Jt});const jt=()=>{const e=window.location.hash.slice(1);return new URLSearchParams(e).get("tgWebAppData")},Ut=a({viewport:void 0,theme:void 0,init:void 0}),Vt=e=>{const[t,a]=o({viewport:void 0,theme:void 0,init:void 0});return r((()=>{const e=()=>{a("init",Ee())};e();const t=t=>{e(),a("viewport",{...t,safe_area_bottom:t.is_expanded&&t.is_state_stable?window.outerHeight-t.height:0})};Mt(Wt,t),G();const r=t=>{e(),a("theme",t)};return Mt(Lt,r),G(),s((()=>{Qt(Wt,t),Qt(Lt,r)})),()=>{Qt(Wt,t),Qt(Lt,r)}})),Ut.Provider({value:t,children:e.children})};export{Ut as ContextTwa,yt as EventBackButtonPressed,Nt as EventCheckHomeScreen,qt as EventClipboardTextReceived,Ft as EventContentSafeAreaChanged,kt as EventCustomMethodInvoked,Rt as EventInvoiceClosed,Ct as EventMainButtonPressed,Pt as EventPhoneRequested,Ot as EventPopupClosed,Tt as EventQrTextReceived,xt as EventReloadIframe,Et as EventSafeAreaChanged,Bt as EventScanQrPopupClosed,It as EventSetCustomStyle,At as EventSettingsButtonPressed,Lt as EventThemeChanged,Wt as EventViewportChanged,Ht as EventWriteAccessRequested,vt as Method,St as MethodAddToHomeScreen,ft as MethodCheckHomeScreen,Je as MethodClose,$e as MethodCloseScanQrPopup,je as MethodDataSend,mt as MethodExitFullscreen,Ue as MethodExpand,Ve as MethodIframeReady,Ge as MethodIframeWillReload,Ne as MethodInvokeCustomMethod,ze as MethodOpenInvoice,Ke as MethodOpenLink,Xe as MethodOpenPopup,De as MethodOpenScanQrPopup,Ye as MethodOpenTgLink,Me as MethodReadTextFromClipboard,Ze as MethodReady,bt as MethodRequestContentSafeArea,wt as MethodRequestFullscreen,Qe as MethodRequestPhone,gt as MethodRequestSafeArea,et as MethodRequestTheme,tt as MethodRequestViewport,st as MethodRequestWriteAccess,at as MethodSetBackgroundColor,ot as MethodSetBottomBarColor,rt as MethodSetHeaderColor,nt as MethodSetupBackButton,it as MethodSetupClosingBehavior,pt as MethodSetupMainButton,ut as MethodSetupSettingsButton,ct as MethodSetupSwipeBehavior,lt as MethodShareToStory,_t as MethodSwitchInlineQuery,ht as MethodToggleOrientationLock,dt as MethodTriggerHapticFeedback,d as NOT_SUPPORTED,Vt as ProviderTWA,u as TG_DESKTOP,p as TG_PHONE,i as TG_WEB,Ce as bridgeAddToHomeScreen,ke as bridgeCheckHomeScreen,w as bridgeClose,h as bridgeCloseScanQrPopup,f as bridgeDataSend,y as bridgeExpand,Ee as bridgeGetInitData,b as bridgeGetThemeParams,k as bridgeIframeReady,C as bridgeIframeWillReload,O as bridgeInvokeCustomMethod,T as bridgeOpenInvoice,I as bridgeOpenLink,L as bridgeOpenPopup,H as bridgeOpenScanQrPopup,F as bridgeOpenTgLink,D as bridgeReadTextFromClipboard,Q as bridgeReady,Te as bridgeRequestContentSafeAreaInset,$ as bridgeRequestPhone,Oe as bridgeRequestSafeAreaInset,U as bridgeRequestTheme,G as bridgeRequestViewport,K as bridgeRequestWriteAccess,Fe as bridgeSend,he as bridgeSessionStorageGet,we as bridgeSessionStorageSet,Y as bridgeSetBackgroundColor,se as bridgeSetBottomBarColor,ee as bridgeSetHeaderColor,re as bridgeSetupBackButton,ne as bridgeSetupClosingBehavior,Ie as bridgeSetupFullScreen,pe as bridgeSetupMainButton,Le as bridgeSetupOrientation,_e as bridgeSetupSettingsButton,fe as bridgeSetupSwipeBehavior,ye as bridgeShareToStory,ce as bridgeSwitchInlineQuery,ge as bridgeTriggerHapticFeedback,n as createIsViewportChanged,He as debug,jt as getAppData,_ as getPlatform,$t as listener,Fe as sender,Pe as supportAddToHomeScreen,Re as supportCheckHomeScreen,m as supportClose,S as supportCloseScanQrPopup,v as supportDataSend,q as supportExpand,R as supportIframeReady,P as supportIframeWillReload,x as supportInvokeCustomMethod,B as supportOpenInvoice,A as supportOpenLink,W as supportOpenPopup,E as supportOpenScanQrPopup,N as supportOpenTgLink,M as supportReadTextFromClipboard,J as supportReady,Be as supportRequestContentSafeAreaInset,j as supportRequestPhone,xe as supportRequestSafeAreaInset,V as supportRequestTheme,z as supportRequestViewport,X as supportRequestWriteAccess,Se as supportSessionStorageGet,me as supportSessionStorageSet,Z as supportSetBackgroundColor,ae as supportSetBottomBarColor,te as supportSetHeaderColor,oe as supportSetupBackButton,ie as supportSetupClosingBehavior,Ae as supportSetupFullScreen,ue as supportSetupMainButton,We as supportSetupOrientation,de as supportSetupSettingsButton,ve as supportSetupSwipeBehavior,qe as supportShareToStory,le as supportSwitchInlineQuery,be as supportTriggerHapticFeedback};
|