tweb/public/main.9301d44dacd78570346d.bundle.js.map
Eduard Kuzmenko 30b79bac6d Build
2021-07-19 21:03:19 +03:00

1 line
42 KiB
Plaintext

{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/helpers/userAgent.ts","webpack:///./src/helpers/dom/fixSafariStickyInput.ts","webpack:///./src/helpers/dom/cancelEvent.ts","webpack:///./src/helpers/dom/findUpClassName.ts","webpack:///./src/config/app.ts","webpack:///./src/helpers/dom/blurActiveElement.ts","webpack:///./src/helpers/dom/loadFonts.ts","webpack:///./src/helpers/emojiSupport.ts","webpack:///./src/index.ts"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","installedModules","10","jsonpScriptSrc","__webpack_require__","p","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","error","Error","script","loadScript","src","retries","onScriptComplete","document","createElement","charset","timeout","nc","setAttribute","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","cacheBust","Date","now","retryScript","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","this","oldJsonpFunction","slice","s","userAgent","navigator","isApple","search","isAndroid","toLowerCase","indexOf","isChromium","test","vendor","ctx","window","self","isAppleMobile","platform","maxTouchPoints","MSStream","isSafari","match","isFirefox","isMobileSafari","isMobile","fixSafariStickyInput","input","style","transform","focus","cancelEvent","originalEvent","stopPropagation","preventDefault","returnValue","cancelBubble","findUpClassName","el","className","closest","App","id","hash","version","langPackVersion","langPack","langPackCode","domains","baseDcId","isMainDomain","location","hostname","suffix","blurActiveElement","activeElement","blur","loadFonts","race","map","font","fonts","load","IS_EMOJI_SUPPORTED","addEventListener","Element","toggleAttribute","force","hasAttribute","removeAttribute","w","visualViewport","lastVH","setViewportVH","setVH","vh","rootScope","default","overlayIsActive","height","innerHeight","documentElement","setProperty","workerProxy","Proxy","Worker","construct","args","_","touchSupport","appStateManager","I18n","toggleResizeMode","tabId","isTouchSupported","removeEventListener","wasTabId","tagName","classList","contains","add","startY","capture","passive","onTouchMove","touch","touches","scrollable","y","scrolled","scrollTop","scrollHeight","clientHeight","nextScrollTop","Math","round","touchStart","perf","performance","langPromise","getCacheLangPack","state","getState","fadeInWhenFontsReady","elem","opacity","then","requestAnimationFrame","setThemeListener","appVersion","getLangPack","lang_code","log","authState","getElementById","pagePromise","querySelector","placeholder","prepend","append","cloneNode","meModule","pushModule","setAuthorized","forceUnsubscribe","mount","sentCode","authCode","ready","ripple","Array","from","getElementsByClassName","forEach"],"mappings":"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","file":"main.9301d44dacd78570346d.bundle.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t10: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + ({\"11\":\"npm.qr-code-styling\"}[chunkId]||chunkId) + \".\" + {\"0\":\"316b969873a5e2ae236e\",\"1\":\"abad2a4239dd087f54f1\",\"2\":\"b9d6b7228317eb2a0427\",\"3\":\"34697b311da0afa40369\",\"4\":\"ce83beb0ce1d5d99f24b\",\"5\":\"3a286a032005bada8615\",\"6\":\"ef3cabd15c6b19833f3d\",\"7\":\"16c3273d1cef55b3bdc1\",\"8\":\"bd5176fd5a3f309aba42\",\"9\":\"71d4ff1b851f156bd6f0\",\"11\":\"5fd7931c9f57350b2ca5\",\"12\":\"5fb212a201f60bc4a935\",\"13\":\"f0b27d519201c3d897b8\",\"14\":\"ff7f481451a1c540b82d\",\"15\":\"6aa7dec5ef1cd123c11f\",\"16\":\"7bb8a1f07b472797c47b\",\"17\":\"8ae5fcbd49a225e320b1\",\"18\":\"43480c9a8c2bff48880d\",\"19\":\"6ab6cfac6a40d6befd98\",\"20\":\"ff503dded960fe326d51\",\"21\":\"345a86de0598904ef2d1\",\"22\":\"4efd5d1d801ca23bda25\",\"23\":\"1ae04a8a86bf7fea1394\",\"24\":\"3813bb33c7a56b86800d\",\"25\":\"e68e0b5dc0c28de26862\",\"26\":\"7d849b3b3588f0217faf\",\"27\":\"561221e0dc278274760c\",\"28\":\"fd3eeb32db29557cb439\",\"29\":\"f7a55917b5cf4e65a2e5\",\"30\":\"ba632a8ae4a190c60db7\"}[chunkId] + \".chunk.js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tfunction loadScript(src, retries) {\n \t\t\t\t var script = document.createElement('script');\n \t\t\t\t var retryAttempt = 999999 - retries + 1;\n \t\t\t\t var retryAttemptString = '&retry-attempt=' + retryAttempt;\n \t\t\t\t var onScriptComplete;\n\n \t\t\t\t script.charset = 'utf-8';\n \t\t\t\t script.timeout = 120;\n \t\t\t\t if (__webpack_require__.nc) {\n \t\t\t\t script.setAttribute('nonce', __webpack_require__.nc);\n \t\t\t\t }\n \t\t\t\t script.src = src;\n\n \t\t\t\t onScriptComplete = function(event) {\n \t\t\t\t // avoid mem leaks in IE.\n \t\t\t\t script.onerror = script.onload = null;\n \t\t\t\t clearTimeout(timeout);\n \t\t\t\t var chunk = installedChunks[chunkId];\n \t\t\t\t if (chunk !== 0) {\n \t\t\t\t if (chunk) {\n \t\t\t\t if (retries === 0) {\n \t\t\t\t var errorType =\n \t\t\t\t event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t var realSrc = event && event.target && event.target.src;\n \t\t\t\t error.message =\n \t\t\t\t 'Loading chunk ' +\n \t\t\t\t chunkId +\n \t\t\t\t ' failed after 999999 retries.\\n(' +\n \t\t\t\t errorType +\n \t\t\t\t ': ' +\n \t\t\t\t realSrc +\n \t\t\t\t ')';\n \t\t\t\t error.name = 'ChunkLoadError';\n \t\t\t\t error.type = errorType;\n \t\t\t\t error.request = realSrc;\n \t\t\t\t chunk[1](error);\n \t\t\t\t installedChunks[chunkId] = undefined;\n \t\t\t\t } else {\n \t\t\t\t setTimeout(function() {\n \t\t\t\t var cacheBust = (function() {\n \t\t\t\t return Date.now();\n \t\t\t\t })();\n \t\t\t\t +retryAttemptString;\n \t\t\t\t var retryScript = loadScript(\n \t\t\t\t jsonpScriptSrc(chunkId) + '?' + cacheBust,\n \t\t\t\t retries - 1\n \t\t\t\t );\n \t\t\t\t document.head.appendChild(retryScript);\n \t\t\t\t }, 0);\n \t\t\t\t }\n \t\t\t\t } else {\n \t\t\t\t installedChunks[chunkId] = undefined;\n \t\t\t\t }\n \t\t\t\t }\n \t\t\t\t };\n \t\t\t\t var timeout = setTimeout(function() {\n \t\t\t\t onScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t }, 120000);\n \t\t\t\t script.onerror = script.onload = onScriptComplete;\n \t\t\t\t return script;\n \t\t\t\t}\n\n \t\t\t\tvar script = loadScript(jsonpScriptSrc(chunkId), 999999);\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = this[\"webpackJsonp\"] = this[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 8);\n","/*\r\n * https://github.com/morethanwords/tweb\r\n * Copyright (C) 2019-2021 Eduard Kuzmenko\r\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\r\n */\r\n\r\nexport const userAgent = navigator ? navigator.userAgent : null;\r\nexport const isApple = navigator.userAgent.search(/OS X|iPhone|iPad|iOS/i) !== -1;\r\nexport const isAndroid = navigator.userAgent.toLowerCase().indexOf('android') !== -1;\r\nexport const isChromium = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\r\n\r\nexport const ctx = typeof(window) !== 'undefined' ? window : self;\r\n\r\n// https://stackoverflow.com/a/58065241\r\nexport const isAppleMobile = (/iPad|iPhone|iPod/.test(navigator.platform) ||\r\n (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)) &&\r\n !ctx.MSStream;\r\n\r\nexport const isSafari = !!('safari' in ctx) || !!(userAgent && (/\\b(iPad|iPhone|iPod)\\b/.test(userAgent) || (!!userAgent.match('Safari') && !userAgent.match('Chrome'))))/* || true */;\r\nexport const isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\r\n\r\nexport const isMobileSafari = isSafari && isAppleMobile;\r\n\r\nexport const isMobile = /* screen.width && screen.width < 480 || */navigator.maxTouchPoints > 0 && navigator.userAgent.search(/iOS|iPhone OS|Android|BlackBerry|BB10|Series ?[64]0|J2ME|MIDP|opera mini|opera mobi|mobi.+Gecko|Windows Phone/i) != -1;\r\n","/*\r\n * https://github.com/morethanwords/tweb\r\n * Copyright (C) 2019-2021 Eduard Kuzmenko\r\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\r\n */\r\n\r\nexport default function fixSafariStickyInput(input: HTMLElement) {\r\n input.style.transform = 'translateY(-99999px)';\r\n /* input.style.position = 'fixed';\r\n input.style.top = '-99999px';\r\n input.style.left = '0'; */\r\n input.focus();\r\n \r\n setTimeout(() => {\r\n //fastSmoothScroll(findUpClassName(input, 'scrollable-y') || window as any, document.activeElement as HTMLElement, 'start', 4, undefined, FocusDirection.Static);\r\n /* input.style.position = '';\r\n input.style.top = ''; */\r\n input.style.transform = '';\r\n //fastSmoothScroll(findUpClassName(input, 'scrollable-y') || window as any, document.activeElement as HTMLElement, 'start', 4, undefined, FocusDirection.Static);\r\n \r\n /* setTimeout(() => {\r\n fastSmoothScroll(findUpClassName(input, 'scrollable-y') || window as any, document.activeElement as HTMLElement, 'start', 4);\r\n }, 50); */\r\n }, 0);\r\n}\r\n","/*\r\n * https://github.com/morethanwords/tweb\r\n * Copyright (C) 2019-2021 Eduard Kuzmenko\r\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\r\n * \r\n * Originally from:\r\n * https://github.com/zhukov/webogram\r\n * Copyright (C) 2014 Igor Zhukov <igor.beatle@gmail.com>\r\n * https://github.com/zhukov/webogram/blob/master/LICENSE\r\n */\r\n\r\nexport function cancelEvent(event: Event) {\r\n event = event || window.event;\r\n if(event) {\r\n // @ts-ignore\r\n event = event.originalEvent || event;\r\n\r\n try {\r\n if(event.stopPropagation) event.stopPropagation();\r\n if(event.preventDefault) event.preventDefault();\r\n event.returnValue = false;\r\n event.cancelBubble = true;\r\n } catch(err) {}\r\n }\r\n\r\n return false;\r\n}\r\n","/*\r\n * https://github.com/morethanwords/tweb\r\n * Copyright (C) 2019-2021 Eduard Kuzmenko\r\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\r\n */\r\n\r\n//export function findUpClassName<T>(el: any, className: string): T;\r\nexport default function findUpClassName(el: any, className: string): HTMLElement {\r\n return el.closest('.' + className);\r\n /* if(el.classList.contains(className)) return el; // 03.02.2020\r\n\r\n while(el.parentElement) {\r\n el = el.parentElement;\r\n if(el.classList.contains(className)) \r\n return el;\r\n }\r\n return null; */\r\n}\r\n","/*\r\n * https://github.com/morethanwords/tweb\r\n * Copyright (C) 2019-2021 Eduard Kuzmenko\r\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\r\n * \r\n * Originally from:\r\n * https://github.com/zhukov/webogram\r\n * Copyright (C) 2014 Igor Zhukov <igor.beatle@gmail.com>\r\n * https://github.com/zhukov/webogram/blob/master/LICENSE\r\n */\r\n\r\nimport type { DcId } from \"../types\";\r\n\r\nexport const MAIN_DOMAIN = 'web.telegram.org';\r\n\r\nconst App = {\r\n id: 1025907,\r\n hash: '452b0359b988148995f22ff0f4229750',\r\n version: '0.6.1',\r\n langPackVersion: '0.3.2',\r\n langPack: 'macos',\r\n langPackCode: 'en',\r\n domains: [MAIN_DOMAIN] as string[],\r\n baseDcId: 2 as DcId,\r\n isMainDomain: location.hostname === MAIN_DOMAIN,\r\n suffix: 'K'\r\n};\r\n\r\nif(App.isMainDomain) { // use Webogram credentials then\r\n App.id = 2496;\r\n App.hash = '8da85b0d5bfe62527e5b244c209159c3';\r\n}\r\n\r\nexport default App;\r\n","/*\r\n * https://github.com/morethanwords/tweb\r\n * Copyright (C) 2019-2021 Eduard Kuzmenko\r\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\r\n */\r\n\r\nexport default function blurActiveElement() {\r\n if(document.activeElement && (document.activeElement as HTMLInputElement).blur) {\r\n (document.activeElement as HTMLInputElement).blur();\r\n return true;\r\n }\r\n\r\n return false;\r\n}\r\n","/*\r\n * https://github.com/morethanwords/tweb\r\n * Copyright (C) 2019-2021 Eduard Kuzmenko\r\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\r\n */\r\n\r\nlet promise: Promise<any>;\r\nexport default function loadFonts(): Promise<any> {\r\n if(promise) return promise;\r\n return promise = 'fonts' in document ? \r\n Promise.race([\r\n // @ts-ignore\r\n Promise.all(['400 1rem Roboto', '500 1rem Roboto', '500 1rem tgico'].map(font => document.fonts.load(font))),\r\n new Promise((resolve) => setTimeout(resolve, 1e3))\r\n ]) : \r\n Promise.resolve();\r\n}\r\n","const IS_EMOJI_SUPPORTED = navigator.userAgent.search(/OS X|iPhone|iPad|iOS/i) !== -1/* && false *//* || true */;\r\n\r\nexport default IS_EMOJI_SUPPORTED;","/*\r\n * https://github.com/morethanwords/tweb\r\n * Copyright (C) 2019-2021 Eduard Kuzmenko\r\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\r\n */\r\n\r\nimport App from './config/app';\r\nimport blurActiveElement from './helpers/dom/blurActiveElement';\r\nimport { cancelEvent } from './helpers/dom/cancelEvent';\r\nimport findUpClassName from './helpers/dom/findUpClassName';\r\nimport fixSafariStickyInput from './helpers/dom/fixSafariStickyInput';\r\nimport loadFonts from './helpers/dom/loadFonts';\r\nimport IS_EMOJI_SUPPORTED from './helpers/emojiSupport';\r\nimport { isMobileSafari } from './helpers/userAgent';\r\nimport './materialize.scss';\r\nimport './scss/style.scss';\r\nimport './scss/tgico.scss';\r\n/* import { computeCheck } from './lib/crypto/srp';\r\nimport { salt1, salt2, g, p, srp_id, secure_random, srp_B, password } from './mock/srp'; */\r\n\r\n//console.log('pineapples are in my head');\r\n\r\n/* console.time('get storage1');\r\nimport * as a from './lib/config';\r\nimport * as b from './lib/mtproto/mtproto_config';\r\nimport * as c from './helpers/userAgent';\r\nimport * as d from './lib/mtproto/mtprotoworker';\r\nimport * as e from './lib/polyfill';\r\nimport * as f from './lib/storage';\r\na && b && c && d && e && f;\r\nconsole.timeEnd('get storage1'); */\r\n\r\n/* Promise.all([\r\n import('./components/pageIm'),\r\n import('./components/pageSignIn'),\r\n import('./components/misc'),\r\n import('./lib/storage')\r\n]).then(imports => {\r\n let [pageIm, pageSignIn, misc, AppStorage] = imports; */\r\n\r\n document.addEventListener('DOMContentLoaded', async() => {\r\n //let socket = new Socket(2);\r\n\r\n if(!Element.prototype.toggleAttribute) {\r\n Element.prototype.toggleAttribute = function(name, force) {\r\n if(force !== void 0) force = !!force;\r\n \r\n if(this.hasAttribute(name)) {\r\n if(force) return true;\r\n \r\n this.removeAttribute(name);\r\n return false;\r\n }\r\n if(force === false) return false;\r\n \r\n this.setAttribute(name, \"\");\r\n return true;\r\n };\r\n }\r\n\r\n // We listen to the resize event (https://css-tricks.com/the-trick-to-viewport-units-on-mobile/)\r\n // @ts-ignore\r\n const w = window.visualViewport || window; // * handle iOS keyboard\r\n let setViewportVH = false;\r\n let lastVH: number;\r\n const setVH = () => {\r\n // @ts-ignore\r\n const vh = (setViewportVH && !rootScope.default.overlayIsActive ? w.height || w.innerHeight : window.innerHeight) * 0.01;\r\n if(lastVH === vh) {\r\n return;\r\n } else if(lastVH < vh) {\r\n blurActiveElement(); // (Android) fix blur when keyboard is being closed\r\n }\r\n\r\n lastVH = vh;\r\n\r\n //const vh = document.documentElement.scrollHeight * 0.01;\r\n document.documentElement.style.setProperty('--vh', `${vh}px`);\r\n\r\n //console.log('setVH', vh, setViewportVH ? w : window);\r\n\r\n /* if(setViewportVH && userAgent.isSafari && touchSupport.isTouchSupported && document.activeElement && (document.activeElement as HTMLElement).blur) {\r\n const rect = document.activeElement.getBoundingClientRect();\r\n if(rect.top < 0 || rect.bottom >= (w as any).height) {\r\n fastSmoothScroll(findUpClassName(document.activeElement, 'scrollable-y') || window as any, document.activeElement as HTMLElement, 'center', 4, undefined, FocusDirection.Static);\r\n }\r\n } */\r\n };\r\n\r\n window.addEventListener('resize', setVH);\r\n setVH();\r\n\r\n // * hook worker constructor to set search parameters (test, debug, etc)\r\n const workerHandler = {\r\n construct(target: any, args: any) {\r\n //console.log(target, args);\r\n const url = args[0] + location.search;\r\n\r\n return new target(url);\r\n }\r\n };\r\n \r\n const workerProxy = new Proxy(Worker, workerHandler);\r\n Worker = workerProxy;\r\n\r\n const [_, touchSupport, userAgent, rootScope, appStateManager, I18n] = await Promise.all([\r\n import('./lib/polyfill'),\r\n import('./helpers/touchSupport'),\r\n import('./helpers/userAgent'),\r\n import('./lib/rootScope'),\r\n import('./lib/appManagers/appStateManager'),\r\n import('./lib/langPack'),\r\n ])\r\n //console.timeEnd('get storage');\r\n\r\n //console.log(new Uint8Array([255, 200, 145]).hex);\r\n\r\n const toggleResizeMode = () => {\r\n setViewportVH = tabId === 1 && userAgent.isSafari && touchSupport.isTouchSupported && !rootScope.default.overlayIsActive;\r\n setVH();\r\n\r\n if(w !== window) {\r\n if(setViewportVH) {\r\n window.removeEventListener('resize', setVH);\r\n w.addEventListener('resize', setVH);\r\n } else {\r\n w.removeEventListener('resize', setVH);\r\n window.addEventListener('resize', setVH);\r\n }\r\n }\r\n };\r\n\r\n let tabId: number;\r\n rootScope.default.addEventListener('im_tab_change', (id) => {\r\n const wasTabId = tabId !== undefined;\r\n tabId = id;\r\n\r\n if(wasTabId || tabId === 1) {\r\n toggleResizeMode();\r\n }\r\n });\r\n \r\n rootScope.default.addEventListener('overlay_toggle', () => {\r\n toggleResizeMode();\r\n });\r\n\r\n if(userAgent.isFirefox && !IS_EMOJI_SUPPORTED) {\r\n document.addEventListener('dragstart', (e) => {\r\n const target = e.target as HTMLElement;\r\n if(target.tagName === 'IMG' && target.classList.contains('emoji')) {\r\n cancelEvent(e);\r\n return false;\r\n }\r\n });\r\n }\r\n\r\n if(userAgent.isApple) {\r\n if(userAgent.isSafari) {\r\n document.documentElement.classList.add('is-safari');\r\n\r\n if(userAgent.isMobile && touchSupport.isTouchSupported) {\r\n let key: 'clientY' | 'pageY' = 'clientY';\r\n let startY = 0;\r\n const o = {capture: true, passive: false};\r\n const onTouchMove = (e: TouchEvent) => {\r\n const touch = e.touches[0];\r\n\r\n //console.log('touchmove y', touch[key], startY);\r\n \r\n const scrollable = findUpClassName(touch.target, 'scrollable-y');\r\n if(scrollable) {\r\n const y = touch[key];\r\n const scrolled = startY - y;\r\n\r\n /* if(y < startY) {\r\n startY = y;\r\n } */\r\n\r\n const scrollTop = scrollable.scrollTop;\r\n const scrollHeight = scrollable.scrollHeight;\r\n const clientHeight = scrollable.clientHeight;\r\n const nextScrollTop = scrollTop ? Math.round(scrollTop + scrollable.clientHeight + scrolled) : scrollTop + scrolled;\r\n //const needCancel = scrollHeight !== clientHeight ? (scrollTop && diff <= 1) || (scrollTop - diff) < 0 : true;\r\n const needCancel = scrollHeight === clientHeight || nextScrollTop >= scrollHeight || nextScrollTop <= 0;\r\n if(needCancel) {\r\n e.preventDefault();\r\n }\r\n\r\n //console.log('touchmove with scrollable', scrollTop, startY, scrolled, nextScrollTop, needCancel, e.cancelable);\r\n } else {\r\n e.preventDefault();\r\n\r\n //console.log('touchmove no scrollable', e, touch);\r\n }\r\n\r\n //if(e.target === document.documentElement || e.target === document.body) e.preventDefault();\r\n };\r\n\r\n // let isOpened = false;\r\n document.addEventListener('focusin', (e) => {\r\n if(!setViewportVH) return;\r\n //console.log('focusin');\r\n\r\n // isOpened = true;\r\n // document.body.classList.add('is-keyboard-opened');\r\n\r\n fixSafariStickyInput(e.target as HTMLElement);\r\n\r\n document.addEventListener('touchmove', onTouchMove, o);\r\n document.addEventListener('touchstart', (e) => {\r\n if(e.touches.length > 1) return;\r\n const touchStart = e.touches[0];\r\n \r\n startY = touchStart[key];\r\n });\r\n });\r\n\r\n document.addEventListener('focusout', () => {\r\n document.removeEventListener('touchmove', onTouchMove, o);\r\n \r\n // if(isOpened) {\r\n // isOpened = false;\r\n // document.body.classList.remove('is-keyboard-opened');\r\n // }\r\n });\r\n \r\n document.addEventListener('visibilitychange', () => {\r\n if(!setViewportVH) return;\r\n //console.log('window visibilitychange');\r\n if(document.activeElement && (document.activeElement as HTMLElement).blur) {\r\n fixSafariStickyInput(document.activeElement as HTMLElement);\r\n }\r\n\r\n /* blurActiveElement();\r\n window.scrollTo(0, 0);\r\n setVH(); */\r\n });\r\n }\r\n }\r\n \r\n document.documentElement.classList.add('is-mac', 'emoji-supported');\r\n\r\n if(userAgent.isAppleMobile) {\r\n document.documentElement.classList.add('is-ios');\r\n }\r\n } else if(userAgent.isAndroid) {\r\n document.documentElement.classList.add('is-android');\r\n }\r\n\r\n if(!touchSupport.isTouchSupported) {\r\n document.documentElement.classList.add('no-touch');\r\n } else {\r\n document.documentElement.classList.add('is-touch');\r\n /* document.addEventListener('touchmove', (event: any) => {\r\n event = event.originalEvent || event;\r\n if(event.scale && event.scale !== 1) {\r\n event.preventDefault();\r\n }\r\n }, {capture: true, passive: false}); */\r\n }\r\n\r\n /* if(config.isServiceWorkerSupported) {\r\n await navigator.serviceWorker.ready;\r\n navigator.serviceWorker.controller ? true : await new Promise((resolve, reject) => {\r\n navigator.serviceWorker.addEventListener('controllerchange', resolve);\r\n });\r\n } */\r\n \r\n //console.time('get storage');\r\n\r\n const perf = performance.now();\r\n\r\n //import('./vendor/dateFormat');\r\n\r\n const langPromise = I18n.default.getCacheLangPack();\r\n\r\n const [state, langPack] = await Promise.all([\r\n appStateManager.default.getState(), \r\n langPromise\r\n ]);\r\n //I18n.getCacheLangPack();\r\n //console.log('got auth:', auth);\r\n //console.timeEnd('get storage');\r\n\r\n rootScope.default.setThemeListener();\r\n\r\n if(langPack.appVersion !== App.langPackVersion) {\r\n I18n.default.getLangPack(langPack.lang_code);\r\n }\r\n\r\n /**\r\n * won't fire if font is loaded too fast\r\n */\r\n function fadeInWhenFontsReady(elem: HTMLElement, promise: Promise<any>) {\r\n elem.style.opacity = '0';\r\n\r\n promise.then(() => {\r\n window.requestAnimationFrame(() => {\r\n elem.style.opacity = '';\r\n });\r\n });\r\n }\r\n\r\n console.log('got state, time:', performance.now() - perf);\r\n\r\n const authState = state.authState;\r\n if(authState._ !== 'authStateSignedIn'/* || 1 === 1 */) {\r\n console.log('Will mount auth page:', authState._, Date.now() / 1000);\r\n\r\n const el = document.getElementById('auth-pages');\r\n let scrollable: HTMLElement;\r\n if(el) {\r\n scrollable = el.querySelector('.scrollable') as HTMLElement;\r\n if((!touchSupport.isTouchSupported || isMobileSafari)) {\r\n scrollable.classList.add('no-scrollbar');\r\n }\r\n\r\n // * don't remove this line\r\n scrollable.style.opacity = '0';\r\n\r\n const placeholder = document.createElement('div');\r\n placeholder.classList.add('auth-placeholder');\r\n\r\n scrollable.prepend(placeholder);\r\n scrollable.append(placeholder.cloneNode());\r\n }\r\n\r\n try {\r\n await Promise.all([\r\n import('./lib/mtproto/telegramMeWebManager'),\r\n import('./lib/mtproto/webPushApiManager')\r\n ]).then(([meModule, pushModule]) => {\r\n meModule.default.setAuthorized(false);\r\n pushModule.default.forceUnsubscribe();\r\n });\r\n } catch(err) {\r\n \r\n }\r\n\r\n let pagePromise: Promise<void>;\r\n //langPromise.then(async() => {\r\n switch(authState._) {\r\n case 'authStateSignIn': \r\n pagePromise = (await import('./pages/pageSignIn')).default.mount();\r\n break;\r\n case 'authStateSignQr': \r\n pagePromise = (await import('./pages/pageSignQR')).default.mount();\r\n break;\r\n case 'authStateAuthCode':\r\n pagePromise = (await import('./pages/pageAuthCode')).default.mount(authState.sentCode);\r\n break;\r\n case 'authStatePassword':\r\n pagePromise = (await import('./pages/pagePassword')).default.mount();\r\n break;\r\n case 'authStateSignUp':\r\n pagePromise = (await import('./pages/pageSignUp')).default.mount(authState.authCode);\r\n break;\r\n }\r\n //});\r\n\r\n if(scrollable) {\r\n // wait for text appear\r\n if(pagePromise) {\r\n await pagePromise;\r\n }\r\n\r\n const promise = 'fonts' in document ? \r\n Promise.race([\r\n new Promise((resolve) => setTimeout(resolve, 1e3)), \r\n // @ts-ignore\r\n document.fonts.ready\r\n ]) : \r\n Promise.resolve();\r\n fadeInWhenFontsReady(scrollable, promise);\r\n }\r\n\r\n /* computeCheck(password, {\r\n current_algo: {\r\n salt1, \r\n salt2,\r\n p,\r\n g\r\n },\r\n srp_id,\r\n srp_B,\r\n secure_random,\r\n }).then(res => {\r\n console.log(res);\r\n }); */\r\n\r\n /* setTimeout(async() => {\r\n (await import('./pages/pageAuthCode')).default.mount({\r\n \"_\": \"auth.sentCode\",\r\n \"pFlags\": {},\r\n \"flags\": 6,\r\n \"type\": {\r\n \"_\": \"auth.sentCodeTypeSms\",\r\n \"length\": 5\r\n },\r\n \"phone_code_hash\": \"\",\t\r\n \"next_type\": {\r\n \"_\": \"auth.codeTypeCall\"\r\n },\r\n \"timeout\": 120,\r\n \"phone_number\": \"\"\r\n });\r\n }, 500); */\r\n /* setTimeout(async() => {\r\n (await import('./pages/pageSignQR')).default.mount();\r\n }, 500); */\r\n /* setTimeout(async() => {\r\n (await import('./pages/pagePassword')).default.mount();\r\n }, 500); */\r\n /* setTimeout(async() => {\r\n (await import('./pages/pageSignUp')).default.mount({\r\n \"phone_code_hash\": \"\",\t\r\n \"phone_number\": \"\"\r\n });\r\n }, 500); */\r\n } else {\r\n console.log('Will mount IM page:', Date.now() / 1000);\r\n fadeInWhenFontsReady(document.getElementById('main-columns'), loadFonts());\r\n (await import('./pages/pageIm')).default.mount();\r\n //getNearestDc();\r\n }\r\n\r\n const ripple = (await import('./components/ripple')).ripple;\r\n (Array.from(document.getElementsByClassName('rp')) as HTMLElement[]).forEach(el => ripple(el));\r\n });\r\n//});\r\n\r\n\r\n"],"sourceRoot":""}