@apiteam/twa-bridge 8.0.2-beta → 8.0.3-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 +2 -2
- package/solid/index.d.ts +67 -5
- package/solid/index.js +1 -1
- package/solid/index.mjs +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@apiteam/twa-bridge",
|
|
3
|
-
"version": "8.0.
|
|
3
|
+
"version": "8.0.3-beta",
|
|
4
4
|
"description": "Telegram bridge",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"types": "index.ts",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
},
|
|
11
11
|
"repository": {
|
|
12
12
|
"type": "git",
|
|
13
|
-
"url": "https://github.com/APITEAMRU/twa-bridge"
|
|
13
|
+
"url": "git+https://github.com/APITEAMRU/twa-bridge.git"
|
|
14
14
|
},
|
|
15
15
|
"contributors": [],
|
|
16
16
|
"keywords": [
|
package/solid/index.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import * as solid_js from 'solid-js';
|
|
2
|
-
import { Context, Component } from 'solid-js';
|
|
3
|
-
import { JSX } from 'solid-js/jsx-runtime';
|
|
2
|
+
import { Context, JSX, Component } from 'solid-js';
|
|
4
3
|
|
|
5
4
|
declare const createIsViewportChanged: () => solid_js.Accessor<{
|
|
6
5
|
height: number;
|
|
@@ -202,6 +201,7 @@ declare const supportSetupSwipeBehavior: () => boolean;
|
|
|
202
201
|
|
|
203
202
|
type ShareToStory = (eventData?: SenderData[typeof MethodShareToStory]) => {
|
|
204
203
|
status: boolean | typeof NOT_SUPPORTED;
|
|
204
|
+
error_id?: number;
|
|
205
205
|
};
|
|
206
206
|
declare const shareToStory: ShareToStory;
|
|
207
207
|
declare const supportShareToStory: () => boolean;
|
|
@@ -243,6 +243,30 @@ type SetupOrientation = (eventData?: SenderData[typeof MethodToggleOrientationLo
|
|
|
243
243
|
declare const setupOrientation: SetupOrientation;
|
|
244
244
|
declare const supportSetupOrientation: () => boolean;
|
|
245
245
|
|
|
246
|
+
type RequestEmojiStatus = (eventData?: SenderData[typeof MethodRequestEmojiStatusAccess]) => Promise<{
|
|
247
|
+
status: boolean | typeof NOT_SUPPORTED;
|
|
248
|
+
}>;
|
|
249
|
+
declare const requestEmojiStatus: RequestEmojiStatus;
|
|
250
|
+
declare const supportRequestEmojiStatus: () => boolean;
|
|
251
|
+
|
|
252
|
+
type SetEmojiStatus = (eventData?: SenderData[typeof MethodSetEmojiStatus]) => Promise<{
|
|
253
|
+
status: boolean | typeof NOT_SUPPORTED;
|
|
254
|
+
}>;
|
|
255
|
+
declare const setEmojiStatus: SetEmojiStatus;
|
|
256
|
+
declare const supportSetEmojiStatus: () => boolean;
|
|
257
|
+
|
|
258
|
+
type ShareMessage = (eventData?: SenderData[typeof MethodSendPreparedMessage]) => Promise<{
|
|
259
|
+
status: boolean | typeof NOT_SUPPORTED;
|
|
260
|
+
}>;
|
|
261
|
+
declare const shareMessage: ShareMessage;
|
|
262
|
+
declare const supportShareMessage: () => boolean;
|
|
263
|
+
|
|
264
|
+
type DownloadFile = (eventData?: SenderData[typeof MethodRequestFileDownload]) => Promise<{
|
|
265
|
+
status: boolean | typeof NOT_SUPPORTED;
|
|
266
|
+
}>;
|
|
267
|
+
declare const downloadFile: DownloadFile;
|
|
268
|
+
declare const supportDownloadFile: () => boolean;
|
|
269
|
+
|
|
246
270
|
type User = {
|
|
247
271
|
added_to_attachment_menu?: boolean;
|
|
248
272
|
allows_write_to_pm?: boolean;
|
|
@@ -316,6 +340,12 @@ declare const EventWriteAccessRequested = "write_access_requested";
|
|
|
316
340
|
declare const EventSafeAreaChanged = "safe_area_changed";
|
|
317
341
|
declare const EventContentSafeAreaChanged = "content_safe_area_changed";
|
|
318
342
|
declare const EventCheckHomeScreen = "web_app_check_home_screen";
|
|
343
|
+
declare const EventPreparedMessageSent = "prepared_message_sent";
|
|
344
|
+
declare const EventPreparedMessageFailed = "prepared_message_failed";
|
|
345
|
+
declare const EventEmojiStatusSet = "emoji_status_set";
|
|
346
|
+
declare const EventEmojiStatusFailed = "emoji_status_failed";
|
|
347
|
+
declare const EventEmojiStatusAccessRequested = "emoji_status_access_requested";
|
|
348
|
+
declare const EventFileDownloadRequested = "file_download_requested";
|
|
319
349
|
|
|
320
350
|
type GetPlatform = () => 'phone' | 'web' | 'desktop';
|
|
321
351
|
declare const TG_WEB = "web";
|
|
@@ -381,6 +411,16 @@ type EventsData = {
|
|
|
381
411
|
left: number;
|
|
382
412
|
right: number;
|
|
383
413
|
};
|
|
414
|
+
[EventPreparedMessageSent]: undefined;
|
|
415
|
+
[EventPreparedMessageFailed]: undefined;
|
|
416
|
+
[EventEmojiStatusSet]: undefined;
|
|
417
|
+
[EventEmojiStatusFailed]: undefined;
|
|
418
|
+
[EventEmojiStatusAccessRequested]: {
|
|
419
|
+
status: 'allowed';
|
|
420
|
+
};
|
|
421
|
+
[EventFileDownloadRequested]: {
|
|
422
|
+
status: 'downloading';
|
|
423
|
+
};
|
|
384
424
|
};
|
|
385
425
|
interface TelegramGameProxy {
|
|
386
426
|
receiveEvent: (event: string, data: string) => void;
|
|
@@ -450,6 +490,10 @@ declare const MethodExitFullscreen = "web_app_exit_fullscreen";
|
|
|
450
490
|
declare const MethodToggleOrientationLock = "web_app_toggle_orientation_lock";
|
|
451
491
|
declare const MethodAddToHomeScreen = "web_app_add_to_home_screen";
|
|
452
492
|
declare const MethodCheckHomeScreen = "web_app_check_home_screen";
|
|
493
|
+
declare const MethodSendPreparedMessage = "web_app_send_prepared_message";
|
|
494
|
+
declare const MethodSetEmojiStatus = "web_app_set_emoji_status";
|
|
495
|
+
declare const MethodRequestEmojiStatusAccess = "web_app_request_emoji_status_access";
|
|
496
|
+
declare const MethodRequestFileDownload = "web_app_request_file_download";
|
|
453
497
|
declare enum Method {
|
|
454
498
|
InvokeCustomMethod = "web_app_invoke_custom_method",
|
|
455
499
|
OpenScanQrPopup = "web_app_open_scan_qr_popup",
|
|
@@ -486,7 +530,11 @@ declare enum Method {
|
|
|
486
530
|
ExitFullscreen = "web_app_exit_fullscreen",
|
|
487
531
|
ToggleOrientationLock = "web_app_toggle_orientation_lock",
|
|
488
532
|
AddToHomeScreen = "web_app_add_to_home_screen",
|
|
489
|
-
CheckHomeScreen = "web_app_check_home_screen"
|
|
533
|
+
CheckHomeScreen = "web_app_check_home_screen",
|
|
534
|
+
SendPreparedMessage = "web_app_send_prepared_message",
|
|
535
|
+
SetEmojiStatus = "web_app_set_emoji_status",
|
|
536
|
+
RequestEmojiStatusAccess = "web_app_request_emoji_status_access",
|
|
537
|
+
RequestFileDownload = "web_app_request_file_download"
|
|
490
538
|
}
|
|
491
539
|
type PopupButton = {
|
|
492
540
|
id: string;
|
|
@@ -523,6 +571,7 @@ type SenderData = {
|
|
|
523
571
|
[MethodOpenLink]: {
|
|
524
572
|
url: string;
|
|
525
573
|
try_instant_view?: boolean;
|
|
574
|
+
try_browser?: boolean;
|
|
526
575
|
};
|
|
527
576
|
[MethodOpenPopup]: {
|
|
528
577
|
title: string;
|
|
@@ -531,6 +580,7 @@ type SenderData = {
|
|
|
531
580
|
};
|
|
532
581
|
[MethodOpenTgLink]: {
|
|
533
582
|
path_full: string;
|
|
583
|
+
force_request?: boolean;
|
|
534
584
|
};
|
|
535
585
|
[MethodReady]: undefined;
|
|
536
586
|
[MethodRequestTheme]: undefined;
|
|
@@ -572,7 +622,7 @@ type SenderData = {
|
|
|
572
622
|
};
|
|
573
623
|
[MethodSwitchInlineQuery]: {
|
|
574
624
|
query: string;
|
|
575
|
-
chat_types:
|
|
625
|
+
chat_types: ('users' | 'bots' | 'groups' | 'channels')[];
|
|
576
626
|
};
|
|
577
627
|
[MethodTriggerHapticFeedback]: {
|
|
578
628
|
type: 'impact';
|
|
@@ -609,6 +659,18 @@ type SenderData = {
|
|
|
609
659
|
};
|
|
610
660
|
[MethodAddToHomeScreen]: undefined;
|
|
611
661
|
[MethodCheckHomeScreen]: undefined;
|
|
662
|
+
[MethodSendPreparedMessage]: {
|
|
663
|
+
msg_id: number;
|
|
664
|
+
};
|
|
665
|
+
[MethodSetEmojiStatus]: {
|
|
666
|
+
custom_emoji_id: string;
|
|
667
|
+
duration?: number;
|
|
668
|
+
};
|
|
669
|
+
[MethodRequestEmojiStatusAccess]: undefined;
|
|
670
|
+
[MethodRequestFileDownload]: {
|
|
671
|
+
url: string;
|
|
672
|
+
file_name: string;
|
|
673
|
+
};
|
|
612
674
|
};
|
|
613
675
|
|
|
614
676
|
type Debug = (methondName: string, errorId: number) => void;
|
|
@@ -628,4 +690,4 @@ interface ProviderTWA extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
|
628
690
|
}
|
|
629
691
|
declare const ProviderTWA: Component<ProviderTWA>;
|
|
630
692
|
|
|
631
|
-
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 };
|
|
693
|
+
export { ContextTwa, EventBackButtonPressed, EventCheckHomeScreen, EventClipboardTextReceived, EventContentSafeAreaChanged, EventCustomMethodInvoked, EventEmojiStatusAccessRequested, EventEmojiStatusFailed, EventEmojiStatusSet, EventFileDownloadRequested, EventInvoiceClosed, EventMainButtonPressed, EventPhoneRequested, EventPopupClosed, EventPreparedMessageFailed, EventPreparedMessageSent, 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, MethodRequestEmojiStatusAccess, MethodRequestFileDownload, MethodRequestFullscreen, MethodRequestPhone, MethodRequestSafeArea, MethodRequestTheme, MethodRequestViewport, MethodRequestWriteAccess, MethodSendPreparedMessage, MethodSetBackgroundColor, MethodSetBottomBarColor, MethodSetEmojiStatus, 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, downloadFile as bridgeDownloadFile, 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, requestEmojiStatus as bridgeRequestEmojiStatus, 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, setEmojiStatus as bridgeSetEmojiStatus, setHeaderColor as bridgeSetHeaderColor, setupBackButton as bridgeSetupBackButton, setupClosingBehavior as bridgeSetupClosingBehavior, setupFullScreen as bridgeSetupFullScreen, setupMainButton as bridgeSetupMainButton, setupOrientation as bridgeSetupOrientation, setupSettingsButton as bridgeSetupSettingsButton, setupSwipeBehavior as bridgeSetupSwipeBehavior, shareMessage as bridgeShareMessage, shareToStory as bridgeShareToStory, switchInlineQuery as bridgeSwitchInlineQuery, triggerHapticFeedback as bridgeTriggerHapticFeedback, createIsViewportChanged, debug, getAppData, getPlatform, listener, sender, supportAddToHomeScreen, supportCheckHomeScreen, supportClose, supportCloseScanQrPopup, supportDataSend, supportDownloadFile, supportExpand, supportIframeReady, supportIframeWillReload, supportInvokeCustomMethod, supportOpenInvoice, supportOpenLink, supportOpenPopup, supportOpenScanQrPopup, supportOpenTgLink, supportReadTextFromClipboard, supportReady, supportRequestContentSafeAreaInset, supportRequestEmojiStatus, supportRequestPhone, supportRequestSafeAreaInset, supportRequestTheme, supportRequestViewport, supportRequestWriteAccess, supportSessionStorageGet, supportSessionStorageSet, supportSetBackgroundColor, supportSetBottomBarColor, supportSetEmojiStatus, supportSetHeaderColor, supportSetupBackButton, supportSetupClosingBehavior, supportSetupFullScreen, supportSetupMainButton, supportSetupOrientation, supportSetupSettingsButton, supportSetupSwipeBehavior, supportShareMessage, 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=>_()?(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;
|
|
1
|
+
"use strict";var e=require("solid-js"),t=require("solid-js/store");const s="web",o="phone",r="desktop",a=()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppPlatform")??"ios";return["android","ios"].includes(t)?o:["tdesktop","macos"].includes(t)?r:s},p="not_supported",n=(e,t)=>{const s=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppVersion");return Number(s?.replace(".",""))>=Number(String(e)?.replace(".",""))&&-1!==t.indexOf(a())},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 s=parseInt(t[1]),o=parseInt(t[2]),r=parseInt(t[3]);return"#"+((s<16?"0":"")+s.toString(16))+((o<16?"0":"")+o.toString(16))+((r<16?"0":"")+r.toString(16))}return!1},d=e=>{const t=window.location.hash.slice(1),s=new URLSearchParams(t),o=JSON.parse(s.get("tgWebAppThemeParams")??""),r=e||o;for(var a of Object.keys(r)){var p=u(r[a]);"string"==typeof p&&(r[a]=p)}return"#1c1c1d"==r?.bg_color&&r?.bg_color==r?.secondary_bg_color&&(r.secondary_bg_color="#2c2c2e"),r},c=e=>_()?(Me(Te,e),{status:!0}):(qe(Te,1),{status:p}),_=()=>n(0,[s,r,o]),l=e=>x()?(Me(Be,e),{status:!0}):(qe(Be,1),{status:p}),x=()=>n(6.4,[o]),g=e=>S()?(Me(Oe,e),{status:!0}):(qe(Oe,1),{status:p}),S=()=>n(0,[s,r,o]),h=e=>m()?(Me(Ie,e),{status:!0}):(qe(Ie,1),{status:p}),m=()=>n(0,[o]),w=e=>b()?(Me(Ae,e),{status:!0}):(qe(Ae,1),{status:p}),b=()=>n(0,[s]),v=()=>f()?(Me(Ae),{status:!0}):(qe(Ae,1),{status:p}),f=()=>n(0,[s]),R=async e=>q()?(void 0===e.req_id&&(e.req_id=i()),Me(ke,e),new Promise(((t,s)=>{const o=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),Tt(gt,o))};Et(gt,o)}))):(qe(ke,1),{status:p}),q=()=>n(6.9,[s,r,o]),C=e=>M()?(Me(Le,e),{status:!0}):(qe(Le,1),{status:p}),M=()=>n(6.1,[s,r,o]),k=e=>y()?(Me(je,e),{status:!0}):(qe(je,1),{status:p}),y=()=>n(6.4,[s,r,o]),P=async e=>E()?(e.title.length>64&&qe(He,3),e.message.length<1&&qe(He,4),e.message.length>256&&qe(He,5),e.buttons.length<1&&qe(He,6),e.buttons.length>3&&qe(He,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&qe(He,8),Me(He,e),new Promise(((t,s)=>{const o=s=>{t({status:!!e.buttons.find((e=>e.id===s?.button_id)),data:s}),Tt(ht,o)};Et(ht,o)}))):(qe(He,1),{status:p}),E=()=>n(6.2,[s,r,o]),T=async e=>B()?(Me(ye,e),new Promise(((t,s)=>{Bt(mt,(s=>{e.is_close&&l(),t({status:!0,data:s})})),Bt(wt,(()=>{t({status:"closed"})}))}))):(qe(ye,1),{status:p}),B=()=>n(6.4,[o]),O=e=>{const t=function(e){try{return new URL(e)}catch(t){try{return new URL(e,"https://t.me")}catch(t){return e.startsWith("/")||(e="/"+e),new URL(e,"https://t.me")}}}(e.path_full);return e.path_full=t.pathname=t.search,I()?(Me(We,e),{status:!0}):(qe(We,1),{status:p})},I=()=>n(7,[s,r,o]);const A=async e=>F()?(e||(e={req_id:void 0}),void 0===e.req_id&&(e.req_id=i()),Me(Pe,e),new Promise(((t,s)=>{const o=s=>{s.req_id===e?.req_id&&(t({status:!0,data:s}),Tt(xt,o))};Et(xt,o)}))):(qe(Pe,1),{status:p}),F=()=>n(6.4,[s,r,o]),L=e=>j()?(Me(De,e),{status:!0}):(qe(De,1),{status:p}),j=()=>n(6.9,[s,r,o]),H=async()=>W()?(Me(Ee),new Promise(((e,t)=>{Bt(St,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(qe(Ee,1),{status:p}),W=()=>n(6.9,[s,r,o]),D=e=>Q()?(Me(Qe,e),{status:!0}):(qe(Qe,1),{status:p}),Q=()=>n(0,[s,r,o]),N=e=>U()?(Me(Ne,e),{status:!0}):(qe(Ne,1),{status:p}),U=()=>n(0,[s,r,o]),V=()=>G()?(Me(Ue),{status:!0}):(qe(Ue,1),{status:p}),G=()=>n(6.9,[s,r,o]),$=e=>J()?(Me(Ve,e),{status:!0}):(qe(Ve,1),{status:p}),J=()=>n(6.1,[s,r,o]),z=e=>K()?(Me(Ge,e),{status:!0}):(qe(Ge,1),{status:p}),K=()=>n(6.1,[s,r,o]),X=e=>Y()?(Me($e,{color:e?.color||e?.color_key}),{status:!0}):(qe($e,1),{status:p}),Y=()=>n(7.1,[s,r,o]),Z=e=>ee()?(Me(Je,e),{status:!0}):(qe(Je,1),{status:p}),ee=()=>n(6.1,[s,r,o]),te=e=>se()?(Me(ze,e),{status:!0}):(qe(ze,1),{status:p}),se=()=>n(6.2,[s,r,o]),oe=e=>re()?(Me(Ke,e),{status:!0}):(qe(Ke,1),{status:p}),re=()=>n(0,[s,r,o]),ae=e=>pe()?(Me(Xe,e),{status:!0}):(qe(Xe,1),{status:p}),pe=()=>n(6.1,[s,r,o]),ne=e=>ie()?(e.query.length>256&&qe(Ye,9),Me(Ye,e),{status:!0}):(qe(Ye,1),{status:p}),ie=()=>n(6.7,[s,r,o]),ue=e=>de()?(Me(Ze,e),{status:!0}):(qe(Ze,1),{status:p}),de=()=>n(6.1,[o]),ce=e=>_e()?(Me(et,e),{status:!0}):(qe(et,1),{status:p}),_e=()=>n(7.7,[s,r,o]),le=()=>n(7.8,[s,r,o]),xe=()=>n(8,[r,o]),ge=()=>n(8,[r,o]),Se=()=>n(8,[s,r,o]),he=()=>n(8,[s,r,o]),me=()=>n(8,[s,r,o]),we=()=>n(8,[s,r,o]),be=()=>n(8,[s,r,o]),ve=()=>n(8,[s,r,o]),fe=()=>n(8,[s,r,o]),Re=()=>n(8,[s,r,o]),qe=(e,t)=>{"development"===process.env.NODE_ENV&&console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)},Ce=()=>{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 o={};return s.forEach(((e,t)=>{if(o[t]=e,void 0!==t.match(/^(chat|receiver|user)$/g))try{o[t]=JSON.parse(e)}catch{}})),o},Me=(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)}},ke="web_app_invoke_custom_method",ye="web_app_open_scan_qr_popup",Pe="web_app_read_text_from_clipboard",Ee="web_app_request_phone",Te="web_app_close",Be="web_app_close_scan_qr_popup",Oe="web_app_data_send",Ie="web_app_expand",Ae="iframe_ready",Fe="iframe_will_reload",Le="web_app_open_invoice",je="web_app_open_link",He="web_app_open_popup",We="web_app_open_tg_link",De="web_app_ready",Qe="web_app_request_theme",Ne="web_app_request_viewport",Ue="web_app_request_write_access",Ve="web_app_set_background_color",Ge="web_app_set_header_color",$e="web_app_set_bottom_bar_color",Je="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",st="web_app_request_safe_area",ot="web_app_request_content_safe_area",rt="web_app_request_fullscreen",at="web_app_exit_fullscreen",pt="web_app_toggle_orientation_lock",nt="web_app_add_to_home_screen",it="web_app_check_home_screen",ut="web_app_send_prepared_message",dt="web_app_set_emoji_status",ct="web_app_request_emoji_status_access",_t="web_app_request_file_download";var lt=(e=>(e[e.InvokeCustomMethod=ke]="InvokeCustomMethod",e[e.OpenScanQrPopup=ye]="OpenScanQrPopup",e[e.ReadTextFromClipboard=Pe]="ReadTextFromClipboard",e[e.RequestPhone=Ee]="RequestPhone",e[e.Close=Te]="Close",e[e.CloseScanQrPopup=Be]="CloseScanQrPopup",e[e.DataSend=Oe]="DataSend",e[e.Expand=Ie]="Expand",e[e.IframeReady=Ae]="IframeReady",e[e.IframeWillReload=Fe]="IframeWillReload",e[e.OpenInvoice=Le]="OpenInvoice",e[e.OpenLink=je]="OpenLink",e[e.OpenPopup=He]="OpenPopup",e[e.OpenTgLink=We]="OpenTgLink",e[e.Ready=De]="Ready",e[e.RequestTheme=Qe]="RequestTheme",e[e.RequestViewport=Ne]="RequestViewport",e[e.RequestWriteAccess=Ue]="RequestWriteAccess",e[e.SetBackgroundColor=Ve]="SetBackgroundColor",e[e.SetHeaderColor=Ge]="SetHeaderColor",e[e.SetBottomBarColor=$e]="SetBottomBarColor",e[e.SetupBackButton=Je]="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[e.RequestSafeArea=st]="RequestSafeArea",e[e.RequestContentSafeArea=ot]="RequestContentSafeArea",e[e.RequestFullscreen=rt]="RequestFullscreen",e[e.ExitFullscreen=at]="ExitFullscreen",e[e.ToggleOrientationLock=pt]="ToggleOrientationLock",e[e.AddToHomeScreen=nt]="AddToHomeScreen",e[e.CheckHomeScreen=it]="CheckHomeScreen",e[e.SendPreparedMessage=ut]="SendPreparedMessage",e[e.SetEmojiStatus=dt]="SetEmojiStatus",e[e.RequestEmojiStatusAccess=ct]="RequestEmojiStatusAccess",e[e.RequestFileDownload=_t]="RequestFileDownload",e))(lt||{});const xt="clipboard_text_received",gt="custom_method_invoked",St="phone_requested",ht="popup_closed",mt="qr_text_received",wt="scan_qr_popup_closed",bt="theme_changed",vt="viewport_changed",ft="web_app_check_home_screen",Rt="prepared_message_sent",qt="prepared_message_failed",Ct="emoji_status_set",Mt="emoji_status_failed",kt="emoji_status_access_requested",yt="file_download_requested",Pt=((e=new Map)=>({once:(t,s,o=e.get(t),r=e=>{s(e),o&&o.splice(o.indexOf(s)>>>0,1)})=>o?o.push(r):e.set(t,[r]),on:(t,s,o=e.get(t))=>o?o.push(s):e.set(t,[s]),off:(t,s,o=e.get(t))=>o&&s?o.splice(o.indexOf(s)>>>0,1):e.set(t,[]),emit:(t,s,o=e.get(t)||[])=>{for(const e of o)e(s)}}))();(()=>{function e(e,t){e===bt&&(t.theme_params=d(t.theme_params)),Pt.emit(e,t),Pt.emit("*",{name:e,data:t})}window.TelegramGameProxy_receiveEvent=e,window.Telegram={WebView:{receiveEvent:e}},window.TelegramGameProxy={receiveEvent:e}})();const Et=(e,t)=>{Pt.on(e,t)},Tt=(e,t)=>{Pt.off(e,t)},Bt=(e,t)=>{Pt.once(e,t)};var Ot=Object.freeze({__proto__:null,off:Tt,on:Et,once:Bt});const It=e.createContext({viewport:void 0,theme:void 0,init:void 0});exports.ContextTwa=It,exports.EventBackButtonPressed="back_button_pressed",exports.EventCheckHomeScreen=ft,exports.EventClipboardTextReceived=xt,exports.EventContentSafeAreaChanged="content_safe_area_changed",exports.EventCustomMethodInvoked=gt,exports.EventEmojiStatusAccessRequested=kt,exports.EventEmojiStatusFailed=Mt,exports.EventEmojiStatusSet=Ct,exports.EventFileDownloadRequested=yt,exports.EventInvoiceClosed="invoice_closed",exports.EventMainButtonPressed="main_button_pressed",exports.EventPhoneRequested=St,exports.EventPopupClosed=ht,exports.EventPreparedMessageFailed=qt,exports.EventPreparedMessageSent=Rt,exports.EventQrTextReceived=mt,exports.EventReloadIframe="reload_iframe",exports.EventSafeAreaChanged="safe_area_changed",exports.EventScanQrPopupClosed=wt,exports.EventSetCustomStyle="set_custom_style",exports.EventSettingsButtonPressed="settings_button_pressed",exports.EventThemeChanged=bt,exports.EventViewportChanged=vt,exports.EventWriteAccessRequested="write_access_requested",exports.Method=lt,exports.MethodAddToHomeScreen=nt,exports.MethodCheckHomeScreen=it,exports.MethodClose=Te,exports.MethodCloseScanQrPopup=Be,exports.MethodDataSend=Oe,exports.MethodExitFullscreen=at,exports.MethodExpand=Ie,exports.MethodIframeReady=Ae,exports.MethodIframeWillReload=Fe,exports.MethodInvokeCustomMethod=ke,exports.MethodOpenInvoice=Le,exports.MethodOpenLink=je,exports.MethodOpenPopup=He,exports.MethodOpenScanQrPopup=ye,exports.MethodOpenTgLink=We,exports.MethodReadTextFromClipboard=Pe,exports.MethodReady=De,exports.MethodRequestContentSafeArea=ot,exports.MethodRequestEmojiStatusAccess=ct,exports.MethodRequestFileDownload=_t,exports.MethodRequestFullscreen=rt,exports.MethodRequestPhone=Ee,exports.MethodRequestSafeArea=st,exports.MethodRequestTheme=Qe,exports.MethodRequestViewport=Ne,exports.MethodRequestWriteAccess=Ue,exports.MethodSendPreparedMessage=ut,exports.MethodSetBackgroundColor=Ve,exports.MethodSetBottomBarColor=$e,exports.MethodSetEmojiStatus=dt,exports.MethodSetHeaderColor=Ge,exports.MethodSetupBackButton=Je,exports.MethodSetupClosingBehavior=ze,exports.MethodSetupMainButton=Ke,exports.MethodSetupSettingsButton=Xe,exports.MethodSetupSwipeBehavior=et,exports.MethodShareToStory=tt,exports.MethodSwitchInlineQuery=Ye,exports.MethodToggleOrientationLock=pt,exports.MethodTriggerHapticFeedback=Ze,exports.NOT_SUPPORTED=p,exports.ProviderTWA=s=>{const[o,r]=t.createStore({viewport:void 0,theme:void 0,init:void 0});return e.createEffect((()=>{const t=()=>{r("init",Ce())};t();const s=e=>{t(),r("viewport",e)};Et(vt,s),N();const o=e=>{t(),r("theme",e)};return Et(bt,o),N(),e.onCleanup((()=>{Tt(vt,s),Tt(bt,o)})),()=>{Tt(vt,s),Tt(bt,o)}})),It.Provider({value:o,children:s.children})},exports.TG_DESKTOP=r,exports.TG_PHONE=o,exports.TG_WEB=s,exports.bridgeAddToHomeScreen=()=>ge()?(Me(nt),{status:!0}):(qe(nt,1),{status:p}),exports.bridgeCheckHomeScreen=async e=>xe()?(Me(it,e),new Promise(((e,t)=>{const s=t=>{e({status:!0,data:t}),Tt(ft,s)};Et(ft,s)}))):(qe(it,1),{status:p,data:void 0}),exports.bridgeClose=c,exports.bridgeCloseScanQrPopup=l,exports.bridgeDataSend=g,exports.bridgeDownloadFile=async e=>Re()?new Promise(((t,s)=>{Bt(yt,(function(e){t({status:"downloading"===e.status})})),Me(_t,e)})):(qe(_t,1),{status:p}),exports.bridgeExpand=h,exports.bridgeGetInitData=Ce,exports.bridgeGetThemeParams=d,exports.bridgeIframeReady=w,exports.bridgeIframeWillReload=v,exports.bridgeInvokeCustomMethod=R,exports.bridgeOpenInvoice=C,exports.bridgeOpenLink=k,exports.bridgeOpenPopup=P,exports.bridgeOpenScanQrPopup=T,exports.bridgeOpenTgLink=O,exports.bridgeReadTextFromClipboard=A,exports.bridgeReady=L,exports.bridgeRequestContentSafeAreaInset=()=>he()?(Me(ot),{status:!0}):(qe(ot,1),{status:p}),exports.bridgeRequestEmojiStatus=async e=>be()?new Promise(((t,s)=>{Bt(kt,(function(e){t({status:"allowed"===e.status})})),Me(ct,e)})):(qe(ct,1),{status:p}),exports.bridgeRequestPhone=H,exports.bridgeRequestSafeAreaInset=()=>Se()?(Me(st),{status:!0}):(qe(st,1),{status:p}),exports.bridgeRequestTheme=D,exports.bridgeRequestViewport=N,exports.bridgeRequestWriteAccess=V,exports.bridgeSend=Me,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(s){return window.sessionStorage.setItem("__telegram__"+e,t),{status:!0}}},exports.bridgeSetBackgroundColor=$,exports.bridgeSetBottomBarColor=X,exports.bridgeSetEmojiStatus=async e=>ve()?new Promise(((t,s)=>{Bt(Ct,(()=>t({status:!0}))),Bt(Mt,(()=>t({status:!1}))),Me(dt,e)})):(qe(dt,1),{status:p}),exports.bridgeSetHeaderColor=z,exports.bridgeSetupBackButton=Z,exports.bridgeSetupClosingBehavior=te,exports.bridgeSetupFullScreen=e=>{const t=e?.is_full||!1;return me()?(Me(t?rt:at),{status:!0}):(qe(t?rt:at,1),{status:p})},exports.bridgeSetupMainButton=oe,exports.bridgeSetupOrientation=e=>we()?(Me(pt,e),{status:!0}):(qe(pt,1),{status:p}),exports.bridgeSetupSettingsButton=ae,exports.bridgeSetupSwipeBehavior=ce,exports.bridgeShareMessage=async e=>fe()?new Promise(((t,s)=>{Bt(Rt,(()=>t({status:!0}))),Bt(qt,(()=>t({status:!1}))),Me(ut,e)})):(qe(ut,1),{status:p}),exports.bridgeShareToStory=e=>le()?e?.text&&e?.text.length>2048?(console.warn(`[@apiteam/twa-bridge](${tt}) | Text is too long`),{status:!1,error_id:1}):e?.widget_link?.name&&e?.widget_link.name.length>48?(console.warn(`[@apiteam/twa-bridge](${tt}) | Link name is too long`),{status:!1,error_id:2}):(Me(tt,e),{status:!0}):(qe(tt,1),{status:p}),exports.bridgeSwitchInlineQuery=ne,exports.bridgeTriggerHapticFeedback=ue,exports.createIsViewportChanged=()=>{const[t,s]=e.createSignal({height:0,is_expanded:!1,is_state_stable:!1}),o=e=>s(e);return e.onMount((()=>{Et(vt,o),Me(Ne)})),e.onCleanup((()=>{Tt(vt,o)})),t},exports.debug=qe,exports.getAppData=()=>{const e=window.location.hash.slice(1);return new URLSearchParams(e).get("tgWebAppData")},exports.getPlatform=a,exports.listener=Ot,exports.sender=Me,exports.supportAddToHomeScreen=ge,exports.supportCheckHomeScreen=xe,exports.supportClose=_,exports.supportCloseScanQrPopup=x,exports.supportDataSend=S,exports.supportDownloadFile=Re,exports.supportExpand=m,exports.supportIframeReady=b,exports.supportIframeWillReload=f,exports.supportInvokeCustomMethod=q,exports.supportOpenInvoice=M,exports.supportOpenLink=y,exports.supportOpenPopup=E,exports.supportOpenScanQrPopup=B,exports.supportOpenTgLink=I,exports.supportReadTextFromClipboard=F,exports.supportReady=j,exports.supportRequestContentSafeAreaInset=he,exports.supportRequestEmojiStatus=be,exports.supportRequestPhone=W,exports.supportRequestSafeAreaInset=Se,exports.supportRequestTheme=Q,exports.supportRequestViewport=U,exports.supportRequestWriteAccess=G,exports.supportSessionStorageGet=()=>!0,exports.supportSessionStorageSet=()=>!0,exports.supportSetBackgroundColor=J,exports.supportSetBottomBarColor=Y,exports.supportSetEmojiStatus=ve,exports.supportSetHeaderColor=K,exports.supportSetupBackButton=ee,exports.supportSetupClosingBehavior=se,exports.supportSetupFullScreen=me,exports.supportSetupMainButton=re,exports.supportSetupOrientation=we,exports.supportSetupSettingsButton=pe,exports.supportSetupSwipeBehavior=_e,exports.supportShareMessage=fe,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 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};
|
|
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((()=>{os(Vt,o),Je(_t)})),s((()=>{ns(Vt,o)})),a},i="web",u="phone",_="desktop",p=()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppPlatform")??"ios";return["android","ios"].includes(t)?u:["tdesktop","macos"].includes(t)?_: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(p())},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},w=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},b=e=>m()?(Je(Xe,e),{status:!0}):(Ue(Xe,1),{status:d}),m=()=>c(0,[i,_,u]),S=e=>h()?(Je(Ye,e),{status:!0}):(Ue(Ye,1),{status:d}),h=()=>c(6.4,[u]),f=e=>v()?(Je(Ze,e),{status:!0}):(Ue(Ze,1),{status:d}),v=()=>c(0,[i,_,u]),q=e=>y()?(Je(et,e),{status:!0}):(Ue(et,1),{status:d}),y=()=>c(0,[u]),R=e=>k()?(Je(tt,e),{status:!0}):(Ue(tt,1),{status:d}),k=()=>c(0,[i]),P=()=>x()?(Je(tt),{status:!0}):(Ue(tt,1),{status:d}),x=()=>c(0,[i]),C=async e=>O()?(void 0===e.req_id&&(e.req_id=l()),Je(Ve,e),new Promise(((t,s)=>{const a=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),ns(jt,a))};os(jt,a)}))):(Ue(Ve,1),{status:d}),O=()=>c(6.9,[i,_,u]),T=e=>B()?(Je(at,e),{status:!0}):(Ue(at,1),{status:d}),B=()=>c(6.1,[i,_,u]),I=e=>L()?(Je(rt,e),{status:!0}):(Ue(rt,1),{status:d}),L=()=>c(6.4,[i,_,u]),A=async e=>E()?(e.title.length>64&&Ue(ot,3),e.message.length<1&&Ue(ot,4),e.message.length>256&&Ue(ot,5),e.buttons.length<1&&Ue(ot,6),e.buttons.length>3&&Ue(ot,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&Ue(ot,8),Je(ot,e),new Promise(((t,s)=>{const a=s=>{t({status:!!e.buttons.find((e=>e.id===s?.button_id)),data:s}),ns(Mt,a)};os(Mt,a)}))):(Ue(ot,1),{status:d}),E=()=>c(6.2,[i,_,u]),j=async e=>W()?(Je(Ge,e),new Promise(((t,s)=>{is(Nt,(s=>{e.is_close&&S(),t({status:!0,data:s})})),is(Qt,(()=>{t({status:"closed"})}))}))):(Ue(Ge,1),{status:d}),W=()=>c(6.4,[u]),F=e=>{const t=function(e){try{return new URL(e)}catch(t){try{return new URL(e,"https://t.me")}catch(t){return e.startsWith("/")||(e="/"+e),new URL(e,"https://t.me")}}}(e.path_full);return e.path_full=t.pathname=t.search,D()?(Je(nt,e),{status:!0}):(Ue(nt,1),{status:d})},D=()=>c(7,[i,_,u]);const M=async e=>H()?(e||(e={req_id:void 0}),void 0===e.req_id&&(e.req_id=l()),Je(ze,e),new Promise(((t,s)=>{const a=s=>{s.req_id===e?.req_id&&(t({status:!0,data:s}),ns(Et,a))};os(Et,a)}))):(Ue(ze,1),{status:d}),H=()=>c(6.4,[i,_,u]),N=e=>Q()?(Je(it,e),{status:!0}):(Ue(it,1),{status:d}),Q=()=>c(6.9,[i,_,u]),U=async()=>$()?(Je(Ke),new Promise(((e,t)=>{is(Dt,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(Ue(Ke,1),{status:d}),$=()=>c(6.9,[i,_,u]),J=e=>V()?(Je(ut,e),{status:!0}):(Ue(ut,1),{status:d}),V=()=>c(0,[i,_,u]),G=e=>z()?(Je(_t,e),{status:!0}):(Ue(_t,1),{status:d}),z=()=>c(0,[i,_,u]),K=()=>X()?(Je(pt),{status:!0}):(Ue(pt,1),{status:d}),X=()=>c(6.9,[i,_,u]),Y=e=>Z()?(Je(dt,e),{status:!0}):(Ue(dt,1),{status:d}),Z=()=>c(6.1,[i,_,u]),ee=e=>te()?(Je(ct,e),{status:!0}):(Ue(ct,1),{status:d}),te=()=>c(6.1,[i,_,u]),se=e=>ae()?(Je(lt,{color:e?.color||e?.color_key}),{status:!0}):(Ue(lt,1),{status:d}),ae=()=>c(7.1,[i,_,u]),re=e=>oe()?(Je(gt,e),{status:!0}):(Ue(gt,1),{status:d}),oe=()=>c(6.1,[i,_,u]),ne=e=>ie()?(Je(wt,e),{status:!0}):(Ue(wt,1),{status:d}),ie=()=>c(6.2,[i,_,u]),ue=e=>_e()?(Je(bt,e),{status:!0}):(Ue(bt,1),{status:d}),_e=()=>c(0,[i,_,u]),pe=e=>de()?(Je(mt,e),{status:!0}):(Ue(mt,1),{status:d}),de=()=>c(6.1,[i,_,u]),ce=e=>le()?(e.query.length>256&&Ue(St,9),Je(St,e),{status:!0}):(Ue(St,1),{status:d}),le=()=>c(6.7,[i,_,u]),ge=e=>we()?(Je(ht,e),{status:!0}):(Ue(ht,1),{status:d}),we=()=>c(6.1,[u]),be=({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,Se=({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}}},he=()=>!0,fe=e=>ve()?(Je(ft,e),{status:!0}):(Ue(ft,1),{status:d}),ve=()=>c(7.7,[i,_,u]),qe=e=>ye()?e?.text&&e?.text.length>2048?(console.warn(`[@apiteam/twa-bridge](${vt}) | Text is too long`),{status:!1,error_id:1}):e?.widget_link?.name&&e?.widget_link.name.length>48?(console.warn(`[@apiteam/twa-bridge](${vt}) | Link name is too long`),{status:!1,error_id:2}):(Je(vt,e),{status:!0}):(Ue(vt,1),{status:d}),ye=()=>c(7.8,[i,_,u]),Re=async e=>ke()?(Je(Ct,e),new Promise(((e,t)=>{const s=t=>{e({status:!0,data:t}),ns(Xt,s)};os(Xt,s)}))):(Ue(Ct,1),{status:d,data:void 0}),ke=()=>c(8,[_,u]),Pe=()=>xe()?(Je(xt),{status:!0}):(Ue(xt,1),{status:d}),xe=()=>c(8,[_,u]),Ce=()=>Oe()?(Je(qt),{status:!0}):(Ue(qt,1),{status:d}),Oe=()=>c(8,[i,_,u]),Te=()=>Be()?(Je(yt),{status:!0}):(Ue(yt,1),{status:d}),Be=()=>c(8,[i,_,u]),Ie=e=>{const t=e?.is_full||!1;return Le()?(Je(t?Rt:kt),{status:!0}):(Ue(t?Rt:kt,1),{status:d})},Le=()=>c(8,[i,_,u]),Ae=e=>Ee()?(Je(Pt,e),{status:!0}):(Ue(Pt,1),{status:d}),Ee=()=>c(8,[i,_,u]),je=async e=>We()?new Promise(((t,s)=>{is(ss,(function(e){t({status:"allowed"===e.status})})),Je(Bt,e)})):(Ue(Bt,1),{status:d}),We=()=>c(8,[i,_,u]),Fe=async e=>De()?new Promise(((t,s)=>{is(es,(()=>t({status:!0}))),is(ts,(()=>t({status:!1}))),Je(Tt,e)})):(Ue(Tt,1),{status:d}),De=()=>c(8,[i,_,u]),Me=async e=>He()?new Promise(((t,s)=>{is(Yt,(()=>t({status:!0}))),is(Zt,(()=>t({status:!1}))),Je(Ot,e)})):(Ue(Ot,1),{status:d}),He=()=>c(8,[i,_,u]),Ne=async e=>Qe()?new Promise(((t,s)=>{is(as,(function(e){t({status:"downloading"===e.status})})),Je(It,e)})):(Ue(It,1),{status:d}),Qe=()=>c(8,[i,_,u]),Ue=(e,t)=>{"development"===process.env.NODE_ENV&&console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)},$e=()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppData");if(!t)return void Ue("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},Je=(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){Ue("postMessage Iframe",10)}},Ve="web_app_invoke_custom_method",Ge="web_app_open_scan_qr_popup",ze="web_app_read_text_from_clipboard",Ke="web_app_request_phone",Xe="web_app_close",Ye="web_app_close_scan_qr_popup",Ze="web_app_data_send",et="web_app_expand",tt="iframe_ready",st="iframe_will_reload",at="web_app_open_invoice",rt="web_app_open_link",ot="web_app_open_popup",nt="web_app_open_tg_link",it="web_app_ready",ut="web_app_request_theme",_t="web_app_request_viewport",pt="web_app_request_write_access",dt="web_app_set_background_color",ct="web_app_set_header_color",lt="web_app_set_bottom_bar_color",gt="web_app_setup_back_button",wt="web_app_setup_closing_behavior",bt="web_app_setup_main_button",mt="web_app_setup_settings_button",St="web_app_switch_inline_query",ht="web_app_trigger_haptic_feedback",ft="web_app_setup_swipe_behavior",vt="web_app_share_to_story",qt="web_app_request_safe_area",yt="web_app_request_content_safe_area",Rt="web_app_request_fullscreen",kt="web_app_exit_fullscreen",Pt="web_app_toggle_orientation_lock",xt="web_app_add_to_home_screen",Ct="web_app_check_home_screen",Ot="web_app_send_prepared_message",Tt="web_app_set_emoji_status",Bt="web_app_request_emoji_status_access",It="web_app_request_file_download";var Lt=(e=>(e[e.InvokeCustomMethod=Ve]="InvokeCustomMethod",e[e.OpenScanQrPopup=Ge]="OpenScanQrPopup",e[e.ReadTextFromClipboard=ze]="ReadTextFromClipboard",e[e.RequestPhone=Ke]="RequestPhone",e[e.Close=Xe]="Close",e[e.CloseScanQrPopup=Ye]="CloseScanQrPopup",e[e.DataSend=Ze]="DataSend",e[e.Expand=et]="Expand",e[e.IframeReady=tt]="IframeReady",e[e.IframeWillReload=st]="IframeWillReload",e[e.OpenInvoice=at]="OpenInvoice",e[e.OpenLink=rt]="OpenLink",e[e.OpenPopup=ot]="OpenPopup",e[e.OpenTgLink=nt]="OpenTgLink",e[e.Ready=it]="Ready",e[e.RequestTheme=ut]="RequestTheme",e[e.RequestViewport=_t]="RequestViewport",e[e.RequestWriteAccess=pt]="RequestWriteAccess",e[e.SetBackgroundColor=dt]="SetBackgroundColor",e[e.SetHeaderColor=ct]="SetHeaderColor",e[e.SetBottomBarColor=lt]="SetBottomBarColor",e[e.SetupBackButton=gt]="SetupBackButton",e[e.SetupClosingBehavior=wt]="SetupClosingBehavior",e[e.SetupMainButton=bt]="SetupMainButton",e[e.SetupSettingsButton=mt]="SetupSettingsButton",e[e.SwitchInlineQuery=St]="SwitchInlineQuery",e[e.TriggerHapticFeedback=ht]="TriggerHapticFeedback",e[e.SetupSwipeBehavior=ft]="SetupSwipeBehavior",e[e.ShareToStory=vt]="ShareToStory",e[e.RequestSafeArea=qt]="RequestSafeArea",e[e.RequestContentSafeArea=yt]="RequestContentSafeArea",e[e.RequestFullscreen=Rt]="RequestFullscreen",e[e.ExitFullscreen=kt]="ExitFullscreen",e[e.ToggleOrientationLock=Pt]="ToggleOrientationLock",e[e.AddToHomeScreen=xt]="AddToHomeScreen",e[e.CheckHomeScreen=Ct]="CheckHomeScreen",e[e.SendPreparedMessage=Ot]="SendPreparedMessage",e[e.SetEmojiStatus=Tt]="SetEmojiStatus",e[e.RequestEmojiStatusAccess=Bt]="RequestEmojiStatusAccess",e[e.RequestFileDownload=It]="RequestFileDownload",e))(Lt||{});const At="back_button_pressed",Et="clipboard_text_received",jt="custom_method_invoked",Wt="invoice_closed",Ft="main_button_pressed",Dt="phone_requested",Mt="popup_closed",Ht="reload_iframe",Nt="qr_text_received",Qt="scan_qr_popup_closed",Ut="set_custom_style",$t="settings_button_pressed",Jt="theme_changed",Vt="viewport_changed",Gt="write_access_requested",zt="safe_area_changed",Kt="content_safe_area_changed",Xt="web_app_check_home_screen",Yt="prepared_message_sent",Zt="prepared_message_failed",es="emoji_status_set",ts="emoji_status_failed",ss="emoji_status_access_requested",as="file_download_requested",rs=((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===Jt&&(t.theme_params=w(t.theme_params)),rs.emit(e,t),rs.emit("*",{name:e,data:t})}window.TelegramGameProxy_receiveEvent=e,window.Telegram={WebView:{receiveEvent:e}},window.TelegramGameProxy={receiveEvent:e}})();const os=(e,t)=>{rs.on(e,t)},ns=(e,t)=>{rs.off(e,t)},is=(e,t)=>{rs.once(e,t)};var us=Object.freeze({__proto__:null,off:ns,on:os,once:is});const _s=()=>{const e=window.location.hash.slice(1);return new URLSearchParams(e).get("tgWebAppData")},ps=a({viewport:void 0,theme:void 0,init:void 0}),ds=e=>{const[t,a]=o({viewport:void 0,theme:void 0,init:void 0});return r((()=>{const e=()=>{a("init",$e())};e();const t=t=>{e(),a("viewport",t)};os(Vt,t),G();const r=t=>{e(),a("theme",t)};return os(Jt,r),G(),s((()=>{ns(Vt,t),ns(Jt,r)})),()=>{ns(Vt,t),ns(Jt,r)}})),ps.Provider({value:t,children:e.children})};export{ps as ContextTwa,At as EventBackButtonPressed,Xt as EventCheckHomeScreen,Et as EventClipboardTextReceived,Kt as EventContentSafeAreaChanged,jt as EventCustomMethodInvoked,ss as EventEmojiStatusAccessRequested,ts as EventEmojiStatusFailed,es as EventEmojiStatusSet,as as EventFileDownloadRequested,Wt as EventInvoiceClosed,Ft as EventMainButtonPressed,Dt as EventPhoneRequested,Mt as EventPopupClosed,Zt as EventPreparedMessageFailed,Yt as EventPreparedMessageSent,Nt as EventQrTextReceived,Ht as EventReloadIframe,zt as EventSafeAreaChanged,Qt as EventScanQrPopupClosed,Ut as EventSetCustomStyle,$t as EventSettingsButtonPressed,Jt as EventThemeChanged,Vt as EventViewportChanged,Gt as EventWriteAccessRequested,Lt as Method,xt as MethodAddToHomeScreen,Ct as MethodCheckHomeScreen,Xe as MethodClose,Ye as MethodCloseScanQrPopup,Ze as MethodDataSend,kt as MethodExitFullscreen,et as MethodExpand,tt as MethodIframeReady,st as MethodIframeWillReload,Ve as MethodInvokeCustomMethod,at as MethodOpenInvoice,rt as MethodOpenLink,ot as MethodOpenPopup,Ge as MethodOpenScanQrPopup,nt as MethodOpenTgLink,ze as MethodReadTextFromClipboard,it as MethodReady,yt as MethodRequestContentSafeArea,Bt as MethodRequestEmojiStatusAccess,It as MethodRequestFileDownload,Rt as MethodRequestFullscreen,Ke as MethodRequestPhone,qt as MethodRequestSafeArea,ut as MethodRequestTheme,_t as MethodRequestViewport,pt as MethodRequestWriteAccess,Ot as MethodSendPreparedMessage,dt as MethodSetBackgroundColor,lt as MethodSetBottomBarColor,Tt as MethodSetEmojiStatus,ct as MethodSetHeaderColor,gt as MethodSetupBackButton,wt as MethodSetupClosingBehavior,bt as MethodSetupMainButton,mt as MethodSetupSettingsButton,ft as MethodSetupSwipeBehavior,vt as MethodShareToStory,St as MethodSwitchInlineQuery,Pt as MethodToggleOrientationLock,ht as MethodTriggerHapticFeedback,d as NOT_SUPPORTED,ds as ProviderTWA,_ as TG_DESKTOP,u as TG_PHONE,i as TG_WEB,Pe as bridgeAddToHomeScreen,Re as bridgeCheckHomeScreen,b as bridgeClose,S as bridgeCloseScanQrPopup,f as bridgeDataSend,Ne as bridgeDownloadFile,q as bridgeExpand,$e as bridgeGetInitData,w as bridgeGetThemeParams,R as bridgeIframeReady,P as bridgeIframeWillReload,C as bridgeInvokeCustomMethod,T as bridgeOpenInvoice,I as bridgeOpenLink,A as bridgeOpenPopup,j as bridgeOpenScanQrPopup,F as bridgeOpenTgLink,M as bridgeReadTextFromClipboard,N as bridgeReady,Te as bridgeRequestContentSafeAreaInset,je as bridgeRequestEmojiStatus,U as bridgeRequestPhone,Ce as bridgeRequestSafeAreaInset,J as bridgeRequestTheme,G as bridgeRequestViewport,K as bridgeRequestWriteAccess,Je as bridgeSend,Se as bridgeSessionStorageGet,be as bridgeSessionStorageSet,Y as bridgeSetBackgroundColor,se as bridgeSetBottomBarColor,Fe as bridgeSetEmojiStatus,ee as bridgeSetHeaderColor,re as bridgeSetupBackButton,ne as bridgeSetupClosingBehavior,Ie as bridgeSetupFullScreen,ue as bridgeSetupMainButton,Ae as bridgeSetupOrientation,pe as bridgeSetupSettingsButton,fe as bridgeSetupSwipeBehavior,Me as bridgeShareMessage,qe as bridgeShareToStory,ce as bridgeSwitchInlineQuery,ge as bridgeTriggerHapticFeedback,n as createIsViewportChanged,Ue as debug,_s as getAppData,p as getPlatform,us as listener,Je as sender,xe as supportAddToHomeScreen,ke as supportCheckHomeScreen,m as supportClose,h as supportCloseScanQrPopup,v as supportDataSend,Qe as supportDownloadFile,y as supportExpand,k as supportIframeReady,x as supportIframeWillReload,O as supportInvokeCustomMethod,B as supportOpenInvoice,L as supportOpenLink,E as supportOpenPopup,W as supportOpenScanQrPopup,D as supportOpenTgLink,H as supportReadTextFromClipboard,Q as supportReady,Be as supportRequestContentSafeAreaInset,We as supportRequestEmojiStatus,$ as supportRequestPhone,Oe as supportRequestSafeAreaInset,V as supportRequestTheme,z as supportRequestViewport,X as supportRequestWriteAccess,he as supportSessionStorageGet,me as supportSessionStorageSet,Z as supportSetBackgroundColor,ae as supportSetBottomBarColor,De as supportSetEmojiStatus,te as supportSetHeaderColor,oe as supportSetupBackButton,ie as supportSetupClosingBehavior,Le as supportSetupFullScreen,_e as supportSetupMainButton,Ee as supportSetupOrientation,de as supportSetupSettingsButton,ve as supportSetupSwipeBehavior,He as supportShareMessage,ye as supportShareToStory,le as supportSwitchInlineQuery,we as supportTriggerHapticFeedback};
|