@apiteam/twa-bridge 7.0.0-beta.9 → 7.7.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/react/index.d.ts +46 -43
- package/react/index.js +1 -1
- package/react/index.mjs +1 -1
- package/solid/index.d.ts +46 -43
- package/solid/index.js +1 -1
- package/solid/index.mjs +1 -1
package/package.json
CHANGED
package/react/index.d.ts
CHANGED
|
@@ -755,13 +755,13 @@ declare const debug: Debug;
|
|
|
755
755
|
|
|
756
756
|
type EventsData = {
|
|
757
757
|
/**
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
758
|
+
* User clicked the Back Button.
|
|
759
|
+
*/
|
|
760
|
+
back_button_pressed: undefined;
|
|
761
761
|
/**
|
|
762
762
|
* Telegram application attempted to extract text from clipboard.
|
|
763
763
|
*/
|
|
764
|
-
|
|
764
|
+
clipboard_text_received: {
|
|
765
765
|
/**
|
|
766
766
|
* Passed during the web_app_read_text_from_clipboard method invocation req_id value.
|
|
767
767
|
*/
|
|
@@ -772,9 +772,9 @@ type EventsData = {
|
|
|
772
772
|
data?: string | null;
|
|
773
773
|
};
|
|
774
774
|
/**
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
775
|
+
* Custom method invocation completed.
|
|
776
|
+
*/
|
|
777
|
+
custom_method_invoked: {
|
|
778
778
|
/**
|
|
779
779
|
* Unique identifier of this invocation.
|
|
780
780
|
*/
|
|
@@ -789,9 +789,9 @@ type EventsData = {
|
|
|
789
789
|
error?: string;
|
|
790
790
|
};
|
|
791
791
|
/**
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
792
|
+
* An invoice was closed.
|
|
793
|
+
*/
|
|
794
|
+
invoice_closed: {
|
|
795
795
|
/**
|
|
796
796
|
* Passed during the web_app_open_invoice method invocation slug value.
|
|
797
797
|
*/
|
|
@@ -810,22 +810,22 @@ type EventsData = {
|
|
|
810
810
|
status: 'paid' | 'failed' | 'pending' | 'cancelled';
|
|
811
811
|
};
|
|
812
812
|
/**
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
813
|
+
* User clicked the Main Button.
|
|
814
|
+
*/
|
|
815
|
+
main_button_pressed: undefined;
|
|
816
816
|
/**
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
817
|
+
* Application received phone access request status.
|
|
818
|
+
*/
|
|
819
|
+
phone_requested: {
|
|
820
820
|
/**
|
|
821
821
|
* Request status. Can only be sent
|
|
822
822
|
*/
|
|
823
823
|
status: 'sent';
|
|
824
824
|
};
|
|
825
825
|
/**
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
826
|
+
* Popup was closed.
|
|
827
|
+
*/
|
|
828
|
+
popup_closed: {
|
|
829
829
|
/**
|
|
830
830
|
* Optional. Identifier of the clicked button.
|
|
831
831
|
*
|
|
@@ -834,36 +834,36 @@ type EventsData = {
|
|
|
834
834
|
button_id?: string;
|
|
835
835
|
};
|
|
836
836
|
/**
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
837
|
+
* Parent iframe requested current iframe reload.
|
|
838
|
+
*/
|
|
839
|
+
reload_iframe: undefined;
|
|
840
840
|
/**
|
|
841
841
|
* The QR scanner scanned some QR and extracted its content.
|
|
842
842
|
*/
|
|
843
|
-
|
|
843
|
+
qr_text_received: {
|
|
844
844
|
/**
|
|
845
845
|
* Optional. Data extracted from the QR.
|
|
846
846
|
*/
|
|
847
847
|
data?: string;
|
|
848
848
|
};
|
|
849
849
|
/**
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
850
|
+
* QR scanner was closed.
|
|
851
|
+
*/
|
|
852
|
+
scan_qr_popup_closed: undefined;
|
|
853
853
|
/**
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
854
|
+
* The event which is usually sent by the Telegram web application.
|
|
855
|
+
*
|
|
856
|
+
* 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).
|
|
857
|
+
*/
|
|
858
|
+
set_custom_style: undefined;
|
|
859
859
|
/**
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
860
|
+
* Occurs when the Settings Button was pressed.
|
|
861
|
+
*/
|
|
862
|
+
settings_button_pressed: undefined;
|
|
863
863
|
/**
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
864
|
+
* Occurs whenever the theme was changed in the user's Telegram app ( including switching to night mode).
|
|
865
|
+
*/
|
|
866
|
+
theme_changed: {
|
|
867
867
|
/**
|
|
868
868
|
* Map where the key is a theme stylesheet key and value is the corresponding color in #RRGGBB format.
|
|
869
869
|
*/
|
|
@@ -874,7 +874,7 @@ type EventsData = {
|
|
|
874
874
|
*
|
|
875
875
|
* For example, when the user started dragging the application or called the expansion method.
|
|
876
876
|
*/
|
|
877
|
-
|
|
877
|
+
viewport_changed: {
|
|
878
878
|
/**
|
|
879
879
|
* The viewport height.
|
|
880
880
|
*/
|
|
@@ -893,9 +893,9 @@ type EventsData = {
|
|
|
893
893
|
is_state_stable: boolean;
|
|
894
894
|
};
|
|
895
895
|
/**
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
896
|
+
* Application received write access request status.
|
|
897
|
+
*/
|
|
898
|
+
write_access_requested: {
|
|
899
899
|
/**
|
|
900
900
|
* Request status. Can only be allowed.
|
|
901
901
|
*/
|
|
@@ -915,7 +915,7 @@ declare global {
|
|
|
915
915
|
interface Window {
|
|
916
916
|
TelegramWebviewProxy: TelegramWebviewProxy;
|
|
917
917
|
TelegramGameProxy: TelegramGameProxy;
|
|
918
|
-
TelegramGameProxy_receiveEvent: TelegramGameProxy[
|
|
918
|
+
TelegramGameProxy_receiveEvent: TelegramGameProxy['receiveEvent'];
|
|
919
919
|
Telegram: {
|
|
920
920
|
WebView: TelegramGameProxy;
|
|
921
921
|
};
|
|
@@ -934,9 +934,11 @@ declare namespace listener {
|
|
|
934
934
|
export { type listener_EventsData as EventsData, listener_off as off, listener_on as on, listener_once as once };
|
|
935
935
|
}
|
|
936
936
|
|
|
937
|
+
type GetPlatform = () => 'phone' | 'web' | 'desktop';
|
|
937
938
|
declare const TG_WEB = "web";
|
|
938
939
|
declare const TG_PHONE = "phone";
|
|
939
940
|
declare const TG_DESKTOP = "desktop";
|
|
941
|
+
declare const getPlatform: GetPlatform;
|
|
940
942
|
|
|
941
943
|
declare const NOT_SUPPORTED = "not_supported";
|
|
942
944
|
|
|
@@ -966,6 +968,7 @@ declare const MethodSetupMainButton = "web_app_setup_main_button";
|
|
|
966
968
|
declare const MethodSetupSettingsButton = "web_app_setup_settings_button";
|
|
967
969
|
declare const MethodSwitchInlineQuery = "web_app_switch_inline_query";
|
|
968
970
|
declare const MethodTriggerHapticFeedback = "web_app_trigger_haptic_feedback";
|
|
971
|
+
declare const MethodSetupSwipeBehavior = "web_app_setup_swipe_behavior";
|
|
969
972
|
|
|
970
973
|
declare const EventBackButtonPressed = "back_button_pressed";
|
|
971
974
|
declare const EventClipboardTextReceived = "clipboard_text_received";
|
|
@@ -983,4 +986,4 @@ declare const EventThemeChanged = "theme_changed";
|
|
|
983
986
|
declare const EventViewportChanged = "viewport_changed";
|
|
984
987
|
declare const EventWriteAccessRequested = "write_access_requested";
|
|
985
988
|
|
|
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 };
|
|
989
|
+
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, 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, 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)>=e&&-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=()=>_()?(D(te),{status:!0}):(N(te,1),{status:p}),_=()=>a(6.4,[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]),v=()=>a(6.2,[t,o,s]),S=()=>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]),I=()=>a(0,[t,o,s]),B=()=>a(6.1,[t,o,s]),W=()=>a(6.7,[t,o,s]),L=()=>a(6.1,[s]);var N=(e,t)=>{"development"===process.env.NODE_ENV&&console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)};var D=(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 Q="clipboard_text_received",A="custom_method_invoked",G="phone_requested",H="popup_closed",J="qr_text_received",V="scan_qr_popup_closed",$="theme_changed",F=((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=i(e[r]);"string"==typeof p&&(o[r]=p)}return o})(t.theme_params)),F.emit(e,t),F.emit("*",{name:e,data:t})}window.TelegramGameProxy_receiveEvent=e,window.Telegram={WebView:{receiveEvent:e}},window.TelegramGameProxy={receiveEvent:e}})();const U=(e,t)=>{F.on(e,t)},j=(e,t)=>{F.off(e,t)},z=(e,t)=>{F.once(e,t)};var K=Object.freeze({__proto__:null,off:j,on:U,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=Q,exports.EventCustomMethodInvoked=A,exports.EventInvoiceClosed="invoice_closed",exports.EventMainButtonPressed="main_button_pressed",exports.EventPhoneRequested=G,exports.EventPopupClosed=H,exports.EventQrTextReceived=J,exports.EventReloadIframe="reload_iframe",exports.EventScanQrPopupClosed=V,exports.EventSetCustomStyle="set_custom_style",exports.EventSettingsButtonPressed="settings_button_pressed",exports.EventThemeChanged=$,exports.EventViewportChanged="viewport_changed",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.MethodSetupSwipeBehavior="web_app_setup_swipe_behavior",exports.MethodSwitchInlineQuery=me,exports.MethodTriggerHapticFeedback=ve,exports.NOT_SUPPORTED=p,exports.TG_DESKTOP=o,exports.TG_PHONE=s,exports.TG_WEB=t,exports.bridgeClose=()=>u()?(D(ee),{status:!0}):(N(ee,1),{status:p}),exports.bridgeCloseScanQrPopup=d,exports.bridgeDataSend=e=>c()?(D(se,e),{status:!0}):(N(se,1),{status:p}),exports.bridgeExpand=()=>x()?(D(oe),{status:!0}):(N(oe,1),{status:p}),exports.bridgeGetInitData=()=>{const e=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppData");if(null===e)return N("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()?(D(re,e),{status:!0}):(N(re,1),{status:p}),exports.bridgeIframeWillReload=()=>l()?(D(re),{status:!0}):(N(re,1),{status:p}),exports.bridgeInvokeCustomMethod=async e=>h()?(void 0===e.req_id&&(e.req_id=n()),D(b,e),new Promise(((t,s)=>{const o=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),j(A,o))};U(A,o)}))):(N(b,1),{status:p}),exports.bridgeOpenInvoice=e=>w()?(D(pe,e),{status:!0}):(N(pe,1),{status:p}),exports.bridgeOpenLink=e=>m()?(D(ae,e),{status:!0}):(N(ae,1),{status:p}),exports.bridgeOpenPopup=async e=>v()?(e.title.length>64&&N(ne,3),e.message.length<1&&N(ne,4),e.message.length>256&&N(ne,5),e.buttons.length<1&&N(ne,6),e.buttons.length>3&&N(ne,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&N(ne,8),D(ne,e),new Promise(((t,s)=>{const o=s=>{t({status:!!e.buttons.find((e=>e.id===s?.button_id)),data:s}),j(H,o)};U(H,o)}))):(N(ne,1),{status:p}),exports.bridgeOpenScanQrPopup=async e=>S()?(D(X,e),new Promise(((t,s)=>{z(J,(s=>{e.is_close&&d(),t({status:!0,data:s})})),z(V,(()=>{t({status:"closed"})}))}))):(N(X,1),{status:p}),exports.bridgeOpenTgLink=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),f()?(D(ie,e),{status:!0}):(N(ie,1),{status:p})),exports.bridgeReadTextFromClipboard=async e=>y()?(void 0===e.req_id&&(e.req_id=n()),D(Y,e),new Promise(((t,s)=>{const o=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),j(Q,o))};U(Q,o)}))):(N(Y,1),{status:p}),exports.bridgeReady=()=>M()?(D(ue),{status:!0}):(N(ue,1),{status:p}),exports.bridgeRequestPhone=async()=>P()?(D(Z),new Promise(((e,t)=>{z(G,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(N(Z,1),{status:p}),exports.bridgeRequestTheme=()=>q()?(D(de),{status:!0}):(N(de,1),{status:p}),exports.bridgeRequestViewport=()=>R()?(D(_e),{status:!0}):(N(_e,1),{status:p}),exports.bridgeRequestWriteAccess=()=>k()?(D(ce),{status:!0}):(N(ce,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()?(D(xe,e),{status:!0}):(N(xe,1),{status:p}),exports.bridgeSetHeaderColor=e=>O()?(D(ge,e),{status:!0}):(N(ge,1),{status:p}),exports.bridgeSetupBackButton=e=>E()?(D(le,e),{status:!0}):(N(le,1),{status:p}),exports.bridgeSetupClosingBehavior=e=>T()?(D(be,e),{status:!0}):(N(be,1),{status:p}),exports.bridgeSetupMainButton=e=>I()?(D(he,e),{status:!0}):(N(he,1),{status:p}),exports.bridgeSetupSettingsButton=e=>B()?(D(we,e),{status:!0}):(N(we,1),{status:p}),exports.bridgeSwitchInlineQuery=e=>W()?(e.query.length>256&&N(me,9),D(me,e),{status:!0}):(N(me,1),{status:p}),exports.bridgeTriggerHapticFeedback=e=>L()?(D(ve,e),{status:!0}):(N(ve,1),{status:p}),exports.debug=N,exports.getPlatform=r,exports.listener=K,exports.sender=D,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=v,exports.supportOpenScanQrPopup=S,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=I,exports.supportSetupSettingsButton=B,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)>=e&&-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()?(be(Be),{status:!0}):(ce(Be,1),{status:o}),u=()=>n(0,[t,a,s]),d=()=>c()?(be(Me),{status:!0}):(ce(Me,1),{status:o}),c=()=>n(6.4,[s]),g=e=>b()?(be(Ae,e),{status:!0}):(ce(Ae,1),{status:o}),b=()=>n(0,[t,a,s]),l=()=>w()?(be(Ue),{status:!0}):(ce(Ue,1),{status:o}),w=()=>n(0,[s]),m=e=>h()?(be(Ge,e),{status:!0}):(ce(Ge,1),{status:o}),h=()=>n(0,[t]),f=()=>v()?(be(Ge),{status:!0}):(ce(Ge,1),{status:o}),v=()=>n(0,[t]),y="web_app_invoke_custom_method",S=async e=>q()?(void 0===e.req_id&&(e.req_id=i()),be(y,e),new Promise(((t,s)=>{const a=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),Ce(me,a))};Ne(me,a)}))):(ce(y,1),{status:o}),q=()=>n(6.9,[t,a,s]),x=e=>k()?(be(Qe,e),{status:!0}):(ce(Qe,1),{status:o}),k=()=>n(6.1,[t,a,s]),P=e=>O()?(be(Fe,e),{status:!0}):(ce(Fe,1),{status:o}),O=()=>n(6.4,[t,a,s]),I=async e=>R()?(e.title.length>64&&ce(He,3),e.message.length<1&&ce(He,4),e.message.length>256&&ce(He,5),e.buttons.length<1&&ce(He,6),e.buttons.length>3&&ce(He,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&ce(He,8),be(He,e),new Promise(((t,s)=>{const a=s=>{t({status:!!e.buttons.find((e=>e.id===s?.button_id)),data:s}),Ce(ye,a)};Ne(ye,a)}))):(ce(He,1),{status:o}),R=()=>n(6.2,[t,a,s]),T=async e=>N()?(be(De,e),new Promise(((t,s)=>{Le(qe,(s=>{e.is_close&&d(),t({status:!0,data:s})})),Le(xe,(()=>{t({status:"closed"})}))}))):(ce(De,1),{status:o}),N=()=>n(6.4,[s]),C=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),L()?(be(je,e),{status:!0}):(ce(je,1),{status:o})),L=()=>n(7,[t,a,s]),W=async e=>E()?(void 0===e.req_id&&(e.req_id=i()),be(Je,e),new Promise(((t,s)=>{const a=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),Ce(we,a))};Ne(we,a)}))):(ce(Je,1),{status:o}),E=()=>n(6.4,[t,a,s]),D=()=>J()?(be(ze),{status:!0}):(ce(ze,1),{status:o}),J=()=>n(6.9,[t,a,s]),$=async()=>B()?(be($e),new Promise(((e,t)=>{Le(ve,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(ce($e,1),{status:o}),B=()=>n(6.9,[t,a,s]),M=()=>A()?(be(Ke),{status:!0}):(ce(Ke,1),{status:o}),A=()=>n(0,[t,a,s]),U=()=>G()?(be(Xe),{status:!0}):(ce(Xe,1),{status:o}),G=()=>n(0,[t,a,s]),V=()=>Q()?(be(Ye),{status:!0}):(ce(Ye,1),{status:o}),Q=()=>n(6.9,[t,a,s]),F=e=>H()?(be(Ze,e),{status:!0}):(ce(Ze,1),{status:o}),H=()=>n(6.1,[t,a,s]),j=e=>z()?(be(et,e),{status:!0}):(ce(et,1),{status:o}),z=()=>n(6.1,[t,a,s]),K=e=>X()?(be(tt,e),{status:!0}):(ce(tt,1),{status:o}),X=()=>n(6.1,[t,a,s]),Y=e=>Z()?(be(st,e),{status:!0}):(ce(st,1),{status:o}),Z=()=>n(0,[t,a,s]),ee=e=>te()?(be(at,e),{status:!0}):(ce(at,1),{status:o}),te=()=>n(0,[t,a,s]),se=e=>ae()?(be(rt,e),{status:!0}):(ce(rt,1),{status:o}),ae=()=>n(6.1,[t,a,s]),re=e=>oe()?(e.query.length>256&&ce(ot,9),be(ot,e),{status:!0}):(ce(ot,1),{status:o}),oe=()=>n(6.7,[t,a,s]),ne=e=>ie()?(be(nt,e),{status:!0}):(ce(nt,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;var ce=(e,t)=>{"development"===process.env.NODE_ENV&&console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)};const ge=()=>{const e=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppData");if(null===e)return ce("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 be=(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 le="back_button_pressed",we="clipboard_text_received",me="custom_method_invoked",he="invoice_closed",fe="main_button_pressed",ve="phone_requested",ye="popup_closed",Se="reload_iframe",qe="qr_text_received",xe="scan_qr_popup_closed",ke="set_custom_style",Pe="settings_button_pressed",Oe="theme_changed",Ie="viewport_changed",Re="write_access_requested",Te=((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===Oe&&(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)),Te.emit(e,t),Te.emit("*",{name:e,data:t})}window.TelegramGameProxy_receiveEvent=e,window.Telegram={WebView:{receiveEvent:e}},window.TelegramGameProxy={receiveEvent:e}})();const Ne=(e,t)=>{Te.on(e,t)},Ce=(e,t)=>{Te.off(e,t)},Le=(e,t)=>{Te.once(e,t)};var We=Object.freeze({__proto__:null,off:Ce,on:Ne,once:Le});const Ee="web_app_invoke_custom_method",De="web_app_open_scan_qr_popup",Je="web_app_read_text_from_clipboard",$e="web_app_request_phone",Be="web_app_close",Me="web_app_close_scan_qr_popup",Ae="web_app_data_send",Ue="web_app_expand",Ge="iframe_ready",Ve="iframe_will_reload",Qe="web_app_open_invoice",Fe="web_app_open_link",He="web_app_open_popup",je="web_app_open_tg_link",ze="web_app_ready",Ke="web_app_request_theme",Xe="web_app_request_viewport",Ye="web_app_request_write_access",Ze="web_app_set_background_color",et="web_app_set_header_color",tt="web_app_setup_back_button",st="web_app_setup_closing_behavior",at="web_app_setup_main_button",rt="web_app_setup_settings_button",ot="web_app_switch_inline_query",nt="web_app_trigger_haptic_feedback",it="web_app_setup_swipe_behavior";export{le as EventBackButtonPressed,we as EventClipboardTextReceived,me as EventCustomMethodInvoked,he as EventInvoiceClosed,fe as EventMainButtonPressed,ve as EventPhoneRequested,ye as EventPopupClosed,qe as EventQrTextReceived,Se as EventReloadIframe,xe as EventScanQrPopupClosed,ke as EventSetCustomStyle,Pe as EventSettingsButtonPressed,Oe as EventThemeChanged,Ie as EventViewportChanged,Re as EventWriteAccessRequested,Be as MethodClose,Me as MethodCloseScanQrPopup,Ae as MethodDataSend,Ue as MethodExpand,Ge as MethodIframeReady,Ve as MethodIframeWillReload,Ee as MethodInvokeCustomMethod,Qe as MethodOpenInvoice,Fe as MethodOpenLink,He as MethodOpenPopup,De as MethodOpenScanQrPopup,je as MethodOpenTgLink,Je as MethodReadTextFromClipboard,ze as MethodReady,$e as MethodRequestPhone,Ke as MethodRequestTheme,Xe as MethodRequestViewport,Ye as MethodRequestWriteAccess,Ze as MethodSetBackgroundColor,et as MethodSetHeaderColor,tt as MethodSetupBackButton,st as MethodSetupClosingBehavior,at as MethodSetupMainButton,rt as MethodSetupSettingsButton,it as MethodSetupSwipeBehavior,ot as MethodSwitchInlineQuery,nt 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,ge as bridgeGetInitData,m as bridgeIframeReady,f as bridgeIframeWillReload,S as bridgeInvokeCustomMethod,x as bridgeOpenInvoice,P as bridgeOpenLink,I as bridgeOpenPopup,T as bridgeOpenScanQrPopup,C as bridgeOpenTgLink,W as bridgeReadTextFromClipboard,D as bridgeReady,$ 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,re as bridgeSwitchInlineQuery,ne as bridgeTriggerHapticFeedback,ce as debug,r as getPlatform,We as listener,be 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,J as supportReady,B 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,oe as supportSwitchInlineQuery,ie as supportTriggerHapticFeedback};
|
package/solid/index.d.ts
CHANGED
|
@@ -764,13 +764,13 @@ declare const debug: Debug;
|
|
|
764
764
|
|
|
765
765
|
type EventsData = {
|
|
766
766
|
/**
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
767
|
+
* User clicked the Back Button.
|
|
768
|
+
*/
|
|
769
|
+
back_button_pressed: undefined;
|
|
770
770
|
/**
|
|
771
771
|
* Telegram application attempted to extract text from clipboard.
|
|
772
772
|
*/
|
|
773
|
-
|
|
773
|
+
clipboard_text_received: {
|
|
774
774
|
/**
|
|
775
775
|
* Passed during the web_app_read_text_from_clipboard method invocation req_id value.
|
|
776
776
|
*/
|
|
@@ -781,9 +781,9 @@ type EventsData = {
|
|
|
781
781
|
data?: string | null;
|
|
782
782
|
};
|
|
783
783
|
/**
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
784
|
+
* Custom method invocation completed.
|
|
785
|
+
*/
|
|
786
|
+
custom_method_invoked: {
|
|
787
787
|
/**
|
|
788
788
|
* Unique identifier of this invocation.
|
|
789
789
|
*/
|
|
@@ -798,9 +798,9 @@ type EventsData = {
|
|
|
798
798
|
error?: string;
|
|
799
799
|
};
|
|
800
800
|
/**
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
801
|
+
* An invoice was closed.
|
|
802
|
+
*/
|
|
803
|
+
invoice_closed: {
|
|
804
804
|
/**
|
|
805
805
|
* Passed during the web_app_open_invoice method invocation slug value.
|
|
806
806
|
*/
|
|
@@ -819,22 +819,22 @@ type EventsData = {
|
|
|
819
819
|
status: 'paid' | 'failed' | 'pending' | 'cancelled';
|
|
820
820
|
};
|
|
821
821
|
/**
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
822
|
+
* User clicked the Main Button.
|
|
823
|
+
*/
|
|
824
|
+
main_button_pressed: undefined;
|
|
825
825
|
/**
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
826
|
+
* Application received phone access request status.
|
|
827
|
+
*/
|
|
828
|
+
phone_requested: {
|
|
829
829
|
/**
|
|
830
830
|
* Request status. Can only be sent
|
|
831
831
|
*/
|
|
832
832
|
status: 'sent';
|
|
833
833
|
};
|
|
834
834
|
/**
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
835
|
+
* Popup was closed.
|
|
836
|
+
*/
|
|
837
|
+
popup_closed: {
|
|
838
838
|
/**
|
|
839
839
|
* Optional. Identifier of the clicked button.
|
|
840
840
|
*
|
|
@@ -843,36 +843,36 @@ type EventsData = {
|
|
|
843
843
|
button_id?: string;
|
|
844
844
|
};
|
|
845
845
|
/**
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
846
|
+
* Parent iframe requested current iframe reload.
|
|
847
|
+
*/
|
|
848
|
+
reload_iframe: undefined;
|
|
849
849
|
/**
|
|
850
850
|
* The QR scanner scanned some QR and extracted its content.
|
|
851
851
|
*/
|
|
852
|
-
|
|
852
|
+
qr_text_received: {
|
|
853
853
|
/**
|
|
854
854
|
* Optional. Data extracted from the QR.
|
|
855
855
|
*/
|
|
856
856
|
data?: string;
|
|
857
857
|
};
|
|
858
858
|
/**
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
859
|
+
* QR scanner was closed.
|
|
860
|
+
*/
|
|
861
|
+
scan_qr_popup_closed: undefined;
|
|
862
862
|
/**
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
863
|
+
* The event which is usually sent by the Telegram web application.
|
|
864
|
+
*
|
|
865
|
+
* 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).
|
|
866
|
+
*/
|
|
867
|
+
set_custom_style: undefined;
|
|
868
868
|
/**
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
869
|
+
* Occurs when the Settings Button was pressed.
|
|
870
|
+
*/
|
|
871
|
+
settings_button_pressed: undefined;
|
|
872
872
|
/**
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
873
|
+
* Occurs whenever the theme was changed in the user's Telegram app ( including switching to night mode).
|
|
874
|
+
*/
|
|
875
|
+
theme_changed: {
|
|
876
876
|
/**
|
|
877
877
|
* Map where the key is a theme stylesheet key and value is the corresponding color in #RRGGBB format.
|
|
878
878
|
*/
|
|
@@ -883,7 +883,7 @@ type EventsData = {
|
|
|
883
883
|
*
|
|
884
884
|
* For example, when the user started dragging the application or called the expansion method.
|
|
885
885
|
*/
|
|
886
|
-
|
|
886
|
+
viewport_changed: {
|
|
887
887
|
/**
|
|
888
888
|
* The viewport height.
|
|
889
889
|
*/
|
|
@@ -902,9 +902,9 @@ type EventsData = {
|
|
|
902
902
|
is_state_stable: boolean;
|
|
903
903
|
};
|
|
904
904
|
/**
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
905
|
+
* Application received write access request status.
|
|
906
|
+
*/
|
|
907
|
+
write_access_requested: {
|
|
908
908
|
/**
|
|
909
909
|
* Request status. Can only be allowed.
|
|
910
910
|
*/
|
|
@@ -924,7 +924,7 @@ declare global {
|
|
|
924
924
|
interface Window {
|
|
925
925
|
TelegramWebviewProxy: TelegramWebviewProxy;
|
|
926
926
|
TelegramGameProxy: TelegramGameProxy;
|
|
927
|
-
TelegramGameProxy_receiveEvent: TelegramGameProxy[
|
|
927
|
+
TelegramGameProxy_receiveEvent: TelegramGameProxy['receiveEvent'];
|
|
928
928
|
Telegram: {
|
|
929
929
|
WebView: TelegramGameProxy;
|
|
930
930
|
};
|
|
@@ -943,9 +943,11 @@ declare namespace listener {
|
|
|
943
943
|
export { type listener_EventsData as EventsData, listener_off as off, listener_on as on, listener_once as once };
|
|
944
944
|
}
|
|
945
945
|
|
|
946
|
+
type GetPlatform = () => 'phone' | 'web' | 'desktop';
|
|
946
947
|
declare const TG_WEB = "web";
|
|
947
948
|
declare const TG_PHONE = "phone";
|
|
948
949
|
declare const TG_DESKTOP = "desktop";
|
|
950
|
+
declare const getPlatform: GetPlatform;
|
|
949
951
|
|
|
950
952
|
declare const NOT_SUPPORTED = "not_supported";
|
|
951
953
|
|
|
@@ -975,6 +977,7 @@ declare const MethodSetupMainButton = "web_app_setup_main_button";
|
|
|
975
977
|
declare const MethodSetupSettingsButton = "web_app_setup_settings_button";
|
|
976
978
|
declare const MethodSwitchInlineQuery = "web_app_switch_inline_query";
|
|
977
979
|
declare const MethodTriggerHapticFeedback = "web_app_trigger_haptic_feedback";
|
|
980
|
+
declare const MethodSetupSwipeBehavior = "web_app_setup_swipe_behavior";
|
|
978
981
|
|
|
979
982
|
declare const EventBackButtonPressed = "back_button_pressed";
|
|
980
983
|
declare const EventClipboardTextReceived = "clipboard_text_received";
|
|
@@ -992,4 +995,4 @@ declare const EventThemeChanged = "theme_changed";
|
|
|
992
995
|
declare const EventViewportChanged = "viewport_changed";
|
|
993
996
|
declare const EventWriteAccessRequested = "write_access_requested";
|
|
994
997
|
|
|
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 };
|
|
998
|
+
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, 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, supportSetHeaderColor, supportSetupBackButton, supportSetupClosingBehavior, supportSetupMainButton, supportSetupSettingsButton, supportSwitchInlineQuery, supportTriggerHapticFeedback };
|
package/solid/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("solid-js");const
|
|
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)>=e&&-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()?(Q(oe),{status:!0}):(D(oe,1),{status:a}),c=()=>n(6.4,[o]),x=()=>n(0,[s,r,o]),g=()=>n(0,[o]),l=()=>n(0,[s]),h=()=>n(0,[s]),b="web_app_invoke_custom_method",w=()=>n(6.9,[s,r,o]),m=()=>n(6.1,[s,r,o]),v=()=>n(6.4,[s,r,o]),S=()=>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]),R=()=>n(0,[s,r,o]),k=()=>n(0,[s,r,o]),C=()=>n(6.9,[s,r,o]),O=()=>n(6.1,[s,r,o]),E=()=>n(6.1,[s,r,o]),T=()=>n(6.1,[s,r,o]),I=()=>n(0,[s,r,o]),B=()=>n(0,[s,r,o]),W=()=>n(6.1,[s,r,o]),L=()=>n(6.7,[s,r,o]),N=()=>n(6.1,[o]);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",V="phone_requested",H="popup_closed",J="qr_text_received",$="scan_qr_popup_closed",F="theme_changed",U="viewport_changed",j=((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=u(e[r]);"string"==typeof p&&(o[r]=p)}return o})(t.theme_params)),j.emit(e,t),j.emit("*",{name:e,data:t})}window.TelegramGameProxy_receiveEvent=e,window.Telegram={WebView:{receiveEvent:e}},window.TelegramGameProxy={receiveEvent:e}})();const z=(e,t)=>{j.on(e,t)},K=(e,t)=>{j.off(e,t)},X=(e,t)=>{j.once(e,t)};var Y=Object.freeze({__proto__:null,off:K,on:z,once:X});const Z="web_app_open_scan_qr_popup",ee="web_app_read_text_from_clipboard",te="web_app_request_phone",se="web_app_close",oe="web_app_close_scan_qr_popup",re="web_app_data_send",pe="web_app_expand",ae="iframe_ready",ne="web_app_open_invoice",ie="web_app_open_link",ue="web_app_open_popup",de="web_app_open_tg_link",_e="web_app_ready",ce="web_app_request_theme",xe="web_app_request_viewport",ge="web_app_request_write_access",le="web_app_set_background_color",he="web_app_set_header_color",be="web_app_setup_back_button",we="web_app_setup_closing_behavior",me="web_app_setup_main_button",ve="web_app_setup_settings_button",Se="web_app_switch_inline_query",fe="web_app_trigger_haptic_feedback";exports.EventBackButtonPressed="back_button_pressed",exports.EventClipboardTextReceived=A,exports.EventCustomMethodInvoked=G,exports.EventInvoiceClosed="invoice_closed",exports.EventMainButtonPressed="main_button_pressed",exports.EventPhoneRequested=V,exports.EventPopupClosed=H,exports.EventQrTextReceived=J,exports.EventReloadIframe="reload_iframe",exports.EventScanQrPopupClosed=$,exports.EventSetCustomStyle="set_custom_style",exports.EventSettingsButtonPressed="settings_button_pressed",exports.EventThemeChanged=F,exports.EventViewportChanged=U,exports.EventWriteAccessRequested="write_access_requested",exports.MethodClose=se,exports.MethodCloseScanQrPopup=oe,exports.MethodDataSend=re,exports.MethodExpand=pe,exports.MethodIframeReady=ae,exports.MethodIframeWillReload="iframe_will_reload",exports.MethodInvokeCustomMethod="web_app_invoke_custom_method",exports.MethodOpenInvoice=ne,exports.MethodOpenLink=ie,exports.MethodOpenPopup=ue,exports.MethodOpenScanQrPopup=Z,exports.MethodOpenTgLink=de,exports.MethodReadTextFromClipboard=ee,exports.MethodReady=_e,exports.MethodRequestPhone=te,exports.MethodRequestTheme=ce,exports.MethodRequestViewport=xe,exports.MethodRequestWriteAccess=ge,exports.MethodSetBackgroundColor=le,exports.MethodSetHeaderColor=he,exports.MethodSetupBackButton=be,exports.MethodSetupClosingBehavior=we,exports.MethodSetupMainButton=me,exports.MethodSetupSettingsButton=ve,exports.MethodSetupSwipeBehavior="web_app_setup_swipe_behavior",exports.MethodSwitchInlineQuery=Se,exports.MethodTriggerHapticFeedback=fe,exports.NOT_SUPPORTED=a,exports.TG_DESKTOP=r,exports.TG_PHONE=o,exports.TG_WEB=s,exports.bridgeClose=()=>d()?(Q(se),{status:!0}):(D(se,1),{status:a}),exports.bridgeCloseScanQrPopup=_,exports.bridgeDataSend=e=>x()?(Q(re,e),{status:!0}):(D(re,1),{status:a}),exports.bridgeExpand=()=>g()?(Q(pe),{status:!0}):(D(pe,1),{status:a}),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=>l()?(Q(ae,e),{status:!0}):(D(ae,1),{status:a}),exports.bridgeIframeWillReload=()=>h()?(Q(ae),{status:!0}):(D(ae,1),{status:a}),exports.bridgeInvokeCustomMethod=async e=>w()?(void 0===e.req_id&&(e.req_id=i()),Q(b,e),new Promise(((t,s)=>{const o=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),K(G,o))};z(G,o)}))):(D(b,1),{status:a}),exports.bridgeOpenInvoice=e=>m()?(Q(ne,e),{status:!0}):(D(ne,1),{status:a}),exports.bridgeOpenLink=e=>v()?(Q(ie,e),{status:!0}):(D(ie,1),{status:a}),exports.bridgeOpenPopup=async e=>S()?(e.title.length>64&&D(ue,3),e.message.length<1&&D(ue,4),e.message.length>256&&D(ue,5),e.buttons.length<1&&D(ue,6),e.buttons.length>3&&D(ue,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&D(ue,8),Q(ue,e),new Promise(((t,s)=>{const o=s=>{t({status:!!e.buttons.find((e=>e.id===s?.button_id)),data:s}),K(H,o)};z(H,o)}))):(D(ue,1),{status:a}),exports.bridgeOpenScanQrPopup=async e=>f()?(Q(Z,e),new Promise(((t,s)=>{X(J,(s=>{e.is_close&&_(),t({status:!0,data:s})})),X($,(()=>{t({status:"closed"})}))}))):(D(Z,1),{status:a}),exports.bridgeOpenTgLink=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),y()?(Q(de,e),{status:!0}):(D(de,1),{status:a})),exports.bridgeReadTextFromClipboard=async e=>M()?(void 0===e.req_id&&(e.req_id=i()),Q(ee,e),new Promise(((t,s)=>{const o=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),K(A,o))};z(A,o)}))):(D(ee,1),{status:a}),exports.bridgeReady=()=>P()?(Q(_e),{status:!0}):(D(_e,1),{status:a}),exports.bridgeRequestPhone=async()=>q()?(Q(te),new Promise(((e,t)=>{X(V,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(D(te,1),{status:a}),exports.bridgeRequestTheme=()=>R()?(Q(ce),{status:!0}):(D(ce,1),{status:a}),exports.bridgeRequestViewport=()=>k()?(Q(xe),{status:!0}):(D(xe,1),{status:a}),exports.bridgeRequestWriteAccess=()=>C()?(Q(ge),{status:!0}):(D(ge,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=>O()?(Q(le,e),{status:!0}):(D(le,1),{status:a}),exports.bridgeSetHeaderColor=e=>E()?(Q(he,e),{status:!0}):(D(he,1),{status:a}),exports.bridgeSetupBackButton=e=>T()?(Q(be,e),{status:!0}):(D(be,1),{status:a}),exports.bridgeSetupClosingBehavior=e=>I()?(Q(we,e),{status:!0}):(D(we,1),{status:a}),exports.bridgeSetupMainButton=e=>B()?(Q(me,e),{status:!0}):(D(me,1),{status:a}),exports.bridgeSetupSettingsButton=e=>W()?(Q(ve,e),{status:!0}):(D(ve,1),{status:a}),exports.bridgeSwitchInlineQuery=e=>L()?(e.query.length>256&&D(Se,9),Q(Se,e),{status:!0}):(D(Se,1),{status:a}),exports.bridgeTriggerHapticFeedback=e=>N()?(Q(fe,e),{status:!0}):(D(fe,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((()=>{z(U,o),Q(xe)})),t.onCleanup((()=>{K(U,o)})),e},exports.debug=D,exports.getPlatform=p,exports.listener=Y,exports.sender=Q,exports.supportClose=d,exports.supportCloseScanQrPopup=c,exports.supportDataSend=x,exports.supportExpand=g,exports.supportIframeReady=l,exports.supportIframeWillReload=h,exports.supportInvokeCustomMethod=w,exports.supportOpenInvoice=m,exports.supportOpenLink=v,exports.supportOpenPopup=S,exports.supportOpenScanQrPopup=f,exports.supportOpenTgLink=y,exports.supportReadTextFromClipboard=M,exports.supportReady=P,exports.supportRequestPhone=q,exports.supportRequestTheme=R,exports.supportRequestViewport=k,exports.supportRequestWriteAccess=C,exports.supportSessionStorageGet=()=>!0,exports.supportSessionStorageSet=()=>!0,exports.supportSetBackgroundColor=O,exports.supportSetHeaderColor=E,exports.supportSetupBackButton=T,exports.supportSetupClosingBehavior=I,exports.supportSetupMainButton=B,exports.supportSetupSettingsButton=W,exports.supportSwitchInlineQuery=L,exports.supportTriggerHapticFeedback=N;
|
package/solid/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createSignal as
|
|
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((()=>{Ee(Ce,o),he(tt)})),a((()=>{De(Ce,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)>=e&&-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()?(he(Ge),{status:!0}):(we(Ge,1),{status:p}),b=()=>u(0,[o,i,n]),l=()=>w()?(he(Ve),{status:!0}):(we(Ve,1),{status:p}),w=()=>u(6.4,[n]),m=e=>h()?(he(Qe,e),{status:!0}):(we(Qe,1),{status:p}),h=()=>u(0,[o,i,n]),f=()=>v()?(he(je),{status:!0}):(we(je,1),{status:p}),v=()=>u(0,[n]),y=e=>S()?(he(Fe,e),{status:!0}):(we(Fe,1),{status:p}),S=()=>u(0,[o]),q=()=>x()?(he(Fe),{status:!0}):(we(Fe,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()),he(k,e),new Promise(((t,s)=>{const a=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),De(ye,a))};Ee(ye,a)}))):(we(k,1),{status:p}),O=()=>u(6.9,[o,i,n]),I=e=>R()?(he(ze,e),{status:!0}):(we(ze,1),{status:p}),R=()=>u(6.1,[o,i,n]),T=e=>N()?(he(Ke,e),{status:!0}):(we(Ke,1),{status:p}),N=()=>u(6.4,[o,i,n]),C=async e=>L()?(e.title.length>64&&we(Xe,3),e.message.length<1&&we(Xe,4),e.message.length>256&&we(Xe,5),e.buttons.length<1&&we(Xe,6),e.buttons.length>3&&we(Xe,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&we(Xe,8),he(Xe,e),new Promise(((t,s)=>{const a=s=>{t({status:!!e.buttons.find((e=>e.id===s?.button_id)),data:s}),De(ke,a)};Ee(ke,a)}))):(we(Xe,1),{status:p}),L=()=>u(6.2,[o,i,n]),W=async e=>E()?(he(Me,e),new Promise(((t,s)=>{Je(Oe,(s=>{e.is_close&&l(),t({status:!0,data:s})})),Je(Ie,(()=>{t({status:"closed"})}))}))):(we(Me,1),{status:p}),E=()=>u(6.4,[n]),D=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),J()?(he(Ye,e),{status:!0}):(we(Ye,1),{status:p})),J=()=>u(7,[o,i,n]),$=async e=>B()?(void 0===e.req_id&&(e.req_id=d()),he(Ae,e),new Promise(((t,s)=>{const a=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),De(ve,a))};Ee(ve,a)}))):(we(Ae,1),{status:p}),B=()=>u(6.4,[o,i,n]),M=()=>A()?(he(Ze),{status:!0}):(we(Ze,1),{status:p}),A=()=>u(6.9,[o,i,n]),U=async()=>G()?(he(Ue),new Promise(((e,t)=>{Je(xe,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(we(Ue,1),{status:p}),G=()=>u(6.9,[o,i,n]),V=()=>Q()?(he(et),{status:!0}):(we(et,1),{status:p}),Q=()=>u(0,[o,i,n]),j=()=>F()?(he(tt),{status:!0}):(we(tt,1),{status:p}),F=()=>u(0,[o,i,n]),H=()=>z()?(he(st),{status:!0}):(we(st,1),{status:p}),z=()=>u(6.9,[o,i,n]),K=e=>X()?(he(at,e),{status:!0}):(we(at,1),{status:p}),X=()=>u(6.1,[o,i,n]),Y=e=>Z()?(he(rt,e),{status:!0}):(we(rt,1),{status:p}),Z=()=>u(6.1,[o,i,n]),ee=e=>te()?(he(ot,e),{status:!0}):(we(ot,1),{status:p}),te=()=>u(6.1,[o,i,n]),se=e=>ae()?(he(nt,e),{status:!0}):(we(nt,1),{status:p}),ae=()=>u(0,[o,i,n]),re=e=>oe()?(he(it,e),{status:!0}):(we(it,1),{status:p}),oe=()=>u(0,[o,i,n]),ne=e=>ie()?(he(_t,e),{status:!0}):(we(_t,1),{status:p}),ie=()=>u(6.1,[o,i,n]),_e=e=>pe()?(e.query.length>256&&we(pt,9),he(pt,e),{status:!0}):(we(pt,1),{status:p}),pe=()=>u(6.7,[o,i,n]),ue=e=>de()?(he(ut,e),{status:!0}):(we(ut,1),{status:p}),de=()=>u(6.1,[n]),ce=({key:e,value:t})=>{try{return window.sessionStorage.setItem("__telegram__"+e,JSON.stringify(t)),{status:!0}}catch(e){}return{status:!1}},ge=()=>!0,be=({key:e})=>{try{return{value:JSON.parse(window.sessionStorage.getItem("__telegram__"+e)??""),status:!0}}catch(e){}return{status:!1}},le=()=>!0;var we=(e,t)=>{"development"===process.env.NODE_ENV&&console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)};const me=()=>{const e=new URLSearchParams(window.location.hash.slice(1)).get("tgWebAppData");if(null===e)return we("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 he=(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 fe="back_button_pressed",ve="clipboard_text_received",ye="custom_method_invoked",Se="invoice_closed",qe="main_button_pressed",xe="phone_requested",ke="popup_closed",Pe="reload_iframe",Oe="qr_text_received",Ie="scan_qr_popup_closed",Re="set_custom_style",Te="settings_button_pressed",Ne="theme_changed",Ce="viewport_changed",Le="write_access_requested",We=((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===Ne&&(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)),We.emit(e,t),We.emit("*",{name:e,data:t})}window.TelegramGameProxy_receiveEvent=e,window.Telegram={WebView:{receiveEvent:e}},window.TelegramGameProxy={receiveEvent:e}})();const Ee=(e,t)=>{We.on(e,t)},De=(e,t)=>{We.off(e,t)},Je=(e,t)=>{We.once(e,t)};var $e=Object.freeze({__proto__:null,off:De,on:Ee,once:Je});const Be="web_app_invoke_custom_method",Me="web_app_open_scan_qr_popup",Ae="web_app_read_text_from_clipboard",Ue="web_app_request_phone",Ge="web_app_close",Ve="web_app_close_scan_qr_popup",Qe="web_app_data_send",je="web_app_expand",Fe="iframe_ready",He="iframe_will_reload",ze="web_app_open_invoice",Ke="web_app_open_link",Xe="web_app_open_popup",Ye="web_app_open_tg_link",Ze="web_app_ready",et="web_app_request_theme",tt="web_app_request_viewport",st="web_app_request_write_access",at="web_app_set_background_color",rt="web_app_set_header_color",ot="web_app_setup_back_button",nt="web_app_setup_closing_behavior",it="web_app_setup_main_button",_t="web_app_setup_settings_button",pt="web_app_switch_inline_query",ut="web_app_trigger_haptic_feedback",dt="web_app_setup_swipe_behavior";export{fe as EventBackButtonPressed,ve as EventClipboardTextReceived,ye as EventCustomMethodInvoked,Se as EventInvoiceClosed,qe as EventMainButtonPressed,xe as EventPhoneRequested,ke as EventPopupClosed,Oe as EventQrTextReceived,Pe as EventReloadIframe,Ie as EventScanQrPopupClosed,Re as EventSetCustomStyle,Te as EventSettingsButtonPressed,Ne as EventThemeChanged,Ce as EventViewportChanged,Le as EventWriteAccessRequested,Ge as MethodClose,Ve as MethodCloseScanQrPopup,Qe as MethodDataSend,je as MethodExpand,Fe as MethodIframeReady,He as MethodIframeWillReload,Be as MethodInvokeCustomMethod,ze as MethodOpenInvoice,Ke as MethodOpenLink,Xe as MethodOpenPopup,Me as MethodOpenScanQrPopup,Ye as MethodOpenTgLink,Ae as MethodReadTextFromClipboard,Ze as MethodReady,Ue as MethodRequestPhone,et as MethodRequestTheme,tt as MethodRequestViewport,st as MethodRequestWriteAccess,at as MethodSetBackgroundColor,rt as MethodSetHeaderColor,ot as MethodSetupBackButton,nt as MethodSetupClosingBehavior,it as MethodSetupMainButton,_t as MethodSetupSettingsButton,dt as MethodSetupSwipeBehavior,pt as MethodSwitchInlineQuery,ut 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,me as bridgeGetInitData,y as bridgeIframeReady,q as bridgeIframeWillReload,P as bridgeInvokeCustomMethod,I as bridgeOpenInvoice,T as bridgeOpenLink,C as bridgeOpenPopup,W as bridgeOpenScanQrPopup,D as bridgeOpenTgLink,$ as bridgeReadTextFromClipboard,M as bridgeReady,U as bridgeRequestPhone,V as bridgeRequestTheme,j as bridgeRequestViewport,H as bridgeRequestWriteAccess,be as bridgeSessionStorageGet,ce as bridgeSessionStorageSet,K as bridgeSetBackgroundColor,Y as bridgeSetHeaderColor,ee as bridgeSetupBackButton,se as bridgeSetupClosingBehavior,re as bridgeSetupMainButton,ne as bridgeSetupSettingsButton,_e as bridgeSwitchInlineQuery,ue as bridgeTriggerHapticFeedback,r as createIsViewportChanged,we as debug,_ as getPlatform,$e as listener,he as sender,b as supportClose,w as supportCloseScanQrPopup,h as supportDataSend,v as supportExpand,S as supportIframeReady,x as supportIframeWillReload,O as supportInvokeCustomMethod,R as supportOpenInvoice,N as supportOpenLink,L as supportOpenPopup,E as supportOpenScanQrPopup,J as supportOpenTgLink,B as supportReadTextFromClipboard,A as supportReady,G as supportRequestPhone,Q as supportRequestTheme,F as supportRequestViewport,z as supportRequestWriteAccess,le as supportSessionStorageGet,ge as supportSessionStorageSet,X as supportSetBackgroundColor,Z as supportSetHeaderColor,te as supportSetupBackButton,ae as supportSetupClosingBehavior,oe as supportSetupMainButton,ie as supportSetupSettingsButton,pe as supportSwitchInlineQuery,de as supportTriggerHapticFeedback};
|