Merge branch 'input-custom-emoji'

This commit is contained in:
Eduard Kuzmenko 2022-11-01 21:44:01 +04:00
commit 45bc426d5b
189 changed files with 5001 additions and 1535 deletions

4
.env
View File

@ -1,5 +1,5 @@
API_ID=1025907
API_HASH=452b0359b988148995f22ff0f4229750
VERSION=1.5.0
VERSION_FULL=1.5.0 (244)
VERSION=1.6.0
VERSION_FULL=1.6.0 (244)
BUILD=244

View File

@ -1,3 +1,25 @@
### 1.6.0 (244)
Today, [WebK](https://web.telegram.org/k) introduces a redesigned **Emoji and Sticker Panel** try the **collapsible section** for default emoji categories and the **scrollable bar** for your custom emoji sets.
The new Panel features a beautiful blur effect on most desktop browsers and allows you to **send** or **edit** messages containing custom emoji. __(All users can try out this feature in their Saved Messages)__
In the Stickers tab, you can now add or remove stickers from favorites, **send without sound** or individually delete them from the __Recents__ section.
**Preview Stickers and Emoji**
You can now get a closer look at stickers and emoji, both in the panel and in chats. Click and hold, then hover your cursor over the one you'd like to see in better detail.
Stickers are now rendered more efficiently, using fewer resources and **saving battery**. Custom Emoji have also had more improvements since their launch in [late August](https://t.me/WebK_en/7).
**Downloading Files**
The download flow has been reworked from scratch. When you download something, the app uses your connection in the **most efficient** way possible. Premium users will notice how dramatically fast the app downloads files for them a little demo is available [here](https://t.me/WebK_en/7?comment=531).
Large files of **up to 4 GB** are now supported for both upload and download. There is also support for native downloading in certain browsers your browser will place active downloads on the instrument bar.
**Payments 2.0**
Significant optimizations were added to smoothly process payments in **any browser**, and adding familiar functionality from other Telegram apps. Bot payments, @donate invoices and more are supported including the ability to subscribe to Telegram Premium with @PremiumBot.
Dozens of bug fixes were also made to the app  but those can be a bit boring to read. If you ever come across a bug in the app, make sure to let us know on the [Bugs and Suggestions Platform](https://bugs.telegram.org/?tag_ids=40&type=issues&sort=time).
### 1.5.0 (178)
1⃣ Introducing support for **Multiple Tabs** a first for Telegram Web Apps customizing how you browse Telegram to increase comfort and productivity.

View File

@ -1,3 +1,18 @@
### 1.6.0 (244)
[WebK](https://web.telegram.org/k) продолжает совершенствоваться и сегодня представляет новую **панель эмодзи, стикеров и GIF**.
Встречайте [авторские эмодзи](https://telegram.org/blog/custom-emoji/ru#avtorskie-animirovannie-emodzi) Telegram теперь и для браузеров. Просмотр категорий базовых эмодзи доступен по клику на значок в открытой панели. Прокручивайте панель вправо и обратно для навигации по наборам. С новой панелью Вы можете набирать авторские эмодзи или редактировать сообщения, которые их содержат. (Если Вы ещё не оформили подписку [Telegram Premium](https://t.me/premium), испытать авторские эмодзи можно в __Избранном__.) В большинстве настольных браузеров панель поддерживает красивый эффект размытия. Вкладка стикеров получила ряд долгожданных улучшений добавление и удаление стикера в избранные, отправку без звука и также удаление из раздела __«Недавние»__.
__Среди последних нововведений:__
**Просмотрщик стикеров и эмодзи** наведите курсор на стикер или эмодзи и зажмите его. Продолжайте вести курсор, чтобы рассмотреть всё в мельчайших деталях. Эта опция работает как в панели, так и в самом чате. Отрисовка стикеров и [авторских эмодзи](https://t.me/WebK_ru/7) была оптимизирована и теперь задействует меньше ресурсов Вашего устройства.
**Загрузка файлов и медиа** загрузчик переписан с нуля. Когда Вы что-то загружаете, приложение с максимальной эффективностью использует ваш интернет-канал. Подписчики Telegram Premium заметят существенный прирост в скорости загрузки –небольшая демонстрация есть [тут](https://t.me/WebK_en/7?comment=531). [WebK](http://web.telegram.org/k) поддержал **файлы до 4 GB** и нативную загрузку для некоторых браузеров.
**Платежи 2.0** внедрена поддержка платежей с оптимизацией специально для браузеров. Приложение максимально переиспользовало уже знакомый Вам опыт по нативным приложениям Telegram. C помощью [WebK](http://web.telegram.org/k) вы можете оплачивать счета, например, от @donate или оформить Telegram Premium с помощью @PremiumBot.
P.S. Мы не включаем списки исправлений в эти сообщения. Про баги мало кому интересно читать. Недоработки постоянно устраняются, а баги уничтожаются. Если Вы столкнулись с проблемой, пожалуйста, дайте знать на [платформе багов и предложений](https://bugs.telegram.org/?tag_ids=40&type=issues&sort=time).
### 1.5.0 (178)
1⃣ WebK представляет поддержку работы **нескольких вкладок одновременно** первым среди веб-приложений Telegram. Исследуйте новые возможности за границами привычного Вам опыта:

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,2 +1,2 @@
"use strict";(this.webpackChunktweb=this.webpackChunktweb||[]).push([[301],{9301:(e,n,o)=>{o.r(n),o.d(n,{default:()=>i});const i={"Login.Title":"Sign in to Telegram","Login.PhoneLabel":"Phone Number","Login.PhoneLabelInvalid":"Phone Number Invalid","Login.KeepSigned":"Keep me signed in","Login.StartText":"Please confirm your country and\nenter your phone number.","Login.Code.SentSms":"We have sent you an SMS\nwith the code.","Login.Code.SentInApp":"We have sent you a message in Telegram\nwith the code.","Login.Code.SentCall":"We will call you and voice\nthe code.","Login.Code.SentUnknown":"Please check everything\nfor a code (type: %s)","Login.Password.Title":"Enter Your Password","Login.Password.Subtitle":"Your account is protected with\nan additional password","Login.Register.Subtitle":"Enter your name and add\na profile picture",PleaseWait:"Please wait...",Code:"Code",LoginPassword:"Password",YourName:"Your Name",FirstName:"First name (required)",LastName:"Last name (optional)",StartMessaging:"Start Messaging",Country:"Country","Contacts.PhoneNumber.Placeholder":"Phone Number","Login.Next":"Next","Login.ContinueOnLanguage":"Continue in English","Login.QR.Title":"Log in to Telegram by QR Code","Login.QR.Help1":"Open Telegram on your phone","Login.QR.Help2":"Go to **Settings** > **Devices** > **Link Desktop Device**","Login.QR.Help3":"Point your phone at this screen to confirm login","Login.QR.Cancel":"Log in by phone Number","Login.QR.Login":"Log in by QR Code",PHONE_CODE_INVALID:"Invalid code",PHONE_CODE_EXPIRED:"Code expired",PASSWORD_HASH_INVALID:"Incorrect password"}}}]);
//# sourceMappingURL=301.5beb25e1ca4f91ab78d0.chunk.js.map
//# sourceMappingURL=301.a3f22008d452affb1ae4.chunk.js.map

View File

@ -1 +1 @@
{"version":3,"file":"301.5beb25e1ca4f91ab78d0.chunk.js","mappings":"yHAAA,MAuCA,EAvCa,CACX,cAAe,sBACf,mBAAoB,eACpB,0BAA2B,uBAC3B,mBAAoB,oBACpB,kBAAmB,4DACnB,qBAAsB,0CACtB,uBAAwB,yDACxB,sBAAuB,wCACvB,yBAA0B,iDAC1B,uBAAwB,sBACxB,0BAA2B,yDAC3B,0BAA2B,6CAC3B,WAAc,iBAGd,KAAQ,OACR,cAAiB,WACjB,SAAY,YACZ,UAAa,wBACb,SAAY,uBACZ,eAAkB,kBAClB,QAAW,UAGX,mCAAoC,eACpC,aAAc,OACd,2BAA4B,sBAC5B,iBAAkB,gCAClB,iBAAkB,8BAClB,iBAAkB,6DAClB,iBAAkB,mDAClB,kBAAmB,yBACnB,iBAAkB,oBAClB,mBAAsB,eACtB,mBAAsB,eACtB,sBAAyB","sources":["webpack://tweb/./src/langSign.ts"],"sourcesContent":["const lang = {\r\n 'Login.Title': 'Sign in to Telegram',\r\n 'Login.PhoneLabel': 'Phone Number',\r\n 'Login.PhoneLabelInvalid': 'Phone Number Invalid',\r\n 'Login.KeepSigned': 'Keep me signed in',\r\n 'Login.StartText': 'Please confirm your country and\\nenter your phone number.',\r\n 'Login.Code.SentSms': 'We have sent you an SMS\\nwith the code.',\r\n 'Login.Code.SentInApp': 'We have sent you a message in Telegram\\nwith the code.',\r\n 'Login.Code.SentCall': 'We will call you and voice\\nthe code.',\r\n 'Login.Code.SentUnknown': 'Please check everything\\nfor a code (type: %s)',\r\n 'Login.Password.Title': 'Enter Your Password',\r\n 'Login.Password.Subtitle': 'Your account is protected with\\nan additional password',\r\n 'Login.Register.Subtitle': 'Enter your name and add\\na profile picture',\r\n 'PleaseWait': 'Please wait...',\r\n\r\n // * android\r\n 'Code': 'Code',\r\n 'LoginPassword': 'Password',\r\n 'YourName': 'Your Name',\r\n 'FirstName': 'First name (required)',\r\n 'LastName': 'Last name (optional)',\r\n 'StartMessaging': 'Start Messaging',\r\n 'Country': 'Country',\r\n\r\n // * macos\r\n 'Contacts.PhoneNumber.Placeholder': 'Phone Number',\r\n 'Login.Next': 'Next',\r\n 'Login.ContinueOnLanguage': 'Continue in English',\r\n 'Login.QR.Title': 'Log in to Telegram by QR Code',\r\n 'Login.QR.Help1': 'Open Telegram on your phone',\r\n 'Login.QR.Help2': 'Go to **Settings** > **Devices** > **Link Desktop Device**',\r\n 'Login.QR.Help3': 'Point your phone at this screen to confirm login',\r\n 'Login.QR.Cancel': 'Log in by phone Number',\r\n 'Login.QR.Login': 'Log in by QR Code',\r\n 'PHONE_CODE_INVALID': 'Invalid code',\r\n 'PHONE_CODE_EXPIRED': 'Code expired',\r\n 'PASSWORD_HASH_INVALID': 'Incorrect password'\r\n};\r\n\r\nexport default lang;\r\n"],"names":[],"sourceRoot":""}
{"version":3,"file":"301.a3f22008d452affb1ae4.chunk.js","mappings":"yHAAA,MAuCA,EAvCa,CACX,cAAe,sBACf,mBAAoB,eACpB,0BAA2B,uBAC3B,mBAAoB,oBACpB,kBAAmB,4DACnB,qBAAsB,0CACtB,uBAAwB,yDACxB,sBAAuB,wCACvB,yBAA0B,iDAC1B,uBAAwB,sBACxB,0BAA2B,yDAC3B,0BAA2B,6CAC3B,WAAc,iBAGd,KAAQ,OACR,cAAiB,WACjB,SAAY,YACZ,UAAa,wBACb,SAAY,uBACZ,eAAkB,kBAClB,QAAW,UAGX,mCAAoC,eACpC,aAAc,OACd,2BAA4B,sBAC5B,iBAAkB,gCAClB,iBAAkB,8BAClB,iBAAkB,6DAClB,iBAAkB,mDAClB,kBAAmB,yBACnB,iBAAkB,oBAClB,mBAAsB,eACtB,mBAAsB,eACtB,sBAAyB","sources":["webpack://tweb/./src/langSign.ts"],"sourcesContent":["const lang = {\r\n 'Login.Title': 'Sign in to Telegram',\r\n 'Login.PhoneLabel': 'Phone Number',\r\n 'Login.PhoneLabelInvalid': 'Phone Number Invalid',\r\n 'Login.KeepSigned': 'Keep me signed in',\r\n 'Login.StartText': 'Please confirm your country and\\nenter your phone number.',\r\n 'Login.Code.SentSms': 'We have sent you an SMS\\nwith the code.',\r\n 'Login.Code.SentInApp': 'We have sent you a message in Telegram\\nwith the code.',\r\n 'Login.Code.SentCall': 'We will call you and voice\\nthe code.',\r\n 'Login.Code.SentUnknown': 'Please check everything\\nfor a code (type: %s)',\r\n 'Login.Password.Title': 'Enter Your Password',\r\n 'Login.Password.Subtitle': 'Your account is protected with\\nan additional password',\r\n 'Login.Register.Subtitle': 'Enter your name and add\\na profile picture',\r\n 'PleaseWait': 'Please wait...',\r\n\r\n // * android\r\n 'Code': 'Code',\r\n 'LoginPassword': 'Password',\r\n 'YourName': 'Your Name',\r\n 'FirstName': 'First name (required)',\r\n 'LastName': 'Last name (optional)',\r\n 'StartMessaging': 'Start Messaging',\r\n 'Country': 'Country',\r\n\r\n // * macos\r\n 'Contacts.PhoneNumber.Placeholder': 'Phone Number',\r\n 'Login.Next': 'Next',\r\n 'Login.ContinueOnLanguage': 'Continue in English',\r\n 'Login.QR.Title': 'Log in to Telegram by QR Code',\r\n 'Login.QR.Help1': 'Open Telegram on your phone',\r\n 'Login.QR.Help2': 'Go to **Settings** > **Devices** > **Link Desktop Device**',\r\n 'Login.QR.Help3': 'Point your phone at this screen to confirm login',\r\n 'Login.QR.Cancel': 'Log in by phone Number',\r\n 'Login.QR.Login': 'Log in by QR Code',\r\n 'PHONE_CODE_INVALID': 'Invalid code',\r\n 'PHONE_CODE_EXPIRED': 'Code expired',\r\n 'PASSWORD_HASH_INVALID': 'Incorrect password'\r\n};\r\n\r\nexport default lang;\r\n"],"names":[],"sourceRoot":""}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,2 +1,2 @@
"use strict";(this.webpackChunktweb=this.webpackChunktweb||[]).push([[339,813],{2582:(e,t,a)=>{a.d(t,{Z:()=>i});var n=a(2325);class i{constructor(e){this.element=document.body.querySelector("."+e.className),this.container=document.createElement("div"),this.container.className="container center-align",this.imageDiv=document.createElement("div"),this.imageDiv.className="auth-image",this.title=document.createElement("h4"),e.titleLangKey&&this.title.append((0,n.ag)(e.titleLangKey)),this.subtitle=document.createElement("p"),this.subtitle.className="subtitle",e.subtitleLangKey&&this.subtitle.append((0,n.ag)(e.subtitleLangKey)),this.container.append(this.imageDiv,this.title,this.subtitle),e.withInputWrapper&&(this.inputWrapper=document.createElement("div"),this.inputWrapper.className="input-wrapper",this.container.append(this.inputWrapper)),this.element.append(this.container)}}},8339:(e,t,a)=>{a.r(t),a.d(t,{default:()=>v});var n=a(4494),i=a(503),s=a(279),r=a(6765),p=a(2325),l=a(2582),u=a(4874),c=a(8799),o=a(5565),m=a(1168),d=a(8115),h=a(3512);let g=null;const v=new u.Z("page-signUp",!0,(()=>{const e=new l.Z({className:"page-signUp",withInputWrapper:!0,titleLangKey:"YourName",subtitleLangKey:"Login.Register.Subtitle"});e.imageDiv.classList.add("avatar-edit"),e.title.classList.add("fullName");const t=document.createElement("canvas");t.id="canvas-avatar",t.className="avatar-edit-canvas";const u=document.createElement("span");let v;u.className="tgico tgico-cameraadd",e.imageDiv.append(t,u),e.imageDiv.addEventListener("click",(()=>{m.Z.createPopup(r.Z).open(t,(e=>{v=e}))}));const b=t=>{const a=L.value||"",n=y.value||"",i=a||n?(a+" "+n).trim():"";i?(0,o.Z)(e.title,(0,d.Z)(i)):(0,o.Z)(e.title,(0,p.ag)("YourName"))},L=new i.Z({label:"FirstName",maxLength:70}),y=new i.Z({label:"LastName",maxLength:64}),Z=(0,n.Z)("btn-primary btn-color-primary"),w=new p.ZP.IntlElement({key:"StartMessaging"});return Z.append(w.element),e.inputWrapper.append(L.container,y.container,Z),L.input.addEventListener("input",b),y.input.addEventListener("input",b),Z.addEventListener("click",(function(e){if(L.input.classList.contains("error")||y.input.classList.contains("error"))return!1;if(!L.value.length)return L.input.classList.add("error"),!1;this.disabled=!0;const t=L.value.trim(),n=y.value.trim(),i={phone_number:g.phone_number,phone_code_hash:g.phone_code_hash,first_name:t,last_name:n};w.update({key:"PleaseWait"});const r=(0,s.y)(this);h.Z.managers.apiManager.invokeApi("auth.signUp",i).then((e=>{"auth.authorization"===e._?(h.Z.managers.apiManager.setUser(e.user),new Promise(((e,t)=>{if(!v)return e();v().then((a=>{h.Z.managers.appProfileManager.uploadProfilePhoto(a).then(e,t)}),t)})).finally((()=>{a.e(781).then(a.bind(a,5436)).then((e=>{e.default.mount()}))}))):(w.update({key:e._}),this.removeAttribute("disabled"),r.remove())})).catch((e=>{this.removeAttribute("disabled"),r.remove(),e.type,w.update({key:e.type})}))})),(0,c.Z)(),new Promise((e=>{window.requestAnimationFrame(e)}))}),(e=>{g=e,h.Z.managers.appStateManager.pushToState("authState",{_:"authStateSignUp",authCode:e})}))}}]);
//# sourceMappingURL=339.657931115108a43a2062.chunk.js.map
"use strict";(this.webpackChunktweb=this.webpackChunktweb||[]).push([[339,813],{2582:(e,t,a)=>{a.d(t,{Z:()=>i});var n=a(2325);class i{constructor(e){this.element=document.body.querySelector("."+e.className),this.container=document.createElement("div"),this.container.className="container center-align",this.imageDiv=document.createElement("div"),this.imageDiv.className="auth-image",this.title=document.createElement("h4"),e.titleLangKey&&this.title.append((0,n.ag)(e.titleLangKey)),this.subtitle=document.createElement("p"),this.subtitle.className="subtitle",e.subtitleLangKey&&this.subtitle.append((0,n.ag)(e.subtitleLangKey)),this.container.append(this.imageDiv,this.title,this.subtitle),e.withInputWrapper&&(this.inputWrapper=document.createElement("div"),this.inputWrapper.className="input-wrapper",this.container.append(this.inputWrapper)),this.element.append(this.container)}}},8339:(e,t,a)=>{a.r(t),a.d(t,{default:()=>v});var n=a(4494),i=a(503),s=a(279),r=a(6765),p=a(2325),l=a(2582),u=a(4874),c=a(8799),o=a(5565),m=a(1168),d=a(8115),h=a(3512);let g=null;const v=new u.Z("page-signUp",!0,(()=>{const e=new l.Z({className:"page-signUp",withInputWrapper:!0,titleLangKey:"YourName",subtitleLangKey:"Login.Register.Subtitle"});e.imageDiv.classList.add("avatar-edit"),e.title.classList.add("fullName");const t=document.createElement("canvas");t.id="canvas-avatar",t.className="avatar-edit-canvas";const u=document.createElement("span");let v;u.className="tgico tgico-cameraadd",e.imageDiv.append(t,u),e.imageDiv.addEventListener("click",(()=>{m.Z.createPopup(r.Z).open(t,(e=>{v=e}))}));const b=t=>{const a=L.value||"",n=y.value||"",i=a||n?(a+" "+n).trim():"";i?(0,o.Z)(e.title,(0,d.Z)(i)):(0,o.Z)(e.title,(0,p.ag)("YourName"))},L=new i.ZP({label:"FirstName",maxLength:70}),y=new i.ZP({label:"LastName",maxLength:64}),Z=(0,n.Z)("btn-primary btn-color-primary"),w=new p.ZP.IntlElement({key:"StartMessaging"});return Z.append(w.element),e.inputWrapper.append(L.container,y.container,Z),L.input.addEventListener("input",b),y.input.addEventListener("input",b),Z.addEventListener("click",(function(e){if(L.input.classList.contains("error")||y.input.classList.contains("error"))return!1;if(!L.value.length)return L.input.classList.add("error"),!1;this.disabled=!0;const t=L.value.trim(),n=y.value.trim(),i={phone_number:g.phone_number,phone_code_hash:g.phone_code_hash,first_name:t,last_name:n};w.update({key:"PleaseWait"});const r=(0,s.y)(this);h.Z.managers.apiManager.invokeApi("auth.signUp",i).then((e=>{"auth.authorization"===e._?(h.Z.managers.apiManager.setUser(e.user),new Promise(((e,t)=>{if(!v)return e();v().then((a=>{h.Z.managers.appProfileManager.uploadProfilePhoto(a).then(e,t)}),t)})).finally((()=>{a.e(781).then(a.bind(a,5436)).then((e=>{e.default.mount()}))}))):(w.update({key:e._}),this.removeAttribute("disabled"),r.remove())})).catch((e=>{this.removeAttribute("disabled"),r.remove(),e.type,w.update({key:e.type})}))})),(0,c.Z)(),new Promise((e=>{window.requestAnimationFrame(e)}))}),(e=>{g=e,h.Z.managers.appStateManager.pushToState("authState",{_:"authStateSignUp",authCode:e})}))}}]);
//# sourceMappingURL=339.71339df190fc830c4c28.chunk.js.map

View File

@ -1,2 +1,2 @@
"use strict";(this.webpackChunktweb=this.webpackChunktweb||[]).push([[392],{6392:(e,t,n)=>{n.r(t),n.d(t,{default:()=>g});var a=n(4755),o=n(4874),s=n(810),r=n(3083),u=n(4489),i=n(2325),l=n(144),h=n(5565),c=n(3512);let p,d=null,E=null,_=null;const b=new o.Z("page-authCode",!0,(()=>{const e=d.type.length,t=new u.Z({label:"Code",name:(0,l.a)(),length:e,onFill:e=>{E(e)}});p=t.input,b.pageEl.querySelector(".input-wrapper").append(t.container),b.pageEl.querySelector(".phone-edit").addEventListener("click",(function(){return s.default.mount()}));const o=()=>{setTimeout((()=>{m.remove()}),300)},E=e=>{p.setAttribute("disabled","true");const a={phone_number:d.phone_number,phone_code_hash:d.phone_code_hash,phone_code:e};c.Z.managers.apiManager.invokeApi("auth.signIn",a,{ignoreErrors:!0}).then((e=>{switch(e._){case"auth.authorization":c.Z.managers.apiManager.setUser(e.user),n.e(781).then(n.bind(n,5436)).then((e=>{e.default.mount()})),o();break;case"auth.authorizationSignUpRequired":n.e(813).then(n.bind(n,8339)).then((e=>{e.default.mount({phone_number:d.phone_number,phone_code_hash:d.phone_code_hash})})),o()}})).catch((e=>{return a=void 0,o=void 0,r=function*(){let a=!1;switch(e.type){case"SESSION_PASSWORD_NEEDED":a=!0,e.handled=!0,yield(yield n.e(774).then(n.bind(n,9437))).default.mount(),setTimeout((()=>{p.value=""}),300);break;case"PHONE_CODE_EXPIRED":p.classList.add("error"),(0,h.Z)(t.label,(0,i.ag)("PHONE_CODE_EXPIRED"));break;case"PHONE_CODE_EMPTY":case"PHONE_CODE_INVALID":p.classList.add("error"),(0,h.Z)(t.label,(0,i.ag)("PHONE_CODE_INVALID"));break;default:t.label.innerText=e.type}a||t.select(),p.removeAttribute("disabled")},new((s=void 0)||(s=Promise))((function(e,t){function n(e){try{i(r.next(e))}catch(e){t(e)}}function u(e){try{i(r.throw(e))}catch(e){t(e)}}function i(t){var a;t.done?e(t.value):(a=t.value,a instanceof s?a:new s((function(e){e(a)}))).then(n,u)}i((r=r.apply(a,o||[])).next())}));var a,o,s,r}))},_=b.pageEl.querySelector(".auth-image"),g=a.Z.isMobile?100:166,m=new r.Z(t,g);return _.append(m.container),m.load()}),(e=>{if(d=e,E){p.value="";const e=document.createEvent("HTMLEvents");e.initEvent("input",!1,!0),p.dispatchEvent(e)}else E=b.pageEl.getElementsByClassName("phone")[0],_=b.pageEl.getElementsByClassName("sent-type")[0];let t,n;switch(E.innerText=d.phone_number,d.type._){case"auth.sentCodeTypeSms":t="Login.Code.SentSms";break;case"auth.sentCodeTypeApp":t="Login.Code.SentInApp";break;case"auth.sentCodeTypeCall":t="Login.Code.SentCall";break;default:t="Login.Code.SentUnknown",n=[d.type._]}(0,h.Z)(_,(0,i.ag)(t,n)),c.Z.managers.appStateManager.pushToState("authState",{_:"authStateAuthCode",sentCode:e})}),(()=>{p.focus()})),g=b}}]);
//# sourceMappingURL=392.b47fa0412c7c6c04f47d.chunk.js.map
//# sourceMappingURL=392.e5af3d797602c96434d1.chunk.js.map

View File

@ -1,2 +1,2 @@
"use strict";(this.webpackChunktweb=this.webpackChunktweb||[]).push([[436,781],{5436:(e,t,a)=>{a.r(t),a.d(t,{default:()=>h});var n=a(8799),s=a(4541),r=a(2325),l=a(3512);const o=new(a(4874).Z)("page-chats",!1,(()=>(l.Z.managers.appStateManager.pushToState("authState",{_:"authStateSignedIn"}),r.ZP.requestedServerLanguage||r.ZP.getCacheLangPack().then((e=>{e.local&&r.ZP.getLangPack(e.lang_code)})),o.pageEl.style.display="",(0,n.Z)(),Promise.all([(0,s.Z)(),Promise.resolve().then(a.bind(a,7692)),"requestVideoFrameCallback"in HTMLVideoElement.prototype?Promise.resolve():a.e(783).then(a.bind(a,7482))]).then((([e,t,a])=>{t.default.start(),setTimeout((()=>{document.getElementById("auth-pages").remove()}),1e3)}))))),h=o}}]);
//# sourceMappingURL=436.b69d4701e0285a8451f4.chunk.js.map
//# sourceMappingURL=436.d0c1cd6eba3122965b23.chunk.js.map

View File

@ -1 +1 @@
{"version":3,"file":"436.b69d4701e0285a8451f4.chunk.js","mappings":"yKAYA,MA0CMA,EAAO,I,QAAI,GAAK,cAAc,GA1Cf,KACnB,yCAA+C,YAAa,CAACC,EAAG,sBAI5D,8BACF,wBAAwBC,MAAMC,IACzBA,EAASC,OACV,iBAAiBD,EAASE,cAKhCL,EAAKM,OAAOC,MAAMC,QAAU,IAe5B,SAEOC,QAAQC,IAAI,EACjB,SACA,uCACA,8BAA+BC,iBAAiBC,UAAYH,QAAQI,UAAY,gCAC/EX,MAAK,EAAED,EAAGa,EAAmBC,MAC9BD,EAAkBE,QAAQC,QAC1BC,YAAW,KACTC,SAASC,eAAe,cAAcC,WACrC,WAKP","sources":["webpack://tweb/./src/pages/pageIm.ts"],"sourcesContent":["/*\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/blurActiveElement';\r\nimport loadFonts from '../helpers/dom/loadFonts';\r\nimport I18n from '../lib/langPack';\r\nimport rootScope from '../lib/rootScope';\r\nimport Page from './page';\r\n\r\nconst onFirstMount = () => {\r\n rootScope.managers.appStateManager.pushToState('authState', {_: 'authStateSignedIn'});\r\n // ! TOO SLOW\r\n /* appStateManager.saveState(); */\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 page.pageEl.style.display = '';\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 blurActiveElement();\r\n\r\n return Promise.all([\r\n loadFonts()/* .then(() => new Promise((resolve) => window.requestAnimationFrame(resolve))) */,\r\n import('../lib/appManagers/appDialogsManager'),\r\n 'requestVideoFrameCallback' in HTMLVideoElement.prototype ? Promise.resolve() : import('../helpers/dom/requestVideoFrameCallbackPolyfill')\r\n ]).then(([_, appDialogsManager, __]) => {\r\n appDialogsManager.default.start();\r\n setTimeout(() => {\r\n document.getElementById('auth-pages').remove();\r\n }, 1e3);\r\n });\r\n};\r\n\r\nconst page = new Page('page-chats', false, onFirstMount);\r\nexport default page;\r\n"],"names":["page","_","then","langPack","local","lang_code","pageEl","style","display","Promise","all","HTMLVideoElement","prototype","resolve","appDialogsManager","__","default","start","setTimeout","document","getElementById","remove"],"sourceRoot":""}
{"version":3,"file":"436.d0c1cd6eba3122965b23.chunk.js","mappings":"yKAYA,MA0CMA,EAAO,I,QAAI,GAAK,cAAc,GA1Cf,KACnB,yCAA+C,YAAa,CAACC,EAAG,sBAI5D,8BACF,wBAAwBC,MAAMC,IACzBA,EAASC,OACV,iBAAiBD,EAASE,cAKhCL,EAAKM,OAAOC,MAAMC,QAAU,IAe5B,SAEOC,QAAQC,IAAI,EACjB,SACA,uCACA,8BAA+BC,iBAAiBC,UAAYH,QAAQI,UAAY,gCAC/EX,MAAK,EAAED,EAAGa,EAAmBC,MAC9BD,EAAkBE,QAAQC,QAC1BC,YAAW,KACTC,SAASC,eAAe,cAAcC,WACrC,WAKP","sources":["webpack://tweb/./src/pages/pageIm.ts"],"sourcesContent":["/*\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/blurActiveElement';\r\nimport loadFonts from '../helpers/dom/loadFonts';\r\nimport I18n from '../lib/langPack';\r\nimport rootScope from '../lib/rootScope';\r\nimport Page from './page';\r\n\r\nconst onFirstMount = () => {\r\n rootScope.managers.appStateManager.pushToState('authState', {_: 'authStateSignedIn'});\r\n // ! TOO SLOW\r\n /* appStateManager.saveState(); */\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 page.pageEl.style.display = '';\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 blurActiveElement();\r\n\r\n return Promise.all([\r\n loadFonts()/* .then(() => new Promise((resolve) => window.requestAnimationFrame(resolve))) */,\r\n import('../lib/appManagers/appDialogsManager'),\r\n 'requestVideoFrameCallback' in HTMLVideoElement.prototype ? Promise.resolve() : import('../helpers/dom/requestVideoFrameCallbackPolyfill')\r\n ]).then(([_, appDialogsManager, __]) => {\r\n appDialogsManager.default.start();\r\n setTimeout(() => {\r\n document.getElementById('auth-pages').remove();\r\n }, 1e3);\r\n });\r\n};\r\n\r\nconst page = new Page('page-chats', false, onFirstMount);\r\nexport default page;\r\n"],"names":["page","_","then","langPack","local","lang_code","pageEl","style","display","Promise","all","HTMLVideoElement","prototype","resolve","appDialogsManager","__","default","start","setTimeout","document","getElementById","remove"],"sourceRoot":""}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,2 +1,2 @@
"use strict";(this.webpackChunktweb=this.webpackChunktweb||[]).push([[442,774],{2582:(e,t,a)=>{a.d(t,{Z:()=>s});var n=a(2325);class s{constructor(e){this.element=document.body.querySelector("."+e.className),this.container=document.createElement("div"),this.container.className="container center-align",this.imageDiv=document.createElement("div"),this.imageDiv.className="auth-image",this.title=document.createElement("h4"),e.titleLangKey&&this.title.append((0,n.ag)(e.titleLangKey)),this.subtitle=document.createElement("p"),this.subtitle.className="subtitle",e.subtitleLangKey&&this.subtitle.append((0,n.ag)(e.subtitleLangKey)),this.container.append(this.imageDiv,this.title,this.subtitle),e.withInputWrapper&&(this.inputWrapper=document.createElement("div"),this.inputWrapper.className="input-wrapper",this.container.append(this.inputWrapper)),this.element.append(this.container)}}},9437:(e,t,a)=>{a.r(t),a.d(t,{default:()=>v});var n=a(279),s=a(4755),i=a(4874),r=a(4494),l=a(6830),o=a(4425),p=a(2325),c=a(2582),u=a(3910),d=a(2738),h=a(2614),m=a(5565),g=a(1656),b=a(8115),w=a(3512);let y;const v=new i.Z("page-password",!0,(()=>{const e=new c.Z({className:"page-password",withInputWrapper:!0,titleLangKey:"Login.Password.Title",subtitleLangKey:"Login.Password.Subtitle"}),t=(0,r.Z)("btn-primary btn-color-primary"),i=new p.ZP.IntlElement({key:"Login.Next"});t.append(i.element);const v=new l.Z({label:"LoginPassword",name:"password"});let L;y=v.input,e.inputWrapper.append(v.container,t);const Z=()=>(L||(L=window.setInterval(Z,1e4)),w.Z.managers.passwordManager.getState().then((e=>{k=e,k.hint?(0,m.Z)(v.label,(0,h.Z)((0,b.Z)(k.hint))):v.setLabel()})));let k;const S=e=>{if(e&&(0,u.Z)(e),!y.value.length)return void y.classList.add("error");const s=(0,g.Z)([y,t],!0),r=y.value;i.update({key:"PleaseWait"});const l=(0,n.y)(t);v.setValueSilently(""+Math.random()),v.setValueSilently(r),w.Z.managers.passwordManager.check(r,k).then((e=>{"auth.authorization"===e._?(clearInterval(L),a.e(781).then(a.bind(a,5436)).then((e=>{e.default.mount()})),E&&E.remove()):(t.removeAttribute("disabled"),i.update({key:e._}),l.remove())})).catch((e=>{s(),v.input.classList.add("error"),e.type,i.update({key:"PASSWORD_HASH_INVALID"}),y.select(),l.remove(),Z()}))};(0,d.fc)(t,S),y.addEventListener("keypress",(function(e){if(this.classList.remove("error"),i.update({key:"Login.Next"}),"Enter"===e.key)return S()}));const N=s.Z.isMobile?100:166,E=new o.Z(v,N);return e.imageDiv.append(E.container),Promise.all([E.load(),Z()])}),null,(()=>{y.focus(),w.Z.managers.appStateManager.pushToState("authState",{_:"authStatePassword"})}))}}]);
//# sourceMappingURL=442.58f55efd0845016e7cbd.chunk.js.map
//# sourceMappingURL=442.d3479c9632f24c96e0fd.chunk.js.map

View File

@ -0,0 +1,6 @@
(()=>{"use strict";(()=>{if("undefined"!=typeof __webpack_require__){var e=__webpack_require__.u,t=__webpack_require__.e,i=new Map,r=new Map;__webpack_require__.u=function(t){return e(t)+(i.has(t)?"?"+i.get(t):"")},__webpack_require__.e=function(a){return t(a).catch((function(t){var n=r.has(a)?r.get(a):999999;if(n<1){var o=e(a);throw t.message="Loading chunk "+a+" failed after 999999 retries.\n("+o+")",t.request=o,t}return new Promise((function(e){setTimeout((function(){var t=Date.now();i.set(a,t),r.set(a,n-1),e(__webpack_require__.e(a))}),3e3)}))}))}}})();const e="undefined"!=typeof window?window:self,t=navigator?navigator.userAgent:null,i=(navigator.userAgent.search(/OS X|iPhone|iPad|iOS/i),navigator.userAgent.toLowerCase().indexOf("android"),/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor),(/iPad|iPhone|iPod/.test(navigator.platform)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1)&&e.MSStream,!!("safari"in e)||!(!t||!(/\b(iPad|iPhone|iPod)\b/.test(t)||t.match("Safari")&&!t.match("Chrome"))));let r;if(navigator.userAgent.toLowerCase().indexOf("firefox"),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),i)try{r=+navigator.userAgent.match(/Version\/(.+?) /)[1]>=14}catch(e){r=!1}else r=!0;const a=r,n="undefined"!=typeof ImageBitmap;const o=[[[16219713,13335381],[16757049,16168585],[16765248,16764327],[16768889,16768965]],[[16219713,10771e3],[16757049,14653547],[16765248,15577475],[16768889,16040864]],[[16219713,7354903],[16757049,11233085],[16765248,12812110],[16768889,14194279]],[[16219713,4858889],[16757049,8207886],[16765248,9852201],[16768889,11100983]],[[16219713,2101002],[16757049,4270372],[16765248,5848375],[16768889,6505791]]],s=e=>Math.round(255*Math.min(Math.max(e,0),1));importScripts("rlottie-wasm.js");const h=self.Module;class d{constructor(e,t,i,r){this.reqId=e,this.width=t,this.height=i,this.raw=r}init(e,t){if(!this.dead){this.fps=Math.max(1,Math.min(60,t||60));try{this.handle=c.Api.init(),this.stringOnWasmHeap=allocate(intArrayFromString(e),"i8",0),this.frameCount=c.Api.loadFromData(this.handle,this.stringOnWasmHeap),c.Api.resize(this.handle,this.width,this.height),m(["loaded",this.reqId,this.frameCount,this.fps]),!this.raw&&n&&(this.imageData=new ImageData(this.width,this.height))}catch(e){console.error("init RLottieItem error:",e),m(["error",this.reqId,e])}}}render(e,t){if(!this.dead&&void 0!==this.handle&&!(this.frameCount<e||e<0))try{c.Api.render(this.handle,e);const i=c.Api.buffer(this.handle),r=h.HEAPU8.subarray(i,i+this.width*this.height*4);this.imageData?(this.imageData.data.set(r),createImageBitmap(this.imageData).then((t=>{m(["frame",this.reqId,e,t],[t])}))):(t?t.set(r):t=new Uint8ClampedArray(r),m(["frame",this.reqId,e,t],[t.buffer]))}catch(e){console.error("Render error:",e),this.dead=!0,m(["error",this.reqId,e])}}destroy(){this.dead=!0,void 0!==this.handle&&c.Api.destroy(this.handle)}}const c=new class{constructor(){this.Api={}}initApi(){this.Api={init:h.cwrap("lottie_init","",[]),destroy:h.cwrap("lottie_destroy","",["number"]),resize:h.cwrap("lottie_resize","",["number","number","number"]),buffer:h.cwrap("lottie_buffer","number",["number"]),render:h.cwrap("lottie_render","",["number","number"]),loadFromData:h.cwrap("lottie_load_from_data","number",["number","number"])}}init(){this.initApi(),m(["ready"])}};h.onRuntimeInitialized=function(){c.init()};const u={},f={loadFromData:function(e,t,i,r,a,n){const h=u[e]=new d(e,i,r,n);(function(e){return function(e,t){return new Promise((t=>{const i=new FileReader;i.addEventListener("loadend",(e=>{t(e.target.result)})),i.readAsText(e)}))}(e)})(t).then((t=>{try{if("number"==typeof a&&a>=1&&a<=5){const e=JSON.parse(t);(function(e,t){const i=o[Math.max(t-1,0)],r=e=>{switch(e.ty){case"st":case"fl":(e=>{const t=e.c.k,r=s(t[2])|s(t[1])<<8|s(t[0])<<16,a=i.find((e=>e[0]===r));a&&(t[0]=(a[1]>>16&255)/255,t[1]=(a[1]>>8&255)/255,t[2]=(255&a[1])/255)})(e)}e.hasOwnProperty("it")&&a(e.it)},a=e=>{for(const t of e)r(t)};try{for(const t of e.layers)if(t.shapes)for(const e of t.shapes)e.it?a(e.it):r(e)}catch(i){console.warn("cant apply replacements",i,e,t)}})(e,a),t=JSON.stringify(e)}const e=t.match(/"fr":\s*?(\d+?),/),i=+(null==e?void 0:e[1])||60;h.init(t,i)}catch(i){console.error("Invalid file for sticker:",t),m(["error",e,i])}}))},destroy:function(e){const t=u[e];t&&(t.destroy(),delete u[e])},renderFrame:function(e,t,i){u[e].render(t,i)}};function m(e,t){postMessage({queryMethodListener:e.shift(),queryMethodArguments:e},a?t:void 0)}onmessage=function(e){f[e.data.queryMethod].apply(f,e.data.queryMethodArguments)}})();
<<<<<<<< HEAD:public/508.3aa6fd0b2a2041f2d9eb.chunk.js
//# sourceMappingURL=508.3aa6fd0b2a2041f2d9eb.chunk.js.map
========
//# sourceMappingURL=508.02ede0fcd16f4a6fa315.chunk.js.map
>>>>>>>> input-custom-emoji:public/508.02ede0fcd16f4a6fa315.chunk.js

File diff suppressed because one or more lines are too long

View File

@ -1,2 +1,6 @@
(()=>{"use strict";(()=>{if("undefined"!=typeof __webpack_require__){var e=__webpack_require__.u,t=__webpack_require__.e,i=new Map,r=new Map;__webpack_require__.u=function(t){return e(t)+(i.has(t)?"?"+i.get(t):"")},__webpack_require__.e=function(a){return t(a).catch((function(t){var n=r.has(a)?r.get(a):999999;if(n<1){var o=e(a);throw t.message="Loading chunk "+a+" failed after 999999 retries.\n("+o+")",t.request=o,t}return new Promise((function(e){setTimeout((function(){var t=Date.now();i.set(a,t),r.set(a,n-1),e(__webpack_require__.e(a))}),3e3)}))}))}}})();const e="undefined"!=typeof window?window:self,t=navigator?navigator.userAgent:null,i=(navigator.userAgent.search(/OS X|iPhone|iPad|iOS/i),navigator.userAgent.toLowerCase().indexOf("android"),/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor),(/iPad|iPhone|iPod/.test(navigator.platform)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1)&&e.MSStream,!!("safari"in e)||!(!t||!(/\b(iPad|iPhone|iPod)\b/.test(t)||t.match("Safari")&&!t.match("Chrome"))));let r;if(navigator.userAgent.toLowerCase().indexOf("firefox"),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),i)try{r=+navigator.userAgent.match(/Version\/(.+?) /)[1]>=14}catch(e){r=!1}else r=!0;const a=r,n="undefined"!=typeof ImageBitmap;const o=[[[16219713,13335381],[16757049,16168585],[16765248,16764327],[16768889,16768965]],[[16219713,10771e3],[16757049,14653547],[16765248,15577475],[16768889,16040864]],[[16219713,7354903],[16757049,11233085],[16765248,12812110],[16768889,14194279]],[[16219713,4858889],[16757049,8207886],[16765248,9852201],[16768889,11100983]],[[16219713,2101002],[16757049,4270372],[16765248,5848375],[16768889,6505791]]],s=e=>Math.round(255*Math.min(Math.max(e,0),1));importScripts("rlottie-wasm.js");const h=self.Module;class d{constructor(e,t,i,r){this.reqId=e,this.width=t,this.height=i,this.raw=r}init(e,t){if(!this.dead){this.fps=Math.max(1,Math.min(60,t||60));try{this.handle=c.Api.init(),this.stringOnWasmHeap=allocate(intArrayFromString(e),"i8",0),this.frameCount=c.Api.loadFromData(this.handle,this.stringOnWasmHeap),c.Api.resize(this.handle,this.width,this.height),m(["loaded",this.reqId,this.frameCount,this.fps]),!this.raw&&n&&(this.imageData=new ImageData(this.width,this.height))}catch(e){console.error("init RLottieItem error:",e),m(["error",this.reqId,e])}}}render(e,t){if(!this.dead&&void 0!==this.handle&&!(this.frameCount<e||e<0))try{c.Api.render(this.handle,e);const i=c.Api.buffer(this.handle),r=h.HEAPU8.subarray(i,i+this.width*this.height*4);this.imageData?(this.imageData.data.set(r),createImageBitmap(this.imageData).then((t=>{m(["frame",this.reqId,e,t],[t])}))):(t?t.set(r):t=new Uint8ClampedArray(r),m(["frame",this.reqId,e,t],[t.buffer]))}catch(e){console.error("Render error:",e),this.dead=!0,m(["error",this.reqId,e])}}destroy(){this.dead=!0,void 0!==this.handle&&c.Api.destroy(this.handle)}}const c=new class{constructor(){this.Api={}}initApi(){this.Api={init:h.cwrap("lottie_init","",[]),destroy:h.cwrap("lottie_destroy","",["number"]),resize:h.cwrap("lottie_resize","",["number","number","number"]),buffer:h.cwrap("lottie_buffer","number",["number"]),render:h.cwrap("lottie_render","",["number","number"]),loadFromData:h.cwrap("lottie_load_from_data","number",["number","number"])}}init(){this.initApi(),m(["ready"])}};h.onRuntimeInitialized=function(){c.init()};const u={},f={loadFromData:function(e,t,i,r,a,n){const h=u[e]=new d(e,i,r,n);(function(e){return function(e,t){return new Promise((t=>{const i=new FileReader;i.addEventListener("loadend",(e=>{t(e.target.result)})),i.readAsText(e)}))}(e)})(t).then((t=>{try{if("number"==typeof a&&a>=1&&a<=5){const e=JSON.parse(t);(function(e,t){const i=o[Math.max(t-1,0)],r=e=>{switch(e.ty){case"st":case"fl":(e=>{const t=e.c.k,r=s(t[2])|s(t[1])<<8|s(t[0])<<16,a=i.find((e=>e[0]===r));a&&(t[0]=(a[1]>>16&255)/255,t[1]=(a[1]>>8&255)/255,t[2]=(255&a[1])/255)})(e)}e.hasOwnProperty("it")&&a(e.it)},a=e=>{for(const t of e)r(t)};try{for(const t of e.layers)if(t.shapes)for(const e of t.shapes)e.it?a(e.it):r(e)}catch(i){console.warn("cant apply replacements",i,e,t)}})(e,a),t=JSON.stringify(e)}const e=t.match(/"fr":\s*?(\d+?),/),i=+(null==e?void 0:e[1])||60;h.init(t,i)}catch(i){console.error("Invalid file for sticker:",t),m(["error",e,i])}}))},destroy:function(e){const t=u[e];t&&(t.destroy(),delete u[e])},renderFrame:function(e,t,i){u[e].render(t,i)}};function m(e,t){postMessage({queryMethodListener:e.shift(),queryMethodArguments:e},a?t:void 0)}onmessage=function(e){f[e.data.queryMethod].apply(f,e.data.queryMethodArguments)}})();
//# sourceMappingURL=508.3aa6fd0b2a2041f2d9eb.chunk.js.map
<<<<<<<< HEAD:public/508.3aa6fd0b2a2041f2d9eb.chunk.js
//# sourceMappingURL=508.3aa6fd0b2a2041f2d9eb.chunk.js.map
========
//# sourceMappingURL=508.02ede0fcd16f4a6fa315.chunk.js.map
>>>>>>>> input-custom-emoji:public/508.02ede0fcd16f4a6fa315.chunk.js

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,2 +1,2 @@
"use strict";(this.webpackChunktweb=this.webpackChunktweb||[]).push([[642],{4642:(e,a,s)=>{s.r(a),s.d(a,{default:()=>f});const c="zero",r="one",t="two",n="few",u="many";function i(e,a){switch(e){case 27764:if(a%10==1&&(a%100<11||a%100>19))return r;if(a%10>=2&&a%10<=9&&(a%100<11||a%100>19))return n;break;case 27766:if(0==a)return c;if(a%10==1&&a%100!=11)return r;break;case 25465:if(2==a)return t;if(3==a)return n;if(0==a)return c;if(1==a)return r;if(6==a)return u;break;case 25189:case 25203:case 26738:case 29301:case 29544:case 29554:case 30059:if(a%10==1&&a%100!=11)return r;if(a%10>=2&&a%10<=4&&(a%100<12||a%100>14))return n;if(a%10==0||a%10>=5&&a%10<=9||a%100>=11&&a%100<=14)return u;break;case 7041896:if(0==a)return c;if(1==a)return r;break;case 7563369:if(a>=2&&a<=10)return n;if(a>=0&&a<=1)return r;break;case 26725:if(2==a)return t;if(1==a)return r;if(0!=a&&a%10==0)return u;break;case 25459:case 29547:if(1==a)return r;if(a>=2&&a<=4)return n;break;case 25202:if(0!=a&&a%1e6==0)return u;if(a%10==1&&a%100!=11&&a%100!=71&&a%100!=91)return r;if(a%10==2&&a%100!=12&&a%100!=72&&a%100!=92)return t;if((a%10>=3&&a%10<=4||a%10==9)&&(a%100<10||a%100>19)&&(a%100<70||a%100>79)&&(a%100<90||a%100>99))return n;break;case 29548:if(a%100==2)return t;if(a%100==1)return r;if(a%100>=3&&a%100<=4)return n;break;case 7102823:if(0==a)return c;if(a>=0&&a<=2&&0!=a&&2!=a)return r;break;case 28780:if(1==a)return r;if(a%10>=2&&a%10<=4&&(a%100<12||a%100>14))return n;if(1!=a&&a%10>=0&&a%10<=1||a%10>=5&&a%10<=9||a%100>=12&&a%100<=14)return u;break;case 26468:if(2==a||12==a)return t;if(1==a||11==a)return r;if(a>=3&&a<=10||a>=13&&a<=19)return n;break;case 26486:if(a%10>=1&&a%10<=2||a%20==0)return r;break;case 28011:if(a%10==1&&11!=a)return r;break;case 28020:if(1==a)return r;if(a%100>=11&&a%100<=19)return u;if(0==a||a%100>=2&&a%100<=10)return n;break;case 28015:case 29295:if(1==a)return r;if(0==a||1!=a&&a%100>=1&&a%100<=19)return n;break;case 26465:if(2==a)return t;if(1==a)return r;if(a>=3&&a<=6)return n;if(a>=7&&a<=10)return u;break;case 26214:case 26226:case 7037282:if(a>=0&&a<=2&&2!=a)return r;break;case 26997:case 27511:case 29541:case 7233905:case 7564641:case 7564649:case 7564650:case 7564654:case 7564659:if(2==a)return t;if(1==a)return r;break;case 24939:case 24941:case 25192:case 26729:case 27758:case 28007:case 29801:case 29804:case 30561:case 6711660:case 6780279:case 7238511:if(a>=0&&a<=1)return r;break;case 7633517:if(a>=0&&a<=1||a>=11&&a<=99)return r;break;case 24934:case 25191:case 25198:case 25441:case 25697:case 25701:case 25718:case 25957:case 25964:case 25966:case 25967:case 25971:case 25972:case 25973:case 26217:case 26223:case 26233:case 26476:case 26485:case 26721:case 26995:case 26996:case 27499:case 27500:case 27507:case 27509:case 27513:case 27746:case 27751:case 28012:case 28014:case 28018:case 28258:case 28260:case 28261:case 28268:case 28270:case 28271:case 28274:case 28281:case 28525:case 28530:case 28531:case 28769:case 28787:case 28788:case 29293:case 29550:case 29551:case 29553:case 29555:case 29556:case 29558:case 29559:case 29793:case 29797:case 29803:case 29806:case 29811:case 30066:case 30309:case 30319:case 30824:case 31349:case 6386529:case 6386548:case 6448493:case 6448506:case 6451832:case 6514535:case 6514802:case 6515554:case 6714738:case 6779767:case 6840695:case 6973295:case 6974819:case 7037290:case 7037799:case 7039850:case 7041890:case 7168371:case 7169903:case 7233896:case 7237224:case 7240046:case 7364976:case 7499622:case 7501675:case 7561585:case 7562600:case 7566201:case 7567730:case 7628143:case 7629159:case 7763310:case 7823717:case 7892839:if(1==a)return r;break;case 24946:if(2==a)return t;if(1==a)return r;if(0==a)return c;if(a%100>=3&&a%100<=10)return n;if(a%100>=11&&a%100<=99)return u}return"other"}const f={PluralRules:class{constructor(e){this.select=i.bind(null,function(e){let a=0;for(let s=0;s<e.length;++s)a=(a<<8)+e.charCodeAt(s);return a}(e))}}}}}]);
//# sourceMappingURL=642.84815af8894adf7d833d.chunk.js.map
//# sourceMappingURL=642.d6b90b5bc53545046507.chunk.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,2 +1,2 @@
"use strict";(this.webpackChunktweb=this.webpackChunktweb||[]).push([[774,442],{2582:(e,t,a)=>{a.d(t,{Z:()=>s});var n=a(2325);class s{constructor(e){this.element=document.body.querySelector("."+e.className),this.container=document.createElement("div"),this.container.className="container center-align",this.imageDiv=document.createElement("div"),this.imageDiv.className="auth-image",this.title=document.createElement("h4"),e.titleLangKey&&this.title.append((0,n.ag)(e.titleLangKey)),this.subtitle=document.createElement("p"),this.subtitle.className="subtitle",e.subtitleLangKey&&this.subtitle.append((0,n.ag)(e.subtitleLangKey)),this.container.append(this.imageDiv,this.title,this.subtitle),e.withInputWrapper&&(this.inputWrapper=document.createElement("div"),this.inputWrapper.className="input-wrapper",this.container.append(this.inputWrapper)),this.element.append(this.container)}}},9437:(e,t,a)=>{a.r(t),a.d(t,{default:()=>v});var n=a(279),s=a(4755),i=a(4874),r=a(4494),l=a(6830),o=a(4425),p=a(2325),c=a(2582),u=a(3910),d=a(2738),h=a(2614),m=a(5565),g=a(1656),b=a(8115),w=a(3512);let y;const v=new i.Z("page-password",!0,(()=>{const e=new c.Z({className:"page-password",withInputWrapper:!0,titleLangKey:"Login.Password.Title",subtitleLangKey:"Login.Password.Subtitle"}),t=(0,r.Z)("btn-primary btn-color-primary"),i=new p.ZP.IntlElement({key:"Login.Next"});t.append(i.element);const v=new l.Z({label:"LoginPassword",name:"password"});let L;y=v.input,e.inputWrapper.append(v.container,t);const Z=()=>(L||(L=window.setInterval(Z,1e4)),w.Z.managers.passwordManager.getState().then((e=>{k=e,k.hint?(0,m.Z)(v.label,(0,h.Z)((0,b.Z)(k.hint))):v.setLabel()})));let k;const S=e=>{if(e&&(0,u.Z)(e),!y.value.length)return void y.classList.add("error");const s=(0,g.Z)([y,t],!0),r=y.value;i.update({key:"PleaseWait"});const l=(0,n.y)(t);v.setValueSilently(""+Math.random()),v.setValueSilently(r),w.Z.managers.passwordManager.check(r,k).then((e=>{"auth.authorization"===e._?(clearInterval(L),a.e(781).then(a.bind(a,5436)).then((e=>{e.default.mount()})),E&&E.remove()):(t.removeAttribute("disabled"),i.update({key:e._}),l.remove())})).catch((e=>{s(),v.input.classList.add("error"),e.type,i.update({key:"PASSWORD_HASH_INVALID"}),y.select(),l.remove(),Z()}))};(0,d.fc)(t,S),y.addEventListener("keypress",(function(e){if(this.classList.remove("error"),i.update({key:"Login.Next"}),"Enter"===e.key)return S()}));const N=s.Z.isMobile?100:166,E=new o.Z(v,N);return e.imageDiv.append(E.container),Promise.all([E.load(),Z()])}),null,(()=>{y.focus(),w.Z.managers.appStateManager.pushToState("authState",{_:"authStatePassword"})}))}}]);
//# sourceMappingURL=774.d106431b9ffd52ccea1a.chunk.js.map
//# sourceMappingURL=774.05acf16b0b127f5e248a.chunk.js.map

View File

@ -1,2 +1,2 @@
"use strict";(this.webpackChunktweb=this.webpackChunktweb||[]).push([[781,436],{5436:(e,t,a)=>{a.r(t),a.d(t,{default:()=>h});var n=a(8799),s=a(4541),r=a(2325),l=a(3512);const o=new(a(4874).Z)("page-chats",!1,(()=>(l.Z.managers.appStateManager.pushToState("authState",{_:"authStateSignedIn"}),r.ZP.requestedServerLanguage||r.ZP.getCacheLangPack().then((e=>{e.local&&r.ZP.getLangPack(e.lang_code)})),o.pageEl.style.display="",(0,n.Z)(),Promise.all([(0,s.Z)(),Promise.resolve().then(a.bind(a,7692)),"requestVideoFrameCallback"in HTMLVideoElement.prototype?Promise.resolve():a.e(783).then(a.bind(a,7482))]).then((([e,t,a])=>{t.default.start(),setTimeout((()=>{document.getElementById("auth-pages").remove()}),1e3)}))))),h=o}}]);
//# sourceMappingURL=781.74ba1a3c8fa8e7c8c8c6.chunk.js.map
//# sourceMappingURL=781.bd548822a16d2a3b16fa.chunk.js.map

View File

@ -1 +1 @@
{"version":3,"file":"781.74ba1a3c8fa8e7c8c8c6.chunk.js","mappings":"yKAYA,MA0CMA,EAAO,I,QAAI,GAAK,cAAc,GA1Cf,KACnB,yCAA+C,YAAa,CAACC,EAAG,sBAI5D,8BACF,wBAAwBC,MAAMC,IACzBA,EAASC,OACV,iBAAiBD,EAASE,cAKhCL,EAAKM,OAAOC,MAAMC,QAAU,IAe5B,SAEOC,QAAQC,IAAI,EACjB,SACA,uCACA,8BAA+BC,iBAAiBC,UAAYH,QAAQI,UAAY,gCAC/EX,MAAK,EAAED,EAAGa,EAAmBC,MAC9BD,EAAkBE,QAAQC,QAC1BC,YAAW,KACTC,SAASC,eAAe,cAAcC,WACrC,WAKP","sources":["webpack://tweb/./src/pages/pageIm.ts"],"sourcesContent":["/*\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/blurActiveElement';\r\nimport loadFonts from '../helpers/dom/loadFonts';\r\nimport I18n from '../lib/langPack';\r\nimport rootScope from '../lib/rootScope';\r\nimport Page from './page';\r\n\r\nconst onFirstMount = () => {\r\n rootScope.managers.appStateManager.pushToState('authState', {_: 'authStateSignedIn'});\r\n // ! TOO SLOW\r\n /* appStateManager.saveState(); */\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 page.pageEl.style.display = '';\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 blurActiveElement();\r\n\r\n return Promise.all([\r\n loadFonts()/* .then(() => new Promise((resolve) => window.requestAnimationFrame(resolve))) */,\r\n import('../lib/appManagers/appDialogsManager'),\r\n 'requestVideoFrameCallback' in HTMLVideoElement.prototype ? Promise.resolve() : import('../helpers/dom/requestVideoFrameCallbackPolyfill')\r\n ]).then(([_, appDialogsManager, __]) => {\r\n appDialogsManager.default.start();\r\n setTimeout(() => {\r\n document.getElementById('auth-pages').remove();\r\n }, 1e3);\r\n });\r\n};\r\n\r\nconst page = new Page('page-chats', false, onFirstMount);\r\nexport default page;\r\n"],"names":["page","_","then","langPack","local","lang_code","pageEl","style","display","Promise","all","HTMLVideoElement","prototype","resolve","appDialogsManager","__","default","start","setTimeout","document","getElementById","remove"],"sourceRoot":""}
{"version":3,"file":"781.bd548822a16d2a3b16fa.chunk.js","mappings":"yKAYA,MA0CMA,EAAO,I,QAAI,GAAK,cAAc,GA1Cf,KACnB,yCAA+C,YAAa,CAACC,EAAG,sBAI5D,8BACF,wBAAwBC,MAAMC,IACzBA,EAASC,OACV,iBAAiBD,EAASE,cAKhCL,EAAKM,OAAOC,MAAMC,QAAU,IAe5B,SAEOC,QAAQC,IAAI,EACjB,SACA,uCACA,8BAA+BC,iBAAiBC,UAAYH,QAAQI,UAAY,gCAC/EX,MAAK,EAAED,EAAGa,EAAmBC,MAC9BD,EAAkBE,QAAQC,QAC1BC,YAAW,KACTC,SAASC,eAAe,cAAcC,WACrC,WAKP","sources":["webpack://tweb/./src/pages/pageIm.ts"],"sourcesContent":["/*\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/blurActiveElement';\r\nimport loadFonts from '../helpers/dom/loadFonts';\r\nimport I18n from '../lib/langPack';\r\nimport rootScope from '../lib/rootScope';\r\nimport Page from './page';\r\n\r\nconst onFirstMount = () => {\r\n rootScope.managers.appStateManager.pushToState('authState', {_: 'authStateSignedIn'});\r\n // ! TOO SLOW\r\n /* appStateManager.saveState(); */\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 page.pageEl.style.display = '';\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 blurActiveElement();\r\n\r\n return Promise.all([\r\n loadFonts()/* .then(() => new Promise((resolve) => window.requestAnimationFrame(resolve))) */,\r\n import('../lib/appManagers/appDialogsManager'),\r\n 'requestVideoFrameCallback' in HTMLVideoElement.prototype ? Promise.resolve() : import('../helpers/dom/requestVideoFrameCallbackPolyfill')\r\n ]).then(([_, appDialogsManager, __]) => {\r\n appDialogsManager.default.start();\r\n setTimeout(() => {\r\n document.getElementById('auth-pages').remove();\r\n }, 1e3);\r\n });\r\n};\r\n\r\nconst page = new Page('page-chats', false, onFirstMount);\r\nexport default page;\r\n"],"names":["page","_","then","langPack","local","lang_code","pageEl","style","display","Promise","all","HTMLVideoElement","prototype","resolve","appDialogsManager","__","default","start","setTimeout","document","getElementById","remove"],"sourceRoot":""}

View File

@ -1,2 +1,2 @@
"use strict";(this.webpackChunktweb=this.webpackChunktweb||[]).push([[783],{7482:(e,t,i)=>{i.r(t),!("requestVideoFrameCallback"in HTMLVideoElement.prototype)&&"getVideoPlaybackQuality"in HTMLVideoElement.prototype&&(HTMLVideoElement.prototype._rvfcpolyfillmap={},HTMLVideoElement.prototype.requestVideoFrameCallback=function(e){const t=this.getVideoPlaybackQuality(),i=this.mozPresentedFrames||this.mozPaintedFrames||t.totalVideoFrames-t.droppedVideoFrames,a=(r,l)=>{const m=this.getVideoPlaybackQuality(),s=this.mozPresentedFrames||this.mozPaintedFrames||m.totalVideoFrames-m.droppedVideoFrames;if(s>i){const i=this.mozFrameDelay||m.totalFrameDelay-t.totalFrameDelay||0,a=l-r;e(l,{presentationTime:l+1e3*i,expectedDisplayTime:l+a,width:this.videoWidth,height:this.videoHeight,mediaTime:Math.max(0,this.currentTime||0)+a/1e3,presentedFrames:s,processingDuration:i}),delete this._rvfcpolyfillmap[o]}else this._rvfcpolyfillmap[o]=requestAnimationFrame((e=>a(l,e)))},o=Date.now(),r=performance.now();return this._rvfcpolyfillmap[o]=requestAnimationFrame((e=>a(r,e))),o},HTMLVideoElement.prototype.cancelVideoFrameCallback=function(e){cancelAnimationFrame(this._rvfcpolyfillmap[e]),delete this._rvfcpolyfillmap[e]})}}]);
//# sourceMappingURL=783.a6d272fbd6f947bd972d.chunk.js.map
//# sourceMappingURL=783.a5ff7c878494d8a1624d.chunk.js.map

View File

@ -1 +1 @@
{"version":3,"file":"783.a6d272fbd6f947bd972d.chunk.js","mappings":"oGAGK,8BAA+BA,iBAAiBC,YAAc,4BAA6BD,iBAAiBC,YAC/GD,iBAAiBC,UAAUC,iBAAmB,GAC9CF,iBAAiBC,UAAUE,0BAA4B,SAASC,GAC9D,MAAMC,EAAUC,KAAKC,0BACfC,EAAWF,KAAKG,oBAAsBH,KAAKI,kBAAoBL,EAAQM,iBAAmBN,EAAQO,mBAElGC,EAAQ,CAACC,EAAKC,KAClB,MAAMC,EAAaV,KAAKC,0BAClBU,EAAkBX,KAAKG,oBAAsBH,KAAKI,kBAAoBM,EAAWL,iBAAmBK,EAAWJ,mBACrH,GAAGK,EAAkBT,EAAU,CAC7B,MAAMU,EAAqBZ,KAAKa,eAAkBH,EAAWI,gBAAkBf,EAAQe,iBAAoB,EACrGC,EAAWN,EAAMD,EACvBV,EAASW,EAAK,CACZO,iBAAkBP,EAA2B,IAArBG,EACxBK,oBAAqBR,EAAMM,EAC3BG,MAAOlB,KAAKmB,WACZC,OAAQpB,KAAKqB,YACbC,UAAWC,KAAKC,IAAI,EAAGxB,KAAKyB,aAAe,GAAKV,EAAW,IAC3DJ,gBAAAA,EACAC,mBAAAA,WAEKZ,KAAKJ,iBAAiB8B,QAE7B1B,KAAKJ,iBAAiB8B,GAAUC,uBAAsBC,GAASrB,EAAME,EAAKmB,MAIxEF,EAASG,KAAKpB,MACdA,EAAMqB,YAAYrB,MAExB,OADAT,KAAKJ,iBAAiB8B,GAAUC,uBAAsBC,GAASrB,EAAME,EAAKmB,KACnEF,GAGThC,iBAAiBC,UAAUoC,yBAA2B,SAASL,GAC7DM,qBAAqBhC,KAAKJ,iBAAiB8B,WACpC1B,KAAKJ,iBAAiB8B","sources":["webpack://tweb/./src/helpers/dom/requestVideoFrameCallbackPolyfill.ts"],"sourcesContent":["// @ts-nocheck\n// https://github.com/ThaUnknown/rvfc-polyfill/blob/main/index.js\n\nif(!('requestVideoFrameCallback' in HTMLVideoElement.prototype) && 'getVideoPlaybackQuality' in HTMLVideoElement.prototype) {\n HTMLVideoElement.prototype._rvfcpolyfillmap = {};\n HTMLVideoElement.prototype.requestVideoFrameCallback = function(callback) {\n const quality = this.getVideoPlaybackQuality();\n const baseline = this.mozPresentedFrames || this.mozPaintedFrames || quality.totalVideoFrames - quality.droppedVideoFrames;\n\n const check = (old, now) => {\n const newquality = this.getVideoPlaybackQuality();\n const presentedFrames = this.mozPresentedFrames || this.mozPaintedFrames || newquality.totalVideoFrames - newquality.droppedVideoFrames;\n if(presentedFrames > baseline) {\n const processingDuration = this.mozFrameDelay || (newquality.totalFrameDelay - quality.totalFrameDelay) || 0;\n const timediff = now - old; // HighRes diff\n callback(now, {\n presentationTime: now + processingDuration * 1000,\n expectedDisplayTime: now + timediff,\n width: this.videoWidth,\n height: this.videoHeight,\n mediaTime: Math.max(0, this.currentTime || 0) + timediff / 1000,\n presentedFrames,\n processingDuration\n });\n delete this._rvfcpolyfillmap[handle];\n } else {\n this._rvfcpolyfillmap[handle] = requestAnimationFrame(newer => check(now, newer));\n }\n }\n\n const handle = Date.now();\n const now = performance.now();\n this._rvfcpolyfillmap[handle] = requestAnimationFrame(newer => check(now, newer));\n return handle; // spec says long, not doube, so can't re-use performance.now\n };\n\n HTMLVideoElement.prototype.cancelVideoFrameCallback = function(handle) {\n cancelAnimationFrame(this._rvfcpolyfillmap[handle]);\n delete this._rvfcpolyfillmap[handle];\n };\n}\n\nexport {};\n"],"names":["HTMLVideoElement","prototype","_rvfcpolyfillmap","requestVideoFrameCallback","callback","quality","this","getVideoPlaybackQuality","baseline","mozPresentedFrames","mozPaintedFrames","totalVideoFrames","droppedVideoFrames","check","old","now","newquality","presentedFrames","processingDuration","mozFrameDelay","totalFrameDelay","timediff","presentationTime","expectedDisplayTime","width","videoWidth","height","videoHeight","mediaTime","Math","max","currentTime","handle","requestAnimationFrame","newer","Date","performance","cancelVideoFrameCallback","cancelAnimationFrame"],"sourceRoot":""}
{"version":3,"file":"783.a5ff7c878494d8a1624d.chunk.js","mappings":"oGAGK,8BAA+BA,iBAAiBC,YAAc,4BAA6BD,iBAAiBC,YAC/GD,iBAAiBC,UAAUC,iBAAmB,GAC9CF,iBAAiBC,UAAUE,0BAA4B,SAASC,GAC9D,MAAMC,EAAUC,KAAKC,0BACfC,EAAWF,KAAKG,oBAAsBH,KAAKI,kBAAoBL,EAAQM,iBAAmBN,EAAQO,mBAElGC,EAAQ,CAACC,EAAKC,KAClB,MAAMC,EAAaV,KAAKC,0BAClBU,EAAkBX,KAAKG,oBAAsBH,KAAKI,kBAAoBM,EAAWL,iBAAmBK,EAAWJ,mBACrH,GAAGK,EAAkBT,EAAU,CAC7B,MAAMU,EAAqBZ,KAAKa,eAAkBH,EAAWI,gBAAkBf,EAAQe,iBAAoB,EACrGC,EAAWN,EAAMD,EACvBV,EAASW,EAAK,CACZO,iBAAkBP,EAA2B,IAArBG,EACxBK,oBAAqBR,EAAMM,EAC3BG,MAAOlB,KAAKmB,WACZC,OAAQpB,KAAKqB,YACbC,UAAWC,KAAKC,IAAI,EAAGxB,KAAKyB,aAAe,GAAKV,EAAW,IAC3DJ,gBAAAA,EACAC,mBAAAA,WAEKZ,KAAKJ,iBAAiB8B,QAE7B1B,KAAKJ,iBAAiB8B,GAAUC,uBAAsBC,GAASrB,EAAME,EAAKmB,MAIxEF,EAASG,KAAKpB,MACdA,EAAMqB,YAAYrB,MAExB,OADAT,KAAKJ,iBAAiB8B,GAAUC,uBAAsBC,GAASrB,EAAME,EAAKmB,KACnEF,GAGThC,iBAAiBC,UAAUoC,yBAA2B,SAASL,GAC7DM,qBAAqBhC,KAAKJ,iBAAiB8B,WACpC1B,KAAKJ,iBAAiB8B","sources":["webpack://tweb/./src/helpers/dom/requestVideoFrameCallbackPolyfill.ts"],"sourcesContent":["// @ts-nocheck\n// https://github.com/ThaUnknown/rvfc-polyfill/blob/main/index.js\n\nif(!('requestVideoFrameCallback' in HTMLVideoElement.prototype) && 'getVideoPlaybackQuality' in HTMLVideoElement.prototype) {\n HTMLVideoElement.prototype._rvfcpolyfillmap = {};\n HTMLVideoElement.prototype.requestVideoFrameCallback = function(callback) {\n const quality = this.getVideoPlaybackQuality();\n const baseline = this.mozPresentedFrames || this.mozPaintedFrames || quality.totalVideoFrames - quality.droppedVideoFrames;\n\n const check = (old, now) => {\n const newquality = this.getVideoPlaybackQuality();\n const presentedFrames = this.mozPresentedFrames || this.mozPaintedFrames || newquality.totalVideoFrames - newquality.droppedVideoFrames;\n if(presentedFrames > baseline) {\n const processingDuration = this.mozFrameDelay || (newquality.totalFrameDelay - quality.totalFrameDelay) || 0;\n const timediff = now - old; // HighRes diff\n callback(now, {\n presentationTime: now + processingDuration * 1000,\n expectedDisplayTime: now + timediff,\n width: this.videoWidth,\n height: this.videoHeight,\n mediaTime: Math.max(0, this.currentTime || 0) + timediff / 1000,\n presentedFrames,\n processingDuration\n });\n delete this._rvfcpolyfillmap[handle];\n } else {\n this._rvfcpolyfillmap[handle] = requestAnimationFrame(newer => check(now, newer));\n }\n }\n\n const handle = Date.now();\n const now = performance.now();\n this._rvfcpolyfillmap[handle] = requestAnimationFrame(newer => check(now, newer));\n return handle; // spec says long, not doube, so can't re-use performance.now\n };\n\n HTMLVideoElement.prototype.cancelVideoFrameCallback = function(handle) {\n cancelAnimationFrame(this._rvfcpolyfillmap[handle]);\n delete this._rvfcpolyfillmap[handle];\n };\n}\n\nexport {};\n"],"names":["HTMLVideoElement","prototype","_rvfcpolyfillmap","requestVideoFrameCallback","callback","quality","this","getVideoPlaybackQuality","baseline","mozPresentedFrames","mozPaintedFrames","totalVideoFrames","droppedVideoFrames","check","old","now","newquality","presentedFrames","processingDuration","mozFrameDelay","totalFrameDelay","timediff","presentationTime","expectedDisplayTime","width","videoWidth","height","videoHeight","mediaTime","Math","max","currentTime","handle","requestAnimationFrame","newer","Date","performance","cancelVideoFrameCallback","cancelAnimationFrame"],"sourceRoot":""}

File diff suppressed because one or more lines are too long

View File

@ -1,2 +0,0 @@
"use strict";(this.webpackChunktweb=this.webpackChunktweb||[]).push([[810],{810:(e,t,n)=>{n.r(t),n.d(t,{default:()=>C});var a=n(279),i=n(4874),o=n(9807),r=n(4494),s=n(5432),c=n(4159),d=n(2325),l=n(1447),u=n(1405),h=n(9709),g=n(9638),p=n(3910),v=n(2738),y=n(5565),m=n(1656),Z=n(7487),b=n(2398),k=n(6669),L=n(7922),f=n(3512),_=n(709),S=n(3855),w=n(5431);let x,E=null;const N=new i.Z("page-sign",!0,(()=>{const e=document.createElement("div");let t,i;e.classList.add("input-wrapper");const u=new w.Z({onCountryChange:(e,n)=>{t=e,i=n,n&&(C.value=C.lastValue="+"+n.country_code,setTimeout((()=>{P.focus(),(0,b.Z)(P,!0)}),0))}}),C=new _.Z({onInput:e=>{l.Z.loadLottieWorkers();const{country:n,code:a}=e||{},o=n?n.name||n.default_name:"";o===u.value||t&&n&&a&&(t===n||i.country_code===a.country_code)||u.override(n,a,o),n||C.value.length-1>1?E.style.visibility="":E.style.visibility="hidden"}}),P=C.input;P.addEventListener("keypress",(e=>{if(!E.style.visibility&&"Enter"===e.key)return M()}));const T=new o.Z({text:"Login.KeepSigned",name:"keepSession",withRipple:!0,checked:!0});T.input.addEventListener("change",(()=>{const e=T.checked;f.Z.managers.appStateManager.pushToState("keepSigned",e),S.Z.toggleStorages(e,!0)})),S.Z.getState().then((e=>{L.Z.isAvailable()?T.checked=e.keepSigned:(T.checked=!1,T.label.classList.add("checkbox-disabled"))})),E=(0,r.Z)("btn-primary btn-color-primary",{text:"Login.Next"}),E.style.visibility="hidden";const M=e=>{e&&(0,p.Z)(e);const t=(0,m.Z)([E,x],!0);(0,y.Z)(E,(0,d.ag)("PleaseWait")),(0,a.y)(E);const i=C.value;f.Z.managers.apiManager.invokeApi("auth.sendCode",{phone_number:i,api_id:c.Z.id,api_hash:c.Z.hash,settings:{_:"codeSettings"}}).then((e=>{n.e(392).then(n.bind(n,6392)).then((t=>t.default.mount(Object.assign(e,{phone_number:i}))))})).catch((e=>{t(),"PHONE_NUMBER_INVALID"===e.type?(C.setError(),(0,y.Z)(C.label,(0,d.ag)("Login.PhoneLabelInvalid")),P.classList.add("error"),(0,y.Z)(E,(0,d.ag)("Login.Next"))):(console.error("auth.sendCode error:",e),E.innerText=e.type)}))};(0,v.fc)(E,M),x=(0,r.Z)("btn-primary btn-secondary btn-primary-transparent primary",{text:"Login.QR.Login"}),x.addEventListener("click",(()=>{h.default.mount()})),e.append(u.container,C.container,T.label,E,x);const A=document.createElement("h4");A.classList.add("text-center"),(0,d.$d)(A,"Login.Title");const I=document.createElement("div");I.classList.add("subtitle","text-center"),(0,d.$d)(I,"Login.StartText"),N.pageEl.querySelector(".container").append(A,I,e),s.Z||setTimeout((()=>{P.focus()}),0),(0,g.Z)(e),f.Z.managers.apiManager.invokeApi("help.getNearestDc").then((e=>{var t;const n=L.Z.getFromCache("langPack");n&&!(null===(t=n.countries)||void 0===t?void 0:t.hash)&&d.ZP.getLangPack(n.lang_code).then((()=>{(0,k.Z)(P,"input")}));const a=new Set([1,2,3,4,5]),i=[e.this_dc];let o;return e.nearest_dc!==e.this_dc&&(o=f.Z.managers.apiManager.getNetworkerVoid(e.nearest_dc).then((()=>{i.push(e.nearest_dc)}))),(o||Promise.resolve()).then((()=>{i.forEach((e=>{a.delete(e)}));const e=[...a],t=()=>{return n=void 0,a=void 0,o=function*(){const n=e.shift();if(!n)return;const a=`dc${n}_auth_key`;if(yield Z.Z.get(a))return t();setTimeout((()=>{f.Z.managers.apiManager.getNetworkerVoid(n).finally(t)}),3e3)},new((i=void 0)||(i=Promise))((function(e,t){function r(e){try{c(o.next(e))}catch(e){t(e)}}function s(e){try{c(o.throw(e))}catch(e){t(e)}}function c(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i((function(e){e(n)}))).then(r,s)}c((o=o.apply(n,a||[])).next())}));var n,a,i,o};t()})),e})).then((e=>{u.value.length||C.value.length||u.selectCountryByIso2(e.country)}))}),(()=>{E&&((0,y.Z)(E,(0,d.ag)("Login.Next")),(0,u.Z)(E,void 0,void 0,!0),E.removeAttribute("disabled")),x&&x.removeAttribute("disabled"),f.Z.managers.appStateManager.pushToState("authState",{_:"authStateSignIn"})})),C=N}}]);
//# sourceMappingURL=810.4210f2cdaf4bf7c09d52.chunk.js.map

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,2 @@
"use strict";(this.webpackChunktweb=this.webpackChunktweb||[]).push([[810],{810:(e,t,n)=>{n.r(t),n.d(t,{default:()=>N});var a=n(279),i=n(4874),o=n(9807),r=n(4494),s=n(5432),c=n(4159),d=n(2325),l=n(1447),u=n(1405),h=n(9709),g=n(9638),p=n(3910),v=n(2738),y=n(5565),m=n(1656),Z=n(7487),b=n(2398),k=n(7922),L=n(3512),f=n(709),_=n(3855),S=n(5431);let w,x=null;const E=new i.Z("page-sign",!0,(()=>{const e=document.createElement("div");let t,i;e.classList.add("input-wrapper");const u=new S.Z({onCountryChange:(e,n)=>{t=e,i=n,n&&(N.value=N.lastValue="+"+n.country_code,setTimeout((()=>{C.focus(),(0,b.Z)(C,!0)}),0))}}),N=new f.Z({onInput:e=>{l.Z.loadLottieWorkers();const{country:n,code:a}=e||{},o=n?n.name||n.default_name:"";o===u.value||t&&n&&a&&(t===n||i.country_code===a.country_code)||u.override(n,a,o),n||N.value.length-1>1?x.style.visibility="":x.style.visibility="hidden"}}),C=N.input;C.addEventListener("keypress",(e=>{if(!x.style.visibility&&"Enter"===e.key)return T()}));const P=new o.Z({text:"Login.KeepSigned",name:"keepSession",withRipple:!0,checked:!0});P.input.addEventListener("change",(()=>{const e=P.checked;L.Z.managers.appStateManager.pushToState("keepSigned",e),_.Z.toggleStorages(e,!0)})),_.Z.getState().then((e=>{k.Z.isAvailable()?P.checked=e.keepSigned:(P.checked=!1,P.label.classList.add("checkbox-disabled"))})),x=(0,r.Z)("btn-primary btn-color-primary",{text:"Login.Next"}),x.style.visibility="hidden";const T=e=>{e&&(0,p.Z)(e);const t=(0,m.Z)([x,w],!0);(0,y.Z)(x,(0,d.ag)("PleaseWait")),(0,a.y)(x);const i=N.value;L.Z.managers.apiManager.invokeApi("auth.sendCode",{phone_number:i,api_id:c.Z.id,api_hash:c.Z.hash,settings:{_:"codeSettings"}}).then((e=>{n.e(392).then(n.bind(n,6392)).then((t=>t.default.mount(Object.assign(e,{phone_number:i}))))})).catch((e=>{t(),"PHONE_NUMBER_INVALID"===e.type?(N.setError(),(0,y.Z)(N.label,(0,d.ag)("Login.PhoneLabelInvalid")),C.classList.add("error"),(0,y.Z)(x,(0,d.ag)("Login.Next"))):(console.error("auth.sendCode error:",e),x.innerText=e.type)}))};(0,v.fc)(x,T),w=(0,r.Z)("btn-primary btn-secondary btn-primary-transparent primary",{text:"Login.QR.Login"}),w.addEventListener("click",(()=>{h.default.mount()})),e.append(u.container,N.container,P.label,x,w);const I=document.createElement("h4");I.classList.add("text-center"),(0,d.$d)(I,"Login.Title");const M=document.createElement("div");M.classList.add("subtitle","text-center"),(0,d.$d)(M,"Login.StartText"),E.pageEl.querySelector(".container").append(I,M,e),s.Z||setTimeout((()=>{C.focus()}),0),(0,g.Z)(e),L.Z.managers.apiManager.invokeApi("help.getNearestDc").then((e=>{var t;const n=k.Z.getFromCache("langPack");n&&!(null===(t=n.countries)||void 0===t?void 0:t.hash)&&d.ZP.getLangPack(n.lang_code).then((()=>{N.simulateInputEvent()}));const a=new Set([1,2,3,4,5]),i=[e.this_dc];let o;return e.nearest_dc!==e.this_dc&&(o=L.Z.managers.apiManager.getNetworkerVoid(e.nearest_dc).then((()=>{i.push(e.nearest_dc)}))),(o||Promise.resolve()).then((()=>{i.forEach((e=>{a.delete(e)}));const e=[...a],t=()=>{return n=void 0,a=void 0,o=function*(){const n=e.shift();if(!n)return;const a=`dc${n}_auth_key`;if(yield Z.Z.get(a))return t();setTimeout((()=>{L.Z.managers.apiManager.getNetworkerVoid(n).finally(t)}),3e3)},new((i=void 0)||(i=Promise))((function(e,t){function r(e){try{c(o.next(e))}catch(e){t(e)}}function s(e){try{c(o.throw(e))}catch(e){t(e)}}function c(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i((function(e){e(n)}))).then(r,s)}c((o=o.apply(n,a||[])).next())}));var n,a,i,o};t()})),e})).then((e=>{u.value.length||N.value.length||u.selectCountryByIso2(e.country)}))}),(()=>{x&&((0,y.Z)(x,(0,d.ag)("Login.Next")),(0,u.Z)(x,void 0,void 0,!0),x.removeAttribute("disabled")),w&&w.removeAttribute("disabled"),L.Z.managers.appStateManager.pushToState("authState",{_:"authStateSignIn"})})),N=E}}]);
//# sourceMappingURL=810.45d0c8f35d85d03f3e6a.chunk.js.map

File diff suppressed because one or more lines are too long

View File

@ -1,2 +1,2 @@
"use strict";(this.webpackChunktweb=this.webpackChunktweb||[]).push([[813,339],{2582:(e,t,a)=>{a.d(t,{Z:()=>i});var n=a(2325);class i{constructor(e){this.element=document.body.querySelector("."+e.className),this.container=document.createElement("div"),this.container.className="container center-align",this.imageDiv=document.createElement("div"),this.imageDiv.className="auth-image",this.title=document.createElement("h4"),e.titleLangKey&&this.title.append((0,n.ag)(e.titleLangKey)),this.subtitle=document.createElement("p"),this.subtitle.className="subtitle",e.subtitleLangKey&&this.subtitle.append((0,n.ag)(e.subtitleLangKey)),this.container.append(this.imageDiv,this.title,this.subtitle),e.withInputWrapper&&(this.inputWrapper=document.createElement("div"),this.inputWrapper.className="input-wrapper",this.container.append(this.inputWrapper)),this.element.append(this.container)}}},8339:(e,t,a)=>{a.r(t),a.d(t,{default:()=>v});var n=a(4494),i=a(503),s=a(279),r=a(6765),p=a(2325),l=a(2582),u=a(4874),c=a(8799),o=a(5565),m=a(1168),d=a(8115),h=a(3512);let g=null;const v=new u.Z("page-signUp",!0,(()=>{const e=new l.Z({className:"page-signUp",withInputWrapper:!0,titleLangKey:"YourName",subtitleLangKey:"Login.Register.Subtitle"});e.imageDiv.classList.add("avatar-edit"),e.title.classList.add("fullName");const t=document.createElement("canvas");t.id="canvas-avatar",t.className="avatar-edit-canvas";const u=document.createElement("span");let v;u.className="tgico tgico-cameraadd",e.imageDiv.append(t,u),e.imageDiv.addEventListener("click",(()=>{m.Z.createPopup(r.Z).open(t,(e=>{v=e}))}));const b=t=>{const a=L.value||"",n=y.value||"",i=a||n?(a+" "+n).trim():"";i?(0,o.Z)(e.title,(0,d.Z)(i)):(0,o.Z)(e.title,(0,p.ag)("YourName"))},L=new i.Z({label:"FirstName",maxLength:70}),y=new i.Z({label:"LastName",maxLength:64}),Z=(0,n.Z)("btn-primary btn-color-primary"),w=new p.ZP.IntlElement({key:"StartMessaging"});return Z.append(w.element),e.inputWrapper.append(L.container,y.container,Z),L.input.addEventListener("input",b),y.input.addEventListener("input",b),Z.addEventListener("click",(function(e){if(L.input.classList.contains("error")||y.input.classList.contains("error"))return!1;if(!L.value.length)return L.input.classList.add("error"),!1;this.disabled=!0;const t=L.value.trim(),n=y.value.trim(),i={phone_number:g.phone_number,phone_code_hash:g.phone_code_hash,first_name:t,last_name:n};w.update({key:"PleaseWait"});const r=(0,s.y)(this);h.Z.managers.apiManager.invokeApi("auth.signUp",i).then((e=>{"auth.authorization"===e._?(h.Z.managers.apiManager.setUser(e.user),new Promise(((e,t)=>{if(!v)return e();v().then((a=>{h.Z.managers.appProfileManager.uploadProfilePhoto(a).then(e,t)}),t)})).finally((()=>{a.e(781).then(a.bind(a,5436)).then((e=>{e.default.mount()}))}))):(w.update({key:e._}),this.removeAttribute("disabled"),r.remove())})).catch((e=>{this.removeAttribute("disabled"),r.remove(),e.type,w.update({key:e.type})}))})),(0,c.Z)(),new Promise((e=>{window.requestAnimationFrame(e)}))}),(e=>{g=e,h.Z.managers.appStateManager.pushToState("authState",{_:"authStateSignUp",authCode:e})}))}}]);
//# sourceMappingURL=813.16dbb7f391389d3f4a73.chunk.js.map
"use strict";(this.webpackChunktweb=this.webpackChunktweb||[]).push([[813,339],{2582:(e,t,a)=>{a.d(t,{Z:()=>i});var n=a(2325);class i{constructor(e){this.element=document.body.querySelector("."+e.className),this.container=document.createElement("div"),this.container.className="container center-align",this.imageDiv=document.createElement("div"),this.imageDiv.className="auth-image",this.title=document.createElement("h4"),e.titleLangKey&&this.title.append((0,n.ag)(e.titleLangKey)),this.subtitle=document.createElement("p"),this.subtitle.className="subtitle",e.subtitleLangKey&&this.subtitle.append((0,n.ag)(e.subtitleLangKey)),this.container.append(this.imageDiv,this.title,this.subtitle),e.withInputWrapper&&(this.inputWrapper=document.createElement("div"),this.inputWrapper.className="input-wrapper",this.container.append(this.inputWrapper)),this.element.append(this.container)}}},8339:(e,t,a)=>{a.r(t),a.d(t,{default:()=>v});var n=a(4494),i=a(503),s=a(279),r=a(6765),p=a(2325),l=a(2582),u=a(4874),c=a(8799),o=a(5565),m=a(1168),d=a(8115),h=a(3512);let g=null;const v=new u.Z("page-signUp",!0,(()=>{const e=new l.Z({className:"page-signUp",withInputWrapper:!0,titleLangKey:"YourName",subtitleLangKey:"Login.Register.Subtitle"});e.imageDiv.classList.add("avatar-edit"),e.title.classList.add("fullName");const t=document.createElement("canvas");t.id="canvas-avatar",t.className="avatar-edit-canvas";const u=document.createElement("span");let v;u.className="tgico tgico-cameraadd",e.imageDiv.append(t,u),e.imageDiv.addEventListener("click",(()=>{m.Z.createPopup(r.Z).open(t,(e=>{v=e}))}));const b=t=>{const a=L.value||"",n=y.value||"",i=a||n?(a+" "+n).trim():"";i?(0,o.Z)(e.title,(0,d.Z)(i)):(0,o.Z)(e.title,(0,p.ag)("YourName"))},L=new i.ZP({label:"FirstName",maxLength:70}),y=new i.ZP({label:"LastName",maxLength:64}),Z=(0,n.Z)("btn-primary btn-color-primary"),w=new p.ZP.IntlElement({key:"StartMessaging"});return Z.append(w.element),e.inputWrapper.append(L.container,y.container,Z),L.input.addEventListener("input",b),y.input.addEventListener("input",b),Z.addEventListener("click",(function(e){if(L.input.classList.contains("error")||y.input.classList.contains("error"))return!1;if(!L.value.length)return L.input.classList.add("error"),!1;this.disabled=!0;const t=L.value.trim(),n=y.value.trim(),i={phone_number:g.phone_number,phone_code_hash:g.phone_code_hash,first_name:t,last_name:n};w.update({key:"PleaseWait"});const r=(0,s.y)(this);h.Z.managers.apiManager.invokeApi("auth.signUp",i).then((e=>{"auth.authorization"===e._?(h.Z.managers.apiManager.setUser(e.user),new Promise(((e,t)=>{if(!v)return e();v().then((a=>{h.Z.managers.appProfileManager.uploadProfilePhoto(a).then(e,t)}),t)})).finally((()=>{a.e(781).then(a.bind(a,5436)).then((e=>{e.default.mount()}))}))):(w.update({key:e._}),this.removeAttribute("disabled"),r.remove())})).catch((e=>{this.removeAttribute("disabled"),r.remove(),e.type,w.update({key:e.type})}))})),(0,c.Z)(),new Promise((e=>{window.requestAnimationFrame(e)}))}),(e=>{g=e,h.Z.managers.appStateManager.pushToState("authState",{_:"authStateSignUp",authCode:e})}))}}]);
//# sourceMappingURL=813.d856111940496f11117b.chunk.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -186,27 +186,28 @@
<glyph unicode="&#xe9b0;" glyph-name="sport" d="M512 981.333c259.206 0 469.333-210.128 469.333-469.333s-210.128-469.333-469.333-469.333c-259.206 0-469.333 210.128-469.333 469.333s210.128 469.333 469.333 469.333zM633.382 876.421l-99.43-59.674c-11.823-7.094-26.224-7.98-38.692-2.66l-5.212 2.66-99.43 59.674c-73.272-24.394-136.73-70.269-182.904-130.155 1.307-2.149 2.38-4.446 3.232-6.866l1.114-3.719 21.333-85.333c3.181-12.722 0.316-26.088-7.549-36.331l-3.674-4.187-85.333-85.333c-2.67-2.67-5.606-4.913-8.723-6.727l-0.113-5.77c0-98.342 36.968-188.050 97.765-255.985l94.228-0.015c14.987 0 28.876-7.863 36.586-20.715l56.656-94.465c31.514-8.363 64.619-12.82 98.764-12.82s67.25 4.457 98.764 12.82l56.649 94.465c6.747 11.245 18.224 18.671 31.028 20.352l5.559 0.363 94.235 0.015c60.797 67.935 97.765 157.643 97.765 255.985l-0.071 5.746c-3.132 1.819-6.083 4.069-8.765 6.751l-85.333 85.333c-10.598 10.598-14.858 25.978-11.223 40.518l21.333 85.333c0.951 3.804 2.386 7.361 4.221 10.62-43.172 56.11-101.644 99.936-169.159 125.296l-13.622 4.824zM537.6 716.8l170.667-128c15.914-11.935 21.468-33.284 13.389-51.462l-85.333-192c-6.848-15.408-22.128-25.338-38.989-25.338h-170.667c-16.861 0-32.141 9.93-38.989 25.338l-85.333 192c-8.079 18.178-2.525 39.527 13.389 51.462l170.667 128c15.17 11.378 36.030 11.378 51.2 0zM512 629.333l-117.871-88.403 60.265-135.597h115.211l60.265 135.597-117.871 88.403z" />
<glyph unicode="&#xe9b1;" glyph-name="star" d="M489.233 266.53l-192.036-117.645c-19.968-12.233-46.072-5.961-58.304 14.007-5.975 9.754-7.756 21.504-4.94 32.589l29.727 117.009c10.731 42.236 39.634 77.542 78.92 96.405l209.503 100.587c9.766 4.689 13.884 16.405 9.19 26.176-3.797 7.906-12.382 12.335-21.030 10.837l-233.201-40.371c-47.404-8.209-96.017 4.881-132.891 35.785l-73.67 61.736c-17.948 15.041-20.305 41.784-5.264 59.732 7.315 8.729 17.835 14.149 29.19 15.037l225.085 17.615c15.902 1.245 29.76 11.308 35.864 26.044l86.833 209.611c8.96 21.634 33.766 31.907 55.398 22.944 10.389-4.303 18.641-12.557 22.946-22.944l86.835-209.611c6.101-14.736 19.959-24.799 35.861-26.044l226.321-17.712c23.347-1.827 40.789-22.234 38.963-45.58-0.879-11.231-6.191-21.65-14.763-28.958l-172.604-147.153c-12.151-10.355-17.455-26.662-13.717-42.189l53.065-220.437c5.478-22.767-8.533-45.666-31.3-51.149-10.94-2.633-22.477-0.811-32.073 5.069l-193.613 118.609c-13.594 8.324-30.707 8.324-44.297 0z" />
<glyph unicode="&#xe9b2;" glyph-name="stickers" d="M341.329 42.666c-164.949 0-298.667 133.718-298.667 298.667v341.334c0 164.949 133.718 298.667 298.667 298.667h341.337c164.949 0 298.667-133.718 298.667-298.667v-219.297c0-33.113-9.632-65.51-27.724-93.243-39.413-60.421-84.122-115.645-134.106-165.629s-105.209-94.695-165.631-134.108c-27.734-18.091-60.131-27.723-93.243-27.723h-219.3zM682.667 896h-341.337c-117.821 0-213.333-95.513-213.333-213.333v-341.334c0-117.821 95.513-213.333 213.333-213.333l170.671 0.001c21.881 0 39.915 16.471 42.38 37.691l0.287 4.976v183.467c0 61.176 47.686 111.215 107.915 114.973l7.285 0.227h183.467c21.881 0 39.915 16.471 42.38 37.691l0.287 4.976v170.667c0 117.821-95.513 213.333-213.333 213.333zM859.908 384.125l-6.575-0.125h-183.467c-15.12 0-27.616-11.236-29.594-25.814l-0.273-4.053v-183.467l-0.126-6.576c42.878 30.512 82.634 64.090 119.29 100.746s70.233 76.411 100.745 119.289z" />
<glyph unicode="&#xe9b3;" glyph-name="stop" d="M512 981.333c259.206 0 469.333-210.128 469.333-469.333s-210.128-469.333-469.333-469.333c-259.206 0-469.333 210.128-469.333 469.333s210.128 469.333 469.333 469.333zM512 896c-212.077 0-384-171.923-384-384s171.923-384 384-384c212.077 0 384 171.923 384 384s-171.923 384-384 384zM341.333 554.667h341.333c23.564 0 42.667-19.103 42.667-42.667 0-21.881-16.471-39.915-37.691-42.38l-4.976-0.287h-341.333c-23.564 0-42.667 19.103-42.667 42.667 0 21.881 16.471 39.915 37.691 42.38l4.976 0.287z" />
<glyph unicode="&#xe9b4;" glyph-name="strikethrough" d="M213.333 469.333c-23.564 0-42.667 19.103-42.667 42.667 0 21.881 16.471 39.915 37.691 42.38l4.976 0.287 117.686-0.032c-18.867 28.174-30.474 61.619-32.144 97.66l-0.209 9.038v21.333c0 91.4 71.849 166.019 162.149 170.458l8.518 0.209h85.333c94.257 0 170.667-76.41 170.667-170.667 0-23.564-19.103-42.667-42.667-42.667-21.881 0-39.915 16.471-42.38 37.691l-0.287 4.976c0 44.986-34.811 81.842-78.965 85.099l-6.369 0.234h-85.333c-44.986 0-81.842-34.811-85.099-78.965l-0.234-6.369v-21.333c0-56.554 44.012-102.828 99.653-106.44l7.013-0.227h320c23.564 0 42.667-19.103 42.667-42.667 0-21.881-16.471-39.915-37.691-42.38l-4.976-0.287-117.658-0.011c18.85-28.165 30.446-61.595 32.116-97.618l0.209-9.038v-21.333c0-91.4-71.849-166.019-162.149-170.458l-8.518-0.209h-85.333c-94.257 0-170.667 76.41-170.667 170.667 0 23.564 19.103 42.667 42.667 42.667s42.667-19.103 42.667-42.667c0-44.986 34.811-81.842 78.965-85.099l6.369-0.234h85.333c44.986 0 81.842 34.811 85.099 78.965l0.234 6.369v21.333c0 56.554-44.012 102.828-99.653 106.44l-7.013 0.227h-320z" />
<glyph unicode="&#xe9b5;" glyph-name="textedit" d="M213.333 789.333c0-35.346 28.654-64 64-64h170.667v-448c0-35.346 28.654-64 64-64s64 28.654 64 64v448h170.667c35.346 0 64 28.654 64 64s-28.654 64-64 64h-469.333c-35.346 0-64-28.654-64-64z" />
<glyph unicode="&#xe9b6;" glyph-name="tip" d="M553.748 141.202c15.333 0 27.763-12.507 27.763-27.934 0-14.025-10.272-25.636-23.66-27.631l-4.103-0.303h-83.496c-15.333 0-27.763 12.507-27.763 27.934 0 14.025 10.272 25.636 23.66 27.631l4.103 0.303h83.496zM512 896c176.672 0 320-142.842 320-319.18 0-96.165-45.020-183.487-121.995-250.705-18.108-15.813-30.035-46.777-33.961-93.98-2.836-34.108-29.677-60.802-62.957-63.824l-6.311-0.285h-189.552c-36.144 0-66.257 27.871-69.269 64.111-3.925 47.201-15.849 78.163-33.952 93.971-76.981 67.225-122.003 154.545-122.003 250.711 0 176.338 143.328 319.18 320 319.18zM512 840.131c-146.125 0-264.475-117.949-264.475-263.311 0-78.842 37.366-151.313 102.873-208.518 30.847-26.938 47.87-71.136 52.889-131.509 0.519-6.25 5.045-11.262 10.907-12.567l3.030-0.332h189.551c7.272 0 13.331 5.608 13.937 12.899 5.020 60.373 22.046 104.574 52.898 131.516 65.5 57.197 102.864 129.669 102.864 208.51 0 145.363-118.35 263.311-264.475 263.311zM640.823 572.391c8.81-11.013 8.084-26.577-1.069-36.716l-3.362-3.165-96.061-76.788 0.043-114.389c0-15.67-12.703-28.373-28.373-28.373-14.246 0-26.039 10.498-28.066 24.181l-0.308 4.193v114.347l-96.018 76.831c-12.236 9.789-14.22 27.644-4.431 39.881 8.81 11.013 24.154 13.721 36.055 7.016l3.826-2.585 88.942-71.137 88.942 71.137c12.236 9.789 30.091 7.805 39.881-4.431z" />
<glyph unicode="&#xe9b7;" glyph-name="tools" d="M682.667 469.333c21.881 0 39.915-16.471 42.38-37.691l0.287-4.976v-85.333h128c23.564 0 42.667-19.103 42.667-42.667 0-21.881-16.471-39.915-37.691-42.38l-4.976-0.287h-128v-85.333c0-23.564-19.103-42.667-42.667-42.667-21.881 0-39.915 16.471-42.38 37.691l-0.287 4.976v256c0 23.564 19.103 42.667 42.667 42.667zM512 341.333c23.564 0 42.667-19.103 42.667-42.667 0-21.881-16.471-39.915-37.691-42.38l-4.976-0.287h-341.333c-23.564 0-42.667 19.103-42.667 42.667 0 21.881 16.471 39.915 37.691 42.38l4.976 0.287h341.333zM341.333 896c21.881 0 39.915-16.471 42.38-37.691l0.287-4.976v-256c0-23.564-19.103-42.667-42.667-42.667-21.881 0-39.915 16.471-42.38 37.691l-0.287 4.976v85.333h-128c-23.564 0-42.667 19.103-42.667 42.667 0 21.881 16.471 39.915 37.691 42.38l4.976 0.287h128v85.333c0 23.564 19.103 42.667 42.667 42.667zM853.333 768c23.564 0 42.667-19.103 42.667-42.667 0-21.881-16.471-39.915-37.691-42.38l-4.976-0.287h-341.333c-23.564 0-42.667 19.103-42.667 42.667 0 21.881 16.471 39.915 37.691 42.38l4.976 0.287h341.333z" />
<glyph unicode="&#xe9b8;" glyph-name="unarchive" d="M392.533 981.335l244.813 0.001c44.386 0.015 75.093 0.026 103.906-8.203 25.434-7.264 49.297-19.195 70.37-35.185 23.868-18.113 42.283-42.683 68.907-78.203l10.743-14.325c13.175-17.557 23.138-30.831 30.37-45.782 6.383-13.201 11.042-27.17 13.854-41.561 3.187-16.299 3.179-32.896 3.17-54.848v-203.398c0-1.015 0-2.039 0-3.063v-97.532c0-46.238 0-83.533-2.466-113.737-2.543-31.095-7.91-58.411-20.787-83.682-20.45-40.141-53.086-72.777-93.231-93.231-25.267-12.877-52.582-18.244-83.682-20.787-30.199-2.466-67.494-2.466-113.737-2.466h-225.529c-46.239 0-83.535 0-113.736 2.466-31.098 2.543-58.412 7.91-83.683 20.787-40.141 20.454-72.777 53.090-93.23 93.231-12.876 25.271-18.244 52.587-20.785 83.682-2.467 30.204-2.467 67.499-2.467 113.741v97.519c0 1.203 0 2.398 0 3.588v199.387l-0.001 3.494c-0.009 21.953-0.015 38.549 3.171 54.848 2.813 14.391 7.47 28.36 13.853 41.561 7.231 14.951 17.194 28.224 30.372 45.781l10.744 14.326c26.621 35.52 45.035 60.089 68.905 78.202 21.073 15.99 44.935 27.921 70.371 35.185 28.813 8.229 59.517 8.218 103.905 8.203l5.879-0.001zM832.034 782.067c-2.94 4.009-6.575 8.876-11.127 14.948l-5.12 6.827c-31.522 42.028-42.59 56.144-55.748 66.128-12.642 9.594-26.961 16.753-42.223 21.111-15.881 4.536-33.813 4.921-86.349 4.921h-238.933c-52.535 0-70.47-0.385-86.351-4.921-15.261-4.358-29.579-11.517-42.222-21.111-13.157-9.984-24.226-24.1-55.747-66.128l-5.12-6.827c-4.553-6.071-8.186-10.939-11.127-14.947 3.229 1.865 6.513 3.649 9.849 5.349 25.271 12.876 52.586 18.244 83.683 20.785 30.203 2.468 67.5 2.467 113.742 2.467h225.519c46.242 0 83.537 0.001 113.741-2.467 31.1-2.541 58.415-7.909 83.682-20.785 3.337-1.699 6.622-3.484 9.852-5.349zM170.667 494.933v-93.867c0-48.495 0.033-82.3 2.183-108.617 2.11-25.822 6.042-40.657 11.768-51.891 12.272-24.085 31.853-43.669 55.938-55.94 11.237-5.726 26.071-9.66 51.892-11.767 26.319-2.15 60.124-2.185 108.619-2.185h221.867c48.495 0 82.3 0.034 108.621 2.185 25.818 2.108 40.653 6.042 51.891 11.767 24.085 12.271 43.665 31.855 55.936 55.94 5.726 11.234 9.66 26.069 11.767 51.891 2.15 26.317 2.185 60.122 2.185 108.617v93.867c0 48.495-0.034 82.3-2.185 108.62-2.108 25.821-6.042 40.655-11.767 51.892-12.271 24.085-31.851 43.666-55.936 55.938-11.238 5.725-26.074 9.658-51.891 11.768-26.321 2.15-60.126 2.183-108.621 2.183h-221.867c-48.495 0-82.301-0.033-108.619-2.183-25.821-2.11-40.655-6.042-51.892-11.768-24.084-12.272-43.666-31.853-55.938-55.938-5.725-11.236-9.658-26.071-11.768-51.892-2.15-26.321-2.183-60.125-2.183-108.62zM353.83 375.164c16.662-16.661 43.677-16.661 60.34 0l97.83 97.83 97.83-97.83c16.661-16.661 43.678-16.661 60.339 0s16.661 43.678 0 60.339l-128 128c-16.661 16.666-43.678 16.666-60.339 0l-128-128c-16.663-16.661-16.663-43.678 0-60.339z" />
<glyph unicode="&#xe9b9;" glyph-name="underline" d="M768 256c23.564 0 42.667-19.103 42.667-42.667 0-21.881-16.471-39.915-37.691-42.38l-4.976-0.287h-512c-23.564 0-42.667 19.103-42.667 42.667 0 21.881 16.471 39.915 37.691 42.38l4.976 0.287h512zM682.667 853.333c21.881 0 39.915-16.471 42.38-37.691l0.287-4.976v-256c0-117.821-95.513-213.333-213.333-213.333-114.72 0-208.291 90.552-213.136 204.079l-0.197 9.254v256c0 23.564 19.103 42.667 42.667 42.667 21.881 0 39.915-16.471 42.38-37.691l0.287-4.976v-256c0-70.692 57.308-128 128-128 68.168 0 123.89 53.287 127.783 120.479l0.217 7.521v256c0 23.564 19.103 42.667 42.667 42.667z" />
<glyph unicode="&#xe9ba;" glyph-name="unmute" d="M448 917.333c0 35.346 28.655 64 64 64s64-28.654 64-64c0-2.219-0.111-4.411-0.333-6.572 135.842-28.465 239.437-146.199 245.197-290.185l7.266-181.673c2.197-54.857 19.469-108.049 49.924-153.732l32.115-48.171c8.725-13.094 9.54-29.926 2.116-43.802-7.424-13.871-21.884-22.532-37.619-22.532h-725.333c-15.735 0-30.193 8.661-37.618 22.532-7.425 13.875-6.611 30.707 2.117 43.802l32.114 48.171c30.455 45.683 47.728 98.876 49.923 153.732l7.267 181.673c5.76 143.987 109.355 261.72 245.197 290.185-0.222 2.161-0.333 4.353-0.333 6.572zM512 832c-120.11 0-218.799-94.82-223.599-214.834l-7.267-181.672c-2.535-63.377-20.724-125.026-52.797-179.494h567.323c-32.073 54.468-50.261 116.117-52.796 179.494l-7.266 181.672c-4.8 120.014-103.488 214.834-223.599 214.834zM512 42.667c46.933 0 85.333 38.4 85.333 85.333h-170.667c0-46.933 37.973-85.333 85.333-85.333z" />
<glyph unicode="&#xe9bb;" glyph-name="unpin" d="M364.822 938.667h295.684c19.183 0 35.46 0 48.154-0.745 11.716-0.687 27.567-2.193 41.51-9.505 40.094-21.027 58.206-68.659 42.206-111.012-5.564-14.727-16.41-26.383-24.708-34.681-8.994-8.992-21.163-19.806-35.499-32.55l-40.337-35.855c-3.494-3.107-5.261-4.686-6.511-5.881l-0.119-0.113 0.017-0.164c0.149-1.721 0.435-4.074 1.015-8.714l11.251-90.013c1.907-15.24 2.406-18.244 3.132-20.736 1.89-6.511 5.303-12.48 9.958-17.408 1.779-1.886 4.122-3.84 16.294-13.205l30.11-23.164c23.245-17.877 42.163-32.431 56-44.382 12.791-11.051 27.43-24.858 35.008-41.911 22.579-50.85 2.287-110.511-46.613-137.045-6.532-3.546-13.636-5.999-20.89-7.727l145.685-145.685c16.661-16.661 16.661-43.678 0-60.339s-43.678-16.661-60.339 0l-768 768c-16.662 16.663-16.662 43.677 0 60.34s43.677 16.662 60.34 0l68.116-68.116c2.951 29.104 20.096 55.968 47.546 70.363 13.942 7.311 29.792 8.817 41.508 9.505 12.697 0.745 28.974 0.745 48.157 0.745h1.325zM700.314 384.026c18.103 0.060 31.97 0.252 42.914 0.875 11.319 0.644 16.213 1.668 17.634 1.963 0.277 0.060 0.422 0.090 0.457 0.085 9.101 5.346 12.919 16.572 8.969 26.359-0.034 0.017-0.128 0.132-0.311 0.346-0.947 1.101-4.203 4.898-12.779 12.309-11.772 10.167-28.74 23.241-53.35 42.172l-30.903 23.77c-9.242 7.1-17.37 13.346-24.401 20.787-13.965 14.784-24.209 32.683-29.879 52.215-2.85 9.83-4.117 20.006-5.555 31.573l-0.294 2.369-11.251 90.013-0.23 1.826c-0.858 6.713-1.924 15.119-1.34 23.579 1.156 16.606 7.142 32.513 17.22 45.76 5.137 6.749 11.482 12.364 16.55 16.849l1.378 1.221 39.347 34.975c15.595 13.862 25.847 23 32.849 30 2.935 2.935 4.612 4.848 5.487 5.893 0.026 1.112-0.388 2.196-1.143 3.010-1.348 0.201-3.874 0.516-8.017 0.759-9.886 0.58-23.62 0.598-44.484 0.598h-294.357c-20.866 0-34.6-0.018-44.483-0.598-4.143-0.243-6.669-0.559-8.016-0.759-0.758-0.814-1.17-1.898-1.144-3.010 0.874-1.045 2.551-2.959 5.487-5.893 7.002-7 17.255-16.137 32.85-30l40.724-36.196c5.068-4.485 11.414-10.1 16.549-16.849 10.080-13.248 16.066-29.154 17.219-45.76 0.588-8.46-0.482-16.866-1.336-23.58l-0.231-1.826-2.996-23.967 280.87-280.87zM313.425 571.29c3.103 3.285 5.654 7.031 7.57 11.093l61.537-61.538c-2.238-2.812-4.598-5.53-7.075-8.154-7.029-7.441-15.161-13.687-24.403-20.787l-30.901-23.77c-24.608-18.931-41.576-32.004-53.348-42.172-8.577-7.411-11.834-11.209-12.779-12.309-0.184-0.213-0.28-0.329-0.311-0.346-3.951-9.788-0.133-21.013 8.966-26.359 0.035 0.004 0.18-0.026 0.456-0.085 1.421-0.294 6.318-1.318 17.634-1.963 15.532-0.883 36.951-0.9 67.998-0.9h170.609l85.333-85.333h-50.044v-213.333c0-23.565-19.102-42.667-42.667-42.667s-42.667 19.102-42.667 42.667v213.333h-121.958c-29.324 0-53.194 0-71.448 1.037-16.874 0.96-36.896 2.974-53.3 11.878-48.899 26.534-69.192 86.195-46.612 137.045 7.575 17.054 22.216 30.861 35.006 41.911 13.836 11.951 32.758 26.505 56.003 44.386h0.001l30.108 23.159c12.172 9.365 14.511 11.319 16.293 13.205z" />
<glyph unicode="&#xe9bc;" glyph-name="unread" d="M256 938.667h512c91.4 0 166.019-71.849 170.458-162.149l0.209-8.518v-170.667c0-23.564-19.103-42.667-42.667-42.667-21.881 0-39.915 16.471-42.38 37.691l-0.287 4.976v170.667c0 44.986-34.811 81.842-78.965 85.099l-6.369 0.234h-512c-44.986 0-81.842-34.811-85.099-78.965l-0.234-6.369v-579.66l94.081 94.081c8.916 8.916 20.555 14.483 32.962 15.892l6.259 0.354h250.698c23.564 0 42.667-19.103 42.667-42.667 0-21.881-16.471-39.915-37.691-42.38l-4.976-0.287h-238.327l-150.886-150.886c-18.329-18.329-48.045-18.329-66.374 0-7.544 7.544-12.255 17.393-13.447 27.891l-0.3 5.296v672.366c0 91.4 71.849 166.019 162.149 170.458l8.518 0.209zM810.667 512c94.257 0 170.667-76.41 170.667-170.667s-76.41-170.667-170.667-170.667c-94.257 0-170.667 76.41-170.667 170.667s76.41 170.667 170.667 170.667zM810.667 426.667c-47.128 0-85.333-38.205-85.333-85.333s38.205-85.333 85.333-85.333c47.128 0 85.333 38.205 85.333 85.333s-38.205 85.333-85.333 85.333z" />
<glyph unicode="&#xe9bd;" glyph-name="up" d="M512 622.327l268.497-268.497c16.662-16.662 43.677-16.662 60.34 0s16.662 43.677 0 60.34l-298.667 298.667c-16.662 16.662-43.677 16.662-60.34 0l-298.667-298.667c-16.662-16.662-16.662-43.677 0-60.34s43.677-16.662 60.34 0l268.497 268.497z" />
<glyph unicode="&#xe9be;" glyph-name="user" d="M405.333 746.667c0 58.91 47.757 106.667 106.667 106.667s106.667-47.756 106.667-106.667c0-58.91-47.757-106.667-106.667-106.667s-106.667 47.756-106.667 106.667zM512 938.667c-106.039 0-192-85.961-192-192s85.961-192 192-192c106.039 0 192 85.961 192 192s-85.961 192-192 192zM225.078 321.643c31.946 35.593 115.305 105.024 286.922 105.024s254.976-69.431 286.921-105.024c7.138-7.953 11.746-20.877 11.746-39.475 0-38.016-30.818-68.834-68.834-68.834h-459.666c-38.016 0-68.833 30.818-68.833 68.834 0 18.598 4.607 31.522 11.744 39.475zM512 512c-198.378 0-304.066-81.702-350.428-133.359-26.029-29.001-33.572-65.421-33.572-96.474 0-85.146 69.023-154.167 154.167-154.167h459.666c85.146 0 154.167 69.022 154.167 154.167 0 31.053-7.543 67.473-33.57 96.474-46.366 51.657-152.051 133.359-350.43 133.359z" />
<glyph unicode="&#xe9bf;" glyph-name="username" d="M512 981.333c259.206 0 469.333-210.128 469.333-469.333 0-138.814-70.078-230.734-168.892-234.847-63.863-2.658-119.454 33.041-149.259 91.225-37.901-40.012-91.626-64.97-151.181-64.97-115.203 0-208.593 93.39-208.593 208.593s93.39 208.593 208.593 208.593c48.261 0 92.693-16.389 128.036-43.906l-0.036 5.98c0 23.564 19.103 42.667 42.667 42.667 21.881 0 39.915-16.471 42.38-37.691l0.287-4.976v-213.333c0-67.759 38.647-108.79 83.559-106.921 48.336 2.012 87.108 52.867 87.108 149.587 0 212.077-171.923 384-384 384s-384-171.923-384-384c0-212.077 171.923-384 384-384 34.105 0 67.582 4.436 99.854 13.1 22.758 6.11 46.161-7.386 52.271-30.144s-7.386-46.161-30.144-52.271c-39.472-10.598-80.388-16.019-121.981-16.019-259.206 0-469.333 210.128-469.333 469.333s210.128 469.333 469.333 469.333zM512 635.259c-68.074 0-123.259-55.185-123.259-123.259s55.185-123.259 123.259-123.259c68.074 0 123.259 55.185 123.259 123.259s-55.185 123.259-123.259 123.259z" />
<glyph unicode="&#xe9c0;" glyph-name="videocamera" d="M290.134 874.667h232.161c34.347 0 62.694 0.001 85.781-1.886 23.983-1.959 46.029-6.164 66.739-16.716 32.111-16.362 58.219-42.471 74.581-74.584 10.551-20.708 14.758-42.754 16.717-66.737 1.22-14.914 1.651-32.020 1.805-51.519l83.46 80.125c48.9 46.945 129.954 12.115 129.954-55.434v-351.831c0-67.669-81.169-102.268-129.984-55.403l-83.43 80.094c-0.154-19.499-0.585-36.608-1.805-51.52-1.958-23.983-6.165-46.029-16.717-66.739-16.363-32.111-42.47-58.219-74.581-74.581-20.71-10.551-42.756-14.758-66.739-16.717-23.087-1.886-51.435-1.886-85.781-1.886h-233.925c-34.345 0-62.691 0-85.781 1.886-23.983 1.958-46.029 6.165-66.737 16.717-32.113 16.363-58.222 42.47-74.584 74.581-10.551 20.71-14.756 42.756-16.716 66.739-1.887 23.091-1.886 51.435-1.885 85.781v233.926c-0.001 34.345-0.001 62.691 1.885 85.781 1.96 23.983 6.165 46.029 16.716 66.737 16.362 32.113 42.471 58.222 74.584 74.584 20.708 10.551 42.754 14.757 66.737 16.716 23.091 1.887 51.437 1.886 85.782 1.886h1.763zM768 526.912c0-0.026 0-0.055 0-0.081v-29.662c0-0.026 0-0.055 0-0.081 0.021-11.588 4.757-22.669 13.12-30.694l114.88-110.289v311.791l-114.893-110.297c-8.354-8.021-13.086-19.089-13.107-30.686zM682.667 526.933v100.267c0 36.547-0.034 61.392-1.6 80.596-1.532 18.706-4.301 28.272-7.701 34.945-8.179 16.056-21.235 29.111-37.291 37.292-6.673 3.4-16.239 6.17-34.944 7.699-19.204 1.569-44.049 1.602-80.597 1.602h-230.399c-36.547 0-61.392-0.033-80.596-1.602-18.706-1.528-28.272-4.299-34.945-7.699-16.057-8.181-29.111-21.236-37.292-37.292-3.4-6.673-6.17-16.239-7.698-34.945-1.569-19.204-1.602-44.048-1.602-80.596v-230.4c0-36.548 0.033-61.393 1.602-80.597 1.528-18.705 4.298-28.271 7.698-34.944 8.181-16.055 21.236-29.111 37.292-37.291 6.673-3.401 16.239-6.17 34.944-7.697 19.204-1.57 44.049-1.604 80.596-1.604h230.399c36.548 0 61.393 0.034 80.597 1.604 18.705 1.527 28.271 4.297 34.944 7.697 16.055 8.179 29.111 21.235 37.291 37.291 3.401 6.673 6.17 16.239 7.701 34.944 1.566 19.204 1.6 44.049 1.6 80.597v100.271c0 0.030 0 0.064 0 0.098v29.662c0 0.034 0 0.068 0 0.102z" />
<glyph unicode="&#xe9c1;" glyph-name="videocamera_crossed_filled" d="M72.837 926.17c-16.663 16.662-43.678 16.662-60.34 0s-16.662-43.677 0-60.34l768-768c16.661-16.661 43.678-16.661 60.339 0s16.661 43.678 0 60.339l-83.311 83.311c10.475 34.313 10.475 80.653 10.475 159.586v221.867c0 95.582 0 143.373-18.603 179.881-16.363 32.113-42.47 58.222-74.581 74.584-36.51 18.601-84.301 18.601-179.883 18.601h-179.2c-95.582 0-143.373 0-179.881-18.601-3.124-1.591-6.19-3.276-9.197-5.048l-53.819 53.819zM42.667 622.933c0 68.67 0 112.673 6.898 145.546l622.994-622.994c-36.228-17.485-83.998-17.485-177.626-17.485h-179.2c-95.582 0-143.373 0-179.881 18.603-32.113 16.363-58.222 42.47-74.584 74.581-18.601 36.51-18.601 84.301-18.601 179.883v221.867zM810.667 571.494v-118.989c0-16.849 4.988-33.318 14.332-47.334l78.165-117.252c23.42-35.127 78.17-18.547 78.17 23.667v400.829c0 42.215-54.75 58.792-78.17 23.667l-78.165-117.251c-9.344-14.018-14.332-30.487-14.332-47.337z" />
<glyph unicode="&#xe9c2;" glyph-name="videocamera_filled" d="M18.605 760.148c-18.602-36.507-18.602-84.299-18.602-179.881v-136.533c0-95.585 0-143.371 18.602-179.883 16.362-32.114 42.471-58.22 74.584-74.581 36.507-18.603 84.299-18.603 179.881-18.603h136.533c95.582 0 143.374 0 179.879 18.603 32.114 16.361 58.226 42.468 74.587 74.581 18.603 36.511 18.603 84.298 18.603 179.883v136.533c0 95.582 0 143.374-18.603 179.881-16.361 32.113-42.473 58.222-74.587 74.584-36.506 18.602-84.297 18.602-179.879 18.602h-136.533c-95.582 0-143.374 0-179.881-18.602-32.113-16.362-58.222-42.471-74.584-74.584zM752.742 596.089c-8.522-10.224-13.187-23.111-13.187-36.419v-115.937l147.081-176.498c27.25-32.7 80.475-13.431 80.475 29.133v431.261c0 42.567-53.225 61.836-80.475 29.136l-133.894-160.676z" />
<glyph unicode="&#xe9c3;" glyph-name="videochat" d="M332.8 938.667h-1.763c-34.345 0-62.691 0.001-85.782-1.885-23.983-1.96-46.029-6.165-66.736-16.716-32.113-16.363-58.222-42.471-74.584-74.584-10.551-20.707-14.756-42.754-16.716-66.736-1.886-23.091-1.886-51.437-1.885-85.782v-607.63c0-17.259 10.395-32.815 26.339-39.42s34.295-2.953 46.498 9.25l130.677 130.675c16.195 16.196 19.569 19.183 22.873 21.205 3.817 2.342 7.98 4.066 12.333 5.111 3.768 0.905 8.265 1.178 31.168 1.178h337.742c34.347 0 62.69 0 85.781 1.886 23.983 1.958 46.029 6.165 66.739 16.717 32.111 16.363 58.219 42.47 74.581 74.581 10.551 20.71 14.758 42.756 16.717 66.739 1.886 23.091 1.886 51.435 1.886 85.781v233.925c0 34.345 0 62.691-1.886 85.782-1.958 23.983-6.165 46.029-16.717 66.736-16.363 32.113-42.47 58.222-74.581 74.584-20.71 10.551-42.756 14.756-66.739 16.716-23.091 1.886-51.435 1.886-85.781 1.885v0h-360.162zM217.26 844.032c6.673 3.4 16.239 6.17 34.945 7.699 19.204 1.569 44.048 1.602 80.596 1.602h358.4c36.548 0 61.393-0.033 80.597-1.602 18.705-1.528 28.271-4.299 34.944-7.699 16.055-8.181 29.111-21.236 37.291-37.292 3.401-6.673 6.17-16.239 7.697-34.945 1.57-19.204 1.604-44.048 1.604-80.596v-230.4c0-36.548-0.034-61.393-1.604-80.597-1.527-18.705-4.297-28.271-7.697-34.944-8.179-16.055-21.235-29.111-37.291-37.291-6.673-3.401-16.239-6.17-34.944-7.697-19.204-1.57-44.049-1.604-80.597-1.604l-339.534 0.004c-17.361 0.013-32.667 0.030-47.535-3.541-13.061-3.136-25.546-8.307-36.999-15.326-13.036-7.987-23.849-18.82-36.114-31.108l-2.512-2.517-57.841-57.839v502.861c0 36.547 0.033 61.392 1.602 80.596 1.528 18.706 4.299 28.272 7.699 34.945 8.181 16.056 21.236 29.111 37.292 37.292zM554.667 746.667c0 23.564-19.102 42.667-42.667 42.667s-42.667-19.103-42.667-42.667v-341.333c0-23.565 19.102-42.667 42.667-42.667s42.667 19.102 42.667 42.667v341.333zM682.667 661.333c23.565 0 42.667-19.103 42.667-42.667v-85.333c0-23.565-19.102-42.667-42.667-42.667s-42.667 19.102-42.667 42.667v85.333c0 23.564 19.102 42.667 42.667 42.667zM384 661.333c0 23.564-19.102 42.667-42.667 42.667s-42.667-19.103-42.667-42.667v-170.667c0-23.565 19.103-42.667 42.667-42.667s42.667 19.102 42.667 42.667v170.667z" />
<glyph unicode="&#xe9c4;" glyph-name="volume_down" d="M789.333 512c0 75.52-43.52 140.373-106.667 171.947v-343.467c63.147 31.147 106.667 96 106.667 171.52zM213.333 597.333v-170.667c0-23.467 19.2-42.667 42.667-42.667h128l140.373-140.373c26.88-26.88 72.96-7.68 72.96 30.293v476.587c0 37.973-46.080 57.173-72.96 30.293l-140.373-140.8h-128c-23.467 0-42.667-19.2-42.667-42.667z" />
<glyph unicode="&#xe9c5;" glyph-name="volume_mute" d="M298.667 597.333v-170.667c0-23.467 19.2-42.667 42.667-42.667h128l140.373-140.373c26.88-26.88 72.96-7.68 72.96 30.293v476.587c0 37.973-46.080 57.173-72.96 30.293l-140.373-140.8h-128c-23.467 0-42.667-19.2-42.667-42.667z" />
<glyph unicode="&#xe9c6;" glyph-name="volume_off" d="M154.88 869.12c-16.64-16.64-16.64-43.52 0-60.16l156.16-156.16-12.373-12.8h-128c-23.467 0-42.667-19.2-42.667-42.667v-170.667c0-23.467 19.2-42.667 42.667-42.667h128l140.373-140.373c26.88-26.88 72.96-7.68 72.96 30.293v177.92l178.347-178.347c-20.907-15.787-43.52-29.013-68.267-38.827-15.36-6.4-24.747-22.613-24.747-39.253 0-30.72 31.147-50.347 59.307-38.827 34.133 14.080 66.133 32.853 94.72 55.893l57.173-57.173c16.64-16.64 43.52-16.64 60.16 0s16.64 43.52 0 60.16l-653.227 653.653c-16.64 16.64-43.52 16.64-60.587 0zM810.667 512c0-34.987-6.4-68.693-17.493-99.84l65.28-65.28c23.893 49.92 37.547 105.813 37.547 165.12 0 163.413-102.4 303.36-246.613 358.4-25.173 9.813-52.053-9.813-52.053-36.693v-8.107c0-16.213 10.667-30.293 26.027-36.267 109.653-44.373 187.307-151.893 187.307-277.333zM439.040 780.373l-7.253-7.253 80.213-80.213v57.6c0 37.973-46.080 56.747-72.96 29.867zM704 512c0 75.52-43.52 140.373-106.667 171.947v-76.373l105.813-105.813c0.427 3.413 0.853 6.827 0.853 10.24z" />
<glyph unicode="&#xe9c7;" glyph-name="volume_up" d="M128 597.333v-170.667c0-23.467 19.2-42.667 42.667-42.667h128l140.373-140.373c26.88-26.88 72.96-7.68 72.96 30.293v476.587c0 37.973-46.080 57.173-72.96 30.293l-140.373-140.8h-128c-23.467 0-42.667-19.2-42.667-42.667zM704 512c0 75.52-43.52 140.373-106.667 171.947v-343.467c63.147 31.147 106.667 96 106.667 171.52zM597.333 834.133v-8.533c0-16.213 10.667-30.293 25.6-36.267 110.080-43.947 187.733-151.893 187.733-277.333s-77.653-233.387-187.733-277.333c-15.36-5.973-25.6-20.053-25.6-36.267v-8.533c0-26.88 26.88-45.653 51.627-36.267 144.64 55.040 247.040 194.56 247.040 358.4s-102.4 303.36-247.040 358.4c-24.747 9.813-51.627-9.387-51.627-36.267z" />
<glyph unicode="&#xe9c8;" glyph-name="zoomin" d="M426.667 896c164.949 0 298.667-133.718 298.667-298.667 0-67.259-22.232-129.325-59.749-179.25l0.566-0.364 4.020-3.549 213.333-213.333c16.662-16.662 16.662-43.677 0-60.34-15.381-15.381-39.583-16.564-56.32-3.549l-4.020 3.549-213.333 213.333c-1.459 1.459-2.791 2.998-3.995 4.602-49.844-37.534-111.91-59.766-179.169-59.766-164.949 0-298.667 133.718-298.667 298.667s133.718 298.667 298.667 298.667zM426.667 810.667c-117.821 0-213.333-95.513-213.333-213.333s95.513-213.333 213.333-213.333c117.821 0 213.333 95.513 213.333 213.333s-95.513 213.333-213.333 213.333zM426.667 725.333c21.881 0 39.915-16.471 42.38-37.691l0.287-4.976v-42.667h42.667c23.564 0 42.667-19.103 42.667-42.667 0-21.881-16.471-39.915-37.691-42.38l-4.976-0.287h-42.667v-42.667c0-23.564-19.103-42.667-42.667-42.667-21.881 0-39.915 16.471-42.38 37.691l-0.287 4.976v42.667h-42.667c-23.564 0-42.667 19.103-42.667 42.667 0 21.881 16.471 39.915 37.691 42.38l4.976 0.287h42.667v42.667c0 23.564 19.103 42.667 42.667 42.667z" />
<glyph unicode="&#xe9c9;" glyph-name="zoomout" d="M426.667 896c164.949 0 298.667-133.718 298.667-298.667 0-67.259-22.232-129.325-59.749-179.25l0.566-0.364 4.020-3.549 213.333-213.333c16.662-16.662 16.662-43.677 0-60.34-15.381-15.381-39.583-16.564-56.32-3.549l-4.020 3.549-213.333 213.333c-1.459 1.459-2.791 2.998-3.995 4.602-49.844-37.534-111.91-59.766-179.169-59.766-164.949 0-298.667 133.718-298.667 298.667s133.718 298.667 298.667 298.667zM426.667 810.667c-117.821 0-213.333-95.513-213.333-213.333s95.513-213.333 213.333-213.333c117.821 0 213.333 95.513 213.333 213.333s-95.513 213.333-213.333 213.333zM512 640c23.564 0 42.667-19.103 42.667-42.667 0-21.881-16.471-39.915-37.691-42.38l-4.976-0.287h-170.667c-23.564 0-42.667 19.103-42.667 42.667 0 21.881 16.471 39.915 37.691 42.38l4.976 0.287h170.667z" />
<glyph unicode="&#xe9b3;" glyph-name="stickers_face" d="M508.254 970.667v0 0c-70.878 0-126.682 0-171.586-3.668-45.801-3.742-84.005-11.513-118.707-29.194-56.733-28.907-102.858-75.032-131.765-131.765-17.681-34.702-25.452-72.905-29.194-118.707-3.669-44.903-3.669-100.708-3.668-171.586v-29.090c0-60.813 0-108.698 2.721-147.396 2.774-39.441 8.527-72.546 21.656-103.181 30.498-71.168 87.203-127.872 158.367-158.37 30.638-13.129 63.741-18.88 103.183-21.653 34.158-2.402 75.473-2.684 126.519-2.718l5.154-0.004c5.141 0 10.381 0 15.723 0h6.165c3.793 0 7.467 0 11.034 0h1.468c5.167 0 10.231 0 15.095 0.068 27.524 0.222 48.269 1.195 68.425 5.333 32.969 6.767 64.341 19.763 92.437 38.289 22.477 14.822 41.835 34.185 71.714 64.077l109.905 109.901c29.888 29.884 49.254 49.242 64.077 71.718 18.526 28.096 31.522 59.469 38.289 92.437 4.117 20.070 5.103 40.721 5.333 68.070 0.068 4.971 0.068 10.159 0.068 15.45v4.395c0 2.641 0 5.342 0 8.107v27.042h-0.004c-0.034 51.047-0.316 92.361-2.718 126.519-2.773 39.441-8.525 72.545-21.653 103.183-30.498 71.164-87.202 127.869-158.37 158.367-30.635 13.13-63.74 18.883-103.181 21.656-38.699 2.721-86.583 2.721-147.396 2.721h-29.090zM495.125 138.667h-21.794c-55.070 0.021-95.602 0.226-128.084 2.509-34.955 2.462-57.361 7.172-75.556 14.967-51.024 21.867-91.68 62.524-113.546 113.549-7.798 18.193-12.509 40.602-14.967 75.554-2.486 35.354-2.511 80.243-2.511 143.036v25.566c0 73.19 0.033 125.513 3.385 166.536 3.311 40.524 9.647 66.247 20.177 86.915 20.726 40.677 53.797 73.748 94.473 94.473 20.668 10.531 46.391 16.866 86.915 20.177 41.023 3.351 93.345 3.385 166.536 3.385h25.566c62.793 0 107.682-0.025 143.036-2.511 34.953-2.458 57.361-7.169 75.554-14.967 51.025-21.866 91.682-62.522 113.549-113.546 7.795-18.195 12.506-40.601 14.967-75.556 2.483-35.354 2.509-80.243 2.509-143.035 0-13.73-0.017-25.033-0.119-34.56-0.073-3.162-0.188-5.73-0.367-7.966-0.124-1.515-0.26-2.53-0.363-3.153-0.124-0.145-0.256-0.282-0.401-0.405-0.623-0.098-1.638-0.235-3.153-0.358-5.568-0.452-13.239-0.486-26.884-0.486h-129.924c-24.465 0-45.359 0-62.524-1.404-18.052-1.472-35.708-4.71-52.612-13.325-25.425-12.954-46.093-33.621-59.046-59.046-8.614-16.905-11.849-34.56-13.325-52.612-1.020-12.446-1.297-26.854-1.374-43.162-7.607-0.905-15.364-1.374-23.241-1.374-75.435 0-140.893 43.017-173.053 106.044-10.175 19.942-34.587 27.857-54.528 17.681-19.94-10.172-27.857-34.586-17.682-54.528 45.466-89.105 138.187-150.263 245.263-150.263 7.812 0 15.556 0.329 23.211 0.969v-67.81c0-13.649-0.030-21.316-0.486-26.884-0.124-1.515-0.26-2.53-0.358-3.153-0.124-0.145-0.26-0.282-0.405-0.405-0.623-0.098-1.638-0.235-3.153-0.358-2.274-0.188-4.894-0.303-8.132-0.375-7.859-0.081-16.917-0.107-27.55-0.115zM620.535 160.043c0.013 2.795 0.009 5.641 0.009 8.516v129.651c0 26.59 0.034 43.968 1.118 57.242 1.045 12.779 2.846 17.954 4.309 20.826 4.774 9.365 12.386 16.981 21.756 21.751 2.867 1.463 8.043 3.264 20.821 4.309 13.274 1.084 30.652 1.118 57.242 1.118h129.655c2.871 0 5.717 0 8.512 0.009-2.53-4.702-5.274-9.297-8.222-13.769-9.463-14.353-22.204-27.379-56.388-61.564l-103.479-103.479c-34.185-34.185-47.211-46.925-61.564-56.388-4.471-2.948-9.067-5.692-13.769-8.222zM373.333 554.667c29.455 0 53.333 28.655 53.333 64 0 35.346-23.878 64-53.333 64s-53.333-28.654-53.333-64c0-35.345 23.878-64 53.333-64zM704 618.667c0-35.345-23.876-64-53.333-64s-53.333 28.655-53.333 64c0 35.346 23.876 64 53.333 64s53.333-28.654 53.333-64z" />
<glyph unicode="&#xe9b4;" glyph-name="stop" d="M512 981.333c259.206 0 469.333-210.128 469.333-469.333s-210.128-469.333-469.333-469.333c-259.206 0-469.333 210.128-469.333 469.333s210.128 469.333 469.333 469.333zM512 896c-212.077 0-384-171.923-384-384s171.923-384 384-384c212.077 0 384 171.923 384 384s-171.923 384-384 384zM341.333 554.667h341.333c23.564 0 42.667-19.103 42.667-42.667 0-21.881-16.471-39.915-37.691-42.38l-4.976-0.287h-341.333c-23.564 0-42.667 19.103-42.667 42.667 0 21.881 16.471 39.915 37.691 42.38l4.976 0.287z" />
<glyph unicode="&#xe9b5;" glyph-name="strikethrough" d="M213.333 469.333c-23.564 0-42.667 19.103-42.667 42.667 0 21.881 16.471 39.915 37.691 42.38l4.976 0.287 117.686-0.032c-18.867 28.174-30.474 61.619-32.144 97.66l-0.209 9.038v21.333c0 91.4 71.849 166.019 162.149 170.458l8.518 0.209h85.333c94.257 0 170.667-76.41 170.667-170.667 0-23.564-19.103-42.667-42.667-42.667-21.881 0-39.915 16.471-42.38 37.691l-0.287 4.976c0 44.986-34.811 81.842-78.965 85.099l-6.369 0.234h-85.333c-44.986 0-81.842-34.811-85.099-78.965l-0.234-6.369v-21.333c0-56.554 44.012-102.828 99.653-106.44l7.013-0.227h320c23.564 0 42.667-19.103 42.667-42.667 0-21.881-16.471-39.915-37.691-42.38l-4.976-0.287-117.658-0.011c18.85-28.165 30.446-61.595 32.116-97.618l0.209-9.038v-21.333c0-91.4-71.849-166.019-162.149-170.458l-8.518-0.209h-85.333c-94.257 0-170.667 76.41-170.667 170.667 0 23.564 19.103 42.667 42.667 42.667s42.667-19.103 42.667-42.667c0-44.986 34.811-81.842 78.965-85.099l6.369-0.234h85.333c44.986 0 81.842 34.811 85.099 78.965l0.234 6.369v21.333c0 56.554-44.012 102.828-99.653 106.44l-7.013 0.227h-320z" />
<glyph unicode="&#xe9b6;" glyph-name="textedit" d="M213.333 789.333c0-35.346 28.654-64 64-64h170.667v-448c0-35.346 28.654-64 64-64s64 28.654 64 64v448h170.667c35.346 0 64 28.654 64 64s-28.654 64-64 64h-469.333c-35.346 0-64-28.654-64-64z" />
<glyph unicode="&#xe9b7;" glyph-name="tip" d="M553.748 141.202c15.333 0 27.763-12.507 27.763-27.934 0-14.025-10.272-25.636-23.66-27.631l-4.103-0.303h-83.496c-15.333 0-27.763 12.507-27.763 27.934 0 14.025 10.272 25.636 23.66 27.631l4.103 0.303h83.496zM512 896c176.672 0 320-142.842 320-319.18 0-96.165-45.020-183.487-121.995-250.705-18.108-15.813-30.035-46.777-33.961-93.98-2.836-34.108-29.677-60.802-62.957-63.824l-6.311-0.285h-189.552c-36.144 0-66.257 27.871-69.269 64.111-3.925 47.201-15.849 78.163-33.952 93.971-76.981 67.225-122.003 154.545-122.003 250.711 0 176.338 143.328 319.18 320 319.18zM512 840.131c-146.125 0-264.475-117.949-264.475-263.311 0-78.842 37.366-151.313 102.873-208.518 30.847-26.938 47.87-71.136 52.889-131.509 0.519-6.25 5.045-11.262 10.907-12.567l3.030-0.332h189.551c7.272 0 13.331 5.608 13.937 12.899 5.020 60.373 22.046 104.574 52.898 131.516 65.5 57.197 102.864 129.669 102.864 208.51 0 145.363-118.35 263.311-264.475 263.311zM640.823 572.391c8.81-11.013 8.084-26.577-1.069-36.716l-3.362-3.165-96.061-76.788 0.043-114.389c0-15.67-12.703-28.373-28.373-28.373-14.246 0-26.039 10.498-28.066 24.181l-0.308 4.193v114.347l-96.018 76.831c-12.236 9.789-14.22 27.644-4.431 39.881 8.81 11.013 24.154 13.721 36.055 7.016l3.826-2.585 88.942-71.137 88.942 71.137c12.236 9.789 30.091 7.805 39.881-4.431z" />
<glyph unicode="&#xe9b8;" glyph-name="tools" d="M682.667 469.333c21.881 0 39.915-16.471 42.38-37.691l0.287-4.976v-85.333h128c23.564 0 42.667-19.103 42.667-42.667 0-21.881-16.471-39.915-37.691-42.38l-4.976-0.287h-128v-85.333c0-23.564-19.103-42.667-42.667-42.667-21.881 0-39.915 16.471-42.38 37.691l-0.287 4.976v256c0 23.564 19.103 42.667 42.667 42.667zM512 341.333c23.564 0 42.667-19.103 42.667-42.667 0-21.881-16.471-39.915-37.691-42.38l-4.976-0.287h-341.333c-23.564 0-42.667 19.103-42.667 42.667 0 21.881 16.471 39.915 37.691 42.38l4.976 0.287h341.333zM341.333 896c21.881 0 39.915-16.471 42.38-37.691l0.287-4.976v-256c0-23.564-19.103-42.667-42.667-42.667-21.881 0-39.915 16.471-42.38 37.691l-0.287 4.976v85.333h-128c-23.564 0-42.667 19.103-42.667 42.667 0 21.881 16.471 39.915 37.691 42.38l4.976 0.287h128v85.333c0 23.564 19.103 42.667 42.667 42.667zM853.333 768c23.564 0 42.667-19.103 42.667-42.667 0-21.881-16.471-39.915-37.691-42.38l-4.976-0.287h-341.333c-23.564 0-42.667 19.103-42.667 42.667 0 21.881 16.471 39.915 37.691 42.38l4.976 0.287h341.333z" />
<glyph unicode="&#xe9b9;" glyph-name="unarchive" d="M392.533 981.335l244.813 0.001c44.386 0.015 75.093 0.026 103.906-8.203 25.434-7.264 49.297-19.195 70.37-35.185 23.868-18.113 42.283-42.683 68.907-78.203l10.743-14.325c13.175-17.557 23.138-30.831 30.37-45.782 6.383-13.201 11.042-27.17 13.854-41.561 3.187-16.299 3.179-32.896 3.17-54.848v-203.398c0-1.015 0-2.039 0-3.063v-97.532c0-46.238 0-83.533-2.466-113.737-2.543-31.095-7.91-58.411-20.787-83.682-20.45-40.141-53.086-72.777-93.231-93.231-25.267-12.877-52.582-18.244-83.682-20.787-30.199-2.466-67.494-2.466-113.737-2.466h-225.529c-46.239 0-83.535 0-113.736 2.466-31.098 2.543-58.412 7.91-83.683 20.787-40.141 20.454-72.777 53.090-93.23 93.231-12.876 25.271-18.244 52.587-20.785 83.682-2.467 30.204-2.467 67.499-2.467 113.741v97.519c0 1.203 0 2.398 0 3.588v199.387l-0.001 3.494c-0.009 21.953-0.015 38.549 3.171 54.848 2.813 14.391 7.47 28.36 13.853 41.561 7.231 14.951 17.194 28.224 30.372 45.781l10.744 14.326c26.621 35.52 45.035 60.089 68.905 78.202 21.073 15.99 44.935 27.921 70.371 35.185 28.813 8.229 59.517 8.218 103.905 8.203l5.879-0.001zM832.034 782.067c-2.94 4.009-6.575 8.876-11.127 14.948l-5.12 6.827c-31.522 42.028-42.59 56.144-55.748 66.128-12.642 9.594-26.961 16.753-42.223 21.111-15.881 4.536-33.813 4.921-86.349 4.921h-238.933c-52.535 0-70.47-0.385-86.351-4.921-15.261-4.358-29.579-11.517-42.222-21.111-13.157-9.984-24.226-24.1-55.747-66.128l-5.12-6.827c-4.553-6.071-8.186-10.939-11.127-14.947 3.229 1.865 6.513 3.649 9.849 5.349 25.271 12.876 52.586 18.244 83.683 20.785 30.203 2.468 67.5 2.467 113.742 2.467h225.519c46.242 0 83.537 0.001 113.741-2.467 31.1-2.541 58.415-7.909 83.682-20.785 3.337-1.699 6.622-3.484 9.852-5.349zM170.667 494.933v-93.867c0-48.495 0.033-82.3 2.183-108.617 2.11-25.822 6.042-40.657 11.768-51.891 12.272-24.085 31.853-43.669 55.938-55.94 11.237-5.726 26.071-9.66 51.892-11.767 26.319-2.15 60.124-2.185 108.619-2.185h221.867c48.495 0 82.3 0.034 108.621 2.185 25.818 2.108 40.653 6.042 51.891 11.767 24.085 12.271 43.665 31.855 55.936 55.94 5.726 11.234 9.66 26.069 11.767 51.891 2.15 26.317 2.185 60.122 2.185 108.617v93.867c0 48.495-0.034 82.3-2.185 108.62-2.108 25.821-6.042 40.655-11.767 51.892-12.271 24.085-31.851 43.666-55.936 55.938-11.238 5.725-26.074 9.658-51.891 11.768-26.321 2.15-60.126 2.183-108.621 2.183h-221.867c-48.495 0-82.301-0.033-108.619-2.183-25.821-2.11-40.655-6.042-51.892-11.768-24.084-12.272-43.666-31.853-55.938-55.938-5.725-11.236-9.658-26.071-11.768-51.892-2.15-26.321-2.183-60.125-2.183-108.62zM353.83 375.164c16.662-16.661 43.677-16.661 60.34 0l97.83 97.83 97.83-97.83c16.661-16.661 43.678-16.661 60.339 0s16.661 43.678 0 60.339l-128 128c-16.661 16.666-43.678 16.666-60.339 0l-128-128c-16.663-16.661-16.663-43.678 0-60.339z" />
<glyph unicode="&#xe9ba;" glyph-name="underline" d="M768 256c23.564 0 42.667-19.103 42.667-42.667 0-21.881-16.471-39.915-37.691-42.38l-4.976-0.287h-512c-23.564 0-42.667 19.103-42.667 42.667 0 21.881 16.471 39.915 37.691 42.38l4.976 0.287h512zM682.667 853.333c21.881 0 39.915-16.471 42.38-37.691l0.287-4.976v-256c0-117.821-95.513-213.333-213.333-213.333-114.72 0-208.291 90.552-213.136 204.079l-0.197 9.254v256c0 23.564 19.103 42.667 42.667 42.667 21.881 0 39.915-16.471 42.38-37.691l0.287-4.976v-256c0-70.692 57.308-128 128-128 68.168 0 123.89 53.287 127.783 120.479l0.217 7.521v256c0 23.564 19.103 42.667 42.667 42.667z" />
<glyph unicode="&#xe9bb;" glyph-name="unmute" d="M448 917.333c0 35.346 28.655 64 64 64s64-28.654 64-64c0-2.219-0.111-4.411-0.333-6.572 135.842-28.465 239.437-146.199 245.197-290.185l7.266-181.673c2.197-54.857 19.469-108.049 49.924-153.732l32.115-48.171c8.725-13.094 9.54-29.926 2.116-43.802-7.424-13.871-21.884-22.532-37.619-22.532h-725.333c-15.735 0-30.193 8.661-37.618 22.532-7.425 13.875-6.611 30.707 2.117 43.802l32.114 48.171c30.455 45.683 47.728 98.876 49.923 153.732l7.267 181.673c5.76 143.987 109.355 261.72 245.197 290.185-0.222 2.161-0.333 4.353-0.333 6.572zM512 832c-120.11 0-218.799-94.82-223.599-214.834l-7.267-181.672c-2.535-63.377-20.724-125.026-52.797-179.494h567.323c-32.073 54.468-50.261 116.117-52.796 179.494l-7.266 181.672c-4.8 120.014-103.488 214.834-223.599 214.834zM512 42.667c46.933 0 85.333 38.4 85.333 85.333h-170.667c0-46.933 37.973-85.333 85.333-85.333z" />
<glyph unicode="&#xe9bc;" glyph-name="unpin" d="M364.822 938.667h295.684c19.183 0 35.46 0 48.154-0.745 11.716-0.687 27.567-2.193 41.51-9.505 40.094-21.027 58.206-68.659 42.206-111.012-5.564-14.727-16.41-26.383-24.708-34.681-8.994-8.992-21.163-19.806-35.499-32.55l-40.337-35.855c-3.494-3.107-5.261-4.686-6.511-5.881l-0.119-0.113 0.017-0.164c0.149-1.721 0.435-4.074 1.015-8.714l11.251-90.013c1.907-15.24 2.406-18.244 3.132-20.736 1.89-6.511 5.303-12.48 9.958-17.408 1.779-1.886 4.122-3.84 16.294-13.205l30.11-23.164c23.245-17.877 42.163-32.431 56-44.382 12.791-11.051 27.43-24.858 35.008-41.911 22.579-50.85 2.287-110.511-46.613-137.045-6.532-3.546-13.636-5.999-20.89-7.727l145.685-145.685c16.661-16.661 16.661-43.678 0-60.339s-43.678-16.661-60.339 0l-768 768c-16.662 16.663-16.662 43.677 0 60.34s43.677 16.662 60.34 0l68.116-68.116c2.951 29.104 20.096 55.968 47.546 70.363 13.942 7.311 29.792 8.817 41.508 9.505 12.697 0.745 28.974 0.745 48.157 0.745h1.325zM700.314 384.026c18.103 0.060 31.97 0.252 42.914 0.875 11.319 0.644 16.213 1.668 17.634 1.963 0.277 0.060 0.422 0.090 0.457 0.085 9.101 5.346 12.919 16.572 8.969 26.359-0.034 0.017-0.128 0.132-0.311 0.346-0.947 1.101-4.203 4.898-12.779 12.309-11.772 10.167-28.74 23.241-53.35 42.172l-30.903 23.77c-9.242 7.1-17.37 13.346-24.401 20.787-13.965 14.784-24.209 32.683-29.879 52.215-2.85 9.83-4.117 20.006-5.555 31.573l-0.294 2.369-11.251 90.013-0.23 1.826c-0.858 6.713-1.924 15.119-1.34 23.579 1.156 16.606 7.142 32.513 17.22 45.76 5.137 6.749 11.482 12.364 16.55 16.849l1.378 1.221 39.347 34.975c15.595 13.862 25.847 23 32.849 30 2.935 2.935 4.612 4.848 5.487 5.893 0.026 1.112-0.388 2.196-1.143 3.010-1.348 0.201-3.874 0.516-8.017 0.759-9.886 0.58-23.62 0.598-44.484 0.598h-294.357c-20.866 0-34.6-0.018-44.483-0.598-4.143-0.243-6.669-0.559-8.016-0.759-0.758-0.814-1.17-1.898-1.144-3.010 0.874-1.045 2.551-2.959 5.487-5.893 7.002-7 17.255-16.137 32.85-30l40.724-36.196c5.068-4.485 11.414-10.1 16.549-16.849 10.080-13.248 16.066-29.154 17.219-45.76 0.588-8.46-0.482-16.866-1.336-23.58l-0.231-1.826-2.996-23.967 280.87-280.87zM313.425 571.29c3.103 3.285 5.654 7.031 7.57 11.093l61.537-61.538c-2.238-2.812-4.598-5.53-7.075-8.154-7.029-7.441-15.161-13.687-24.403-20.787l-30.901-23.77c-24.608-18.931-41.576-32.004-53.348-42.172-8.577-7.411-11.834-11.209-12.779-12.309-0.184-0.213-0.28-0.329-0.311-0.346-3.951-9.788-0.133-21.013 8.966-26.359 0.035 0.004 0.18-0.026 0.456-0.085 1.421-0.294 6.318-1.318 17.634-1.963 15.532-0.883 36.951-0.9 67.998-0.9h170.609l85.333-85.333h-50.044v-213.333c0-23.565-19.102-42.667-42.667-42.667s-42.667 19.102-42.667 42.667v213.333h-121.958c-29.324 0-53.194 0-71.448 1.037-16.874 0.96-36.896 2.974-53.3 11.878-48.899 26.534-69.192 86.195-46.612 137.045 7.575 17.054 22.216 30.861 35.006 41.911 13.836 11.951 32.758 26.505 56.003 44.386h0.001l30.108 23.159c12.172 9.365 14.511 11.319 16.293 13.205z" />
<glyph unicode="&#xe9bd;" glyph-name="unread" d="M256 938.667h512c91.4 0 166.019-71.849 170.458-162.149l0.209-8.518v-170.667c0-23.564-19.103-42.667-42.667-42.667-21.881 0-39.915 16.471-42.38 37.691l-0.287 4.976v170.667c0 44.986-34.811 81.842-78.965 85.099l-6.369 0.234h-512c-44.986 0-81.842-34.811-85.099-78.965l-0.234-6.369v-579.66l94.081 94.081c8.916 8.916 20.555 14.483 32.962 15.892l6.259 0.354h250.698c23.564 0 42.667-19.103 42.667-42.667 0-21.881-16.471-39.915-37.691-42.38l-4.976-0.287h-238.327l-150.886-150.886c-18.329-18.329-48.045-18.329-66.374 0-7.544 7.544-12.255 17.393-13.447 27.891l-0.3 5.296v672.366c0 91.4 71.849 166.019 162.149 170.458l8.518 0.209zM810.667 512c94.257 0 170.667-76.41 170.667-170.667s-76.41-170.667-170.667-170.667c-94.257 0-170.667 76.41-170.667 170.667s76.41 170.667 170.667 170.667zM810.667 426.667c-47.128 0-85.333-38.205-85.333-85.333s38.205-85.333 85.333-85.333c47.128 0 85.333 38.205 85.333 85.333s-38.205 85.333-85.333 85.333z" />
<glyph unicode="&#xe9be;" glyph-name="up" d="M512 622.327l268.497-268.497c16.662-16.662 43.677-16.662 60.34 0s16.662 43.677 0 60.34l-298.667 298.667c-16.662 16.662-43.677 16.662-60.34 0l-298.667-298.667c-16.662-16.662-16.662-43.677 0-60.34s43.677-16.662 60.34 0l268.497 268.497z" />
<glyph unicode="&#xe9bf;" glyph-name="user" d="M405.333 746.667c0 58.91 47.757 106.667 106.667 106.667s106.667-47.756 106.667-106.667c0-58.91-47.757-106.667-106.667-106.667s-106.667 47.756-106.667 106.667zM512 938.667c-106.039 0-192-85.961-192-192s85.961-192 192-192c106.039 0 192 85.961 192 192s-85.961 192-192 192zM225.078 321.643c31.946 35.593 115.305 105.024 286.922 105.024s254.976-69.431 286.921-105.024c7.138-7.953 11.746-20.877 11.746-39.475 0-38.016-30.818-68.834-68.834-68.834h-459.666c-38.016 0-68.833 30.818-68.833 68.834 0 18.598 4.607 31.522 11.744 39.475zM512 512c-198.378 0-304.066-81.702-350.428-133.359-26.029-29.001-33.572-65.421-33.572-96.474 0-85.146 69.023-154.167 154.167-154.167h459.666c85.146 0 154.167 69.022 154.167 154.167 0 31.053-7.543 67.473-33.57 96.474-46.366 51.657-152.051 133.359-350.43 133.359z" />
<glyph unicode="&#xe9c0;" glyph-name="username" d="M512 981.333c259.206 0 469.333-210.128 469.333-469.333 0-138.814-70.078-230.734-168.892-234.847-63.863-2.658-119.454 33.041-149.259 91.225-37.901-40.012-91.626-64.97-151.181-64.97-115.203 0-208.593 93.39-208.593 208.593s93.39 208.593 208.593 208.593c48.261 0 92.693-16.389 128.036-43.906l-0.036 5.98c0 23.564 19.103 42.667 42.667 42.667 21.881 0 39.915-16.471 42.38-37.691l0.287-4.976v-213.333c0-67.759 38.647-108.79 83.559-106.921 48.336 2.012 87.108 52.867 87.108 149.587 0 212.077-171.923 384-384 384s-384-171.923-384-384c0-212.077 171.923-384 384-384 34.105 0 67.582 4.436 99.854 13.1 22.758 6.11 46.161-7.386 52.271-30.144s-7.386-46.161-30.144-52.271c-39.472-10.598-80.388-16.019-121.981-16.019-259.206 0-469.333 210.128-469.333 469.333s210.128 469.333 469.333 469.333zM512 635.259c-68.074 0-123.259-55.185-123.259-123.259s55.185-123.259 123.259-123.259c68.074 0 123.259 55.185 123.259 123.259s-55.185 123.259-123.259 123.259z" />
<glyph unicode="&#xe9c1;" glyph-name="videocamera" d="M290.134 874.667h232.161c34.347 0 62.694 0.001 85.781-1.886 23.983-1.959 46.029-6.164 66.739-16.716 32.111-16.362 58.219-42.471 74.581-74.584 10.551-20.708 14.758-42.754 16.717-66.737 1.22-14.914 1.651-32.020 1.805-51.519l83.46 80.125c48.9 46.945 129.954 12.115 129.954-55.434v-351.831c0-67.669-81.169-102.268-129.984-55.403l-83.43 80.094c-0.154-19.499-0.585-36.608-1.805-51.52-1.958-23.983-6.165-46.029-16.717-66.739-16.363-32.111-42.47-58.219-74.581-74.581-20.71-10.551-42.756-14.758-66.739-16.717-23.087-1.886-51.435-1.886-85.781-1.886h-233.925c-34.345 0-62.691 0-85.781 1.886-23.983 1.958-46.029 6.165-66.737 16.717-32.113 16.363-58.222 42.47-74.584 74.581-10.551 20.71-14.756 42.756-16.716 66.739-1.887 23.091-1.886 51.435-1.885 85.781v233.926c-0.001 34.345-0.001 62.691 1.885 85.781 1.96 23.983 6.165 46.029 16.716 66.737 16.362 32.113 42.471 58.222 74.584 74.584 20.708 10.551 42.754 14.757 66.737 16.716 23.091 1.887 51.437 1.886 85.782 1.886h1.763zM768 526.912c0-0.026 0-0.055 0-0.081v-29.662c0-0.026 0-0.055 0-0.081 0.021-11.588 4.757-22.669 13.12-30.694l114.88-110.289v311.791l-114.893-110.297c-8.354-8.021-13.086-19.089-13.107-30.686zM682.667 526.933v100.267c0 36.547-0.034 61.392-1.6 80.596-1.532 18.706-4.301 28.272-7.701 34.945-8.179 16.056-21.235 29.111-37.291 37.292-6.673 3.4-16.239 6.17-34.944 7.699-19.204 1.569-44.049 1.602-80.597 1.602h-230.399c-36.547 0-61.392-0.033-80.596-1.602-18.706-1.528-28.272-4.299-34.945-7.699-16.057-8.181-29.111-21.236-37.292-37.292-3.4-6.673-6.17-16.239-7.698-34.945-1.569-19.204-1.602-44.048-1.602-80.596v-230.4c0-36.548 0.033-61.393 1.602-80.597 1.528-18.705 4.298-28.271 7.698-34.944 8.181-16.055 21.236-29.111 37.292-37.291 6.673-3.401 16.239-6.17 34.944-7.697 19.204-1.57 44.049-1.604 80.596-1.604h230.399c36.548 0 61.393 0.034 80.597 1.604 18.705 1.527 28.271 4.297 34.944 7.697 16.055 8.179 29.111 21.235 37.291 37.291 3.401 6.673 6.17 16.239 7.701 34.944 1.566 19.204 1.6 44.049 1.6 80.597v100.271c0 0.030 0 0.064 0 0.098v29.662c0 0.034 0 0.068 0 0.102z" />
<glyph unicode="&#xe9c2;" glyph-name="videocamera_crossed_filled" d="M72.837 926.17c-16.663 16.662-43.678 16.662-60.34 0s-16.662-43.677 0-60.34l768-768c16.661-16.661 43.678-16.661 60.339 0s16.661 43.678 0 60.339l-83.311 83.311c10.475 34.313 10.475 80.653 10.475 159.586v221.867c0 95.582 0 143.373-18.603 179.881-16.363 32.113-42.47 58.222-74.581 74.584-36.51 18.601-84.301 18.601-179.883 18.601h-179.2c-95.582 0-143.373 0-179.881-18.601-3.124-1.591-6.19-3.276-9.197-5.048l-53.819 53.819zM42.667 622.933c0 68.67 0 112.673 6.898 145.546l622.994-622.994c-36.228-17.485-83.998-17.485-177.626-17.485h-179.2c-95.582 0-143.373 0-179.881 18.603-32.113 16.363-58.222 42.47-74.584 74.581-18.601 36.51-18.601 84.301-18.601 179.883v221.867zM810.667 571.494v-118.989c0-16.849 4.988-33.318 14.332-47.334l78.165-117.252c23.42-35.127 78.17-18.547 78.17 23.667v400.829c0 42.215-54.75 58.792-78.17 23.667l-78.165-117.251c-9.344-14.018-14.332-30.487-14.332-47.337z" />
<glyph unicode="&#xe9c3;" glyph-name="videocamera_filled" d="M18.605 760.148c-18.602-36.507-18.602-84.299-18.602-179.881v-136.533c0-95.585 0-143.371 18.602-179.883 16.362-32.114 42.471-58.22 74.584-74.581 36.507-18.603 84.299-18.603 179.881-18.603h136.533c95.582 0 143.374 0 179.879 18.603 32.114 16.361 58.226 42.468 74.587 74.581 18.603 36.511 18.603 84.298 18.603 179.883v136.533c0 95.582 0 143.374-18.603 179.881-16.361 32.113-42.473 58.222-74.587 74.584-36.506 18.602-84.297 18.602-179.879 18.602h-136.533c-95.582 0-143.374 0-179.881-18.602-32.113-16.362-58.222-42.471-74.584-74.584zM752.742 596.089c-8.522-10.224-13.187-23.111-13.187-36.419v-115.937l147.081-176.498c27.25-32.7 80.475-13.431 80.475 29.133v431.261c0 42.567-53.225 61.836-80.475 29.136l-133.894-160.676z" />
<glyph unicode="&#xe9c4;" glyph-name="videochat" d="M332.8 938.667h-1.763c-34.345 0-62.691 0.001-85.782-1.885-23.983-1.96-46.029-6.165-66.736-16.716-32.113-16.363-58.222-42.471-74.584-74.584-10.551-20.707-14.756-42.754-16.716-66.736-1.886-23.091-1.886-51.437-1.885-85.782v-607.63c0-17.259 10.395-32.815 26.339-39.42s34.295-2.953 46.498 9.25l130.677 130.675c16.195 16.196 19.569 19.183 22.873 21.205 3.817 2.342 7.98 4.066 12.333 5.111 3.768 0.905 8.265 1.178 31.168 1.178h337.742c34.347 0 62.69 0 85.781 1.886 23.983 1.958 46.029 6.165 66.739 16.717 32.111 16.363 58.219 42.47 74.581 74.581 10.551 20.71 14.758 42.756 16.717 66.739 1.886 23.091 1.886 51.435 1.886 85.781v233.925c0 34.345 0 62.691-1.886 85.782-1.958 23.983-6.165 46.029-16.717 66.736-16.363 32.113-42.47 58.222-74.581 74.584-20.71 10.551-42.756 14.756-66.739 16.716-23.091 1.886-51.435 1.886-85.781 1.885v0h-360.162zM217.26 844.032c6.673 3.4 16.239 6.17 34.945 7.699 19.204 1.569 44.048 1.602 80.596 1.602h358.4c36.548 0 61.393-0.033 80.597-1.602 18.705-1.528 28.271-4.299 34.944-7.699 16.055-8.181 29.111-21.236 37.291-37.292 3.401-6.673 6.17-16.239 7.697-34.945 1.57-19.204 1.604-44.048 1.604-80.596v-230.4c0-36.548-0.034-61.393-1.604-80.597-1.527-18.705-4.297-28.271-7.697-34.944-8.179-16.055-21.235-29.111-37.291-37.291-6.673-3.401-16.239-6.17-34.944-7.697-19.204-1.57-44.049-1.604-80.597-1.604l-339.534 0.004c-17.361 0.013-32.667 0.030-47.535-3.541-13.061-3.136-25.546-8.307-36.999-15.326-13.036-7.987-23.849-18.82-36.114-31.108l-2.512-2.517-57.841-57.839v502.861c0 36.547 0.033 61.392 1.602 80.596 1.528 18.706 4.299 28.272 7.699 34.945 8.181 16.056 21.236 29.111 37.292 37.292zM554.667 746.667c0 23.564-19.102 42.667-42.667 42.667s-42.667-19.103-42.667-42.667v-341.333c0-23.565 19.102-42.667 42.667-42.667s42.667 19.102 42.667 42.667v341.333zM682.667 661.333c23.565 0 42.667-19.103 42.667-42.667v-85.333c0-23.565-19.102-42.667-42.667-42.667s-42.667 19.102-42.667 42.667v85.333c0 23.564 19.102 42.667 42.667 42.667zM384 661.333c0 23.564-19.102 42.667-42.667 42.667s-42.667-19.103-42.667-42.667v-170.667c0-23.565 19.103-42.667 42.667-42.667s42.667 19.102 42.667 42.667v170.667z" />
<glyph unicode="&#xe9c5;" glyph-name="volume_down" d="M789.333 512c0 75.52-43.52 140.373-106.667 171.947v-343.467c63.147 31.147 106.667 96 106.667 171.52zM213.333 597.333v-170.667c0-23.467 19.2-42.667 42.667-42.667h128l140.373-140.373c26.88-26.88 72.96-7.68 72.96 30.293v476.587c0 37.973-46.080 57.173-72.96 30.293l-140.373-140.8h-128c-23.467 0-42.667-19.2-42.667-42.667z" />
<glyph unicode="&#xe9c6;" glyph-name="volume_mute" d="M298.667 597.333v-170.667c0-23.467 19.2-42.667 42.667-42.667h128l140.373-140.373c26.88-26.88 72.96-7.68 72.96 30.293v476.587c0 37.973-46.080 57.173-72.96 30.293l-140.373-140.8h-128c-23.467 0-42.667-19.2-42.667-42.667z" />
<glyph unicode="&#xe9c7;" glyph-name="volume_off" d="M154.88 869.12c-16.64-16.64-16.64-43.52 0-60.16l156.16-156.16-12.373-12.8h-128c-23.467 0-42.667-19.2-42.667-42.667v-170.667c0-23.467 19.2-42.667 42.667-42.667h128l140.373-140.373c26.88-26.88 72.96-7.68 72.96 30.293v177.92l178.347-178.347c-20.907-15.787-43.52-29.013-68.267-38.827-15.36-6.4-24.747-22.613-24.747-39.253 0-30.72 31.147-50.347 59.307-38.827 34.133 14.080 66.133 32.853 94.72 55.893l57.173-57.173c16.64-16.64 43.52-16.64 60.16 0s16.64 43.52 0 60.16l-653.227 653.653c-16.64 16.64-43.52 16.64-60.587 0zM810.667 512c0-34.987-6.4-68.693-17.493-99.84l65.28-65.28c23.893 49.92 37.547 105.813 37.547 165.12 0 163.413-102.4 303.36-246.613 358.4-25.173 9.813-52.053-9.813-52.053-36.693v-8.107c0-16.213 10.667-30.293 26.027-36.267 109.653-44.373 187.307-151.893 187.307-277.333zM439.040 780.373l-7.253-7.253 80.213-80.213v57.6c0 37.973-46.080 56.747-72.96 29.867zM704 512c0 75.52-43.52 140.373-106.667 171.947v-76.373l105.813-105.813c0.427 3.413 0.853 6.827 0.853 10.24z" />
<glyph unicode="&#xe9c8;" glyph-name="volume_up" d="M128 597.333v-170.667c0-23.467 19.2-42.667 42.667-42.667h128l140.373-140.373c26.88-26.88 72.96-7.68 72.96 30.293v476.587c0 37.973-46.080 57.173-72.96 30.293l-140.373-140.8h-128c-23.467 0-42.667-19.2-42.667-42.667zM704 512c0 75.52-43.52 140.373-106.667 171.947v-343.467c63.147 31.147 106.667 96 106.667 171.52zM597.333 834.133v-8.533c0-16.213 10.667-30.293 25.6-36.267 110.080-43.947 187.733-151.893 187.733-277.333s-77.653-233.387-187.733-277.333c-15.36-5.973-25.6-20.053-25.6-36.267v-8.533c0-26.88 26.88-45.653 51.627-36.267 144.64 55.040 247.040 194.56 247.040 358.4s-102.4 303.36-247.040 358.4c-24.747 9.813-51.627-9.387-51.627-36.267z" />
<glyph unicode="&#xe9c9;" glyph-name="zoomin" d="M426.667 896c164.949 0 298.667-133.718 298.667-298.667 0-67.259-22.232-129.325-59.749-179.25l0.566-0.364 4.020-3.549 213.333-213.333c16.662-16.662 16.662-43.677 0-60.34-15.381-15.381-39.583-16.564-56.32-3.549l-4.020 3.549-213.333 213.333c-1.459 1.459-2.791 2.998-3.995 4.602-49.844-37.534-111.91-59.766-179.169-59.766-164.949 0-298.667 133.718-298.667 298.667s133.718 298.667 298.667 298.667zM426.667 810.667c-117.821 0-213.333-95.513-213.333-213.333s95.513-213.333 213.333-213.333c117.821 0 213.333 95.513 213.333 213.333s-95.513 213.333-213.333 213.333zM426.667 725.333c21.881 0 39.915-16.471 42.38-37.691l0.287-4.976v-42.667h42.667c23.564 0 42.667-19.103 42.667-42.667 0-21.881-16.471-39.915-37.691-42.38l-4.976-0.287h-42.667v-42.667c0-23.564-19.103-42.667-42.667-42.667-21.881 0-39.915 16.471-42.38 37.691l-0.287 4.976v42.667h-42.667c-23.564 0-42.667 19.103-42.667 42.667 0 21.881 16.471 39.915 37.691 42.38l4.976 0.287h42.667v42.667c0 23.564 19.103 42.667 42.667 42.667z" />
<glyph unicode="&#xe9ca;" glyph-name="zoomout" d="M426.667 896c164.949 0 298.667-133.718 298.667-298.667 0-67.259-22.232-129.325-59.749-179.25l0.566-0.364 4.020-3.549 213.333-213.333c16.662-16.662 16.662-43.677 0-60.34-15.381-15.381-39.583-16.564-56.32-3.549l-4.020 3.549-213.333 213.333c-1.459 1.459-2.791 2.998-3.995 4.602-49.844-37.534-111.91-59.766-179.169-59.766-164.949 0-298.667 133.718-298.667 298.667s133.718 298.667 298.667 298.667zM426.667 810.667c-117.821 0-213.333-95.513-213.333-213.333s95.513-213.333 213.333-213.333c117.821 0 213.333 95.513 213.333 213.333s-95.513 213.333-213.333 213.333zM512 640c23.564 0 42.667-19.103 42.667-42.667 0-21.881-16.471-39.915-37.691-42.38l-4.976-0.287h-170.667c-23.564 0-42.667 19.103-42.667 42.667 0 21.881 16.471 39.915 37.691 42.38l4.976 0.287h170.667z" />
</font></defs></svg>

Before

Width:  |  Height:  |  Size: 223 KiB

After

Width:  |  Height:  |  Size: 226 KiB

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,20 @@
Today, [WebK](https://web.telegram.org/k) introduces a redesigned **Emoji and Sticker Panel** try the **collapsible section** for default emoji categories and the **scrollable bar** for your custom emoji sets.
The new Panel features a beautiful blur effect on most desktop browsers and allows you to **send** or **edit** messages containing custom emoji. __(All users can try out this feature in their Saved Messages)__
In the Stickers tab, you can now add or remove stickers from favorites, **send without sound** or individually delete them from the __Recents__ section.
**Preview Stickers and Emoji**
You can now get a closer look at stickers and emoji, both in the panel and in chats. Click and hold, then hover your cursor over the one you'd like to see in better detail.
Stickers are now rendered more efficiently, using fewer resources and **saving battery**. Custom Emoji have also had more improvements since their launch in [late August](https://t.me/WebK_en/7).
**Downloading Files**
The download flow has been reworked from scratch. When you download something, the app uses your connection in the **most efficient** way possible. Premium users will notice how dramatically fast the app downloads files for them a little demo is available [here](https://t.me/WebK_en/7?comment=531).
Large files of **up to 4 GB** are now supported for both upload and download. There is also support for native downloading in certain browsers your browser will place active downloads on the instrument bar.
**Payments 2.0**
Significant optimizations were added to smoothly process payments in **any browser**, and adding familiar functionality from other Telegram apps. Bot payments, @donate invoices and more are supported including the ability to subscribe to Telegram Premium with @PremiumBot.
Dozens of bug fixes were also made to the app  but those can be a bit boring to read. If you ever come across a bug in the app, make sure to let us know on the [Bugs and Suggestions Platform](https://bugs.telegram.org/?tag_ids=40&type=issues&sort=time).

View File

@ -0,0 +1,13 @@
[WebK](https://web.telegram.org/k) продолжает совершенствоваться и сегодня представляет новую **панель эмодзи, стикеров и GIF**.
Встречайте [авторские эмодзи](https://telegram.org/blog/custom-emoji/ru#avtorskie-animirovannie-emodzi) Telegram теперь и для браузеров. Просмотр категорий базовых эмодзи доступен по клику на значок в открытой панели. Прокручивайте панель вправо и обратно для навигации по наборам. С новой панелью Вы можете набирать авторские эмодзи или редактировать сообщения, которые их содержат. (Если Вы ещё не оформили подписку [Telegram Premium](https://t.me/premium), испытать авторские эмодзи можно в __Избранном__.) В большинстве настольных браузеров панель поддерживает красивый эффект размытия. Вкладка стикеров получила ряд долгожданных улучшений добавление и удаление стикера в избранные, отправку без звука и также удаление из раздела __«Недавние»__.
__Среди последних нововведений:__
**Просмотрщик стикеров и эмодзи** наведите курсор на стикер или эмодзи и зажмите его. Продолжайте вести курсор, чтобы рассмотреть всё в мельчайших деталях. Эта опция работает как в панели, так и в самом чате. Отрисовка стикеров и [авторских эмодзи](https://t.me/WebK_ru/7) была оптимизирована и теперь задействует меньше ресурсов Вашего устройства.
**Загрузка файлов и медиа** загрузчик переписан с нуля. Когда Вы что-то загружаете, приложение с максимальной эффективностью использует ваш интернет-канал. Подписчики Telegram Premium заметят существенный прирост в скорости загрузки –небольшая демонстрация есть [тут](https://t.me/WebK_en/7?comment=531). [WebK](http://web.telegram.org/k) поддержал **файлы до 4 GB** и нативную загрузку для некоторых браузеров.
**Платежи 2.0** внедрена поддержка платежей с оптимизацией специально для браузеров. Приложение максимально переиспользовало уже знакомый Вам опыт по нативным приложениям Telegram. C помощью [WebK](http://web.telegram.org/k) вы можете оплачивать счета, например, от @donate или оформить Telegram Premium с помощью @PremiumBot.
P.S. Мы не включаем списки исправлений в эти сообщения. Про баги мало кому интересно читать. Недоработки постоянно устраняются, а баги уничтожаются. Если Вы столкнулись с проблемой, пожалуйста, дайте знать на [платформе багов и предложений](https://bugs.telegram.org/?tag_ids=40&type=issues&sort=time).

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
1.5.0 (244)
1.6.0 (244)

View File

@ -4,7 +4,7 @@
* https://github.com/morethanwords/tweb/blob/master/LICENSE
*/
import {CustomEmojiRendererElement} from '../lib/richTextProcessor/wrapRichText';
import {CustomEmojiElement, CustomEmojiRendererElement} from '../lib/richTextProcessor/wrapRichText';
import rootScope from '../lib/rootScope';
import {IS_SAFARI} from '../environment/userAgent';
import {MOUNT_CLASS_TO} from '../config/debug';
@ -18,7 +18,8 @@ import {fastRaf} from '../helpers/schedulers';
export type AnimationItemGroup = '' | 'none' | 'chat' | 'lock' |
'STICKERS-POPUP' | 'emoticons-dropdown' | 'STICKERS-SEARCH' | 'GIFS-SEARCH' |
`CHAT-MENU-REACTIONS-${number}` | 'INLINE-HELPER' | 'GENERAL-SETTINGS' | 'STICKER-VIEWER' | 'EMOJI';
`CHAT-MENU-REACTIONS-${number}` | 'INLINE-HELPER' | 'GENERAL-SETTINGS' | 'STICKER-VIEWER' | 'EMOJI' |
'EMOJI-STATUS';
export interface AnimationItem {
el: HTMLElement,
group: AnimationItemGroup,
@ -36,15 +37,16 @@ export interface AnimationItemWrapper {
export class AnimationIntersector {
private observer: IntersectionObserver;
private visible: Set<AnimationItem> = new Set();
private visible: Set<AnimationItem>;
private overrideIdleGroups: Set<string>;
private byGroups: {[group in AnimationItemGroup]?: AnimationItem[]} = {};
private lockedGroups: {[group in AnimationItemGroup]?: true} = {};
private onlyOnePlayableGroup: AnimationItemGroup = '';
private byGroups: {[group in AnimationItemGroup]?: AnimationItem[]};
private byPlayer: Map<AnimationItem['animation'], AnimationItem>;
private lockedGroups: {[group in AnimationItemGroup]?: true};
private onlyOnePlayableGroup: AnimationItemGroup;
private intersectionLockedGroups: {[group in AnimationItemGroup]?: true} = {};
private videosLocked = false;
private intersectionLockedGroups: {[group in AnimationItemGroup]?: true};
private videosLocked;
constructor() {
this.observer = new IntersectionObserver((entries) => {
@ -91,7 +93,16 @@ export class AnimationIntersector {
}
});
this.visible = new Set();
this.overrideIdleGroups = new Set();
this.byGroups = {};
this.byPlayer = new Map();
this.lockedGroups = {};
this.onlyOnePlayableGroup = '';
this.intersectionLockedGroups = {};
this.videosLocked = false;
appMediaPlaybackController.addEventListener('play', ({doc}) => {
if(doc.type === 'round') {
@ -132,7 +143,9 @@ export class AnimationIntersector {
public removeAnimation(player: AnimationItem) {
const {el, animation} = player;
// if(!(animation instanceof CustomEmojiElement)) {
animation.remove();
// }
if(animation instanceof HTMLVideoElement && IS_SAFARI) {
setTimeout(() => { // TODO: очистка по очереди, а не все вместе с этим таймаутом
@ -151,10 +164,18 @@ export class AnimationIntersector {
this.observer.unobserve(el);
this.visible.delete(player);
this.byPlayer.delete(animation);
}
public removeAnimationByPlayer(player: AnimationItemWrapper) {
const item = this.byPlayer.get(player);
if(item) {
this.removeAnimation(item);
}
}
public addAnimation(_animation: AnimationItem['animation'], group: AnimationItemGroup = '') {
if(group === 'none') {
if(group === 'none' || this.byPlayer.has(_animation)) {
return;
}
@ -163,6 +184,8 @@ export class AnimationIntersector {
el = _animation.el[0];
} else if(_animation instanceof CustomEmojiRendererElement) {
el = _animation.canvas;
} else if(_animation instanceof CustomEmojiElement) {
el = _animation.placeholder ?? _animation;
} else if(_animation instanceof HTMLElement) {
el = _animation;
}
@ -181,6 +204,7 @@ export class AnimationIntersector {
(this.byGroups[group as AnimationItemGroup] ??= []).push(animation);
this.observer.observe(animation.el);
this.byPlayer.set(_animation, animation);
}
public checkAnimations(blurred?: boolean, group?: AnimationItemGroup, destroy = false) {

View File

@ -31,7 +31,6 @@ import cancelEvent from '../helpers/dom/cancelEvent';
import fillPropertyValue from '../helpers/fillPropertyValue';
import generatePathData from '../helpers/generatePathData';
import replaceContent from '../helpers/dom/replaceContent';
import PeerTitle from './peerTitle';
import {doubleRaf, fastRaf} from '../helpers/schedulers';
import RangeSelector from './rangeSelector';
import windowSize from '../helpers/windowSize';

View File

@ -16,7 +16,7 @@ export type NavigationItem = {
type: 'left' | 'right' | 'im' | 'chat' | 'popup' | 'media' | 'menu' |
'esg' | 'multiselect' | 'input-helper' | 'autocomplete-helper' | 'markup' |
'global-search' | 'voice' | 'mobile-search' | 'filters' | 'global-search-focus' |
'toast',
'toast' | 'dropdown',
onPop: (canAnimate: boolean) => boolean | void,
onEscape?: () => boolean,
noHistory?: boolean,

View File

@ -599,7 +599,7 @@ export default class AppSelectPeers {
this.selectedContainer.insertBefore(div, this.input);
// this.selectedScrollable.scrollTop = this.selectedScrollable.scrollHeight;
this.onChange && this.onChange(this.selected.size);
this.onChange?.(this.selected.size);
if(scroll) {
this.selectedScrollable.scrollIntoViewNew({

View File

@ -120,6 +120,7 @@ import wrapGroupedDocuments from '../wrappers/groupedDocuments';
import wrapPhoto from '../wrappers/photo';
import wrapPoll from '../wrappers/poll';
import wrapVideo from '../wrappers/video';
import isRTL from '../../helpers/string/isRTL';
export const USER_REACTIONS_INLINE = false;
const USE_MEDIA_TAILS = false;
@ -298,7 +299,7 @@ export default class ChatBubbles {
this.preloader = new ProgressivePreloader({
cancelable: false
});
this.lazyLoadQueue = new LazyLoadQueue();
this.lazyLoadQueue = new LazyLoadQueue(undefined, true);
this.lazyLoadQueue.queueId = ++queueId;
// this.reactions = new Map();
@ -701,7 +702,15 @@ export default class ChatBubbles {
});
});
attachStickerViewerListeners({listenTo: this.scrollable.container, listenerSetter: this.listenerSetter, selector: '.attachment.media-sticker-wrapper'});
attachStickerViewerListeners({
listenTo: this.scrollable.container,
listenerSetter: this.listenerSetter,
findTarget: (e) => {
const target = e.target as HTMLElement;
const found = target.closest('.attachment.media-sticker-wrapper') || (findUpClassName(target, 'attachment') && target.closest('.custom-emoji'));
return found as HTMLElement;
}
});
attachClickEvent(this.scrollable.container, this.onBubblesClick, {listenerSetter: this.listenerSetter});
// this.listenerSetter.add(this.bubblesContainer)('click', this.onBubblesClick/* , {capture: true, passive: false} */);
@ -762,9 +771,8 @@ export default class ChatBubbles {
}, () => {
this.isHeavyAnimationInProgress = false;
if(middleware && middleware()) {
this.lazyLoadQueue.unlock();
this.lazyLoadQueue.refresh();
if(middleware?.()) {
this.lazyLoadQueue.unlockAndRefresh();
// if(this.sliceViewportDebounced) {
// this.sliceViewportDebounced();
@ -3542,11 +3550,11 @@ export default class ChatBubbles {
let promise: Promise<any>;
if(action._ === 'messageActionChannelMigrateFrom') {
const peerTitle = new PeerTitle();
promise = peerTitle.update({peerId: action.chat_id.toPeerId(true)});
promise = peerTitle.update({peerId: action.chat_id.toPeerId(true), middleware});
s.append(i18n('ChatMigration.From', [peerTitle.element]));
} else if(action._ === 'messageActionChatMigrateTo') {
const peerTitle = new PeerTitle();
promise = peerTitle.update({peerId: action.channel_id.toPeerId(true)});
promise = peerTitle.update({peerId: action.channel_id.toPeerId(true), middleware});
s.append(i18n('ChatMigration.To', [peerTitle.element]));
} else {
s.append(await wrapMessageActionTextNew(message));
@ -3651,6 +3659,8 @@ export default class ChatBubbles {
setInnerHTML(messageDiv, richText);
}
const haveRTLChar = isRTL(messageMessage, true);
const timeSpan = MessageRender.setTime({
chatType: this.chat.type,
message,
@ -3660,6 +3670,10 @@ export default class ChatBubbles {
bubbleContainer.prepend(messageDiv);
// bubble.prepend(timeSpan, messageDiv); // that's bad
if(haveRTLChar) {
timeSpan.classList.add('is-block');
}
if(isMessage && message.views) {
bubble.classList.add('channel-post');
@ -4112,7 +4126,7 @@ export default class ChatBubbles {
noPremium: messageMedia?.pFlags?.nopremium
});
if(getStickerEffectThumb(doc) && (isInUnread || isOutgoing)/* || true */) {
if((getStickerEffectThumb(doc) || isEmoji) && (isInUnread || isOutgoing)/* || true */) {
this.observer.observe(bubble, this.stickerEffectObserverCallback);
}
} else if(doc.type === 'video' || doc.type === 'gif' || doc.type === 'round'/* && doc.size <= 20e6 */) {
@ -4402,7 +4416,7 @@ export default class ChatBubbles {
let title: HTMLElement | DocumentFragment;
let titleVia: typeof title;
const isForwardFromChannel = message.from_id && message.from_id._ === 'peerChannel' && message.fromId === fwdFromId;
const isForwardFromChannel = message.from_id?._ === 'peerChannel' && message.fromId === fwdFromId;
const isHidden = fwdFrom && !fwdFrom.from_id;
if(message.viaBotId) {
@ -4421,7 +4435,7 @@ export default class ChatBubbles {
// title = fwdFrom.from_name;
bubble.classList.add('hidden-profile');
} else {
title = new PeerTitle({peerId: fwdFromId || message.fromId, withPremiumIcon: !isForward}).element;
title = new PeerTitle({peerId: fwdFromId || message.fromId, withPremiumIcon: !isForward, middleware}).element;
}
if(message.reply_to_mid && message.reply_to_mid !== this.chat.threadId && isMessage) {

View File

@ -6,7 +6,6 @@
import {animateSingle} from '../../helpers/animation';
import {hexToRgb} from '../../helpers/color';
import {easeOutCubicApply} from '../../helpers/easing/easeOutCubic';
import {easeOutQuadApply} from '../../helpers/easing/easeOutQuad';
const WIDTH = 50;

View File

@ -262,7 +262,7 @@ export default class InlineHelper extends AutocompleteHelper {
if(!this.onChangeScreen) {
this.onChangeScreen = () => {
if(this.list.classList.contains('is-gallery')) {
const width = (this.list.childElementCount * mediaSizes.active.esgSticker.width) + (this.list.childElementCount - 1 * 1);
const width = (this.list.childElementCount * mediaSizes.active.popupSticker.width) + (this.list.childElementCount - 1 * 1);
this.list.style.width = width + 'px';
} else {
this.list.style.width = '';

View File

@ -39,11 +39,10 @@ import blurActiveElement from '../../helpers/dom/blurActiveElement';
import cancelEvent from '../../helpers/dom/cancelEvent';
import cancelSelection from '../../helpers/dom/cancelSelection';
import {attachClickEvent, simulateClickEvent} from '../../helpers/dom/clickEvent';
import getRichValue from '../../helpers/dom/getRichValue';
import isInputEmpty from '../../helpers/dom/isInputEmpty';
import isSendShortcutPressed from '../../helpers/dom/isSendShortcutPressed';
import placeCaretAtEnd from '../../helpers/dom/placeCaretAtEnd';
import {MarkdownType, markdownTags} from '../../helpers/dom/getRichElementValue';
import {MarkdownType} from '../../helpers/dom/getRichElementValue';
import getRichValueWithCaret from '../../helpers/dom/getRichValueWithCaret';
import EmojiHelper from './emojiHelper';
import CommandsHelper from './commandsHelper';
@ -96,6 +95,14 @@ import getStickerEffectThumb from '../../lib/appManagers/utils/stickers/getStick
import PopupStickers from '../popups/stickers';
import wrapPeerTitle from '../wrappers/peerTitle';
import wrapReply from '../wrappers/reply';
import {getEmojiFromElement} from '../emoticonsDropdown/tabs/emoji';
import hasMarkupInSelection from '../../helpers/dom/hasMarkupInSelection';
import indexOfAndSplice from '../../helpers/array/indexOfAndSplice';
import RichInputHandler from '../../helpers/dom/richInputHandler';
import {insertRichTextAsHTML} from '../inputField';
import getCaretPosNew from '../../helpers/dom/getCaretPosNew';
import draftsAreEqual from '../../lib/appManagers/utils/drafts/draftsAreEqual';
import isSelectionEmpty from '../../helpers/dom/isSelectionEmpty';
const RECORD_MIN_TIME = 500;
const POSTING_MEDIA_NOT_ALLOWED = 'Posting media content isn\'t allowed in this group.';
@ -687,9 +694,7 @@ export default class ChatInput {
} */
}
if(this.messageInputField) {
this.messageInputField.onFakeInput();
}
this.messageInputField?.onFakeInput();
});
this.listenerSetter.add(rootScope)('draft_updated', ({peerId, threadId, draft, force}) => {
@ -938,7 +943,7 @@ export default class ChatInput {
// transform = `translateX(0px) scaleX(${scale})`;
if(scale < 1) {
const br = 12;
const br = 16;
borderRadius = '' + (br + br * (1 - scale)) + 'px';
}
}
@ -1086,10 +1091,8 @@ export default class ChatInput {
}
}
public saveDraft() {
if(!this.chat.peerId || this.editMsgId || this.chat.type === 'scheduled') return;
const {value, entities} = getRichValue(this.messageInputField.input);
public getCurrentInputAsDraft() {
const {value, entities} = getRichValueWithCaret(this.messageInputField.input, true, false);
let draft: DraftMessage.draftMessage;
if(value.length || this.replyToMsgId) {
@ -1105,6 +1108,12 @@ export default class ChatInput {
};
}
return draft;
}
public saveDraft() {
if(!this.chat.peerId || this.editMsgId || this.chat.type === 'scheduled') return;
const draft = this.getCurrentInputAsDraft();
this.managers.appDraftsManager.syncDraft(this.chat.peerId, this.chat.threadId, draft);
}
@ -1165,9 +1174,10 @@ export default class ChatInput {
}
}
const wrappedDraft = wrapDraft(draft);
const wrappedDraft = wrapDraft(draft, this.chat.peerId);
const currentDraft = this.getCurrentInputAsDraft();
if(this.messageInputField.value === wrappedDraft && this.replyToMsgId === draft.reply_to_msg_id) return false;
if(draftsAreEqual(draft, currentDraft) &&/* this.messageInputField.value === wrappedDraft && */this.replyToMsgId === draft.reply_to_msg_id) return false;
if(fromUpdate) {
this.clearHelper();
@ -1258,6 +1268,8 @@ export default class ChatInput {
goDownBtn.classList.toggle('is-broadcast', isBroadcast);
goDownBtn.classList.remove('hide');
this.messageInputField.onFakeInput();
if(this.goDownUnreadBadge) {
this.setUnreadCount();
}
@ -1319,6 +1331,7 @@ export default class ChatInput {
if(this.messageInput) {
this.updateMessageInput(canSend, placeholderKey, filteredAttachMenuButtons);
this.messageInput.dataset.peerId = '' + peerId;
} else if(this.pinnedControlBtn) {
this.pinnedControlBtn.append(i18n(canPinMessage ? 'Chat.Input.UnpinAll' : 'Chat.Pinned.DontShow'));
}
@ -1427,9 +1440,9 @@ export default class ChatInput {
});
if(!canSend) {
messageInput.removeAttribute('contenteditable');
messageInput.contentEditable = 'inherit';
} else {
messageInput.setAttribute('contenteditable', 'true');
messageInput.contentEditable = 'true';
this.setDraft(undefined, false);
if(!messageInput.innerHTML) {
@ -1472,8 +1485,9 @@ export default class ChatInput {
}
private attachMessageInputListeners() {
this.listenerSetter.add(this.messageInput)('keydown', (e: KeyboardEvent) => {
this.listenerSetter.add(this.messageInput)('keydown', (e) => {
const key = e.key;
if(isSendShortcutPressed(e)) {
cancelEvent(e);
this.sendMessage();
@ -1498,7 +1512,7 @@ export default class ChatInput {
});
if(IS_TOUCH_SUPPORTED) {
attachClickEvent(this.messageInput, (e) => {
attachClickEvent(this.messageInput, () => {
this.appImManager.selectTab(1); // * set chat tab for album orientation
// this.saveScroll();
emoticonsDropdown.toggle(false);
@ -1578,18 +1592,40 @@ export default class ChatInput {
};
public applyMarkdown(type: MarkdownType, href?: string) {
const MONOSPACE_FONT = 'var(--font-monospace)';
const SPOILER_FONT = 'spoiler';
// const MONOSPACE_FONT = 'var(--font-monospace)';
// const SPOILER_FONT = 'spoiler';
const commandsMap: Partial<{[key in typeof type]: string | (() => void)}> = {
bold: 'Bold',
italic: 'Italic',
underline: 'Underline',
strikethrough: 'Strikethrough',
monospace: () => document.execCommand('fontName', false, MONOSPACE_FONT),
link: href ? () => document.execCommand('createLink', false, href) : () => document.execCommand('unlink', false, null),
spoiler: () => document.execCommand('fontName', false, SPOILER_FONT)
// bold: 'Bold',
// italic: 'Italic',
// underline: 'Underline',
// strikethrough: 'Strikethrough',
// monospace: () => document.execCommand('fontName', false, MONOSPACE_FONT),
link: href ? () => document.execCommand('createLink', false, href) : () => document.execCommand('unlink', false, null)
// spoiler: () => document.execCommand('fontName', false, SPOILER_FONT)
};
const c = (type: MarkdownType) => {
commandsMap[type] = () => {
const k = (canCombine.includes(type) ? canCombine : [type]).filter((type) => hasMarkup[type]);
if(!indexOfAndSplice(k, type)) {
k.push(type);
}
if(!k.length) {
return this.resetCurrentFontFormatting();
} else {
return document.execCommand('fontName', false, 'markup-' + k.join('-'));
}
};
};
const canCombine = ['bold', 'italic', 'underline', 'strikethrough', 'spoiler'] as (typeof type)[];
canCombine.forEach((type) => {
c(type);
});
c('monospace');
if(!commandsMap[type]) {
return false;
}
@ -1598,7 +1634,7 @@ export default class ChatInput {
// type = 'monospace';
const saveExecuted = this.prepareDocumentExecute();
// const saveExecuted = this.prepareDocumentExecute();
const executed: any[] = [];
/**
* * clear previous formatting, due to Telegram's inability to handle several entities
@ -1636,44 +1672,53 @@ export default class ChatInput {
}
}; */
// fix applying markdown when range starts from contenteditable="false"
let textNode: Text;
// do {
// // const {node, offset, selection} = getCaretPosNew(this.messageInput, true);
// const selection = document.getSelection();
// const range = selection.getRangeAt(0);
// const {node, offset} = getCaretPosF(this.messageInput, range.startContainer, range.startOffset);
// // const node = range.startContainer as ChildNode;
// if(node?.textContent === BOM || (node as HTMLElement)?.isContentEditable === false) {
// // selection.modify('extend', 'backward', 'character');
// textNode = document.createTextNode(BOM);
// (node.nodeType === node.ELEMENT_NODE ? node : node.parentElement).before(textNode);
// range.setStart(textNode, 0);
// }/* else {
// break;
// } */
// break;
// } while(true);
const richInputHandler = RichInputHandler.getInstance();
const restore = richInputHandler.prepareApplyingMarkdown();
const listener = this.listenerSetter.add(this.messageInput)('input', cancelEvent, {capture: true, passive: false}) as any as Listener;
executed.push(document.execCommand('styleWithCSS', false, 'true'));
const checkType = (type: MarkdownType) => {
let haveThisType = false;
// executed.push(document.execCommand('styleWithCSS', false, 'true'));
const selection = window.getSelection();
if(!selection.isCollapsed) {
const range = selection.getRangeAt(0);
const tag = markdownTags[type];
const node = range.commonAncestorContainer;
if((node.parentNode as HTMLElement).matches(tag.match) || (node instanceof HTMLElement && node.matches(tag.match))) {
haveThisType = true;
}
}
return haveThisType;
};
const hasMarkup = hasMarkupInSelection(Object.keys(commandsMap) as (typeof type)[]);
// * monospace can't be combined with different types
if(type === 'monospace' || type === 'spoiler') {
/* if(type === 'monospace' || type === 'spoiler') {
// executed.push(document.execCommand('styleWithCSS', false, 'true'));
const haveThisType = checkType(type);
const haveThisType = hasMarkup[type];
// executed.push(document.execCommand('removeFormat', false, null));
if(haveThisType) {
executed.push(this.resetCurrentFontFormatting());
} else {
if(type === 'monospace' || checkType('monospace')) {
executed.push(this.resetCurrentFormatting());
}
// if(type === 'monospace' || hasMarkup['monospace']) {
// executed.push(this.resetCurrentFormatting());
// }
executed.push(typeof(command) === 'function' ? command() : document.execCommand(command, false, null));
}
} else {
if(checkType('monospace')) {
} else */{
if(hasMarkup['monospace'] && type === 'link') {
executed.push(this.resetCurrentFormatting());
}
@ -1682,12 +1727,22 @@ export default class ChatInput {
executed.push(document.execCommand('styleWithCSS', false, 'false'));
restore();
// checkForSingle();
saveExecuted();
// saveExecuted();
if(this.appImManager.markupTooltip) {
this.appImManager.markupTooltip.setActiveMarkupButton();
}
if(textNode) {
(textNode.parentElement === this.messageInput ? textNode : textNode.parentElement).remove();
textNode.nodeValue = '';
}
this.listenerSetter.remove(listener);
this.messageInputField.simulateInputEvent();
return true;
}
@ -1718,7 +1773,7 @@ export default class ChatInput {
const applyMarkdown = formatKeys[code];
const selection = document.getSelection();
if(selection.toString().trim().length && applyMarkdown) {
if(!isSelectionEmpty(selection) && applyMarkdown) {
// * костыльчик
if(code === 'KeyK') {
this.appImManager.markupTooltip.showLinkEditor();
@ -1855,7 +1910,7 @@ export default class ChatInput {
}
} else {
const time = Date.now();
if(time - this.lastTimeType >= 6000) {
if((time - this.lastTimeType) >= 6000) {
this.lastTimeType = time;
this.managers.appMessagesManager.setTyping(this.chat.peerId, {_: 'sendMessageTypingAction'});
}
@ -1879,6 +1934,8 @@ export default class ChatInput {
};
public insertAtCaret(insertText: string, insertEntity?: MessageEntity, isHelper = true) {
RichInputHandler.getInstance().makeFocused(this.messageInput);
const {value: fullValue, caretPos, entities} = getRichValueWithCaret(this.messageInput);
const pos = caretPos >= 0 ? caretPos : fullValue.length;
const prefix = fullValue.substr(0, pos);
@ -1890,6 +1947,45 @@ export default class ChatInput {
const newPrefix = prefix.slice(0, matchIndex);
const newValue = newPrefix + insertText + suffix;
if(isHelper && caretPos !== -1) {
const match = matches[2];
// const {node, selection} = getCaretPosNew(this.messageInput);
const selection = document.getSelection();
// const range = document.createRange();
let counter = 0;
while(selection.toString() !== match) {
if(++counter >= 10000) {
throw new Error('lolwhat');
}
// for(let i = 0; i < match.length; ++i) {
selection.modify('extend', 'backward', 'character');
}
}
{
// const fragment = wrapDraftText(insertText, {entities: insertEntity ? [insertEntity] : undefined, wrappingForPeerId: this.chat.peerId});
insertRichTextAsHTML(this.messageInput, insertText, insertEntity ? [insertEntity] : undefined, this.chat.peerId);
// const {node, offset} = getCaretPos(this.messageInput);
// const fragmentLastChild = fragment.lastChild;
// if(node?.nodeType === node.TEXT_NODE) {
// const prefix = node.nodeValue.slice(0, offset);
// const suffix = node.nodeValue.slice(offset);
// const suffixNode = document.createTextNode(suffix);
// node.nodeValue = prefix;
// node.parentNode.insertBefore(suffixNode, node.nextSibling);
// node.parentNode.insertBefore(fragment, suffixNode);
// setCaretAt(fragmentLastChild.nextSibling);
// this.messageInputField.simulateInputEvent();
// }
}
return;
// merge emojis
const hadEntities = parseEntities(fullValue);
mergeEntities(entities, hadEntities);
@ -1949,15 +2045,16 @@ export default class ChatInput {
// document.execCommand('insertHTML', true, wrapEmojiText(emoji));
}
public onEmojiSelected = (emoji: string, autocomplete: boolean) => {
this.insertAtCaret(emoji, getEmojiEntityFromEmoji(emoji), autocomplete);
public onEmojiSelected = (emoji: ReturnType<typeof getEmojiFromElement>, autocomplete: boolean) => {
const entity: MessageEntity = emoji.docId ? {_: 'messageEntityCustomEmoji', document_id: emoji.docId, length: emoji.emoji.length, offset: 0} : getEmojiEntityFromEmoji(emoji.emoji);
this.insertAtCaret(emoji.emoji, entity, autocomplete);
};
private async checkAutocomplete(value?: string, caretPos?: number, entities?: MessageEntity[]) {
// return;
if(value === undefined) {
const r = getRichValueWithCaret(this.messageInputField.input, true);
const r = getRichValueWithCaret(this.messageInputField.input, true, true);
value = r.value;
caretPos = r.caretPos;
entities = r.entities;
@ -2241,9 +2338,14 @@ export default class ChatInput {
}
if(this.helperType === 'edit' && !force) {
const message = this.editMessage
const value = parseMarkdown(this.messageInputField.value, []);
if(message.message !== value) {
const message = this.editMessage;
const draft = this.getCurrentInputAsDraft();
if(draft) {
delete draft.pFlags.no_webpage;
}
// const value = parseMarkdown(this.messageInputField.value, []);
// if(message.message !== value) {
if(!draftsAreEqual(draft, {...message, _: 'draftMessage'} as any)) {
new PopupPeer('discard-editing', {
buttons: [{
langKey: 'Alert.Confirm.Discard',
@ -2361,6 +2463,14 @@ export default class ChatInput {
}
}
private getValueAndEntities(input: HTMLElement) {
const {entities: apiEntities, value} = getRichValueWithCaret(this.messageInput, true, false);
const myEntities = parseEntities(value);
const totalEntities = mergeEntities(apiEntities, myEntities);
return {value, totalEntities};
}
public onMessageSent(clearInput = true, clearReply?: boolean) {
if(this.chat.type !== 'scheduled') {
this.managers.appMessagesManager.readAllHistory(this.chat.peerId, this.chat.threadId, true);
@ -2369,11 +2479,18 @@ export default class ChatInput {
this.scheduleDate = undefined;
this.sendSilent = undefined;
const value = this.messageInputField.value;
const entities = parseEntities(value);
const emojiEntities: MessageEntity.messageEntityEmoji[] = entities.filter((entity) => entity._ === 'messageEntityEmoji') as any;
const {totalEntities} = this.getValueAndEntities(this.messageInput);
let nextOffset = 0;
const emojiEntities: (MessageEntity.messageEntityEmoji | MessageEntity.messageEntityCustomEmoji)[] = totalEntities.filter((entity) => {
if(entity._ === 'messageEntityEmoji' || entity._ === 'messageEntityCustomEmoji') {
const endOffset = entity.offset + entity.length;
return endOffset <= nextOffset ? false : (nextOffset = endOffset, true);
}
return false;
}) as any;
emojiEntities.forEach((entity) => {
const emoji = emojiFromCodePoints(entity.unicode);
const emoji: AppEmoji = entity._ === 'messageEntityEmoji' ? {emoji: emojiFromCodePoints(entity.unicode)} : {docId: entity.document_id, emoji: ''};
this.managers.appEmojiManager.pushRecentEmoji(emoji);
});
@ -2402,7 +2519,7 @@ export default class ChatInput {
const {noWebPage} = this;
const sendingParams = this.chat.getMessageSendingParams();
const {value, entities} = getRichValue(this.messageInputField.input);
const {value, entities} = getRichValueWithCaret(this.messageInputField.input, true, false);
// return;
if(editMsgId) {
@ -2500,7 +2617,7 @@ export default class ChatInput {
this.onMessageSent(clearDraft, true);
if(document.type === 'sticker') {
emoticonsDropdown.stickersTab?.unshiftRecentSticker(document);
this.managers.appStickersManager.saveRecentSticker(document.id);
}
return true;
@ -2533,7 +2650,7 @@ export default class ChatInput {
public async initMessageEditing(mid: number) {
const message = (await this.chat.getMessage(mid)) as Message.message;
let input = documentFragmentToHTML(wrapDraftText(message.message, {entities: message.totalEntities}));
let input = wrapDraftText(message.message, {entities: message.totalEntities, wrappingForPeerId: this.chat.peerId});
const f = async() => {
const replyFragment = await wrapMessageForReply(message, undefined, [message.mid]);
this.setTopInfo('edit', f, i18n('AccDescrEditing'), replyFragment, input, message);
@ -2727,10 +2844,10 @@ export default class ChatInput {
});
}
public setInputValue(value: string, clear = true, focus = true) {
public setInputValue(value: Parameters<InputFieldAnimated['setValueSilently']>[0], clear = true, focus = true) {
if(!value) value = '';
if(clear) this.clearInput(false, false, value);
if(clear) this.clearInput(false, false, value as string);
else this.messageInputField.setValueSilently(value);
fastRaf(() => {
@ -2745,7 +2862,7 @@ export default class ChatInput {
callerFunc: () => void,
title: Parameters<typeof wrapReply>[0] = '',
subtitle: Parameters<typeof wrapReply>[1] = '',
input?: string,
input?: Parameters<InputFieldAnimated['setValueSilently']>[0],
message?: any
) {
if(this.willSendWebPage && type === 'reply') {

View File

@ -12,14 +12,13 @@ import appNavigationController from '../appNavigationController';
import {_i18n} from '../../lib/langPack';
import cancelEvent from '../../helpers/dom/cancelEvent';
import {attachClickEvent} from '../../helpers/dom/clickEvent';
import getSelectedNodes from '../../helpers/dom/getSelectedNodes';
import isSelectionEmpty from '../../helpers/dom/isSelectionEmpty';
import {MarkdownType, markdownTags} from '../../helpers/dom/getRichElementValue';
import {MarkdownType} from '../../helpers/dom/getRichElementValue';
import getVisibleRect from '../../helpers/dom/getVisibleRect';
import clamp from '../../helpers/number/clamp';
import matchUrl from '../../lib/richTextProcessor/matchUrl';
import matchUrlProtocol from '../../lib/richTextProcessor/matchUrlProtocol';
// import { logger } from "../../lib/logger";
import hasMarkupInSelection from '../../helpers/dom/hasMarkupInSelection';
export default class MarkupTooltip {
public container: HTMLElement;
@ -214,22 +213,30 @@ export default class MarkupTooltip {
}
public getActiveMarkupButton() {
const nodes = getSelectedNodes();
const parents = [...new Set(nodes.map((node) => node.parentNode))];
// if(parents.length > 1 && parents) return [];
const currentMarkups: Set<HTMLElement> = new Set();
(parents as HTMLElement[]).forEach((node) => {
for(const type in markdownTags) {
const tag = markdownTags[type as MarkdownType];
const closest = node.closest(tag.match + ', [contenteditable]');
if(closest !== this.appImManager.chat.input.messageInput) {
currentMarkups.add(this.buttons[type as MarkdownType]);
}
// const nodes = getSelectedNodes();
// const parents = [...new Set(nodes.map((node) => node.parentNode))];
// // if(parents.length > 1 && parents) return [];
// (parents as HTMLElement[]).forEach((node) => {
// for(const type in markdownTags) {
// const tag = markdownTags[type as MarkdownType];
// const closest = node.closest(tag.match + ', [contenteditable="true"]');
// if(closest !== this.appImManager.chat.input.messageInput) {
// currentMarkups.add(this.buttons[type as MarkdownType]);
// }
// }
// });
const types = Object.keys(this.buttons) as MarkdownType[];
const markup = hasMarkupInSelection(types);
types.forEach((type) => {
if(markup[type]) {
currentMarkups.add(this.buttons[type as MarkdownType]);
}
});
return [...currentMarkups];
}
@ -425,5 +432,11 @@ export default class MarkupTooltip {
this.show();
}
});
document.addEventListener('beforeinput', (e) => {
if(e.inputType === 'historyRedo' || e.inputType === 'historyUndo') {
e.target.addEventListener('input', () => this.setActiveMarkupButton(), {once: true});
}
});
}
}

View File

@ -107,7 +107,7 @@ export default class StickersHelper extends AutocompleteHelper {
if(!this.onChangeScreen) {
this.onChangeScreen = () => {
const width = (this.list.childElementCount * mediaSizes.active.esgSticker.width) + (this.list.childElementCount - 1 * 1);
const width = (this.list.childElementCount * mediaSizes.active.popupSticker.width) + (this.list.childElementCount - 1 * 1);
this.list.style.width = width + 'px';
};
mediaSizes.addEventListener('changeScreen', this.onChangeScreen);

Some files were not shown because too many files have changed in this diff Show More