@apiteam/twa-bridge 7.0.0-beta.8 → 7.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/react/index.d.ts +105 -44
- package/react/index.js +1 -1
- package/react/index.mjs +1 -1
- package/solid/index.d.ts +153 -54
- package/solid/index.js +1 -1
- package/solid/index.mjs +1 -1
package/package.json
CHANGED
package/react/index.d.ts
CHANGED
|
@@ -595,6 +595,7 @@ type SessionStorageGet = ({ key }: {
|
|
|
595
595
|
key: string;
|
|
596
596
|
}) => {
|
|
597
597
|
status: boolean | typeof NOT_SUPPORTED;
|
|
598
|
+
value?: any;
|
|
598
599
|
};
|
|
599
600
|
/**
|
|
600
601
|
* sessions storage get.
|
|
@@ -605,6 +606,20 @@ declare const sessionStorageGet: SessionStorageGet;
|
|
|
605
606
|
*/
|
|
606
607
|
declare const supportSessionStorageGet: () => boolean;
|
|
607
608
|
|
|
609
|
+
type SetupSwipeBehavior = ({ allow_vertical_swipe, }: {
|
|
610
|
+
allow_vertical_swipe: boolean;
|
|
611
|
+
}) => {
|
|
612
|
+
status: boolean | typeof NOT_SUPPORTED;
|
|
613
|
+
};
|
|
614
|
+
/**
|
|
615
|
+
* sessions storage set.
|
|
616
|
+
*/
|
|
617
|
+
declare const setupSwipeBehavior: SetupSwipeBehavior;
|
|
618
|
+
/**
|
|
619
|
+
* Method support check
|
|
620
|
+
*/
|
|
621
|
+
declare const supportSetupSwipeBehavior: () => boolean;
|
|
622
|
+
|
|
608
623
|
type User = {
|
|
609
624
|
/**
|
|
610
625
|
* Optional. True, if this user added the bot to the attachment menu.
|
|
@@ -754,13 +769,13 @@ declare const debug: Debug;
|
|
|
754
769
|
|
|
755
770
|
type EventsData = {
|
|
756
771
|
/**
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
772
|
+
* User clicked the Back Button.
|
|
773
|
+
*/
|
|
774
|
+
back_button_pressed: undefined;
|
|
760
775
|
/**
|
|
761
776
|
* Telegram application attempted to extract text from clipboard.
|
|
762
777
|
*/
|
|
763
|
-
|
|
778
|
+
clipboard_text_received: {
|
|
764
779
|
/**
|
|
765
780
|
* Passed during the web_app_read_text_from_clipboard method invocation req_id value.
|
|
766
781
|
*/
|
|
@@ -771,9 +786,9 @@ type EventsData = {
|
|
|
771
786
|
data?: string | null;
|
|
772
787
|
};
|
|
773
788
|
/**
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
789
|
+
* Custom method invocation completed.
|
|
790
|
+
*/
|
|
791
|
+
custom_method_invoked: {
|
|
777
792
|
/**
|
|
778
793
|
* Unique identifier of this invocation.
|
|
779
794
|
*/
|
|
@@ -788,9 +803,9 @@ type EventsData = {
|
|
|
788
803
|
error?: string;
|
|
789
804
|
};
|
|
790
805
|
/**
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
806
|
+
* An invoice was closed.
|
|
807
|
+
*/
|
|
808
|
+
invoice_closed: {
|
|
794
809
|
/**
|
|
795
810
|
* Passed during the web_app_open_invoice method invocation slug value.
|
|
796
811
|
*/
|
|
@@ -809,22 +824,22 @@ type EventsData = {
|
|
|
809
824
|
status: 'paid' | 'failed' | 'pending' | 'cancelled';
|
|
810
825
|
};
|
|
811
826
|
/**
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
827
|
+
* User clicked the Main Button.
|
|
828
|
+
*/
|
|
829
|
+
main_button_pressed: undefined;
|
|
815
830
|
/**
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
831
|
+
* Application received phone access request status.
|
|
832
|
+
*/
|
|
833
|
+
phone_requested: {
|
|
819
834
|
/**
|
|
820
835
|
* Request status. Can only be sent
|
|
821
836
|
*/
|
|
822
837
|
status: 'sent';
|
|
823
838
|
};
|
|
824
839
|
/**
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
840
|
+
* Popup was closed.
|
|
841
|
+
*/
|
|
842
|
+
popup_closed: {
|
|
828
843
|
/**
|
|
829
844
|
* Optional. Identifier of the clicked button.
|
|
830
845
|
*
|
|
@@ -833,47 +848,90 @@ type EventsData = {
|
|
|
833
848
|
button_id?: string;
|
|
834
849
|
};
|
|
835
850
|
/**
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
851
|
+
* Parent iframe requested current iframe reload.
|
|
852
|
+
*/
|
|
853
|
+
reload_iframe: undefined;
|
|
839
854
|
/**
|
|
840
855
|
* The QR scanner scanned some QR and extracted its content.
|
|
841
856
|
*/
|
|
842
|
-
|
|
857
|
+
qr_text_received: {
|
|
843
858
|
/**
|
|
844
859
|
* Optional. Data extracted from the QR.
|
|
845
860
|
*/
|
|
846
861
|
data?: string;
|
|
847
862
|
};
|
|
848
863
|
/**
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
864
|
+
* QR scanner was closed.
|
|
865
|
+
*/
|
|
866
|
+
scan_qr_popup_closed: undefined;
|
|
852
867
|
/**
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
868
|
+
* The event which is usually sent by the Telegram web application.
|
|
869
|
+
*
|
|
870
|
+
* Its payload represents <style/> tag html content, a developer could use. The stylesheet described in the payload will help the developer to stylize the app scrollbar (but he is still able to do it himself).
|
|
871
|
+
*/
|
|
872
|
+
set_custom_style: undefined;
|
|
858
873
|
/**
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
874
|
+
* Occurs when the Settings Button was pressed.
|
|
875
|
+
*/
|
|
876
|
+
settings_button_pressed: undefined;
|
|
862
877
|
/**
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
878
|
+
* Occurs whenever the theme was changed in the user's Telegram app ( including switching to night mode).
|
|
879
|
+
*/
|
|
880
|
+
theme_changed: {
|
|
866
881
|
/**
|
|
867
882
|
* Map where the key is a theme stylesheet key and value is the corresponding color in #RRGGBB format.
|
|
868
883
|
*/
|
|
869
|
-
theme_params:
|
|
884
|
+
theme_params: {
|
|
885
|
+
bg_color: string;
|
|
886
|
+
text_color: string;
|
|
887
|
+
hint_color: string;
|
|
888
|
+
link_color: string;
|
|
889
|
+
button_color: string;
|
|
890
|
+
button_text_color: string;
|
|
891
|
+
/**
|
|
892
|
+
* Bot API 6.1+
|
|
893
|
+
*/
|
|
894
|
+
secondary_bg_color: string;
|
|
895
|
+
/**
|
|
896
|
+
* Bot API 7.0+
|
|
897
|
+
*/
|
|
898
|
+
header_bg_color: string;
|
|
899
|
+
/**
|
|
900
|
+
* Bot API 7.10+
|
|
901
|
+
*/
|
|
902
|
+
bottom_bar_bg_color: string;
|
|
903
|
+
/**
|
|
904
|
+
* Bot API 7.0+
|
|
905
|
+
*/
|
|
906
|
+
accent_text_color: string;
|
|
907
|
+
/**
|
|
908
|
+
* Bot API 7.0+
|
|
909
|
+
*/
|
|
910
|
+
section_bg_color: string;
|
|
911
|
+
/**
|
|
912
|
+
* Bot API 7.0+
|
|
913
|
+
*/
|
|
914
|
+
section_header_text_color: string;
|
|
915
|
+
/**
|
|
916
|
+
* Bot API 7.6+
|
|
917
|
+
*/
|
|
918
|
+
section_separator_color: string;
|
|
919
|
+
/**
|
|
920
|
+
* Bot API 7.0+
|
|
921
|
+
*/
|
|
922
|
+
subtitle_text_color: string;
|
|
923
|
+
/**
|
|
924
|
+
* Bot API 7.0+
|
|
925
|
+
*/
|
|
926
|
+
destructive_text_color: string;
|
|
927
|
+
};
|
|
870
928
|
};
|
|
871
929
|
/**
|
|
872
930
|
* Occurs whenever the viewport has been changed.
|
|
873
931
|
*
|
|
874
932
|
* For example, when the user started dragging the application or called the expansion method.
|
|
875
933
|
*/
|
|
876
|
-
|
|
934
|
+
viewport_changed: {
|
|
877
935
|
/**
|
|
878
936
|
* The viewport height.
|
|
879
937
|
*/
|
|
@@ -892,9 +950,9 @@ type EventsData = {
|
|
|
892
950
|
is_state_stable: boolean;
|
|
893
951
|
};
|
|
894
952
|
/**
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
953
|
+
* Application received write access request status.
|
|
954
|
+
*/
|
|
955
|
+
write_access_requested: {
|
|
898
956
|
/**
|
|
899
957
|
* Request status. Can only be allowed.
|
|
900
958
|
*/
|
|
@@ -914,7 +972,7 @@ declare global {
|
|
|
914
972
|
interface Window {
|
|
915
973
|
TelegramWebviewProxy: TelegramWebviewProxy;
|
|
916
974
|
TelegramGameProxy: TelegramGameProxy;
|
|
917
|
-
TelegramGameProxy_receiveEvent: TelegramGameProxy[
|
|
975
|
+
TelegramGameProxy_receiveEvent: TelegramGameProxy['receiveEvent'];
|
|
918
976
|
Telegram: {
|
|
919
977
|
WebView: TelegramGameProxy;
|
|
920
978
|
};
|
|
@@ -933,9 +991,11 @@ declare namespace listener {
|
|
|
933
991
|
export { type listener_EventsData as EventsData, listener_off as off, listener_on as on, listener_once as once };
|
|
934
992
|
}
|
|
935
993
|
|
|
994
|
+
type GetPlatform = () => 'phone' | 'web' | 'desktop';
|
|
936
995
|
declare const TG_WEB = "web";
|
|
937
996
|
declare const TG_PHONE = "phone";
|
|
938
997
|
declare const TG_DESKTOP = "desktop";
|
|
998
|
+
declare const getPlatform: GetPlatform;
|
|
939
999
|
|
|
940
1000
|
declare const NOT_SUPPORTED = "not_supported";
|
|
941
1001
|
|
|
@@ -965,6 +1025,7 @@ declare const MethodSetupMainButton = "web_app_setup_main_button";
|
|
|
965
1025
|
declare const MethodSetupSettingsButton = "web_app_setup_settings_button";
|
|
966
1026
|
declare const MethodSwitchInlineQuery = "web_app_switch_inline_query";
|
|
967
1027
|
declare const MethodTriggerHapticFeedback = "web_app_trigger_haptic_feedback";
|
|
1028
|
+
declare const MethodSetupSwipeBehavior = "web_app_setup_swipe_behavior";
|
|
968
1029
|
|
|
969
1030
|
declare const EventBackButtonPressed = "back_button_pressed";
|
|
970
1031
|
declare const EventClipboardTextReceived = "clipboard_text_received";
|
|
@@ -982,4 +1043,4 @@ declare const EventThemeChanged = "theme_changed";
|
|
|
982
1043
|
declare const EventViewportChanged = "viewport_changed";
|
|
983
1044
|
declare const EventWriteAccessRequested = "write_access_requested";
|
|
984
1045
|
|
|
985
|
-
export { EventBackButtonPressed, EventClipboardTextReceived, EventCustomMethodInvoked, EventInvoiceClosed, EventMainButtonPressed, EventPhoneRequested, EventPopupClosed, EventQrTextReceived, EventReloadIframe, EventScanQrPopupClosed, EventSetCustomStyle, EventSettingsButtonPressed, EventThemeChanged, EventViewportChanged, EventWriteAccessRequested, type EventsData, MethodClose, MethodCloseScanQrPopup, MethodDataSend, MethodExpand, MethodIframeReady, MethodIframeWillReload, MethodInvokeCustomMethod, MethodOpenInvoice, MethodOpenLink, MethodOpenPopup, MethodOpenScanQrPopup, MethodOpenTgLink, MethodReadTextFromClipboard, MethodReady, MethodRequestPhone, MethodRequestTheme, MethodRequestViewport, MethodRequestWriteAccess, MethodSetBackgroundColor, MethodSetHeaderColor, MethodSetupBackButton, MethodSetupClosingBehavior, MethodSetupMainButton, MethodSetupSettingsButton, MethodSwitchInlineQuery, MethodTriggerHapticFeedback, NOT_SUPPORTED, TG_DESKTOP, TG_PHONE, TG_WEB, close as bridgeClose, closeScanQrPopup as bridgeCloseScanQrPopup, dataSend as bridgeDataSend, expand as bridgeExpand, getInitData as bridgeGetInitData, 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, sessionStorageGet as bridgeSessionStorageGet, sessionStorageSet as bridgeSessionStorageSet, setBackgroundColor as bridgeSetBackgroundColor, setHeaderColor as bridgeSetHeaderColor, setupBackButton as bridgeSetupBackButton, setupClosingBehavior as bridgeSetupClosingBehavior, setupMainButton as bridgeSetupMainButton, setupSettingsButton as bridgeSetupSettingsButton, switchInlineQuery as bridgeSwitchInlineQuery, triggerHapticFeedback as bridgeTriggerHapticFeedback, debug, listener, sender, supportClose, supportCloseScanQrPopup, supportDataSend, supportExpand, supportIframeReady, supportIframeWillReload, supportInvokeCustomMethod, supportOpenInvoice, supportOpenLink, supportOpenPopup, supportOpenScanQrPopup, supportOpenTgLink, supportReadTextFromClipboard, supportReady, supportRequestPhone, supportRequestTheme, supportRequestViewport, supportRequestWriteAccess, supportSessionStorageGet, supportSessionStorageSet, supportSetBackgroundColor, supportSetHeaderColor, supportSetupBackButton, supportSetupClosingBehavior, supportSetupMainButton, supportSetupSettingsButton, supportSwitchInlineQuery, supportTriggerHapticFeedback };
|
|
1046
|
+
export { EventBackButtonPressed, EventClipboardTextReceived, EventCustomMethodInvoked, EventInvoiceClosed, EventMainButtonPressed, EventPhoneRequested, EventPopupClosed, EventQrTextReceived, EventReloadIframe, EventScanQrPopupClosed, EventSetCustomStyle, EventSettingsButtonPressed, EventThemeChanged, EventViewportChanged, EventWriteAccessRequested, type EventsData, MethodClose, MethodCloseScanQrPopup, MethodDataSend, MethodExpand, MethodIframeReady, MethodIframeWillReload, MethodInvokeCustomMethod, MethodOpenInvoice, MethodOpenLink, MethodOpenPopup, MethodOpenScanQrPopup, MethodOpenTgLink, MethodReadTextFromClipboard, MethodReady, MethodRequestPhone, MethodRequestTheme, MethodRequestViewport, MethodRequestWriteAccess, MethodSetBackgroundColor, MethodSetHeaderColor, MethodSetupBackButton, MethodSetupClosingBehavior, MethodSetupMainButton, MethodSetupSettingsButton, MethodSetupSwipeBehavior, MethodSwitchInlineQuery, MethodTriggerHapticFeedback, NOT_SUPPORTED, TG_DESKTOP, TG_PHONE, TG_WEB, close as bridgeClose, closeScanQrPopup as bridgeCloseScanQrPopup, dataSend as bridgeDataSend, expand as bridgeExpand, getInitData as bridgeGetInitData, 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, sessionStorageGet as bridgeSessionStorageGet, sessionStorageSet as bridgeSessionStorageSet, setBackgroundColor as bridgeSetBackgroundColor, setHeaderColor as bridgeSetHeaderColor, setupBackButton as bridgeSetupBackButton, setupClosingBehavior as bridgeSetupClosingBehavior, setupMainButton as bridgeSetupMainButton, setupSettingsButton as bridgeSetupSettingsButton, setupSwipeBehavior as bridgeSetupSwipeBehavior, switchInlineQuery as bridgeSwitchInlineQuery, triggerHapticFeedback as bridgeTriggerHapticFeedback, debug, getPlatform, listener, sender, supportClose, supportCloseScanQrPopup, supportDataSend, supportExpand, supportIframeReady, supportIframeWillReload, supportInvokeCustomMethod, supportOpenInvoice, supportOpenLink, supportOpenPopup, supportOpenScanQrPopup, supportOpenTgLink, supportReadTextFromClipboard, supportReady, supportRequestPhone, supportRequestTheme, supportRequestViewport, supportRequestWriteAccess, supportSessionStorageGet, supportSessionStorageSet, supportSetBackgroundColor, supportSetHeaderColor, supportSetupBackButton, supportSetupClosingBehavior, supportSetupMainButton, supportSetupSettingsButton, supportSetupSwipeBehavior, supportSwitchInlineQuery, supportTriggerHapticFeedback };
|
package/react/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";var e=require("debug");const t="web",s="phone",o="desktop",r=()=>{const e=window.location.hash.slice(1),r=new URLSearchParams(e).get("tgWebAppPlatform")??"ios";return["android","ios"].includes(r)?s:["tdesktop","macos"].includes(r)?o:t},p="not_supported",a=(e,t)=>{const s=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppVersion");return Number(s?.replace(".",""))>=Number(String(e)?.replace(".",""))&&-1!==t.indexOf(r())},n=()=>Math.random().toString(36).substring(3,9),i=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},u=()=>a(0,[t,o,s]),d=()=>_()?(Q(se),{status:!0}):(D(se,1),{status:p}),_=()=>a(64,[s]),c=()=>a(0,[t,o,s]),x=()=>a(0,[s]),g=()=>a(0,[t]),l=()=>a(0,[t]),b="web_app_invoke_custom_method",h=()=>a(6.9,[t,o,s]),w=()=>a(6.1,[t,o,s]),m=()=>a(6.4,[t,o,s]),S=()=>a(6.2,[t,o,s]),v=()=>a(6.4,[s]),f=()=>a(7,[t,o,s]),y=()=>a(6.4,[t,o,s]),M=()=>a(6.9,[t,o,s]),P=()=>a(6.9,[t,o,s]),q=()=>a(0,[t,o,s]),R=()=>a(0,[t,o,s]),k=()=>a(6.9,[t,o,s]),C=()=>a(6.1,[t,o,s]),O=()=>a(6.1,[t,o,s]),E=()=>a(6.1,[t,o,s]),T=()=>a(0,[t,o,s]),B=()=>a(0,[t,o,s]),I=()=>a(6.1,[t,o,s]),W=()=>a(6.7,[t,o,s]),L=()=>a(6.1,[s]),N=()=>a(7.7,[t,o,s]);var D=(e,t)=>{"development"===process.env.NODE_ENV&&console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)};var Q=(t,s)=>{if(window.TelegramWebviewProxy)window.TelegramWebviewProxy.postEvent(t,JSON.stringify(s));else if(window.external&&"notify"in window.external)window.external.notify(JSON.stringify({eventType:t,eventData:s}));else try{"*",window.parent.postMessage(JSON.stringify({eventType:t,eventData:s}),"*")}catch(t){e("postMessage Iframe",10)}};const A="clipboard_text_received",G="custom_method_invoked",H="phone_requested",J="popup_closed",V="qr_text_received",$="scan_qr_popup_closed",F="theme_changed",U=((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===F&&(t.theme_params=(e=>{"#1c1c1d"==e.bg_color&&e.bg_color==e.secondary_bg_color&&(e.secondary_bg_color="#2c2c2e");const t=window.location.hash.slice(1),s=new URLSearchParams(t);var o=JSON.parse(s.get("tgWebAppThemeParams")??"");for(var r in e){var p=i(e[r]);"string"==typeof p&&(o[r]=p)}return o})(t.theme_params)),U.emit(e,t),U.emit("*",{name:e,data:t})}window.TelegramGameProxy_receiveEvent=e,window.Telegram={WebView:{receiveEvent:e}},window.TelegramGameProxy={receiveEvent:e}})();const j=(e,t)=>{U.on(e,t)},z=(e,t)=>{U.off(e,t)},K=(e,t)=>{U.once(e,t)};var X=Object.freeze({__proto__:null,off:z,on:j,once:K});const Y="web_app_open_scan_qr_popup",Z="web_app_read_text_from_clipboard",ee="web_app_request_phone",te="web_app_close",se="web_app_close_scan_qr_popup",oe="web_app_data_send",re="web_app_expand",pe="iframe_ready",ae="web_app_open_invoice",ne="web_app_open_link",ie="web_app_open_popup",ue="web_app_open_tg_link",de="web_app_ready",_e="web_app_request_theme",ce="web_app_request_viewport",xe="web_app_request_write_access",ge="web_app_set_background_color",le="web_app_set_header_color",be="web_app_setup_back_button",he="web_app_setup_closing_behavior",we="web_app_setup_main_button",me="web_app_setup_settings_button",Se="web_app_switch_inline_query",ve="web_app_trigger_haptic_feedback",fe="web_app_setup_swipe_behavior";exports.EventBackButtonPressed="back_button_pressed",exports.EventClipboardTextReceived=A,exports.EventCustomMethodInvoked=G,exports.EventInvoiceClosed="invoice_closed",exports.EventMainButtonPressed="main_button_pressed",exports.EventPhoneRequested=H,exports.EventPopupClosed=J,exports.EventQrTextReceived=V,exports.EventReloadIframe="reload_iframe",exports.EventScanQrPopupClosed=$,exports.EventSetCustomStyle="set_custom_style",exports.EventSettingsButtonPressed="settings_button_pressed",exports.EventThemeChanged=F,exports.EventViewportChanged="viewport_changed",exports.EventWriteAccessRequested="write_access_requested",exports.MethodClose=te,exports.MethodCloseScanQrPopup=se,exports.MethodDataSend=oe,exports.MethodExpand=re,exports.MethodIframeReady=pe,exports.MethodIframeWillReload="iframe_will_reload",exports.MethodInvokeCustomMethod="web_app_invoke_custom_method",exports.MethodOpenInvoice=ae,exports.MethodOpenLink=ne,exports.MethodOpenPopup=ie,exports.MethodOpenScanQrPopup=Y,exports.MethodOpenTgLink=ue,exports.MethodReadTextFromClipboard=Z,exports.MethodReady=de,exports.MethodRequestPhone=ee,exports.MethodRequestTheme=_e,exports.MethodRequestViewport=ce,exports.MethodRequestWriteAccess=xe,exports.MethodSetBackgroundColor=ge,exports.MethodSetHeaderColor=le,exports.MethodSetupBackButton=be,exports.MethodSetupClosingBehavior=he,exports.MethodSetupMainButton=we,exports.MethodSetupSettingsButton=me,exports.MethodSetupSwipeBehavior=fe,exports.MethodSwitchInlineQuery=Se,exports.MethodTriggerHapticFeedback=ve,exports.NOT_SUPPORTED=p,exports.TG_DESKTOP=o,exports.TG_PHONE=s,exports.TG_WEB=t,exports.bridgeClose=()=>u()?(Q(te),{status:!0}):(D(te,1),{status:p}),exports.bridgeCloseScanQrPopup=d,exports.bridgeDataSend=e=>c()?(Q(oe,e),{status:!0}):(D(oe,1),{status:p}),exports.bridgeExpand=()=>x()?(Q(re),{status:!0}):(D(re,1),{status:p}),exports.bridgeGetInitData=()=>{const e=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppData");if(null===e)return D("getInitData",2),null;const t=new URLSearchParams(e);let s={};return t.forEach(((e,t)=>{if(s[t]=e,void 0!==t.match(/^(chat|receiver|user)$/g))try{s[t]=JSON.parse(e)}catch{}})),s},exports.bridgeIframeReady=e=>g()?(Q(pe,e),{status:!0}):(D(pe,1),{status:p}),exports.bridgeIframeWillReload=()=>l()?(Q(pe),{status:!0}):(D(pe,1),{status:p}),exports.bridgeInvokeCustomMethod=async e=>h()?(void 0===e.req_id&&(e.req_id=n()),Q(b,e),new Promise(((t,s)=>{const o=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),z(G,o))};j(G,o)}))):(D(b,1),{status:p}),exports.bridgeOpenInvoice=e=>w()?(Q(ae,e),{status:!0}):(D(ae,1),{status:p}),exports.bridgeOpenLink=e=>m()?(Q(ne,e),{status:!0}):(D(ne,1),{status:p}),exports.bridgeOpenPopup=async e=>S()?(e.title.length>64&&D(ie,3),e.message.length<1&&D(ie,4),e.message.length>256&&D(ie,5),e.buttons.length<1&&D(ie,6),e.buttons.length>3&&D(ie,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&D(ie,8),Q(ie,e),new Promise(((t,s)=>{const o=s=>{t({status:!!e.buttons.find((e=>e.id===s?.button_id)),data:s}),z(J,o)};j(J,o)}))):(D(ie,1),{status:p}),exports.bridgeOpenScanQrPopup=async e=>v()?(Q(Y,e),new Promise(((t,s)=>{K(V,(s=>{e.is_close&&d(),t({status:!0,data:s})})),K($,(()=>{t({status:"closed"})}))}))):(D(Y,1),{status:p}),exports.bridgeOpenTgLink=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),f()?(Q(ue,e),{status:!0}):(D(ue,1),{status:p})),exports.bridgeReadTextFromClipboard=async e=>y()?(void 0===e.req_id&&(e.req_id=n()),Q(Z,e),new Promise(((t,s)=>{const o=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),z(A,o))};j(A,o)}))):(D(Z,1),{status:p}),exports.bridgeReady=()=>M()?(Q(de),{status:!0}):(D(de,1),{status:p}),exports.bridgeRequestPhone=async()=>P()?(Q(ee),new Promise(((e,t)=>{K(H,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(D(ee,1),{status:p}),exports.bridgeRequestTheme=()=>q()?(Q(_e),{status:!0}):(D(_e,1),{status:p}),exports.bridgeRequestViewport=()=>R()?(Q(ce),{status:!0}):(D(ce,1),{status:p}),exports.bridgeRequestWriteAccess=()=>k()?(Q(xe),{status:!0}):(D(xe,1),{status:p}),exports.bridgeSessionStorageGet=({key:e})=>{try{return{value:JSON.parse(window.sessionStorage.getItem("__telegram__"+e)??""),status:!0}}catch(e){}return{status:!1}},exports.bridgeSessionStorageSet=({key:e,value:t})=>{try{return window.sessionStorage.setItem("__telegram__"+e,JSON.stringify(t)),{status:!0}}catch(e){}return{status:!1}},exports.bridgeSetBackgroundColor=e=>C()?(Q(ge,e),{status:!0}):(D(ge,1),{status:p}),exports.bridgeSetHeaderColor=e=>O()?(Q(le,e),{status:!0}):(D(le,1),{status:p}),exports.bridgeSetupBackButton=e=>E()?(Q(be,e),{status:!0}):(D(be,1),{status:p}),exports.bridgeSetupClosingBehavior=e=>T()?(Q(he,e),{status:!0}):(D(he,1),{status:p}),exports.bridgeSetupMainButton=e=>B()?(Q(we,e),{status:!0}):(D(we,1),{status:p}),exports.bridgeSetupSettingsButton=e=>I()?(Q(me,e),{status:!0}):(D(me,1),{status:p}),exports.bridgeSetupSwipeBehavior=e=>N()?(Q(fe,e),{status:!0}):(D(fe,1),{status:p}),exports.bridgeSwitchInlineQuery=e=>W()?(e.query.length>256&&D(Se,9),Q(Se,e),{status:!0}):(D(Se,1),{status:p}),exports.bridgeTriggerHapticFeedback=e=>L()?(Q(ve,e),{status:!0}):(D(ve,1),{status:p}),exports.debug=D,exports.getPlatform=r,exports.listener=X,exports.sender=Q,exports.supportClose=u,exports.supportCloseScanQrPopup=_,exports.supportDataSend=c,exports.supportExpand=x,exports.supportIframeReady=g,exports.supportIframeWillReload=l,exports.supportInvokeCustomMethod=h,exports.supportOpenInvoice=w,exports.supportOpenLink=m,exports.supportOpenPopup=S,exports.supportOpenScanQrPopup=v,exports.supportOpenTgLink=f,exports.supportReadTextFromClipboard=y,exports.supportReady=M,exports.supportRequestPhone=P,exports.supportRequestTheme=q,exports.supportRequestViewport=R,exports.supportRequestWriteAccess=k,exports.supportSessionStorageGet=()=>!0,exports.supportSessionStorageSet=()=>!0,exports.supportSetBackgroundColor=C,exports.supportSetHeaderColor=O,exports.supportSetupBackButton=E,exports.supportSetupClosingBehavior=T,exports.supportSetupMainButton=B,exports.supportSetupSettingsButton=I,exports.supportSetupSwipeBehavior=N,exports.supportSwitchInlineQuery=W,exports.supportTriggerHapticFeedback=L;
|
package/react/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import e from"debug";const t="web",s="phone",a="desktop",r=()=>{const e=window.location.hash.slice(1),r=new URLSearchParams(e).get("tgWebAppPlatform")??"ios";return["android","ios"].includes(r)?s:["tdesktop","macos"].includes(r)?a:t},o="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(r())},i=()=>Math.random().toString(36).substring(3,9),_=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},p=()=>u()?(we(Ae),{status:!0}):(be(Ae,1),{status:o}),u=()=>n(0,[t,a,s]),d=()=>c()?(we(Ue),{status:!0}):(be(Ue,1),{status:o}),c=()=>n(64,[s]),g=e=>b()?(we(Ge,e),{status:!0}):(be(Ge,1),{status:o}),b=()=>n(0,[t,a,s]),l=()=>w()?(we(Ve),{status:!0}):(be(Ve,1),{status:o}),w=()=>n(0,[s]),m=e=>h()?(we(Qe,e),{status:!0}):(be(Qe,1),{status:o}),h=()=>n(0,[t]),f=()=>v()?(we(Qe),{status:!0}):(be(Qe,1),{status:o}),v=()=>n(0,[t]),S="web_app_invoke_custom_method",y=async e=>q()?(void 0===e.req_id&&(e.req_id=i()),we(S,e),new Promise(((t,s)=>{const a=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),We(fe,a))};Le(fe,a)}))):(be(S,1),{status:o}),q=()=>n(6.9,[t,a,s]),x=e=>k()?(we(He,e),{status:!0}):(be(He,1),{status:o}),k=()=>n(6.1,[t,a,s]),P=e=>O()?(we(je,e),{status:!0}):(be(je,1),{status:o}),O=()=>n(6.4,[t,a,s]),I=async e=>R()?(e.title.length>64&&be(ze,3),e.message.length<1&&be(ze,4),e.message.length>256&&be(ze,5),e.buttons.length<1&&be(ze,6),e.buttons.length>3&&be(ze,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&be(ze,8),we(ze,e),new Promise(((t,s)=>{const a=s=>{t({status:!!e.buttons.find((e=>e.id===s?.button_id)),data:s}),We(qe,a)};Le(qe,a)}))):(be(ze,1),{status:o}),R=()=>n(6.2,[t,a,s]),T=async e=>N()?(we(Je,e),new Promise(((t,s)=>{Ee(ke,(s=>{e.is_close&&d(),t({status:!0,data:s})})),Ee(Pe,(()=>{t({status:"closed"})}))}))):(be(Je,1),{status:o}),N=()=>n(6.4,[s]),C=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),L()?(we(Ke,e),{status:!0}):(be(Ke,1),{status:o})),L=()=>n(7,[t,a,s]),W=async e=>E()?(void 0===e.req_id&&(e.req_id=i()),we($e,e),new Promise(((t,s)=>{const a=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),We(he,a))};Le(he,a)}))):(be($e,1),{status:o}),E=()=>n(6.4,[t,a,s]),B=()=>D()?(we(Xe),{status:!0}):(be(Xe,1),{status:o}),D=()=>n(6.9,[t,a,s]),J=async()=>$()?(we(Me),new Promise(((e,t)=>{Ee(ye,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(be(Me,1),{status:o}),$=()=>n(6.9,[t,a,s]),M=()=>A()?(we(Ye),{status:!0}):(be(Ye,1),{status:o}),A=()=>n(0,[t,a,s]),U=()=>G()?(we(Ze),{status:!0}):(be(Ze,1),{status:o}),G=()=>n(0,[t,a,s]),V=()=>Q()?(we(et),{status:!0}):(be(et,1),{status:o}),Q=()=>n(6.9,[t,a,s]),F=e=>H()?(we(tt,e),{status:!0}):(be(tt,1),{status:o}),H=()=>n(6.1,[t,a,s]),j=e=>z()?(we(st,e),{status:!0}):(be(st,1),{status:o}),z=()=>n(6.1,[t,a,s]),K=e=>X()?(we(at,e),{status:!0}):(be(at,1),{status:o}),X=()=>n(6.1,[t,a,s]),Y=e=>Z()?(we(rt,e),{status:!0}):(be(rt,1),{status:o}),Z=()=>n(0,[t,a,s]),ee=e=>te()?(we(ot,e),{status:!0}):(be(ot,1),{status:o}),te=()=>n(0,[t,a,s]),se=e=>ae()?(we(nt,e),{status:!0}):(be(nt,1),{status:o}),ae=()=>n(6.1,[t,a,s]),re=e=>oe()?(e.query.length>256&&be(it,9),we(it,e),{status:!0}):(be(it,1),{status:o}),oe=()=>n(6.7,[t,a,s]),ne=e=>ie()?(we(_t,e),{status:!0}):(be(_t,1),{status:o}),ie=()=>n(6.1,[s]),_e=({key:e,value:t})=>{try{return window.sessionStorage.setItem("__telegram__"+e,JSON.stringify(t)),{status:!0}}catch(e){}return{status:!1}},pe=()=>!0,ue=({key:e})=>{try{return{value:JSON.parse(window.sessionStorage.getItem("__telegram__"+e)??""),status:!0}}catch(e){}return{status:!1}},de=()=>!0,ce=e=>ge()?(we(pt,e),{status:!0}):(be(pt,1),{status:o}),ge=()=>n(7.7,[t,a,s]);var be=(e,t)=>{"development"===process.env.NODE_ENV&&console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)};const le=()=>{const e=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppData");if(null===e)return be("getInitData",2),null;const t=new URLSearchParams(e);let s={};return t.forEach(((e,t)=>{if(s[t]=e,void 0!==t.match(/^(chat|receiver|user)$/g))try{s[t]=JSON.parse(e)}catch{}})),s};var we=(t,s)=>{if(window.TelegramWebviewProxy)window.TelegramWebviewProxy.postEvent(t,JSON.stringify(s));else if(window.external&&"notify"in window.external)window.external.notify(JSON.stringify({eventType:t,eventData:s}));else try{"*",window.parent.postMessage(JSON.stringify({eventType:t,eventData:s}),"*")}catch(t){e("postMessage Iframe",10)}};const me="back_button_pressed",he="clipboard_text_received",fe="custom_method_invoked",ve="invoice_closed",Se="main_button_pressed",ye="phone_requested",qe="popup_closed",xe="reload_iframe",ke="qr_text_received",Pe="scan_qr_popup_closed",Oe="set_custom_style",Ie="settings_button_pressed",Re="theme_changed",Te="viewport_changed",Ne="write_access_requested",Ce=((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===Re&&(t.theme_params=(e=>{"#1c1c1d"==e.bg_color&&e.bg_color==e.secondary_bg_color&&(e.secondary_bg_color="#2c2c2e");const t=window.location.hash.slice(1),s=new URLSearchParams(t);var a=JSON.parse(s.get("tgWebAppThemeParams")??"");for(var r in e){var o=_(e[r]);"string"==typeof o&&(a[r]=o)}return a})(t.theme_params)),Ce.emit(e,t),Ce.emit("*",{name:e,data:t})}window.TelegramGameProxy_receiveEvent=e,window.Telegram={WebView:{receiveEvent:e}},window.TelegramGameProxy={receiveEvent:e}})();const Le=(e,t)=>{Ce.on(e,t)},We=(e,t)=>{Ce.off(e,t)},Ee=(e,t)=>{Ce.once(e,t)};var Be=Object.freeze({__proto__:null,off:We,on:Le,once:Ee});const De="web_app_invoke_custom_method",Je="web_app_open_scan_qr_popup",$e="web_app_read_text_from_clipboard",Me="web_app_request_phone",Ae="web_app_close",Ue="web_app_close_scan_qr_popup",Ge="web_app_data_send",Ve="web_app_expand",Qe="iframe_ready",Fe="iframe_will_reload",He="web_app_open_invoice",je="web_app_open_link",ze="web_app_open_popup",Ke="web_app_open_tg_link",Xe="web_app_ready",Ye="web_app_request_theme",Ze="web_app_request_viewport",et="web_app_request_write_access",tt="web_app_set_background_color",st="web_app_set_header_color",at="web_app_setup_back_button",rt="web_app_setup_closing_behavior",ot="web_app_setup_main_button",nt="web_app_setup_settings_button",it="web_app_switch_inline_query",_t="web_app_trigger_haptic_feedback",pt="web_app_setup_swipe_behavior";export{me as EventBackButtonPressed,he as EventClipboardTextReceived,fe as EventCustomMethodInvoked,ve as EventInvoiceClosed,Se as EventMainButtonPressed,ye as EventPhoneRequested,qe as EventPopupClosed,ke as EventQrTextReceived,xe as EventReloadIframe,Pe as EventScanQrPopupClosed,Oe as EventSetCustomStyle,Ie as EventSettingsButtonPressed,Re as EventThemeChanged,Te as EventViewportChanged,Ne as EventWriteAccessRequested,Ae as MethodClose,Ue as MethodCloseScanQrPopup,Ge as MethodDataSend,Ve as MethodExpand,Qe as MethodIframeReady,Fe as MethodIframeWillReload,De as MethodInvokeCustomMethod,He as MethodOpenInvoice,je as MethodOpenLink,ze as MethodOpenPopup,Je as MethodOpenScanQrPopup,Ke as MethodOpenTgLink,$e as MethodReadTextFromClipboard,Xe as MethodReady,Me as MethodRequestPhone,Ye as MethodRequestTheme,Ze as MethodRequestViewport,et as MethodRequestWriteAccess,tt as MethodSetBackgroundColor,st as MethodSetHeaderColor,at as MethodSetupBackButton,rt as MethodSetupClosingBehavior,ot as MethodSetupMainButton,nt as MethodSetupSettingsButton,pt as MethodSetupSwipeBehavior,it as MethodSwitchInlineQuery,_t as MethodTriggerHapticFeedback,o as NOT_SUPPORTED,a as TG_DESKTOP,s as TG_PHONE,t as TG_WEB,p as bridgeClose,d as bridgeCloseScanQrPopup,g as bridgeDataSend,l as bridgeExpand,le as bridgeGetInitData,m as bridgeIframeReady,f as bridgeIframeWillReload,y as bridgeInvokeCustomMethod,x as bridgeOpenInvoice,P as bridgeOpenLink,I as bridgeOpenPopup,T as bridgeOpenScanQrPopup,C as bridgeOpenTgLink,W as bridgeReadTextFromClipboard,B as bridgeReady,J as bridgeRequestPhone,M as bridgeRequestTheme,U as bridgeRequestViewport,V as bridgeRequestWriteAccess,ue as bridgeSessionStorageGet,_e as bridgeSessionStorageSet,F as bridgeSetBackgroundColor,j as bridgeSetHeaderColor,K as bridgeSetupBackButton,Y as bridgeSetupClosingBehavior,ee as bridgeSetupMainButton,se as bridgeSetupSettingsButton,ce as bridgeSetupSwipeBehavior,re as bridgeSwitchInlineQuery,ne as bridgeTriggerHapticFeedback,be as debug,r as getPlatform,Be as listener,we as sender,u as supportClose,c as supportCloseScanQrPopup,b as supportDataSend,w as supportExpand,h as supportIframeReady,v as supportIframeWillReload,q as supportInvokeCustomMethod,k as supportOpenInvoice,O as supportOpenLink,R as supportOpenPopup,N as supportOpenScanQrPopup,L as supportOpenTgLink,E as supportReadTextFromClipboard,D as supportReady,$ as supportRequestPhone,A as supportRequestTheme,G as supportRequestViewport,Q as supportRequestWriteAccess,de as supportSessionStorageGet,pe as supportSessionStorageSet,H as supportSetBackgroundColor,z as supportSetHeaderColor,X as supportSetupBackButton,Z as supportSetupClosingBehavior,te as supportSetupMainButton,ae as supportSetupSettingsButton,ge as supportSetupSwipeBehavior,oe as supportSwitchInlineQuery,ie as supportTriggerHapticFeedback};
|
package/solid/index.d.ts
CHANGED
|
@@ -11,9 +11,9 @@ type Close = () => {
|
|
|
11
11
|
status: boolean | typeof NOT_SUPPORTED;
|
|
12
12
|
};
|
|
13
13
|
/**
|
|
14
|
-
*
|
|
14
|
+
* EN: A method that closes the Mini App.
|
|
15
15
|
*
|
|
16
|
-
*
|
|
16
|
+
* RU: Метод, который закрывает мини-приложение.
|
|
17
17
|
*/
|
|
18
18
|
declare const close: Close;
|
|
19
19
|
/**
|
|
@@ -25,9 +25,13 @@ type CloseScanQrPopup = () => {
|
|
|
25
25
|
status: boolean | typeof NOT_SUPPORTED;
|
|
26
26
|
};
|
|
27
27
|
/**
|
|
28
|
-
*
|
|
28
|
+
* EN: A method that closes the native popup for scanning a QR code opened with the `openScanQrPopup` method.
|
|
29
29
|
*
|
|
30
|
-
*
|
|
30
|
+
* Run it if you received valid data in the event `qr_text_received`.
|
|
31
|
+
*
|
|
32
|
+
* RU: Метод, который закрывает собственное всплывающее окно для сканирования QR-кода, открытого с помощью метода `openScanQrPopup`.
|
|
33
|
+
*
|
|
34
|
+
* Запустите его, если вы получили действительные данные в событии `qr_text_received`.
|
|
31
35
|
*/
|
|
32
36
|
declare const closeScanQrPopup: CloseScanQrPopup;
|
|
33
37
|
/**
|
|
@@ -37,20 +41,30 @@ declare const supportCloseScanQrPopup: () => boolean;
|
|
|
37
41
|
|
|
38
42
|
type DataSend = (eventData: {
|
|
39
43
|
/**
|
|
40
|
-
|
|
44
|
+
** EN: Data to send to a bot. Should not have size of more than 4096 bytes.
|
|
45
|
+
|
|
46
|
+
** RU: Данные для отправки боту. Не должен иметь размер более 4096 байт.
|
|
41
47
|
*/
|
|
42
48
|
data: string;
|
|
43
49
|
}) => {
|
|
44
50
|
status: boolean | typeof NOT_SUPPORTED;
|
|
45
51
|
};
|
|
46
52
|
/**
|
|
47
|
-
|
|
53
|
+
** EN: A method used to send data to the bot.
|
|
54
|
+
*
|
|
55
|
+
* When this method is called, a service message is sent to the bot containing the data data of the length up to 4096 bytes, and the Mini App is closed.
|
|
56
|
+
*
|
|
57
|
+
* See the field `web_app_data` in the class Message.
|
|
58
|
+
*
|
|
59
|
+
*! This method is only available for Mini Apps launched via a Keyboard button.
|
|
48
60
|
*
|
|
49
|
-
|
|
61
|
+
** RU: Метод, используемый для отправки данных боту.
|
|
50
62
|
*
|
|
51
|
-
*
|
|
63
|
+
* При вызове этого метода боту отправляется служебное сообщение, содержащее данные длиной до 4096 байт, и мини-приложение закрывается.
|
|
52
64
|
*
|
|
53
|
-
*
|
|
65
|
+
* Смотрите поле `web_app_data` в сообщении класса.
|
|
66
|
+
*
|
|
67
|
+
*! Этот метод доступен только для мини-приложений, запускаемых с помощью кнопки клавиатуры.
|
|
54
68
|
*/
|
|
55
69
|
declare const dataSend: DataSend;
|
|
56
70
|
/**
|
|
@@ -62,7 +76,9 @@ type Expand = () => {
|
|
|
62
76
|
status: boolean | typeof NOT_SUPPORTED;
|
|
63
77
|
};
|
|
64
78
|
/**
|
|
65
|
-
|
|
79
|
+
** EN: A method that expands the Mini App to the maximum available height.
|
|
80
|
+
*
|
|
81
|
+
** RU: Метод, расширяющий мини-приложение до максимально доступной высоты.
|
|
66
82
|
*/
|
|
67
83
|
declare const expand: Expand;
|
|
68
84
|
/**
|
|
@@ -411,6 +427,27 @@ declare const setHeaderColor: SetHeaderColor;
|
|
|
411
427
|
*/
|
|
412
428
|
declare const supportSetHeaderColor: () => boolean;
|
|
413
429
|
|
|
430
|
+
type SetBottomBarColor = (eventData: {
|
|
431
|
+
/**
|
|
432
|
+
* The Mini App header color key. Could be either bg_color or secondary_bg_color.
|
|
433
|
+
*/
|
|
434
|
+
color_key?: 'bg_color' | 'secondary_bg_color' | 'bottom_bar_bg_color';
|
|
435
|
+
/**
|
|
436
|
+
* Color in HEX format.
|
|
437
|
+
*/
|
|
438
|
+
color?: string;
|
|
439
|
+
}) => {
|
|
440
|
+
status: boolean | typeof NOT_SUPPORTED;
|
|
441
|
+
};
|
|
442
|
+
/**
|
|
443
|
+
* Updates the Mini App header color. This method should accept color_key or color property.
|
|
444
|
+
*/
|
|
445
|
+
declare const setBottomBarColor: SetBottomBarColor;
|
|
446
|
+
/**
|
|
447
|
+
* Method support check
|
|
448
|
+
*/
|
|
449
|
+
declare const supportSetBottomBarColor: () => boolean;
|
|
450
|
+
|
|
414
451
|
type SetupBackButton = (eventData: {
|
|
415
452
|
/**
|
|
416
453
|
* Should the Back Button be visible.
|
|
@@ -604,6 +641,7 @@ type SessionStorageGet = ({ key }: {
|
|
|
604
641
|
key: string;
|
|
605
642
|
}) => {
|
|
606
643
|
status: boolean | typeof NOT_SUPPORTED;
|
|
644
|
+
value?: any;
|
|
607
645
|
};
|
|
608
646
|
/**
|
|
609
647
|
* sessions storage get.
|
|
@@ -614,6 +652,20 @@ declare const sessionStorageGet: SessionStorageGet;
|
|
|
614
652
|
*/
|
|
615
653
|
declare const supportSessionStorageGet: () => boolean;
|
|
616
654
|
|
|
655
|
+
type SetupSwipeBehavior = ({ allow_vertical_swipe, }: {
|
|
656
|
+
allow_vertical_swipe: boolean;
|
|
657
|
+
}) => {
|
|
658
|
+
status: boolean | typeof NOT_SUPPORTED;
|
|
659
|
+
};
|
|
660
|
+
/**
|
|
661
|
+
* sessions storage set.
|
|
662
|
+
*/
|
|
663
|
+
declare const setupSwipeBehavior: SetupSwipeBehavior;
|
|
664
|
+
/**
|
|
665
|
+
* Method support check
|
|
666
|
+
*/
|
|
667
|
+
declare const supportSetupSwipeBehavior: () => boolean;
|
|
668
|
+
|
|
617
669
|
type User = {
|
|
618
670
|
/**
|
|
619
671
|
* Optional. True, if this user added the bot to the attachment menu.
|
|
@@ -763,13 +815,13 @@ declare const debug: Debug;
|
|
|
763
815
|
|
|
764
816
|
type EventsData = {
|
|
765
817
|
/**
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
818
|
+
* User clicked the Back Button.
|
|
819
|
+
*/
|
|
820
|
+
back_button_pressed: undefined;
|
|
769
821
|
/**
|
|
770
822
|
* Telegram application attempted to extract text from clipboard.
|
|
771
823
|
*/
|
|
772
|
-
|
|
824
|
+
clipboard_text_received: {
|
|
773
825
|
/**
|
|
774
826
|
* Passed during the web_app_read_text_from_clipboard method invocation req_id value.
|
|
775
827
|
*/
|
|
@@ -780,9 +832,9 @@ type EventsData = {
|
|
|
780
832
|
data?: string | null;
|
|
781
833
|
};
|
|
782
834
|
/**
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
835
|
+
* Custom method invocation completed.
|
|
836
|
+
*/
|
|
837
|
+
custom_method_invoked: {
|
|
786
838
|
/**
|
|
787
839
|
* Unique identifier of this invocation.
|
|
788
840
|
*/
|
|
@@ -797,9 +849,9 @@ type EventsData = {
|
|
|
797
849
|
error?: string;
|
|
798
850
|
};
|
|
799
851
|
/**
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
852
|
+
* An invoice was closed.
|
|
853
|
+
*/
|
|
854
|
+
invoice_closed: {
|
|
803
855
|
/**
|
|
804
856
|
* Passed during the web_app_open_invoice method invocation slug value.
|
|
805
857
|
*/
|
|
@@ -818,22 +870,22 @@ type EventsData = {
|
|
|
818
870
|
status: 'paid' | 'failed' | 'pending' | 'cancelled';
|
|
819
871
|
};
|
|
820
872
|
/**
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
873
|
+
* User clicked the Main Button.
|
|
874
|
+
*/
|
|
875
|
+
main_button_pressed: undefined;
|
|
824
876
|
/**
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
877
|
+
* Application received phone access request status.
|
|
878
|
+
*/
|
|
879
|
+
phone_requested: {
|
|
828
880
|
/**
|
|
829
881
|
* Request status. Can only be sent
|
|
830
882
|
*/
|
|
831
883
|
status: 'sent';
|
|
832
884
|
};
|
|
833
885
|
/**
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
886
|
+
* Popup was closed.
|
|
887
|
+
*/
|
|
888
|
+
popup_closed: {
|
|
837
889
|
/**
|
|
838
890
|
* Optional. Identifier of the clicked button.
|
|
839
891
|
*
|
|
@@ -842,47 +894,90 @@ type EventsData = {
|
|
|
842
894
|
button_id?: string;
|
|
843
895
|
};
|
|
844
896
|
/**
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
897
|
+
* Parent iframe requested current iframe reload.
|
|
898
|
+
*/
|
|
899
|
+
reload_iframe: undefined;
|
|
848
900
|
/**
|
|
849
901
|
* The QR scanner scanned some QR and extracted its content.
|
|
850
902
|
*/
|
|
851
|
-
|
|
903
|
+
qr_text_received: {
|
|
852
904
|
/**
|
|
853
905
|
* Optional. Data extracted from the QR.
|
|
854
906
|
*/
|
|
855
907
|
data?: string;
|
|
856
908
|
};
|
|
857
909
|
/**
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
910
|
+
* QR scanner was closed.
|
|
911
|
+
*/
|
|
912
|
+
scan_qr_popup_closed: undefined;
|
|
861
913
|
/**
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
914
|
+
* The event which is usually sent by the Telegram web application.
|
|
915
|
+
*
|
|
916
|
+
* Its payload represents <style/> tag html content, a developer could use. The stylesheet described in the payload will help the developer to stylize the app scrollbar (but he is still able to do it himself).
|
|
917
|
+
*/
|
|
918
|
+
set_custom_style: undefined;
|
|
867
919
|
/**
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
920
|
+
* Occurs when the Settings Button was pressed.
|
|
921
|
+
*/
|
|
922
|
+
settings_button_pressed: undefined;
|
|
871
923
|
/**
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
924
|
+
* Occurs whenever the theme was changed in the user's Telegram app ( including switching to night mode).
|
|
925
|
+
*/
|
|
926
|
+
theme_changed: {
|
|
875
927
|
/**
|
|
876
928
|
* Map where the key is a theme stylesheet key and value is the corresponding color in #RRGGBB format.
|
|
877
929
|
*/
|
|
878
|
-
theme_params:
|
|
930
|
+
theme_params: {
|
|
931
|
+
bg_color: string;
|
|
932
|
+
text_color: string;
|
|
933
|
+
hint_color: string;
|
|
934
|
+
link_color: string;
|
|
935
|
+
button_color: string;
|
|
936
|
+
button_text_color: string;
|
|
937
|
+
/**
|
|
938
|
+
* Bot API 6.1+
|
|
939
|
+
*/
|
|
940
|
+
secondary_bg_color: string;
|
|
941
|
+
/**
|
|
942
|
+
* Bot API 7.0+
|
|
943
|
+
*/
|
|
944
|
+
header_bg_color: string;
|
|
945
|
+
/**
|
|
946
|
+
* Bot API 7.10+
|
|
947
|
+
*/
|
|
948
|
+
bottom_bar_bg_color: string;
|
|
949
|
+
/**
|
|
950
|
+
* Bot API 7.0+
|
|
951
|
+
*/
|
|
952
|
+
accent_text_color: string;
|
|
953
|
+
/**
|
|
954
|
+
* Bot API 7.0+
|
|
955
|
+
*/
|
|
956
|
+
section_bg_color: string;
|
|
957
|
+
/**
|
|
958
|
+
* Bot API 7.0+
|
|
959
|
+
*/
|
|
960
|
+
section_header_text_color: string;
|
|
961
|
+
/**
|
|
962
|
+
* Bot API 7.6+
|
|
963
|
+
*/
|
|
964
|
+
section_separator_color: string;
|
|
965
|
+
/**
|
|
966
|
+
* Bot API 7.0+
|
|
967
|
+
*/
|
|
968
|
+
subtitle_text_color: string;
|
|
969
|
+
/**
|
|
970
|
+
* Bot API 7.0+
|
|
971
|
+
*/
|
|
972
|
+
destructive_text_color: string;
|
|
973
|
+
};
|
|
879
974
|
};
|
|
880
975
|
/**
|
|
881
976
|
* Occurs whenever the viewport has been changed.
|
|
882
977
|
*
|
|
883
978
|
* For example, when the user started dragging the application or called the expansion method.
|
|
884
979
|
*/
|
|
885
|
-
|
|
980
|
+
viewport_changed: {
|
|
886
981
|
/**
|
|
887
982
|
* The viewport height.
|
|
888
983
|
*/
|
|
@@ -901,9 +996,9 @@ type EventsData = {
|
|
|
901
996
|
is_state_stable: boolean;
|
|
902
997
|
};
|
|
903
998
|
/**
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
999
|
+
* Application received write access request status.
|
|
1000
|
+
*/
|
|
1001
|
+
write_access_requested: {
|
|
907
1002
|
/**
|
|
908
1003
|
* Request status. Can only be allowed.
|
|
909
1004
|
*/
|
|
@@ -923,7 +1018,7 @@ declare global {
|
|
|
923
1018
|
interface Window {
|
|
924
1019
|
TelegramWebviewProxy: TelegramWebviewProxy;
|
|
925
1020
|
TelegramGameProxy: TelegramGameProxy;
|
|
926
|
-
TelegramGameProxy_receiveEvent: TelegramGameProxy[
|
|
1021
|
+
TelegramGameProxy_receiveEvent: TelegramGameProxy['receiveEvent'];
|
|
927
1022
|
Telegram: {
|
|
928
1023
|
WebView: TelegramGameProxy;
|
|
929
1024
|
};
|
|
@@ -942,9 +1037,11 @@ declare namespace listener {
|
|
|
942
1037
|
export { type listener_EventsData as EventsData, listener_off as off, listener_on as on, listener_once as once };
|
|
943
1038
|
}
|
|
944
1039
|
|
|
1040
|
+
type GetPlatform = () => 'phone' | 'web' | 'desktop';
|
|
945
1041
|
declare const TG_WEB = "web";
|
|
946
1042
|
declare const TG_PHONE = "phone";
|
|
947
1043
|
declare const TG_DESKTOP = "desktop";
|
|
1044
|
+
declare const getPlatform: GetPlatform;
|
|
948
1045
|
|
|
949
1046
|
declare const NOT_SUPPORTED = "not_supported";
|
|
950
1047
|
|
|
@@ -968,12 +1065,14 @@ declare const MethodRequestViewport = "web_app_request_viewport";
|
|
|
968
1065
|
declare const MethodRequestWriteAccess = "web_app_request_write_access";
|
|
969
1066
|
declare const MethodSetBackgroundColor = "web_app_set_background_color";
|
|
970
1067
|
declare const MethodSetHeaderColor = "web_app_set_header_color";
|
|
1068
|
+
declare const MethodSetBottomBarColor = "web_app_set_bottom_bar_color";
|
|
971
1069
|
declare const MethodSetupBackButton = "web_app_setup_back_button";
|
|
972
1070
|
declare const MethodSetupClosingBehavior = "web_app_setup_closing_behavior";
|
|
973
1071
|
declare const MethodSetupMainButton = "web_app_setup_main_button";
|
|
974
1072
|
declare const MethodSetupSettingsButton = "web_app_setup_settings_button";
|
|
975
1073
|
declare const MethodSwitchInlineQuery = "web_app_switch_inline_query";
|
|
976
1074
|
declare const MethodTriggerHapticFeedback = "web_app_trigger_haptic_feedback";
|
|
1075
|
+
declare const MethodSetupSwipeBehavior = "web_app_setup_swipe_behavior";
|
|
977
1076
|
|
|
978
1077
|
declare const EventBackButtonPressed = "back_button_pressed";
|
|
979
1078
|
declare const EventClipboardTextReceived = "clipboard_text_received";
|
|
@@ -991,4 +1090,4 @@ declare const EventThemeChanged = "theme_changed";
|
|
|
991
1090
|
declare const EventViewportChanged = "viewport_changed";
|
|
992
1091
|
declare const EventWriteAccessRequested = "write_access_requested";
|
|
993
1092
|
|
|
994
|
-
export { EventBackButtonPressed, EventClipboardTextReceived, EventCustomMethodInvoked, EventInvoiceClosed, EventMainButtonPressed, EventPhoneRequested, EventPopupClosed, EventQrTextReceived, EventReloadIframe, EventScanQrPopupClosed, EventSetCustomStyle, EventSettingsButtonPressed, EventThemeChanged, EventViewportChanged, EventWriteAccessRequested, type EventsData, MethodClose, MethodCloseScanQrPopup, MethodDataSend, MethodExpand, MethodIframeReady, MethodIframeWillReload, MethodInvokeCustomMethod, MethodOpenInvoice, MethodOpenLink, MethodOpenPopup, MethodOpenScanQrPopup, MethodOpenTgLink, MethodReadTextFromClipboard, MethodReady, MethodRequestPhone, MethodRequestTheme, MethodRequestViewport, MethodRequestWriteAccess, MethodSetBackgroundColor, MethodSetHeaderColor, MethodSetupBackButton, MethodSetupClosingBehavior, MethodSetupMainButton, MethodSetupSettingsButton, MethodSwitchInlineQuery, MethodTriggerHapticFeedback, NOT_SUPPORTED, TG_DESKTOP, TG_PHONE, TG_WEB, close as bridgeClose, closeScanQrPopup as bridgeCloseScanQrPopup, dataSend as bridgeDataSend, expand as bridgeExpand, getInitData as bridgeGetInitData, 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, sessionStorageGet as bridgeSessionStorageGet, sessionStorageSet as bridgeSessionStorageSet, setBackgroundColor as bridgeSetBackgroundColor, setHeaderColor as bridgeSetHeaderColor, setupBackButton as bridgeSetupBackButton, setupClosingBehavior as bridgeSetupClosingBehavior, setupMainButton as bridgeSetupMainButton, setupSettingsButton as bridgeSetupSettingsButton, switchInlineQuery as bridgeSwitchInlineQuery, triggerHapticFeedback as bridgeTriggerHapticFeedback, createIsViewportChanged, debug, listener, sender, supportClose, supportCloseScanQrPopup, supportDataSend, supportExpand, supportIframeReady, supportIframeWillReload, supportInvokeCustomMethod, supportOpenInvoice, supportOpenLink, supportOpenPopup, supportOpenScanQrPopup, supportOpenTgLink, supportReadTextFromClipboard, supportReady, supportRequestPhone, supportRequestTheme, supportRequestViewport, supportRequestWriteAccess, supportSessionStorageGet, supportSessionStorageSet, supportSetBackgroundColor, supportSetHeaderColor, supportSetupBackButton, supportSetupClosingBehavior, supportSetupMainButton, supportSetupSettingsButton, supportSwitchInlineQuery, supportTriggerHapticFeedback };
|
|
1093
|
+
export { EventBackButtonPressed, EventClipboardTextReceived, EventCustomMethodInvoked, EventInvoiceClosed, EventMainButtonPressed, EventPhoneRequested, EventPopupClosed, EventQrTextReceived, EventReloadIframe, EventScanQrPopupClosed, EventSetCustomStyle, EventSettingsButtonPressed, EventThemeChanged, EventViewportChanged, EventWriteAccessRequested, type EventsData, 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, MethodSwitchInlineQuery, MethodTriggerHapticFeedback, NOT_SUPPORTED, TG_DESKTOP, TG_PHONE, TG_WEB, close as bridgeClose, closeScanQrPopup as bridgeCloseScanQrPopup, dataSend as bridgeDataSend, expand as bridgeExpand, getInitData as bridgeGetInitData, 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, 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, switchInlineQuery as bridgeSwitchInlineQuery, triggerHapticFeedback as bridgeTriggerHapticFeedback, createIsViewportChanged, debug, 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, supportSwitchInlineQuery, supportTriggerHapticFeedback };
|
package/solid/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("solid-js");const t="web",s="phone",o="desktop",r="not_supported",p=(e,r)=>{const p=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppVersion");return Number(p)>=e&&-1!==r.indexOf((()=>{const e=window.location.hash.slice(1),r=new URLSearchParams(e).get("tgWebAppPlatform")??"ios";return["android","ios"].includes(r)?s:["tdesktop","macos"].includes(r)?o:t})())},a=()=>Math.random().toString(36).substring(3,9),n=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},i=()=>p(0,[t,o,s]),u=()=>d()?(Q(te),{status:!0}):(L(te,1),{status:r}),d=()=>p(6.4,[s]),_=()=>p(0,[t,o,s]),c=()=>p(0,[s]),x=()=>p(0,[t]),g=()=>p(0,[t]),l="web_app_invoke_custom_method",b=()=>p(6.9,[t,o,s]),h=()=>p(6.1,[t,o,s]),w=()=>p(6.4,[t,o,s]),m=()=>p(6.2,[t,o,s]),v=()=>p(6.4,[s]),S=()=>p(7,[t,o,s]),f=()=>p(6.4,[t,o,s]),y=()=>p(6.9,[t,o,s]),P=()=>p(6.9,[t,o,s]),M=()=>p(0,[t,o,s]),q=()=>p(0,[t,o,s]),R=()=>p(6.9,[t,o,s]),k=()=>p(6.1,[t,o,s]),C=()=>p(6.1,[t,o,s]),E=()=>p(6.1,[t,o,s]),O=()=>p(0,[t,o,s]),T=()=>p(0,[t,o,s]),I=()=>p(6.1,[t,o,s]),B=()=>p(6.7,[t,o,s]),W=()=>p(6.1,[s]);var L=(e,t)=>{"development"===process.env.NODE_ENV&&console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)};var Q=(e,t)=>{window.TelegramWebviewProxy?window.TelegramWebviewProxy.postEvent(e,JSON.stringify(t)):window.external&&"notify"in window.external&&window.external.notify(JSON.stringify({eventType:e,eventData:t}))};const D="clipboard_text_received",N="custom_method_invoked",A="phone_requested",G="popup_closed",V="qr_text_received",H="scan_qr_popup_closed",$="theme_changed",F="viewport_changed",U=((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===$&&(t.theme_params=(e=>{"#1c1c1d"==e.bg_color&&e.bg_color==e.secondary_bg_color&&(e.secondary_bg_color="#2c2c2e");const t=window.location.hash.slice(1),s=new URLSearchParams(t);var o=JSON.parse(s.get("tgWebAppThemeParams")??"");for(var r in e){var p=n(e[r]);"string"==typeof p&&(o[r]=p)}return o})(t.theme_params)),U.emit(e,t),U.emit("*",{name:e,data:t})}window.TelegramGameProxy_receiveEvent=e,window.Telegram={WebView:{receiveEvent:e}},window.TelegramGameProxy={receiveEvent:e}})();const J=(e,t)=>{U.on(e,t)},j=(e,t)=>{U.off(e,t)},z=(e,t)=>{U.once(e,t)};var K=Object.freeze({__proto__:null,off:j,on:J,once:z});const X="web_app_open_scan_qr_popup",Y="web_app_read_text_from_clipboard",Z="web_app_request_phone",ee="web_app_close",te="web_app_close_scan_qr_popup",se="web_app_data_send",oe="web_app_expand",re="iframe_ready",pe="web_app_open_invoice",ae="web_app_open_link",ne="web_app_open_popup",ie="web_app_open_tg_link",ue="web_app_ready",de="web_app_request_theme",_e="web_app_request_viewport",ce="web_app_request_write_access",xe="web_app_set_background_color",ge="web_app_set_header_color",le="web_app_setup_back_button",be="web_app_setup_closing_behavior",he="web_app_setup_main_button",we="web_app_setup_settings_button",me="web_app_switch_inline_query",ve="web_app_trigger_haptic_feedback";exports.EventBackButtonPressed="back_button_pressed",exports.EventClipboardTextReceived=D,exports.EventCustomMethodInvoked=N,exports.EventInvoiceClosed="invoice_closed",exports.EventMainButtonPressed="main_button_pressed",exports.EventPhoneRequested=A,exports.EventPopupClosed=G,exports.EventQrTextReceived=V,exports.EventReloadIframe="reload_iframe",exports.EventScanQrPopupClosed=H,exports.EventSetCustomStyle="set_custom_style",exports.EventSettingsButtonPressed="settings_button_pressed",exports.EventThemeChanged=$,exports.EventViewportChanged=F,exports.EventWriteAccessRequested="write_access_requested",exports.MethodClose=ee,exports.MethodCloseScanQrPopup=te,exports.MethodDataSend=se,exports.MethodExpand=oe,exports.MethodIframeReady=re,exports.MethodIframeWillReload="iframe_will_reload",exports.MethodInvokeCustomMethod="web_app_invoke_custom_method",exports.MethodOpenInvoice=pe,exports.MethodOpenLink=ae,exports.MethodOpenPopup=ne,exports.MethodOpenScanQrPopup=X,exports.MethodOpenTgLink=ie,exports.MethodReadTextFromClipboard=Y,exports.MethodReady=ue,exports.MethodRequestPhone=Z,exports.MethodRequestTheme=de,exports.MethodRequestViewport=_e,exports.MethodRequestWriteAccess=ce,exports.MethodSetBackgroundColor=xe,exports.MethodSetHeaderColor=ge,exports.MethodSetupBackButton=le,exports.MethodSetupClosingBehavior=be,exports.MethodSetupMainButton=he,exports.MethodSetupSettingsButton=we,exports.MethodSwitchInlineQuery=me,exports.MethodTriggerHapticFeedback=ve,exports.NOT_SUPPORTED=r,exports.TG_DESKTOP=o,exports.TG_PHONE=s,exports.TG_WEB=t,exports.bridgeClose=()=>i()?(Q(ee),{status:!0}):(L(ee,1),{status:r}),exports.bridgeCloseScanQrPopup=u,exports.bridgeDataSend=e=>_()?(Q(se,e),{status:!0}):(L(se,1),{status:r}),exports.bridgeExpand=()=>c()?(Q(oe),{status:!0}):(L(oe,1),{status:r}),exports.bridgeGetInitData=()=>{const e=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppData");if(null===e)return L("getInitData",2),null;const t=new URLSearchParams(e);let s={};return t.forEach(((e,t)=>{if(s[t]=e,void 0!==t.match(/^(chat|receiver|user)$/g))try{s[t]=JSON.parse(e)}catch{}})),s},exports.bridgeIframeReady=e=>x()?(Q(re,e),{status:!0}):(L(re,1),{status:r}),exports.bridgeIframeWillReload=()=>g()?(Q(re),{status:!0}):(L(re,1),{status:r}),exports.bridgeInvokeCustomMethod=async e=>b()?(void 0===e.req_id&&(e.req_id=a()),Q(l,e),new Promise(((t,s)=>{const o=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),j(N,o))};J(N,o)}))):(L(l,1),{status:r}),exports.bridgeOpenInvoice=e=>h()?(Q(pe,e),{status:!0}):(L(pe,1),{status:r}),exports.bridgeOpenLink=e=>w()?(Q(ae,e),{status:!0}):(L(ae,1),{status:r}),exports.bridgeOpenPopup=async e=>m()?(e.title.length>64&&L(ne,3),e.message.length<1&&L(ne,4),e.message.length>256&&L(ne,5),e.buttons.length<1&&L(ne,6),e.buttons.length>3&&L(ne,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&L(ne,8),Q(ne,e),new Promise(((t,s)=>{const o=s=>{t({status:!!e.buttons.find((e=>e.id===s?.button_id)),data:s}),j(G,o)};J(G,o)}))):(L(ne,1),{status:r}),exports.bridgeOpenScanQrPopup=async e=>v()?(Q(X,e),new Promise(((t,s)=>{z(V,(s=>{e.is_close&&u(),t({status:!0,data:s})})),z(H,(()=>{t({status:"closed"})}))}))):(L(X,1),{status:r}),exports.bridgeOpenTgLink=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),S()?(Q(ie,e),{status:!0}):(L(ie,1),{status:r})),exports.bridgeReadTextFromClipboard=async e=>f()?(void 0===e.req_id&&(e.req_id=a()),Q(Y,e),new Promise(((t,s)=>{const o=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),j(D,o))};J(D,o)}))):(L(Y,1),{status:r}),exports.bridgeReady=()=>y()?(Q(ue),{status:!0}):(L(ue,1),{status:r}),exports.bridgeRequestPhone=async()=>P()?(Q(Z),new Promise(((e,t)=>{z(A,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(L(Z,1),{status:r}),exports.bridgeRequestTheme=()=>M()?(Q(de),{status:!0}):(L(de,1),{status:r}),exports.bridgeRequestViewport=()=>q()?(Q(_e),{status:!0}):(L(_e,1),{status:r}),exports.bridgeRequestWriteAccess=()=>R()?(Q(ce),{status:!0}):(L(ce,1),{status:r}),exports.bridgeSessionStorageGet=({key:e})=>{try{return window.sessionStorage.getItem("__telegram__"+e),{status:!0}}catch(e){}return{status:!1}},exports.bridgeSessionStorageSet=({key:e,value:t})=>{try{return window.sessionStorage.setItem("__telegram__"+e,JSON.stringify(t)),{status:!0}}catch(e){}return{status:!1}},exports.bridgeSetBackgroundColor=e=>k()?(Q(xe,e),{status:!0}):(L(xe,1),{status:r}),exports.bridgeSetHeaderColor=e=>C()?(Q(ge,e),{status:!0}):(L(ge,1),{status:r}),exports.bridgeSetupBackButton=e=>E()?(Q(le,e),{status:!0}):(L(le,1),{status:r}),exports.bridgeSetupClosingBehavior=e=>O()?(Q(be,e),{status:!0}):(L(be,1),{status:r}),exports.bridgeSetupMainButton=e=>T()?(Q(he,e),{status:!0}):(L(he,1),{status:r}),exports.bridgeSetupSettingsButton=e=>I()?(Q(we,e),{status:!0}):(L(we,1),{status:r}),exports.bridgeSwitchInlineQuery=e=>B()?(e.query.length>256&&L(me,9),Q(me,e),{status:!0}):(L(me,1),{status:r}),exports.bridgeTriggerHapticFeedback=e=>W()?(Q(ve,e),{status:!0}):(L(ve,1),{status:r}),exports.createIsViewportChanged=()=>{const[t,s]=e.createSignal({height:0,is_expanded:!1,is_state_stable:!1}),o=e=>s(e);return e.onMount((()=>{J(F,o),Q(_e)})),e.onCleanup((()=>{j(F,o)})),t},exports.debug=L,exports.listener=K,exports.sender=Q,exports.supportClose=i,exports.supportCloseScanQrPopup=d,exports.supportDataSend=_,exports.supportExpand=c,exports.supportIframeReady=x,exports.supportIframeWillReload=g,exports.supportInvokeCustomMethod=b,exports.supportOpenInvoice=h,exports.supportOpenLink=w,exports.supportOpenPopup=m,exports.supportOpenScanQrPopup=v,exports.supportOpenTgLink=S,exports.supportReadTextFromClipboard=f,exports.supportReady=y,exports.supportRequestPhone=P,exports.supportRequestTheme=M,exports.supportRequestViewport=q,exports.supportRequestWriteAccess=R,exports.supportSessionStorageGet=()=>!0,exports.supportSessionStorageSet=()=>!0,exports.supportSetBackgroundColor=k,exports.supportSetHeaderColor=C,exports.supportSetupBackButton=E,exports.supportSetupClosingBehavior=O,exports.supportSetupMainButton=T,exports.supportSetupSettingsButton=I,exports.supportSwitchInlineQuery=B,exports.supportTriggerHapticFeedback=W;
|
|
1
|
+
"use strict";var e=require("debug"),t=require("solid-js");const s="web",o="phone",r="desktop",p=()=>{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},a="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(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 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=()=>n(0,[s,r,o]),_=()=>c()?(G(pe),{status:!0}):(A(pe,1),{status:a}),c=()=>n(6.4,[o]),x=()=>n(0,[s,r,o]),l=()=>n(0,[o]),g=()=>n(0,[s]),b=()=>n(0,[s]),h="web_app_invoke_custom_method",w=()=>n(6.9,[s,r,o]),m=()=>n(6.1,[s,r,o]),S=()=>n(6.4,[s,r,o]),v=()=>n(6.2,[s,r,o]),f=()=>n(6.4,[o]),y=()=>n(7,[s,r,o]),M=()=>n(6.4,[s,r,o]),P=()=>n(6.9,[s,r,o]),q=()=>n(6.9,[s,r,o]),C=()=>n(0,[s,r,o]),k=()=>n(0,[s,r,o]),R=()=>n(6.9,[s,r,o]),B=()=>n(6.1,[s,r,o]),O=()=>n(6.1,[s,r,o]),E=()=>n(710,[s,r,o]),T=()=>n(6.1,[s,r,o]),I=()=>n(0,[s,r,o]),W=()=>n(0,[s,r,o]),L=()=>n(6.1,[s,r,o]),N=()=>n(6.7,[s,r,o]),D=()=>n(6.1,[o]),Q=()=>n(7.7,[s,r,o]);var A=(e,t)=>{"development"===process.env.NODE_ENV&&console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)};var G=(t,s)=>{if(window.TelegramWebviewProxy)window.TelegramWebviewProxy.postEvent(t,JSON.stringify(s));else if(window.external&&"notify"in window.external)window.external.notify(JSON.stringify({eventType:t,eventData:s}));else try{"*",window.parent.postMessage(JSON.stringify({eventType:t,eventData:s}),"*")}catch(t){e("postMessage Iframe",10)}};const V="clipboard_text_received",H="custom_method_invoked",J="phone_requested",$="popup_closed",F="qr_text_received",U="scan_qr_popup_closed",j="theme_changed",z="viewport_changed",K=((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===j&&(t.theme_params=(e=>{"#1c1c1d"==e.bg_color&&e.bg_color==e.secondary_bg_color&&(e.secondary_bg_color="#2c2c2e");const t=window.location.hash.slice(1),s=new URLSearchParams(t);var o=JSON.parse(s.get("tgWebAppThemeParams")??"");for(var r in e){var p=u(e[r]);"string"==typeof p&&(o[r]=p)}return o})(t.theme_params)),K.emit(e,t),K.emit("*",{name:e,data:t})}window.TelegramGameProxy_receiveEvent=e,window.Telegram={WebView:{receiveEvent:e}},window.TelegramGameProxy={receiveEvent:e}})();const X=(e,t)=>{K.on(e,t)},Y=(e,t)=>{K.off(e,t)},Z=(e,t)=>{K.once(e,t)};var ee=Object.freeze({__proto__:null,off:Y,on:X,once:Z});const te="web_app_open_scan_qr_popup",se="web_app_read_text_from_clipboard",oe="web_app_request_phone",re="web_app_close",pe="web_app_close_scan_qr_popup",ae="web_app_data_send",ne="web_app_expand",ie="iframe_ready",ue="web_app_open_invoice",de="web_app_open_link",_e="web_app_open_popup",ce="web_app_open_tg_link",xe="web_app_ready",le="web_app_request_theme",ge="web_app_request_viewport",be="web_app_request_write_access",he="web_app_set_background_color",we="web_app_set_header_color",me="web_app_set_bottom_bar_color",Se="web_app_setup_back_button",ve="web_app_setup_closing_behavior",fe="web_app_setup_main_button",ye="web_app_setup_settings_button",Me="web_app_switch_inline_query",Pe="web_app_trigger_haptic_feedback",qe="web_app_setup_swipe_behavior";exports.EventBackButtonPressed="back_button_pressed",exports.EventClipboardTextReceived=V,exports.EventCustomMethodInvoked=H,exports.EventInvoiceClosed="invoice_closed",exports.EventMainButtonPressed="main_button_pressed",exports.EventPhoneRequested=J,exports.EventPopupClosed=$,exports.EventQrTextReceived=F,exports.EventReloadIframe="reload_iframe",exports.EventScanQrPopupClosed=U,exports.EventSetCustomStyle="set_custom_style",exports.EventSettingsButtonPressed="settings_button_pressed",exports.EventThemeChanged=j,exports.EventViewportChanged=z,exports.EventWriteAccessRequested="write_access_requested",exports.MethodClose=re,exports.MethodCloseScanQrPopup=pe,exports.MethodDataSend=ae,exports.MethodExpand=ne,exports.MethodIframeReady=ie,exports.MethodIframeWillReload="iframe_will_reload",exports.MethodInvokeCustomMethod="web_app_invoke_custom_method",exports.MethodOpenInvoice=ue,exports.MethodOpenLink=de,exports.MethodOpenPopup=_e,exports.MethodOpenScanQrPopup=te,exports.MethodOpenTgLink=ce,exports.MethodReadTextFromClipboard=se,exports.MethodReady=xe,exports.MethodRequestPhone=oe,exports.MethodRequestTheme=le,exports.MethodRequestViewport=ge,exports.MethodRequestWriteAccess=be,exports.MethodSetBackgroundColor=he,exports.MethodSetBottomBarColor=me,exports.MethodSetHeaderColor=we,exports.MethodSetupBackButton=Se,exports.MethodSetupClosingBehavior=ve,exports.MethodSetupMainButton=fe,exports.MethodSetupSettingsButton=ye,exports.MethodSetupSwipeBehavior=qe,exports.MethodSwitchInlineQuery=Me,exports.MethodTriggerHapticFeedback=Pe,exports.NOT_SUPPORTED=a,exports.TG_DESKTOP=r,exports.TG_PHONE=o,exports.TG_WEB=s,exports.bridgeClose=()=>d()?(G(re),{status:!0}):(A(re,1),{status:a}),exports.bridgeCloseScanQrPopup=_,exports.bridgeDataSend=e=>x()?(G(ae,e),{status:!0}):(A(ae,1),{status:a}),exports.bridgeExpand=()=>l()?(G(ne),{status:!0}):(A(ne,1),{status:a}),exports.bridgeGetInitData=()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppData");if(!t)return A("getInitData",2),null;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},exports.bridgeIframeReady=e=>g()?(G(ie,e),{status:!0}):(A(ie,1),{status:a}),exports.bridgeIframeWillReload=()=>b()?(G(ie),{status:!0}):(A(ie,1),{status:a}),exports.bridgeInvokeCustomMethod=async e=>w()?(void 0===e.req_id&&(e.req_id=i()),G(h,e),new Promise(((t,s)=>{const o=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),Y(H,o))};X(H,o)}))):(A(h,1),{status:a}),exports.bridgeOpenInvoice=e=>m()?(G(ue,e),{status:!0}):(A(ue,1),{status:a}),exports.bridgeOpenLink=e=>S()?(G(de,e),{status:!0}):(A(de,1),{status:a}),exports.bridgeOpenPopup=async e=>v()?(e.title.length>64&&A(_e,3),e.message.length<1&&A(_e,4),e.message.length>256&&A(_e,5),e.buttons.length<1&&A(_e,6),e.buttons.length>3&&A(_e,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&A(_e,8),G(_e,e),new Promise(((t,s)=>{const o=s=>{t({status:!!e.buttons.find((e=>e.id===s?.button_id)),data:s}),Y($,o)};X($,o)}))):(A(_e,1),{status:a}),exports.bridgeOpenScanQrPopup=async e=>f()?(G(te,e),new Promise(((t,s)=>{Z(F,(s=>{e.is_close&&_(),t({status:!0,data:s})})),Z(U,(()=>{t({status:"closed"})}))}))):(A(te,1),{status:a}),exports.bridgeOpenTgLink=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),y()?(G(ce,e),{status:!0}):(A(ce,1),{status:a})),exports.bridgeReadTextFromClipboard=async e=>M()?(void 0===e.req_id&&(e.req_id=i()),G(se,e),new Promise(((t,s)=>{const o=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),Y(V,o))};X(V,o)}))):(A(se,1),{status:a}),exports.bridgeReady=()=>P()?(G(xe),{status:!0}):(A(xe,1),{status:a}),exports.bridgeRequestPhone=async()=>q()?(G(oe),new Promise(((e,t)=>{Z(J,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(A(oe,1),{status:a}),exports.bridgeRequestTheme=()=>C()?(G(le),{status:!0}):(A(le,1),{status:a}),exports.bridgeRequestViewport=()=>k()?(G(ge),{status:!0}):(A(ge,1),{status:a}),exports.bridgeRequestWriteAccess=()=>R()?(G(be),{status:!0}):(A(be,1),{status:a}),exports.bridgeSessionStorageGet=({key:e})=>{try{return{value:JSON.parse(window.sessionStorage.getItem("__telegram__"+e)??""),status:!0}}catch(e){}return{status:!1}},exports.bridgeSessionStorageSet=({key:e,value:t})=>{try{return window.sessionStorage.setItem("__telegram__"+e,JSON.stringify(t)),{status:!0}}catch(e){}return{status:!1}},exports.bridgeSetBackgroundColor=e=>B()?(G(he,e),{status:!0}):(A(he,1),{status:a}),exports.bridgeSetBottomBarColor=e=>E()?(G(me,{color:e.color||e.color_key}),{status:!0}):(A(me,1),{status:a}),exports.bridgeSetHeaderColor=e=>O()?(G(we,e),{status:!0}):(A(we,1),{status:a}),exports.bridgeSetupBackButton=e=>T()?(G(Se,e),{status:!0}):(A(Se,1),{status:a}),exports.bridgeSetupClosingBehavior=e=>I()?(G(ve,e),{status:!0}):(A(ve,1),{status:a}),exports.bridgeSetupMainButton=e=>W()?(G(fe,e),{status:!0}):(A(fe,1),{status:a}),exports.bridgeSetupSettingsButton=e=>L()?(G(ye,e),{status:!0}):(A(ye,1),{status:a}),exports.bridgeSetupSwipeBehavior=e=>Q()?(G(qe,e),{status:!0}):(A(qe,1),{status:a}),exports.bridgeSwitchInlineQuery=e=>N()?(e.query.length>256&&A(Me,9),G(Me,e),{status:!0}):(A(Me,1),{status:a}),exports.bridgeTriggerHapticFeedback=e=>D()?(G(Pe,e),{status:!0}):(A(Pe,1),{status:a}),exports.createIsViewportChanged=()=>{const[e,s]=t.createSignal({height:0,is_expanded:!1,is_state_stable:!1}),o=e=>s(e);return t.onMount((()=>{X(z,o),G(ge)})),t.onCleanup((()=>{Y(z,o)})),e},exports.debug=A,exports.getPlatform=p,exports.listener=ee,exports.sender=G,exports.supportClose=d,exports.supportCloseScanQrPopup=c,exports.supportDataSend=x,exports.supportExpand=l,exports.supportIframeReady=g,exports.supportIframeWillReload=b,exports.supportInvokeCustomMethod=w,exports.supportOpenInvoice=m,exports.supportOpenLink=S,exports.supportOpenPopup=v,exports.supportOpenScanQrPopup=f,exports.supportOpenTgLink=y,exports.supportReadTextFromClipboard=M,exports.supportReady=P,exports.supportRequestPhone=q,exports.supportRequestTheme=C,exports.supportRequestViewport=k,exports.supportRequestWriteAccess=R,exports.supportSessionStorageGet=()=>!0,exports.supportSessionStorageSet=()=>!0,exports.supportSetBackgroundColor=B,exports.supportSetBottomBarColor=E,exports.supportSetHeaderColor=O,exports.supportSetupBackButton=T,exports.supportSetupClosingBehavior=I,exports.supportSetupMainButton=W,exports.supportSetupSettingsButton=L,exports.supportSetupSwipeBehavior=Q,exports.supportSwitchInlineQuery=N,exports.supportTriggerHapticFeedback=D;
|
package/solid/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createSignal as e,onMount as t,onCleanup as s}from"solid-js";const a=()=>{const[a,r]=e({height:0,is_expanded:!1,is_state_stable:!1}),o=e=>r(e);return t((()=>{We(Te,o),we(Ze)})),s((()=>{Ee(Te,o)})),a},r="web",o="phone",n="desktop",i="not_supported",_=(e,t)=>{const s=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppVersion");return Number(s)>=e&&-1!==t.indexOf((()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppPlatform")??"ios";return["android","ios"].includes(t)?o:["tdesktop","macos"].includes(t)?n:r})())},p=()=>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]),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},d=()=>c()?(we(Ue),{status:!0}):(be(Ue,1),{status:i}),c=()=>_(0,[r,n,o]),g=()=>b()?(we(Ge),{status:!0}):(be(Ge,1),{status:i}),b=()=>_(6.4,[o]),l=e=>w()?(we(Me,e),{status:!0}):(be(Me,1),{status:i}),w=()=>_(0,[r,n,o]),m=()=>h()?(we(Ve),{status:!0}):(be(Ve,1),{status:i}),h=()=>_(0,[o]),f=e=>v()?(we(Qe,e),{status:!0}):(be(Qe,1),{status:i}),v=()=>_(0,[r]),S=()=>y()?(we(Qe),{status:!0}):(be(Qe,1),{status:i}),y=()=>_(0,[r]),q="web_app_invoke_custom_method",x=async e=>k()?(void 0===e.req_id&&(e.req_id=p()),we(q,e),new Promise(((t,s)=>{const a=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),Ee(fe,a))};We(fe,a)}))):(be(q,1),{status:i}),k=()=>_(6.9,[r,n,o]),P=e=>O()?(we(Fe,e),{status:!0}):(be(Fe,1),{status:i}),O=()=>_(6.1,[r,n,o]),R=e=>I()?(we(He,e),{status:!0}):(be(He,1),{status:i}),I=()=>_(6.4,[r,n,o]),T=async e=>C()?(e.title.length>64&&be(ze,3),e.message.length<1&&be(ze,4),e.message.length>256&&be(ze,5),e.buttons.length<1&&be(ze,6),e.buttons.length>3&&be(ze,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&be(ze,8),we(ze,e),new Promise(((t,s)=>{const a=s=>{t({status:!!e.buttons.find((e=>e.id===s?.button_id)),data:s}),Ee(qe,a)};We(qe,a)}))):(be(ze,1),{status:i}),C=()=>_(6.2,[r,n,o]),L=async e=>W()?(we(De,e),new Promise(((t,s)=>{Ne(ke,(s=>{e.is_close&&g(),t({status:!0,data:s})})),Ne(Pe,(()=>{t({status:"closed"})}))}))):(be(De,1),{status:i}),W=()=>_(6.4,[o]),E=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),N()?(we(Ke,e),{status:!0}):(be(Ke,1),{status:i})),N=()=>_(7,[r,n,o]),$=async e=>B()?(void 0===e.req_id&&(e.req_id=p()),we(Ae,e),new Promise(((t,s)=>{const a=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),Ee(he,a))};We(he,a)}))):(be(Ae,1),{status:i}),B=()=>_(6.4,[r,n,o]),D=()=>A()?(we(Xe),{status:!0}):(be(Xe,1),{status:i}),A=()=>_(6.9,[r,n,o]),J=async()=>U()?(we(Je),new Promise(((e,t)=>{Ne(ye,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(be(Je,1),{status:i}),U=()=>_(6.9,[r,n,o]),G=()=>M()?(we(Ye),{status:!0}):(be(Ye,1),{status:i}),M=()=>_(0,[r,n,o]),V=()=>Q()?(we(Ze),{status:!0}):(be(Ze,1),{status:i}),Q=()=>_(0,[r,n,o]),j=()=>F()?(we(et),{status:!0}):(be(et,1),{status:i}),F=()=>_(6.9,[r,n,o]),H=e=>z()?(we(tt,e),{status:!0}):(be(tt,1),{status:i}),z=()=>_(6.1,[r,n,o]),K=e=>X()?(we(st,e),{status:!0}):(be(st,1),{status:i}),X=()=>_(6.1,[r,n,o]),Y=e=>Z()?(we(at,e),{status:!0}):(be(at,1),{status:i}),Z=()=>_(6.1,[r,n,o]),ee=e=>te()?(we(rt,e),{status:!0}):(be(rt,1),{status:i}),te=()=>_(0,[r,n,o]),se=e=>ae()?(we(ot,e),{status:!0}):(be(ot,1),{status:i}),ae=()=>_(0,[r,n,o]),re=e=>oe()?(we(nt,e),{status:!0}):(be(nt,1),{status:i}),oe=()=>_(6.1,[r,n,o]),ne=e=>ie()?(e.query.length>256&&be(it,9),we(it,e),{status:!0}):(be(it,1),{status:i}),ie=()=>_(6.7,[r,n,o]),_e=e=>pe()?(we(_t,e),{status:!0}):(be(_t,1),{status:i}),pe=()=>_(6.1,[o]),ue=({key:e,value:t})=>{try{return window.sessionStorage.setItem("__telegram__"+e,JSON.stringify(t)),{status:!0}}catch(e){}return{status:!1}},de=()=>!0,ce=({key:e})=>{try{return window.sessionStorage.getItem("__telegram__"+e),{status:!0}}catch(e){}return{status:!1}},ge=()=>!0;var be=(e,t)=>{"development"===process.env.NODE_ENV&&console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)};const le=()=>{const e=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppData");if(null===e)return be("getInitData",2),null;const t=new URLSearchParams(e);let s={};return t.forEach(((e,t)=>{if(s[t]=e,void 0!==t.match(/^(chat|receiver|user)$/g))try{s[t]=JSON.parse(e)}catch{}})),s};var we=(e,t)=>{window.TelegramWebviewProxy?window.TelegramWebviewProxy.postEvent(e,JSON.stringify(t)):window.external&&"notify"in window.external&&window.external.notify(JSON.stringify({eventType:e,eventData:t}))};const me="back_button_pressed",he="clipboard_text_received",fe="custom_method_invoked",ve="invoice_closed",Se="main_button_pressed",ye="phone_requested",qe="popup_closed",xe="reload_iframe",ke="qr_text_received",Pe="scan_qr_popup_closed",Oe="set_custom_style",Re="settings_button_pressed",Ie="theme_changed",Te="viewport_changed",Ce="write_access_requested",Le=((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===Ie&&(t.theme_params=(e=>{"#1c1c1d"==e.bg_color&&e.bg_color==e.secondary_bg_color&&(e.secondary_bg_color="#2c2c2e");const t=window.location.hash.slice(1),s=new URLSearchParams(t);var a=JSON.parse(s.get("tgWebAppThemeParams")??"");for(var r in e){var o=u(e[r]);"string"==typeof o&&(a[r]=o)}return a})(t.theme_params)),Le.emit(e,t),Le.emit("*",{name:e,data:t})}window.TelegramGameProxy_receiveEvent=e,window.Telegram={WebView:{receiveEvent:e}},window.TelegramGameProxy={receiveEvent:e}})();const We=(e,t)=>{Le.on(e,t)},Ee=(e,t)=>{Le.off(e,t)},Ne=(e,t)=>{Le.once(e,t)};var $e=Object.freeze({__proto__:null,off:Ee,on:We,once:Ne});const Be="web_app_invoke_custom_method",De="web_app_open_scan_qr_popup",Ae="web_app_read_text_from_clipboard",Je="web_app_request_phone",Ue="web_app_close",Ge="web_app_close_scan_qr_popup",Me="web_app_data_send",Ve="web_app_expand",Qe="iframe_ready",je="iframe_will_reload",Fe="web_app_open_invoice",He="web_app_open_link",ze="web_app_open_popup",Ke="web_app_open_tg_link",Xe="web_app_ready",Ye="web_app_request_theme",Ze="web_app_request_viewport",et="web_app_request_write_access",tt="web_app_set_background_color",st="web_app_set_header_color",at="web_app_setup_back_button",rt="web_app_setup_closing_behavior",ot="web_app_setup_main_button",nt="web_app_setup_settings_button",it="web_app_switch_inline_query",_t="web_app_trigger_haptic_feedback";export{me as EventBackButtonPressed,he as EventClipboardTextReceived,fe as EventCustomMethodInvoked,ve as EventInvoiceClosed,Se as EventMainButtonPressed,ye as EventPhoneRequested,qe as EventPopupClosed,ke as EventQrTextReceived,xe as EventReloadIframe,Pe as EventScanQrPopupClosed,Oe as EventSetCustomStyle,Re as EventSettingsButtonPressed,Ie as EventThemeChanged,Te as EventViewportChanged,Ce as EventWriteAccessRequested,Ue as MethodClose,Ge as MethodCloseScanQrPopup,Me as MethodDataSend,Ve as MethodExpand,Qe as MethodIframeReady,je as MethodIframeWillReload,Be as MethodInvokeCustomMethod,Fe as MethodOpenInvoice,He as MethodOpenLink,ze as MethodOpenPopup,De as MethodOpenScanQrPopup,Ke as MethodOpenTgLink,Ae as MethodReadTextFromClipboard,Xe as MethodReady,Je as MethodRequestPhone,Ye as MethodRequestTheme,Ze as MethodRequestViewport,et as MethodRequestWriteAccess,tt as MethodSetBackgroundColor,st as MethodSetHeaderColor,at as MethodSetupBackButton,rt as MethodSetupClosingBehavior,ot as MethodSetupMainButton,nt as MethodSetupSettingsButton,it as MethodSwitchInlineQuery,_t as MethodTriggerHapticFeedback,i as NOT_SUPPORTED,n as TG_DESKTOP,o as TG_PHONE,r as TG_WEB,d as bridgeClose,g as bridgeCloseScanQrPopup,l as bridgeDataSend,m as bridgeExpand,le as bridgeGetInitData,f as bridgeIframeReady,S as bridgeIframeWillReload,x as bridgeInvokeCustomMethod,P as bridgeOpenInvoice,R as bridgeOpenLink,T as bridgeOpenPopup,L as bridgeOpenScanQrPopup,E as bridgeOpenTgLink,$ as bridgeReadTextFromClipboard,D as bridgeReady,J as bridgeRequestPhone,G as bridgeRequestTheme,V as bridgeRequestViewport,j as bridgeRequestWriteAccess,ce as bridgeSessionStorageGet,ue as bridgeSessionStorageSet,H as bridgeSetBackgroundColor,K as bridgeSetHeaderColor,Y as bridgeSetupBackButton,ee as bridgeSetupClosingBehavior,se as bridgeSetupMainButton,re as bridgeSetupSettingsButton,ne as bridgeSwitchInlineQuery,_e as bridgeTriggerHapticFeedback,a as createIsViewportChanged,be as debug,$e as listener,we as sender,c as supportClose,b as supportCloseScanQrPopup,w as supportDataSend,h as supportExpand,v as supportIframeReady,y as supportIframeWillReload,k as supportInvokeCustomMethod,O as supportOpenInvoice,I as supportOpenLink,C as supportOpenPopup,W as supportOpenScanQrPopup,N as supportOpenTgLink,B as supportReadTextFromClipboard,A as supportReady,U as supportRequestPhone,M as supportRequestTheme,Q as supportRequestViewport,F as supportRequestWriteAccess,ge as supportSessionStorageGet,de as supportSessionStorageSet,z as supportSetBackgroundColor,X as supportSetHeaderColor,Z as supportSetupBackButton,te as supportSetupClosingBehavior,ae as supportSetupMainButton,oe as supportSetupSettingsButton,ie as supportSwitchInlineQuery,pe as supportTriggerHapticFeedback};
|
|
1
|
+
import e from"debug";import{createSignal as t,onMount as s,onCleanup as a}from"solid-js";const r=()=>{const[e,r]=t({height:0,is_expanded:!1,is_state_stable:!1}),o=e=>r(e);return s((()=>{$e(Ee,o),ye(ot)})),a((()=>{Me(Ee,o)})),e},o="web",n="phone",i="desktop",_=()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppPlatform")??"ios";return["android","ios"].includes(t)?n:["tdesktop","macos"].includes(t)?i:o},p="not_supported",u=(e,t)=>{const s=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppVersion");return Number(s?.replace(".",""))>=Number(String(e)?.replace(".",""))&&-1!==t.indexOf(_())},d=()=>Math.random().toString(36).substring(3,9),c=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},g=()=>b()?(ye(Fe),{status:!0}):(ve(Fe,1),{status:p}),b=()=>u(0,[o,i,n]),l=()=>w()?(ye(He),{status:!0}):(ve(He,1),{status:p}),w=()=>u(6.4,[n]),m=e=>h()?(ye(ze,e),{status:!0}):(ve(ze,1),{status:p}),h=()=>u(0,[o,i,n]),f=()=>v()?(ye(Ke),{status:!0}):(ve(Ke,1),{status:p}),v=()=>u(0,[n]),S=e=>y()?(ye(Xe,e),{status:!0}):(ve(Xe,1),{status:p}),y=()=>u(0,[o]),q=()=>x()?(ye(Xe),{status:!0}):(ve(Xe,1),{status:p}),x=()=>u(0,[o]),k="web_app_invoke_custom_method",P=async e=>O()?(void 0===e.req_id&&(e.req_id=d()),ye(k,e),new Promise(((t,s)=>{const a=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),Me(ke,a))};$e(ke,a)}))):(ve(k,1),{status:p}),O=()=>u(6.9,[o,i,n]),I=e=>R()?(ye(Ze,e),{status:!0}):(ve(Ze,1),{status:p}),R=()=>u(6.1,[o,i,n]),T=e=>N()?(ye(et,e),{status:!0}):(ve(et,1),{status:p}),N=()=>u(6.4,[o,i,n]),C=async e=>B()?(e.title.length>64&&ve(tt,3),e.message.length<1&&ve(tt,4),e.message.length>256&&ve(tt,5),e.buttons.length<1&&ve(tt,6),e.buttons.length>3&&ve(tt,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&ve(tt,8),ye(tt,e),new Promise(((t,s)=>{const a=s=>{t({status:!!e.buttons.find((e=>e.id===s?.button_id)),data:s}),Me(Re,a)};$e(Re,a)}))):(ve(tt,1),{status:p}),B=()=>u(6.2,[o,i,n]),L=async e=>W()?(ye(Ve,e),new Promise(((t,s)=>{Ae(Ne,(s=>{e.is_close&&l(),t({status:!0,data:s})})),Ae(Ce,(()=>{t({status:"closed"})}))}))):(ve(Ve,1),{status:p}),W=()=>u(6.4,[n]),E=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),D()?(ye(st,e),{status:!0}):(ve(st,1),{status:p})),D=()=>u(7,[o,i,n]),J=async e=>$()?(void 0===e.req_id&&(e.req_id=d()),ye(Qe,e),new Promise(((t,s)=>{const a=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),Me(xe,a))};$e(xe,a)}))):(ve(Qe,1),{status:p}),$=()=>u(6.4,[o,i,n]),M=()=>A()?(ye(at),{status:!0}):(ve(at,1),{status:p}),A=()=>u(6.9,[o,i,n]),U=async()=>G()?(ye(je),new Promise(((e,t)=>{Ae(Ie,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(ve(je,1),{status:p}),G=()=>u(6.9,[o,i,n]),V=()=>Q()?(ye(rt),{status:!0}):(ve(rt,1),{status:p}),Q=()=>u(0,[o,i,n]),j=()=>F()?(ye(ot),{status:!0}):(ve(ot,1),{status:p}),F=()=>u(0,[o,i,n]),H=()=>z()?(ye(nt),{status:!0}):(ve(nt,1),{status:p}),z=()=>u(6.9,[o,i,n]),K=e=>X()?(ye(it,e),{status:!0}):(ve(it,1),{status:p}),X=()=>u(6.1,[o,i,n]),Y=e=>Z()?(ye(_t,e),{status:!0}):(ve(_t,1),{status:p}),Z=()=>u(6.1,[o,i,n]),ee=e=>te()?(ye(pt,{color:e.color||e.color_key}),{status:!0}):(ve(pt,1),{status:p}),te=()=>u(710,[o,i,n]),se=e=>ae()?(ye(ut,e),{status:!0}):(ve(ut,1),{status:p}),ae=()=>u(6.1,[o,i,n]),re=e=>oe()?(ye(dt,e),{status:!0}):(ve(dt,1),{status:p}),oe=()=>u(0,[o,i,n]),ne=e=>ie()?(ye(ct,e),{status:!0}):(ve(ct,1),{status:p}),ie=()=>u(0,[o,i,n]),_e=e=>pe()?(ye(gt,e),{status:!0}):(ve(gt,1),{status:p}),pe=()=>u(6.1,[o,i,n]),ue=e=>de()?(e.query.length>256&&ve(bt,9),ye(bt,e),{status:!0}):(ve(bt,1),{status:p}),de=()=>u(6.7,[o,i,n]),ce=e=>ge()?(ye(lt,e),{status:!0}):(ve(lt,1),{status:p}),ge=()=>u(6.1,[n]),be=({key:e,value:t})=>{try{return window.sessionStorage.setItem("__telegram__"+e,JSON.stringify(t)),{status:!0}}catch(e){}return{status:!1}},le=()=>!0,we=({key:e})=>{try{return{value:JSON.parse(window.sessionStorage.getItem("__telegram__"+e)??""),status:!0}}catch(e){}return{status:!1}},me=()=>!0,he=e=>fe()?(ye(wt,e),{status:!0}):(ve(wt,1),{status:p}),fe=()=>u(7.7,[o,i,n]);var ve=(e,t)=>{"development"===process.env.NODE_ENV&&console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)};const Se=()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppData");if(!t)return ve("getInitData",2),null;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};var ye=(t,s)=>{if(window.TelegramWebviewProxy)window.TelegramWebviewProxy.postEvent(t,JSON.stringify(s));else if(window.external&&"notify"in window.external)window.external.notify(JSON.stringify({eventType:t,eventData:s}));else try{"*",window.parent.postMessage(JSON.stringify({eventType:t,eventData:s}),"*")}catch(t){e("postMessage Iframe",10)}};const qe="back_button_pressed",xe="clipboard_text_received",ke="custom_method_invoked",Pe="invoice_closed",Oe="main_button_pressed",Ie="phone_requested",Re="popup_closed",Te="reload_iframe",Ne="qr_text_received",Ce="scan_qr_popup_closed",Be="set_custom_style",Le="settings_button_pressed",We="theme_changed",Ee="viewport_changed",De="write_access_requested",Je=((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===We&&(t.theme_params=(e=>{"#1c1c1d"==e.bg_color&&e.bg_color==e.secondary_bg_color&&(e.secondary_bg_color="#2c2c2e");const t=window.location.hash.slice(1),s=new URLSearchParams(t);var a=JSON.parse(s.get("tgWebAppThemeParams")??"");for(var r in e){var o=c(e[r]);"string"==typeof o&&(a[r]=o)}return a})(t.theme_params)),Je.emit(e,t),Je.emit("*",{name:e,data:t})}window.TelegramGameProxy_receiveEvent=e,window.Telegram={WebView:{receiveEvent:e}},window.TelegramGameProxy={receiveEvent:e}})();const $e=(e,t)=>{Je.on(e,t)},Me=(e,t)=>{Je.off(e,t)},Ae=(e,t)=>{Je.once(e,t)};var Ue=Object.freeze({__proto__:null,off:Me,on:$e,once:Ae});const Ge="web_app_invoke_custom_method",Ve="web_app_open_scan_qr_popup",Qe="web_app_read_text_from_clipboard",je="web_app_request_phone",Fe="web_app_close",He="web_app_close_scan_qr_popup",ze="web_app_data_send",Ke="web_app_expand",Xe="iframe_ready",Ye="iframe_will_reload",Ze="web_app_open_invoice",et="web_app_open_link",tt="web_app_open_popup",st="web_app_open_tg_link",at="web_app_ready",rt="web_app_request_theme",ot="web_app_request_viewport",nt="web_app_request_write_access",it="web_app_set_background_color",_t="web_app_set_header_color",pt="web_app_set_bottom_bar_color",ut="web_app_setup_back_button",dt="web_app_setup_closing_behavior",ct="web_app_setup_main_button",gt="web_app_setup_settings_button",bt="web_app_switch_inline_query",lt="web_app_trigger_haptic_feedback",wt="web_app_setup_swipe_behavior";export{qe as EventBackButtonPressed,xe as EventClipboardTextReceived,ke as EventCustomMethodInvoked,Pe as EventInvoiceClosed,Oe as EventMainButtonPressed,Ie as EventPhoneRequested,Re as EventPopupClosed,Ne as EventQrTextReceived,Te as EventReloadIframe,Ce as EventScanQrPopupClosed,Be as EventSetCustomStyle,Le as EventSettingsButtonPressed,We as EventThemeChanged,Ee as EventViewportChanged,De as EventWriteAccessRequested,Fe as MethodClose,He as MethodCloseScanQrPopup,ze as MethodDataSend,Ke as MethodExpand,Xe as MethodIframeReady,Ye as MethodIframeWillReload,Ge as MethodInvokeCustomMethod,Ze as MethodOpenInvoice,et as MethodOpenLink,tt as MethodOpenPopup,Ve as MethodOpenScanQrPopup,st as MethodOpenTgLink,Qe as MethodReadTextFromClipboard,at as MethodReady,je as MethodRequestPhone,rt as MethodRequestTheme,ot as MethodRequestViewport,nt as MethodRequestWriteAccess,it as MethodSetBackgroundColor,pt as MethodSetBottomBarColor,_t as MethodSetHeaderColor,ut as MethodSetupBackButton,dt as MethodSetupClosingBehavior,ct as MethodSetupMainButton,gt as MethodSetupSettingsButton,wt as MethodSetupSwipeBehavior,bt as MethodSwitchInlineQuery,lt as MethodTriggerHapticFeedback,p as NOT_SUPPORTED,i as TG_DESKTOP,n as TG_PHONE,o as TG_WEB,g as bridgeClose,l as bridgeCloseScanQrPopup,m as bridgeDataSend,f as bridgeExpand,Se as bridgeGetInitData,S as bridgeIframeReady,q as bridgeIframeWillReload,P as bridgeInvokeCustomMethod,I as bridgeOpenInvoice,T as bridgeOpenLink,C as bridgeOpenPopup,L as bridgeOpenScanQrPopup,E as bridgeOpenTgLink,J as bridgeReadTextFromClipboard,M as bridgeReady,U as bridgeRequestPhone,V as bridgeRequestTheme,j as bridgeRequestViewport,H as bridgeRequestWriteAccess,we as bridgeSessionStorageGet,be as bridgeSessionStorageSet,K as bridgeSetBackgroundColor,ee as bridgeSetBottomBarColor,Y as bridgeSetHeaderColor,se as bridgeSetupBackButton,re as bridgeSetupClosingBehavior,ne as bridgeSetupMainButton,_e as bridgeSetupSettingsButton,he as bridgeSetupSwipeBehavior,ue as bridgeSwitchInlineQuery,ce as bridgeTriggerHapticFeedback,r as createIsViewportChanged,ve as debug,_ as getPlatform,Ue as listener,ye as sender,b as supportClose,w as supportCloseScanQrPopup,h as supportDataSend,v as supportExpand,y as supportIframeReady,x as supportIframeWillReload,O as supportInvokeCustomMethod,R as supportOpenInvoice,N as supportOpenLink,B as supportOpenPopup,W as supportOpenScanQrPopup,D as supportOpenTgLink,$ as supportReadTextFromClipboard,A as supportReady,G as supportRequestPhone,Q as supportRequestTheme,F as supportRequestViewport,z as supportRequestWriteAccess,me as supportSessionStorageGet,le as supportSessionStorageSet,X as supportSetBackgroundColor,te as supportSetBottomBarColor,Z as supportSetHeaderColor,ae as supportSetupBackButton,oe as supportSetupClosingBehavior,ie as supportSetupMainButton,pe as supportSetupSettingsButton,fe as supportSetupSwipeBehavior,de as supportSwitchInlineQuery,ge as supportTriggerHapticFeedback};
|