tweb/public/main.3f7a70559679af85e450.b...

1 line
44 KiB
Plaintext

{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/environment/ctx.ts","webpack:///./src/environment/userAgent.ts","webpack:///./src/environment/touchSupport.ts","webpack:///./src/helpers/dom/fixSafariStickyInputFocusing.ts","webpack:///./src/helpers/dom/fixSafariStickyInput.ts","webpack:///./src/helpers/dom/cancelEvent.ts","webpack:///./src/helpers/dom/findUpClassName.ts","webpack:///./src/helpers/dom/blurActiveElement.ts","webpack:///./src/config/app.ts","webpack:///./src/helpers/dom/loadFonts.ts","webpack:///./src/environment/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","window","self","USER_AGENT","navigator","userAgent","IS_APPLE","search","IS_ANDROID","toLowerCase","indexOf","IS_CHROMIUM","test","vendor","IS_APPLE_MOBILE","platform","maxTouchPoints","MSStream","IS_SAFARI","match","IS_FIREFOX","IS_MOBILE_SAFARI","IS_MOBILE","IS_TOUCH_SUPPORTED","DocumentTouch","IS_STICKY_INPUT_BUGGED","startY","capture","passive","onTouchMove","touch","touches","scrollable","y","scrolled","scrollTop","scrollHeight","clientHeight","nextScrollTop","Math","round","preventDefault","lastFocusOutTimeStamp","addEventListener","classList","contains","timeStamp","touchStart","removeEventListener","activeElement","blur","fixSafariStickyInputFocusing","input","add","fixSafariStickyInput","style","transform","focus","cancelEvent","originalEvent","stopPropagation","returnValue","cancelBubble","findUpClassName","el","className","closest","blurActiveElement","App","id","hash","version","versionFull","langPackVersion","langPack","langPackCode","domains","baseDcId","isMainDomain","location","hostname","suffix","loadFonts","race","map","font","fonts","load","IS_EMOJI_SUPPORTED","Element","toggleAttribute","force","hasAttribute","removeAttribute","w","visualViewport","lastVH","setViewportVH","setVH","vh","rootScope","default","isOverlayActive","height","innerHeight","touchSupport","documentElement","setProperty","workerProxy","Proxy","Worker","construct","args","_","appStateManager","I18n","toggleResizeMode","tabId","wasTabId","tagName","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.3f7a70559679af85e450.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\":\"acb684dc35d9188bd6be\",\"1\":\"8ebe82cad4450b8187c1\",\"2\":\"8e2ae984d68e67fdf8a4\",\"3\":\"ecfbd0f9b839f0b7d92f\",\"4\":\"bf32a9fbeca385c5c9e9\",\"5\":\"30d45c9c9fc91ab968c5\",\"6\":\"848a1b33f7636a89b087\",\"7\":\"83a2dfdd0ee504f81f0b\",\"8\":\"f362ee1d655a5699d64f\",\"9\":\"3edc09b4dc478113ee21\",\"11\":\"868f37c7ef08036b894a\",\"12\":\"287fcbd640751db5e44c\",\"13\":\"c0ce6dfb89e386f370a8\",\"14\":\"f1740ad881f9dd808262\",\"15\":\"1a3e11966cccf1381885\",\"16\":\"b3f22524b150bb5fac27\",\"17\":\"6eeae36d1ceb661e97fa\",\"18\":\"2ffaa556b58a70d80bd8\",\"19\":\"804c41f1066e7188e13a\",\"20\":\"be4f633cc12b0fd8e5a2\",\"21\":\"0d6505cd9495fe305ff6\",\"22\":\"2635711e4f30bee63506\",\"23\":\"605f4acbc5d2d512692f\",\"24\":\"92df5f1db24f05b27e64\",\"25\":\"f3627972e99fbfd11062\",\"26\":\"b22c8de7fb72959da42f\",\"27\":\"d828877399fdc766a0f1\",\"28\":\"54c1be0be6cd63675640\",\"29\":\"2d84e7e951c2722718bc\",\"30\":\"db25542edbf0f0900275\",\"31\":\"8c3b6a0d1d8bf16646eb\"}[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 = 10);\n","const ctx = typeof(window) !== 'undefined' ? window : self;\n\nexport default ctx;","/*\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 ctx from './ctx';\r\n\r\nexport const USER_AGENT = navigator ? navigator.userAgent : null;\r\nexport const IS_APPLE = navigator.userAgent.search(/OS X|iPhone|iPad|iOS/i) !== -1;\r\nexport const IS_ANDROID = navigator.userAgent.toLowerCase().indexOf('android') !== -1;\r\nexport const IS_CHROMIUM = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\r\n\r\n// https://stackoverflow.com/a/58065241\r\nexport const IS_APPLE_MOBILE = (/iPad|iPhone|iPod/.test(navigator.platform) ||\r\n (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)) &&\r\n !(ctx as any).MSStream;\r\n\r\nexport const IS_SAFARI = !!('safari' in ctx) || !!(USER_AGENT && (/\\b(iPad|iPhone|iPod)\\b/.test(USER_AGENT) || (!!USER_AGENT.match('Safari') && !USER_AGENT.match('Chrome'))))/* || true */;\r\nexport const IS_FIREFOX = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\r\n\r\nexport const IS_MOBILE_SAFARI = IS_SAFARI && IS_APPLE_MOBILE;\r\n\r\nexport const IS_MOBILE = /* 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\n// @ts-ignore\r\nexport const IS_TOUCH_SUPPORTED = ('ontouchstart' in window) || (window.DocumentTouch && document instanceof DocumentTouch)/* || true */;","/*\n * https://github.com/morethanwords/tweb\n * Copyright (C) 2019-2021 Eduard Kuzmenko\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\n */\n\nimport { IS_TOUCH_SUPPORTED } from \"../../environment/touchSupport\";\nimport { IS_MOBILE, IS_SAFARI } from \"../../environment/userAgent\";\nimport findUpClassName from \"./findUpClassName\";\nimport fixSafariStickyInput from \"./fixSafariStickyInput\";\n\nexport const IS_STICKY_INPUT_BUGGED = IS_SAFARI && IS_MOBILE && IS_TOUCH_SUPPORTED;\n\nif(IS_STICKY_INPUT_BUGGED) {\n let key: 'clientY' | 'pageY' = 'clientY';\n let startY = 0;\n const o = {capture: true, passive: false};\n const onTouchMove = (e: TouchEvent) => {\n const touch = e.touches[0];\n\n //console.log('touchmove y', touch[key], startY);\n \n const scrollable = findUpClassName(touch.target, 'scrollable-y');\n if(scrollable) {\n const y = touch[key];\n const scrolled = startY - y;\n\n /* if(y < startY) {\n startY = y;\n } */\n\n const scrollTop = scrollable.scrollTop;\n const scrollHeight = scrollable.scrollHeight;\n const clientHeight = scrollable.clientHeight;\n const nextScrollTop = scrollTop ? Math.round(scrollTop + scrollable.clientHeight + scrolled) : scrollTop + scrolled;\n //const needCancel = scrollHeight !== clientHeight ? (scrollTop && diff <= 1) || (scrollTop - diff) < 0 : true;\n const needCancel = scrollHeight === clientHeight || nextScrollTop >= scrollHeight || nextScrollTop <= 0;\n if(needCancel) {\n e.preventDefault();\n }\n\n //console.log('touchmove with scrollable', scrollTop, startY, scrolled, nextScrollTop, needCancel, e.cancelable);\n } else {\n e.preventDefault();\n\n //console.log('touchmove no scrollable', e, touch);\n }\n\n //if(e.target === document.documentElement || e.target === document.body) e.preventDefault();\n };\n \n // let el = document.createElement('div');\n // document.body.prepend(el);\n // let a = 0;\n\n // let hasFocus = false;\n let lastFocusOutTimeStamp = 0;\n document.addEventListener('focusin', (e) => {\n if(!(e.target as HTMLElement).classList.contains('is-sticky-input-bugged') || (e.timeStamp - lastFocusOutTimeStamp) < 50/* && document.activeElement === input */) {\n return;\n }\n\n // console.log('focusin', e, e.timeStamp);\n\n // hasFocus = true;\n // document.body.classList.add('is-keyboard-opened');\n\n // el.innerText = 'focusin ' + ++a;\n\n /* a < 2 && */fixSafariStickyInput(e.target as HTMLElement);\n\n document.addEventListener('touchmove', onTouchMove, o);\n document.addEventListener('touchstart', (e) => {\n if(e.touches.length > 1) return;\n const touchStart = e.touches[0];\n \n startY = touchStart[key];\n });\n }, {passive: true});\n\n document.addEventListener('focusout', (e) => {\n // console.log('focusout', e, e.timeStamp);\n document.removeEventListener('touchmove', onTouchMove, o);\n\n lastFocusOutTimeStamp = e.timeStamp;\n\n // el.innerText = 'focusout ' + ++a;\n \n // if(hasFocus) {\n // hasFocus = false;\n // document.body.classList.remove('is-keyboard-opened');\n // }\n }, {passive: true});\n\n document.addEventListener('visibilitychange', () => {\n // console.log('window visibilitychange');\n if(document.activeElement && \n document.activeElement.classList.contains('is-sticky-input-bugged') && \n (document.activeElement as HTMLElement).blur) {\n fixSafariStickyInput(document.activeElement as HTMLElement);\n }\n\n /* blurActiveElement();\n window.scrollTo(0, 0);\n setVH(); */\n }, {passive: true});\n}\n\nexport default function fixSafariStickyInputFocusing(input: HTMLElement) {\n if(!IS_STICKY_INPUT_BUGGED) return;\n input.classList.add('is-sticky-input-bugged');\n}\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\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","/*\n * https://github.com/morethanwords/tweb\n * Copyright (C) 2019-2021 Eduard Kuzmenko\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\n * \n * Originally from:\n * https://github.com/zhukov/webogram\n * Copyright (C) 2014 Igor Zhukov <igor.beatle@gmail.com>\n * https://github.com/zhukov/webogram/blob/master/LICENSE\n */\n\nimport type { DcId } from \"../types\";\n\nexport const MAIN_DOMAIN = 'web.telegram.org';\n\nconst App = {\n id: +process.env.API_ID,\n hash: process.env.API_HASH,\n version: process.env.VERSION,\n versionFull: process.env.VERSION_FULL,\n langPackVersion: '0.3.3',\n langPack: 'macos',\n langPackCode: 'en',\n domains: [MAIN_DOMAIN] as string[],\n baseDcId: 2 as DcId,\n isMainDomain: location.hostname === MAIN_DOMAIN,\n suffix: 'K'\n};\n\nif(App.isMainDomain) { // use Webogram credentials then\n App.id = 2496;\n App.hash = '8da85b0d5bfe62527e5b244c209159c3';\n}\n\nexport default App;\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;","/*\n * https://github.com/morethanwords/tweb\n * Copyright (C) 2019-2021 Eduard Kuzmenko\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\n */\n\nimport App from './config/app';\nimport blurActiveElement from './helpers/dom/blurActiveElement';\nimport { cancelEvent } from './helpers/dom/cancelEvent';\nimport { IS_STICKY_INPUT_BUGGED } from './helpers/dom/fixSafariStickyInputFocusing';\nimport loadFonts from './helpers/dom/loadFonts';\nimport IS_EMOJI_SUPPORTED from './environment/emojiSupport';\nimport { IS_MOBILE_SAFARI } from './environment/userAgent';\nimport './materialize.scss';\nimport './scss/style.scss';\nimport './scss/tgico.scss';\n/* import { computeCheck } from './lib/crypto/srp';\nimport { salt1, salt2, g, p, srp_id, secure_random, srp_B, password } from './mock/srp'; */\n\n//console.log('pineapples are in my head');\n\n/* console.time('get storage1');\nimport * as a from './lib/config';\nimport * as b from './lib/mtproto/mtproto_config';\nimport * as c from './helpers/userAgent';\nimport * as d from './lib/mtproto/mtprotoworker';\nimport * as e from './lib/polyfill';\nimport * as f from './lib/storage';\na && b && c && d && e && f;\nconsole.timeEnd('get storage1'); */\n\n/* Promise.all([\n import('./components/pageIm'),\n import('./components/pageSignIn'),\n import('./components/misc'),\n import('./lib/storage')\n]).then(imports => {\n let [pageIm, pageSignIn, misc, AppStorage] = imports; */\n\n document.addEventListener('DOMContentLoaded', async() => {\n //let socket = new Socket(2);\n\n if(!Element.prototype.toggleAttribute) {\n Element.prototype.toggleAttribute = function(name, force) {\n if(force !== void 0) force = !!force;\n \n if(this.hasAttribute(name)) {\n if(force) return true;\n \n this.removeAttribute(name);\n return false;\n }\n if(force === false) return false;\n \n this.setAttribute(name, \"\");\n return true;\n };\n }\n\n // We listen to the resize event (https://css-tricks.com/the-trick-to-viewport-units-on-mobile/)\n // @ts-ignore\n const w = window.visualViewport || window; // * handle iOS keyboard\n let setViewportVH = false/* , hasFocus = false */;\n let lastVH: number;\n const setVH = () => {\n // @ts-ignore\n const vh = (setViewportVH && !rootScope.default.isOverlayActive ? w.height || w.innerHeight : window.innerHeight) * 0.01;\n if(lastVH === vh) {\n return;\n } else if(touchSupport.IS_TOUCH_SUPPORTED && lastVH < vh && (vh - lastVH) > 1) {\n blurActiveElement(); // (Android) fix blurring inputs when keyboard is being closed (e.g. closing keyboard by back arrow and touching a bubble)\n }\n\n lastVH = vh;\n\n //const vh = document.documentElement.scrollHeight * 0.01;\n document.documentElement.style.setProperty('--vh', `${vh}px`);\n\n //console.log('setVH', vh, setViewportVH ? w : window);\n\n /* if(setViewportVH && userAgent.isSafari && touchSupport.isTouchSupported && document.activeElement && (document.activeElement as HTMLElement).blur) {\n const rect = document.activeElement.getBoundingClientRect();\n if(rect.top < 0 || rect.bottom >= (w as any).height) {\n fastSmoothScroll(findUpClassName(document.activeElement, 'scrollable-y') || window as any, document.activeElement as HTMLElement, 'center', 4, undefined, FocusDirection.Static);\n }\n } */\n };\n\n // * hook worker constructor to set search parameters (test, debug, etc)\n const workerHandler = {\n construct(target: any, args: any) {\n //console.log(target, args);\n const url = args[0] + location.search;\n\n return new target(url);\n }\n };\n \n const workerProxy = new Proxy(Worker, workerHandler);\n Worker = workerProxy;\n\n const [_, touchSupport, userAgent, rootScope, appStateManager, I18n] = await Promise.all([\n import('./lib/polyfill'),\n import('./environment/touchSupport'),\n import('./environment/userAgent'),\n import('./lib/rootScope'),\n import('./lib/appManagers/appStateManager'),\n import('./lib/langPack'),\n ]);\n\n //console.timeEnd('get storage');\n\n window.addEventListener('resize', setVH);\n setVH();\n\n //console.log(new Uint8Array([255, 200, 145]).hex);\n\n if(IS_STICKY_INPUT_BUGGED) {\n const toggleResizeMode = () => {\n setViewportVH = tabId === 1 && IS_STICKY_INPUT_BUGGED && !rootScope.default.isOverlayActive;\n setVH();\n \n if(w !== window) {\n if(setViewportVH) {\n window.removeEventListener('resize', setVH);\n w.addEventListener('resize', setVH);\n } else {\n w.removeEventListener('resize', setVH);\n window.addEventListener('resize', setVH);\n }\n }\n };\n \n let tabId: number;\n rootScope.default.addEventListener('im_tab_change', (id) => {\n const wasTabId = tabId !== undefined;\n tabId = id;\n \n if(wasTabId || tabId === 1) {\n toggleResizeMode();\n }\n });\n \n rootScope.default.addEventListener('overlay_toggle', () => {\n toggleResizeMode();\n });\n }\n\n if(userAgent.IS_FIREFOX && !IS_EMOJI_SUPPORTED) {\n document.addEventListener('dragstart', (e) => {\n const target = e.target as HTMLElement;\n if(target.tagName === 'IMG' && target.classList.contains('emoji')) {\n cancelEvent(e);\n return false;\n }\n });\n }\n\n // prevent firefox image dragging\n document.addEventListener('dragstart', (e) => {\n if((e.target as HTMLElement)?.tagName === \"IMG\") {\n e.preventDefault();\n return false;\n }\n });\n\n if(userAgent.IS_FIREFOX) {\n document.documentElement.classList.add('is-firefox');\n }\n\n if(userAgent.IS_APPLE) {\n if(userAgent.IS_SAFARI) {\n document.documentElement.classList.add('is-safari');\n }\n \n document.documentElement.classList.add('emoji-supported');\n\n if(userAgent.IS_APPLE_MOBILE) {\n document.documentElement.classList.add('is-ios');\n } else {\n document.documentElement.classList.add('is-mac');\n }\n } else if(userAgent.IS_ANDROID) {\n document.documentElement.classList.add('is-android');\n\n /* document.addEventListener('focusin', (e) => {\n hasFocus = true;\n focusTime = Date.now();\n }, {passive: true});\n\n document.addEventListener('focusout', () => {\n hasFocus = false;\n }, {passive: true}); */\n }\n\n if(!touchSupport.IS_TOUCH_SUPPORTED) {\n document.documentElement.classList.add('no-touch');\n } else {\n document.documentElement.classList.add('is-touch');\n /* document.addEventListener('touchmove', (event: any) => {\n event = event.originalEvent || event;\n if(event.scale && event.scale !== 1) {\n event.preventDefault();\n }\n }, {capture: true, passive: false}); */\n }\n\n /* if(config.isServiceWorkerSupported) {\n await navigator.serviceWorker.ready;\n navigator.serviceWorker.controller ? true : await new Promise((resolve, reject) => {\n navigator.serviceWorker.addEventListener('controllerchange', resolve);\n });\n } */\n \n //console.time('get storage');\n\n const perf = performance.now();\n\n //import('./vendor/dateFormat');\n\n const langPromise = I18n.default.getCacheLangPack();\n\n const [state, langPack] = await Promise.all([\n appStateManager.default.getState(), \n langPromise\n ]);\n //I18n.getCacheLangPack();\n //console.log('got auth:', auth);\n //console.timeEnd('get storage');\n\n rootScope.default.setThemeListener();\n\n if(langPack.appVersion !== App.langPackVersion) {\n I18n.default.getLangPack(langPack.lang_code);\n }\n\n /**\n * won't fire if font is loaded too fast\n */\n function fadeInWhenFontsReady(elem: HTMLElement, promise: Promise<any>) {\n elem.style.opacity = '0';\n\n promise.then(() => {\n window.requestAnimationFrame(() => {\n elem.style.opacity = '';\n });\n });\n }\n\n console.log('got state, time:', performance.now() - perf);\n\n const authState = state.authState;\n if(authState._ !== 'authStateSignedIn'/* || 1 === 1 */) {\n console.log('Will mount auth page:', authState._, Date.now() / 1000);\n\n const el = document.getElementById('auth-pages');\n let scrollable: HTMLElement;\n if(el) {\n scrollable = el.querySelector('.scrollable') as HTMLElement;\n if((!touchSupport.IS_TOUCH_SUPPORTED || IS_MOBILE_SAFARI)) {\n scrollable.classList.add('no-scrollbar');\n }\n\n // * don't remove this line\n scrollable.style.opacity = '0';\n\n const placeholder = document.createElement('div');\n placeholder.classList.add('auth-placeholder');\n\n scrollable.prepend(placeholder);\n scrollable.append(placeholder.cloneNode());\n }\n\n try {\n await Promise.all([\n import('./lib/mtproto/telegramMeWebManager'),\n import('./lib/mtproto/webPushApiManager')\n ]).then(([meModule, pushModule]) => {\n meModule.default.setAuthorized(false);\n pushModule.default.forceUnsubscribe();\n });\n } catch(err) {\n \n }\n\n let pagePromise: Promise<void>;\n //langPromise.then(async() => {\n switch(authState._) {\n case 'authStateSignIn': \n pagePromise = (await import('./pages/pageSignIn')).default.mount();\n break;\n case 'authStateSignQr': \n pagePromise = (await import('./pages/pageSignQR')).default.mount();\n break;\n case 'authStateAuthCode':\n pagePromise = (await import('./pages/pageAuthCode')).default.mount(authState.sentCode);\n break;\n case 'authStatePassword':\n pagePromise = (await import('./pages/pagePassword')).default.mount();\n break;\n case 'authStateSignUp':\n pagePromise = (await import('./pages/pageSignUp')).default.mount(authState.authCode);\n break;\n }\n //});\n\n if(scrollable) {\n // wait for text appear\n if(pagePromise) {\n await pagePromise;\n }\n\n const promise = 'fonts' in document ? \n Promise.race([\n new Promise((resolve) => setTimeout(resolve, 1e3)), \n // @ts-ignore\n document.fonts.ready\n ]) : \n Promise.resolve();\n fadeInWhenFontsReady(scrollable, promise);\n }\n\n /* computeCheck(password, {\n current_algo: {\n salt1, \n salt2,\n p,\n g\n },\n srp_id,\n srp_B,\n secure_random,\n }).then(res => {\n console.log(res);\n }); */\n\n /* setTimeout(async() => {\n (await import('./pages/pageAuthCode')).default.mount({\n \"_\": \"auth.sentCode\",\n \"pFlags\": {},\n \"flags\": 6,\n \"type\": {\n \"_\": \"auth.sentCodeTypeSms\",\n \"length\": 5\n },\n \"phone_code_hash\": \"\",\t\n \"next_type\": {\n \"_\": \"auth.codeTypeCall\"\n },\n \"timeout\": 120,\n \"phone_number\": \"\"\n });\n }, 500); */\n /* setTimeout(async() => {\n (await import('./pages/pageSignQR')).default.mount();\n }, 500); */\n /* setTimeout(async() => {\n (await import('./pages/pagePassword')).default.mount();\n }, 500); */\n /* setTimeout(async() => {\n (await import('./pages/pageSignUp')).default.mount({\n \"phone_code_hash\": \"\",\t\n \"phone_number\": \"\"\n });\n }, 500); */\n } else {\n console.log('Will mount IM page:', Date.now() / 1000);\n fadeInWhenFontsReady(document.getElementById('main-columns'), loadFonts());\n (await import('./pages/pageIm')).default.mount();\n //getNearestDc();\n }\n\n const ripple = (await import('./components/ripple')).ripple;\n (Array.from(document.getElementsByClassName('rp')) as HTMLElement[]).forEach(el => ripple(el));\n });\n//});\n\n\n"],"sourceRoot":""}