1 line
52 KiB
JavaScript
1 line
52 KiB
JavaScript
!function(){var n={},e="";try{e=location.hash.toString()}catch(e){}var t=c(e),r=b("initParams");if(r)for(var o in r)void 0===t[o]&&(t[o]=r[o]);d("initParams",t);var i,a=!1;try{if(a=null!=window.parent&&window!=window.parent){window.addEventListener("message",function(e){if(e.source===window.parent){try{var t=JSON.parse(e.data)}catch(e){return}if(t&&t.eventType)if("set_custom_style"==t.eventType)"https://web.telegram.org"===e.origin&&(i.innerHTML=t.eventData);else if("reload_iframe"==t.eventType){try{window.parent.postMessage(JSON.stringify({eventType:"iframe_will_reload"}),"*")}catch(e){}location.reload()}else p(t.eventType,t.eventData)}}),i=document.createElement("style"),document.head.appendChild(i);try{window.parent.postMessage(JSON.stringify({eventType:"iframe_ready",eventData:{reload_supported:!0}}),"*")}catch(e){}}}catch(e){}function s(t){try{return t=t.replace(/\+/g,"%20"),decodeURIComponent(t)}catch(e){return t}}function c(e){var t={};if(!(e=e.replace(/^#/,"")).length)return t;if(e.indexOf("=")<0&&e.indexOf("?")<0)return t._path=s(e),t;var r,o=e.indexOf("?");0<=o&&(r=e.substr(0,o),t._path=s(r),e=e.substr(o+1));var n,i=l(e);for(n in i)t[n]=i[n];return t}function l(e){var t={};if(!e.length)return t;for(var r,o,n=e.split("&"),i=0;i<n.length;i++)r=s((o=n[i].split("="))[0]),o=null==o[1]?null:s(o[1]),t[r]=o;return t}function p(t,r){console.log("[Telegram.WebView] < receiveEvent",t,r),u(t,function(e){e(t,r)})}function u(e,t){var r=n[e];if(void 0!==r&&r.length)for(var o=0;o<r.length;o++)try{t(r[o])}catch(e){}}function d(e,t){try{return window.sessionStorage.setItem("__telegram__"+e,JSON.stringify(t)),!0}catch(e){}return!1}function b(e){try{return JSON.parse(window.sessionStorage.getItem("__telegram__"+e))}catch(e){}return null}window.Telegram||(window.Telegram={}),window.Telegram.WebView={initParams:t,isIframe:a,onEvent:function(e,t){void 0===n[e]&&(n[e]=[]),-1===n[e].indexOf(t)&&n[e].push(t)},offEvent:function(e,t){void 0===n[e]||-1!==(t=n[e].indexOf(t))&&n[e].splice(t,1)},postEvent:function(e,t,r){if(t=t||function(){},void 0===r&&(r=""),console.log("[Telegram.WebView] > postEvent",e,r),void 0!==window.TelegramWebviewProxy)TelegramWebviewProxy.postEvent(e,JSON.stringify(r)),t();else if(window.external&&"notify"in window.external)window.external.notify(JSON.stringify({eventType:e,eventData:r})),t();else if(a)try{window.parent.postMessage(JSON.stringify({eventType:e,eventData:r}),"*"),t()}catch(e){t(e)}else t({notAvailable:!0})},receiveEvent:p,callEventCallbacks:u},window.Telegram.Utils={urlSafeDecode:s,urlParseQueryString:l,urlParseHashParams:c,urlAppendHashParams:function(e,t){var r=e.indexOf("#");return r<0?e+"#"+t:0<=(r=e.substr(r+1)).indexOf("=")||0<=r.indexOf("?")?e+"&"+t:0<r.length?e+"?"+t:e+t},sessionStorageSet:d,sessionStorageGet:b},window.TelegramGameProxy_receiveEvent=p,window.TelegramGameProxy={receiveEvent:p}}(),function(){var p=window.Telegram.Utils,k=window.Telegram.WebView,T=k.initParams,o=k.isIframe,r={},e="",t={},P={},n="light",v="6.0",i="unknown",a=!0,s=!1,c=!1,l="bg_color",u="bg_color",d=null;if(T.tgWebAppData&&T.tgWebAppData.length)for(var b in e=T.tgWebAppData,t=p.urlParseQueryString(e)){var f=t[b];try{("{"==f.substr(0,1)&&"}"==f.substr(-1)||"["==f.substr(0,1)&&"]"==f.substr(-1))&&(t[b]=JSON.parse(f))}catch(e){}}var g=p.sessionStorageGet("themeParams");if(T.tgWebAppThemeParams&&T.tgWebAppThemeParams.length){var _=T.tgWebAppThemeParams;try{var m=JSON.parse(_);m&&M(m)}catch(e){}}g&&M(g);var h=p.sessionStorageGet("defaultColors");if(T.tgWebAppDefaultColors&&T.tgWebAppDefaultColors.length){var w=T.tgWebAppDefaultColors;try{var y=JSON.parse(w);y&&j(y)}catch(e){}}h&&j(h),T.tgWebAppVersion&&(v=T.tgWebAppVersion),T.tgWebAppPlatform&&(i=T.tgWebAppPlatform);var A=p.sessionStorageGet("isFullscreen");T.tgWebAppFullscreen&&C(!0),A&&C("yes"==A),(Re=p.sessionStorageGet("isOrientationLocked"))&&B("yes"==Re);var E=window.innerHeight;function W(e){E!=window.innerHeight&&(E=window.innerHeight,x("viewportChanged",{isStateStable:!0}))}function S(e){return e.toString().replace(/^\s+|\s+$/g,"")}function x(e){var t=Array.prototype.slice.call(arguments);e=t.shift(),k.callEventCallbacks("webview:"+e,function(e){e.apply(r,t)})}function O(e,t){k.onEvent("webview:"+e,t)}function I(e,t){k.offEvent("webview:"+e,t)}function q(e,t){var r=document.documentElement;r&&r.style&&r.style.setProperty&&r.style.setProperty("--tg-"+e,t)}function C(e){s=!!e,p.sessionStorageSet("isFullscreen",s?"yes":"no")}function B(e){c=!!e,p.sessionStorageSet("isOrientationLocked",c?"yes":"no")}function M(e){var t,r;for(r in"#1c1c1d"==e.bg_color&&e.bg_color==e.secondary_bg_color&&(e.secondary_bg_color="#2c2c2e"),e)(t=ce(e[r]))&&(P[r]=t,"bg_color"==r&&q("color-scheme",n=function(e){3==(e=e.replace(/[\s#]/g,"")).length&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]);var t=parseInt(e.substr(0,2),16),r=parseInt(e.substr(2,2),16),e=parseInt(e.substr(4,2),16);return Math.sqrt(t*t*.299+r*r*.587+e*e*.114)<120}(t)?"dark":"light"),q(r="theme-"+r.split("_").join("-"),t));p.sessionStorageSet("themeParams",P)}function j(e){"dark"==n?(e.bg_dark_color&&(l=e.bg_dark_color),e.header_dark_color&&(u=null,d=e.header_dark_color)):(e.bg_color&&(l=e.bg_color),e.header_color&&(u=null,d=e.header_color)),p.sessionStorageSet("defaultColors",e)}var N={};function U(e){for(var t=100;--t;){for(var r="",o="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",n=o.length,i=0;i<e;i++)r+=o[Math.floor(Math.random()*n)];if(!N[r])return N[r]={},r}throw Error("WebAppCallbackIdGenerateFailed")}var L=!1,D=!1,R=!0;function H(e){void 0!==e&&(R=!!e.is_expanded,L=e.height,e.is_state_stable&&(D=e.height),x("viewportChanged",{isStateStable:!!e.is_state_stable})),e=!1!==D?D-be+"px":be?"calc(100vh - "+be+"px)":"100vh",q("viewport-height",!1!==L?L-be+"px":be?"calc(100vh - "+be+"px)":"100vh"),q("viewport-stable-height",e)}var F={top:0,bottom:0,left:0,right:0},V={top:0,bottom:0,left:0,right:0},z=!1,G=!0,J=[],Q=!1,K=!1,$=!1,X=!1,Y=null,Z=null;function ee(){Y==u&&Z==d||(Y=u,(Z=d)?k.postEvent("web_app_set_header_color",!1,{color:d}):k.postEvent("web_app_set_header_color",!1,{color_key:u}))}function te(){return"secondary_bg_color"==l?P.secondary_bg_color:"bg_color"==l?P.bg_color:l}var re=null;function oe(){var e=te();re!=e&&(re=e,k.postEvent("web_app_set_background_color",!1,{color:e}))}var ne="bottom_bar_bg_color";function ie(){return"bottom_bar_bg_color"==ne?P.bottom_bar_bg_color||P.secondary_bg_color||"#ffffff":"secondary_bg_color"==ne?P.secondary_bg_color:"bg_color"==ne?P.bg_color:ne}var ae=null;function se(){var e=ie();ae!=e&&(ae=e,k.postEvent("web_app_set_bottom_bar_color",!1,{color:e})),T.tgWebAppDebug&&ve()}function ce(e){if(r=/^\s*#([0-9a-f]{6})\s*$/i.exec(e+=""))return"#"+r[1].toLowerCase();if(r=/^\s*#([0-9a-f])([0-9a-f])([0-9a-f])\s*$/i.exec(e))return("#"+r[1]+r[1]+r[2]+r[2]+r[3]+r[3]).toLowerCase();if(r=/^\s*rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+\.{0,1}\d*))?\)\s*$/.exec(e)){var t=parseInt(r[1]),e=parseInt(r[2]),r=parseInt(r[3]);return"#"+(t=(t<16?"0":"")+t.toString(16))+(e=(e<16?"0":"")+e.toString(16))+(r=(r<16?"0":"")+r.toString(16))}return!1}function le(e){return 0<=function(e,t){"string"!=typeof e&&(e=""),"string"!=typeof t&&(t=""),e=e.replace(/^\s+|\s+$/g,"").split("."),t=t.replace(/^\s+|\s+$/g,"").split(".");for(var r,o,n=Math.max(e.length,t.length),i=0;i<n;i++)if((r=parseInt(e[i])||0)!=(o=parseInt(t[i])||0))return o<r?1:-1;return 0}(v,e)}var pe=function(){var t=!1,r={};Object.defineProperty(r,"isVisible",{set:function(e){s({is_visible:e})},get:function(){return t},enumerable:!0});var o=null;function n(){return{is_visible:t}}function i(){if(le("6.1"))return 1;console.warn("[Telegram.WebApp] BackButton is not supported in version "+v)}function a(){var e,t=n(),e=(void 0===(e=t)&&(e=n()),JSON.stringify(e));o!==e&&(o=e,k.postEvent("web_app_setup_back_button",!1,t))}function s(e){return i()&&(void 0!==e.is_visible&&(t=!!e.is_visible),a()),r}return k.onEvent("back_button_pressed",function(){x("backButtonClicked")}),r.onClick=function(e){return i()&&O("backButtonClicked",e),r},r.offClick=function(e){return i()&&I("backButtonClicked",e),r},r.show=function(){return s({is_visible:!0})},r.hide=function(){return s({is_visible:!1})},r}(),ue=null,de={},be=0;if(T.tgWebAppDebug){ue=document.createElement("tg-bottom-bar");var fe,ge={display:"flex",gap:"7px",font:"600 14px/18px sans-serif",width:"100%",background:ie(),position:"fixed",left:"0",right:"0",bottom:"0",margin:"0",padding:"7px",textAlign:"center",boxSizing:"border-box",zIndex:"10000"};for(fe in ge)ue.style[fe]=ge[fe];document.addEventListener("DOMContentLoaded",function e(t){document.removeEventListener("DOMContentLoaded",e),document.body.appendChild(ue)});var _e=document.createElement("style");_e.innerHTML='tg-bottom-button.shine { position: relative; overflow: hidden; } tg-bottom-button.shine:before { content:""; position: absolute; top: 0; width: 100%; height: 100%; background: linear-gradient(120deg, transparent, rgba(255, 255, 255, .2), transparent); animation: tg-bottom-button-shine 5s ease-in-out infinite; } @-webkit-keyframes tg-bottom-button-shine { 0% {left: -100%;} 12%,100% {left: 100%}} @keyframes tg-bottom-button-shine { 0% {left: -100%;} 12%,100% {left: 100%}}',ue.appendChild(_e)}function ve(){var e=de.main._bottomButton,t=de.secondary._bottomButton;e.isVisible||t.isVisible?(ue.style.display="flex",be=58,e.isVisible&&t.isVisible&&("top"==t.position?(ue.style.flexDirection="column-reverse",be+=51):"bottom"==t.position?(ue.style.flexDirection="column",be+=51):"left"==t.position?ue.style.flexDirection="row-reverse":"right"==t.position&&(ue.style.flexDirection="row"))):(ue.style.display="none",be=0),ue.style.background=ie(),document.documentElement&&(document.documentElement.style.boxSizing="border-box",document.documentElement.style.paddingBottom=be+"px"),H()}var me,he=(it=function(e){var r,t,o,n,i,a,s="main"==e;a=s?(r="web_app_setup_main_button",t="main_button_pressed",o="mainButtonClicked",n="Continue",i=function(){return P.button_color||"#2481cc"},function(){return P.button_text_color||"#ffffff"}):(r="web_app_setup_secondary_button",t="secondary_button_pressed",o="secondaryButtonClicked",n="Cancel",i=ie,function(){return P.button_color||"#2481cc"});var c=!1,l=!0,p=!1,u=!1,d=e,b=n,f=!1,g=!1,_="left",v={};Object.defineProperty(v,"type",{get:function(){return d},enumerable:!0}),Object.defineProperty(v,"text",{set:function(e){v.setParams({text:e})},get:function(){return b},enumerable:!0}),Object.defineProperty(v,"color",{set:function(e){v.setParams({color:e})},get:function(){return f||i()},enumerable:!0}),Object.defineProperty(v,"textColor",{set:function(e){v.setParams({text_color:e})},get:function(){return g||a()},enumerable:!0}),Object.defineProperty(v,"isVisible",{set:function(e){v.setParams({is_visible:e})},get:function(){return c},enumerable:!0}),Object.defineProperty(v,"isProgressVisible",{get:function(){return u},enumerable:!0}),Object.defineProperty(v,"isActive",{set:function(e){v.setParams({is_active:e})},get:function(){return l},enumerable:!0}),Object.defineProperty(v,"hasShineEffect",{set:function(e){v.setParams({has_shine_effect:e})},get:function(){return p},enumerable:!0}),s||Object.defineProperty(v,"position",{set:function(e){v.setParams({position:e})},get:function(){return _},enumerable:!0});var m=null;k.onEvent(t,A);var h=null;if(T.tgWebAppDebug){h=document.createElement("tg-bottom-button");var w,y={display:"none",width:"100%",height:"44px",borderRadius:"0",background:"no-repeat right center",padding:"13px 15px",textAlign:"center",boxSizing:"border-box"};for(w in y)h.style[w]=y[w];ue.appendChild(h),h.addEventListener("click",A,!1),h._bottomButton=v,de[e]=h}function A(){l&&x(o)}function E(){var e,t=v.color,r=v.textColor;return c?(e={is_visible:!0,is_active:l,is_progress_visible:u,text:b,color:t,text_color:r,has_shine_effect:p&&l&&!u},s||(e.position=_)):e={is_visible:!1},e}function W(){var e,t=E(),e=(void 0===(e=t)&&(e=E()),JSON.stringify(e));m!==e&&(m=e,k.postEvent(r,!1,t),T.tgWebAppDebug&&((t=t).is_visible?(h.style.display="block",h.style.opacity=t.is_active?"1":"0.8",h.style.cursor=t.is_active?"pointer":"auto",h.disabled=!t.is_active,h.innerText=t.text,h.className=t.has_shine_effect?"shine":"",h.style.backgroundImage=t.is_progress_visible?"url('data:image/svg+xml,"+encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewport="0 0 48 48" width="48px" height="48px"><circle cx="50%" cy="50%" stroke="'+t.text_color+'" stroke-width="2.25" stroke-linecap="round" fill="none" stroke-dashoffset="106" r="9" stroke-dasharray="56.52" rotate="-90"><animate attributeName="stroke-dashoffset" attributeType="XML" dur="360s" from="0" to="12500" repeatCount="indefinite"></animate><animateTransform attributeName="transform" attributeType="XML" type="rotate" dur="1s" from="-90 24 24" to="630 24 24" repeatCount="indefinite"></animateTransform></circle></svg>')+"')":"none",h.style.backgroundColor=t.color,h.style.color=t.text_color):h.style.display="none",ve()))}return v.setText=function(e){return v.setParams({text:e})},v.onClick=function(e){return O(o,e),v},v.offClick=function(e){return I(o,e),v},v.show=function(){return v.setParams({is_visible:!0})},v.hide=function(){return v.setParams({is_visible:!1})},v.enable=function(){return v.setParams({is_active:!0})},v.disable=function(){return v.setParams({is_active:!1})},v.showProgress=function(e){return l=!!e,u=!0,W(),v},v.hideProgress=function(){return v.isActive||(l=!0),u=!1,W(),v},v.setParams=function(e){if(void 0!==e.text){var t=S(e.text);if(!t.length)throw console.error("[Telegram.WebApp] Bottom button text is required",e.text),Error("WebAppBottomButtonParamInvalid");if(64<t.length)throw console.error("[Telegram.WebApp] Bottom button text is too long",t),Error("WebAppBottomButtonParamInvalid");b=t}if(void 0!==e.color)if(!1===e.color||null===e.color)f=!1;else{var r=ce(e.color);if(!r)throw console.error("[Telegram.WebApp] Bottom button color format is invalid",e.color),Error("WebAppBottomButtonParamInvalid");f=r}if(void 0!==e.text_color)if(!1===e.text_color||null===e.text_color)g=!1;else{r=ce(e.text_color);if(!r)throw console.error("[Telegram.WebApp] Bottom button text color format is invalid",e.text_color),Error("WebAppBottomButtonParamInvalid");g=r}if(void 0!==e.is_visible){if(e.is_visible&&!v.text.length)throw console.error("[Telegram.WebApp] Bottom button text is required"),Error("WebAppBottomButtonParamInvalid");c=!!e.is_visible}if(void 0!==e.has_shine_effect&&(p=!!e.has_shine_effect),!s&&void 0!==e.position){if("left"!=e.position&&"right"!=e.position&&"top"!=e.position&&"bottom"!=e.position)throw console.error("[Telegram.WebApp] Bottom button posiition is invalid",e.position),Error("WebAppBottomButtonParamInvalid");_=e.position}return void 0!==e.is_active&&(l=!!e.is_active),W(),v},v})("main"),we=it("secondary"),ye=function(){var t=!1,r={};Object.defineProperty(r,"isVisible",{set:function(e){s({is_visible:e})},get:function(){return t},enumerable:!0});var o=null;function n(){return{is_visible:t}}function i(){if(le("6.10"))return 1;console.warn("[Telegram.WebApp] SettingsButton is not supported in version "+v)}function a(){var e,t=n(),e=(void 0===(e=t)&&(e=n()),JSON.stringify(e));o!==e&&(o=e,k.postEvent("web_app_setup_settings_button",!1,t))}function s(e){return i()&&(void 0!==e.is_visible&&(t=!!e.is_visible),a()),r}return k.onEvent("settings_button_pressed",function(){x("settingsButtonClicked")}),r.onClick=function(e){return i()&&O("settingsButtonClicked",e),r},r.offClick=function(e){return i()&&I("settingsButtonClicked",e),r},r.show=function(){return s({is_visible:!0})},r.hide=function(){return s({is_visible:!1})},r}(),Ae=((me={}).impactOccurred=function(e){return Ee({type:"impact",impact_style:e})},me.notificationOccurred=function(e){return Ee({type:"notification",notification_type:e})},me.selectionChanged=function(){return Ee({type:"selection_change"})},me);function Ee(e){if(!le("6.1"))return console.warn("[Telegram.WebApp] HapticFeedback is not supported in version "+v),me;if("impact"==e.type){if("light"!=e.impact_style&&"medium"!=e.impact_style&&"heavy"!=e.impact_style&&"rigid"!=e.impact_style&&"soft"!=e.impact_style)throw console.error("[Telegram.WebApp] Haptic impact style is invalid",e.impact_style),Error("WebAppHapticImpactStyleInvalid")}else if("notification"==e.type){if("error"!=e.notification_type&&"success"!=e.notification_type&&"warning"!=e.notification_type)throw console.error("[Telegram.WebApp] Haptic notification type is invalid",e.notification_type),Error("WebAppHapticNotificationTypeInvalid")}else if("selection_change"!=e.type)throw console.error("[Telegram.WebApp] Haptic feedback type is invalid",e.type),Error("WebAppHapticFeedbackTypeInvalid");return k.postEvent("web_app_trigger_haptic_feedback",!1,e),me}var We,ke=((We={}).setItem=function(e,t,r){return Te("saveStorageValue",{key:e,value:t},r)},We.getItem=function(r,o){return We.getItems([r],o?function(e,t){e?o(e):o(null,t[r])}:null)},We.getItems=function(e,t){return Te("getStorageValues",{keys:e},t)},We.removeItem=function(e,t){return We.removeItems([e],t)},We.removeItems=function(e,t){return Te("deleteStorageValues",{keys:e},t)},We.getKeys=function(e){return Te("getStorageKeys",{},e)},We);function Te(e,t,r){if(!le("6.9"))throw console.error("[Telegram.WebApp] CloudStorage is not supported in version "+v),Error("WebAppMethodUnsupported");return dt(e,t,r),We}var Pe,Se=(Pe={},k.onEvent("device_storage_key_saved",xe),k.onEvent("device_storage_key_received",xe),k.onEvent("device_storage_cleared",xe),k.onEvent("device_storage_failed",xe),Pe.setItem=function(e,t,r){return Oe("web_app_device_storage_save_key",{key:e,value:t},r)},Pe.getItem=function(e,t){return Oe("web_app_device_storage_get_key",{key:e},t)},Pe.removeItem=function(e,t){return Oe("web_app_device_storage_save_key",{key:e,value:null},t)},Pe.clear=function(e){return Oe("web_app_device_storage_clear",{},e)},Pe);function xe(e,t){var r,o,n;t.req_id&&N[t.req_id]&&(r=N[t.req_id],delete N[t.req_id],n=o=null,"device_storage_failed"==e?n=t.error||"UNKNOWN_ERROR":o="device_storage_key_received"!=e||t.value,r.callback&&r.callback(n,o))}function Oe(e,t,r){if(!le("9.0"))throw console.error("[Telegram.WebApp] DeviceStorage is not supported in version "+v),Error("WebAppMethodUnsupported");var o,n=U(16),i={req_id:n};for(o in t)i[o]=t[o];return N[n]={callback:r},k.postEvent(e,!1,i),Pe}var Ie,g=(Ie={},k.onEvent("secure_storage_key_saved",qe),k.onEvent("secure_storage_key_received",qe),k.onEvent("secure_storage_key_restored",qe),k.onEvent("secure_storage_cleared",qe),k.onEvent("secure_storage_failed",qe),Ie.setItem=function(e,t,r){return Ce("web_app_secure_storage_save_key",{key:e,value:t},r)},Ie.getItem=function(e,t){return Ce("web_app_secure_storage_get_key",{key:e},t)},Ie.restoreItem=function(e,t){return Ce("web_app_secure_storage_restore_key",{key:e},t)},Ie.removeItem=function(e,t){return Ce("web_app_secure_storage_save_key",{key:e,value:null},t)},Ie.clear=function(e){return Ce("web_app_secure_storage_clear",{},e)},Ie);function qe(e,t){var r,o,n,i;t.req_id&&N[t.req_id]&&(r=N[t.req_id],delete N[t.req_id],i=n=o=null,"secure_storage_failed"==e?n=t.error||"UNKNOWN_ERROR":"secure_storage_key_received"==e?(o=t.value,t.can_restore&&(i=!0)):o="secure_storage_key_restored"!=e||t.value,r.callback&&r.callback(n,o,i))}function Ce(e,t,r){if(!le("9.0"))throw console.error("[Telegram.WebApp] SecureStorage is not supported in version "+v),Error("WebAppMethodUnsupported");var o,n=U(16),i={req_id:n};for(o in t)i[o]=t[o];return N[n]={callback:r},k.postEvent(e,!1,i),Ie}var Be,Me,je,Ne,Ue,Le,De,h=function(){var o=!1,n=!1,i="unknown",a=!1,s=!1,c=!1,l="",p={};Object.defineProperty(p,"isInited",{get:function(){return o},enumerable:!0}),Object.defineProperty(p,"isBiometricAvailable",{get:function(){return o&&n},enumerable:!0}),Object.defineProperty(p,"biometricType",{get:function(){return i||"unknown"},enumerable:!0}),Object.defineProperty(p,"isAccessRequested",{get:function(){return a},enumerable:!0}),Object.defineProperty(p,"isAccessGranted",{get:function(){return a&&s},enumerable:!0}),Object.defineProperty(p,"isBiometricTokenSaved",{get:function(){return c},enumerable:!0}),Object.defineProperty(p,"deviceId",{get:function(){return l||""},enumerable:!0});var u={callbacks:[]},d=!1,b=!1,f=!1;function g(){if(le("7.2"))return 1;console.warn("[Telegram.WebApp] BiometricManager is not supported in version "+v)}function _(){if(!o)throw console.error("[Telegram.WebApp] BiometricManager should be inited before using."),Error("WebAppBiometricManagerNotInited");return 1}return k.onEvent("biometry_info_received",function(e,t){o=!0,c=t.available?(n=!0,i=t.type||"unknown",t.access_requested?(a=!0,s=!!t.access_granted,!!t.token_saved):s=a=!1):(n=!1,s=a=!(i="unknown"));if(l=t.device_id||"",0<u.callbacks.length){for(var r=0;r<u.callbacks.length;r++)(0,u.callbacks[r])();u.callbacks=[]}d&&(t=d,d=!1,t.callback&&t.callback(s));x("biometricManagerUpdated")}),k.onEvent("biometry_auth_requested",function(e,t){var r="authorized"==t.status,o=t.token||"";b&&(t=b,b=!1,t.callback&&t.callback(r,r?o:null));x("biometricAuthRequested",r?{isAuthenticated:!0,biometricToken:o}:{isAuthenticated:!1})}),k.onEvent("biometry_token_updated",function(e,t){var r=!1;n&&a&&("updated"==t.status?r=c=!0:"removed"==t.status&&(r=!(c=!1)));f&&(t=f,f=!1,t.callback&&t.callback(r));x("biometricTokenUpdated",{isUpdated:r})}),p.init=function(e){return g()&&(o||(e&&u.callbacks.push(e),k.postEvent("web_app_biometry_get_info",!1))),p},p.requestAccess=function(e,t){if(!g())return p;if(_(),!n)throw console.error("[Telegram.WebApp] Biometrics is not available on this device."),Error("WebAppBiometricManagerBiometricsNotAvailable");if(d)throw console.error("[Telegram.WebApp] Access is already requested"),Error("WebAppBiometricManagerAccessRequested");var r={};if(void 0!==e.reason){e=S(e.reason);if(128<e.length)throw console.error("[Telegram.WebApp] Biometric reason is too long",e),Error("WebAppBiometricRequestAccessParamInvalid");0<e.length&&(r.reason=e)}return d={callback:t},k.postEvent("web_app_biometry_request_access",!1,r),p},p.authenticate=function(e,t){if(!g())return p;if(_(),!n)throw console.error("[Telegram.WebApp] Biometrics is not available on this device."),Error("WebAppBiometricManagerBiometricsNotAvailable");if(!s)throw console.error("[Telegram.WebApp] Biometric access was not granted by the user."),Error("WebAppBiometricManagerBiometricAccessNotGranted");if(b)throw console.error("[Telegram.WebApp] Authentication request is already in progress."),Error("WebAppBiometricManagerAuthenticationRequested");var r={};if(void 0!==e.reason){e=S(e.reason);if(128<e.length)throw console.error("[Telegram.WebApp] Biometric reason is too long",e),Error("WebAppBiometricRequestAccessParamInvalid");0<e.length&&(r.reason=e)}return b={callback:t},k.postEvent("web_app_biometry_request_auth",!1,r),p},p.updateBiometricToken=function(e,t){if(!g())return p;if(1024<(e=e||"").length)throw console.error("[Telegram.WebApp] Token is too long",e),Error("WebAppBiometricManagerTokenInvalid");if(_(),!n)throw console.error("[Telegram.WebApp] Biometrics is not available on this device."),Error("WebAppBiometricManagerBiometricsNotAvailable");if(!s)throw console.error("[Telegram.WebApp] Biometric access was not granted by the user."),Error("WebAppBiometricManagerBiometricAccessNotGranted");if(f)throw console.error("[Telegram.WebApp] Token request is already in progress."),Error("WebAppBiometricManagerTokenUpdateRequested");return f={callback:t},k.postEvent("web_app_biometry_update_token",!1,{token:e}),p},p.openSettings=function(){if(!g())return p;if(_(),!n)throw console.error("[Telegram.WebApp] Biometrics is not available on this device."),Error("WebAppBiometricManagerBiometricsNotAvailable");if(!a)throw console.error("[Telegram.WebApp] Biometric access was not requested yet."),Error("WebAppBiometricManagerBiometricsAccessNotRequested");return s?console.warn("[Telegram.WebApp] Biometric access was granted by the user, no need to go to settings."):k.postEvent("web_app_biometry_open_settings",!1),p},p}(),A=function(){var o=!1,n=!1,i=!1,a=!1,t={};Object.defineProperty(t,"isInited",{get:function(){return o},enumerable:!0}),Object.defineProperty(t,"isLocationAvailable",{get:function(){return o&&n},enumerable:!0}),Object.defineProperty(t,"isAccessRequested",{get:function(){return i},enumerable:!0}),Object.defineProperty(t,"isAccessGranted",{get:function(){return i&&a},enumerable:!0});var s={callbacks:[]},r={callbacks:[]};function c(e){if(0<r.callbacks.length){for(var t=0;t<r.callbacks.length;t++)(0,r.callbacks[t])(e);r.callbacks=[]}null!==e&&x("locationRequested",{locationData:e})}function l(){if(le("8.0"))return 1;console.warn("[Telegram.WebApp] LocationManager is not supported in version "+v)}function p(){if(!o)throw console.error("[Telegram.WebApp] LocationManager should be inited before using."),Error("WebAppLocationManagerNotInited");return 1}return k.onEvent("location_checked",function(e,t){o=!0,a=t.available?(n=!0,t.access_requested?(i=!0,!!t.access_granted):i=!1):i=n=!1;if(0<s.callbacks.length){for(var r=0;r<s.callbacks.length;r++)(0,s.callbacks[r])();s.callbacks=[]}x("locationManagerUpdated")}),k.onEvent("location_requested",function(e,t){{var r;t.available?(r={latitude:t.latitude,longitude:t.longitude,altitude:null,course:null,speed:null,horizontal_accuracy:null,vertical_accuracy:null,course_accuracy:null,speed_accuracy:null},void 0!==t.altitude&&null!==t.altitude&&(r.altitude=t.altitude),void 0!==t.course&&null!==t.course&&(r.course=t.course%360),void 0!==t.speed&&null!==t.speed&&(r.speed=t.speed),void 0!==t.horizontal_accuracy&&null!==t.horizontal_accuracy&&(r.horizontal_accuracy=t.horizontal_accuracy),void 0!==t.vertical_accuracy&&null!==t.vertical_accuracy&&(r.vertical_accuracy=t.vertical_accuracy),void 0!==t.course_accuracy&&null!==t.course_accuracy&&(r.course_accuracy=t.course_accuracy),void 0!==t.speed_accuracy&&null!==t.speed_accuracy&&(r.speed_accuracy=t.speed_accuracy)):r=null}t.available&&n&&i&&a?c(r):(s.callbacks.push(function(){c(r)}),k.postEvent("web_app_check_location",!1))}),t.init=function(e){return l()&&(o||(e&&s.callbacks.push(e),k.postEvent("web_app_check_location",!1))),t},t.getLocation=function(e){if(!l())return t;if(p(),!n)throw console.error("[Telegram.WebApp] Location is not available on this device."),Error("WebAppLocationManagerLocationNotAvailable");return r.callbacks.push(e),k.postEvent("web_app_request_location"),t},t.openSettings=function(){if(!l())return t;if(p(),!n)throw console.error("[Telegram.WebApp] Location is not available on this device."),Error("WebAppLocationManagerLocationNotAvailable");if(!i)throw console.error("[Telegram.WebApp] Location access was not requested yet."),Error("WebAppLocationManagerLocationAccessNotRequested");return a?console.warn("[Telegram.WebApp] Location access was granted by the user, no need to go to settings."):k.postEvent("web_app_open_location_settings",!1),t},t}(),Re=(Be=!1,Ne=je=Me=null,Ue=[],Le=[],De={},Object.defineProperty(De,"isStarted",{get:function(){return Be},enumerable:!0}),Object.defineProperty(De,"x",{get:function(){return Me},enumerable:!0}),Object.defineProperty(De,"y",{get:function(){return je},enumerable:!0}),Object.defineProperty(De,"z",{get:function(){return Ne},enumerable:!0}),k.onEvent("accelerometer_started",function(e,t){if(Be=!0,0<Ue.length){for(var r=0;r<Ue.length;r++)(0,Ue[r])(!0);Ue=[]}x("accelerometerStarted")}),k.onEvent("accelerometer_stopped",function(e,t){if(Be=!1,0<Le.length){for(var r=0;r<Le.length;r++)(0,Le[r])(!0);Le=[]}x("accelerometerStopped")}),k.onEvent("accelerometer_changed",function(e,t){Me=t.x,je=t.y,Ne=t.z,x("accelerometerChanged")}),k.onEvent("accelerometer_failed",function(e,t){if(0<Ue.length){for(var r=0;r<Ue.length;r++)(0,Ue[r])(!1);Ue=[]}x("accelerometerFailed",{error:t.error})}),De.start=function(e,t){if(e=e||{},!He())return De;var r={},e=parseInt(e.refresh_rate||1e3);return isNaN(e)||e<20||1e3<e?console.warn("[Telegram.WebApp] Accelerometer refresh_rate is invalid",e):r.refresh_rate=e,t&&Ue.push(t),k.postEvent("web_app_start_accelerometer",!1,r),De},De.stop=function(e){return He()&&(e&&Le.push(e),k.postEvent("web_app_stop_accelerometer")),De},De);function He(){if(le("8.0"))return 1;console.warn("[Telegram.WebApp] Accelerometer is not supported in version "+v)}var Fe,Ve,ze,Ge,Je,Qe,Ke,$e,_e=(Ge=ze=Ve=null,Je=Fe=!1,Qe=[],Ke=[],$e={},Object.defineProperty($e,"isStarted",{get:function(){return Fe},enumerable:!0}),Object.defineProperty($e,"absolute",{get:function(){return Je},enumerable:!0}),Object.defineProperty($e,"alpha",{get:function(){return Ve},enumerable:!0}),Object.defineProperty($e,"beta",{get:function(){return ze},enumerable:!0}),Object.defineProperty($e,"gamma",{get:function(){return Ge},enumerable:!0}),k.onEvent("device_orientation_started",function(e,t){if(Fe=!0,0<Qe.length){for(var r=0;r<Qe.length;r++)(0,Qe[r])(!0);Qe=[]}x("deviceOrientationStarted")}),k.onEvent("device_orientation_stopped",function(e,t){if(Fe=!1,0<Ke.length){for(var r=0;r<Ke.length;r++)(0,Ke[r])(!0);Ke=[]}x("deviceOrientationStopped")}),k.onEvent("device_orientation_changed",function(e,t){Je=!!t.absolute,Ve=t.alpha,ze=t.beta,Ge=t.gamma,x("deviceOrientationChanged")}),k.onEvent("device_orientation_failed",function(e,t){if(0<Qe.length){for(var r=0;r<Qe.length;r++)(0,Qe[r])(!1);Qe=[]}x("deviceOrientationFailed",{error:t.error})}),$e.start=function(e,t){if(e=e||{},!Xe())return $e;var r={},o=parseInt(e.refresh_rate||1e3);return isNaN(o)||o<20||1e3<o?console.warn("[Telegram.WebApp] DeviceOrientation refresh_rate is invalid",o):r.refresh_rate=o,r.need_absolute=!!e.need_absolute,t&&Qe.push(t),k.postEvent("web_app_start_device_orientation",!1,r),$e},$e.stop=function(e){return Xe()&&(e&&Ke.push(e),k.postEvent("web_app_stop_device_orientation")),$e},$e);function Xe(){if(le("8.0"))return 1;console.warn("[Telegram.WebApp] DeviceOrientation is not supported in version "+v)}var Ye,Ze,et,tt,rt,ot,nt,it=(Ye=!1,tt=et=Ze=null,rt=[],ot=[],nt={},Object.defineProperty(nt,"isStarted",{get:function(){return Ye},enumerable:!0}),Object.defineProperty(nt,"x",{get:function(){return Ze},enumerable:!0}),Object.defineProperty(nt,"y",{get:function(){return et},enumerable:!0}),Object.defineProperty(nt,"z",{get:function(){return tt},enumerable:!0}),k.onEvent("gyroscope_started",function(e,t){if(Ye=!0,0<rt.length){for(var r=0;r<rt.length;r++)(0,rt[r])(!0);rt=[]}x("gyroscopeStarted")}),k.onEvent("gyroscope_stopped",function(e,t){if(Ye=!1,0<ot.length){for(var r=0;r<ot.length;r++)(0,ot[r])(!0);ot=[]}x("gyroscopeStopped")}),k.onEvent("gyroscope_changed",function(e,t){Ze=t.x,et=t.y,tt=t.z,x("gyroscopeChanged")}),k.onEvent("gyroscope_failed",function(e,t){if(0<rt.length){for(var r=0;r<rt.length;r++)(0,rt[r])(!1);rt=[]}x("gyroscopeFailed",{error:t.error})}),nt.start=function(e,t){if(e=e||{},!at())return nt;var r={},e=parseInt(e.refresh_rate||1e3);return isNaN(e)||e<20||1e3<e?console.warn("[Telegram.WebApp] Gyroscope refresh_rate is invalid",e):r.refresh_rate=e,t&&rt.push(t),k.postEvent("web_app_start_gyroscope",!1,r),nt},nt.stop=function(e){return at()&&(e&&ot.push(e),k.postEvent("web_app_stop_gyroscope")),nt},nt);function at(){if(le("8.0"))return 1;console.warn("[Telegram.WebApp] Gyroscope is not supported in version "+v)}var st={},ct=X=!1,lt=!1,pt=!1,ut=!1;function dt(e,t,r){if(!le("6.9"))throw console.error("[Telegram.WebApp] Method invokeCustomMethod is not supported in version "+v),Error("WebAppMethodUnsupported");var o=U(16),t={req_id:o,method:e,params:t||{}};N[o]={callback:r},k.postEvent("web_app_invoke_custom_method",!1,t)}window.Telegram||(window.Telegram={}),Object.defineProperty(r,"initData",{get:function(){return e},enumerable:!0}),Object.defineProperty(r,"initDataUnsafe",{get:function(){return t},enumerable:!0}),Object.defineProperty(r,"version",{get:function(){return v},enumerable:!0}),Object.defineProperty(r,"platform",{get:function(){return i},enumerable:!0}),Object.defineProperty(r,"colorScheme",{get:function(){return n},enumerable:!0}),Object.defineProperty(r,"themeParams",{get:function(){return P},enumerable:!0}),Object.defineProperty(r,"isExpanded",{get:function(){return R},enumerable:!0}),Object.defineProperty(r,"viewportHeight",{get:function(){return(!1===L?window.innerHeight:L)-be},enumerable:!0}),Object.defineProperty(r,"viewportStableHeight",{get:function(){return(!1===D?window.innerHeight:D)-be},enumerable:!0}),Object.defineProperty(r,"safeAreaInset",{get:function(){return F},enumerable:!0}),Object.defineProperty(r,"contentSafeAreaInset",{get:function(){return V},enumerable:!0}),Object.defineProperty(r,"isClosingConfirmationEnabled",{set:function(e){e=e,le("6.2")?(z=!!e,k.postEvent("web_app_setup_closing_behavior",!1,{need_confirmation:z})):console.warn("[Telegram.WebApp] Closing confirmation is not supported in version "+v)},get:function(){return z},enumerable:!0}),Object.defineProperty(r,"isVerticalSwipesEnabled",{set:function(e){e=e,le("7.7")?(G=!!e,k.postEvent("web_app_setup_swipe_behavior",!1,{allow_vertical_swipe:G})):console.warn("[Telegram.WebApp] Changing swipes behavior is not supported in version "+v)},get:function(){return G},enumerable:!0}),Object.defineProperty(r,"isFullscreen",{get:function(){return s},enumerable:!0}),Object.defineProperty(r,"isOrientationLocked",{set:function(e){e=e,le("8.0")?(B(e),k.postEvent("web_app_toggle_orientation_lock",!1,{locked:c})):console.warn("[Telegram.WebApp] Orientation locking is not supported in version "+v)},get:function(){return c},enumerable:!0}),Object.defineProperty(r,"isActive",{get:function(){return a},enumerable:!0}),Object.defineProperty(r,"headerColor",{set:function(e){!function(e){if(le("6.1")){le("6.9")||(P.bg_color&&P.bg_color==e?e="bg_color":P.secondary_bg_color&&P.secondary_bg_color==e&&(e="secondary_bg_color"));var t=null,r=null;if("bg_color"==e||"secondary_bg_color"==e)r=e;else if(le("6.9")&&!(t=ce(e)))throw console.error("[Telegram.WebApp] Header color format is invalid",e),Error("WebAppHeaderColorInvalid");if(!le("6.9")&&"bg_color"!=r&&"secondary_bg_color"!=r)throw console.error("[Telegram.WebApp] Header color key should be one of Telegram.WebApp.themeParams.bg_color, Telegram.WebApp.themeParams.secondary_bg_color, 'bg_color', 'secondary_bg_color'",e),Error("WebAppHeaderColorKeyInvalid");u=r,d=t,ee()}else console.warn("[Telegram.WebApp] Header color is not supported in version "+v)}(e)},get:function(){return"secondary_bg_color"==u?P.secondary_bg_color:"bg_color"==u?P.bg_color:d},enumerable:!0}),Object.defineProperty(r,"backgroundColor",{set:function(e){!function(e){if(le("6.1")){var t;if("bg_color"==e||"secondary_bg_color"==e)t=e;else if(!(t=ce(e)))throw console.error("[Telegram.WebApp] Background color format is invalid",e),Error("WebAppBackgroundColorInvalid");l=t,oe()}else console.warn("[Telegram.WebApp] Background color is not supported in version "+v)}(e)},get:te,enumerable:!0}),Object.defineProperty(r,"bottomBarColor",{set:function(e){!function(e){if(le("7.10")){var t;if("bg_color"==e||"secondary_bg_color"==e||"bottom_bar_bg_color"==e)t=e;else if(!(t=ce(e)))throw console.error("[Telegram.WebApp] Bottom bar color format is invalid",e),Error("WebAppBottomBarColorInvalid");ne=t,se(),window.Telegram.WebApp.SecondaryButton.setParams({})}else console.warn("[Telegram.WebApp] Bottom bar color is not supported in version "+v)}(e)},get:ie,enumerable:!0}),Object.defineProperty(r,"BackButton",{value:pe,enumerable:!0}),Object.defineProperty(r,"MainButton",{value:he,enumerable:!0}),Object.defineProperty(r,"SecondaryButton",{value:we,enumerable:!0}),Object.defineProperty(r,"SettingsButton",{value:ye,enumerable:!0}),Object.defineProperty(r,"HapticFeedback",{value:Ae,enumerable:!0}),Object.defineProperty(r,"CloudStorage",{value:ke,enumerable:!0}),Object.defineProperty(r,"DeviceStorage",{value:Se,enumerable:!0}),Object.defineProperty(r,"SecureStorage",{value:g,enumerable:!0}),Object.defineProperty(r,"BiometricManager",{value:h,enumerable:!0}),Object.defineProperty(r,"Accelerometer",{value:Re,enumerable:!0}),Object.defineProperty(r,"DeviceOrientation",{value:_e,enumerable:!0}),Object.defineProperty(r,"Gyroscope",{value:it,enumerable:!0}),Object.defineProperty(r,"LocationManager",{value:A,enumerable:!0}),r.isVersionAtLeast=le,r.setHeaderColor=function(e){r.headerColor=e},r.setBackgroundColor=function(e){r.backgroundColor=e},r.setBottomBarColor=function(e){r.bottomBarColor=e},r.enableClosingConfirmation=function(){r.isClosingConfirmationEnabled=!0},r.disableClosingConfirmation=function(){r.isClosingConfirmationEnabled=!1},r.enableVerticalSwipes=function(){r.isVerticalSwipesEnabled=!0},r.disableVerticalSwipes=function(){r.isVerticalSwipesEnabled=!1},r.lockOrientation=function(){r.isOrientationLocked=!0},r.unlockOrientation=function(){r.isOrientationLocked=!1},r.requestFullscreen=function(){if(!le("8.0"))throw console.error("[Telegram.WebApp] Method requestFullscreen is not supported in version "+v),Error("WebAppMethodUnsupported");k.postEvent("web_app_request_fullscreen")},r.exitFullscreen=function(){if(!le("8.0"))throw console.error("[Telegram.WebApp] Method exitFullscreen is not supported in version "+v),Error("WebAppMethodUnsupported");k.postEvent("web_app_exit_fullscreen")},r.addToHomeScreen=function(){if(!le("8.0"))throw console.error("[Telegram.WebApp] Method addToHomeScreen is not supported in version "+v),Error("WebAppMethodUnsupported");k.postEvent("web_app_add_to_home_screen")},r.checkHomeScreenStatus=function(e){if(!le("8.0"))throw console.error("[Telegram.WebApp] Method checkHomeScreenStatus is not supported in version "+v),Error("WebAppMethodUnsupported");e&&J.push(e),k.postEvent("web_app_check_home_screen")},r.onEvent=function(e,t){O(e,t)},r.offEvent=function(e,t){I(e,t)},r.sendData=function(e){if(!e||!e.length)throw console.error("[Telegram.WebApp] Data is required",e),Error("WebAppDataInvalid");if(4096<function(e){if(window.Blob)try{return new Blob([e]).size}catch(e){}for(var t=e.length,r=e.length-1;0<=r;r--){var o=e.charCodeAt(r);127<o&&o<=2047?t++:2047<o&&o<=65535&&(t+=2),56320<=o&&o<=57343&&r--}return t}(e))throw console.error("[Telegram.WebApp] Data is too long",e),Error("WebAppDataInvalid");k.postEvent("web_app_data_send",!1,{data:e})},r.switchInlineQuery=function(e,t){if(!le("6.6"))throw console.error("[Telegram.WebApp] Method switchInlineQuery is not supported in version "+v),Error("WebAppMethodUnsupported");if(!T.tgWebAppBotInline)throw console.error("[Telegram.WebApp] Inline mode is disabled for this bot. Read more about inline mode: https://core.telegram.org/bots/inline"),Error("WebAppInlineModeDisabled");if(256<(e=e||"").length)throw console.error("[Telegram.WebApp] Inline query is too long",e),Error("WebAppInlineQueryInvalid");var r=[];if(t){if(!Array.isArray(t))throw console.error("[Telegram.WebApp] Choose chat types should be an array",t),Error("WebAppInlineChooseChatTypesInvalid");for(var o={users:1,bots:1,groups:1,channels:1},n=0;n<t.length;n++){var i=t[n];if(!o[i])throw console.error("[Telegram.WebApp] Choose chat type is invalid",i),Error("WebAppInlineChooseChatTypeInvalid");2!=o[i]&&(o[i]=2,r.push(i))}}k.postEvent("web_app_switch_inline_query",!1,{query:e,chat_types:r})},r.openLink=function(e,t){var r=document.createElement("A");if(r.href=e,"http:"!=r.protocol&&"https:"!=r.protocol)throw console.error("[Telegram.WebApp] Url protocol is not supported",e),Error("WebAppTgUrlInvalid");e=r.href;t=t||{},le("6.1")?(r={url:e},le("6.4")&&t.try_instant_view&&(r.try_instant_view=!0),le("7.6")&&t.try_browser&&(r.try_browser=t.try_browser),k.postEvent("web_app_open_link",!1,r)):window.open(e,"_blank")},r.openTelegramLink=function(e,t){var r=document.createElement("A");if(r.href=e,"http:"!=r.protocol&&"https:"!=r.protocol)throw console.error("[Telegram.WebApp] Url protocol is not supported",e),Error("WebAppTgUrlInvalid");if("t.me"!=r.hostname)throw console.error("[Telegram.WebApp] Url host is not supported",e),Error("WebAppTgUrlInvalid");e=r.pathname+r.search;t=t||{},o||le("6.1")?(r={path_full:e},t.force_request&&(r.force_request=!0),k.postEvent("web_app_open_tg_link",!1,r)):location.href="https://t.me"+e},r.openInvoice=function(e,t){var r,o,n=document.createElement("A");if(n.href=e,"http:"!=n.protocol&&"https:"!=n.protocol||"t.me"!=n.hostname||!(r=n.pathname.match(/^\/(\$|invoice\/)([A-Za-z0-9\-_=]+)$/))||!(o=r[2]))throw console.error("[Telegram.WebApp] Invoice url is invalid",e),Error("WebAppInvoiceUrlInvalid");if(!le("6.1"))throw console.error("[Telegram.WebApp] Method openInvoice is not supported in version "+v),Error("WebAppMethodUnsupported");if(st[o])throw console.error("[Telegram.WebApp] Invoice is already opened"),Error("WebAppInvoiceOpened");st[o]={url:e,callback:t},k.postEvent("web_app_open_invoice",!1,{slug:o})},r.showPopup=function(e,t){if(!le("6.2"))throw console.error("[Telegram.WebApp] Method showPopup is not supported in version "+v),Error("WebAppMethodUnsupported");if(X)throw console.error("[Telegram.WebApp] Popup is already opened"),Error("WebAppPopupOpened");var r,o="",n=[],i={};if(void 0!==e.title){if(64<(r=S(e.title)).length)throw console.error("[Telegram.WebApp] Popup title is too long",r),Error("WebAppPopupParamInvalid");0<r.length&&(i.title=r)}if(void 0!==e.message&&(o=S(e.message)),!o.length)throw console.error("[Telegram.WebApp] Popup message is required",e.message),Error("WebAppPopupParamInvalid");if(256<o.length)throw console.error("[Telegram.WebApp] Popup message is too long",o),Error("WebAppPopupParamInvalid");if(i.message=o,void 0!==e.buttons){if(!Array.isArray(e.buttons))throw console.error("[Telegram.WebApp] Popup buttons should be an array",e.buttons),Error("WebAppPopupParamInvalid");for(var a=0;a<e.buttons.length;a++){var s=e.buttons[a],c={},l="";if(void 0!==s.id&&64<(l=s.id.toString()).length)throw console.error("[Telegram.WebApp] Popup button id is too long",l),Error("WebAppPopupParamInvalid");c.id=l;var p=s.type;if(void 0===p&&(p="default"),c.type=p,"ok"!=p&&"close"!=p&&"cancel"!=p){if("default"!=p&&"destructive"!=p)throw console.error("[Telegram.WebApp] Popup button type is invalid",p),Error("WebAppPopupParamInvalid");l="";if(void 0!==s.text&&(l=S(s.text)),!l.length)throw console.error("[Telegram.WebApp] Popup button text is required for type "+p,s.text),Error("WebAppPopupParamInvalid");if(64<l.length)throw console.error("[Telegram.WebApp] Popup button text is too long",l),Error("WebAppPopupParamInvalid");c.text=l}n.push(c)}}else n.push({id:"",type:"close"});if(n.length<1)throw console.error("[Telegram.WebApp] Popup should have at least one button"),Error("WebAppPopupParamInvalid");if(3<n.length)throw console.error("[Telegram.WebApp] Popup should not have more than 3 buttons"),Error("WebAppPopupParamInvalid");i.buttons=n,X={callback:t},k.postEvent("web_app_open_popup",!1,i)},r.showAlert=function(e,t){r.showPopup({message:e},t?function(){t()}:null)},r.showConfirm=function(e,t){r.showPopup({message:e,buttons:[{type:"ok",id:"ok"},{type:"cancel"}]},t?function(e){t("ok"==e)}:null)},r.showScanQrPopup=function(e,t){if(!le("6.4"))throw console.error("[Telegram.WebApp] Method showScanQrPopup is not supported in version "+v),Error("WebAppMethodUnsupported");if(ct)throw console.error("[Telegram.WebApp] Popup is already opened"),Error("WebAppScanQrPopupOpened");var r,o={};if(void 0!==e.text){if(64<(r=S(e.text)).length)throw console.error("[Telegram.WebApp] Scan QR popup text is too long",r),Error("WebAppScanQrPopupParamInvalid");0<r.length&&(o.text=r)}ct={callback:t},k.postEvent("web_app_open_scan_qr_popup",!1,o)},r.closeScanQrPopup=function(){if(!le("6.4"))throw console.error("[Telegram.WebApp] Method closeScanQrPopup is not supported in version "+v),Error("WebAppMethodUnsupported");ct=!1,k.postEvent("web_app_close_scan_qr_popup",!1)},r.readTextFromClipboard=function(e){if(!le("6.4"))throw console.error("[Telegram.WebApp] Method readTextFromClipboard is not supported in version "+v),Error("WebAppMethodUnsupported");var t=U(16),r={req_id:t};N[t]={callback:e},k.postEvent("web_app_read_text_from_clipboard",!1,r)},r.requestWriteAccess=function(e){if(!le("6.9"))throw console.error("[Telegram.WebApp] Method requestWriteAccess is not supported in version "+v),Error("WebAppMethodUnsupported");if(lt)throw console.error("[Telegram.WebApp] Write access is already requested"),Error("WebAppWriteAccessRequested");lt={callback:e},k.postEvent("web_app_request_write_access")},r.requestContact=function(e){if(!le("6.9"))throw console.error("[Telegram.WebApp] Method requestContact is not supported in version "+v),Error("WebAppMethodUnsupported");if(pt)throw console.error("[Telegram.WebApp] Contact is already requested"),Error("WebAppContactRequested");pt={callback:e},k.postEvent("web_app_request_phone")},r.downloadFile=function(e,t){if(!le("8.0"))throw console.error("[Telegram.WebApp] Method downloadFile is not supported in version "+v),Error("WebAppMethodUnsupported");if(ut)throw console.error("[Telegram.WebApp] Popup is already opened"),Error("WebAppDownloadFilePopupOpened");var r=document.createElement("A"),o={};if(!e||!e.url||!e.url.length)throw console.error("[Telegram.WebApp] Url is required"),Error("WebAppDownloadFileParamInvalid");if(r.href=e.url,"https:"!=r.protocol)throw console.error("[Telegram.WebApp] Url protocol is not supported",url),Error("WebAppDownloadFileParamInvalid");if(o.url=r.href,!e||!e.file_name||!e.file_name.length)throw console.error("[Telegram.WebApp] File name is required"),Error("WebAppDownloadFileParamInvalid");o.file_name=e.file_name,ut={callback:t},k.postEvent("web_app_request_file_download",!1,o)},r.shareToStory=function(e,t){if(t=t||{},!le("7.8"))throw console.error("[Telegram.WebApp] Method shareToStory is not supported in version "+v),Error("WebAppMethodUnsupported");var r=document.createElement("A");if(r.href=e,"http:"!=r.protocol&&"https:"!=r.protocol)throw console.error("[Telegram.WebApp] Media url protocol is not supported",url),Error("WebAppMediaUrlInvalid");var o={};if(o.media_url=r.href,void 0!==t.text){e=S(t.text);if(2048<e.length)throw console.error("[Telegram.WebApp] Text is too long",e),Error("WebAppShareToStoryParamInvalid");0<e.length&&(o.text=e)}if(void 0!==t.widget_link){if(t.widget_link=t.widget_link||{},r.href=t.widget_link.url,"http:"!=r.protocol&&"https:"!=r.protocol)throw console.error("[Telegram.WebApp] Link protocol is not supported",url),Error("WebAppShareToStoryParamInvalid");r={url:r.href};if(void 0!==t.widget_link.name){t=S(t.widget_link.name);if(48<t.length)throw console.error("[Telegram.WebApp] Link name is too long",t),Error("WebAppShareToStoryParamInvalid");0<t.length&&(r.name=t)}o.widget_link=r}k.postEvent("web_app_share_to_story",!1,o)},r.shareMessage=function(e,t){if(!le("8.0"))throw console.error("[Telegram.WebApp] Method shareMessage is not supported in version "+v),Error("WebAppMethodUnsupported");if(Q)throw console.error("[Telegram.WebApp] Share message is already opened"),Error("WebAppShareMessageOpened");Q={callback:t},k.postEvent("web_app_send_prepared_message",!1,{id:e})},r.setEmojiStatus=function(e,t,r){if(t=t||{},!le("8.0"))throw console.error("[Telegram.WebApp] Method setEmojiStatus is not supported in version "+v),Error("WebAppMethodUnsupported");var o={};if(o.custom_emoji_id=e,void 0!==t.duration&&(o.duration=t.duration),K)throw console.error("[Telegram.WebApp] Emoji status is already requested"),Error("WebAppEmojiStatusRequested");K={callback:r},k.postEvent("web_app_set_emoji_status",!1,o)},r.requestEmojiStatusAccess=function(e){if(!le("8.0"))throw console.error("[Telegram.WebApp] Method requestEmojiStatusAccess is not supported in version "+v),Error("WebAppMethodUnsupported");if($)throw console.error("[Telegram.WebApp] Emoji status permission is already requested"),Error("WebAppEmojiStatusAccessRequested");$={callback:e},k.postEvent("web_app_request_emoji_status_access")},r.invokeCustomMethod=function(e,t,r){dt(e,t,r)},r.hideKeyboard=function(){k.postEvent("web_app_hide_keyboard")},r.ready=function(){k.postEvent("web_app_ready")},r.expand=function(){k.postEvent("web_app_expand")},r.close=function(e){e=e||{};var t={};le("7.6")&&e.return_back&&(t.return_back=!0),k.postEvent("web_app_close",!1,t)},window.Telegram.WebApp=r,ee(),oe(),se(),H(),T.tgWebAppShowSettings&&ye.show(),window.addEventListener("resize",W),o&&document.addEventListener("click",function(e){if(!e.metaKey&&!e.ctrlKey){for(var t=e.target;"A"!=t.tagName&&t.parentNode;)t=t.parentNode;"A"!=t.tagName||"_blank"==t.target||"http:"!=t.protocol&&"https:"!=t.protocol||"t.me"!=t.hostname||(r.openTelegramLink(t.href),e.preventDefault())}}),k.onEvent("theme_changed",function(e,t){t.theme_params&&(M(t.theme_params),window.Telegram.WebApp.MainButton.setParams({}),window.Telegram.WebApp.SecondaryButton.setParams({}),ee(),oe(),se(),x("themeChanged"))}),k.onEvent("viewport_changed",function(e,t){t.height&&(window.removeEventListener("resize",W),H(t))}),k.onEvent("safe_area_changed",function(e,t){t&&(void 0!==(t=t)&&(void 0!==t.top&&(F.top=t.top),void 0!==t.bottom&&(F.bottom=t.bottom),void 0!==t.left&&(F.left=t.left),void 0!==t.right&&(F.right=t.right),x("safeAreaChanged")),q("safe-area-inset-top",F.top+"px"),q("safe-area-inset-bottom",F.bottom+"px"),q("safe-area-inset-left",F.left+"px"),q("safe-area-inset-right",F.right+"px"))}),k.onEvent("content_safe_area_changed",function(e,t){t&&(void 0!==(t=t)&&(void 0!==t.top&&(V.top=t.top),void 0!==t.bottom&&(V.bottom=t.bottom),void 0!==t.left&&(V.left=t.left),void 0!==t.right&&(V.right=t.right),x("contentSafeAreaChanged")),q("content-safe-area-inset-top",V.top+"px"),q("content-safe-area-inset-bottom",V.bottom+"px"),q("content-safe-area-inset-left",V.left+"px"),q("content-safe-area-inset-right",V.right+"px"))}),k.onEvent("visibility_changed",function(e,t){t.is_visible?(a=!0,x("activated")):(a=!1,x("deactivated"))}),k.onEvent("invoice_closed",function(e,t){var r;t.slug&&st[t.slug]&&(r=st[t.slug],delete st[t.slug],r.callback&&r.callback(t.status),x("invoiceClosed",{url:r.url,status:t.status}))}),k.onEvent("popup_closed",function(e,t){var r,o;X&&(r=X,X=!1,o=null,void 0!==t.button_id&&(o=t.button_id),r.callback&&r.callback(o),x("popupClosed",{button_id:o}))}),k.onEvent("qr_text_received",function(e,t){var r;ct&&(r=null,void 0!==t.data&&(r=t.data),ct.callback&&ct.callback(r)&&(ct=!1,k.postEvent("web_app_close_scan_qr_popup",!1)),x("qrTextReceived",{data:r}))}),k.onEvent("scan_qr_popup_closed",function(e,t){ct=!1,x("scanQrPopupClosed")}),k.onEvent("clipboard_text_received",function(e,t){var r,o;t.req_id&&N[t.req_id]&&(r=N[t.req_id],delete N[t.req_id],o=null,void 0!==t.data&&(o=t.data),r.callback&&r.callback(o),x("clipboardTextReceived",{data:o}))}),k.onEvent("write_access_requested",function(e,t){var r;lt&&(r=lt,lt=!1,r.callback&&r.callback("allowed"==t.status),x("writeAccessRequested",{status:t.status}))}),k.onEvent("phone_requested",function(e,t){var o,n,i,r,a,s,c,l;pt&&(o=pt,pt=!1,n="sent"==t.status,i={status:t.status},n?(r=function(e){if(e&&e.length)for(var t in i.response=e,i.responseUnsafe=p.urlParseQueryString(e),i.responseUnsafe){var r=i.responseUnsafe[t];try{("{"==r.substr(0,1)&&"}"==r.substr(-1)||"["==r.substr(0,1)&&"]"==r.substr(-1))&&(i.responseUnsafe[t]=JSON.parse(r))}catch(e){}}o.callback&&o.callback(n,i),x("contactRequested",i)},s=0,c=function(){dt("getRequestedContact",{},function(e,t){t&&t.length?(clearTimeout(l),r(t)):(s+=50,a=setTimeout(c,s))})},l=setTimeout(function(){clearTimeout(a),r("")},3e3),c()):(o.callback&&o.callback(n,i),x("contactRequested",i)))}),k.onEvent("file_download_requested",function(e,t){var r;ut&&(r=ut,ut=!1,t="downloading"==t.status,r.callback&&r.callback(t),x("fileDownloadRequested",{status:t?"downloading":"cancelled"}))}),k.onEvent("custom_method_invoked",function(e,t){var r,o,n;t.req_id&&N[t.req_id]&&(r=N[t.req_id],delete N[t.req_id],n=o=null,void 0!==t.result&&(o=t.result),void 0!==t.error&&(n=t.error),r.callback&&r.callback(n,o))}),k.onEvent("fullscreen_changed",function(e,t){C(t.is_fullscreen),x("fullscreenChanged")}),k.onEvent("fullscreen_failed",function(e,t){"ALREADY_FULLSCREEN"!=t.error||s||C(!0),x("fullscreenFailed",{error:t.error})}),k.onEvent("home_screen_added",function(e,t){x("homeScreenAdded")}),k.onEvent("home_screen_checked",function(e,t){var r=t.status||"unknown";if(0<J.length){for(var o=0;o<J.length;o++)(0,J[o])(r);J=[]}x("homeScreenChecked",{status:r})}),k.onEvent("prepared_message_sent",function(e,t){var r;Q&&(r=Q,Q=!1,r.callback&&r.callback(!0),x("shareMessageSent"))}),k.onEvent("prepared_message_failed",function(e,t){var r;Q&&(r=Q,Q=!1,r.callback&&r.callback(!1),x("shareMessageFailed",{error:t.error}))}),k.onEvent("emoji_status_set",function(e,t){var r;K&&(r=K,K=!1,r.callback&&r.callback(!0),x("emojiStatusSet"))}),k.onEvent("emoji_status_failed",function(e,t){var r;K&&(r=K,K=!1,r.callback&&r.callback(!1),x("emojiStatusFailed",{error:t.error}))}),k.onEvent("emoji_status_access_requested",function(e,t){var r;$&&(r=$,$=!1,r.callback&&r.callback("allowed"==t.status),x("emojiStatusAccessRequested",{status:t.status}))}),k.postEvent("web_app_request_theme"),k.postEvent("web_app_request_viewport"),k.postEvent("web_app_request_safe_area"),k.postEvent("web_app_request_content_safe_area")}(); |