@apiteam/twa-bridge 7.1.0 → 7.1.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/README.md +37 -3
- package/package.json +1 -1
- package/react/index.d.ts +54 -52
- package/react/index.js +1 -1
- package/react/index.mjs +1 -1
- package/solid/index.d.ts +374 -311
- package/solid/index.js +1 -1
- package/solid/index.mjs +1 -1
package/solid/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
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;
|
|
1
|
+
"use strict";var e=require("solid-js"),t=require("solid-js/store");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=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 of Object.keys(e)){var p=u(e[r]);"string"==typeof p&&(o[r]=p)}return o},_=e=>c()?(le(ve,e),{status:!0}):(xe(ve,1),{status:a}),c=()=>n(0,[s,r,o]),x=e=>g()?(le(Se,e),{status:!0}):(xe(Se,1),{status:a}),g=()=>n(6.4,[o]),l=e=>h()?(le(fe,e),{status:!0}):(xe(fe,1),{status:a}),h=()=>n(0,[s,r,o]),b=e=>w()?(le(ye,e),{status:!0}):(xe(ye,1),{status:a}),w=()=>n(0,[o]),m=e=>v()?(le(Me,e),{status:!0}):(xe(Me,1),{status:a}),v=()=>n(0,[s]),S=()=>f()?(le(Me),{status:!0}):(xe(Me,1),{status:a}),f=()=>n(0,[s]),y=async e=>M()?(void 0===e.req_id&&(e.req_id=i()),le(he,e),new Promise(((t,s)=>{const o=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),et($e,o))};Ze($e,o)}))):(xe(he,1),{status:a}),M=()=>n(6.9,[s,r,o]),P=e=>C()?(le(Ce,e),{status:!0}):(xe(Ce,1),{status:a}),C=()=>n(6.1,[s,r,o]),q=e=>R()?(le(qe,e),{status:!0}):(xe(qe,1),{status:a}),R=()=>n(6.4,[s,r,o]),k=async e=>B()?(e.title.length>64&&xe(Re,3),e.message.length<1&&xe(Re,4),e.message.length>256&&xe(Re,5),e.buttons.length<1&&xe(Re,6),e.buttons.length>3&&xe(Re,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&xe(Re,8),le(Re,e),new Promise(((t,s)=>{const o=s=>{t({status:!!e.buttons.find((e=>e.id===s?.button_id)),data:s}),et(Fe,o)};Ze(Fe,o)}))):(xe(Re,1),{status:a}),B=()=>n(6.2,[s,r,o]),O=async e=>T()?(le(be,e),new Promise(((t,s)=>{tt(Ue,(s=>{e.is_close&&x(),t({status:!0,data:s})})),tt(ze,(()=>{t({status:"closed"})}))}))):(xe(be,1),{status:a}),T=()=>n(6.4,[o]),E=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),I()?(le(ke,e),{status:!0}):(xe(ke,1),{status:a})),I=()=>n(7,[s,r,o]),W=async e=>L()?(e||(e={req_id:void 0}),void 0===e.req_id&&(e.req_id=i()),le(we,e),new Promise(((t,s)=>{const o=s=>{s.req_id===e?.req_id&&(t({status:!0,data:s}),et(Je,o))};Ze(Je,o)}))):(xe(we,1),{status:a}),L=()=>n(6.4,[s,r,o]),N=e=>D()?(le(Be,e),{status:!0}):(xe(Be,1),{status:a}),D=()=>n(6.9,[s,r,o]),Q=async()=>A()?(le(me),new Promise(((e,t)=>{tt(je,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(xe(me,1),{status:a}),A=()=>n(6.9,[s,r,o]),G=e=>H()?(le(Oe,e),{status:!0}):(xe(Oe,1),{status:a}),H=()=>n(0,[s,r,o]),V=e=>J()?(le(Te,e),{status:!0}):(xe(Te,1),{status:a}),J=()=>n(0,[s,r,o]),$=()=>j()?(le(Ee),{status:!0}):(xe(Ee,1),{status:a}),j=()=>n(6.9,[s,r,o]),F=e=>U()?(le(Ie,e),{status:!0}):(xe(Ie,1),{status:a}),U=()=>n(6.1,[s,r,o]),z=e=>K()?(le(We,e),{status:!0}):(xe(We,1),{status:a}),K=()=>n(6.1,[s,r,o]),X=e=>Y()?(le(Le,{color:e?.color||e?.color_key}),{status:!0}):(xe(Le,1),{status:a}),Y=()=>n(710,[s,r,o]),Z=e=>ee()?(le(Ne,e),{status:!0}):(xe(Ne,1),{status:a}),ee=()=>n(6.1,[s,r,o]),te=e=>se()?(le(De,e),{status:!0}):(xe(De,1),{status:a}),se=()=>n(0,[s,r,o]),oe=e=>re()?(le(Qe,e),{status:!0}):(xe(Qe,1),{status:a}),re=()=>n(0,[s,r,o]),pe=e=>ae()?(le(Ae,e),{status:!0}):(xe(Ae,1),{status:a}),ae=()=>n(6.1,[s,r,o]),ne=e=>ie()?(e.query.length>256&&xe(Ge,9),le(Ge,e),{status:!0}):(xe(Ge,1),{status:a}),ie=()=>n(6.7,[s,r,o]),ue=e=>de()?(le(He,e),{status:!0}):(xe(He,1),{status:a}),de=()=>n(6.1,[o]),_e=e=>ce()?(le(Ve,e),{status:!0}):(xe(Ve,1),{status:a}),ce=()=>n(7.7,[s,r,o]);var xe=(e,t)=>{"development"===process.env.NODE_ENV&&console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)};const ge=()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppData");if(!t)return void xe("getInitData",2);const s=new URLSearchParams(t);let o={};return s.forEach(((e,t)=>{if(o[t]=e,void 0!==t.match(/^(chat|receiver|user)$/g))try{o[t]=JSON.parse(e)}catch{}})),o};var le=(e,t)=>{if(window.TelegramWebviewProxy)window.TelegramWebviewProxy.postEvent(e,JSON.stringify(t));else if(window.external&&"notify"in window.external)window.external.notify(JSON.stringify({eventType:e,eventData:t}));else try{"*",window.parent.postMessage(JSON.stringify({eventType:e,eventData:t}),"*")}catch(e){xe("postMessage Iframe",10)}};const he="web_app_invoke_custom_method",be="web_app_open_scan_qr_popup",we="web_app_read_text_from_clipboard",me="web_app_request_phone",ve="web_app_close",Se="web_app_close_scan_qr_popup",fe="web_app_data_send",ye="web_app_expand",Me="iframe_ready",Pe="iframe_will_reload",Ce="web_app_open_invoice",qe="web_app_open_link",Re="web_app_open_popup",ke="web_app_open_tg_link",Be="web_app_ready",Oe="web_app_request_theme",Te="web_app_request_viewport",Ee="web_app_request_write_access",Ie="web_app_set_background_color",We="web_app_set_header_color",Le="web_app_set_bottom_bar_color",Ne="web_app_setup_back_button",De="web_app_setup_closing_behavior",Qe="web_app_setup_main_button",Ae="web_app_setup_settings_button",Ge="web_app_switch_inline_query",He="web_app_trigger_haptic_feedback",Ve="web_app_setup_swipe_behavior";const Je="clipboard_text_received",$e="custom_method_invoked",je="phone_requested",Fe="popup_closed",Ue="qr_text_received",ze="scan_qr_popup_closed",Ke="theme_changed",Xe="viewport_changed",Ye=((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===Ke&&(t.theme_params=d(t.theme_params)),Ye.emit(e,t),Ye.emit("*",{name:e,data:t})}window.TelegramGameProxy_receiveEvent=e,window.Telegram={WebView:{receiveEvent:e}},window.TelegramGameProxy={receiveEvent:e}})();const Ze=(e,t)=>{Ye.on(e,t)},et=(e,t)=>{Ye.off(e,t)},tt=(e,t)=>{Ye.once(e,t)};var st=Object.freeze({__proto__:null,off:et,on:Ze,once:tt});const ot=e.createContext({viewport:void 0,theme:void 0,init:void 0});exports.ContextTwa=ot,exports.EventBackButtonPressed="back_button_pressed",exports.EventClipboardTextReceived=Je,exports.EventCustomMethodInvoked=$e,exports.EventInvoiceClosed="invoice_closed",exports.EventMainButtonPressed="main_button_pressed",exports.EventPhoneRequested=je,exports.EventPopupClosed=Fe,exports.EventQrTextReceived=Ue,exports.EventReloadIframe="reload_iframe",exports.EventScanQrPopupClosed=ze,exports.EventSetCustomStyle="set_custom_style",exports.EventSettingsButtonPressed="settings_button_pressed",exports.EventThemeChanged=Ke,exports.EventViewportChanged=Xe,exports.EventWriteAccessRequested="write_access_requested",exports.MethodClose=ve,exports.MethodCloseScanQrPopup=Se,exports.MethodDataSend=fe,exports.MethodExpand=ye,exports.MethodIframeReady=Me,exports.MethodIframeWillReload=Pe,exports.MethodInvokeCustomMethod=he,exports.MethodOpenInvoice=Ce,exports.MethodOpenLink=qe,exports.MethodOpenPopup=Re,exports.MethodOpenScanQrPopup=be,exports.MethodOpenTgLink=ke,exports.MethodReadTextFromClipboard=we,exports.MethodReady=Be,exports.MethodRequestPhone=me,exports.MethodRequestTheme=Oe,exports.MethodRequestViewport=Te,exports.MethodRequestWriteAccess=Ee,exports.MethodSetBackgroundColor=Ie,exports.MethodSetBottomBarColor=Le,exports.MethodSetHeaderColor=We,exports.MethodSetupBackButton=Ne,exports.MethodSetupClosingBehavior=De,exports.MethodSetupMainButton=Qe,exports.MethodSetupSettingsButton=Ae,exports.MethodSetupSwipeBehavior=Ve,exports.MethodSwitchInlineQuery=Ge,exports.MethodTriggerHapticFeedback=He,exports.NOT_SUPPORTED=a,exports.ProviderTWA=s=>{const[o,r]=t.createStore({viewport:void 0,theme:void 0,init:void 0});return e.onMount((()=>{const t=()=>{r("init",ge())};t();const s=e=>{t(),r("viewport",{...e,safe_area_bottom:e.is_expanded&&e.is_state_stable?window.outerHeight-e.height:0})};Ze(Xe,s),V();const o=e=>{t(),r("theme",e)};Ze(Ke,o),V(),e.onCleanup((()=>{et(Xe,s),et(Ke,o)}))})),React.createElement(ot.Provider,{value:o},s.children)},exports.TG_DESKTOP=r,exports.TG_PHONE=o,exports.TG_WEB=s,exports.bridgeClose=_,exports.bridgeCloseScanQrPopup=x,exports.bridgeDataSend=l,exports.bridgeExpand=b,exports.bridgeGetInitData=ge,exports.bridgeGetThemeParams=d,exports.bridgeIframeReady=m,exports.bridgeIframeWillReload=S,exports.bridgeInvokeCustomMethod=y,exports.bridgeOpenInvoice=P,exports.bridgeOpenLink=q,exports.bridgeOpenPopup=k,exports.bridgeOpenScanQrPopup=O,exports.bridgeOpenTgLink=E,exports.bridgeReadTextFromClipboard=W,exports.bridgeReady=N,exports.bridgeRequestPhone=Q,exports.bridgeRequestTheme=G,exports.bridgeRequestViewport=V,exports.bridgeRequestWriteAccess=$,exports.bridgeSend=le,exports.bridgeSessionStorageGet=({key:e})=>{try{return{is_json:!0,value:JSON.parse(window.sessionStorage.getItem("__telegram__"+e)??""),status:!0}}catch(t){return{is_json:!1,value:window.sessionStorage.getItem("__telegram__"+e)??"",status:!0}}},exports.bridgeSessionStorageSet=({key:e,value:t})=>{try{return window.sessionStorage.setItem("__telegram__"+e,JSON.stringify(t)),{status:!0}}catch(s){return window.sessionStorage.setItem("__telegram__"+e,t),{status:!0}}},exports.bridgeSetBackgroundColor=F,exports.bridgeSetBottomBarColor=X,exports.bridgeSetHeaderColor=z,exports.bridgeSetupBackButton=Z,exports.bridgeSetupClosingBehavior=te,exports.bridgeSetupMainButton=oe,exports.bridgeSetupSettingsButton=pe,exports.bridgeSetupSwipeBehavior=_e,exports.bridgeSwitchInlineQuery=ne,exports.bridgeTriggerHapticFeedback=ue,exports.createIsViewportChanged=()=>{const[t,s]=e.createSignal({height:0,is_expanded:!1,is_state_stable:!1}),o=e=>s(e);return e.onMount((()=>{Ze(Xe,o),le(Te)})),e.onCleanup((()=>{et(Xe,o)})),t},exports.debug=xe,exports.getPlatform=p,exports.listener=st,exports.sender=le,exports.supportClose=c,exports.supportCloseScanQrPopup=g,exports.supportDataSend=h,exports.supportExpand=w,exports.supportIframeReady=v,exports.supportIframeWillReload=f,exports.supportInvokeCustomMethod=M,exports.supportOpenInvoice=C,exports.supportOpenLink=R,exports.supportOpenPopup=B,exports.supportOpenScanQrPopup=T,exports.supportOpenTgLink=I,exports.supportReadTextFromClipboard=L,exports.supportReady=D,exports.supportRequestPhone=A,exports.supportRequestTheme=H,exports.supportRequestViewport=J,exports.supportRequestWriteAccess=j,exports.supportSessionStorageGet=()=>!0,exports.supportSessionStorageSet=()=>!0,exports.supportSetBackgroundColor=U,exports.supportSetBottomBarColor=Y,exports.supportSetHeaderColor=K,exports.supportSetupBackButton=ee,exports.supportSetupClosingBehavior=se,exports.supportSetupMainButton=re,exports.supportSetupSettingsButton=ae,exports.supportSetupSwipeBehavior=ce,exports.supportSwitchInlineQuery=ie,exports.supportTriggerHapticFeedback=de;
|
package/solid/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
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};
|
|
1
|
+
import{createSignal as e,onMount as t,onCleanup as s,createContext as a}from"solid-js";import{createStore as r}from"solid-js/store";const o=()=>{const[a,r]=e({height:0,is_expanded:!1,is_state_stable:!1}),o=e=>r(e);return t((()=>{bt(ut,o),qe(je)})),s((()=>{lt(ut,o)})),a},i="web",n="phone",_="desktop",p=()=>{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},d="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(p())},c=()=>Math.random().toString(36).substring(3,9),g=e=>{var t;if(t=/^\s*#([0-9a-f]{6})\s*$/i.exec(e+=""))return"#"+t[1].toLowerCase();if(t=/^\s*#([0-9a-f])([0-9a-f])([0-9a-f])\s*$/i.exec(e))return("#"+t[1]+t[1]+t[2]+t[2]+t[3]+t[3]).toLowerCase();if(t=/^\s*rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+\.{0,1}\d*))?\)\s*$/.exec(e)){var s=parseInt(t[1]),a=parseInt(t[2]),r=parseInt(t[3]);return"#"+((s<16?"0":"")+s.toString(16))+((a<16?"0":"")+a.toString(16))+((r<16?"0":"")+r.toString(16))}return!1},b=e=>{"#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 of Object.keys(e)){var o=g(e[r]);"string"==typeof o&&(a[r]=o)}return a},l=e=>w()?(qe(Ie,e),{status:!0}):(Se(Ie,1),{status:d}),w=()=>u(0,[i,_,n]),m=e=>h()?(qe(Re,e),{status:!0}):(Se(Re,1),{status:d}),h=()=>u(6.4,[n]),v=e=>f()?(qe(Te,e),{status:!0}):(Se(Te,1),{status:d}),f=()=>u(0,[i,_,n]),S=e=>y()?(qe(Ne,e),{status:!0}):(Se(Ne,1),{status:d}),y=()=>u(0,[n]),q=e=>x()?(qe(Ce,e),{status:!0}):(Se(Ce,1),{status:d}),x=()=>u(0,[i]),P=()=>k()?(qe(Ce),{status:!0}):(Se(Ce,1),{status:d}),k=()=>u(0,[i]),O=async e=>I()?(void 0===e.req_id&&(e.req_id=c()),qe(xe,e),new Promise(((t,s)=>{const a=s=>{s.req_id===e.req_id&&(t({status:!0,data:s}),lt(et,a))};bt(et,a)}))):(Se(xe,1),{status:d}),I=()=>u(6.9,[i,_,n]),R=e=>T()?(qe(Ee,e),{status:!0}):(Se(Ee,1),{status:d}),T=()=>u(6.1,[i,_,n]),N=e=>C()?(qe(Le,e),{status:!0}):(Se(Le,1),{status:d}),C=()=>u(6.4,[i,_,n]),B=async e=>E()?(e.title.length>64&&Se(We,3),e.message.length<1&&Se(We,4),e.message.length>256&&Se(We,5),e.buttons.length<1&&Se(We,6),e.buttons.length>3&&Se(We,7),void 0!==e.buttons.find((e=>e.text?.match(/^(ok|close|cancel)$/g)))&&Se(We,8),qe(We,e),new Promise(((t,s)=>{const a=s=>{t({status:!!e.buttons.find((e=>e.id===s?.button_id)),data:s}),lt(rt,a)};bt(rt,a)}))):(Se(We,1),{status:d}),E=()=>u(6.2,[i,_,n]),L=async e=>W()?(qe(Pe,e),new Promise(((t,s)=>{wt(it,(s=>{e.is_close&&m(),t({status:!0,data:s})})),wt(nt,(()=>{t({status:"closed"})}))}))):(Se(Pe,1),{status:d}),W=()=>u(6.4,[n]),D=e=>("/"!==e.path_full[0]&&(e.path_full="/"+e.path_full),J()?(qe(De,e),{status:!0}):(Se(De,1),{status:d})),J=()=>u(7,[i,_,n]),$=async e=>j()?(e||(e={req_id:void 0}),void 0===e.req_id&&(e.req_id=c()),qe(ke,e),new Promise(((t,s)=>{const a=s=>{s.req_id===e?.req_id&&(t({status:!0,data:s}),lt(Ze,a))};bt(Ze,a)}))):(Se(ke,1),{status:d}),j=()=>u(6.4,[i,_,n]),M=e=>A()?(qe(Je,e),{status:!0}):(Se(Je,1),{status:d}),A=()=>u(6.9,[i,_,n]),G=async()=>U()?(qe(Oe),new Promise(((e,t)=>{wt(at,(t=>{"sent"===t.status&&e({status:!0}),e({status:!1})}))}))):(Se(Oe,1),{status:d}),U=()=>u(6.9,[i,_,n]),V=e=>H()?(qe($e,e),{status:!0}):(Se($e,1),{status:d}),H=()=>u(0,[i,_,n]),Q=e=>F()?(qe(je,e),{status:!0}):(Se(je,1),{status:d}),F=()=>u(0,[i,_,n]),z=()=>K()?(qe(Me),{status:!0}):(Se(Me,1),{status:d}),K=()=>u(6.9,[i,_,n]),X=e=>Y()?(qe(Ae,e),{status:!0}):(Se(Ae,1),{status:d}),Y=()=>u(6.1,[i,_,n]),Z=e=>ee()?(qe(Ge,e),{status:!0}):(Se(Ge,1),{status:d}),ee=()=>u(6.1,[i,_,n]),te=e=>se()?(qe(Ue,{color:e?.color||e?.color_key}),{status:!0}):(Se(Ue,1),{status:d}),se=()=>u(710,[i,_,n]),ae=e=>re()?(qe(Ve,e),{status:!0}):(Se(Ve,1),{status:d}),re=()=>u(6.1,[i,_,n]),oe=e=>ie()?(qe(He,e),{status:!0}):(Se(He,1),{status:d}),ie=()=>u(0,[i,_,n]),ne=e=>_e()?(qe(Qe,e),{status:!0}):(Se(Qe,1),{status:d}),_e=()=>u(0,[i,_,n]),pe=e=>de()?(qe(Fe,e),{status:!0}):(Se(Fe,1),{status:d}),de=()=>u(6.1,[i,_,n]),ue=e=>ce()?(e.query.length>256&&Se(ze,9),qe(ze,e),{status:!0}):(Se(ze,1),{status:d}),ce=()=>u(6.7,[i,_,n]),ge=e=>be()?(qe(Ke,e),{status:!0}):(Se(Ke,1),{status:d}),be=()=>u(6.1,[n]),le=({key:e,value:t})=>{try{return window.sessionStorage.setItem("__telegram__"+e,JSON.stringify(t)),{status:!0}}catch(s){return window.sessionStorage.setItem("__telegram__"+e,t),{status:!0}}},we=()=>!0,me=({key:e})=>{try{return{is_json:!0,value:JSON.parse(window.sessionStorage.getItem("__telegram__"+e)??""),status:!0}}catch(t){return{is_json:!1,value:window.sessionStorage.getItem("__telegram__"+e)??"",status:!0}}},he=()=>!0,ve=e=>fe()?(qe(Xe,e),{status:!0}):(Se(Xe,1),{status:d}),fe=()=>u(7.7,[i,_,n]);var Se=(e,t)=>{"development"===process.env.NODE_ENV&&console.error(`[@apiteam/twa-bridge](${e}) = ${t}`)};const ye=()=>{const e=window.location.hash.slice(1),t=new URLSearchParams(e).get("tgWebAppData");if(!t)return void Se("getInitData",2);const s=new URLSearchParams(t);let a={};return s.forEach(((e,t)=>{if(a[t]=e,void 0!==t.match(/^(chat|receiver|user)$/g))try{a[t]=JSON.parse(e)}catch{}})),a};var qe=(e,t)=>{if(window.TelegramWebviewProxy)window.TelegramWebviewProxy.postEvent(e,JSON.stringify(t));else if(window.external&&"notify"in window.external)window.external.notify(JSON.stringify({eventType:e,eventData:t}));else try{"*",window.parent.postMessage(JSON.stringify({eventType:e,eventData:t}),"*")}catch(e){Se("postMessage Iframe",10)}};const xe="web_app_invoke_custom_method",Pe="web_app_open_scan_qr_popup",ke="web_app_read_text_from_clipboard",Oe="web_app_request_phone",Ie="web_app_close",Re="web_app_close_scan_qr_popup",Te="web_app_data_send",Ne="web_app_expand",Ce="iframe_ready",Be="iframe_will_reload",Ee="web_app_open_invoice",Le="web_app_open_link",We="web_app_open_popup",De="web_app_open_tg_link",Je="web_app_ready",$e="web_app_request_theme",je="web_app_request_viewport",Me="web_app_request_write_access",Ae="web_app_set_background_color",Ge="web_app_set_header_color",Ue="web_app_set_bottom_bar_color",Ve="web_app_setup_back_button",He="web_app_setup_closing_behavior",Qe="web_app_setup_main_button",Fe="web_app_setup_settings_button",ze="web_app_switch_inline_query",Ke="web_app_trigger_haptic_feedback",Xe="web_app_setup_swipe_behavior";const Ye="back_button_pressed",Ze="clipboard_text_received",et="custom_method_invoked",tt="invoice_closed",st="main_button_pressed",at="phone_requested",rt="popup_closed",ot="reload_iframe",it="qr_text_received",nt="scan_qr_popup_closed",_t="set_custom_style",pt="settings_button_pressed",dt="theme_changed",ut="viewport_changed",ct="write_access_requested",gt=((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===dt&&(t.theme_params=b(t.theme_params)),gt.emit(e,t),gt.emit("*",{name:e,data:t})}window.TelegramGameProxy_receiveEvent=e,window.Telegram={WebView:{receiveEvent:e}},window.TelegramGameProxy={receiveEvent:e}})();const bt=(e,t)=>{gt.on(e,t)},lt=(e,t)=>{gt.off(e,t)},wt=(e,t)=>{gt.once(e,t)};var mt=Object.freeze({__proto__:null,off:lt,on:bt,once:wt});const ht=a({viewport:void 0,theme:void 0,init:void 0}),vt=e=>{const[a,o]=r({viewport:void 0,theme:void 0,init:void 0});return t((()=>{const e=()=>{o("init",ye())};e();const t=t=>{e(),o("viewport",{...t,safe_area_bottom:t.is_expanded&&t.is_state_stable?window.outerHeight-t.height:0})};bt(ut,t),Q();const a=t=>{e(),o("theme",t)};bt(dt,a),Q(),s((()=>{lt(ut,t),lt(dt,a)}))})),React.createElement(ht.Provider,{value:a},e.children)};export{ht as ContextTwa,Ye as EventBackButtonPressed,Ze as EventClipboardTextReceived,et as EventCustomMethodInvoked,tt as EventInvoiceClosed,st as EventMainButtonPressed,at as EventPhoneRequested,rt as EventPopupClosed,it as EventQrTextReceived,ot as EventReloadIframe,nt as EventScanQrPopupClosed,_t as EventSetCustomStyle,pt as EventSettingsButtonPressed,dt as EventThemeChanged,ut as EventViewportChanged,ct as EventWriteAccessRequested,Ie as MethodClose,Re as MethodCloseScanQrPopup,Te as MethodDataSend,Ne as MethodExpand,Ce as MethodIframeReady,Be as MethodIframeWillReload,xe as MethodInvokeCustomMethod,Ee as MethodOpenInvoice,Le as MethodOpenLink,We as MethodOpenPopup,Pe as MethodOpenScanQrPopup,De as MethodOpenTgLink,ke as MethodReadTextFromClipboard,Je as MethodReady,Oe as MethodRequestPhone,$e as MethodRequestTheme,je as MethodRequestViewport,Me as MethodRequestWriteAccess,Ae as MethodSetBackgroundColor,Ue as MethodSetBottomBarColor,Ge as MethodSetHeaderColor,Ve as MethodSetupBackButton,He as MethodSetupClosingBehavior,Qe as MethodSetupMainButton,Fe as MethodSetupSettingsButton,Xe as MethodSetupSwipeBehavior,ze as MethodSwitchInlineQuery,Ke as MethodTriggerHapticFeedback,d as NOT_SUPPORTED,vt as ProviderTWA,_ as TG_DESKTOP,n as TG_PHONE,i as TG_WEB,l as bridgeClose,m as bridgeCloseScanQrPopup,v as bridgeDataSend,S as bridgeExpand,ye as bridgeGetInitData,b as bridgeGetThemeParams,q as bridgeIframeReady,P as bridgeIframeWillReload,O as bridgeInvokeCustomMethod,R as bridgeOpenInvoice,N as bridgeOpenLink,B as bridgeOpenPopup,L as bridgeOpenScanQrPopup,D as bridgeOpenTgLink,$ as bridgeReadTextFromClipboard,M as bridgeReady,G as bridgeRequestPhone,V as bridgeRequestTheme,Q as bridgeRequestViewport,z as bridgeRequestWriteAccess,qe as bridgeSend,me as bridgeSessionStorageGet,le as bridgeSessionStorageSet,X as bridgeSetBackgroundColor,te as bridgeSetBottomBarColor,Z as bridgeSetHeaderColor,ae as bridgeSetupBackButton,oe as bridgeSetupClosingBehavior,ne as bridgeSetupMainButton,pe as bridgeSetupSettingsButton,ve as bridgeSetupSwipeBehavior,ue as bridgeSwitchInlineQuery,ge as bridgeTriggerHapticFeedback,o as createIsViewportChanged,Se as debug,p as getPlatform,mt as listener,qe as sender,w as supportClose,h as supportCloseScanQrPopup,f as supportDataSend,y as supportExpand,x as supportIframeReady,k as supportIframeWillReload,I as supportInvokeCustomMethod,T as supportOpenInvoice,C as supportOpenLink,E as supportOpenPopup,W as supportOpenScanQrPopup,J as supportOpenTgLink,j as supportReadTextFromClipboard,A as supportReady,U as supportRequestPhone,H as supportRequestTheme,F as supportRequestViewport,K as supportRequestWriteAccess,he as supportSessionStorageGet,we as supportSessionStorageSet,Y as supportSetBackgroundColor,se as supportSetBottomBarColor,ee as supportSetHeaderColor,re as supportSetupBackButton,ie as supportSetupClosingBehavior,_e as supportSetupMainButton,de as supportSetupSettingsButton,fe as supportSetupSwipeBehavior,ce as supportSwitchInlineQuery,be as supportTriggerHapticFeedback};
|