tweb/public/437.37bcbe9db9cbb8d8a753.ch...

1 line
9.0 KiB
Plaintext

{"version":3,"file":"437.37bcbe9db9cbb8d8a753.chunk.js","mappings":"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","sources":["webpack://tweb/./src/pages/loginPage.ts","webpack://tweb/./src/pages/pagePassword.ts"],"sourcesContent":["/*\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 {LangPackKey, i18n} from '../lib/langPack';\n\nexport default class LoginPage {\n public element: HTMLElement;\n public container: HTMLElement;\n public imageDiv: HTMLElement;\n public inputWrapper: HTMLElement;\n public title: HTMLElement;\n public subtitle: HTMLParagraphElement;\n\n constructor(options: {\n className: string,\n withInputWrapper?: boolean,\n titleLangKey?: LangPackKey,\n subtitleLangKey?: LangPackKey,\n }) {\n this.element = document.body.querySelector('.' + options.className) as HTMLDivElement;\n // this.element = document.createElement('div');\n // this.element.className = 'page-' + options.className;\n\n this.container = document.createElement('div');\n this.container.className = 'container center-align';\n\n this.imageDiv = document.createElement('div');\n this.imageDiv.className = 'auth-image';\n\n this.title = document.createElement('h4');\n if(options.titleLangKey) {\n this.title.append(i18n(options.titleLangKey));\n }\n\n this.subtitle = document.createElement('p');\n this.subtitle.className = 'subtitle';\n if(options.subtitleLangKey) {\n this.subtitle.append(i18n(options.subtitleLangKey));\n }\n\n this.container.append(this.imageDiv, this.title, this.subtitle);\n\n if(options.withInputWrapper) {\n this.inputWrapper = document.createElement('div');\n this.inputWrapper.className = 'input-wrapper';\n this.container.append(this.inputWrapper);\n }\n\n this.element.append(this.container);\n }\n}\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\nimport {putPreloader} from '../components/putPreloader';\nimport mediaSizes from '../helpers/mediaSizes';\nimport {AccountPassword} from '../layer';\nimport Page from './page';\nimport Button from '../components/button';\nimport PasswordInputField from '../components/passwordInputField';\nimport PasswordMonkey from '../components/monkeys/password';\nimport I18n from '../lib/langPack';\nimport LoginPage from './loginPage';\nimport cancelEvent from '../helpers/dom/cancelEvent';\nimport {attachClickEvent} from '../helpers/dom/clickEvent';\nimport htmlToSpan from '../helpers/dom/htmlToSpan';\nimport replaceContent from '../helpers/dom/replaceContent';\nimport toggleDisability from '../helpers/dom/toggleDisability';\nimport wrapEmojiText from '../lib/richTextProcessor/wrapEmojiText';\nimport rootScope from '../lib/rootScope';\n\nconst TEST = false;\nlet passwordInput: HTMLInputElement;\n\nconst onFirstMount = (): Promise<any> => {\n const page = new LoginPage({\n className: 'page-password',\n withInputWrapper: true,\n titleLangKey: 'Login.Password.Title',\n subtitleLangKey: 'Login.Password.Subtitle'\n });\n\n const btnNext = Button('btn-primary btn-color-primary');\n const btnNextI18n = new I18n.IntlElement({key: 'Login.Next'});\n\n btnNext.append(btnNextI18n.element);\n\n const passwordInputField = new PasswordInputField({\n label: 'LoginPassword',\n name: 'password'\n });\n\n passwordInput = passwordInputField.input as HTMLInputElement;\n\n page.inputWrapper.append(passwordInputField.container, btnNext);\n\n let getStateInterval: number;\n\n const getState = () => {\n // * just to check session relevance\n if(!getStateInterval) {\n getStateInterval = window.setInterval(getState, 10e3);\n }\n\n return !TEST && rootScope.managers.passwordManager.getState().then((_state) => {\n state = _state;\n\n if(state.hint) {\n replaceContent(passwordInputField.label, htmlToSpan(wrapEmojiText(state.hint)));\n } else {\n passwordInputField.setLabel();\n }\n });\n };\n\n let state: AccountPassword;\n\n const onSubmit = (e?: Event) => {\n if(e) {\n cancelEvent(e);\n }\n\n if(!passwordInput.value.length) {\n passwordInput.classList.add('error');\n return;\n }\n\n const toggle = toggleDisability([passwordInput, btnNext], true);\n const value = passwordInput.value;\n\n btnNextI18n.update({key: 'PleaseWait'});\n const preloader = putPreloader(btnNext);\n\n passwordInputField.setValueSilently('' + Math.random()); // prevent saving suggestion\n passwordInputField.setValueSilently(value); // prevent saving suggestion\n\n rootScope.managers.passwordManager.check(value, state).then((response) => {\n // console.log('passwordManager response:', response);\n\n switch(response._) {\n case 'auth.authorization':\n clearInterval(getStateInterval);\n import('./pageIm').then((m) => {\n m.default.mount();\n });\n if(monkey) monkey.remove();\n break;\n default:\n btnNext.removeAttribute('disabled');\n btnNextI18n.update({key: response._ as any});\n preloader.remove();\n break;\n }\n }).catch((err: any) => {\n toggle();\n passwordInputField.input.classList.add('error');\n\n switch(err.type) {\n default:\n // btnNext.innerText = err.type;\n btnNextI18n.update({key: 'PASSWORD_HASH_INVALID'});\n passwordInput.select();\n break;\n }\n\n preloader.remove();\n\n getState();\n });\n };\n\n attachClickEvent(btnNext, onSubmit);\n\n passwordInput.addEventListener('keypress', function(this, e) {\n this.classList.remove('error');\n btnNextI18n.update({key: 'Login.Next'});\n\n if(e.key === 'Enter') {\n return onSubmit();\n }\n });\n\n const size = mediaSizes.isMobile ? 100 : 166;\n const monkey = new PasswordMonkey(passwordInputField, size);\n page.imageDiv.append(monkey.container);\n return Promise.all([\n monkey.load(),\n getState()\n ]);\n};\n\nconst page = new Page('page-password', true, onFirstMount, null, () => {\n // if(!isAppleMobile) {\n passwordInput.focus();\n // }\n\n rootScope.managers.appStateManager.pushToState('authState', {_: 'authStatePassword'});\n});\n\nexport default page;\n"],"names":["LoginPage","constructor","options","this","element","document","body","querySelector","className","container","createElement","imageDiv","title","titleLangKey","append","subtitle","subtitleLangKey","withInputWrapper","inputWrapper","passwordInput","page","btnNext","btnNextI18n","key","passwordInputField","label","name","getStateInterval","input","getState","window","setInterval","then","_state","state","hint","setLabel","onSubmit","e","value","length","classList","add","toggle","update","preloader","setValueSilently","Math","random","response","_","clearInterval","m","default","mount","monkey","remove","removeAttribute","catch","err","type","select","addEventListener","size","Promise","all","load","focus"],"sourceRoot":""}