tweb/public/16.9e27fe913cb3b9d52303.chunk.js.map
Eduard Kuzmenko de0fbec792 Build
2021-04-23 14:43:59 +04:00

1 line
28 KiB
Plaintext

{"version":3,"sources":["webpack:///./src/pages/pageIm.ts","webpack:///./src/pages/loginPage.ts","webpack:///./src/pages/pagePassword.ts","webpack:///./src/pages/pageSignUp.ts","webpack:///./src/pages/pageAuthCode.ts"],"names":["page","pushToState","_","then","m","default","broadcast","requestedServerLanguage","getCacheLangPack","langPack","local","getLangPack","lang_code","Promise","resolve","window","requestAnimationFrame","finally","LoginPage","options","this","element","document","body","querySelector","className","container","createElement","imageDiv","title","titleLangKey","append","subtitle","subtitleLangKey","withInputWrapper","inputWrapper","passwordInput","btnNext","btnNextI18n","IntlElement","key","passwordInputField","label","name","getStateInterval","input","state","getState","setInterval","_state","hint","wrapEmojiText","setLabel","onSubmit","e","value","length","classList","add","toggle","update","preloader","check","response","clearInterval","mount","monkey","remove","removeAttribute","catch","err","type","select","addEventListener","size","isMobile","all","load","focus","saveState","authCode","imported","avatarPreview","id","addIco","appProfileManager","uploadAvatar","open","_uploadAvatar","handleInput","nameInputField","lastName","lastNameInputField","fullName","trim","maxLength","btnSignUp","btnI18n","contains","disabled","params","phone_number","phone_code_hash","first_name","last_name","invokeApi","setUserAuth","user","reject","inputFile","uploadProfilePhoto","_authCode","codeInput","headerElement","sentTypeElement","CODELENGTH","codeInputField","onFill","code","submitCode","pageEl","cleanup","setTimeout","setAttribute","phone_code","ignoreErrors","good","handled","innerText","evt","createEvent","initEvent","dispatchEvent","getElementsByClassName","args","sentCode"],"mappings":"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","file":"16.9e27fe913cb3b9d52303.chunk.js","sourcesContent":["//import {stackBlurImage} from '../lib/StackBlur';\r\n//import appStateManager from \"../lib/appManagers/appStateManager\";\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\nimport { blurActiveElement } from \"../helpers/dom\";\r\nimport appStateManager from \"../lib/appManagers/appStateManager\";\r\nimport I18n from \"../lib/langPack\";\r\nimport Page from \"./page\";\r\n\r\nlet onFirstMount = () => {\r\n //return;\r\n appStateManager.pushToState('authState', {_: 'authStateSignedIn'});\r\n // ! TOO SLOW\r\n /* appStateManager.saveState(); */\r\n\r\n import('../lib/rootScope').then(m => {\r\n m.default.broadcast('im_mount');\r\n });\r\n\r\n if(!I18n.requestedServerLanguage) {\r\n I18n.getCacheLangPack().then(langPack => {\r\n if(langPack.local) {\r\n I18n.getLangPack(langPack.lang_code);\r\n }\r\n });\r\n }\r\n\r\n blurActiveElement();\r\n return new Promise<void>((resolve) => {\r\n window.requestAnimationFrame(() => {\r\n const promise = import('../lib/appManagers/appDialogsManager');\r\n promise.finally(async() => {\r\n //alert('pageIm!');\r\n resolve();\r\n \r\n //AudioContext && global.navigator && global.navigator.mediaDevices && global.navigator.mediaDevices.getUserMedia && global.WebAssembly;\r\n \r\n /* // @ts-ignore\r\n var AudioContext = globalThis.AudioContext || globalThis.webkitAudioContext;\r\n alert('AudioContext:' + typeof(AudioContext));\r\n // @ts-ignore\r\n alert('global.navigator:' + typeof(navigator));\r\n alert('navigator.mediaDevices:' + typeof(navigator.mediaDevices));\r\n alert('navigator.mediaDevices.getUserMedia:' + typeof(navigator.mediaDevices?.getUserMedia));\r\n alert('global.WebAssembly:' + typeof(WebAssembly)); */\r\n \r\n //(Array.from(document.getElementsByClassName('rp')) as HTMLElement[]).forEach(el => ripple(el));\r\n });\r\n });\r\n });\r\n\r\n //let promise = /* Promise.resolve() */.then(() => {//import('../lib/services').then(services => {\r\n /* fetch('assets/img/camomile.jpg')\r\n .then(res => res.blob())\r\n .then(blob => {\r\n let img = new Image();\r\n let url = URL.createObjectURL(blob);\r\n img.src = url;\r\n img.onload = () => {\r\n let id = 'chat-background-canvas';\r\n var canvas = document.getElementById(id) as HTMLCanvasElement;\r\n //URL.revokeObjectURL(url);\r\n \r\n let elements = ['.chat-container'].map(selector => {\r\n return document.querySelector(selector) as HTMLDivElement;\r\n });\r\n \r\n stackBlurImage(img, id, 15, 0);\r\n \r\n canvas.toBlob(blob => {\r\n //let dataUrl = canvas.toDataURL('image/jpeg', 1);\r\n let dataUrl = URL.createObjectURL(blob);\r\n \r\n elements.forEach(el => {\r\n el.style.backgroundImage = 'url(' + dataUrl + ')';\r\n });\r\n }, 'image/jpeg', 1);\r\n };\r\n }); */\r\n //});\r\n};\r\n\r\nconst page = new Page('page-chats', false, onFirstMount);\r\nexport default page;\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\nimport { LangPackKey, i18n } from \"../lib/langPack\";\r\n\r\nexport default class LoginPage {\r\n public element: HTMLElement;\r\n public container: HTMLElement;\r\n public imageDiv: HTMLElement;\r\n public inputWrapper: HTMLElement;\r\n public title: HTMLElement;\r\n public subtitle: HTMLParagraphElement;\r\n\r\n constructor(options: {\r\n className: string,\r\n withInputWrapper?: boolean,\r\n titleLangKey?: LangPackKey,\r\n subtitleLangKey?: LangPackKey,\r\n }) {\r\n this.element = document.body.querySelector('.' + options.className) as HTMLDivElement;\r\n //this.element = document.createElement('div');\r\n //this.element.className = 'page-' + options.className;\r\n\r\n this.container = document.createElement('div');\r\n this.container.className = 'container center-align';\r\n\r\n this.imageDiv = document.createElement('div');\r\n this.imageDiv.className = 'auth-image';\r\n\r\n this.title = document.createElement('h4');\r\n if(options.titleLangKey) {\r\n this.title.append(i18n(options.titleLangKey));\r\n }\r\n\r\n this.subtitle = document.createElement('p');\r\n this.subtitle.className = 'subtitle';\r\n if(options.subtitleLangKey) {\r\n this.subtitle.append(i18n(options.subtitleLangKey));\r\n }\r\n \r\n this.container.append(this.imageDiv, this.title, this.subtitle);\r\n\r\n if(options.withInputWrapper) {\r\n this.inputWrapper = document.createElement('div');\r\n this.inputWrapper.className = 'input-wrapper';\r\n this.container.append(this.inputWrapper);\r\n }\r\n\r\n this.element.append(this.container);\r\n }\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\nimport { putPreloader } from '../components/misc';\r\nimport mediaSizes from '../helpers/mediaSizes';\r\nimport { AccountPassword } from '../layer';\r\nimport appStateManager from '../lib/appManagers/appStateManager';\r\nimport passwordManager from '../lib/mtproto/passwordManager';\r\nimport Page from './page';\r\nimport pageIm from './pageIm';\r\nimport Button from '../components/button';\r\nimport PasswordInputField from '../components/passwordInputField';\r\nimport PasswordMonkey from '../components/monkeys/password';\r\nimport RichTextProcessor from '../lib/richtextprocessor';\r\nimport I18n from '../lib/langPack';\r\nimport LoginPage from './loginPage';\r\nimport { attachClickEvent, cancelEvent, htmlToSpan, replaceContent, toggleDisability } from '../helpers/dom';\r\n\r\nconst TEST = false;\r\nlet passwordInput: HTMLInputElement;\r\n\r\nlet onFirstMount = (): Promise<any> => {\r\n const page = new LoginPage({\r\n className: 'page-password',\r\n withInputWrapper: true,\r\n titleLangKey: 'Login.Password.Title',\r\n subtitleLangKey: 'Login.Password.Subtitle'\r\n });\r\n\r\n const btnNext = Button('btn-primary btn-color-primary');\r\n const btnNextI18n = new I18n.IntlElement({key: 'Login.Next'});\r\n\r\n btnNext.append(btnNextI18n.element);\r\n\r\n const passwordInputField = new PasswordInputField({\r\n label: 'LoginPassword',\r\n name: 'password'\r\n });\r\n\r\n passwordInput = passwordInputField.input as HTMLInputElement;\r\n\r\n page.inputWrapper.append(passwordInputField.container, btnNext);\r\n\r\n let getStateInterval: number;\r\n\r\n let getState = () => {\r\n // * just to check session relevance\r\n if(!getStateInterval) {\r\n getStateInterval = window.setInterval(getState, 10e3);\r\n }\r\n\r\n return !TEST && passwordManager.getState().then(_state => {\r\n state = _state;\r\n\r\n if(state.hint) {\r\n replaceContent(passwordInputField.label, htmlToSpan(RichTextProcessor.wrapEmojiText(state.hint)));\r\n } else {\r\n passwordInputField.setLabel();\r\n }\r\n });\r\n };\r\n\r\n let state: AccountPassword;\r\n \r\n const onSubmit = (e?: Event) => {\r\n if(e) {\r\n cancelEvent(e);\r\n }\r\n\r\n if(!passwordInput.value.length) {\r\n passwordInput.classList.add('error');\r\n return;\r\n }\r\n\r\n const toggle = toggleDisability([passwordInput, btnNext], true);\r\n let value = passwordInput.value;\r\n\r\n btnNextI18n.update({key: 'PleaseWait'});\r\n const preloader = putPreloader(btnNext);\r\n\r\n passwordManager.check(value, state).then((response) => {\r\n //console.log('passwordManager response:', response);\r\n \r\n switch(response._) {\r\n case 'auth.authorization':\r\n clearInterval(getStateInterval);\r\n pageIm.mount();\r\n if(monkey) monkey.remove();\r\n break;\r\n default:\r\n btnNext.removeAttribute('disabled');\r\n btnNextI18n.update({key: response._ as any});\r\n preloader.remove();\r\n break;\r\n }\r\n }).catch((err: any) => {\r\n toggle();\r\n passwordInputField.input.classList.add('error');\r\n \r\n switch(err.type) {\r\n default:\r\n //btnNext.innerText = err.type;\r\n btnNextI18n.update({key: 'PASSWORD_HASH_INVALID'});\r\n passwordInput.select();\r\n break;\r\n }\r\n\r\n preloader.remove();\r\n \r\n getState();\r\n });\r\n };\r\n \r\n attachClickEvent(btnNext, onSubmit);\r\n\r\n passwordInput.addEventListener('keypress', function(this, e) {\r\n this.classList.remove('error');\r\n btnNextI18n.update({key: 'Login.Next'});\r\n\r\n if(e.key === 'Enter') {\r\n return onSubmit();\r\n }\r\n });\r\n\r\n const size = mediaSizes.isMobile ? 100 : 166;\r\n const monkey = new PasswordMonkey(passwordInputField, size);\r\n page.imageDiv.append(monkey.container);\r\n return Promise.all([\r\n monkey.load(),\r\n getState()\r\n ]);\r\n};\r\n\r\nconst page = new Page('page-password', true, onFirstMount, null, () => {\r\n //if(!isAppleMobile) {\r\n passwordInput.focus();\r\n //}\r\n\r\n appStateManager.pushToState('authState', {_: 'authStatePassword'});\r\n appStateManager.saveState();\r\n});\r\n\r\nexport default page;\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\nimport type { CancellablePromise } from '../helpers/cancellablePromise';\r\nimport type { InputFile } from '../layer';\r\nimport type { AuthState } from '../types';\r\nimport Button from '../components/button';\r\nimport InputField from '../components/inputField';\r\nimport { putPreloader } from '../components/misc';\r\nimport PopupAvatar from '../components/popups/avatar';\r\nimport { blurActiveElement, replaceContent } from '../helpers/dom';\r\nimport appStateManager from '../lib/appManagers/appStateManager';\r\nimport I18n, { i18n } from '../lib/langPack';\r\n//import apiManager from '../lib/mtproto/apiManager';\r\nimport apiManager from '../lib/mtproto/mtprotoworker';\r\nimport RichTextProcessor from '../lib/richtextprocessor';\r\nimport LoginPage from './loginPage';\r\nimport Page from './page';\r\nimport pageIm from './pageIm';\r\n\r\nlet authCode: AuthState.signUp['authCode'] = null;\r\n\r\nconst onFirstMount = () => import('../lib/appManagers/appProfileManager').then(imported => {\r\n const page = new LoginPage({\r\n className: 'page-signUp',\r\n withInputWrapper: true,\r\n titleLangKey: 'YourName',\r\n subtitleLangKey: 'Login.Register.Subtitle'\r\n });\r\n\r\n page.imageDiv.classList.add('avatar-edit');\r\n\r\n page.title.classList.add('fullName');\r\n\r\n const avatarPreview = document.createElement('canvas');\r\n avatarPreview.id = 'canvas-avatar';\r\n avatarPreview.className = 'avatar-edit-canvas';\r\n\r\n const addIco = document.createElement('span');\r\n addIco.className = 'tgico tgico-cameraadd';\r\n\r\n page.imageDiv.append(avatarPreview, addIco);\r\n \r\n const appProfileManager = imported.default;\r\n\r\n let uploadAvatar: () => CancellablePromise<InputFile>;\r\n page.imageDiv.addEventListener('click', () => {\r\n new PopupAvatar().open(avatarPreview, (_uploadAvatar) => {\r\n uploadAvatar = _uploadAvatar;\r\n });\r\n });\r\n\r\n const handleInput = (e: Event) => {\r\n const name = nameInputField.value || '';\r\n const lastName = lastNameInputField.value || '';\r\n\r\n const fullName = name || lastName \r\n ? (name + ' ' + lastName).trim() \r\n : '';\r\n \r\n if(fullName) replaceContent(page.title, RichTextProcessor.wrapEmojiText(fullName));\r\n else replaceContent(page.title, i18n('YourName'));\r\n };\r\n\r\n let sendAvatar = () => new Promise<void>((resolve, reject) => {\r\n if(!uploadAvatar) {\r\n //console.log('User has not selected avatar');\r\n return resolve();\r\n }\r\n\r\n //console.log('invoking uploadFile...');\r\n uploadAvatar().then((inputFile) => {\r\n //console.log('uploaded smthn', inputFile);\r\n \r\n appProfileManager.uploadProfilePhoto(inputFile).then(resolve, reject);\r\n }, reject);\r\n });\r\n\r\n const nameInputField = new InputField({\r\n label: 'FirstName',\r\n maxLength: 70\r\n });\r\n\r\n const lastNameInputField = new InputField({\r\n label: 'LastName',\r\n maxLength: 64\r\n });\r\n\r\n const btnSignUp = Button('btn-primary btn-color-primary');\r\n const btnI18n = new I18n.IntlElement({key: 'StartMessaging'});\r\n btnSignUp.append(btnI18n.element);\r\n\r\n page.inputWrapper.append(nameInputField.container, lastNameInputField.container, btnSignUp);\r\n\r\n nameInputField.input.addEventListener('input', handleInput);\r\n lastNameInputField.input.addEventListener('input', handleInput);\r\n\r\n btnSignUp.addEventListener('click', function(this: typeof btnSignUp, e) {\r\n if(nameInputField.input.classList.contains('error') || lastNameInputField.input.classList.contains('error')) {\r\n return false;\r\n }\r\n\r\n if(!nameInputField.value.length) {\r\n nameInputField.input.classList.add('error');\r\n return false;\r\n }\r\n\r\n this.disabled = true;\r\n\r\n const name = nameInputField.value.trim();\r\n const lastName = lastNameInputField.value.trim();\r\n\r\n const params = {\r\n phone_number: authCode.phone_number,\r\n phone_code_hash: authCode.phone_code_hash,\r\n first_name: name,\r\n last_name: lastName\r\n };\r\n\r\n //console.log('invoking auth.signUp with params:', params);\r\n\r\n btnI18n.update({key: 'PleaseWait'});\r\n const preloader = putPreloader(this);\r\n\r\n apiManager.invokeApi('auth.signUp', params)\r\n .then((response) => {\r\n //console.log('auth.signUp response:', response);\r\n \r\n switch(response._) {\r\n case 'auth.authorization': // success\r\n apiManager.setUserAuth(response.user.id);\r\n\r\n sendAvatar().finally(() => {\r\n pageIm.mount();\r\n });\r\n \r\n break;\r\n default:\r\n btnI18n.update({key: response._ as any});\r\n this.removeAttribute('disabled');\r\n preloader.remove();\r\n break;\r\n }\r\n\r\n /* (document.body.getElementsByClassName('page-sign')[0] as HTMLDivElement).style.display = 'none';\r\n pageAuthCode(Object.assign(code, {phoneNumber})); */\r\n }).catch(err => {\r\n this.removeAttribute('disabled');\r\n preloader.remove();\r\n\r\n switch(err.type) {\r\n default:\r\n btnI18n.update({key: err.type});\r\n break;\r\n }\r\n });\r\n });\r\n\r\n blurActiveElement();\r\n return new Promise((resolve) => {\r\n window.requestAnimationFrame(resolve);\r\n });\r\n});\r\n\r\nconst page = new Page('page-signUp', true, onFirstMount, (_authCode: typeof authCode) => {\r\n authCode = _authCode;\r\n\r\n appStateManager.pushToState('authState', {_: 'authStateSignUp', authCode: _authCode});\r\n appStateManager.saveState();\r\n});\r\n\r\nexport default page;\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\nimport mediaSizes from '../helpers/mediaSizes';\r\nimport { AuthSentCode, AuthSentCodeType, AuthSignIn } from '../layer';\r\nimport appStateManager from '../lib/appManagers/appStateManager';\r\nimport apiManager from '../lib/mtproto/mtprotoworker';\r\nimport Page from './page';\r\nimport pageIm from './pageIm';\r\nimport pagePassword from './pagePassword';\r\nimport pageSignIn from './pageSignIn';\r\nimport pageSignUp from './pageSignUp';\r\nimport TrackingMonkey from '../components/monkeys/tracking';\r\nimport CodeInputField from '../components/codeInputField';\r\nimport { replaceContent } from '../helpers/dom';\r\nimport { i18n, LangPackKey } from '../lib/langPack';\r\nimport { randomLong } from '../helpers/random';\r\n\r\nlet authCode: AuthSentCode.authSentCode = null;\r\n\r\nlet headerElement: HTMLHeadElement = null;\r\nlet sentTypeElement: HTMLParagraphElement = null;\r\nlet codeInput: HTMLInputElement;\r\n\r\nlet onFirstMount = (): Promise<any> => {\r\n const CODELENGTH = (authCode.type as AuthSentCodeType.authSentCodeTypeApp).length;\r\n\r\n const codeInputField = new CodeInputField({\r\n label: 'Code',\r\n name: randomLong(),\r\n length: CODELENGTH,\r\n onFill: (code) => {\r\n submitCode('' + code);\r\n }\r\n });\r\n\r\n codeInput = codeInputField.input as HTMLInputElement;\r\n\r\n page.pageEl.querySelector('.input-wrapper').append(codeInputField.container);\r\n\r\n const editButton = page.pageEl.querySelector('.phone-edit') as HTMLElement;\r\n\r\n editButton.addEventListener('click', function() {\r\n return pageSignIn.mount();\r\n });\r\n\r\n const cleanup = () => {\r\n setTimeout(() => {\r\n monkey.remove();\r\n }, 300);\r\n };\r\n\r\n const submitCode = (code: string) => {\r\n codeInput.setAttribute('disabled', 'true');\r\n\r\n const params: AuthSignIn = {\r\n phone_number: authCode.phone_number,\r\n phone_code_hash: authCode.phone_code_hash,\r\n phone_code: code\r\n };\r\n\r\n //console.log('invoking auth.signIn with params:', params);\r\n\r\n apiManager.invokeApi('auth.signIn', params, {ignoreErrors: true})\r\n .then((response) => {\r\n //console.log('auth.signIn response:', response);\r\n \r\n switch(response._) {\r\n case 'auth.authorization':\r\n apiManager.setUserAuth(response.user.id);\r\n\r\n pageIm.mount();\r\n cleanup();\r\n break;\r\n case 'auth.authorizationSignUpRequired':\r\n //console.log('Registration needed!');\r\n\r\n pageSignUp.mount({\r\n 'phone_number': authCode.phone_number,\r\n 'phone_code_hash': authCode.phone_code_hash\r\n });\r\n\r\n cleanup();\r\n break;\r\n /* default:\r\n codeInput.innerText = response._;\r\n break; */\r\n }\r\n }).catch(async(err) => {\r\n let good = false;\r\n switch(err.type) {\r\n case 'SESSION_PASSWORD_NEEDED':\r\n //console.warn('pageAuthCode: SESSION_PASSWORD_NEEDED');\r\n good = true;\r\n err.handled = true;\r\n await pagePassword.mount();\r\n break;\r\n case 'PHONE_CODE_EXPIRED':\r\n codeInput.classList.add('error');\r\n replaceContent(codeInputField.label, i18n('PHONE_CODE_EXPIRED'));\r\n break;\r\n case 'PHONE_CODE_EMPTY':\r\n case 'PHONE_CODE_INVALID':\r\n codeInput.classList.add('error');\r\n replaceContent(codeInputField.label, i18n('PHONE_CODE_INVALID'));\r\n break;\r\n default:\r\n codeInputField.label.innerText = err.type;\r\n break;\r\n }\r\n\r\n if(!good) {\r\n codeInputField.select();\r\n }\r\n\r\n codeInput.removeAttribute('disabled');\r\n });\r\n };\r\n\r\n const imageDiv = page.pageEl.querySelector('.auth-image') as HTMLDivElement;\r\n const size = mediaSizes.isMobile ? 100 : 166;\r\n const monkey = new TrackingMonkey(codeInputField, size);\r\n imageDiv.append(monkey.container);\r\n return monkey.load();\r\n};\r\n\r\nconst page = new Page('page-authCode', true, onFirstMount, (_authCode: typeof authCode) => {\r\n authCode = _authCode;\r\n\r\n if(!headerElement) {\r\n headerElement = page.pageEl.getElementsByClassName('phone')[0] as HTMLHeadElement;\r\n sentTypeElement = page.pageEl.getElementsByClassName('sent-type')[0] as HTMLParagraphElement;\r\n } else {\r\n codeInput.value = '';\r\n\r\n const evt = document.createEvent('HTMLEvents');\r\n evt.initEvent('input', false, true);\r\n codeInput.dispatchEvent(evt);\r\n }\r\n\r\n headerElement.innerText = authCode.phone_number;\r\n let key: LangPackKey, args: any[];\r\n switch(authCode.type._) {\r\n case 'auth.sentCodeTypeSms':\r\n key = 'Login.Code.SentSms';\r\n break;\r\n case 'auth.sentCodeTypeApp': \r\n key = 'Login.Code.SentInApp';\r\n break;\r\n case 'auth.sentCodeTypeCall': \r\n key = 'Login.Code.SentCall';\r\n break;\r\n default:\r\n key = 'Login.Code.SentUnknown';\r\n args = [authCode.type._];\r\n break;\r\n }\r\n\r\n replaceContent(sentTypeElement, i18n(key, args));\r\n\r\n appStateManager.pushToState('authState', {_: 'authStateAuthCode', sentCode: _authCode});\r\n appStateManager.saveState();\r\n}, () => {\r\n codeInput.focus();\r\n});\r\n\r\nexport default page;\r\n"],"sourceRoot":""}