@apiteam/twa-bridge 7.0.0-beta.9 → 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 +104 -44
- package/react/index.js +1 -1
- package/react/index.mjs +1 -1
- package/solid/index.d.ts +152 -54
- package/solid/index.js +1 -1
- package/solid/index.mjs +1 -1
package/package.json
CHANGED
package/react/index.d.ts
CHANGED
|
@@ -606,6 +606,20 @@ declare const sessionStorageGet: SessionStorageGet;
|
|
|
606
606
|
*/
|
|
607
607
|
declare const supportSessionStorageGet: () => boolean;
|
|
608
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
|
+
|
|
609
623
|
type User = {
|
|
610
624
|
/**
|
|
611
625
|
* Optional. True, if this user added the bot to the attachment menu.
|
|
@@ -755,13 +769,13 @@ declare const debug: Debug;
|
|
|
755
769
|
|
|
756
770
|
type EventsData = {
|
|
757
771
|
/**
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
772
|
+
* User clicked the Back Button.
|
|
773
|
+
*/
|
|
774
|
+
back_button_pressed: undefined;
|
|
761
775
|
/**
|
|
762
776
|
* Telegram application attempted to extract text from clipboard.
|
|
763
777
|
*/
|
|
764
|
-
|
|
778
|
+
clipboard_text_received: {
|
|
765
779
|
/**
|
|
766
780
|
* Passed during the web_app_read_text_from_clipboard method invocation req_id value.
|
|
767
781
|
*/
|
|
@@ -772,9 +786,9 @@ type EventsData = {
|
|
|
772
786
|
data?: string | null;
|
|
773
787
|
};
|
|
774
788
|
/**
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
789
|
+
* Custom method invocation completed.
|
|
790
|
+
*/
|
|
791
|
+
custom_method_invoked: {
|
|
778
792
|
/**
|
|
779
793
|
* Unique identifier of this invocation.
|
|
780
794
|
*/
|
|
@@ -789,9 +803,9 @@ type EventsData = {
|
|
|
789
803
|
error?: string;
|
|
790
804
|
};
|
|
791
805
|
/**
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
806
|
+
* An invoice was closed.
|
|
807
|
+
*/
|
|
808
|
+
invoice_closed: {
|
|
795
809
|
/**
|
|
796
810
|
* Passed during the web_app_open_invoice method invocation slug value.
|
|
797
811
|
*/
|
|
@@ -810,22 +824,22 @@ type EventsData = {
|
|
|
810
824
|
status: 'paid' | 'failed' | 'pending' | 'cancelled';
|
|
811
825
|
};
|
|
812
826
|
/**
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
827
|
+
* User clicked the Main Button.
|
|
828
|
+
*/
|
|
829
|
+
main_button_pressed: undefined;
|
|
816
830
|
/**
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
831
|
+
* Application received phone access request status.
|
|
832
|
+
*/
|
|
833
|
+
phone_requested: {
|
|
820
834
|
/**
|
|
821
835
|
* Request status. Can only be sent
|
|
822
836
|
*/
|
|
823
837
|
status: 'sent';
|
|
824
838
|
};
|
|
825
839
|
/**
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
840
|
+
* Popup was closed.
|
|
841
|
+
*/
|
|
842
|
+
popup_closed: {
|
|
829
843
|
/**
|
|
830
844
|
* Optional. Identifier of the clicked button.
|
|
831
845
|
*
|
|
@@ -834,47 +848,90 @@ type EventsData = {
|
|
|
834
848
|
button_id?: string;
|
|
835
849
|
};
|
|
836
850
|
/**
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
851
|
+
* Parent iframe requested current iframe reload.
|
|
852
|
+
*/
|
|
853
|
+
reload_iframe: undefined;
|
|
840
854
|
/**
|
|
841
855
|
* The QR scanner scanned some QR and extracted its content.
|
|
842
856
|
*/
|
|
843
|
-
|
|
857
|
+
qr_text_received: {
|
|
844
858
|
/**
|
|
845
859
|
* Optional. Data extracted from the QR.
|
|
846
860
|
*/
|
|
847
861
|
data?: string;
|
|
848
862
|
};
|
|
849
863
|
/**
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
864
|
+
* QR scanner was closed.
|
|
865
|
+
*/
|
|
866
|
+
scan_qr_popup_closed: undefined;
|
|
853
867
|
/**
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
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;
|
|
859
873
|
/**
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
874
|
+
* Occurs when the Settings Button was pressed.
|
|
875
|
+
*/
|
|
876
|
+
settings_button_pressed: undefined;
|
|
863
877
|
/**
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
878
|
+
* Occurs whenever the theme was changed in the user's Telegram app ( including switching to night mode).
|
|
879
|
+
*/
|
|
880
|
+
theme_changed: {
|
|
867
881
|
/**
|
|
868
882
|
* Map where the key is a theme stylesheet key and value is the corresponding color in #RRGGBB format.
|
|
869
883
|
*/
|
|
870
|
-
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
|
+
};
|
|
871
928
|
};
|
|
872
929
|
/**
|
|
873
930
|
* Occurs whenever the viewport has been changed.
|
|
874
931
|
*
|
|
875
932
|
* For example, when the user started dragging the application or called the expansion method.
|
|
876
933
|
*/
|
|
877
|
-
|
|
934
|
+
viewport_changed: {
|
|
878
935
|
/**
|
|
879
936
|
* The viewport height.
|
|
880
937
|
*/
|
|
@@ -893,9 +950,9 @@ type EventsData = {
|
|
|
893
950
|
is_state_stable: boolean;
|
|
894
951
|
};
|
|
895
952
|
/**
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
953
|
+
* Application received write access request status.
|
|
954
|
+
*/
|
|
955
|
+
write_access_requested: {
|
|
899
956
|
/**
|
|
900
957
|
* Request status. Can only be allowed.
|
|
901
958
|
*/
|
|
@@ -915,7 +972,7 @@ declare global {
|
|
|
915
972
|
interface Window {
|
|
916
973
|
TelegramWebviewProxy: TelegramWebviewProxy;
|
|
917
974
|
TelegramGameProxy: TelegramGameProxy;
|
|
918
|
-
TelegramGameProxy_receiveEvent: TelegramGameProxy[
|
|
975
|
+
TelegramGameProxy_receiveEvent: TelegramGameProxy['receiveEvent'];
|
|
919
976
|
Telegram: {
|
|
920
977
|
WebView: TelegramGameProxy;
|
|
921
978
|
};
|
|
@@ -934,9 +991,11 @@ declare namespace listener {
|
|
|
934
991
|
export { type listener_EventsData as EventsData, listener_off as off, listener_on as on, listener_once as once };
|
|
935
992
|
}
|
|
936
993
|
|
|
994
|
+
type GetPlatform = () => 'phone' | 'web' | 'desktop';
|
|
937
995
|
declare const TG_WEB = "web";
|
|
938
996
|
declare const TG_PHONE = "phone";
|
|
939
997
|
declare const TG_DESKTOP = "desktop";
|
|
998
|
+
declare const getPlatform: GetPlatform;
|
|
940
999
|
|
|
941
1000
|
declare const NOT_SUPPORTED = "not_supported";
|
|
942
1001
|
|
|
@@ -966,6 +1025,7 @@ declare const MethodSetupMainButton = "web_app_setup_main_button";
|
|
|
966
1025
|
declare const MethodSetupSettingsButton = "web_app_setup_settings_button";
|
|
967
1026
|
declare const MethodSwitchInlineQuery = "web_app_switch_inline_query";
|
|
968
1027
|
declare const MethodTriggerHapticFeedback = "web_app_trigger_haptic_feedback";
|
|
1028
|
+
declare const MethodSetupSwipeBehavior = "web_app_setup_swipe_behavior";
|
|
969
1029
|
|
|
970
1030
|
declare const EventBackButtonPressed = "back_button_pressed";
|
|
971
1031
|
declare const EventClipboardTextReceived = "clipboard_text_received";
|
|
@@ -983,4 +1043,4 @@ declare const EventThemeChanged = "theme_changed";
|
|
|
983
1043
|
declare const EventViewportChanged = "viewport_changed";
|
|
984
1044
|
declare const EventWriteAccessRequested = "write_access_requested";
|
|
985
1045
|
|
|
986
|
-
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.
|
|
@@ -615,6 +652,20 @@ declare const sessionStorageGet: SessionStorageGet;
|
|
|
615
652
|
*/
|
|
616
653
|
declare const supportSessionStorageGet: () => boolean;
|
|
617
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
|
+
|
|
618
669
|
type User = {
|
|
619
670
|
/**
|
|
620
671
|
* Optional. True, if this user added the bot to the attachment menu.
|
|
@@ -764,13 +815,13 @@ declare const debug: Debug;
|
|
|
764
815
|
|
|
765
816
|
type EventsData = {
|
|
766
817
|
/**
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
818
|
+
* User clicked the Back Button.
|
|
819
|
+
*/
|
|
820
|
+
back_button_pressed: undefined;
|
|
770
821
|
/**
|
|
771
822
|
* Telegram application attempted to extract text from clipboard.
|
|
772
823
|
*/
|
|
773
|
-
|
|
824
|
+
clipboard_text_received: {
|
|
774
825
|
/**
|
|
775
826
|
* Passed during the web_app_read_text_from_clipboard method invocation req_id value.
|
|
776
827
|
*/
|
|
@@ -781,9 +832,9 @@ type EventsData = {
|
|
|
781
832
|
data?: string | null;
|
|
782
833
|
};
|
|
783
834
|
/**
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
835
|
+
* Custom method invocation completed.
|
|
836
|
+
*/
|
|
837
|
+
custom_method_invoked: {
|
|
787
838
|
/**
|
|
788
839
|
* Unique identifier of this invocation.
|
|
789
840
|
*/
|
|
@@ -798,9 +849,9 @@ type EventsData = {
|
|
|
798
849
|
error?: string;
|
|
799
850
|
};
|
|
800
851
|
/**
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
852
|
+
* An invoice was closed.
|
|
853
|
+
*/
|
|
854
|
+
invoice_closed: {
|
|
804
855
|
/**
|
|
805
856
|
* Passed during the web_app_open_invoice method invocation slug value.
|
|
806
857
|
*/
|
|
@@ -819,22 +870,22 @@ type EventsData = {
|
|
|
819
870
|
status: 'paid' | 'failed' | 'pending' | 'cancelled';
|
|
820
871
|
};
|
|
821
872
|
/**
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
873
|
+
* User clicked the Main Button.
|
|
874
|
+
*/
|
|
875
|
+
main_button_pressed: undefined;
|
|
825
876
|
/**
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
877
|
+
* Application received phone access request status.
|
|
878
|
+
*/
|
|
879
|
+
phone_requested: {
|
|
829
880
|
/**
|
|
830
881
|
* Request status. Can only be sent
|
|
831
882
|
*/
|
|
832
883
|
status: 'sent';
|
|
833
884
|
};
|
|
834
885
|
/**
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
886
|
+
* Popup was closed.
|
|
887
|
+
*/
|
|
888
|
+
popup_closed: {
|
|
838
889
|
/**
|
|
839
890
|
* Optional. Identifier of the clicked button.
|
|
840
891
|
*
|
|
@@ -843,47 +894,90 @@ type EventsData = {
|
|
|
843
894
|
button_id?: string;
|
|
844
895
|
};
|
|
845
896
|
/**
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
897
|
+
* Parent iframe requested current iframe reload.
|
|
898
|
+
*/
|
|
899
|
+
reload_iframe: undefined;
|
|
849
900
|
/**
|
|
850
901
|
* The QR scanner scanned some QR and extracted its content.
|
|
851
902
|
*/
|
|
852
|
-
|
|
903
|
+
qr_text_received: {
|
|
853
904
|
/**
|
|
854
905
|
* Optional. Data extracted from the QR.
|
|
855
906
|
*/
|
|
856
907
|
data?: string;
|
|
857
908
|
};
|
|
858
909
|
/**
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
910
|
+
* QR scanner was closed.
|
|
911
|
+
*/
|
|
912
|
+
scan_qr_popup_closed: undefined;
|
|
862
913
|
/**
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
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;
|
|
868
919
|
/**
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
920
|
+
* Occurs when the Settings Button was pressed.
|
|
921
|
+
*/
|
|
922
|
+
settings_button_pressed: undefined;
|
|
872
923
|
/**
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
924
|
+
* Occurs whenever the theme was changed in the user's Telegram app ( including switching to night mode).
|
|
925
|
+
*/
|
|
926
|
+
theme_changed: {
|
|
876
927
|
/**
|
|
877
928
|
* Map where the key is a theme stylesheet key and value is the corresponding color in #RRGGBB format.
|
|
878
929
|
*/
|
|
879
|
-
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
|
+
};
|
|
880
974
|
};
|
|
881
975
|
/**
|
|
882
976
|
* Occurs whenever the viewport has been changed.
|
|
883
977
|
*
|
|
884
978
|
* For example, when the user started dragging the application or called the expansion method.
|
|
885
979
|
*/
|
|
886
|
-
|
|
980
|
+
viewport_changed: {
|
|
887
981
|
/**
|
|
888
982
|
* The viewport height.
|
|
889
983
|
*/
|
|
@@ -902,9 +996,9 @@ type EventsData = {
|
|
|
902
996
|
is_state_stable: boolean;
|
|
903
997
|
};
|
|
904
998
|
/**
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
999
|
+
* Application received write access request status.
|
|
1000
|
+
*/
|
|
1001
|
+
write_access_requested: {
|
|
908
1002
|
/**
|
|
909
1003
|
* Request status. Can only be allowed.
|
|
910
1004
|
*/
|
|
@@ -924,7 +1018,7 @@ declare global {
|
|
|
924
1018
|
interface Window {
|
|
925
1019
|
TelegramWebviewProxy: TelegramWebviewProxy;
|
|
926
1020
|
TelegramGameProxy: TelegramGameProxy;
|
|
927
|
-
TelegramGameProxy_receiveEvent: TelegramGameProxy[
|
|
1021
|
+
TelegramGameProxy_receiveEvent: TelegramGameProxy['receiveEvent'];
|
|
928
1022
|
Telegram: {
|
|
929
1023
|
WebView: TelegramGameProxy;
|
|
930
1024
|
};
|
|
@@ -943,9 +1037,11 @@ declare namespace listener {
|
|
|
943
1037
|
export { type listener_EventsData as EventsData, listener_off as off, listener_on as on, listener_once as once };
|
|
944
1038
|
}
|
|
945
1039
|
|
|
1040
|
+
type GetPlatform = () => 'phone' | 'web' | 'desktop';
|
|
946
1041
|
declare const TG_WEB = "web";
|
|
947
1042
|
declare const TG_PHONE = "phone";
|
|
948
1043
|
declare const TG_DESKTOP = "desktop";
|
|
1044
|
+
declare const getPlatform: GetPlatform;
|
|
949
1045
|
|
|
950
1046
|
declare const NOT_SUPPORTED = "not_supported";
|
|
951
1047
|
|
|
@@ -969,12 +1065,14 @@ declare const MethodRequestViewport = "web_app_request_viewport";
|
|
|
969
1065
|
declare const MethodRequestWriteAccess = "web_app_request_write_access";
|
|
970
1066
|
declare const MethodSetBackgroundColor = "web_app_set_background_color";
|
|
971
1067
|
declare const MethodSetHeaderColor = "web_app_set_header_color";
|
|
1068
|
+
declare const MethodSetBottomBarColor = "web_app_set_bottom_bar_color";
|
|
972
1069
|
declare const MethodSetupBackButton = "web_app_setup_back_button";
|
|
973
1070
|
declare const MethodSetupClosingBehavior = "web_app_setup_closing_behavior";
|
|
974
1071
|
declare const MethodSetupMainButton = "web_app_setup_main_button";
|
|
975
1072
|
declare const MethodSetupSettingsButton = "web_app_setup_settings_button";
|
|
976
1073
|
declare const MethodSwitchInlineQuery = "web_app_switch_inline_query";
|
|
977
1074
|
declare const MethodTriggerHapticFeedback = "web_app_trigger_haptic_feedback";
|
|
1075
|
+
declare const MethodSetupSwipeBehavior = "web_app_setup_swipe_behavior";
|
|
978
1076
|
|
|
979
1077
|
declare const EventBackButtonPressed = "back_button_pressed";
|
|
980
1078
|
declare const EventClipboardTextReceived = "clipboard_text_received";
|
|
@@ -992,4 +1090,4 @@ declare const EventThemeChanged = "theme_changed";
|
|
|
992
1090
|
declare const EventViewportChanged = "viewport_changed";
|
|
993
1091
|
declare const EventWriteAccessRequested = "write_access_requested";
|
|
994
1092
|
|
|
995
|
-
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{value: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{value: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};
|