Files
im_webapp/umd/index.prod.js
T

2 lines
222 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
!function(n){var a={};function o(e){if(a[e])return a[e].exports;var t=a[e]={i:e,l:!1,exports:{}};return n[e].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.m=n,o.c=a,o.d=function(e,t,n){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(t,e){if(1&e&&(t=o(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var a in t)o.d(n,a,function(e){return t[e]}.bind(null,a));return n},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="/umd/",o(o.s=7)}([function(e,t){e.exports=React},function(e,t){e.exports=ReactIntl},function(e,t){e.exports=Tinode},function(e,t){e.exports=ReactDOM},function(e){e.exports=JSON.parse('{"en":{"archived_contacts":"Archived contacts ({count})","contacts_not_found":"You have no chats<br />¯∖_(ツ)_/¯","full_name_prompt":"Full name, e.g. John Doe","email_prompt":"Email, e.g. jdoe@example.com","button_sign_up":"Sign up","validate_credential_action":"confirm","label_your_name":"Your name","label_password":"Password","password_unchanged_prompt":"Unchanged","label_message_sound":"Message sound:","label_push_notifications":"Notification alerts:","label_push_notifications_disabled":"Notification alerts (requires HTTPS):","title_tag_manager":"Tags (user discovery)","label_user_contacts":"Contacts:","label_user_id":"Address:","label_default_access_mode":"Default access mode:","button_logout":"Logout","label_legal":"Legal","link_contact_us":"Contact Us","link_terms_of_service":"Terms of Service","link_privacy_policy":"Privacy Policy","requested_permissions":"Requested","granted_permissions":"Granted","menu_item_edit_permissions":"Edit permissions","label_other_user":"Other","action_clear_messages":"Clear Messages","clear_messages_warning":"Are you sure you want to clear all messages? It cannot be undone.","action_delete_messages":"Clear Messages for All","delete_messages_warning":"Are you sure you want to delete all messages for everyone? It cannot be undone.","action_leave_chat":"Leave Conversation","leave_chat_warning":"Are you sure you want to leave this conversation?","action_block_contact":"Block Contact","block_contact_warning":"Are you sure you want to block this contact?","action_report_chat":"Report Conversation","report_chat_warning":"Are you sure you want to block and report this conversation?","title_info":"Info","label_topic_name":"Name","label_private":"Private comment","private_editing_placeholder":"Visible to you only","label_muting_topic":"Muted:","action_more":"More","label_your_permissions":"Your permissions:","label_permissions":"Permissions:","label_you":"You:","label_default_access":"Default access mode:","label_group_members":"Group members:","button_add_members":"Add members","group_has_no_members":"No members","login_prompt":"Login","password_prompt":"Password","stay_logged_in":"Stay logged in","forgot_password_link":"Forgot password?","button_sign_in":"Sign in","label_client":"Client:","label_server":"Server:","online_now":"online now","last_seen_timestamp":"Last seen","title_not_found":"Not found","unnamed_topic":"Unnamed","messages_not_readable":"no access to messages","peers_messaging_disabled":"Peer\'s messaging is disabled.","enable_peers_messaging":"Enable","search_for_contacts":"Use search to find contacts","search_no_results":"Search returned no results","tabtitle_find_user":"find","tabtitle_new_group":"new group","tabtitle_group_by_id":"by id","new_password_placeholder":"Enter new password","label_reset_password":"Send a password reset email:","credential_email_prompt":"Your registration email","button_reset":"Reset","button_send_request":"Send request","label_server_to_use":"Server to use:","label_wire_transport":"Wire transport:","button_update":"Update","sidepanel_title_login":"Sign In","sidepanel_title_register":"Create Account","sidepanel_title_settings":"Settings","sidepanel_title_edit_account":"Edit Account","sidepanel_title_newtpk":"Start New Chat","sidepanel_title_cred":"Confirm Credentials","sidepanel_title_reset":"Reset Password","sidepanel_title_archive":"Archived Chats","update_available":"Update available. <a href=\\"\\">Reload</a>.","reconnect_countdown":"Disconnected. Reconnecting in {seconds}…","reconnect_now":"Try now","phone_dative":"phone","email_dative":"email","enter_confirmation_code_prompt":"Enter confirmation code sent to you by {method}:","numeric_confirmation_code_prompt":"Numbers only","button_confirm":"Confirm","save_attachment":"save","deleted_content":"content deleted","invalid_content":"invalid content","user_not_found":"Not found","badge_you":"you","badge_owner":"owner","menu_item_info":"Info","menu_item_clear_messages":"Clear messages","menu_item_clear_messages_for_all":"Clear for All","menu_item_delete":"Delete","menu_item_delete_for_all":"Delete for All","menu_item_mute":"Mute","menu_item_unmute":"Unmute","menu_item_delete_topic":"Delete","topic_delete_warning":"Are you sure you want to delete this conversation?","menu_item_unblock":"Unblock","menu_item_block":"Block","topic_block_warning":"Are you sure you want to block this conversation?","menu_item_member_delete":"Remove","menu_item_archive_topic":"Archive","action_cancel":"cancel","upload_finishing":"finishing...","no_contacts":"You have no contacts :-(","contacts_not_found_short":"No contacts match \'{query}\'","title_group_members":"Group Members","title_all_contacts":"All Contacts","button_ok":"OK","button_cancel":"Cancel","more_online_members":"+{overflow} more","download_action":"download","label_file_name":"File name:","label_content_type":"Content type:","label_size":"Size:","chat_invitation":"You are invited to start a new chat. What would you like to do?","chat_invitation_accept":"Accept","chat_invitation_ignore":"Ignore","chat_invitation_block":"Block","error_invalid_id":"Invalid ID","group_user_id_prompt":"Group or User ID","button_subscribe":"Subscribe","topic_name_editing_placeholder":"Freeform name of the group","button_create":"Create","permission_join":"Join ({val})","permission_read":"Read ({val})","permission_write":"Write ({val})","permission_pres":"Get notified ({val})","permission_admin":"Approve ({val})","permission_share":"Share ({val})","permission_delete":"Delete ({val})","permission_owner":"Owner ({val})","title_permissions":"Permissions","message_sending":"sending...","message_sending_failed":"failed","search_placeholder":"List like email:alice@example.com, tel:17025550003...","messaging_disabled_prompt":"Messaging disabled","new_message_prompt":"New message","file_attachment_too_large":"The file size {size} exceeds the {limit} limit.","cannot_initiate_file_upload":"Cannot initiate file upload.","tags_not_found":"No tags defined. Add some.","tags_editor_no_tags":"Add some tags","title_manage_tags":"Manage"},"ru":{"contacts_not_found":"Чатов нет<br />¯∖_(ツ)_/¯","full_name_prompt":"Полное имя, напр. Иван Петров","email_prompt":"Email, напр. ivan@example.com","button_sign_up":"Создать аккаунт","label_your_name":"Ваше имя","label_password":"Пароль","password_unchanged_prompt":"Не изменен","label_user_id":"Адрес:","label_default_access_mode":"Доступ по умолчанию:","label_message_sound":"Звук нового сообщения:","label_push_notifications":"Уведомления:","label_push_notifications_disabled":"Уведомления (требуют HTTPS):","title_tag_manager":"Теги для поиска","button_logout":"Выйти","login_prompt":"Логин","password_prompt":"Пароль","stay_logged_in":"Запомнить","forgot_password_link":"Напомнить пароль","button_sign_in":"Войти","label_client":"Клиент:","label_server":"Сервер:","online_now":"онлайн","last_seen_timestamp":"Был активен","title_not_found":"Не найден","unnamed_topic":"Без названия","messages_not_readable":"нет доступа к сообщениям","tabtitle_find_user":"найти","tabtitle_new_group":"создать","tabtitle_group_by_id":"по id","label_server_to_use":"Использовать сервер:","label_wire_transport":"Соединение:","button_update":"Применить","sidepanel_title_login":"Авторизация","sidepanel_title_register":"Зарегистрироваться","sidepanel_title_settings":"Настройки","sidepanel_title_edit_account":"Редактировать аккаунт","sidepanel_title_newtpk":"Новый чат","sidepanel_title_cred":"Подтвердить","sidepanel_title_reset":"Сменить пароль","tags_not_found":"Тегов нет. Добавьте","tags_editor_no_tags":"Добавьте теги","title_manage_tags":"Редактировать","message_sending":"в пути...","message_sending_failed":"ошибка","search_placeholder":"Список, напр. email:alice@example.com, tel:+17025550003...","messaging_disabled_prompt":"Отправка недоступна","new_message_prompt":"Новое сообщение","file_attachment_too_large":"Размер файла {size} превышает {limit} лимит.","cannot_initiate_file_upload":"Ошибка загрузки файла.","search_for_contacts":"Поиск контактов","enter_confirmation_code_prompt":"Код подтверждения, полученный по {method}:","numeric_confirmation_code_prompt":"Только цифры","button_confirm":"Подтвердить","button_ok":"OK","button_cancel":"Отменить","invalid_content":"сообщение не читается","label_file_name":"Имя файла:","label_content_type":"Тип:","label_size":"Размер:","phone_dative":"телефону","email_dative":"емейлу","title_group_members":"Участники","download_action":"скачать","permission_join":"Подписываться ({val})","permission_read":"Читать ({val})","permission_write":"Писать ({val})","permission_pres":"Уведомлять ({val})","permission_admin":"Подтверждать ({val})","permission_share":"Приглашать ({val})","permission_delete":"Удалять ({val})","permission_owner":"Владелец ({val})","title_permissions":"Права доступа","requested_permissions":"Требуются","granted_permissions":"Получены","menu_item_edit_permissions":"Права доступа","label_other_user":"Второй","label_topic_name":"Название","label_private":"Комментарий","private_editing_placeholder":"Виден только вам","label_muting_topic":"Без уведомлений","action_more":"Ещё","label_your_permissions":"Ваши права доступа:","label_permissions":"Права доступа:","label_you":"Вы:","label_default_access":"Права по умолчанию:","label_group_members":"Участники чата:","button_add_members":"Добавить","group_has_no_members":"Нет участников","action_leave_chat":"Уйти из чата","menu_item_info":"Информация","menu_item_clear_messages":"Удалить сообщения","menu_item_clear_messages_for_all":"Удалить для всех","menu_item_delete":"Удалить","menu_item_delete_for_all":"Удалить для всех","menu_item_mute":"Не уведомлять","menu_item_unmute":"Уведомлять","menu_item_delete_topic":"Удалить чат","menu_item_unblock":"Разблокировать","menu_item_block":"Заблокировать","menu_item_member_delete":"Отписать","title_info":"Подробности","new_password_placeholder":"Введите новый пароль","label_reset_password":"Отправить емейл для смены пароля:","credential_email_prompt":"Регистрационный емейл","button_reset":"Изменить","button_send_request":"Отправить","action_cancel":"отменить","upload_finishing":"завершение...","no_contacts":"Ничего нет :-(","contacts_not_found_short":"Нет контактов для запроса \'{query}\'","title_all_contacts":"Все контакты","error_invalid_id":"Неверный ID","group_user_id_prompt":"ID чата или пользователя","button_subscribe":"Подписаться","topic_name_editing_placeholder":"Название чата","button_create":"Создать","badge_you":"вы","badge_owner":"влад.","update_available":"Есть новая версия приложения. <a href=\\"\\">Обновить</a>.","user_not_found":"Не найден","reconnect_countdown":"Нет связи. Подключение через {seconds}…","reconnect_now":"Подключить сейчас.","save_attachment":"сохранить","menu_item_archive_topic":"В архив","archived_contacts":"Чаты в архиве ({count})","sidepanel_title_archive":"Архив чатов","chat_invitation":"Вас пригласили начать новый чат. Как вы хотите поступить?","chat_invitation_accept":"Принять","chat_invitation_ignore":"Игнорировать","chat_invitation_block":"Заблокировать","peers_messaging_disabled":"Чат заблокирован у корреспондента.","enable_peers_messaging":"Разблокировать.","more_online_members":"+еще {overflow}","label_user_contacts":"Конакты:","validate_credential_action":"подтвердить","label_legal":"Прочее","link_contact_us":"Связаться с нами","link_terms_of_service":"Условия сервиса","link_privacy_policy":"Политика конфиденциальности","action_delete_messages":"Удалить сообщения","action_block_contact":"Заблокировать контакт","action_report_chat":"Сообщить о нарушении","delete_messages_warning":"Вы действительно хотите удалить все сообщения?","leave_chat_warning":"Вы действительно хотите покинуть этот чат?","block_contact_warning":"Вы действительно заблокировать этот контакт?","report_chat_warning":"Вы действительно хотите сообщить о нарушении и заблокировать этот чат?","action_clear_messages":"Удалить сообщения","clear_messages_warning":"Вы действительно хотите удалить все сообщения в чате? Их будет невозможно восстановить.","topic_delete_warning":"Вы действительно хотите удалить этот чат?","topic_block_warning":"Вы действительно хотите заблокировать этот чат?","search_no_results":"Ничего не найдено","deleted_content":"удалено"},"zh":{"archived_contacts":"已归档联系人 ({count})","contacts_not_found":"你尚无会话<br />¯∖_(ツ)_/¯","full_name_prompt":"全名,例如张伟","email_prompt":"电子邮件,例如 zhang@example.com","button_sign_up":"注册","label_your_name":"你的姓名","label_password":"密码","password_unchanged_prompt":"未改变","label_user_id":"地址:","label_default_access_mode":"蓦然访问模式:","label_message_sound":"消息提示音:","label_push_notifications":"通知提醒:","label_push_notifications_disabled":"通知提醒(需要 HTTPS):","title_tag_manager":"标签(用户发现)","button_logout":"登出","requested_permissions":"已请求","granted_permissions":"已授予","menu_item_edit_permissions":"编辑权限","label_other_user":"其他","title_info":"信息","label_topic_name":"名称","label_private":"私人评论","private_editing_placeholder":"仅自己可见","label_muting_topic":"已静音:","action_more":"更多","label_your_permissions":"你的权限:","label_permissions":"权限:","label_you":"你:","label_default_access":"默认权限模式:","label_group_members":"群组成员:","button_add_members":"添加成员","group_has_no_members":"无成员","action_leave_chat":"离开","login_prompt":"登录","password_prompt":"密码","stay_logged_in":"保持登录","forgot_password_link":"忘记密码?","button_sign_in":"登录","label_client":"客户端:","label_server":"服务器:","online_now":"在线","last_seen_timestamp":"最后可见","title_not_found":"无法找到","unnamed_topic":"未命名","messages_not_readable":"无消息访问权限","peers_messaging_disabled":"成员间消息已禁用。","enable_peers_messaging":"启用","tabtitle_find_user":"搜索","tabtitle_new_group":"新群组","tabtitle_group_by_id":"通过 id","search_for_contacts":"使用搜索寻找联系人","new_password_placeholder":"输入新密码","label_reset_password":"发送密码重置邮件:","credential_email_prompt":"你的注册邮箱","button_reset":"重置","button_send_request":"发送请求","label_server_to_use":"使用的服务器:","label_wire_transport":"线路传输:","button_update":"更新","sidepanel_title_login":"登录","sidepanel_title_register":"创建账户","sidepanel_title_settings":"设置","sidepanel_title_edit_account":"编辑账户","sidepanel_title_newtpk":"开始新会话","sidepanel_title_cred":"确认凭据","sidepanel_title_reset":"重置密码","sidepanel_title_archive":"已存档会话","update_available":"更新可用。<a href=\\"\\">重新载入</a>.","reconnect_countdown":"连接已断开。{seconds} 秒后重新连接…","reconnect_now":"立即尝试","phone_dative":"电话","email_dative":"电子邮件","enter_confirmation_code_prompt":"输入通过{method}发送的验证码:","numeric_confirmation_code_prompt":"仅数字","button_confirm":"确认","save_attachment":"保存","invalid_content":"无效内容","user_not_found":"未找到","badge_you":"你","badge_owner":"所有者","menu_item_info":"信息","menu_item_clear_messages":"清空消息","menu_item_clear_messages_for_all":"全部清除","menu_item_delete":"删除","menu_item_delete_for_all":"全部删除","menu_item_mute":"静音","menu_item_unmute":"取消静音","menu_item_delete_topic":"删除","menu_item_unblock":"取消屏蔽","menu_item_block":"屏蔽","menu_item_member_delete":"移除","menu_item_archive_topic":"归档","action_cancel":"取消","upload_finishing":"正在结束...","no_contacts":"你尚无联系人 :-(","contacts_not_found_short":"无联系人匹配 \'{query}\'","title_group_members":"群组成员","title_all_contacts":"全部联系人","button_ok":"好","button_cancel":"取消","download_action":"下载","label_file_name":"文件名:","label_content_type":"内容类型:","label_size":"大小:","chat_invitation":"你受邀开始新会话。你想怎么做?","chat_invitation_accept":"接受","chat_invitation_ignore":"忽略","chat_invitation_block":"屏蔽","error_invalid_id":"无效 ID","group_user_id_prompt":"群组或用户 ID","button_subscribe":"订阅","topic_name_editing_placeholder":"群组自由格式名称","button_create":"创建","permission_join":"加入 ({val})","permission_read":"读取 ({val})","permission_write":"写入 ({val})","permission_pres":"获取通知 ({val})","permission_admin":"批准 ({val})","permission_share":"分享 ({val})","permission_delete":"删除 ({val})","permission_owner":"所有者 ({val})","title_permissions":"权限","message_sending":"正在发送...","message_sending_failed":"发送失败","search_placeholder":"列表如 email:alice@example.com, tel:+17025550003...","messaging_disabled_prompt":"消息已禁用","new_message_prompt":"新消息","file_attachment_too_large":"文件大小 {size} 超过 {limit} 限制。","cannot_initiate_file_upload":"无法初始化文件上传。","tags_not_found":"尚未定义标签。添加一些。","tags_editor_no_tags":"添加一些标签","title_manage_tags":"管理标签","more_online_members":"还有{overflow}个","label_user_contacts":"往来:","validate_credential_action":"确认","label_legal":"法律东西","link_contact_us":"联系我们","link_terms_of_service":"条款和条件","link_privacy_policy":"隐私政策","action_delete_messages":"删除所有帖子","action_block_contact":"屏蔽联系人","action_report_chat":"检举垃圾邮件","deleted_content":"内容已删除"}}')},function(e,t){e.exports=firebase},function(e,t){e.exports=firebase.messaging},function(e,t,n){"use strict";n.r(t);var a=n(0),E=n.n(a),o=n(3),i=n.n(o),k=n(1),s=n(4),r=n(5),l=(n(6),n(2)),C=n.n(l);function c(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function d(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?function(e){if(void 0!==e)return e;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):t}function u(e){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function p(e,t){return(p=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var h,m,f=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&p(e,t)}(g,E.a.PureComponent),c((h=g).prototype,[{key:"render",value:function(){return this.props.visible?E.a.createElement("div",{className:"alert-container"},E.a.createElement("div",{className:"alert"},E.a.createElement("div",{className:"title"},this.props.title),E.a.createElement("div",{className:"content"},this.props.content),E.a.createElement("div",{className:"dialog-buttons"},this.props.onReject?E.a.createElement("button",{className:"outline",onClick:this.props.onReject},this.props.reject||E.a.createElement(k.FormattedMessage,{id:"button_cancel"})):null,E.a.createElement("button",{className:"blue",onClick:this.props.onConfirm},this.props.confirm||E.a.createElement(k.FormattedMessage,{id:"button_ok"}))))):null}}]),m&&c(h,m),g);function g(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,g),d(this,u(g).apply(this,arguments))}var b="TinodeWeb/0.16.3-rc1",v={hosted:"web.tinode.co",local:"localhost:6060"},_=v.hosted,y="JRWPS",w=195840;function S(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}var M,O,T,P=(M=j,T=[{key:"parseUrlHash",value:function(e){var t=e.split("?",2),n={},a=[];return t[0]&&(a=t[0].substr(1).split("/")),t[1]&&t[1].split("&").forEach(function(e){var t=e.split("=");t[0]&&(n[decodeURIComponent(t[0])]=decodeURIComponent(t[1]))}),{path:a,params:n}}},{key:"navigateTo",value:function(e){window.location.hash=e}},{key:"composeUrlHash",value:function(e,t){var n=e.join("/"),a=[];for(var o in t)t.hasOwnProperty(o)&&a.push(o+"="+t[o]);return 0<a.length&&(n+="?"+a.join("&")),n}},{key:"addUrlParam",value:function(e,t,n){var a=this.parseUrlHash(e);return a.params[t]=n,this.composeUrlHash(a.path,a.params)}},{key:"removeUrlParam",value:function(e,t){var n=this.parseUrlHash(e);return delete n.params[t],this.composeUrlHash(n.path,n.params)}},{key:"setUrlSidePanel",value:function(e,t){var n=this.parseUrlHash(e);return n.path[0]=t,this.composeUrlHash(n.path,n.params)}},{key:"setUrlTopic",value:function(e,t){var n=this.parseUrlHash(e);return n.path[1]=t,delete n.params.info,this.composeUrlHash(n.path,n.params)}}],(O=null)&&S(M.prototype,O),T&&S(M,T),j);function j(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,j)}function N(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function A(e){return(A=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function F(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function U(e,t){return(U=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var x,D,R=Object(k.defineMessages)({info:{id:"menu_item_info",defaultMessage:"Info"},clear_messages:{id:"menu_item_clear_messages",defaultMessage:"Clear messages"},clear_for_all:{id:"menu_item_clear_messages_for_all",defaultMessage:"Clear for All"},delete:{id:"menu_item_delete",defaultMessage:"Delete"},delete_for_all:{id:"menu_item_delete_for_all",defaultMessage:"Delete for All"},mute:{id:"menu_item_mute",defaultMessage:"Mute"},unmute:{id:"menu_item_unmute",defaultMessage:"Unmute"},topic_delete:{id:"menu_item_delete_topic",defaultMessage:"Delete"},topic_delete_warning:{id:"topic_delete_warning",defaultMessage:"Are you sure you want to delete this conversation?"},unblock:{id:"menu_item_unblock",defaultMessage:"Unblock"},block:{id:"menu_item_block",defaultMessage:"Block"},topic_block_warning:{id:"topic_block_warning",defaultMessage:"Are you sure you want to block this conversation?"},member_delete:{id:"menu_item_member_delete",defaultMessage:"Remove"},archive:{id:"menu_item_archive_topic",defaultMessage:"Archive"}}),I=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&U(e,t)}(L,E.a.Component),N((x=L).prototype,[{key:"componentDidMount",value:function(){document.addEventListener("mousedown",this.handlePageClick,!1),document.addEventListener("keyup",this.handleEscapeKey,!1)}},{key:"componentWillUnmount",value:function(){document.removeEventListener("mousedown",this.handlePageClick,!1),document.removeEventListener("keyup",this.handleEscapeKey,!1)}},{key:"handlePageClick",value:function(e){i.a.findDOMNode(this).contains(e.target)||(e.preventDefault(),e.stopPropagation(),this.props.hide())}},{key:"handleEscapeKey",value:function(e){27===e.keyCode&&this.props.hide()}},{key:"handleClick",value:function(e){e.preventDefault(),e.stopPropagation(),this.props.hide();var t=this.props.items[e.currentTarget.dataset.id];"string"==typeof t&&(t=this.MenuItems[t]),t?this.props.onAction(t.id,t.handler(this.props.params,this.props.onError),this.props.params):console.log("Invalid menu item ID",e.currentTarget.dataset.id)}},{key:"deleteMessages",value:function(e,t,n,a){var o=this.props.tinode.getTopic(n.topicName);if(o){if(e||!o.cancelSend(n.seq))return(e?o.delMessagesAll(t):o.delMessagesList([n.seq],t)).catch(function(e){a&&a(e.message,"err")})}else console.log("Topic not found: ",n.topicName)}},{key:"topicPermissionSetter",value:function(e,t,n){var a=this.props.tinode.getTopic(t.topicName);if(a){var o=a.updateMode(t.user,e);return n&&(o=o.catch(function(e){n(e.message,"err")})),o}console.log("Topic not found",t.topicName)}},{key:"render",value:function(){var t=this,n=0,a=[];this.props.items.map(function(e){"string"==typeof e&&(e=t.MenuItems[e]),e&&e.title&&a.push("-"==e.title?E.a.createElement("li",{className:"separator",key:n}):E.a.createElement("li",{onClick:t.handleClick,"data-id":n,key:n},e.title)),n++});var e=13*(.7+2.5*a.length),o={left:(this.props.bounds.right-this.props.clickAt.x<156?this.props.clickAt.x-this.props.bounds.left-156:this.props.clickAt.x-this.props.bounds.left)+"px",top:(this.props.bounds.bottom-this.props.clickAt.y<e?this.props.clickAt.y-this.props.bounds.top-e:this.props.clickAt.y-this.props.bounds.top)+"px"};return E.a.createElement("ul",{className:"menu",style:o},a)}}]),D&&N(x,D),L);function L(a){var o,e,t;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,L),e=this,t=A(L).call(this,a),o=!t||"object"!=typeof t&&"function"!=typeof t?F(e):t;var i=a.intl.formatMessage;return o.handlePageClick=o.handlePageClick.bind(F(o)),o.handleEscapeKey=o.handleEscapeKey.bind(F(o)),o.handleClick=o.handleClick.bind(F(o)),o.MenuItems={topic_info:{id:"topic_info",title:i(R.info),handler:null},messages_clear:{id:"messages_clear",title:i(R.clear_messages),handler:function(e,t){return a.onShowAlert(i({id:"menu_item_clear_messages"}),i({id:"clear_messages_warning"}),function(){o.deleteMessages(!0,!1,e,t)},null,!0,null)}},messages_clear_hard:{id:"messages_clear_hard",title:i(R.clear_for_all),handler:function(e,t){return a.onShowAlert(i({id:"menu_item_clear_messages_for_all"}),i({id:"delete_messages_warning"}),function(){return o.deleteMessages(!0,!0,e,t)},null,!0,null)}},message_delete:{id:"message_delete",title:i(R.delete),handler:function(e,t){return o.deleteMessages(!1,!1,e,t)}},message_delete_hard:{id:"message_delete_hard",title:i(R.delete_for_all),handler:function(e,t){return o.deleteMessages(!1,!0,e,t)}},topic_unmute:{id:"topic_unmute",title:i(R.unmute),handler:o.topicPermissionSetter.bind(F(o),"+P")},topic_mute:{id:"topic_mute",title:i(R.mute),handler:o.topicPermissionSetter.bind(F(o),"-P")},topic_unblock:{id:"topic_unblock",title:i(R.unblock),handler:o.topicPermissionSetter.bind(F(o),"+JP")},topic_block:{id:"topic_block",title:i(R.block),handler:function(t,e){return a.onShowAlert(i({id:"menu_item_block"}),i(R.topic_block_warning),function(){return o.topicPermissionSetter("-JP",t,e).then(function(e){return o.props.onTopicRemoved(t.topicName),e})},null,!0,null)}},topic_delete:{id:"topic_delete",title:i(R.topic_delete),handler:function(t,n){return a.onShowAlert(i({id:"menu_item_delete_topic"}),i(R.topic_delete_warning),function(){var e=o.props.tinode.getTopic(t.topicName);if(e)return e.delTopic().catch(function(e){n&&n(e.message,"err")});console.log("Topic not found: ",t.topicName)},null,!0,null)}},topic_archive:{id:"topic_archive",title:i(R.archive),handler:function(e,t){var n=o.props.tinode.getTopic(e.topicName);if(n)return n.archive(!0).catch(function(e){t&&t(e.message,"err")});console.log("Topic not found: ",e.topicName)}},permissions:{id:"permissions",title:i({id:"menu_item_edit_permissions"}),handler:null},member_delete:{id:"member_delete",title:i(R.member_delete),handler:function(e,t){var n=o.props.tinode.getTopic(e.topicName);if(n&&e.user)return n.delSubscription(e.user).catch(function(e){t&&t(e.message,"err")});console.log("Topic or user not found: '"+e.topicName+"', '"+e.user+"'")}},member_mute:{id:"member_mute",title:i(R.mute),handler:o.topicPermissionSetter.bind(F(o),"-P")},member_unmute:{id:"member_unmute",title:i(R.unmute),handler:o.topicPermissionSetter.bind(F(o),"+P")},member_block:{id:"member_block",title:i(R.block),handler:o.topicPermissionSetter.bind(F(o),"-J")},member_unblock:{id:"member_unblock",title:i(R.unblock),handler:o.topicPermissionSetter.bind(F(o),"+J")}},o}var q=Object(k.injectIntl)(I);function H(e,t){t=t||window.navigator.userLanguage||window.navigator.language;var n=new Date;return e.getFullYear()==n.getFullYear()?e.getMonth()==n.getMonth()&&e.getDate()==n.getDate()?e.toLocaleTimeString(t,{hour12:!1,hour:"2-digit",minute:"2-digit"}):e.toLocaleDateString(t,{hour12:!1,month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):e.toLocaleDateString(t,{hour12:!1,year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function W(e){if(!e||0==e)return"0 Bytes";var t=["Bytes","KB","MB","GB","TB","PB"],n=Math.min(0|Math.floor(Math.log2(e)/10),t.length-1),a=e/Math.pow(1024,n),o=0<n?a<3?2:a<30?1:0:0;return a.toFixed(o)+" "+t[n]}function B(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function V(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?function(e){if(void 0!==e)return e;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):t}function G(e){return(G=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function K(e,t){return(K=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var z,J,Y=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&K(e,t)}(Q,E.a.PureComponent),B((z=Q).prototype,[{key:"render",value:function(){var e;if(!0===this.props.avatar){var t="grp"==C.a.topicType(this.props.topic),n=(t?"light-color":"dark-color")+Math.abs(function(e){var t=0;e=""+e;for(var n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t&=t;return t}(this.props.topic))%16;if(this.props.topic&&this.props.title&&this.props.title.trim()){var a=this.props.title.trim().charAt(0),o="lettertile "+n;e=E.a.createElement("div",{className:o},E.a.createElement("div",null,a))}else{var i="material-icons "+n;e=t?E.a.createElement("i",{className:i},"group"):E.a.createElement("i",{className:i},"person")}}else e=this.props.avatar?E.a.createElement("img",{className:"avatar",alt:"avatar",src:this.props.avatar,onError:function(e){e.target.onerror=null,e.target.src="/img/broken_image.png"}}):null;return e}}]),J&&B(z,J),Q);function Q(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Q),V(this,G(Q).apply(this,arguments))}var X=["image/jpeg","image/gif","image/png","image/svg","image/svg+xml"],Z=["jpg","gif","png","svg","svg"];function $(e){return e&&e.type&&e.data?"data:image/"+e.type+";base64,"+e.data:null}function ee(e,t,n,a,o){if(t|=0,n|=0,a|=0,(e|=0)<=0||t<=0||n<=0||a<=0)return null;o&&(n=a=Math.min(n,a));var i=Math.min(Math.min(e,n)/e,Math.min(t,a)/t),s={dstWidth:e*i|0,dstHeight:t*i|0};return o?(s.dstWidth=s.dstHeight=Math.min(s.dstWidth,s.dstHeight),s.srcWidth=s.srcHeight=Math.min(e,t),s.xoffset=(e-s.srcWidth)/2|0,s.yoffset=(t-s.srcWidth)/2|0):(s.xoffset=s.yoffset=0,s.srcWidth=e,s.srcHeight=t),s}function te(e,t){var n=X.indexOf(t),a=Z[n],o=e.lastIndexOf(".");return 0<=o&&(e=e.substring(0,o)),e+"."+a}function ne(s,r,l,c,d,u){var e=new Image;e.crossOrigin="Anonymous",e.onerror=function(e){u("Image format unrecognized")},e.onload=function(){var e=ee(this.width,this.height,r,l,c);if(e){var t=document.createElement("canvas");t.width=e.dstWidth,t.height=e.dstHeight;var n=t.getContext("2d");n.imageSmoothingEnabled=!0,n.drawImage(this,e.xoffset,e.yoffset,e.srcWidth,e.srcHeight,0,0,e.dstWidth,e.dstHeight);var a=this.width!=e.dstWidth||this.height!=e.dstHeight||X.indexOf(s.type)<0?"image/jpeg":s.type,o=t.toDataURL(a);if(a=ie(o.split(",")[0])){var i=.78;if(se(o.length)>w&&(a="image/jpeg"),"image/jpeg"==a)for(;se(o.length)>w&&.45<i;)o=t.toDataURL(a,i),i*=.84;se(o.length)>w?u("The image size "+bytesToHumanSize(se(o.length))+" exceeds the "+bytesToHumanSize(w)+" limit.","err"):(t=null,d(o.split(",")[1],a,e.dstWidth,e.dstHeight,te(s.name,a)))}else u("Unsupported image format")}else u("Invalid image")},e.src=URL.createObjectURL(s)}function ae(a,o,i){var s=new FileReader;s.addEventListener("load",function(){var e=s.result.split(","),t=ie(e[0]);if(t){var n=new Image;n.crossOrigin="Anonymous",n.onload=function(){o(e[1],t,this.width,this.height,te(a.name,t))},n.onerror=function(e){i("Image format not recognized")},n.src=URL.createObjectURL(a)}else i("Failed to process image file")},!1),s.readAsDataURL(a)}function oe(e,t){var n=new FileReader;n.addEventListener("load",function(){t(e.type,n.result.split(",")[1],e.name)}),n.readAsDataURL(e)}function ie(e){var t=/^data:(image\/[-+a-z0-9.]+);base64/.exec(e);return t&&1<t.length?t[1]:null}function se(e){return 3*Math.floor(e/4)}function re(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function le(e){return(le=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ce(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function de(e,t){return(de=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var ue,pe,he=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&de(e,t)}(me,E.a.Component),re((ue=me).prototype,[{key:"componentDidUpdate",value:function(e){this.props.avatar!=e.avatar&&this.setState({dataUrl:this.props.avatar})}},{key:"handleFileUpload",value:function(e){var a=this;ne(e.target.files[0],128,128,!0,function(e,t){var n=$({data:e,type:t});a.setState({dataUrl:n}),a.props.onImageChanged(n)},function(e){a.props.onError(e,"err")}),e.target.value=""}},{key:"render",value:function(){var t=this,e="file-input-avatar-"+(Math.random()+"").substr(2);return E.a.createElement("div",{className:"avatar-upload"},this.props.readOnly||!this.state.dataUrl?null:E.a.createElement("a",{href:"#",className:"clear-avatar",onClick:function(e){e.preventDefault(),t.props.onImageChanged(null)}},E.a.createElement("i",{className:"material-icons"},"clear")),this.state.dataUrl?E.a.createElement("img",{src:this.state.dataUrl,className:"preview"}):this.props.readOnly&&this.props.uid?E.a.createElement("div",{className:"avatar-box"},E.a.createElement(Y,{avatar:!0,topic:this.props.uid,title:this.props.title})):E.a.createElement("div",{className:"blank"},128,"×",128),this.props.readOnly?null:E.a.createElement("input",{type:"file",id:e,className:"inputfile hidden",accept:"image/*",onChange:this.handleFileUpload}),this.props.readOnly?null:E.a.createElement("label",{htmlFor:e,className:"round"},E.a.createElement("i",{className:"material-icons"},"file_upload")))}}]),pe&&re(ue,pe),me);function me(e){var t,n,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,me),n=this,(t=!(a=le(me).call(this,e))||"object"!=typeof a&&"function"!=typeof a?ce(n):a).state={dataUrl:e.avatar},t.handleFileUpload=t.handleFileUpload.bind(ce(t)),t}function fe(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function ge(e){return(ge=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function be(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ve(e,t){return(ve=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var _e,ye,we=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&ve(e,t)}(Ee,E.a.PureComponent),fe((_e=Ee).prototype,[{key:"handleChange",value:function(){this.props.onChange(this.props.name,!this.props.checked)}},{key:"render",value:function(){return this.props.onChange?this.props.checked?E.a.createElement("i",{className:"material-icons blue clickable",onClick:this.handleChange},"check_box"):E.a.createElement("i",{className:"material-icons blue clickable",onClick:this.handleChange},"check_box_outline_blank"):this.props.checked?E.a.createElement("i",{className:"material-icons"},"check_box"):E.a.createElement("i",{className:"material-icons"},"check_box_outline_blank")}}]),ye&&fe(_e,ye),Ee);function Ee(e){var t,n,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Ee),n=this,(t=!(a=ge(Ee).call(this,e))||"object"!=typeof a&&"function"!=typeof a?be(n):a).handleChange=t.handleChange.bind(be(t)),t}function ke(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function Ce(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?function(e){if(void 0!==e)return e;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):t}function Se(e){return(Se=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Me(e,t){return(Me=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Oe,Te,Pe={muted:"notifications_off",banned:"block"},je=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Me(e,t)}(Ne,E.a.PureComponent),ke((Oe=Ne).prototype,[{key:"render",value:function(){var n=null;return this.props.badges&&0<this.props.badges.length?(n=[],this.props.badges.map(function(e){if(e.icon)n.push(E.a.createElement("i",{className:"material-icons as-badge",key:e.key||e.icon},Pe[e.icon]));else{var t="badge"+(e.color?" "+e.color:"");n.push(E.a.createElement("span",{className:t,key:e.key||e.name},e.name))}}),E.a.createElement(E.a.Fragment,null,n)):null}}]),Te&&ke(Oe,Te),Ne);function Ne(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Ne),Ce(this,Se(Ne).apply(this,arguments))}function Ae(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function Fe(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?function(e){if(void 0!==e)return e;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):t}function Ue(e){return(Ue=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function xe(e,t){return(xe=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var De,Re,Ie=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&xe(e,t)}(Le,E.a.PureComponent),Ae((De=Le).prototype,[{key:"render",value:function(){return 0<this.props.count?E.a.createElement("span",{className:"unread"},9<this.props.count?"9+":this.props.count):null}}]),Re&&Ae(De,Re),Le);function Le(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Le),Fe(this,Ue(Le).apply(this,arguments))}function qe(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function He(e){return(He=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function We(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Be(e,t){return(Be=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Ve,Ge,Ke=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Be(e,t)}(ze,E.a.Component),qe((Ve=ze).prototype,[{key:"handleClick",value:function(e){e.preventDefault(),e.stopPropagation(),this.props.onSelected&&this.props.onSelected(this.props.item,this.props.index,this.props.now,this.props.acs)}},{key:"handleContextClick",value:function(e){e.preventDefault(),e.stopPropagation(),this.props.showContextMenu({topicName:this.props.item,y:e.pageY,x:e.pageX})}},{key:"render",value:function(){var e=this.props.title;e?30<e.length&&(e=e.substring(0,28)+"..."):e=E.a.createElement("i",null,E.a.createElement(k.FormattedMessage,{id:"unnamed_topic"}));var t=this.props.now?"online":"offline",n=!this.props.avatar||this.props.avatar,a=this.props.badges?this.props.badges.slice():[],o=[];return this.props.acs&&(this.props.showMode&&a.push({name:this.props.acs.getMode(),key:"mode"}),this.props.acs.isMuted()&&o.push({icon:"muted"}),this.props.acs.isJoiner()||o.push({icon:"banned"})),E.a.createElement("li",{className:!this.props.showCheckmark&&this.props.selected?"selected":null,onClick:this.handleClick},E.a.createElement("div",{className:"avatar-box"},E.a.createElement(Y,{avatar:n,title:this.props.title,topic:this.props.item}),this.props.showOnline?E.a.createElement("span",{className:t}):this.props.showCheckmark&&this.props.selected?E.a.createElement("i",{className:"checkmark material-icons"},"check_circle"):null),E.a.createElement("div",{className:"text-box"},E.a.createElement("div",null,E.a.createElement("span",{className:"contact-title"},e),E.a.createElement(Ie,{count:this.props.unread}),E.a.createElement(je,{badges:o})),this.props.comment?E.a.createElement("div",{className:"contact-comment"},this.props.comment):null,E.a.createElement("span",null,E.a.createElement(je,{badges:a}))),this.props.showContextMenu?E.a.createElement("span",{className:"menuTrigger"},E.a.createElement("a",{href:"#",onClick:this.handleContextClick},E.a.createElement("i",{className:"material-icons"},"expand_more"))):null)}}]),Ge&&qe(Ve,Ge),ze);function ze(e){var t,n,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,ze),n=this,(t=!(a=He(ze).call(this,e))||"object"!=typeof a&&"function"!=typeof a?We(n):a).handleClick=t.handleClick.bind(We(t)),t.handleContextClick=t.handleContextClick.bind(We(t)),t}function Je(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function Ye(e){return(Ye=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Qe(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Xe(e,t){return(Xe=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Ze,$e,et=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Xe(e,t)}(tt,E.a.PureComponent),Je((Ze=tt).prototype,[{key:"handleClick",value:function(e){e.preventDefault(),e.stopPropagation(),this.props.onAction(this.props.action)}},{key:"render",value:function(){var e=this.props.intl.formatMessage;return E.a.createElement("li",{onClick:this.handleClick,className:"action"},E.a.createElement("div",{className:"action-text"},e(this.props.title,this.props.values)))}}]),$e&&Je(Ze,$e),tt);function tt(e){var t,n,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,tt),n=this,(t=!(a=Ye(tt).call(this,e))||"object"!=typeof a&&"function"!=typeof a?Qe(n):a).handleClick=t.handleClick.bind(Qe(t)),t}var nt=Object(k.injectIntl)(et);function at(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function ot(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?function(e){if(void 0!==e)return e;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):t}function it(e){return(it=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function st(e,t){return(st=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var rt,lt,ct=Object(k.defineMessages)({badge_you:{id:"badge_you",defaultMessage:"you"},badge_owner:{id:"badge_owner",defaultMessage:"owner"}}),dt=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&st(e,t)}(ut,E.a.Component),at((rt=ut).prototype,[{key:"render",value:function(){var s=this,r=this.props.intl.formatMessage,l=Array.isArray(this.props.topicSelected),c=[],d=0;return this.props.contacts&&0<this.props.contacts.length&&this.props.contacts.map(function(e){if(e.action)c.push(E.a.createElement(nt,{title:e.title,action:e.action,values:e.values,key:e.action,onAction:s.props.onAction}));else{var t=e.topic?e.topic:e.user;if(s.props.filterFunc&&s.props.filter){var n=[t];if(e.private&&e.private.comment&&n.push((""+e.private.comment).toLowerCase()),e.public&&e.public.fn&&n.push((""+e.public.fn).toLowerCase()),!s.props.filterFunc(s.props.filter,n))return}var a=l?-1<s.props.topicSelected.indexOf(t):s.props.topicSelected===t,o=[];s.props.showMode&&(t===s.props.myUserId&&o.push({name:r(ct.badge_you),color:"green"}),e.acs&&e.acs.isOwner()&&o.push({name:r(ct.badge_owner),color:"blue"}));var i=Array.isArray(e.private)?e.private.join(","):e.private?e.private.comment:null;c.push(E.a.createElement(Ke,{title:e.public?e.public.fn:null,avatar:$(e.public?e.public.photo:null),comment:i,unread:s.props.showUnread?e.unread:0,now:e.online&&s.props.connected,acs:e.acs,showMode:s.props.showMode,badges:o,showCheckmark:l,selected:a,showOnline:s.props.showOnline,onSelected:s.props.onTopicSelected,showContextMenu:s.props.showContextMenu,item:t,index:c.length,key:t})),d++}},this),E.a.createElement("div",{className:this.props.noScroll?null:"scrollable-panel"},0==d?E.a.createElement("div",{className:"center-medium-text",dangerouslySetInnerHTML:{__html:this.props.emptyListMessage}}):null,0<c.length?E.a.createElement("ul",{className:"contact-box"},c):null)}}]),lt&&at(rt,lt),ut);function ut(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,ut),ot(this,it(ut).apply(this,arguments))}var pt=Object(k.injectIntl)(dt);function ht(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function mt(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?function(e){if(void 0!==e)return e;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):t}function ft(e){return(ft=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function gt(e,t){return(gt=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var bt,vt,_t=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&gt(e,t)}(yt,E.a.PureComponent),ht((bt=yt).prototype,[{key:"render",value:function(){var t=this;return E.a.createElement("a",{href:"#",onClick:function(e){e.preventDefault(),t.props.onCancel()}},E.a.createElement("i",{className:"material-icons"},"close"))}}]),vt&&ht(bt,vt),yt);function yt(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,yt),mt(this,ft(yt).apply(this,arguments))}function wt(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function Et(e){return(Et=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function kt(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Ct(e,t){return(Ct=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var St,Mt,Ot=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Ct(e,t)}(Tt,E.a.PureComponent),wt((St=Tt).prototype,[{key:"componentDidUpdate",value:function(e){e.level!==this.props.level&&this.setState({show:!!this.props.level})}},{key:"hide",value:function(){this.setState({show:!1}),this.props.onClearError&&this.props.onClearError()}},{key:"render",value:function(){var t=this,e={err:"error",warn:"warning",info:"info"}[this.props.level]||"",n="info-box "+e;return E.a.createElement("div",{className:n},E.a.createElement("div",{className:"icon"},E.a.createElement("i",{className:"material-icons"},e)),E.a.createElement("span",null,E.a.createElement("span",{dangerouslySetInnerHTML:{__html:this.props.text}}),this.props.action?E.a.createElement(E.a.Fragment,null,E.a.createElement("a",{href:"#",style:{whiteSpace:"nowrap"},onClick:function(e){e.preventDefault(),t.props.action()}},this.props.actionText)):null),E.a.createElement("div",{className:"cancel"},E.a.createElement(_t,{onCancel:this.hide})))}}]),Mt&&wt(St,Mt),Tt);function Tt(e){var t,n,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Tt),n=this,(t=!(a=Et(Tt).call(this,e))||"object"!=typeof a&&"function"!=typeof a?kt(n):a).state={show:!1},t.hide=t.hide.bind(kt(t)),t}function Pt(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function jt(e){return(jt=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Nt(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function At(e,t){return(At=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Ft,Ut,xt=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&At(e,t)}(Dt,E.a.PureComponent),Pt((Ft=Dt).prototype,[{key:"handleCancel",value:function(e){e.preventDefault(),this.props.onCancel(this.props.topic,this.props.index)}},{key:"render",value:function(){var e=this.props.title||this.props.topic,t=this.props.invalid?"chip invalid":"chip";return E.a.createElement("div",{className:t},this.props.noAvatar?E.a.createElement("span",{className:"spacer"}):E.a.createElement("div",{className:"avatar-box"},E.a.createElement(Y,{avatar:this.props.avatar||!0,topic:this.props.topic,title:this.props.title})),E.a.createElement("span",null,e),this.props.onCancel&&!this.props.required?E.a.createElement("a",{href:"#",onClick:this.handleCancel},"×"):E.a.createElement("span",{className:"spacer"}))}}]),Ut&&Pt(Ft,Ut),Dt);function Dt(e){var t,n,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Dt),n=this,(t=!(a=jt(Dt).call(this,e))||"object"!=typeof a&&"function"!=typeof a?Nt(n):a).handleCancel=t.handleCancel.bind(Nt(t)),t}function Rt(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function It(e){return(It=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Lt(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function qt(e,t){return(qt=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Ht,Wt,Bt,Vt=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&qt(e,t)}(Gt,E.a.Component),Bt=[{key:"deriveStateFromProps",value:function(e){return{placeholder:e.chips?"":e.prompt,sortedChips:Gt.sortChips(e.chips,e.staticMembers),chipIndex:Gt.indexChips(e.chips)}}},{key:"indexChips",value:function(e){var t={},n=0;return e.map(function(e){t[e.user]=n,n++}),t}},{key:"sortChips",value:function(e,t){var n=[],a=[];return e.map(function(e){t&&t.includes(e.user)?n.push(e):a.push(e)}),n.concat(a)}}],Wt=[{key:"componentDidUpdate",value:function(e,t){e.chips==this.props.chips&&e.staticMembers==this.props.staticMembers&&e.prompt==this.props.prompt||this.setState(Gt.deriveStateFromProps(this.props)),(!t||this.props.chips.length>t.sortedChips.length)&&this.setState({input:""})}},{key:"handleTextInput",value:function(e){this.setState({input:e.target.value}),this.props.filterFunc&&this.props.filterFunc(e.target.value)}},{key:"removeChipAt",value:function(e){var t=this.state.sortedChips[e];this.props.onChipRemoved(t.user,this.state.chipIndex[t.user])}},{key:"handleChipCancel",value:function(e,t){this.removeChipAt(t)}},{key:"handleFocusGained",value:function(){this.setState({focused:!0})}},{key:"handleFocusLost",value:function(){this.setState({focused:!1}),this.props.onFocusLost&&this.props.onFocusLost(this.state.input)}},{key:"handleKeyDown",value:function(e){if("Backspace"===e.key){if(0==this.state.input.length&&0<this.state.sortedChips.length){var t=this.state.sortedChips.length-1;this.state.sortedChips[t].user!==this.props.staticMembers&&this.removeChipAt(t)}}else"Enter"===e.key?this.props.onEnter&&this.props.onEnter(this.state.input):"Escape"===e.key&&this.props.onCancel&&this.props.onCancel()}},{key:"render",value:function(){var t=this,n=[],a=0,o=this.props.staticMembers||[];this.state.sortedChips.map(function(e){n.push(E.a.createElement(xt,{onCancel:t.handleChipCancel,avatar:$(e.public?e.public.photo:null),title:e.public?e.public.fn:void 0,noAvatar:t.props.avatarDisabled,topic:e.user,required:o.includes(e.user),invalid:e.invalid,index:a,key:e.user})),a++});var e="chip-input"+(this.state.focused?" focused":"");return E.a.createElement("div",{className:e},n,E.a.createElement("input",{type:"text",placeholder:this.state.placeholder,onChange:this.handleTextInput,onFocus:this.handleFocusGained,onBlur:this.handleFocusLost,onKeyDown:this.handleKeyDown,value:this.state.input,autoFocus:!0}))}}],Rt((Ht=Gt).prototype,Wt),Bt&&Rt(Ht,Bt),Gt);function Gt(e){var t,n,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Gt),n=this,(t=!(a=It(Gt).call(this,e))||"object"!=typeof a&&"function"!=typeof a?Lt(n):a).state=Gt.deriveStateFromProps(e),t.state.input="",t.state.focused=!1,t.handleTextInput=t.handleTextInput.bind(Lt(t)),t.removeChipAt=t.removeChipAt.bind(Lt(t)),t.handleChipCancel=t.handleChipCancel.bind(Lt(t)),t.handleFocusGained=t.handleFocusGained.bind(Lt(t)),t.handleFocusLost=t.handleFocusLost.bind(Lt(t)),t.handleKeyDown=t.handleKeyDown.bind(Lt(t)),t}function Kt(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function zt(e){return(zt=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Jt(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Yt(e,t){return(Yt=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Qt,Xt,Zt,$t=Object(k.defineMessages)({no_contacts:{id:"no_contacts",defaultMessage:"You have no contacts :-("},contacts_not_found:{id:"contacts_not_found_short",defaultMessage:"No contacts match '{query}'"}}),en=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Yt(e,t)}(tn,E.a.Component),Zt=[{key:"indexMembers",value:function(e){var t={};return e.map(function(e){t[e.user]={delta:0,present:!0}}),t}},{key:"staticMembers",value:function(e,t,n){var a=[];return e.map(function(e){!t&&e.user!=n||a.push(e.user)}),a}},{key:"selectedContacts",value:function(e){var t=[];return e.map(function(e){t.push(e.user)}),t}},{key:"doContactFiltering",value:function(e,t){if(e){for(var n=0;n<t.length;n++)if(0<=t[n].indexOf(e))return!0;return!1}return!0}}],Xt=[{key:"handleContactSelected",value:function(e,t){var n=this.state.index[e];if(n){if(n.present)return;n.delta+=1,n.present=!0}else n={delta:1,present:!0};var a=this.state.members.slice();a.push(this.props.contacts[t]);var o=tn.selectedContacts(a),i=this.state.index;i[e]=n,this.setState({members:a,index:i,selectedContacts:o})}},{key:"handleMemberRemoved",value:function(e,t){var n=this.state.index[e];if(n&&n.present){n.present=!1,--n.delta;var a=this.state.members.slice();a.splice(t,1);var o=tn.selectedContacts(a),i=this.state.index;i[e]=n,this.setState({members:a,index:i,selectedContacts:o})}}},{key:"handleContactFilter",value:function(e){var t=this.props.intl.formatMessage,n=e?t($t.contacts_not_found,{query:e}):t($t.no_contacts);this.setState({contactFilter:e,noContactsMessage:n})}},{key:"handleSubmit",value:function(){var t=this,n=[],a=[],o=[];Object.keys(this.state.index).map(function(e){t.state.index[e].present&&n.push(e),0<t.state.index[e].delta?a.push(e):t.state.index[e].delta<0&&o.push(e)}),this.props.onSubmit(n,a,o)}},{key:"handleCancel",value:function(){this.props.onCancel()}},{key:"render",value:function(){return this.props.intl.formatMessage,E.a.createElement("div",{id:"group-manager"},E.a.createElement("div",{className:"panel-form-row"},E.a.createElement("label",{className:"small"},E.a.createElement(k.FormattedMessage,{id:"title_group_members",defaultMessage:"Group Members"}))),E.a.createElement("div",{className:"panel-form-row"},E.a.createElement(Vt,{chips:this.state.members,staticMembers:this.state.staticMembers,prompt:"add members",filterFunc:this.handleContactFilter,onChipRemoved:this.handleMemberRemoved})),E.a.createElement("div",{className:"panel-form-row"},E.a.createElement("label",{className:"small"},E.a.createElement(k.FormattedMessage,{id:"title_all_contacts",defaultMessage:"All Contacts"}))),E.a.createElement(pt,{contacts:this.props.contacts,myUserId:this.props.myUserId,topicSelected:this.state.selectedContacts,filter:this.state.contactFilter,filterFunc:tn.doContactFiltering,emptyListMessage:this.state.noContactsMessage,showOnline:!1,showUnread:!1,onTopicSelected:this.handleContactSelected}),E.a.createElement("div",{id:"group-manager-buttons",className:"panel-form-row"},E.a.createElement("button",{className:"blue",onClick:this.handleSubmit},E.a.createElement(k.FormattedMessage,{id:"button_ok",defaultMessage:"OK"})),E.a.createElement("button",{className:"white",onClick:this.handleCancel},E.a.createElement(k.FormattedMessage,{id:"button_cancel",defaultMessage:"Cancel"}))))}}],Kt((Qt=tn).prototype,Xt),Zt&&Kt(Qt,Zt),tn);function tn(e){var t,n,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,tn),n=this,(t=!(a=zt(tn).call(this,e))||"object"!=typeof a&&"function"!=typeof a?Jt(n):a).state={members:e.members,index:tn.indexMembers(e.members),staticMembers:tn.staticMembers(e.members,e.keepInitialMembers,e.requiredMember),contactFilter:"",noContactsMessage:e.intl.formatMessage($t.no_contacts),selectedContacts:tn.selectedContacts(e.members)},t.handleContactSelected=t.handleContactSelected.bind(Jt(t)),t.handleMemberRemoved=t.handleMemberRemoved.bind(Jt(t)),t.handleContactFilter=t.handleContactFilter.bind(Jt(t)),t.handleSubmit=t.handleSubmit.bind(Jt(t)),t.handleCancel=t.handleCancel.bind(Jt(t)),t}var nn=Object(k.injectIntl)(en);function an(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function on(e){return(on=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function sn(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function rn(e,t){return(rn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var ln,cn,dn=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&rn(e,t)}(un,E.a.PureComponent),an((ln=un).prototype,[{key:"handeTextChange",value:function(e){this.setState({value:e.target.value}),this.props.onChange&&this.props.onChange(e)}},{key:"handleVisibility",value:function(e){e.preventDefault(),this.setState({visible:!this.state.visible})}},{key:"handleKeyDown",value:function(e){27==e.keyCode?(this.setState({value:this.props.value,visible:!1}),this.props.onFinished&&this.props.onFinished()):13==e.keyCode&&this.handleEditingFinished()}},{key:"handleEditingFinished",value:function(e){var t=this;if(e){var n=e.currentTarget;setTimeout(function(){n.contains(document.activeElement)||t.props.onFinished&&t.props.onFinished(t.state.value)},0)}else this.props.onFinished&&this.props.onFinished(this.state.value.trim())}},{key:"render",value:function(){return E.a.createElement("div",{tabIndex:"-1",className:"group-focus",onBlur:this.handleEditingFinished},E.a.createElement("input",{className:"with-visibility",type:this.state.visible?"text":"password",value:this.state.value,placeholder:this.props.placeholder,required:this.props.required?"required":"",autoFocus:this.props.autoFocus?"autoFocus":"",autoComplete:this.props.autoComplete,onChange:this.handeTextChange,onKeyDown:this.handleKeyDown}),E.a.createElement("span",{onClick:this.handleVisibility},E.a.createElement("i",{className:"material-icons clickable light-gray"},this.state.visible?"visibility":"visibility_off")))}}]),cn&&an(ln,cn),un);function un(e){var t,n,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,un),n=this,(t=!(a=on(un).call(this,e))||"object"!=typeof a&&"function"!=typeof a?sn(n):a).state={value:t.props.value,visible:!1},t.handleVisibility=t.handleVisibility.bind(sn(t)),t.handeTextChange=t.handeTextChange.bind(sn(t)),t.handleKeyDown=t.handleKeyDown.bind(sn(t)),t.handleEditingFinished=t.handleEditingFinished.bind(sn(t)),t}function pn(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function hn(e){return(hn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function mn(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function fn(e,t){return(fn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var gn,bn,vn=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&fn(e,t)}(_n,E.a.Component),pn((gn=_n).prototype,[{key:"componentDidUpdate",value:function(e,t){var n=this.props.value||"";t.initialValue==n||t.active||this.setState({initialValue:n,value:n})}},{key:"handeTextChange",value:function(e){this.setState({value:e.target.value})}},{key:"handleKeyDown",value:function(e){27===e.keyCode?this.setState({value:this.props.value,active:!1}):13===e.keyCode&&this.handleEditingFinished(e)}},{key:"handleStartEditing",value:function(){this.props.readOnly||(i.a.findDOMNode(this).focus(),this.setState({active:!0}))}},{key:"handleEditingFinished",value:function(e){if(!this.props.required||e.target.checkValidity()){this.setState({active:!1});var t=this.state.value.trim();(t||this.props.value)&&t!==this.props.value&&this.props.onFinished(t)}else this.setState({value:this.props.value,active:!1})}},{key:"handlePasswordFinished",value:function(e){this.setState({active:!1}),e&&e!==this.props.value&&this.props.onFinished(e)}},{key:"render",value:function(){if(this.state.active)var e=this.props.type||"text";else{var t="password"==this.props.type?"••••••••":this.state.value,n="in-place-edit"+(this.props.readOnly?" disabled":"");t||(t=this.props.placeholder,n+=" placeholder"),20<t.length&&(t=t.substring(0,19)+"...")}return this.state.active?"password"==e?E.a.createElement(dn,{value:this.state.value,placeholder:this.props.placeholder,required:this.props.required?"required":"",autoComplete:this.props.autoComplete,autoFocus:!0,onFinished:this.handlePasswordFinished}):E.a.createElement("input",{type:e,value:this.state.value,placeholder:this.props.placeholder,required:this.props.required?"required":"",autoComplete:this.props.autoComplete,autoFocus:!0,onChange:this.handeTextChange,onKeyDown:this.handleKeyDown,onBlur:this.handleEditingFinished}):E.a.createElement("span",{className:n,onClick:this.handleStartEditing},E.a.createElement("span",{className:"content"},t))}}]),bn&&pn(gn,bn),_n);function _n(e){var t,n,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,_n),n=this,(t=!(a=hn(_n).call(this,e))||"object"!=typeof a&&"function"!=typeof a?mn(n):a).state={active:e.active,initialValue:e.value||"",value:e.value||""},t.handeTextChange=t.handeTextChange.bind(mn(t)),t.handleKeyDown=t.handleKeyDown.bind(mn(t)),t.handleStartEditing=t.handleStartEditing.bind(mn(t)),t.handleEditingFinished=t.handleEditingFinished.bind(mn(t)),t.handlePasswordFinished=t.handlePasswordFinished.bind(mn(t)),t}function yn(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function wn(e){return(wn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function En(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function kn(e,t){return(kn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Cn,Sn,Mn=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&kn(e,t)}(On,E.a.PureComponent),yn((Cn=On).prototype,[{key:"handleToggle",value:function(){var e=!this.state.open;this.setState({open:e}),this.props.onToggle&&this.props.onToggle(e)}},{key:"render",value:function(){return E.a.createElement("label",{className:"small clean-clickable",onClick:this.handleToggle},this.props.title,"...",this.state.open?E.a.createElement("i",{className:"material-icons"},"expand_more"):E.a.createElement("i",{className:"material-icons"},"chevron_right"))}}]),Sn&&yn(Cn,Sn),On);function On(e){var t,n,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,On),n=this,(t=!(a=wn(On).call(this,e))||"object"!=typeof a&&"function"!=typeof a?En(n):a).state={open:e.open},t.handleToggle=t.handleToggle.bind(En(t)),t}function Tn(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function Pn(e){return(Pn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function jn(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Nn(e,t){return(Nn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var An,Fn,Un=Object(k.defineMessages)({joiner:{id:"permission_join",defaultMessage:"Join ({val})"},reader:{id:"permission_read",defaultMessage:"Read ({val})"},writer:{id:"permission_write",defaultMessage:"Write ({val})"},preser:{id:"permission_pres",defaultMessage:"Get notified ({val})"},approver:{id:"permission_admin",defaultMessage:"Approve ({val})"},sharer:{id:"permission_share",defaultMessage:"Share ({val})"},deleter:{id:"permission_delete",defaultMessage:"Delete ({val})"},owner:{id:"permission_owner",defaultMessage:"Owner ({val})"}}),xn=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Nn(e,t)}(Dn,E.a.Component),Tn((An=Dn).prototype,[{key:"handleChange",value:function(e){var t=this.state.mode;-1==t.indexOf(e)?t+=e:t=t.replace(e,""),this.setState({mode:t})}},{key:"handleSubmit",value:function(){var e=(this.state.mode||"N").split("").sort().join("");e!==(this.props.mode||"N").split("").sort().join("")?this.props.onSubmit(e):this.props.onCancel()}},{key:"handleCancel",value:function(){this.props.onCancel()}},{key:"render",value:function(){for(var e=this.props.intl.formatMessage,t="JRWPASDO",n={J:e(Un.joiner,{val:"J"}),R:e(Un.reader,{val:"R"}),W:e(Un.writer,{val:"W"}),P:e(Un.preser,{val:"P"}),A:e(Un.approver,{val:"A"}),S:e(Un.sharer,{val:"S"}),D:e(Un.deleter,{val:"D"}),O:e(Un.owner,{val:"O"})},a=this.props.skip||"",o=this.state.mode,i=(this.props.compare||"").replace("N",""),s=[],r=0;r<t.length;r++){var l=t.charAt(r);0<=a.indexOf(l)&&o.indexOf(l)<0||s.push(E.a.createElement("tr",{key:l},E.a.createElement("td",null,n[l]),E.a.createElement("td",{className:"checkbox"},a.indexOf(l)<0?E.a.createElement(we,{name:l,checked:0<=o.indexOf(l),onChange:this.handleChange}):E.a.createElement(we,{name:l,checked:0<=o.indexOf(l)})),this.props.compare?E.a.createElement("td",{className:"checkbox"},E.a.createElement(we,{name:l,checked:0<=i.indexOf(l)})):null))}return E.a.createElement("div",{className:"panel-form-column"},this.props.userTitle?E.a.createElement("ul",{className:"contact-box"},E.a.createElement(Ke,{item:this.props.item,title:this.props.userTitle,avatar:$(this.props.userAvatar?this.props.userAvatar:null)})):null,E.a.createElement("label",{className:"small"},E.a.createElement(k.FormattedMessage,{id:"title_permissions",defaultMessage:"Permissions"})),E.a.createElement("table",{className:"permission-editor"},this.props.compare?E.a.createElement("thead",null,E.a.createElement("tr",null,E.a.createElement("th",null),E.a.createElement("th",null,this.props.modeTitle),E.a.createElement("th",null,this.props.compareTitle))):null,E.a.createElement("tbody",null,s)),E.a.createElement("br",null),E.a.createElement("div",{className:"dialog-buttons"},E.a.createElement("button",{className:"outline",onClick:this.handleCancel},E.a.createElement(k.FormattedMessage,{id:"button_cancel"})),E.a.createElement("button",{className:"blue",onClick:this.handleSubmit},E.a.createElement(k.FormattedMessage,{id:"button_ok"}))))}}]),Fn&&Tn(An,Fn),Dn);function Dn(e){var t,n,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Dn),n=this,(t=!(a=Pn(Dn).call(this,e))||"object"!=typeof a&&"function"!=typeof a?jn(n):a).state={mode:(e.mode||"").replace("N","")},t.handleChange=t.handleChange.bind(jn(t)),t.handleSubmit=t.handleSubmit.bind(jn(t)),t.handleCancel=t.handleCancel.bind(jn(t)),t}var Rn=Object(k.injectIntl)(xn);function In(e){var t=document.getElementById("shortcut-icon"),n=document.head||document.getElementsByTagName("head")[0],a=document.createElement("link");a.type="image/png",a.id="shortcut-icon",a.rel="shortcut icon",a.href="img/logo32x32"+(0<e?"a":"")+".png",t&&n.removeChild(t),n.appendChild(a),document.title=(0<e?"("+e+") ":"")+"Tinode"}function Ln(e,t){var n=null;if((e&&e.trim()||t)&&(n={},e&&(n.fn=e.trim()),t)){var a=t.indexOf(",");n.photo=0<=a?{data:t.substring(a+1),type:"jpg"}:t}return n}function qn(e,t){if(e===t)return!0;if(!Array.isArray(e)||!Array.isArray(t))return!1;if(e.length!=t.length)return!1;e.sort(),t.sort();for(var n=0,a=e.length;n<a;n++)if(e[n]!==t[n])return!1;return!0}function Hn(e,t){if(!e)return null;if(e=e.replace(/[^\x20-\x7E]/gim,"").trim(),!/^([a-z][a-z0-9+.-]*:|\/\/)/i.test(e))return e;if(/^blob:http/.test(e))return e;var n=Array.isArray(t)?t.join("|"):"http|https";return new RegExp("^(("+n+"):|//)","i").test(e)?e:null}function Wn(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function Bn(e){return(Bn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Vn(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Gn(e,t){return(Gn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Kn,zn,Jn=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Gn(e,t)}(Yn,E.a.Component),zn=[{key:"getDerivedStateFromProps",value:function(e,t){return qn(e.tags,t.tags)||t.activated?null:{tags:e.tags}}}],Wn((Kn=Yn).prototype,[{key:"handleTagInput",value:function(e){if(this.setState({tagInput:e}),0<e.length){var t=e[e.length-1];'"'==e[0]?1<e.length&&'"'==t&&this.handleAddTag(e.substring(1,e.length-1)):","!=t&&" "!=t&&";"!=t&&'"'!=t||this.handleAddTag(e.substring(0,e.length-1).trim())}}},{key:"handleAddTag",value:function(e){if(0<e.length){var t=this.state.tags.slice(0);return t.push(e),this.setState({tags:t,tagInput:""}),this.props.onTagsChanged&&this.props.onTagsChanged(t),t}return this.state.tags}},{key:"handleRemoveTag",value:function(e,t){var n=this.state.tags.slice(0);n.splice(t,1),this.setState({tags:n}),this.props.onTagsChanged&&this.props.onTagsChanged(n)}},{key:"handleSubmit",value:function(){this.props.onSubmit(this.handleAddTag(this.state.tagInput.trim())),this.setState({activated:!1,tags:this.props.tags})}},{key:"handleCancel",value:function(){this.setState({activated:!1,tagInput:"",tags:this.props.tags}),this.props.onCancel&&this.props.onCancel()}},{key:"render",value:function(){var t=this,n=[];return this.state.activated?this.state.tags.map(function(e){n.push({user:e,invalid:e.length<4})}):(this.state.tags.map(function(e){n.push(E.a.createElement("span",{className:"badge",key:n.length},e))}),0==n.length&&(n=E.a.createElement("i",null,E.a.createElement(k.FormattedMessage,{id:"tags_not_found",defaultMessage:"No tags defined. Add some."})))),E.a.createElement("div",{className:"panel-form-column"},E.a.createElement("div",{className:"panel-form-row"},E.a.createElement("label",{className:"small"},this.props.title)),this.state.activated?E.a.createElement("div",null,E.a.createElement(k.FormattedMessage,{id:"tags_editor_no_tags",defaultMessage:"Add some tags"},function(e){return E.a.createElement(Vt,{chips:n,avatarDisabled:!0,prompt:e,onEnter:t.handleAddTag,onFocusLost:t.handleAddTag,onCancel:t.handleCancel,onChipRemoved:t.handleRemoveTag,filterFunc:t.handleTagInput})}),this.props.onSubmit||this.props.onCancel?E.a.createElement("div",{id:"tag-manager-buttons",className:"dialog-buttons panel-form-row"},E.a.createElement("button",{className:"outline",onClick:this.handleCancel},E.a.createElement(k.FormattedMessage,{id:"button_cancel",defautMessage:"Cancel",description:"Rejection button [Cancel]"})),E.a.createElement("button",{className:"blue",onClick:this.handleSubmit},E.a.createElement(k.FormattedMessage,{id:"button_ok",defautMessage:"OK",description:"Confirmation button [OK]"}))):null):E.a.createElement("div",{className:"quoted"},E.a.createElement("a",{href:"#",className:"flat-button",onClick:function(e){e.preventDefault(),t.setState({activated:!0})}},E.a.createElement("i",{className:"material-icons"},"edit"),"  ",E.a.createElement(k.FormattedMessage,{id:"title_manage_tags",defaultMessage:"Manage"})),E.a.createElement(E.a.Fragment,null,n)))}}]),zn&&Wn(Kn,zn),Yn);function Yn(e){var t,n,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Yn),n=this,(t=!(a=Bn(Yn).call(this,e))||"object"!=typeof a&&"function"!=typeof a?Vn(n):a).state={tags:t.props.tags,tagInput:"",activated:t.props.activated},t.handleTagInput=t.handleTagInput.bind(Vn(t)),t.handleAddTag=t.handleAddTag.bind(Vn(t)),t.handleRemoveTag=t.handleRemoveTag.bind(Vn(t)),t.handleSubmit=t.handleSubmit.bind(Vn(t)),t.handleCancel=t.handleCancel.bind(Vn(t)),t}function Qn(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function Xn(e){return(Xn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Zn(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function $n(e,t){return($n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var ea,ta,na=Object(k.defineMessages)({requested:{id:"requested_permissions",defaultMessage:"Requested"},granted:{id:"granted_permissions",defaultMessage:"Granted"},edit_permissions:{id:"menu_item_edit_permissions",defaultMessage:"Edit permissions"},other_user:{id:"label_other_user",defaultMessage:"Other"},clear_messages:{id:"action_clear_messages",defaultMessage:"Clear Messages"},clear_messages_warning:{id:"clear_messages_warning",defaultMessage:"Are you sure you want to clear all messages? It cannot be undone."},delete_messages:{id:"action_delete_messages",defaultMessage:"Clear Messages for All"},delete_messages_warning:{id:"delete_messages_warning",defaultMessage:"Are you sure you want to delete all messages for everyone? It cannot be undone."},leave_chat:{id:"action_leave_chat",defaultMessage:"Leave Conversation"},leave_chat_warning:{id:"leave_chat_warning",defaultMessage:"Are you sure you want to leave this conversation?"},block_contact:{id:"action_block_contact",defaultMessage:"Block Contact"},block_contact_warning:{id:"block_contact_warning",defaultMessage:"Are you sure you want to block this contact?"},report_chat:{id:"action_report_chat",defaultMessage:"Report Conversation"},report_chat_warning:{id:"report_chat_warning",defaultMessage:"Are you sure you want to block and report this conversation?"}}),aa=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&$n(e,t)}(oa,E.a.Component),Qn((ea=oa).prototype,[{key:"componentDidUpdate",value:function(e){var t=this.props.tinode.getTopic(e.topic);t&&(this.onMetaDesc!=t.onMetaDesc&&(this.previousMetaDesc=t.onMetaDesc,t.onMetaDesc=this.onMetaDesc,this.previousSubsUpdated=t.onSubsUpdated,t.onSubsUpdated=this.onSubsUpdated,"grp"==t.getType()?(this.previousTagsUpdated=t.onTagsUpdated,t.onTagsUpdated=this.onTagsUpdated):this.previousTagsUpdated=void 0),this.state.topic!=e.topic&&(this.setState({topic:e.topic}),this.resetDesc(t,e),this.resetSubs(t,e)))}},{key:"componentWillUnmount",value:function(){var e=this.props.tinode.getTopic(this.props.topic);e&&(this.setState({topic:null}),e.onMetaDesc=this.previousMetaDesc,e.onSubsUpdated=this.previousSubsUpdated,e.onTagsUpdated=this.previousTagsUpdated)}},{key:"resetSubs",value:function(e,t){var n={contactList:[]};if("p2p"==e.getType()){var a=e.subscriber(t.topic);a?(n.modeGiven2=a.acs.getGiven(),n.modeWant2=a.acs.getWant()):(n.modeGiven2="N",n.modeWant2="N")}else e.subscribers(function(e){n.contactList.push(e)},this);this.setState(n)}},{key:"resetDesc",value:function(e){var t=e.getDefaultAccess()||{},n=e.getAccessMode();this.setState({owner:n&&n.isOwner(),admin:n&&n.isAdmin(),sharer:n&&n.isSharer(),deleter:n&&n.isDeleter(),muted:n&&n.isMuted(),fullName:e.public?e.public.fn:void 0,avatar:$(e.public?e.public.photo:null),private:e.private?e.private.comment:null,address:e.name,groupTopic:"grp"==e.getType(),showMemberPanel:!1,access:n?n.getMode():void 0,modeGiven:n?n.getGiven():void 0,modeWant:n?n.getWant():void 0,auth:t.auth,anon:t.anon}),"grp"==e.getType()&&n&&n.isOwner()&&e.getMeta(e.startMetaQuery().withTags().build())}},{key:"onMetaDesc",value:function(e){var t=this.props.tinode.getTopic(this.props.topic);t&&(this.resetDesc(t,this.props),this.previousMetaDesc&&this.previousMetaDesc!=this.onMetaDesc&&this.previousMetaDesc(e))}},{key:"onSubsUpdated",value:function(e){var t=this.props.tinode.getTopic(this.props.topic);t&&(this.resetSubs(t,this.props),this.previousSubsUpdated&&this.previousSubsUpdated!=this.onSubsUpdated&&this.previousSubsUpdated(e))}},{key:"onTagsUpdated",value:function(e){this.setState({tags:e}),this.previousTagsUpdated&&this.previousTagsUpdated!=this.onTagsUpdated&&this.previousTagsUpdated()}},{key:"handleFullNameUpdate",value:function(e){e=e.trim().substring(0,60),this.state.fullName!==e&&(this.setState({fullName:e}),this.props.onTopicDescUpdate(this.props.topic,Ln(e,null),null))}},{key:"handlePrivateUpdate",value:function(e){e=e.trim().substring(0,60),this.state.private!==e&&(this.setState({private:e}),this.props.onTopicDescUpdate(this.props.topic,null,e||C.a.DEL_CHAR))}},{key:"handleImageChanged",value:function(e){this.setState({avatar:e}),this.props.onTopicDescUpdate(this.props.topic,Ln(null,e||C.a.DEL_CHAR),null)}},{key:"handleMuted",value:function(e,t){this.setState({muted:t}),this.props.onChangePermissions(this.props.topic,t?"-P":"+P")}},{key:"handlePermissionsChanged",value:function(e){switch(this.state.showPermissionEditorFor){case"auth":this.props.onTopicDescUpdate(this.props.topic,null,null,{auth:e});break;case"anon":this.props.onTopicDescUpdate(this.props.topic,null,null,{anon:e});break;case"mode":case"want":this.props.onChangePermissions(this.props.topic,e);break;case"given":this.props.onChangePermissions(this.props.topic,e,this.props.topic);break;case"user":this.props.onChangePermissions(this.props.topic,e,this.state.userPermissionsEdited)}this.setState({showPermissionEditorFor:void 0})}},{key:"handleLaunchPermissionsEditor",value:function(e,t){var n,a,o,i,s,r,l,c=this.props.intl.formatMessage;switch(e){case"mode":n=this.state.access;break;case"want":n=this.state.modeWant,a=this.state.modeGiven,o=this.state.groupTopic?"O":"ASDO",i=c(na.requested),s=c(na.granted);break;case"given":n=this.state.modeGiven2,a=this.state.modeWant2,o=this.state.groupTopic?this.state.owner?"":"O":"ASDO",i=c(na.granted),s=c(na.requested);break;case"auth":n=this.state.auth,o="O";break;case"anon":n=this.state.anon,o="O";break;case"user":var d=this.props.tinode.getTopic(this.props.topic);if(!d)return;var u=d.subscriber(t);if(!u||!u.acs)return;n=u.acs.getGiven(),a=u.acs.getWant(),o=this.state.owner?"":"O",i=c(na.granted),s=c(na.requested),u.public&&(r=u.public.fn,l=u.public.photo);break;default:console.log("Unknown permission editing mode '"+e+"'")}this.setState({showPermissionEditorFor:e,userPermissionsEdited:t,userPermissionsTitle:r,userPermissionsAvatar:l,editedPermissions:n,immutablePermissions:a,editedPermissionsTitle:i,immutablePermissionsTitle:s,editedPermissionsSkipped:o})}},{key:"handleHidePermissionsEditor",value:function(){this.setState({showPermissionEditorFor:void 0})}},{key:"handleShowAddMembers",value:function(e){e.preventDefault(),this.props.onInitFind(),this.setState({showMemberPanel:!0})}},{key:"handleHideAddMembers",value:function(){this.setState({showMemberPanel:!1})}},{key:"handleMemberUpdateRequest",value:function(e,t,n){this.props.onMemberUpdateRequest(this.props.topic,t,n),this.setState({showMemberPanel:!1})}},{key:"handleDeleteMessages",value:function(e){var t=this;e.preventDefault();var n=this.props.intl.formatMessage;this.props.onShowAlert(n(this.state.deleter?na.delete_messages:na.clear_messages),n(this.state.deleter?na.delete_messages_warning:na.clear_messages_warning),function(){t.props.onDeleteMessages(t.props.topic)},null,!0,null)}},{key:"handleLeave",value:function(e){var t=this;e.preventDefault();var n=this.props.intl.formatMessage;this.props.onShowAlert(n(na.leave_chat),n(na.leave_chat_warning),function(){t.props.onLeaveTopic(t.props.topic)},null,!0,null)}},{key:"handleBlock",value:function(e){var t=this;e.preventDefault();var n=this.props.intl.formatMessage;this.props.onShowAlert(n(na.block_contact),n(na.block_contact_warning),function(){t.props.onBlockTopic(t.props.topic)},null,!0,null)}},{key:"handleReport",value:function(e){var t=this;e.preventDefault();var n=this.props.intl.formatMessage;this.props.onShowAlert(n(na.report_chat),n(na.report_chat_warning),function(){t.props.onReportTopic(t.props.topic)},null,!0,null)}},{key:"handleMemberSelected",value:function(e){this.setState({selectedContact:e})}},{key:"handleMoreInfo",value:function(e){this.setState({moreInfoExpanded:e})}},{key:"handleTagsUpdated",value:function(e){qn(this.state.tags.slice(0),e.slice(0))||this.props.onTopicTagsUpdate(this.props.topic,e)}},{key:"handleContextMenu",value:function(e){var t=this.props.intl.formatMessage,n=this,a=this.props.tinode.getTopic(this.props.topic);if(a){var o=a.subscriber(e.topicName);if(o&&o.acs){var i=[{title:t(na.edit_permissions),handler:function(){n.handleLaunchPermissionsEditor("user",e.topicName)}},"member_delete",o.acs.isMuted()?"member_unmute":"member_mute",o.acs.isJoiner()?"member_block":"member_unblock"];this.props.showContextMenu({topicName:this.props.topic,x:e.x,y:e.y,user:e.topicName},i)}}}},{key:"render",value:function(){var t=this,e=this.props.intl.formatMessage;return E.a.createElement("div",{id:"info-view"},E.a.createElement("div",{className:"caption-panel",id:"info-caption-panel"},E.a.createElement("div",{className:"panel-title",id:"info-title"},E.a.createElement(k.FormattedMessage,{id:"title_info",defaultMessage:"Info"})),E.a.createElement("div",null,E.a.createElement(_t,{onCancel:this.props.onCancel}))),this.props.displayMobile?E.a.createElement(Ot,{level:this.props.errorLevel,text:this.props.errorText,onClearError:this.props.onError}):null,this.state.showMemberPanel?E.a.createElement(nn,{members:this.state.contactList,requiredMember:this.props.myUserId,keepInitialMembers:!this.state.admin&&!this.state.owner,myUserId:this.props.myUserId,contacts:this.props.searchableContacts,onCancel:this.handleHideAddMembers,onSubmit:this.handleMemberUpdateRequest}):this.state.showPermissionEditorFor?E.a.createElement(Rn,{mode:this.state.editedPermissions,compare:this.state.immutablePermissions,skip:this.state.editedPermissionsSkipped,modeTitle:this.state.editedPermissionsTitle,compareTitle:this.state.immutablePermissionsTitle,userTitle:this.state.userPermissionsTitle,item:this.state.userPermissionsEdited,userAvatar:this.state.userPermissionsAvatar,onSubmit:this.handlePermissionsChanged,onCancel:this.handleHidePermissionsEditor}):E.a.createElement("div",{id:"info-view-content",className:"scrollable-panel"},E.a.createElement("div",{className:"panel-form-row"},E.a.createElement("div",{className:"panel-form-column"},E.a.createElement("div",null,E.a.createElement("label",{className:"small"},E.a.createElement(k.FormattedMessage,{id:"label_topic_name",defaultMessage:"Name"}))),E.a.createElement("div",null,E.a.createElement(vn,{placeholder:this.state.groupTopic?"Group name":E.a.createElement("i",null,"Unknown"),readOnly:!this.state.owner,value:this.state.fullName,required:!0,onFinished:this.handleFullNameUpdate})),E.a.createElement("div",null,E.a.createElement("label",{className:"small"},E.a.createElement(k.FormattedMessage,{id:"label_private",defaultMessage:"Private comment"}))),E.a.createElement("div",null,E.a.createElement(k.FormattedMessage,{id:"private_editing_placeholder",defaultMessage:"Visible to you only"},function(e){return E.a.createElement(vn,{placeholder:e,value:t.state.private,onFinished:t.handlePrivateUpdate})}))),E.a.createElement(he,{avatar:this.state.avatar,readOnly:!this.state.owner,uid:this.props.topic,title:this.state.fullName,onImageChanged:this.handleImageChanged,onError:this.props.onError})),E.a.createElement("div",{className:"hr"}),E.a.createElement("div",{className:"panel-form-column"},E.a.createElement("div",{className:"panel-form-row"},E.a.createElement("label",null,E.a.createElement(k.FormattedMessage,{id:"label_muting_topic",defaultMessage:"Muted:"})),E.a.createElement(we,{name:"P",checked:this.state.muted,onChange:this.handleMuted})),E.a.createElement(k.FormattedMessage,{id:"action_more",defaultMessage:"More"},function(e){return E.a.createElement(Mn,{title:e,open:t.state.moreInfoExpanded,onToggle:t.handleMoreInfo})}),this.state.moreInfoExpanded?E.a.createElement("div",{className:"panel-form-column"},E.a.createElement("div",{className:"panel-form-row"},E.a.createElement("label",null,E.a.createElement(k.FormattedMessage,{id:"label_user_id"})),E.a.createElement("tt",null,this.state.address)),this.state.groupTopic?E.a.createElement("div",{className:"panel-form-row"},E.a.createElement("label",null,E.a.createElement(k.FormattedMessage,{id:"label_your_permissions",defaultMessage:"Your permissions:"})),E.a.createElement("tt",{className:"clickable",onClick:this.handleLaunchPermissionsEditor.bind(this,"want")},this.state.access)):E.a.createElement("div",null,E.a.createElement("div",null,E.a.createElement("label",{className:"small"},E.a.createElement(k.FormattedMessage,{id:"label_permissions",defaultMessage:"Permissions:"}))),E.a.createElement("div",{className:"quoted"},E.a.createElement("div",null,E.a.createElement(k.FormattedMessage,{id:"label_you",defaultMessage:"You:"}),"  ",E.a.createElement("tt",{className:"clickable",onClick:this.handleLaunchPermissionsEditor.bind(this,"want")},this.state.access)),E.a.createElement("div",null,this.state.fullName?this.state.fullName:e(na.other_user),":  ",E.a.createElement("tt",{className:"clickable",onClick:this.handleLaunchPermissionsEditor.bind(this,"given")},this.state.modeGiven2)))),this.state.sharer&&(this.state.auth||this.state.anon)?E.a.createElement("div",null,E.a.createElement("div",null,E.a.createElement("label",{className:"small"},E.a.createElement(k.FormattedMessage,{id:"label_default_access",defaultMessage:"Default access mode:"}))),E.a.createElement("div",{className:"quoted"},E.a.createElement("div",null,"Auth: ",this.state.admin?E.a.createElement("tt",{className:"clickable",onClick:this.handleLaunchPermissionsEditor.bind(this,"auth")},this.state.auth):E.a.createElement("tt",null,this.state.auth)),E.a.createElement("div",null,"Anon: ",this.state.admin?E.a.createElement("tt",{className:"clickable",onClick:this.handleLaunchPermissionsEditor.bind(this,"anon")},this.state.anon):E.a.createElement("tt",null,this.state.anon)))):null):null),E.a.createElement("div",{className:"hr"}),this.state.owner?E.a.createElement(E.a.Fragment,null,E.a.createElement(k.FormattedMessage,{id:"title_tag_manager"},function(e){return E.a.createElement(Jn,{title:e,tags:t.state.tags,activated:!1,onSubmit:t.handleTagsUpdated})}),E.a.createElement("div",{className:"hr"})):null,E.a.createElement("div",{className:"panel-form-column"},E.a.createElement("a",{href:"#",className:"flat-button",onClick:this.handleDeleteMessages},E.a.createElement("i",{className:"material-icons"},"delete_outline"),"  ",e(this.state.deleter?na.delete_messages:na.clear_messages)),E.a.createElement("a",{href:"#",className:"red flat-button",onClick:this.handleLeave},E.a.createElement("i",{className:"material-icons"},"exit_to_app"),"  ",e(na.leave_chat)),this.state.groupTopic?null:E.a.createElement("a",{href:"#",className:"red flat-button",onClick:this.handleBlock},E.a.createElement("i",{className:"material-icons"},"block"),"  ",e(na.block_contact)),this.state.owner?null:E.a.createElement("a",{href:"#",className:"red flat-button",onClick:this.handleReport},E.a.createElement("i",{className:"material-icons"},"report"),"  ",e(na.report_chat))),this.state.groupTopic?E.a.createElement(E.a.Fragment,null,E.a.createElement("div",{className:"hr"}),E.a.createElement("div",{className:"panel-form-column"},E.a.createElement("div",{className:"panel-form-row"},E.a.createElement("label",{className:"small"},E.a.createElement(k.FormattedMessage,{id:"label_group_members",defaultMessage:"Group members:"}))),E.a.createElement("div",{className:"panel-form-row"},this.state.sharer?E.a.createElement("a",{href:"#",className:"flat-button",onClick:this.handleShowAddMembers},E.a.createElement("i",{className:"material-icons"},"person_add"),"  ",E.a.createElement(k.FormattedMessage,{id:"button_add_members",defaultMessage:"Add members"})):null),E.a.createElement(k.FormattedMessage,{id:"group_has_no_members",defaultMessage:"No members"},function(e){return E.a.createElement(pt,{contacts:t.state.contactList,myUserId:t.props.myUserId,emptyListMessage:e,topicSelected:t.state.selectedContact,showOnline:!1,showUnread:!1,showMode:!0,noScroll:!0,onTopicSelected:t.handleMemberSelected,showContextMenu:!!t.state.admin&&t.handleContextMenu})}))):null))}}]),ta&&Qn(ea,ta),oa);function oa(e){var t,n,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,oa),n=this,(t=!(a=Xn(oa).call(this,e))||"object"!=typeof a&&"function"!=typeof a?Zn(n):a).state={topic:null,owner:!1,admin:!1,sharer:!1,deleter:!1,muted:!1,address:null,groupTopic:void 0,fullName:void 0,avatar:null,private:null,selectedContact:null,access:null,modeGiven:null,modeWant:null,modeGiven2:null,modeWant2:null,auth:null,anon:null,contactList:[],tags:[],showMemberPanel:!1,showPermissionEditorFor:void 0,moreInfoExpanded:!1,previousMetaDesc:void 0,previousSubsUpdated:void 0,previousTagsUpdated:void 0},t.resetSubs=t.resetSubs.bind(Zn(t)),t.resetDesc=t.resetDesc.bind(Zn(t)),t.onMetaDesc=t.onMetaDesc.bind(Zn(t)),t.onSubsUpdated=t.onSubsUpdated.bind(Zn(t)),t.onTagsUpdated=t.onTagsUpdated.bind(Zn(t)),t.handleFullNameUpdate=t.handleFullNameUpdate.bind(Zn(t)),t.handlePrivateUpdate=t.handlePrivateUpdate.bind(Zn(t)),t.handleImageChanged=t.handleImageChanged.bind(Zn(t)),t.handleMuted=t.handleMuted.bind(Zn(t)),t.handlePermissionsChanged=t.handlePermissionsChanged.bind(Zn(t)),t.handleLaunchPermissionsEditor=t.handleLaunchPermissionsEditor.bind(Zn(t)),t.handleHidePermissionsEditor=t.handleHidePermissionsEditor.bind(Zn(t)),t.handleShowAddMembers=t.handleShowAddMembers.bind(Zn(t)),t.handleHideAddMembers=t.handleHideAddMembers.bind(Zn(t)),t.handleMemberUpdateRequest=t.handleMemberUpdateRequest.bind(Zn(t)),t.handleDeleteMessages=t.handleDeleteMessages.bind(Zn(t)),t.handleLeave=t.handleLeave.bind(Zn(t)),t.handleBlock=t.handleBlock.bind(Zn(t)),t.handleReport=t.handleReport.bind(Zn(t)),t.handleMemberSelected=t.handleMemberSelected.bind(Zn(t)),t.handleMoreInfo=t.handleMoreInfo.bind(Zn(t)),t.handleTagsUpdated=t.handleTagsUpdated.bind(Zn(t)),t.handleContextMenu=t.handleContextMenu.bind(Zn(t)),t}var ia=Object(k.injectIntl)(aa);function sa(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function ra(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?function(e){if(void 0!==e)return e;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):t}function la(e){return(la=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ca(e,t){return(ca=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var da,ua,pa=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&ca(e,t)}(ha,E.a.PureComponent),sa((da=ha).prototype,[{key:"render",value:function(){var t=this;return E.a.createElement("div",{className:"uploader"},E.a.createElement("div",null,E.a.createElement("span",{style:{width:100*this.props.progress+"%"}})),this.props.progress<.999?E.a.createElement("a",{href:"#",onClick:function(e){e.preventDefault(),t.props.onCancel()}},E.a.createElement("i",{className:"material-icons"},"close")," ",E.a.createElement(k.FormattedMessage,{id:"action_cancel",defaultMessage:"cancel"})):E.a.createElement(k.FormattedMessage,{id:"upload_finishing",defaultMessage:"finishing..."}))}}]),ua&&sa(da,ua),ha);function ha(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,ha),ra(this,la(ha).apply(this,arguments))}function ma(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function fa(e){return(fa=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ga(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ba(e,t){return(ba=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var va,_a,ya=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&ba(e,t)}(wa,E.a.Component),ma((va=wa).prototype,[{key:"downloadFile",value:function(e,t,n){var a=this,o=this.props.tinode.getLargeFileHelper();this.setState({downloader:o}),o.download(e,t,n,function(e){a.setState({progress:e/a.props.size})}).then(function(){a.setState({downloader:null,progress:0})}).catch(function(e){e&&a.props.onError("Error downloading file: "+e.message,"err"),a.setState({downloader:null,progress:0})})}},{key:"handleCancel",value:function(){this.props.uploader?this.props.onCancelUpload():this.state.downloader&&this.state.downloader.cancel()}},{key:"render",value:function(){var t=this,e=this.props.filename||"file_attachment";36<e.length&&(e=e.substr(0,16)+"..."+e.substr(-16));var n,a,o,i=0<this.props.size?E.a.createElement("span",{className:"small gray"},"(",W(this.props.size),")"):null;return a=this.props.uploader||this.state.downloader||(o=this.props.downloadUrl,/^\s*([a-z][a-z0-9+.-]*:|\/\/)/im.test(o))?(n=Hn(this.props.downloadUrl)||"about:blank",null):(n="#",function(e){e.preventDefault(),t.downloadFile(t.props.downloadUrl,t.props.filename,t.props.mimetype)}),E.a.createElement("div",{className:"attachment"},E.a.createElement("div",null,E.a.createElement("i",{className:"material-icons big gray"},"insert_drive_file")),E.a.createElement("div",{className:"flex-column"},E.a.createElement("div",null,e," ",i),this.props.uploader||this.state.downloader?E.a.createElement(pa,{progress:this.props.uploader?this.props.progress:this.state.progress,onCancel:this.handleCancel}):E.a.createElement("div",null,E.a.createElement("a",{href:n,download:this.props.filename,onClick:a},E.a.createElement("i",{className:"material-icons"},"file_download")," ",E.a.createElement(k.FormattedMessage,{id:"save_attachment",defaultMessage:"save"})))))}}]),_a&&ma(va,_a),wa);function wa(e){var t,n,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,wa),n=this,(t=!(a=fa(wa).call(this,e))||"object"!=typeof a&&"function"!=typeof a?ga(n):a).state={downloader:null,progress:0},t.downloadFile=t.downloadFile.bind(ga(t)),t.handleCancel=t.handleCancel.bind(ga(t)),t}function Ea(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function ka(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?function(e){if(void 0!==e)return e;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):t}function Ca(e){return(Ca=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Sa(e,t){return(Sa=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Ma,Oa,Ta=Object(k.defineMessages)({sending:{id:"message_sending",defaultMessage:"sending..."},failed:{id:"message_sending_failed",defaultMessage:"failed"}}),Pa=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Sa(e,t)}(ja,E.a.PureComponent),Ea((Ma=ja).prototype,[{key:"render",value:function(){var e,t=this.props.intl.formatMessage;e=this.props.received<=C.a.MESSAGE_STATUS_SENDING?t(Ta.sending):this.props.received==C.a.MESSAGE_STATUS_FAILED?t(Ta.failed):H(this.props.timestamp,this.props.intl.locale);var n=null;return this.props.received<=C.a.MESSAGE_STATUS_SENDING?n=E.a.createElement("i",{className:"material-icons small"},"access_time"):this.props.received==C.a.MESSAGE_STATUS_FAILED?n=E.a.createElement("i",{className:"material-icons small amber"},"warning"):this.props.received==C.a.MESSAGE_STATUS_SENT?n=E.a.createElement("i",{className:"material-icons small"},"done"):this.props.received==C.a.MESSAGE_STATUS_RECEIVED?n=E.a.createElement("i",{className:"material-icons small"},"done_all"):this.props.received==C.a.MESSAGE_STATUS_READ&&(n=E.a.createElement("i",{className:"material-icons small blue"},"done_all")),E.a.createElement("span",{className:"timestamp"},e," ",n)}}]),Oa&&Ea(Ma,Oa),ja);function ja(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,ja),ka(this,Ca(ja).apply(this,arguments))}var Na=Object(k.injectIntl)(Pa);function Aa(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function Fa(e){return(Fa=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Ua(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function xa(e,t){return(xa=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Da,Ra,Ia=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&xa(e,t)}(La,E.a.Component),Aa((Da=La).prototype,[{key:"handlePreviewImage",value:function(e){e.preventDefault(),this.props.onImagePreview({url:e.target.src,filename:e.target.title,width:e.target.dataset.width,height:e.target.dataset.height,size:e.target.dataset.size,type:e.target.dataset.mime})}},{key:"handleFormButtonClick",value:function(e){e.preventDefault();var t={seq:this.props.seq,resp:{}};e.target.dataset.name&&(t.resp[e.target.dataset.name]=e.target.dataset.val?e.target.dataset.val:void 0===e.target.dataset.val?1:""+e.target.dataset.val),"url"==e.target.dataset.act&&(t.ref=Hn(e.target.dataset.ref)||"about:blank");var n=e.target.dataset.title||"unknown";this.props.onFormResponse(e.target.dataset.act,n,t)}},{key:"handleContextClick",value:function(e){e.preventDefault(),e.stopPropagation(),this.props.showContextMenu({seq:this.props.seq,y:e.pageY,x:e.pageX})}},{key:"handleProgress",value:function(e){this.setState({progress:e})}},{key:"handleCancelUpload",value:function(){this.props.uploader.cancel()}},{key:"render",value:function(){var t=this,e=this.props.delRange?"center":this.props.sequence+" "+(this.props.response?"left":"right"),n="single"==this.props.sequence||"last"==this.props.sequence?"bubble tip":"bubble",a=this.props.delRange?null:this.props.userAvatar||!0,o=this.props.userFrom&&this.props.response&&("single"==this.props.sequence||"last"==this.props.sequence),i=this.props.content,s=[];return this.props.mimeType==l.Drafty.getContentType()?(l.Drafty.attachments(i,function(e,t){"application/json"!=e.mime&&s.push(E.a.createElement(ya,{tinode:this.props.tinode,downloadUrl:l.Drafty.getDownloadUrl(e),filename:e.name,uploader:l.Drafty.isUploading(e),mimetype:e.mime,size:l.Drafty.getEntitySize(e),progress:this.state.progress,onCancelUpload:this.handleCancelUpload,onError:this.props.onError,key:t}))},this),i=E.a.createElement("span",null,l.Drafty.format(i,qa,this))):this.props.delRange?i=E.a.createElement(E.a.Fragment,null,E.a.createElement("i",{className:"material-icons gray"},"block")," ",E.a.createElement("i",{className:"gray"},E.a.createElement(k.FormattedMessage,{id:"deleted_content",defaultMessage:"content deleted"}))):"string"!=typeof i&&(i=E.a.createElement(E.a.Fragment,null,E.a.createElement("i",{className:"material-icons gray"},"error_outline")," ",E.a.createElement("i",{className:"gray"},E.a.createElement(k.FormattedMessage,{id:"invalid_content",defaultMessage:"invalid content"})))),E.a.createElement("li",{className:e},this.props.userFrom&&this.props.response?E.a.createElement("div",{className:"avatar-box"},o?E.a.createElement(Y,{topic:this.props.userFrom,title:this.props.userName,avatar:a}):null):null,E.a.createElement("div",null,E.a.createElement("div",{className:n},E.a.createElement("div",{className:"message-content"},i,s,this.props.timestamp?E.a.createElement(Na,{timestamp:this.props.timestamp,received:this.props.received}):null),this.props.delRange?null:E.a.createElement("span",{className:"menuTrigger"},E.a.createElement("a",{href:"#",onClick:this.handleContextClick},E.a.createElement("i",{className:"material-icons"},"expand_more")))),o?E.a.createElement("div",{className:"author"},E.a.createElement(k.FormattedMessage,{id:"user_not_found",defaultMessage:"Not found"},function(e){return t.props.userName||E.a.createElement("i",null,e)})):null))}}]),Ra&&Aa(Da,Ra),La);function La(e){var t,n,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,La),n=this,(t=!(a=Fa(La).call(this,e))||"object"!=typeof a&&"function"!=typeof a?Ua(n):a).state={progress:0},e.uploader&&(e.uploader.onProgress=t.handleProgress.bind(Ua(t))),t.handlePreviewImage=t.handlePreviewImage.bind(Ua(t)),t.handleFormButtonClick=t.handleFormButtonClick.bind(Ua(t)),t.handleContextClick=t.handleContextClick.bind(Ua(t)),t.handleCancelUpload=t.handleCancelUpload.bind(Ua(t)),t}function qa(e,t,n,a){var o=l.Drafty.tagName(e);if(o){var i=l.Drafty.attrValue(e,t)||{};switch(i.key=a,e){case"IM":if(t){i.className="inline-image";var s=ee(t.width,t.height,Math.min(this.props.viewportWidth-52,468),312,!1);s=s||{dstWidth:32,dstHeight:32},i.style={width:s.dstWidth+"px",height:s.dstHeight+"px"},i.src=function(e){if(!e)return null;var t=Hn(e);return t||(/data:image\/[a-z0-9.-]+;base64,/i.test(e.trim())?e:null)}(i.src),i.src?(i.onClick=this.handlePreviewImage,i.className+=" image-clickable"):i.src="img/broken_image.png"}break;case"BN":i.onClick=this.handleFormButtonClick;var r=E.a.Children.map(n,function(e){return"string"==typeof e?e:void 0});r&&0!=r.length||(r=[i.name]),i["data-title"]=r.join("");break;case"FM":i.className="bot-form"}return E.a.createElement(o,i,n)}return n}function Ha(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function Wa(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?function(e){if(void 0!==e)return e;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):t}function Ba(e){return(Ba=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Va(e,t){return(Va=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Ga,Ka,za=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Va(e,t)}(Ja,E.a.Component),Ha((Ga=Ja).prototype,[{key:"render",value:function(){var t=[],e=(this.props.subscribers||[]).length,n=Math.min(4,e);return(this.props.subscribers||[]).some(function(e){return t.push(E.a.createElement("div",{className:"avatar-box",key:e.user},E.a.createElement(Y,{topic:e.user,avatar:$(e.public?e.public.photo:null)||!0,title:e.public?e.public.fn:null}))),t.length==n}),E.a.createElement("div",{id:"topic-users"},t," ",n<e?E.a.createElement("span",null,E.a.createElement(k.FormattedMessage,{id:"more_online_members",defaultMessage:"+{overflow} more",values:{overflow:e-n}})):null)}}]),Ka&&Ha(Ga,Ka),Ja);function Ja(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Ja),Wa(this,Ba(Ja).call(this,e))}function Ya(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function Qa(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?function(e){if(void 0!==e)return e;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):t}function Xa(e){return(Xa=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Za(e,t){return(Za=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var $a,eo,to=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Za(e,t)}(no,E.a.PureComponent),Ya(($a=no).prototype,[{key:"assignWidth",value:function(e){if(e&&!this.state.width){var t=e.getBoundingClientRect();this.setState({width:0|t.width,height:0|t.height})}}},{key:"render",value:function(){var t=this;if(!this.props.content)return null;var e=ee(this.props.content.width,this.props.content.height,this.state.width,this.state.height,!1),n=e?{width:e.dstWidth+"px",height:e.dstHeight+"px"}:this.props.content.width>this.props.content.height?{width:"100%"}:{height:"100%"};n.maxWidth="100%",n.maxHeight="100%";var a=this.props.content.filename,o=Math.max((this.state.width/13/1.5|0)-2,12);a.length>o&&(a=a.slice(0,o/2-1)+"..."+a.slice(1-o/2));var i=this.props.content.width||"-",s=this.props.content.height||"-";return E.a.createElement("div",{id:"image-preview",onClick:this.props.onClose},E.a.createElement("div",{id:"image-preview-caption-panel"},E.a.createElement("a",{href:this.props.content.url,download:this.props.content.filename},E.a.createElement("i",{className:"material-icons"},"file_download")," ",E.a.createElement(k.FormattedMessage,{id:"download_action",defaultMessage:"download"})),E.a.createElement("a",{href:"#",onClick:function(e){e.preventDefault(),t.props.onClose()}},E.a.createElement("i",{className:"material-icons gray"},"close"))),E.a.createElement("div",{id:"image-preview-container",ref:function(e){return t.assignWidth(e)}},E.a.createElement("img",{src:this.props.content.url,style:n})),E.a.createElement("div",{id:"image-preview-footer"},E.a.createElement("div",null,E.a.createElement("div",null,E.a.createElement("b",null,E.a.createElement(k.FormattedMessage,{id:"label_file_name",defaultMessage:"File name:"}))),E.a.createElement("div",null,E.a.createElement("span",{title:this.props.content.filename},a||"-"))),E.a.createElement("div",null,E.a.createElement("div",null,E.a.createElement("b",null,E.a.createElement(k.FormattedMessage,{id:"label_content_type",defaultMessage:"Content type:"}))),E.a.createElement("div",null,this.props.content.type)),E.a.createElement("div",null,E.a.createElement("div",null,E.a.createElement("b",null,E.a.createElement(k.FormattedMessage,{id:"label_size",defaultMessage:"Size:"}))),E.a.createElement("div",null,i," × ",s," px; ",W(this.props.content.size)))))}}]),eo&&Ya($a,eo),no);function no(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,no),(t=Qa(this,Xa(no).call(this,e))).state={width:0,height:0},t}function ao(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function oo(e){return(oo=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function io(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function so(e,t){return(so=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var ro,lo,co=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&so(e,t)}(uo,E.a.PureComponent),ao((ro=uo).prototype,[{key:"handleButtonAction",value:function(e,t){e.preventDefault(),this.props.onAction(t)}},{key:"render",value:function(){var t=this;return E.a.createElement("div",{className:"accept-invite-panel"},E.a.createElement("div",{className:"title"},E.a.createElement(k.FormattedMessage,{id:"chat_invitation",defaultMessage:"You are invited to start a new chat. What would you like to do?"})),E.a.createElement("div",{className:"footer"},E.a.createElement("button",{className:"blue",onClick:function(e){t.handleButtonAction(e,"accept")}},E.a.createElement(k.FormattedMessage,{id:"chat_invitation_accept",defaultMessage:"Accept"})),E.a.createElement("button",{className:"white",onClick:function(e){t.handleButtonAction(e,"delete")}},E.a.createElement(k.FormattedMessage,{id:"chat_invitation_ignore",defaultMessage:"Ignore"})),E.a.createElement("button",{className:"white",onClick:function(e){t.handleButtonAction(e,"block")}},E.a.createElement(k.FormattedMessage,{id:"chat_invitation_block",defaultMessage:"Block"}))))}}]),lo&&ao(ro,lo),uo);function uo(e){var t,n,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,uo),n=this,(t=!(a=oo(uo).call(this,e))||"object"!=typeof a&&"function"!=typeof a?io(n):a).handleButtonAction=t.handleButtonAction.bind(io(t)),t}function po(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function ho(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?function(e){if(void 0!==e)return e;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):t}function mo(e){return(mo=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function fo(e,t){return(fo=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var go,bo,vo=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&fo(e,t)}(_o,E.a.PureComponent),po((go=_o).prototype,[{key:"render",value:function(){return this.props.show?E.a.createElement("div",{className:"load-spinner-box"},E.a.createElement("div",{className:"loader-spinner"})):null}}]),bo&&po(go,bo),_o);function _o(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,_o),ho(this,mo(_o).apply(this,arguments))}function yo(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function wo(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?function(e){if(void 0!==e)return e;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):t}function Eo(e){return(Eo=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ko(e,t){return(ko=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Co,So,Mo=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&ko(e,t)}(Oo,E.a.PureComponent),yo((Co=Oo).prototype,[{key:"render",value:function(){var e=b+" ("+C.a.getLibrary()+")";return E.a.createElement("div",{id:"dummy-view",className:this.props.hideSelf?"nodisplay":null},E.a.createElement("div",null,E.a.createElement("a",{href:"https://github.com/tinode/chat/"},E.a.createElement("img",{id:"logo",alt:"logo",src:"img/logo.svg"}),E.a.createElement("h2",null,"Tinode Web")),E.a.createElement("p",null,E.a.createElement(k.FormattedMessage,{id:"label_client",defaultMessage:"Client:"})," ",e),E.a.createElement("p",null,E.a.createElement(k.FormattedMessage,{id:"label_server",defaultMessage:"Server:"})," ",this.props.serverVersion," (",this.props.serverAddress,")")))}}]),So&&yo(Co,So),Oo);function Oo(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Oo),wo(this,Eo(Oo).apply(this,arguments))}function To(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function Po(e){return(Po=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function jo(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function No(e,t){return(No=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Ao,Fo,Uo=Object(k.defineMessages)({messaging_disabled:{id:"messaging_disabled_prompt",defaultMessage:"Messaging disabled"},type_new_message:{id:"new_message_prompt",defaultMessage:"New message"},file_attachment_too_large:{id:"file_attachment_too_large",defaultMessage:"The file size {size} exceeds the {limit} limit."},cannot_initiate_upload:{id:"cannot_initiate_file_upload",defaultMessage:"Cannot initiate file upload."}}),xo=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&No(e,t)}(Do,E.a.PureComponent),To((Ao=Do).prototype,[{key:"componentDidMount",value:function(){this.messageEditArea.addEventListener("paste",this.handlePasteEvent,!1)}},{key:"componentWillUnmount",value:function(){this.messageEditArea.removeEventListener("paste",this.handlePasteEvent,!1)}},{key:"componentDidUpdate",value:function(){this.messageEditArea.focus()}},{key:"handlePasteEvent",value:function(e){var i=this;this.props.disabled||!function(e,t,n,a){var o=(e.clipboardData||e.originalEvent.clipboardData||{}).items;for(var i in o){var s=o[i];if("file"===s.kind){var r=s.getAsFile();if(r)return r.type&&"image"==r.type.split("/")[0]?r.size>w||X.indexOf(r.type)<0?ne(r,768,768,!1,t,a):ae(r,t,a):oe(r,n),1;console.log("Failed to get file object from pasted file item",s.kind,s.type)}}return 0}(e,function(e,t,n,a,o){i.props.sendMessage(l.Drafty.insertImage(null,0,t,e,n,a,o))},function(e,t,n){i.props.sendMessage(l.Drafty.attachFile(null,e,t,n))},this.props.onError)||e.preventDefault()}},{key:"handleAttachImage",value:function(e){var i=this;if(e.target.files&&0<e.target.files.length){var t=e.target.files[0];t.size>w||X.indexOf(t.type)<0?ne(t,768,768,!1,function(e,t,n,a,o){i.props.sendMessage(l.Drafty.insertImage(null,0,t,e,n,a,o))},function(e){i.props.onError(e,"err")}):ae(t,function(e,t,n,a,o){i.props.sendMessage(l.Drafty.insertImage(null,0,t,e,n,a,o))},function(e){i.props.onError(e,"err")})}e.target.value=""}},{key:"handleAttachFile",value:function(e){var a=this,t=this.props.intl.formatMessage;if(e.target.files&&0<e.target.files.length){var n=e.target.files[0];if(n.size>1<<23)this.props.onError(t(Uo.file_attachment_too_large,{size:W(n.size),limit:W(1<<23)}),"err");else if(n.size>w){var o=this.props.tinode.getLargeFileHelper();if(!o)return void this.props.onError(t(Uo.cannot_initiate_upload));var i=o.upload(n),s=l.Drafty.attachFile(null,n.type,null,n.name,n.size,i);this.props.sendMessage(s,i,o)}else oe(n,function(e,t,n){a.props.sendMessage(l.Drafty.attachFile(null,e,t,n))},this.props.onError)}e.target.value=""}},{key:"handleSend",value:function(e){e.preventDefault(),this.state.message.trim()&&(this.props.sendMessage(this.state.message.trim()),this.setState({message:""}))}},{key:"handleKeyPress",value:function(e){"Enter"===e.key&&(e.shiftKey||(e.preventDefault(),e.stopPropagation(),this.handleSend(e)))}},{key:"handleMessageTyping",value:function(e){var t={message:e.target.value},n=(new Date).getTime();if(3e3<n-this.state.keypressTimestamp){var a=this.props.tinode.getTopic(this.props.topic);a.isSubscribed()&&a.noteKeyPress(),t.keypressTimestamp=n}this.setState(t)}},{key:"render",value:function(){var t=this,e=this.props.intl.formatMessage,n=this.props.disabled?e(Uo.messaging_disabled):e(Uo.type_new_message);return E.a.createElement("div",{id:"send-message-panel"},this.props.disabled?E.a.createElement("i",{className:"material-icons disabled"},"photo"):E.a.createElement("a",{href:"#",onClick:function(e){e.preventDefault(),t.attachImage.click()},title:"Add image"},E.a.createElement("i",{className:"material-icons secondary"},"photo")),this.props.disabled?E.a.createElement("i",{className:"material-icons disabled"},"attach_file"):E.a.createElement("a",{href:"#",onClick:function(e){e.preventDefault(),t.attachFile.click()},title:"Attach file"},E.a.createElement("i",{className:"material-icons secondary"},"attach_file")),E.a.createElement("textarea",{id:"sendMessage",placeholder:n,disabled:this.props.disabled,value:this.state.message,onChange:this.handleMessageTyping,onKeyPress:this.handleKeyPress,ref:function(e){t.messageEditArea=e},autoFocus:!0}),this.props.disabled?E.a.createElement("i",{className:"material-icons disabled"},"send"):E.a.createElement("a",{href:"#",onClick:this.handleSend,title:"Send"},E.a.createElement("i",{className:"material-icons"},"send")),E.a.createElement("input",{type:"file",ref:function(e){t.attachFile=e},onChange:this.handleAttachFile,style:{display:"none"}}),E.a.createElement("input",{type:"file",ref:function(e){t.attachImage=e},accept:"image/*",onChange:this.handleAttachImage,style:{display:"none"}}))}}]),Fo&&To(Ao,Fo),Do);function Do(e){var t,n,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Do),n=this,(t=!(a=Po(Do).call(this,e))||"object"!=typeof a&&"function"!=typeof a?jo(n):a).state={message:"",keypressTimestamp:(new Date).getTime()-3e3-1},t.handlePasteEvent=t.handlePasteEvent.bind(jo(t)),t.handleAttachImage=t.handleAttachImage.bind(jo(t)),t.handleAttachFile=t.handleAttachFile.bind(jo(t)),t.handleSend=t.handleSend.bind(jo(t)),t.handleKeyPress=t.handleKeyPress.bind(jo(t)),t.handleMessageTyping=t.handleMessageTyping.bind(jo(t)),t}var Ro=Object(k.injectIntl)(xo);function Io(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function Lo(e){return(Lo=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function qo(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Ho(e,t){return(Ho=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Wo=C.a.Drafty,Bo=Object(k.defineMessages)({online_now:{id:"online_now",defaultMessage:"online now"},last_seen:{id:"last_seen_timestamp",defaultMessage:"Last seen"},not_found:{id:"title_not_found",defaultMessage:"Not found"}});function Vo(e){if(e){var t=e.getExcessive()||"";return e.isJoiner("given")&&(t.includes("R")||t.includes("W"))}return!1}function Go(e){if(e){var t=e.getMissing()||"";return e.isJoiner("want")&&(t.includes("R")||t.includes("W"))}return!1}var Ko,zo,Jo,Yo=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Ho(e,t)}(Qo,E.a.Component),Jo=[{key:"getDerivedStateFromProps",value:function(t,e){var n={};if(t.topic){if(t.topic!=e.topic){var a=t.tinode.getTopic(t.topic);if(n={topic:t.topic,imagePreview:null,typingIndicator:!1,scrollPosition:0,fetchingMessages:!1},a){var o=[],i=[];t.connected&&a.subscribers(function(e){e.online&&e.user!=t.myUserId&&i.push(e)}),a.messages(function(e){e.deleted||o.push(e)}),Object.assign(n,{messages:o,onlineSubs:i}),a.public?Object.assign(n,{title:a.public.fn,avatar:$(a.public.photo)}):Object.assign(n,{title:"",avatar:null});var s=a.p2pPeerDesc();s?Object.assign(n,{peerMessagingDisabled:Go(s.acs)}):e.peerMessagingDisabled&&Object.assign(n,{peerMessagingDisabled:!1})}else Object.assign(n,{messages:[],onlineSubs:[],title:"",avatar:null,peerMessagingDisabled:!1})}}else n={messages:[],onlineSubs:[],topic:null,title:"",avatar:null,imagePreview:null,typingIndicator:!1,scrollPosition:0,fetchingMessages:!1,peerMessagingDisabled:!1};return t.acs?(t.acs.isWriter()!=e.isWriter&&(n.isWriter=!e.isWriter),t.acs.isReader()!=e.isReader&&(n.isReader=!e.isReader),!t.acs.isReader("given")!=e.readingBlocked&&(n.readingBlocked=!e.readingBlocked)):(e.isWriter&&(n.isWriter=!1),e.isReader&&(n.isReader=!1),e.readingBlocked||(e.readingBlocked=!0)),Vo(t.acs)==!e.unconformed&&(n.unconfirmed=!e.unconformed),!t.connected&&e.onlineSubs&&0<e.onlineSubs.length&&(n.onlineSubs=[]),n}}],zo=[{key:"componentDidMount",value:function(){this.messagesScroller&&this.messagesScroller.addEventListener("scroll",this.handleScrollEvent)}},{key:"componentWillUnmount",value:function(){this.messagesScroller&&this.messagesScroller.removeEventListener("scroll",this.handleScrollEvent)}},{key:"componentDidUpdate",value:function(e,t){var n=this;this.messagesScroller&&(t.topic!=this.state.topic||t.messages.length!=this.state.messages.length?this.messagesScroller.scrollTop=this.messagesScroller.scrollHeight-this.state.scrollPosition:e.viewportHeight>this.props.viewportHeight&&(this.messagesScroller.scrollTop+=e.viewportHeight-this.props.viewportHeight));var a=this.props.tinode.getTopic(this.state.topic);if(this.state.topic!=t.topic&&(t.topic&&!C.a.isNewGroupTopicName(t.topic)&&(this.leave(t.topic),this.props.readTimerHandler(null)),a&&(a.onData=this.handleNewMessage,a.onAllMessagesReceived=this.handleAllMessagesReceived,a.onInfo=this.handleInfoReceipt,a.onMetaDesc=this.handleDescChange,a.onSubsUpdated=this.handleSubsUpdated,a.onPres=this.handleSubsUpdated)),a&&!a.isSubscribed()&&this.props.ready&&(this.state.topic!=t.topic||!e.ready)){var o=this.props.newTopicParams&&this.props.newTopicParams._topicName==this.props.topic,i=a.startMetaQuery().withLaterDesc().withLaterSub();(this.state.isReader||o)&&(i=i.withLaterData(24),this.state.isReader&&(i=i.withLaterDel()),this.setState({fetchingMessages:!0}));var s=o?this.props.newTopicParams:void 0;a.subscribe(i.build(),s).then(function(e){n.state.topic!=e.topic&&n.setState({topic:e.topic}),n.props.onNewTopicCreated(n.props.topic,e.topic),a.queuedMessages(function(e){!e._sending&&a.isSubscribed()&&a.publishMessage(e)})}).catch(function(e){console.log("Failed subscription to",n.state.topic),n.props.onError(e.message,"err");var t=Qo.getDerivedStateFromProps({},{});t.title=n.props.intl.formatMessage(Bo.not_found),n.setState(t)})}}},{key:"leave",value:function(e){var t=this;if(e){var n=this.props.tinode.getTopic(e);n&&n.isSubscribed()&&n.leave(!1).catch(function(){}).finally(function(){t.setState({fetchingMessages:!1}),n.onData=void 0,n.onAllMessagesReceived=void 0,n.onInfo=void 0,n.onMetaDesc=void 0,n.onSubsUpdated=void 0,n.onPres=void 0})}}},{key:"handleScrollReference",value:function(e){e&&(e.addEventListener("scroll",this.handleScrollEvent),this.messagesScroller=e)}},{key:"handleScrollEvent",value:function(e){var o=this;this.setState({scrollPosition:e.target.scrollHeight-e.target.scrollTop}),e.target.scrollTop<=0&&this.setState(function(e,t){var n={};if(!e.fetchingMessages){var a=o.props.tinode.getTopic(o.state.topic);a&&a.isSubscribed()&&a.msgHasMoreMessages()&&(n.fetchingMessages=!0,a.getMessagesPage(24).catch(function(e){o.setState({fetchingMessages:!1}),o.props.onError(e.message,"err")}))}return n})}},{key:"handleDescChange",value:function(e){e.public?this.setState({title:e.public.fn,avatar:$(e.public.photo)}):this.setState({title:"",avatar:null}),e.acs&&this.setState({isWriter:e.acs.isWriter(),isReader:e.acs.isReader(),readingBlocked:!e.acs.isReader("given"),unconfirmed:Vo(e.acs)})}},{key:"handleSubsUpdated",value:function(){var t=this;if(this.state.topic){var n=[],e=this.props.tinode.getTopic(this.state.topic);e.subscribers(function(e){e.online&&e.user!=t.props.myUserId&&n.push(e)});var a={onlineSubs:n},o=e.p2pPeerDesc();o?Object.assign(a,{peerMessagingDisabled:Go(o.acs)}):this.state.peerMessagingDisabled&&Object.assign(a,{peerMessagingDisabled:!1}),this.setState(a)}}},{key:"handleNewMessage",value:function(e){var t=this.props.tinode.getTopic(this.state.topic),n={messages:[]};t.messages(function(e){e.deleted||n.messages.push(e)}),e&&!e.deleted&&(t.isNewMessage(e.seq)&&(n.scrollPosition=0),t.msgStatus(e)>=C.a.MESSAGE_STATUS_SENT&&e.from!=this.props.myUserId&&this.props.readTimerHandler(function(){t.noteRead(e.seq)}),this.props.onData(e)),this.setState(n)}},{key:"handleAllMessagesReceived",value:function(){this.setState({fetchingMessages:!1})}},{key:"handleInfoReceipt",value:function(e){switch(e.what){case"kp":clearTimeout(this.keyPressTimer);var t=this;this.keyPressTimer=setTimeout(function(){t.setState({typingIndicator:!1})},4e3),this.state.typingIndicator||this.setState({typingIndicator:!0});break;case"read":case"recv":this.forceUpdate();break;default:console.log("Other change in topic: ",e.what)}}},{key:"handleImagePreview",value:function(e){this.setState({imagePreview:e})}},{key:"handleCloseImagePreview",value:function(){this.setState({imagePreview:null})}},{key:"handleFormResponse",value:function(e,t,n){if("pub"==e)this.props.sendMessage(Wo.attachJSON(Wo.parse(t),n));else if("url"==e){var a=new URL(n.ref),o=a.searchParams;for(var i in n.resp)n.resp.hasOwnProperty(i)&&o.set(i,n.resp[i]);["name","seq"].map(function(e){n[e]&&o.set(e,n[e])}),o.set("uid",this.props.myUserId),a.search=o,window.open(a,"_blank")}else console.log("Unknown action in form",e)}},{key:"handleContextClick",value:function(e){e.preventDefault(),e.stopPropagation(),this.props.showContextMenu({topicName:this.state.topic,y:e.pageY,x:e.pageX})}},{key:"handleShowContextMenuMessage",value:function(e){e.topicName=this.state.topic;var t=["message_delete"],n=this.props.tinode.getTopic(e.topicName);if(n){var a=n.getAccessMode();a&&a.isDeleter()&&t.push("message_delete_hard")}this.props.showContextMenu(e,t)}},{key:"handleNewChatAcceptance",value:function(e){this.props.onNewChat(this.state.topic,e)}},{key:"handleEnablePeer",value:function(e){e.preventDefault(),this.props.onChangePermissions(this.state.topic,y,this.state.topic)}},{key:"render",value:function(){var e,t=this,n=this.props.intl.formatMessage;if(this.state.topic){for(var a=this.props.tinode.getTopic(this.state.topic),o="grp"==a.getType(),i=[],s=null,r=null,l=0;l<this.state.messages.length;l++){var c=this.state.messages[l],d=null;l+1<this.state.messages.length&&(d=this.state.messages[l+1].from);var u="single";c.from==s?u=c.from==d?"middle":"last":c.from==d&&(u="first"),s=c.from;var p=!(c.from==this.props.myUserId),h=a.msgStatus(c),m=void 0,f=void 0,g=void 0;if(o){var b=a.userDesc(c.from);b&&b.public&&(m=b.public.fn,f=$(b.public.photo)),g=c.from,r="chat-box group"}else r="chat-box";i.push(E.a.createElement(Ia,{tinode:this.props.tinode,content:c.content,delRange:c.delRange,mimeType:c.head?c.head.mime:null,timestamp:c.ts,response:p,seq:c.seq,userFrom:g,userName:m,userAvatar:f,sequence:u,received:h,uploader:c._uploader,viewportWidth:this.props.viewportWidth,showContextMenu:this.handleShowContextMenuMessage,onImagePreview:this.handleImagePreview,onFormResponse:this.handleFormResponse,onError:this.props.onError,key:c.seq}))}var v=null,_=this.props.tinode.getMeTopic().getContact(this.state.topic);_&&"p2p"==C.a.topicType(_.topic)&&(_.online?v=n(Bo.online_now):_.seen&&(v=n(Bo.last_seen)+": "+H(_.seen.when,this.props.intl.locale)));var y=this.state.avatar||!0,w=this.props.online?"online"+(this.state.typingIndicator?" typing":""):"offline";e=E.a.createElement("div",{id:"topic-view",className:this.props.hideSelf?"nodisplay":null},E.a.createElement("div",{id:"topic-caption-panel",className:"caption-panel"},this.props.displayMobile?E.a.createElement("a",{href:"#",id:"hide-message-view",onClick:function(e){e.preventDefault(),t.props.onHideMessagesView()}},E.a.createElement("i",{className:"material-icons"},"arrow_back")):null,E.a.createElement("div",{className:"avatar-box"},E.a.createElement(Y,{avatar:y,topic:this.state.topic,title:this.state.title}),E.a.createElement("span",{className:w})),E.a.createElement("div",{id:"topic-title-group"},E.a.createElement("div",{id:"topic-title",className:"panel-title"},this.state.title||E.a.createElement("i",null,E.a.createElement(k.FormattedMessage,{id:"unnamed_topic",defaultMessage:"Unnamed"}))),E.a.createElement("div",{id:"topic-last-seen"},v)),o?E.a.createElement(za,{subscribers:this.state.onlineSubs}):E.a.createElement("div",{id:"topic-users"}),E.a.createElement("div",null,E.a.createElement("a",{href:"#",onClick:this.handleContextClick},E.a.createElement("i",{className:"material-icons"},"more_vert")))),this.props.displayMobile?E.a.createElement(Ot,{level:this.props.errorLevel,text:this.props.errorText,onClearError:this.props.onError}):null,E.a.createElement(vo,{show:this.state.fetchingMessages}),E.a.createElement("div",{id:"messages-container"},E.a.createElement("div",{id:"messages-panel",ref:this.handleScrollReference},E.a.createElement("ul",{id:"scroller",className:r},i)),this.state.isReader?null:E.a.createElement("div",{id:"write-only-background"},this.state.readingBlocked?E.a.createElement("div",{id:"write-only-note"},E.a.createElement(k.FormattedMessage,{id:"messages_not_readable",defaultMessage:"no access to messages"})):null)),this.state.peerMessagingDisabled&&!this.state.unconfirmed?E.a.createElement("div",{id:"peer-messaging-disabled-note"},E.a.createElement("i",{className:"material-icons secondary"},"block")," ",E.a.createElement(k.FormattedMessage,{id:"peers_messaging_disabled",defaultMessage:"Peer's messaging is disabled."})," ",E.a.createElement("a",{href:"#",onClick:this.handleEnablePeer},E.a.createElement(k.FormattedMessage,{id:"enable_peers_messaging",defaultMessage:"Enable"})),"."):null,this.state.unconfirmed?E.a.createElement(co,{onAction:this.handleNewChatAcceptance}):E.a.createElement(Ro,{tinode:this.props.tinode,topic:this.props.topic,disabled:!this.state.isWriter,sendMessage:this.props.sendMessage,onError:this.props.onError}),this.state.imagePreview?E.a.createElement(to,{content:this.state.imagePreview,onClose:this.handleCloseImagePreview}):null)}else e=E.a.createElement(Mo,{hideSelf:this.props.hideSelf,serverVersion:this.props.serverVersion,serverAddress:this.props.serverAddress});return e}}],Io((Ko=Qo).prototype,zo),Jo&&Io(Ko,Jo),Qo);function Qo(e){var t,n,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Qo),n=this,(t=!(a=Lo(Qo).call(this,e))||"object"!=typeof a&&"function"!=typeof a?qo(n):a).state=Qo.getDerivedStateFromProps(e,{}),t.leave=t.leave.bind(qo(t)),t.handleScrollReference=t.handleScrollReference.bind(qo(t)),t.handleScrollEvent=t.handleScrollEvent.bind(qo(t)),t.handleDescChange=t.handleDescChange.bind(qo(t)),t.handleSubsUpdated=t.handleSubsUpdated.bind(qo(t)),t.handleNewMessage=t.handleNewMessage.bind(qo(t)),t.handleAllMessagesReceived=t.handleAllMessagesReceived.bind(qo(t)),t.handleInfoReceipt=t.handleInfoReceipt.bind(qo(t)),t.handleImagePreview=t.handleImagePreview.bind(qo(t)),t.handleCloseImagePreview=t.handleCloseImagePreview.bind(qo(t)),t.handleFormResponse=t.handleFormResponse.bind(qo(t)),t.handleContextClick=t.handleContextClick.bind(qo(t)),t.handleShowContextMenuMessage=t.handleShowContextMenuMessage.bind(qo(t)),t.handleNewChatAcceptance=t.handleNewChatAcceptance.bind(qo(t)),t.handleEnablePeer=t.handleEnablePeer.bind(qo(t)),t}var Xo=Object(k.injectIntl)(Yo);function Zo(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function $o(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?function(e){if(void 0!==e)return e;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):t}function ei(e){return(ei=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ti(e,t){return(ti=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var ni,ai,oi=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&ti(e,t)}(ii,E.a.PureComponent),Zo((ni=ii).prototype,[{key:"render",value:function(){var t=this;return E.a.createElement("div",null,E.a.createElement("a",{href:"#",onClick:function(e){e.preventDefault(),t.props.onNewTopic()}},E.a.createElement("i",{className:"material-icons"},"chat"))," ",E.a.createElement("a",{href:"#",onClick:function(e){e.preventDefault(),t.props.onSettings()}},E.a.createElement("i",{className:"material-icons"},"settings")))}}]),ai&&Zo(ni,ai),ii);function ii(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,ii),$o(this,ei(ii).apply(this,arguments))}function si(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function ri(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?function(e){if(void 0!==e)return e;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):t}function li(e){return(li=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ci(e,t){return(ci=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var di,ui,pi=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&ci(e,t)}(hi,E.a.PureComponent),si((di=hi).prototype,[{key:"render",value:function(){var t=this;return E.a.createElement("div",null,E.a.createElement("a",{href:"#",onClick:function(e){e.preventDefault(),t.props.onSignUp()}},E.a.createElement("i",{className:"material-icons"},"person_add"))," ",E.a.createElement("a",{href:"#",onClick:function(e){e.preventDefault(),t.props.onSettings()}},E.a.createElement("i",{className:"material-icons"},"settings")))}}]),ui&&si(di,ui),hi);function hi(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,hi),ri(this,li(hi).apply(this,arguments))}function mi(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function fi(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?function(e){if(void 0!==e)return e;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):t}function gi(e){return(gi=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function bi(e,t){return(bi=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var vi,_i,yi=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&bi(e,t)}(wi,E.a.PureComponent),mi((vi=wi).prototype,[{key:"render",value:function(){return E.a.createElement("div",{id:"side-caption-panel",className:"caption-panel"},E.a.createElement("div",{id:"self-avatar",className:"avatar-box"},E.a.createElement(Y,{avatar:this.props.avatar,topic:this.props.myUserId,title:this.props.title})),E.a.createElement("div",{id:"sidepanel-title",className:"panel-title"},this.props.title),"login"===this.props.state?E.a.createElement(pi,{onSignUp:this.props.onSignUp,onSettings:this.props.onSettings}):"contacts"===this.props.state?E.a.createElement(oi,{onNewTopic:this.props.onNewTopic,onSettings:this.props.onSettings}):null,this.props.onCancel?E.a.createElement(_t,{onCancel:this.props.onCancel}):null)}}]),_i&&mi(vi,_i),wi);function wi(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,wi),fi(this,gi(wi).apply(this,arguments))}function Ei(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function ki(e){return(ki=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Ci(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Si(e,t){return(Si=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Mi,Oi,Ti,Pi=Object(k.defineMessages)({archived_contacts_title:{id:"archived_contacts",defaultMessage:"Archived contacts ({count})"}}),ji=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Si(e,t)}(Ni,E.a.Component),Ti=[{key:"deriveStateFromProps",value:function(t){var n=[],a=0,o=0;return t.chatList.map(function(e){e.private&&e.private.arch?t.archive?n.push(e):o++:t.archive||(n.push(e),a+=0<e.unread?1:0)}),n.sort(function(e,t){return(t.touched||0)-(e.touched||0)}),0<o&&n.push({action:"archive",title:Pi.archived_contacts_title,values:{count:o}}),{contactList:n,unreadThreads:a}}}],Oi=[{key:"componentDidUpdate",value:function(e,t){if(e.chatList!=this.props.chatList||e.archive!=this.props.archive){var n=Ni.deriveStateFromProps(this.props);this.setState(n),n.unreadThreads!=t.unreadThreads&&In(n.unreadThreads)}}},{key:"handleAction",value:function(){this.props.onShowArchive()}},{key:"render",value:function(){var t=this;return E.a.createElement(k.FormattedHTMLMessage,{id:"contacts_not_found",defaultMessage:"You have no chats<br />¯∖_(ツ)_/¯"},function(e){return E.a.createElement(pt,{connected:t.props.connected,contacts:t.state.contactList,emptyListMessage:e,topicSelected:t.props.topicSelected,myUserId:t.props.myUserId,showOnline:!0,showUnread:!0,onTopicSelected:t.props.onTopicSelected,showContextMenu:t.props.showContextMenu,onAction:t.handleAction})})}}],Ei((Mi=Ni).prototype,Oi),Ti&&Ei(Mi,Ti),Ni);function Ni(e){var t,n,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Ni),n=this,(t=!(a=ki(Ni).call(this,e))||"object"!=typeof a&&"function"!=typeof a?Ci(n):a).handleAction=t.handleAction.bind(Ci(t)),t.state=Ni.deriveStateFromProps(e),t}function Ai(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}var Fi,Ui,xi,Di=(Fi=Ri,xi=[{key:"setObject",value:function(e,t){localStorage.setItem(e,JSON.stringify(t))}},{key:"getObject",value:function(e){var t=localStorage.getItem(e);return t&&JSON.parse(t)}},{key:"updateObject",value:function(e,t){var n=this.getObject(e);this.setObject(e,Object.assign(n||{},t))}},{key:"removeItem",value:function(e){localStorage.removeItem(e)}}],(Ui=null)&&Ai(Fi.prototype,Ui),xi&&Ai(Fi,xi),Ri);function Ri(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Ri)}function Ii(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function Li(e){return(Li=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function qi(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Hi(e,t){return(Hi=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Wi,Bi,Vi=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Hi(e,t)}(Gi,E.a.PureComponent),Ii((Wi=Gi).prototype,[{key:"handleLoginChange",value:function(e){this.setState({login:e.target.value})}},{key:"handlePasswordChange",value:function(e){this.setState({password:e})}},{key:"handleEmailChange",value:function(e){this.setState({email:e.target.value})}},{key:"handleFnChange",value:function(e){this.setState({fn:e.target.value})}},{key:"handleImageChanged",value:function(e){this.setState({imageDataUrl:e})}},{key:"handleToggleSaveToken",value:function(){Di.setObject("keep-logged-in",!this.state.saveToken),this.setState({saveToken:!this.state.saveToken})}},{key:"handleSubmit",value:function(e){e.preventDefault(),this.setState({errorCleared:!1}),this.props.onCreateAccount(this.state.login.trim(),this.state.password.trim(),Ln(this.state.fn.trim().substring(0,60),this.state.imageDataUrl),{meth:"email",val:this.state.email})}},{key:"render",value:function(){var t=this,e="blue";return this.props.disabled&&(e+=" disabled"),E.a.createElement("form",{className:"panel-form-column",onSubmit:this.handleSubmit},E.a.createElement("div",{className:"panel-form-row"},E.a.createElement("div",{className:"panel-form-column"},E.a.createElement(k.FormattedMessage,{id:"login_prompt"},function(e){return E.a.createElement("input",{type:"text",placeholder:e,autoComplete:"user-name",value:t.state.login,onChange:t.handleLoginChange,required:!0,autoFocus:!0})}),E.a.createElement(k.FormattedMessage,{id:"password_prompt"},function(e){return E.a.createElement(dn,{placeholder:e,autoComplete:"new-password",value:t.state.password,onFinished:t.handlePasswordChange,required:!0})})),E.a.createElement(he,{onImageChanged:this.handleImageChanged,onError:this.props.onError})),E.a.createElement("div",{className:"panel-form-row"},E.a.createElement(k.FormattedMessage,{id:"full_name_prompt",defaultMessage:"Full name, e.g. John Doe"},function(e){return E.a.createElement("input",{type:"text",placeholder:e,autoComplete:"name",value:t.state.fn,onChange:t.handleFnChange,required:!0})})),E.a.createElement("div",{className:"panel-form-row"},E.a.createElement(k.FormattedMessage,{id:"email_prompt",defaultMessage:"Email, e.g. jdoe@example.com"},function(e){return E.a.createElement("input",{type:"email",placeholder:e,autoComplete:"email",value:t.state.email,onChange:t.handleEmailChange,required:!0})})),E.a.createElement("div",{className:"panel-form-row"},E.a.createElement(we,{id:"save-token",name:"save-token",checked:this.state.saveToken,onChange:this.handleToggleSaveToken}),E.a.createElement(k.FormattedMessage,{id:"stay_logged_in"},function(e){return E.a.createElement("label",{htmlFor:"save-token"}," ",e)})),E.a.createElement("div",{className:"dialog-buttons"},E.a.createElement("button",{className:e,type:"submit"},E.a.createElement(k.FormattedMessage,{id:"button_sign_up",defaultMessage:"Sign up"}))))}}]),Bi&&Ii(Wi,Bi),Gi);function Gi(e){var t,n,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Gi),n=this,(t=!(a=Li(Gi).call(this,e))||"object"!=typeof a&&"function"!=typeof a?qi(n):a).state={login:"",password:"",email:"",fn:"",imageDataUrl:null,errorCleared:!1,saveToken:Di.getObject("keep-logged-in")},t.handleLoginChange=t.handleLoginChange.bind(qi(t)),t.handlePasswordChange=t.handlePasswordChange.bind(qi(t)),t.handleEmailChange=t.handleEmailChange.bind(qi(t)),t.handleFnChange=t.handleFnChange.bind(qi(t)),t.handleImageChanged=t.handleImageChanged.bind(qi(t)),t.handleToggleSaveToken=t.handleToggleSaveToken.bind(qi(t)),t.handleSubmit=t.handleSubmit.bind(qi(t)),t}function Ki(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function zi(e){return(zi=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Ji(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Yi(e,t){return(Yi=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Qi,Xi,Zi=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Yi(e,t)}($i,E.a.Component),Ki((Qi=$i).prototype,[{key:"componentDidMount",value:function(){var e=this.props.tinode.getMeTopic();e.onCredsUpdated=this.tnCredsUpdated,e.onTagsUpdated=this.tnNewTags}},{key:"componentWillUnmount",value:function(){var e=this.props.tinode.getMeTopic();e.onTagsUpdated=this.state.previousOnTags,e.onCredsUpdated=void 0}},{key:"tnNewTags",value:function(e){this.setState({tags:e})}},{key:"tnCredsUpdated",value:function(e){this.setState({credentials:e||[]})}},{key:"handleFullNameUpdate",value:function(e){(e=e.trim().substring(0,60))&&(this.setState({fullName:e}),this.props.onUpdateAccount(void 0,Ln(e,null)))}},{key:"handlePasswordUpdate",value:function(e){this.setState({password:e}),this.props.onUpdateAccount(e)}},{key:"handleImageChanged",value:function(e){this.setState({avatar:e}),this.props.onUpdateAccount(void 0,Ln(null,e||C.a.DEL_CHAR))}},{key:"handleCheckboxClick",value:function(e,t){"sound"==e?this.props.onToggleMessageSounds(t):"alert"==e&&this.props.onTogglePushNotifications(t)}},{key:"handleCredChange",value:function(e){this.setState({newCred:e.target.value,addCredInvalid:!1})}},{key:"handleCredKeyDown",value:function(e){27===e.keyCode?this.setState({newCred:"",addCredActive:!1}):13===e.keyCode&&this.handleCredEntered(e)}},{key:"handleCredEntered",value:function(){var e=this.state.newCred.trim();if(e){var t,n,a,o=(t=(t=e).trim(),/^(?:\+?(\d{1,3}))?[- (.]*(\d{3})[- ).]*(\d{3})[- .]*(\d{2})[- .]*(\d{2})?$/.test(t)?t.replace(/[- ().]*/,""):null);o?n="tel":(a=(a=e).trim(),(o=/^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/.test(a)?a:null)&&(n="email")),n?(this.props.onCredAdd(n,o),this.setState({addCredActive:!1,newCred:""})):this.setState({addCredInvalid:!0})}else this.setState({addCredActive:!1,addCredInvalid:!1})}},{key:"handleLaunchPermissionsEditor",value:function(e){this.setState({showPermissionEditorFor:e,editedPermissions:this.state[e]})}},{key:"handleHidePermissionsEditor",value:function(){this.setState({showPermissionEditorFor:void 0})}},{key:"handlePermissionsChanged",value:function(e){var t={};t[this.state.showPermissionEditorFor]=e,this.props.onUpdateAccount(void 0,void 0,t);var n={showPermissionEditorFor:void 0};n[this.state.showPermissionEditorFor]=e,this.setState(n)}},{key:"handleTagsUpdated",value:function(e){qn(this.state.tags.slice(0),e.slice(0))||this.props.onUpdateTags(e)}},{key:"render",value:function(){var n=this,e=[];return this.state.credentials.map(function(t){e.push(E.a.createElement("div",{key:t.meth+":"+t.val+":"+t.done},t.meth,": ",E.a.createElement("tt",null,t.val),E.a.createElement("span",null," ",t.done?null:E.a.createElement("a",{href:"#",onClick:function(e){e.preventDefault(),n.props.onCredConfirm(t.meth,t.val)}},E.a.createElement(k.FormattedMessage,{id:"validate_credential_action",defaultMessage:"confirm"}))," ",E.a.createElement("a",{href:"#",onClick:function(e){e.preventDefault(),n.props.onCredDelete(t.meth,t.val)}},E.a.createElement("i",{className:"material-icons gray"},"delete_outline")))))}),E.a.createElement(E.a.Fragment,null,this.state.showPermissionEditorFor?E.a.createElement(Rn,{mode:this.state.editedPermissions,skip:"O",onSubmit:this.handlePermissionsChanged,onCancel:this.handleHidePermissionsEditor}):E.a.createElement("div",{id:"edit-account",className:"scrollable-panel"},E.a.createElement("div",{className:"panel-form-row"},E.a.createElement("div",{className:"panel-form-column"},E.a.createElement("div",null,E.a.createElement("label",{className:"small"},E.a.createElement(k.FormattedMessage,{id:"label_your_name",defaultMessage:"Your name"}))),E.a.createElement("div",null,E.a.createElement(k.FormattedMessage,{id:"full_name_prompt"},function(e){return E.a.createElement(vn,{placeholder:e,value:n.state.fullName,onFinished:n.handleFullNameUpdate})})),E.a.createElement("div",null,E.a.createElement("label",{className:"small"},E.a.createElement(k.FormattedMessage,{id:"label_password",defaultMessage:"Password"}))),E.a.createElement("div",null,E.a.createElement(k.FormattedMessage,{id:"password_unchanged_prompt",defaultMessage:"Unchanged"},function(e){return E.a.createElement(vn,{placeholder:e,type:"password",onFinished:n.handlePasswordUpdate})}))),E.a.createElement(he,{avatar:this.state.avatar,uid:this.props.myUserId,title:this.state.fullName,onImageChanged:this.handleImageChanged,onError:this.props.onError})),E.a.createElement("div",{className:"hr"}),E.a.createElement("div",{className:"panel-form-row"},E.a.createElement("label",{htmlFor:"message-sound"},E.a.createElement(k.FormattedMessage,{id:"label_message_sound",defaultMessage:"Message sound:"})),E.a.createElement(we,{name:"sound",id:"message-sound",checked:this.props.messageSounds,onChange:this.handleCheckboxClick})),E.a.createElement("div",{className:"panel-form-row"},E.a.createElement("label",{htmlFor:"desktop-alerts"},this.props.desktopAlertsEnabled?E.a.createElement(k.FormattedMessage,{id:"label_push_notifications",defaultMessage:"Notification alerts:"}):E.a.createElement(k.FormattedMessage,{id:"label_push_notifications_disabled",defaultMessage:"Notification alerts (requires HTTPS):"})),E.a.createElement(we,{name:"alert",id:"desktop-alerts",checked:this.props.desktopAlerts,onChange:this.props.desktopAlertsEnabled?this.handleCheckboxClick:null})),E.a.createElement("div",{className:"hr"}),E.a.createElement(k.FormattedMessage,{id:"title_tag_manager",defaultMessage:"Tags (user discovery)"},function(e){return E.a.createElement(Jn,{title:e,activated:!1,tags:n.state.tags,onSubmit:n.handleTagsUpdated})}),E.a.createElement("div",{className:"hr"}),E.a.createElement("div",{className:"panel-form-column"},E.a.createElement("div",null,E.a.createElement("label",{className:"small"},E.a.createElement(k.FormattedMessage,{id:"label_user_contacts",defaultMessage:"Contacts:"}))),E.a.createElement("div",{className:"quoted"},e,this.state.addCredActive?E.a.createElement("input",{type:"text",value:this.state.value,className:this.state.addCredInvalid?"invalid":null,placeholder:"Phone number or email",required:"required",autoFocus:!0,onChange:this.handleCredChange,onKeyDown:this.handleCredKeyDown,onBlur:this.handleCredEntered}):null,E.a.createElement("div",null,E.a.createElement("a",{href:"#",onClick:function(e){e.preventDefault(),n.setState({addCredActive:!0})}},"+ Add another")))),E.a.createElement("div",{className:"hr"}),E.a.createElement("div",{className:"panel-form-column"},E.a.createElement("div",{className:"panel-form-row"},E.a.createElement("label",{className:"small"},E.a.createElement(k.FormattedMessage,{id:"label_user_id",defaultMessage:"Address:"})),E.a.createElement("tt",null,this.props.myUserId)),E.a.createElement("div",null,E.a.createElement("label",{className:"small"},E.a.createElement(k.FormattedMessage,{id:"label_default_access_mode",defaultMessage:"Default access mode:"}))),E.a.createElement("div",{className:"quoted"},E.a.createElement("div",null,"Auth: ",E.a.createElement("tt",{className:"clickable",onClick:this.handleLaunchPermissionsEditor.bind(this,"auth")},this.state.auth)),E.a.createElement("div",null,"Anon: ",E.a.createElement("tt",{className:"clickable",onClick:this.handleLaunchPermissionsEditor.bind(this,"anon")},this.state.anon)))),E.a.createElement("div",{className:"hr"}),E.a.createElement("div",{className:"panel-form-column"},E.a.createElement("a",{href:"#",className:"red flat-button",onClick:function(e){e.preventDefault(),n.props.onLogout()}},E.a.createElement("i",{className:"material-icons"},"exit_to_app"),"  ",E.a.createElement(k.FormattedMessage,{id:"button_logout",defaultMessage:"Logout"}))),E.a.createElement("div",{className:"hr"}),E.a.createElement("div",{className:"panel-form-column"},E.a.createElement("div",null,E.a.createElement("label",{className:"small"},E.a.createElement(k.FormattedMessage,{id:"label_legal",defaultMessage:"Legal"}))),E.a.createElement("div",{className:"quoted"},E.a.createElement("a",{href:"email:info@tinode.co",className:"flat-button",target:"_blank"},E.a.createElement("i",{className:"material-icons"},"email"),"  ",E.a.createElement(k.FormattedMessage,{id:"link_contact_us",defaultMessage:"Contact Us"}))),E.a.createElement("div",{className:"quoted"},E.a.createElement("a",{href:"https://tinode.co/terms.html",className:"flat-button",target:"_blank"},E.a.createElement("i",{className:"material-icons"},"description"),"  ",E.a.createElement(k.FormattedMessage,{id:"link_terms_of_service",defaultMessage:"Terms of Service"}))),E.a.createElement("div",{className:"quoted"},E.a.createElement("a",{href:"https://tinode.co/privacy.html",className:"flat-button",target:"_blank"},E.a.createElement("i",{className:"material-icons"},"policy"),"  ",E.a.createElement(k.FormattedMessage,{id:"link_privacy_policy",defaultMessage:"Privacy Policy"}))))))}}]),Xi&&Ki(Qi,Xi),$i);function $i(e){var t,n,a;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,$i),n=this;var o=(t=!(a=zi($i).call(this,e))||"object"!=typeof a&&"function"!=typeof a?Ji(n):a).props.tinode.getMeTopic(),i=o.getDefaultAccess();return t.state={fullName:o.public?o.public.fn:void 0,avatar:$(o.public?o.public.photo:null),auth:i?i.auth:null,anon:i?i.anon:null,tags:o.tags(),credentials:o.getCredentials()||[],addCredActive:!1,addCredInvalid:!1,newCred:"",showPermissionEditorFor:void 0,previousOnTags:o.onTagsUpdated},t.tnNewTags=t.tnNewTags.bind(Ji(t)),t.tnCredsUpdated=t.tnCredsUpdated.bind(Ji(t)),t.handleFullNameUpdate=t.handleFullNameUpdate.bind(Ji(t)),t.handlePasswordUpdate=t.handlePasswordUpdate.bind(Ji(t)),t.handleImageChanged=t.handleImageChanged.bind(Ji(t)),t.handleCheckboxClick=t.handleCheckboxClick.bind(Ji(t)),t.handleCredChange=t.handleCredChange.bind(Ji(t)),t.handleCredKeyDown=t.handleCredKeyDown.bind(Ji(t)),t.handleCredEntered=t.handleCredEntered.bind(Ji(t)),t.handleLaunchPermissionsEditor=t.handleLaunchPermissionsEditor.bind(Ji(t)),t.handleHidePermissionsEditor=t.handleHidePermissionsEditor.bind(Ji(t)),t.handlePermissionsChanged=t.handlePermissionsChanged.bind(Ji(t)),t.handleTagsUpdated=t.handleTagsUpdated.bind(Ji(t)),t}function es(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function ts(e){return(ts=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ns(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function as(e,t){return(as=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var os,is,ss=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&as(e,t)}(rs,E.a.Component),es((os=rs).prototype,[{key:"handleLoginChange",value:function(e){this.setState({login:e.target.value})}},{key:"handlePasswordChange",value:function(e){this.setState({password:e.target.value})}},{key:"handleToggleSaveToken",value:function(){Di.setObject("keep-logged-in",!this.state.saveToken),this.setState({saveToken:!this.state.saveToken})}},{key:"handleSubmit",value:function(e){e.preventDefault(),this.props.onLogin(this.state.login.trim(),this.state.password.trim())}},{key:"render",value:function(){var t=this,e="blue";return this.props.disabled&&(e+=" disabled"),E.a.createElement("form",{id:"login-form",onSubmit:this.handleSubmit},E.a.createElement(k.FormattedMessage,{id:"login_prompt",defaultMessage:"Login"},function(e){return E.a.createElement("input",{type:"text",id:"inputLogin",placeholder:e,autoComplete:"username",autoCorrect:"off",autoCapitalize:"none",value:t.state.login,onChange:t.handleLoginChange,required:!0,autoFocus:!0})}),E.a.createElement(k.FormattedMessage,{id:"password_prompt",defaultMessage:"Password"},function(e){return E.a.createElement(dn,{type:"password",id:"inputPassword",placeholder:e,autoComplete:"current-password",value:t.state.password,onChange:t.handlePasswordChange,required:!0})}),E.a.createElement("div",{className:"panel-form-row"},E.a.createElement(we,{id:"save-token",name:"save-token",checked:this.state.saveToken,onChange:this.handleToggleSaveToken}),E.a.createElement("label",{htmlFor:"save-token"}," ",E.a.createElement(k.FormattedMessage,{id:"stay_logged_in",defaultMessage:"Stay logged in"})),E.a.createElement("a",{href:"#reset"},E.a.createElement(k.FormattedMessage,{id:"forgot_password_link",defaultMessage:"Forgot password?"}))),E.a.createElement("div",{className:"dialog-buttons"},E.a.createElement("button",{className:e,type:"submit"},E.a.createElement(k.FormattedMessage,{id:"button_sign_in",defaultMessage:"Sign in"}))))}}]),is&&es(os,is),rs);function rs(e){var t,n,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,rs),n=this,(t=!(a=ts(rs).call(this,e))||"object"!=typeof a&&"function"!=typeof a?ns(n):a).state={login:e.login,password:"",hostName:e.serverAddress,saveToken:Di.getObject("keep-logged-in")},t.handleLoginChange=t.handleLoginChange.bind(ns(t)),t.handlePasswordChange=t.handlePasswordChange.bind(ns(t)),t.handleToggleSaveToken=t.handleToggleSaveToken.bind(ns(t)),t.handleSubmit=t.handleSubmit.bind(ns(t)),t}function ls(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function cs(e){return(cs=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ds(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function us(e,t){return(us=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var ps,hs,ms=Object(k.defineMessages)({invalid_id:{id:"error_invalid_id",defaultMessage:"Invalid ID"}}),fs=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&us(e,t)}(gs,E.a.PureComponent),ls((ps=gs).prototype,[{key:"handleChange",value:function(e){this.setState({groupId:e.target.value})}},{key:"handleKeyPress",value:function(e){"Enter"===e.key&&this.handleSubmit(e)}},{key:"handleSubmit",value:function(e){if(e.preventDefault(),this.state.groupId){var t=this.state.groupId.trim();3<t.length&&("usr"==t.substr(0,3)||"grp"==t.substr(0,3))?this.props.onSubmit(t):this.props.onError(this.props.intl.formatMessage(ms.invalid_id),"err")}}},{key:"render",value:function(){var t=this;return E.a.createElement("div",{className:"panel-form"},E.a.createElement("div",{className:"panel-form-row"},E.a.createElement(k.FormattedMessage,{id:"group_user_id_prompt",defaultMessage:"Group or User ID"},function(e){return E.a.createElement("input",{type:"text",placeholder:e,value:t.state.groupId,onChange:t.handleChange,onKeyPress:t.handleKeyPress,required:!0})})),E.a.createElement("div",{className:"dialog-buttons"},E.a.createElement("button",{className:"blue",onClick:this.handleSubmit},E.a.createElement(k.FormattedMessage,{id:"button_subscribe",defaultMessage:"Subscribe"}))))}}]),hs&&ls(ps,hs),gs);function gs(e){var t,n,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,gs),n=this,(t=!(a=cs(gs).call(this,e))||"object"!=typeof a&&"function"!=typeof a?ds(n):a).state={groupId:""},t.handleChange=t.handleChange.bind(ds(t)),t.handleKeyPress=t.handleKeyPress.bind(ds(t)),t.handleSubmit=t.handleSubmit.bind(ds(t)),t}var bs=Object(k.injectIntl)(fs);function vs(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function _s(e){return(_s=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ys(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ws(e,t){return(ws=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Es,ks,Cs=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&ws(e,t)}(Ss,E.a.PureComponent),vs((Es=Ss).prototype,[{key:"handleFnChange",value:function(e){this.setState({fn:e.target.value})}},{key:"handlePrivateChange",value:function(e){this.setState({private:e.target.value})}},{key:"handleImageChanged",value:function(e){this.setState({imageDataUrl:e})}},{key:"handleTagsChanged",value:function(e){this.setState({tags:e})}},{key:"handleSubmit",value:function(e){e.preventDefault();var t=this.state.fn.trim().substring(0,60),n=this.state.private.trim().substring(0,60);t&&this.props.onSubmit(t,this.state.imageDataUrl,n,this.state.tags)}},{key:"render",value:function(){var t=this,e="blue";return this.props.disabled&&(e+=" disabled"),E.a.createElement("form",{className:"panel-form",onSubmit:this.handleSubmit},E.a.createElement("div",{className:"panel-form-row"},E.a.createElement("div",{className:"panel-form-column"},E.a.createElement("label",{className:"small",htmlFor:"new-topic-fn"},E.a.createElement(k.FormattedMessage,{id:"label_topic_name"})),E.a.createElement(k.FormattedMessage,{id:"topic_name_editing_placeholder",defaultMessage:"Freeform name of the group"},function(e){return E.a.createElement("input",{type:"text",id:"new-topic-fn",placeholder:e,value:t.state.fn,onChange:t.handleFnChange,autoFocus:!0,required:!0})}),E.a.createElement("br",null),E.a.createElement("label",{className:"small",htmlFor:"new-topic-priv"},E.a.createElement(k.FormattedMessage,{id:"label_private"})),E.a.createElement(k.FormattedMessage,{id:"private_editing_placeholder"},function(e){return E.a.createElement("input",{type:"text",id:"new-topic-priv",placeholder:e,value:t.state.private,onChange:t.handlePrivateChange})})),E.a.createElement(he,{onError:this.props.onError,onImageChanged:this.handleImageChanged})),E.a.createElement(k.FormattedMessage,{id:"title_tag_manager"},function(e){return E.a.createElement(Jn,{tags:t.state.tags,activated:!0,onTagsChanged:t.handleTagsChanged,title:e})}),E.a.createElement("div",{className:"dialog-buttons"},E.a.createElement("button",{className:e},E.a.createElement(k.FormattedMessage,{id:"button_create",defaultMessage:"Create"}))))}}]),ks&&vs(Es,ks),Ss);function Ss(e){var t,n,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Ss),n=this,(t=!(a=_s(Ss).call(this,e))||"object"!=typeof a&&"function"!=typeof a?ys(n):a).state={fn:"",private:"",imageDataUrl:null,tags:[]},t.handleFnChange=t.handleFnChange.bind(ys(t)),t.handlePrivateChange=t.handlePrivateChange.bind(ys(t)),t.handleImageChanged=t.handleImageChanged.bind(ys(t)),t.handleTagsChanged=t.handleTagsChanged.bind(ys(t)),t.handleTagsChanged=t.handleTagsChanged.bind(ys(t)),t.handleSubmit=t.handleSubmit.bind(ys(t)),t}function Ms(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function Os(e){return(Os=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Ts(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Ps(e,t){return(Ps=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var js,Ns,As=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Ps(e,t)}(Fs,E.a.PureComponent),Ms((js=Fs).prototype,[{key:"componentWillUnmount",value:function(){this.state.edited&&(this.setState({search:"",edited:!1}),this.props.onSearchContacts(C.a.DEL_CHAR))}},{key:"handleSearchChange",value:function(e){this.setState({search:e.target.value})}},{key:"handleSearch",value:function(e){e.preventDefault();var t=this.state.search.trim();this.setState({edited:0<t.length}),this.props.onSearchContacts(0<t.length?t:C.a.DEL_CHAR)}},{key:"handleClear",value:function(e){e.preventDefault(),this.state.edited&&this.props.onSearchContacts(C.a.DEL_CHAR),this.setState({search:"",edited:!1})}},{key:"handleKeyDown",value:function(e){"Enter"===e.key?this.handleSearch(e):"Escape"===e.key&&this.handleClear()}},{key:"render",value:function(){var t=this;return E.a.createElement("div",{className:"panel-form"},E.a.createElement("div",{className:"panel-form-row"},E.a.createElement("i",{className:"material-icons search"},"search"),E.a.createElement(k.FormattedMessage,{id:"search_placeholder",defaultMessage:"List like email:alice@example.com, tel:17025550003..."},function(e){return E.a.createElement("input",{className:"search",type:"text",placeholder:e,value:t.state.search,onChange:t.handleSearchChange,onKeyDown:t.handleKeyDown,required:!0,autoFocus:!0})}),E.a.createElement("a",{href:"#",onClick:this.handleClear},E.a.createElement("i",{className:"material-icons"},"close"))))}}]),Ns&&Ms(js,Ns),Fs);function Fs(e){var t,n,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Fs),n=this,(t=!(a=Os(Fs).call(this,e))||"object"!=typeof a&&"function"!=typeof a?Ts(n):a).state={edited:!1,search:""},t.handleSearchChange=t.handleSearchChange.bind(Ts(t)),t.handleSearch=t.handleSearch.bind(Ts(t)),t.handleClear=t.handleClear.bind(Ts(t)),t.handleKeyDown=t.handleKeyDown.bind(Ts(t)),t}function Us(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function xs(e){return(xs=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Ds(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Rs(e,t){return(Rs=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Is,Ls,qs=Object(k.defineMessages)({search_for_contacts:{id:"search_for_contacts",defaultMessage:"Use search to find contacts"},search_no_results:{id:"search_no_results",defaultMessage:"Search returned no results"}}),Hs=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Rs(e,t)}(Ws,E.a.Component),Us((Is=Ws).prototype,[{key:"componentDidMount",value:function(){this.props.onInitFind()}},{key:"handleTabClick",value:function(e){e.preventDefault(),P.navigateTo(P.addUrlParam(window.location.hash,"tab",e.currentTarget.dataset.id)),this.setState({tabSelected:e.currentTarget.dataset.id})}},{key:"handleSearchContacts",value:function(e){this.props.onSearchContacts(e),this.setState({searchQuery:C.a.isNullValue(e)?null:e})}},{key:"handleContactSelected",value:function(e){"p2p"===this.state.tabSelected&&(P.navigateTo(P.removeUrlParam(window.location.hash,"tab")),this.props.onCreateTopic(e,void 0))}},{key:"handleNewGroupSubmit",value:function(e,t,n,a){P.navigateTo(P.removeUrlParam(window.location.hash,"tab")),this.props.onCreateTopic(void 0,Ln(e,t),n,a)}},{key:"handleGroupByID",value:function(e){P.navigateTo(P.removeUrlParam(window.location.hash,"tab")),this.props.onCreateTopic(e)}},{key:"render",value:function(){var e=(0,this.props.intl.formatMessage)(this.state.searchQuery?qs.search_no_results:qs.search_for_contacts);return E.a.createElement("div",{className:"flex-column"},E.a.createElement("ul",{className:"tabbar"},E.a.createElement("li",{className:"p2p"===this.state.tabSelected?"active":null},E.a.createElement("a",{href:"#","data-id":"p2p",onClick:this.handleTabClick},E.a.createElement(k.FormattedMessage,{id:"tabtitle_find_user",defaultMessage:"find"}))),E.a.createElement("li",{className:"grp"===this.state.tabSelected?"active":null},E.a.createElement("a",{href:"#","data-id":"grp",onClick:this.handleTabClick},E.a.createElement(k.FormattedMessage,{id:"tabtitle_new_group",defaultMessage:"new group"}))),E.a.createElement("li",{className:"byid"===this.state.tabSelected?"active":null},E.a.createElement("a",{href:"#","data-id":"byid",onClick:this.handleTabClick},E.a.createElement(k.FormattedMessage,{id:"tabtitle_group_by_id",defaultMessage:"by id"})))),"grp"===this.state.tabSelected?E.a.createElement(Cs,{onSubmit:this.handleNewGroupSubmit}):"byid"===this.state.tabSelected?E.a.createElement(bs,{onSubmit:this.handleGroupByID,onError:this.props.onError}):E.a.createElement("div",{className:"flex-column"},E.a.createElement(As,{type:"p2p",onSearchContacts:this.handleSearchContacts}),E.a.createElement(pt,{contacts:this.props.searchResults,myUserId:this.props.myUserId,emptyListMessage:e,showOnline:!1,showUnread:!1,showContextMenu:!1,onTopicSelected:this.handleContactSelected})))}}]),Ls&&Us(Is,Ls),Ws);function Ws(e){var t,n,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Ws),n=this,(t=!(a=xs(Ws).call(this,e))||"object"!=typeof a&&"function"!=typeof a?Ds(n):a).state={tabSelected:"p2p",searchQuery:null},t.handleTabClick=t.handleTabClick.bind(Ds(t)),t.handleSearchContacts=t.handleSearchContacts.bind(Ds(t)),t.handleContactSelected=t.handleContactSelected.bind(Ds(t)),t.handleNewGroupSubmit=t.handleNewGroupSubmit.bind(Ds(t)),t.handleGroupByID=t.handleGroupByID.bind(Ds(t)),t}var Bs=Object(k.injectIntl)(Hs);function Vs(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function Gs(e){return(Gs=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Ks(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function zs(e,t){return(zs=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Js,Ys,Qs=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&zs(e,t)}(Xs,E.a.PureComponent),Vs((Js=Xs).prototype,[{key:"componentDidMount",value:function(){var e=P.parseUrlHash(window.location.hash);this.setState({token:e.params.token,scheme:e.params.scheme})}},{key:"handleSubmit",value:function(e){e.preventDefault(),this.state.token?this.props.onReset(this.state.scheme,this.state.password.trim(),this.state.token):this.props.onRequest("email",this.state.email.trim())}},{key:"handleEmailChange",value:function(e){this.setState({email:e.target.value})}},{key:"handlePasswordChange",value:function(e){this.setState({password:e.target.value})}},{key:"render",value:function(){var t=this,e=this.state.token&&this.state.scheme;return E.a.createElement("form",{id:"password-reset-form",onSubmit:this.handleSubmit},e?E.a.createElement(k.FormattedMessage,{id:"new_password_placeholder",defaultMessage:"Enter new password"},function(e){return E.a.createElement(dn,{placeholder:e,autoComplete:"new-password",value:t.state.password,required:!0,autoFocus:!0,onChange:t.handlePasswordChange})}):E.a.createElement(E.a.Fragment,null,E.a.createElement("label",{htmlFor:"inputEmail"},E.a.createElement(k.FormattedMessage,{id:"label_reset_password",defaultMessage:"Send a password reset email:"})),E.a.createElement(k.FormattedMessage,{id:"credential_email_prompt",defaultMessage:"Your registration email"},function(e){return E.a.createElement("input",{type:"email",id:"inputEmail",placeholder:e,autoComplete:"email",value:t.state.email,onChange:t.handleEmailChange,required:!0,autoFocus:!0})})),E.a.createElement("div",{className:"dialog-buttons"},E.a.createElement("button",{className:"blue",type:"submit"},e?E.a.createElement(k.FormattedMessage,{id:"button_reset",defaultMessage:"Reset"}):E.a.createElement(k.FormattedMessage,{id:"button_send_request",defaultMessage:"Send request"}))))}}]),Ys&&Vs(Js,Ys),Xs);function Xs(e){var t,n,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Xs),n=this,(t=!(a=Gs(Xs).call(this,e))||"object"!=typeof a&&"function"!=typeof a?Ks(n):a).state={email:"",password:""},t.handleSubmit=t.handleSubmit.bind(Ks(t)),t.handleEmailChange=t.handleEmailChange.bind(Ks(t)),t.handlePasswordChange=t.handlePasswordChange.bind(Ks(t)),t}function Zs(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function $s(e){return($s=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function er(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function tr(e,t){return(tr=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var nr,ar,or=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&tr(e,t)}(ir,E.a.PureComponent),Zs((nr=ir).prototype,[{key:"handleHostNameChange",value:function(e){this.setState({hostName:e.target.value,changed:!0})}},{key:"handleEditingFinished",value:function(){this.state.changed&&(this.setState({changed:!1}),this.props.onServerAddressChange(this.state.hostName.trim()))}},{key:"render",value:function(){var e=[];for(var t in v){var n=v[t];e.push(E.a.createElement("option",{key:n,value:n}))}return E.a.createElement("div",{className:"panel-form-row"},E.a.createElement("input",{type:"search",id:"host-name",placeholder:this.props.hostName,list:"known-hosts",className:"quoted",value:this.state.hostName,onChange:this.handleHostNameChange,onBlur:this.handleEditingFinished,required:!0}),E.a.createElement("datalist",{id:"known-hosts"},e))}}]),ar&&Zs(nr,ar),ir);function ir(e){var t,n,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,ir),n=this,(t=!(a=$s(ir).call(this,e))||"object"!=typeof a&&"function"!=typeof a?er(n):a).state={hostName:e.serverAddress,changed:!1},t.handleHostNameChange=t.handleHostNameChange.bind(er(t)),t.handleEditingFinished=t.handleEditingFinished.bind(er(t)),t}function sr(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function rr(e){return(rr=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function lr(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function cr(e,t){return(cr=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var dr,ur,pr=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&cr(e,t)}(hr,E.a.PureComponent),sr((dr=hr).prototype,[{key:"handleSubmit",value:function(e){e.preventDefault(),this.props.onUpdate({transport:this.state.transport,serverAddress:this.state.serverAddress})}},{key:"handleTransportSelected",value:function(e){this.setState({transport:e.currentTarget.value})}},{key:"handleServerAddressChange",value:function(e){this.setState({serverAddress:e})}},{key:"render",value:function(){var a={def:"default",ws:"websocket",lp:"long polling"},o=[],i=this;return["def","ws","lp"].map(function(e){var t="transport-"+e,n=a[e];o.push(E.a.createElement("li",{key:e},E.a.createElement("input",{type:"radio",id:t,name:"transport-select",value:e,checked:i.state.transport===e,onChange:i.handleTransportSelected}),E.a.createElement("label",{htmlFor:t},n)))}),E.a.createElement("form",{id:"settings-form",className:"panel-form",onSubmit:this.handleSubmit},E.a.createElement("div",{className:"panel-form-row"},E.a.createElement("label",{className:"small"},E.a.createElement(k.FormattedMessage,{id:"label_server_to_use",defaultMessage:"Server to use:"}))),E.a.createElement(or,{serverAddress:this.state.serverAddress,onServerAddressChange:this.handleServerAddressChange}),E.a.createElement("div",{className:"panel-form-row"},E.a.createElement("label",{className:"small"},E.a.createElement(k.FormattedMessage,{id:"label_wire_transport",defaultMessage:"Wire transport:"}))),E.a.createElement("div",{className:"panel-form-row"},E.a.createElement("ul",{className:"quoted"},o)),E.a.createElement("div",{className:"dialog-buttons"},E.a.createElement("button",{type:"submit",className:"blue"},E.a.createElement(k.FormattedMessage,{id:"button_update",defaultMessage:"Update"}))))}}]),ur&&sr(dr,ur),hr);function hr(e){var t,n,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,hr),n=this,(t=!(a=rr(hr).call(this,e))||"object"!=typeof a&&"function"!=typeof a?lr(n):a).state={transport:e.transport||"def",serverAddress:e.serverAddress},t.handleSubmit=t.handleSubmit.bind(lr(t)),t.handleTransportSelected=t.handleTransportSelected.bind(lr(t)),t.handleServerAddressChange=t.handleServerAddressChange.bind(lr(t)),t}function mr(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function fr(e){return(fr=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function gr(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function br(e,t){return(br=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var vr,_r,yr=Object(k.defineMessages)({phone:{id:"phone_dative",defaultMessage:"phone"},email:{id:"email_dative",defaultMessage:"email"}}),wr=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&br(e,t)}(Er,E.a.PureComponent),mr((vr=Er).prototype,[{key:"handleChange",value:function(e){this.setState({code:e.target.value})}},{key:"handleKeyPress",value:function(e){"Enter"===e.key?this.handleSubmit(e):"Escape"==e.key&&this.handleCancel(e)}},{key:"handleSubmit",value:function(e){e.preventDefault(),this.state.code&&this.state.code.trim()&&this.props.onSubmit(this.props.credMethod,this.state.code.trim())}},{key:"handleCancel",value:function(e){e.preventDefault(),this.props.onCancel()}},{key:"render",value:function(){var t=this,e=this.props.intl.formatMessage,n={email:e(yr.email),tel:e(yr.phone)}[this.props.credMethod]||this.props.credMethod;return E.a.createElement("div",{className:"panel-form"},E.a.createElement("div",{className:"panel-form-row"},E.a.createElement("label",{className:"small",htmlFor:"enter-confirmation-code"},E.a.createElement(k.FormattedMessage,{id:"enter_confirmation_code_prompt",defaultMessage:"Enter confirmation code sent to you by {method}:",values:{method:n}}))),E.a.createElement("div",{className:"panel-form-row"},E.a.createElement(k.FormattedMessage,{id:"numeric_confirmation_code_prompt",defaultMessage:"Numbers only"},function(e){return E.a.createElement("input",{type:"text",id:"enter-confirmation-code",placeholder:e,value:t.state.code,onChange:t.handleChange,onKeyPress:t.handleKeyPress,required:!0})})),E.a.createElement("div",{className:"dialog-buttons"},E.a.createElement("button",{className:"blue",onClick:this.handleSubmit},E.a.createElement(k.FormattedMessage,{id:"button_confirm",defaultMessage:"Confirm"})),E.a.createElement("button",{className:"white",onClick:this.handleCancel},E.a.createElement(k.FormattedMessage,{id:"button_cancel"}))))}}]),_r&&mr(vr,_r),Er);function Er(e){var t,n,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Er),n=this,(t=!(a=fr(Er).call(this,e))||"object"!=typeof a&&"function"!=typeof a?gr(n):a).state={code:e.credCode||""},t.handleChange=t.handleChange.bind(gr(t)),t.handleKeyPress=t.handleKeyPress.bind(gr(t)),t.handleSubmit=t.handleSubmit.bind(gr(t)),t.handleCancel=t.handleCancel.bind(gr(t)),t}var kr=Object(k.injectIntl)(wr);function Cr(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function Sr(e){return(Sr=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Mr(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Or(e,t){return(Or=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Tr,Pr,jr=Object(k.defineMessages)({login:{id:"sidepanel_title_login",defaultMessage:"Sign In"},register:{id:"sidepanel_title_register",defaultMessage:"Create Account"},settings:{id:"sidepanel_title_settings",defaultMessage:"Settings"},edit:{id:"sidepanel_title_edit_account",defaultMessage:"Edit Account"},newtpk:{id:"sidepanel_title_newtpk",defaultMessage:"Start New Chat"},cred:{id:"sidepanel_title_cred",defaultMessage:"Confirm Credentials"},reset:{id:"sidepanel_title_reset",defaultMessage:"Reset Password"},archive:{id:"sidepanel_title_archive",defaultMessage:"Archived Chats"}}),Nr=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Or(e,t)}(Ar,E.a.Component),Cr((Tr=Ar).prototype,[{key:"handleLoginRequested",value:function(e,t){this.props.onLoginRequest(e,t)}},{key:"render",value:function(){var e,t,n,a=this.props.intl.formatMessage,o=this.props.state||(this.props.myUserId?"contacts":"login");return t="contacts"==o?(e=this.props.title,!this.props.avatar||this.props.avatar):(e=a(jr[o]),!1),-1==["login","contacts"].indexOf(o)&&(n=this.props.onCancel),E.a.createElement("div",{id:"sidepanel",className:this.props.hideSelf?"nodisplay":null},E.a.createElement(yi,{state:o,title:e,avatar:t,myUserId:this.props.myUserId,onSignUp:this.props.onSignUp,onSettings:this.props.onSettings,onNewTopic:this.props.onNewTopic,onCancel:n}),E.a.createElement(Ot,{level:this.props.errorLevel,text:this.props.errorText,action:this.props.errorAction,actionText:this.props.errorActionText,onClearError:this.props.onError}),E.a.createElement(vo,{show:this.props.loadSpinnerVisible}),"login"===o?E.a.createElement(ss,{login:this.props.login,disabled:this.props.loginDisabled,onLogin:this.handleLoginRequested}):"register"===o?E.a.createElement(Vi,{onCreateAccount:this.props.onCreateAccount,onCancel:this.props.onCancel,onError:this.props.onError}):"settings"===o?E.a.createElement(pr,{transport:this.props.transport,serverAddress:this.props.serverAddress,onCancel:this.props.onCancel,onUpdate:this.props.onGlobalSettings}):"edit"===o?E.a.createElement(Zi,{tinode:this.props.tinode,myUserId:this.props.myUserId,messageSounds:this.props.messageSounds,desktopAlerts:this.props.desktopAlerts,desktopAlertsEnabled:this.props.desktopAlertsEnabled,onUpdateAccount:this.props.onUpdateAccount,onUpdateTags:this.props.onUpdateAccountTags,onTogglePushNotifications:this.props.onTogglePushNotifications,onToggleMessageSounds:this.props.onToggleMessageSounds,onCredAdd:this.props.onCredAdd,onCredDelete:this.props.onCredDelete,onCredConfirm:this.props.onCredConfirm,onLogout:this.props.onLogout,onCancel:this.props.onCancel,onError:this.props.onError}):"contacts"===o||"archive"==o?E.a.createElement(ji,{tinode:this.props.tinode,myUserId:this.props.myUserId,connected:this.props.connected,topicSelected:this.props.topicSelected,archive:"archive"==o,chatList:this.props.chatList,showContextMenu:this.props.showContextMenu,onTopicSelected:this.props.onTopicSelected,onShowArchive:this.props.onShowArchive}):"newtpk"===o?E.a.createElement(Bs,{searchResults:this.props.searchResults,onInitFind:this.props.onInitFind,onSearchContacts:this.props.onSearchContacts,onCreateTopic:this.props.onCreateTopic,onError:this.props.onError}):"cred"===o?E.a.createElement(kr,{credCode:this.props.credCode,credMethod:this.props.credMethod,onSubmit:this.props.onValidateCredentials,onCancel:this.props.onCancel,onError:this.props.onError}):"reset"===o?E.a.createElement(Qs,{onRequest:this.props.onPasswordResetRequest,onReset:this.props.onResetPassword}):null)}}]),Pr&&Cr(Tr,Pr),Ar);function Ar(e){var t,n,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Ar),n=this,(t=!(a=Sr(Ar).call(this,e))||"object"!=typeof a&&"function"!=typeof a?Mr(n):a).handleLoginRequested=t.handleLoginRequested.bind(Mr(t)),t}var Fr=Object(k.injectIntl)(Nr);function Ur(){return"object"==typeof window.location&&"https:"==window.location.protocol}function xr(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function Dr(e){return(Dr=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Rr(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Ir(e,t){return(Ir=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Lr,qr,Hr,Wr=new Audio("audio/msg.mp3"),Br=Object(k.defineMessages)({update_available:{id:"update_available",defaultMessage:'Update available. <a href="">Reload</a>.'},reconnect_countdown:{id:"reconnect_countdown",defaultMessage:"Disconnected. Reconnecting in {seconds}…"},reconnect_now:{id:"reconnect_now",defaultMessage:"Try now"}}),Vr=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Ir(e,t)}(Gr,E.a.Component),Hr=[{key:"tnSetup",value:function(e,t){var n=new C.a(b,e,"AQEAAAABAAD_rAp4DJh05a1HAwFT3A6K",t,Ur());return n.enableLogging(!0,!0),n}},{key:"prepareSearchableContacts",value:function(e,t){var n={},a=!0,o=!1,i=void 0;try{for(var s,r=e[Symbol.iterator]();!(a=(s=r.next()).done);a=!0){var l=s.value;"p2p"==C.a.topicType(l.topic)&&(n[l.topic]={user:l.topic,updated:l.updated,public:l.public,private:l.private,acs:l.acs})}}catch(e){o=!0,i=e}finally{try{a||null==r.return||r.return()}finally{if(o)throw i}}var c=!0,d=!1,u=void 0;try{for(var p,h=t[Symbol.iterator]();!(c=(p=h.next()).done);c=!0){var m=p.value;n[m.user]||(n[m.user]=m)}}catch(e){d=!0,u=e}finally{try{c||null==h.return||h.return()}finally{if(d)throw u}}return Object.values(n)}}],qr=[{key:"getBlankState",value:function(){var e,t=Di.getObject("settings")||{};return{connected:!1,ready:!1,transport:t.transport||null,serverAddress:t.serverAddress||(e=_,"object"==typeof window.location&&("file:"==window.location.protocol||"localhost"==window.location.hostname?e=v.local:window.location.hostname&&(e=window.location.hostname+(window.location.port?":"+window.location.port:""))),e),serverVersion:"no connection",messageSounds:!t.messageSoundsOff,desktopAlerts:t.desktopAlerts,desktopAlertsEnabled:(Ur()||"object"==typeof window.location&&"localhost"==window.location.hostname)&&void 0!==r&&"undefined"!=typeof navigator&&"undefined"!=typeof FIREBASE_INIT,firebaseToken:Di.getObject("firebase-token"),errorText:"",errorLevel:null,errorAction:void 0,errorActionText:null,sidePanelSelected:"login",sidePanelTitle:null,sidePanelAvatar:null,loadSpinnerVisible:!1,login:"",password:"",myUserId:null,liveConnection:navigator.onLine,topicSelected:"",topicSelectedOnline:!1,topicSelectedAcs:null,newTopicParams:null,loginDisabled:!1,displayMobile:window.innerWidth<=640,showInfoPanel:!1,mobilePanel:"sidepanel",contextMenuVisible:!1,contextMenuBounds:null,contextMenuClickAt:null,contextMenuParams:null,contextMenuItems:[],alertVisible:!1,alertParams:{},chatList:[],searchResults:[],searchableContacts:[],credMethod:void 0,credCode:void 0}}},{key:"componentDidMount",value:function(){var t=this;if(window.addEventListener("resize",this.handleResize),window.addEventListener("online",function(e){t.handleOnline(!0)}),window.addEventListener("offline",function(e){t.handleOnline(!1)}),window.addEventListener("hashchange",this.handleHashRoute),document.addEventListener("visibilitychange",this.handleVisibilityEvent),this.setState({viewportWidth:document.documentElement.clientWidth,viewportHeight:document.documentElement.clientHeight}),this.tinode=Gr.tnSetup(this.state.serverAddress,this.state.transport),this.tinode.onConnect=this.handleConnected,this.tinode.onDisconnect=this.handleDisconnect,this.tinode.onAutoreconnectIteration=this.handleAutoreconnectIteration,this.state.desktopAlertsEnabled)try{this.fbPush=r.initializeApp(FIREBASE_INIT,b).messaging(),this.fbPush.usePublicVapidKey(FIREBASE_INIT.messagingVapidKey),navigator.serviceWorker.register("/service-worker.js").then(function(e){t.checkForAppUpdate(e),t.fbPush.useServiceWorker(e),t.initDesktopAlerts(),t.state.desktopAlerts&&(t.state.firebaseToken?t.tinode.setDeviceToken(t.state.firebaseToken,!0):t.togglePushToken(!0))}).catch(function(e){console.log("Failed to register service worker:",e)})}catch(e){this.handleError("Failed to initialize push notifications","err"),console.log("Failed to initialize push notifications",e),this.setState({desktopAlertsEnabled:!1})}var e=Di.getObject("keep-logged-in")?Di.getObject("auth-token"):void 0,n=P.parseUrlHash(window.location.hash);e?(e.expires=new Date(e.expires),this.tinode.setAuthToken(e),this.tinode.connect().catch(function(e){t.handleError(e.message,"err")}),delete n.params.info,delete n.params.tab,n.path[0]="",P.navigateTo(P.composeUrlHash(n.path,n.params))):n.params.token||P.navigateTo(""),this.readTimer=null,this.readTimerCallback=null,this.handleHashRoute()}},{key:"componentWillUnmount",value:function(){window.removeEventListener("resize",this.handleResize),window.removeEventListener("hashchange",this.handleHashRoute),document.removeEventListener("visibilitychange",this.handleVisibilityEvent)}},{key:"handleResize",value:function(){var e=document.documentElement.clientWidth<=640;this.setState({viewportWidth:document.documentElement.clientWidth,viewportHeight:document.documentElement.clientHeight}),this.state.displayMobile!=e&&this.setState({displayMobile:e})}},{key:"checkForAppUpdate",value:function(t){var n=this,a=this.props.intl.formatHTMLMessage;t.onupdatefound=function(){var e=t.installing;e.onstatechange=function(){"installed"==e.state&&navigator.serviceWorker.controller&&n.handleError(a(Br.update_available),"info")}}}},{key:"handleHashRoute",value:function(){var e=P.parseUrlHash(window.location.hash);e.path&&0<e.path.length?(["register","settings","edit","cred","reset","newtpk","archive","contacts",""].includes(e.path[0])?this.setState({sidePanelSelected:e.path[0]}):console.log("Unknown sidepanel view",e.path[0]),1<e.path.length&&e.path[1]!=this.state.topicSelected&&this.setState({topicSelected:C.a.topicType(e.path[1])?e.path[1]:null})):this.setState({sidePanelSelected:""}),e.params.method&&this.setState({credMethod:e.params.method}),e.params.code&&this.setState({credCode:e.params.code}),this.setState({showInfoPanel:e.params.info,newTopicTabSelected:e.params.tab})}},{key:"handleOnline",value:function(e){e?this.handleError("",null):this.handleError("No connection","warn"),this.setState({liveConnection:e})}},{key:"handleAppVisibility",value:function(e,t){clearTimeout(this.readTimer),this.readTimerCallback=t,this.readTimer=e&&t?setTimeout(t,1e3):null}},{key:"handleReadTimer",value:function(e){this.handleAppVisibility(!document.hidden,e)}},{key:"handleVisibilityEvent",value:function(){this.handleAppVisibility(!document.hidden,this.readTimerCallback)}},{key:"handleError",value:function(e,t,n,a){this.setState({errorText:e,errorLevel:t,errorAction:n,errorActionText:a})}},{key:"handleLoginRequest",value:function(e,t){var n=this;this.setState({loginDisabled:!0,login:e,password:t,loadSpinnerVisible:!0}),this.handleError("",null),this.tinode.isConnected()?this.doLogin(e,t,{meth:this.state.credMethod,resp:this.state.credCode}):this.tinode.connect().catch(function(e){n.setState({loginDisabled:!1}),n.handleError(e.message,"err")})}},{key:"handleConnected",value:function(){var e=this.tinode.getServerInfo();this.setState({serverVersion:e.ver+" "+(e.build?e.build:"none")+"; "}),this.doLogin(this.state.login,this.state.password,{meth:this.state.credMethod,resp:this.state.credCode})}},{key:"handleAutoreconnectIteration",value:function(e,t){var o=this;if(clearInterval(this.reconnectCountdown),e<0)this.handleError();else if(t)t.then(function(){o.handleError()}).catch(function(e){o.handleError(e.message,"err")});else{var i=this.props.intl.formatHTMLMessage,s=e/1e3;s|=s,this.reconnectCountdown=setInterval(function(){var e,t,n,a=99<s?(e=s,t=Math.floor(e/60),n=(n=e%60)<10?"0".concat(n):n,"".concat(t,":").concat(n)):s;o.handleError(i(Br.reconnect_countdown,{seconds:a}),"warn",function(){clearInterval(o.reconnectCountdown),o.tinode.reconnect()},i(Br.reconnect_now)),--s},1e3)}}},{key:"handleDisconnect",value:function(e){this.setState({connected:!1,ready:!1,topicSelectedOnline:!1,errorText:e&&e.message?e.message:"Disconnected",errorLevel:e&&e.message?"err":"warn",loginDisabled:!1,contextMenuVisible:!1,serverVersion:"no connection"})}},{key:"doLogin",value:function(e,t,n){var a=this;if(this.tinode.isAuthenticated())P.navigateTo("");else{n=C.a.credential(n);var o=null,i=this.tinode.getAuthToken();e&&t?(this.setState({password:null}),o=this.tinode.loginBasic(e,t,n)):i&&(o=this.tinode.loginToken(i.token,n)),o?o.then(function(e){300<=e.code&&"validate credentials"===e.text?(a.setState({loadSpinnerVisible:!1}),n&&a.handleError("Code does not match","warn"),a.handleCredentialsRequest(e.params)):a.handleLoginSuccessful()}).catch(function(e){a.setState({loginDisabled:!1,credMethod:void 0,credCode:void 0,loadSpinnerVisible:!1}),a.handleError(e.message,"err"),localStorage.removeItem("auth-token"),P.navigateTo("")}):(P.navigateTo(""),this.setState({loginDisabled:!1}))}}},{key:"handleCredentialsRequest",value:function(e){var t=P.parseUrlHash(window.location.hash);t.path[0]="cred",t.params.method=e.cred[0],P.navigateTo(P.composeUrlHash(t.path,t.params))}},{key:"handleLoginSuccessful",value:function(){var t=this;this.handleError("",null),Di.getObject("keep-logged-in")&&Di.setObject("auth-token",this.tinode.getAuthToken());var e=this.tinode.getMeTopic();e.onMetaDesc=this.tnMeMetaDesc,e.onContactUpdate=this.tnMeContactUpdate,e.onSubsUpdated=this.tnMeSubsUpdated,this.setState({connected:!0,credMethod:void 0,credCode:void 0,myUserId:this.tinode.getCurrentUserID()}),e.subscribe(e.startMetaQuery().withLaterSub().withDesc().withTags().withCred().build()).catch(function(e){t.tinode.disconnect(),localStorage.removeItem("auth-token"),t.handleError(e.message,"err"),P.navigateTo("")}).finally(function(){t.setState({loadSpinnerVisible:!1})}),P.navigateTo(P.setUrlSidePanel(window.location.hash,"contacts"))}},{key:"tnMeMetaDesc",value:function(e){e&&e.public&&this.setState({sidePanelTitle:e.public.fn,sidePanelAvatar:$(e.public.photo)})}},{key:"tnMeContactUpdate",value:function(e,t){if("on"==e||"off"==e)this.resetContactList(),this.state.topicSelected==t.topic&&this.setState({topicSelectedOnline:"on"==e});else if("read"==e)this.resetContactList();else if("msg"==e){var n=this.tinode.getTopic(t.topic),a=n&&n.isArchived();0<t.unread&&this.state.messageSounds&&!a&&(!document.hidden&&this.state.topicSelected==t.topic||Wr.play()),this.resetContactList()}else"recv"==e||("gone"==e||"unsub"==e?(this.state.topicSelected==t.topic&&this.handleTopicSelected(null),this.resetContactList()):"acs"==e?this.state.topicSelected==t.topic&&this.setState({topicSelectedAcs:t.acs}):"del"==e||"upd"==e||console.log("Unsupported (yet) presence update:"+e+" in: "+t.topic))}},{key:"tnMeSubsUpdated",value:function(){this.resetContactList()}},{key:"resetContactList",value:function(){var t=this,n={chatList:[]};this.state.ready||(n.ready=!0),this.tinode.getMeTopic().contacts(function(e){n.chatList.push(e),t.state.topicSelected==e.topic&&(n.topicSelectedOnline=e.online,n.topicSelectedAcs=e.acs)}),n.searchableContacts=Gr.prepareSearchableContacts(n.chatList,this.state.searchResults),this.setState(n)}},{key:"tnData",value:function(e){var t=this,n=this.tinode.getTopic(e.topic);n.msgStatus(e)>=C.a.MESSAGE_STATUS_SENT&&e.from!=this.state.myUserId&&(clearTimeout(this.receivedTimer),this.receivedTimer=setTimeout(function(){t.receivedTimer=void 0,n.noteRecv(e.seq)},500))}},{key:"tnInitFind",value:function(){var t=this,e=this.tinode.getFndTopic();e.onSubsUpdated=this.tnFndSubsUpdated,e.isSubscribed()?this.tnFndSubsUpdated():e.subscribe(e.startMetaQuery().withSub().build()).catch(function(e){t.handleError(e.message,"err")})}},{key:"tnFndSubsUpdated",value:function(){var t=[];this.tinode.getFndTopic().contacts(function(e){t.push(e)}),this.setState({searchResults:t,searchableContacts:Gr.prepareSearchableContacts(this.state.chatList,t)})}},{key:"handleSearchContacts",value:function(e){var t=this,n=this.tinode.getFndTopic();n.setMeta({desc:{public:e}}).then(function(e){return n.getMeta(n.startMetaQuery().withSub().build())}).catch(function(e){t.handleError(e.message,"err")})}},{key:"handleTopicSelected",value:function(e,t,n,a){this.state.newTopicParams&&this.state.newTopicParams._topicName!=e&&this.setState({newTopicParams:null}),e?(this.setState({errorText:"",errorLevel:null,mobilePanel:"topic-view",showInfoPanel:!1}),this.state.topicSelected!=e&&(this.setState({topicSelectedOnline:n,topicSelectedAcs:a}),P.navigateTo(P.setUrlTopic("",e)))):(this.setState({errorText:"",errorLevel:null,mobilePanel:"sidepanel",topicSelectedOnline:!1,topicSelectedAcs:null,showInfoPanel:!1}),P.navigateTo(P.setUrlTopic("",null)))}},{key:"handleHideMessagesView",value:function(){this.setState({mobilePanel:"sidepanel"}),P.navigateTo(P.setUrlTopic(window.location.hash,null))}},{key:"handleSendMessage",value:function(e,t,n){var a=this,o=this.tinode.getTopic(this.state.topicSelected);(e=o.createMessage(e,!1))._uploader=n,o.isSubscribed()||(t=(t=t||Promise.resolve()).then(function(){return o.subscribe()})),t=t&&t.catch(function(e){a.handleError(e.message,"err")}),o.publishDraft(e,t).then(function(e){if(o.isArchived())return o.archive(!1)}).catch(function(e){a.handleError(e.message,"err")})}},{key:"handleNewChatInvitation",value:function(t,e){var n=this,a=this.tinode.getTopic(t),o=null;switch(e){case"accept":var i=a.getAccessMode().getGiven();o=a.setMeta({sub:{mode:i}}),"p2p"==a.getType()&&(o=o.then(function(e){a.setMeta({sub:{user:t,mode:i}})}));break;case"delete":o=a.delTopic();break;case"block":var s=a.getAccessMode().updateWant("-JP").getWant();o=a.setMeta({sub:{mode:s}}).then(function(e){return n.handleTopicSelected(null)});break;default:console.log("Unknown invitation action",'"'+e+'""')}null!=o&&o.catch(function(e){n.handleError(e.message,"err")})}},{key:"handleNewAccount",value:function(){P.navigateTo(P.setUrlSidePanel(window.location.hash,"register"))}},{key:"handleNewAccountRequest",value:function(e,t,n,a,o){var i=this;this.tinode.connect(this.state.serverAddress).then(function(){return i.tinode.createAccountBasic(e,t,{public:n,tags:o,cred:C.a.credential(a)})}).then(function(e){300<=e.code&&"validate credentials"==e.text?i.handleCredentialsRequest(e.params):i.handleLoginSuccessful(i)}).catch(function(e){i.handleError(e.message,"err")})}},{key:"handleUpdateAccountRequest",value:function(e,t,n){var a=this;if(t||n){var o={};t&&(o.public=t),n&&(o.defacs=n),this.tinode.getMeTopic().setMeta({desc:o}).catch(function(e){a.handleError(e.message,"err")})}e&&this.tinode.updateAccountBasic(null,this.tinode.getCurrentLogin(),e).catch(function(e){a.handleError(e.message,"err")})}},{key:"handleUpdateAccountTagsRequest",value:function(e){var t=this;this.tinode.getMeTopic().setMeta({tags:e}).catch(function(e){t.handleError(e.message,"err")})}},{key:"handleSettings",value:function(){P.navigateTo(P.setUrlSidePanel(window.location.hash,this.state.myUserId?"edit":"settings"))}},{key:"handleGlobalSettings",value:function(e){var t=e.serverAddress||this.state.serverAddress,n=e.transport||this.state.transport;this.tinode&&(this.tinode.onDisconnect=void 0,this.tinode.disconnect()),this.tinode=Gr.tnSetup(t,n),this.tinode.onConnect=this.handleConnected,this.tinode.onDisconnect=this.handleDisconnect,this.setState({serverAddress:t,transport:n}),Di.setObject("settings",{serverAddress:t,transport:n}),P.navigateTo(P.setUrlSidePanel(window.location.hash,""))}},{key:"handleShowArchive",value:function(){P.navigateTo(P.setUrlSidePanel(window.location.hash,this.state.myUserId?"archive":""))}},{key:"initDesktopAlerts",value:function(){var e=this;this.fbPush.onTokenRefresh(function(){e.requestPushToken()}),this.fbPush.onMessage(function(e){})}},{key:"togglePushToken",value:function(e){var t=this;e?this.state.firebaseToken?(this.setState({desktopAlerts:!0}),Di.updateObject("settings",{desktopAlerts:!0})):this.fbPush.requestPermission().then(function(){t.requestPushToken()}).catch(function(e){t.handleError(e.message,"err"),t.setState({desktopAlerts:!1,firebaseToken:null}),Di.updateObject("settings",{desktopAlerts:!1}),console.log("Failed to get permission to notify.",e)}):this.state.firebaseToken?this.fbPush.deleteToken(this.state.firebaseToken).catch(function(e){console.log("Unable to delete token.",e)}).finally(function(){Di.updateObject("settings",{desktopAlerts:!1}),localStorage.removeItem("firebase-token"),t.setState({desktopAlerts:!1,firebaseToken:null})}):(this.setState({desktopAlerts:!1,firebaseToken:null}),Di.updateObject("settings",{desktopAlerts:!1}))}},{key:"requestPushToken",value:function(){var t=this;this.fbPush.getToken().then(function(e){e!=t.state.firebaseToken&&(t.tinode.setDeviceToken(e,!0),Di.setObject("firebase-token",e)),t.setState({firebaseToken:e,desktopAlerts:!0}),Di.updateObject("settings",{desktopAlerts:!0})}).catch(function(e){t.handleError(e.message,"err"),console.log("Failed to retrieve firebase token",e)})}},{key:"handleToggleMessageSounds",value:function(e){this.setState({messageSounds:e}),Di.updateObject("settings",{messageSoundsOff:!e})}},{key:"handleCredAdd",value:function(e,t){var n=this;this.tinode.getMeTopic().setMeta({cred:{meth:e,val:t}}).catch(function(e){n.handleError(e.message,"err")})}},{key:"handleCredDelete",value:function(e,t){var n=this;this.tinode.getMeTopic().delCredential(e,t).catch(function(e){n.handleError(e.message,"err")})}},{key:"handleCredConfirm",value:function(e){this.handleCredentialsRequest({cred:[e]})}},{key:"handleSidepanelCancel",value:function(){var e=P.parseUrlHash(window.location.hash);e.path[0]=this.state.myUserId?"contacts":"",e.params&&(delete e.params.code,delete e.params.method,delete e.params.tab),P.navigateTo(P.composeUrlHash(e.path,e.params)),this.setState({errorText:"",errorLevel:null})}},{key:"handleNewTopic",value:function(){P.navigateTo(P.setUrlSidePanel(window.location.hash,"newtpk"))}},{key:"handleNewTopicRequest",value:function(e,t,n,a){var o=this,i=e||this.tinode.newGroupTopicName(),s={_topicName:i};e?(s.sub={mode:y},s.desc={defacs:{auth:y}}):(s.desc={public:t,private:{comment:n}},s.tags=a),this.setState({newTopicParams:s},function(){o.handleTopicSelected(i)})}},{key:"handleNewTopicCreated",value:function(e,t){this.state.topicSelected==e&&e!=t&&this.setState({topicSelected:t},function(){P.navigateTo(P.setUrlTopic("",t))})}},{key:"handleTopicUpdateRequest",value:function(e,t,n,a){var o=this,i=this.tinode.getTopic(e);if(i){var s={};t&&(s.public=t),n&&(s.private=n===C.a.DEL_CHAR?C.a.DEL_CHAR:{comment:n}),a&&(s.defacs=a),i.setMeta({desc:s}).catch(function(e){o.handleError(e.message,"err")})}}},{key:"handleChangePermissions",value:function(e,t,n){var a=this,o=this.tinode.getTopic(e);if(o){var i=o.getAccessMode();t=n?(i.updateGiven(t),i.getGiven()):(i.updateWant(t),i.getWant()),o.setMeta({sub:{user:n,mode:t}}).catch(function(e){a.handleError(e.message,"err")})}}},{key:"handleTagsUpdated",value:function(e,t){var n=this,a=this.tinode.getTopic(e);a&&a.setMeta({tags:t}).catch(function(e){n.handleError(e.message,"err")})}},{key:"handleLogout",value:function(){In(0),localStorage.removeItem("auth-token"),localStorage.removeItem("firebase-token"),localStorage.removeItem("settings"),this.state.firebaseToken&&this.fbPush.deleteToken(this.state.firebaseToken),this.tinode&&(this.tinode.onDisconnect=void 0,this.tinode.disconnect()),this.setState(this.getBlankState()),this.tinode=Gr.tnSetup(this.state.serverAddress,this.state.transport),this.tinode.onConnect=this.handleConnected,this.tinode.onDisconnect=this.handleDisconnect,P.navigateTo("")}},{key:"handleDeleteMessagesRequest",value:function(e){var t=this,n=this.tinode.getTopic(e);n&&n.delMessagesAll(!0).catch(function(e){t.handleError(e.message,"err")})}},{key:"handleLeaveUnsubRequest",value:function(e){var t=this,n=this.tinode.getTopic(e);n&&n.leave(!0).then(function(e){P.navigateTo(P.setUrlTopic(window.location.hash,""))}).catch(function(e){t.handleError(e.message,"err")})}},{key:"handleBlockTopicRequest",value:function(e){var t=this,n=this.tinode.getTopic(e);n&&n.updateMode(null,"-JP").then(function(e){P.navigateTo(P.setUrlTopic(window.location.hash,""))}).catch(function(e){t.handleError(e.message,"err")})}},{key:"handleReportTopic",value:function(e){var t=this,n=this.tinode.getTopic(e);n&&(this.tinode.publish(C.a.TOPIC_SYS,C.a.Drafty.attachJSON(null,{action:"report",target:e})),n.updateMode(null,"-JP").then(function(e){P.navigateTo(P.setUrlTopic(window.location.hash,""))}).catch(function(e){t.handleError(e.message,"err")}))}},{key:"handleShowContextMenu",value:function(e,t){this.setState({contextMenuVisible:!0,contextMenuClickAt:{x:e.x,y:e.y},contextMenuParams:e,contextMenuItems:t||this.defaultTopicContextMenu(e.topicName),contextMenuBounds:i.a.findDOMNode(this).getBoundingClientRect()})}},{key:"defaultTopicContextMenu",value:function(e){var t=this.tinode.getTopic(e),n=this.props.intl.formatMessage,a=!1,o=!1,i=!1,s=!1,r=!1,l=!1;if(t){s=t.isSubscribed(),l=t.isArchived();var c=t.getAccessMode();c&&(a=c.isMuted(),o=!c.isJoiner(),i=!c.isJoiner("want"),r=c.isDeleter())}return[s?{title:n({id:"menu_item_info"}),handler:this.handleShowInfoView}:null,s?"messages_clear":null,s&&r?"messages_clear_hard":null,a?o?null:"topic_unmute":"topic_mute",i?"topic_unblock":"topic_block",l?null:"topic_archive","topic_delete"]}},{key:"handleHideContextMenu",value:function(){this.setState({contextMenuVisible:!1,contextMenuClickAt:null,contextMenuParams:null,contextMenuBounds:null})}},{key:"handleContextMenuAction",value:function(e,t,n){var a=this;"topic_archive"==e&&t&&n.topicName&&n.topicName==this.state.topicSelected&&t.then(function(){a.handleTopicSelected(null)})}},{key:"handleShowAlert",value:function(e,t,n,a,o,i){this.setState({alertVisible:!0,alertParams:{title:e,content:t,onConfirm:n,confirm:a,onReject:o,reject:i}})}},{key:"handleShowInfoView",value:function(){P.navigateTo(P.addUrlParam(window.location.hash,"info",!0)),this.setState({showInfoPanel:!0})}},{key:"handleHideInfoView",value:function(){P.navigateTo(P.removeUrlParam(window.location.hash,"info")),this.setState({showInfoPanel:!1})}},{key:"handleMemberUpdateRequest",value:function(e,t,n){var a=this;if(e){var o=this.tinode.getTopic(e);o&&(t&&0<t.length&&t.map(function(e){o.invite(e,null).catch(function(e){a.handleError(e.message,"err")})}),n&&0<n.length&&n.map(function(e){o.delSubscription(e).catch(function(e){a.handleError(e.message,"err")})}))}}},{key:"handleValidateCredentialsRequest",value:function(e,t){var n=this;this.tinode.isAuthenticated()?this.tinode.getMeTopic().setMeta({cred:{meth:e,resp:t}}).then(function(){P.navigateTo("")}).catch(function(e){n.handleError(e.message,"err")}):(this.setState({credMethod:e,credCode:t}),this.doLogin(null,null,{meth:e,resp:t}))}},{key:"handlePasswordResetRequest",value:function(e,t){var n=this;this.tinode.connect().then(function(){return n.tinode.requestResetAuthSecret("basic",e,t)}).catch(function(e){n.handleError(e.message,"err")})}},{key:"handleResetPassword",value:function(e,t,n){var a=this;(n=function(t){if(t){t=t.replace(/-/g,"+").replace(/_/g,"/");try{t=btoa(atob(t))}catch(e){console.log("Failed to base64 re-encode string.",e),t=null}}return t}(n))?this.tinode.connect().then(function(){return a.tinode.updateAccountBasic(null,null,t,{token:n})}).catch(function(e){a.handleError(e.message,"err")}):this.handleError("Invalid security token","err")}},{key:"render",value:function(){var t=this;return E.a.createElement("div",{id:"app-container"},this.state.contextMenuVisible?E.a.createElement(q,{tinode:this.tinode,bounds:this.state.contextMenuBounds,clickAt:this.state.contextMenuClickAt,params:this.state.contextMenuParams,items:this.state.contextMenuItems,hide:this.handleHideContextMenu,onShowAlert:this.handleShowAlert,onAction:this.handleContextMenuAction,onTopicRemoved:function(e){e==t.state.topicSelected&&t.handleTopicSelected(null)},onError:this.handleError}):null,E.a.createElement(f,{visible:this.state.alertVisible,title:this.state.alertParams.title,content:this.state.alertParams.content,onReject:this.state.alertParams.onReject?function(){t.setState({alertVisible:!1})}:null,reject:this.state.alertParams.reject,onConfirm:function(){t.setState({alertVisible:!1}),t.state.alertParams.onConfirm()},confirm:this.state.alertParams.confirm}),E.a.createElement(Fr,{tinode:this.tinode,connected:this.state.connected,displayMobile:this.state.displayMobile,hideSelf:this.state.displayMobile&&"sidepanel"!==this.state.mobilePanel,state:this.state.sidePanelSelected,title:this.state.sidePanelTitle,avatar:this.state.sidePanelAvatar,login:this.state.login,myUserId:this.state.myUserId,loginDisabled:this.state.loginDisabled,loadSpinnerVisible:this.state.loadSpinnerVisible,errorText:this.state.errorText,errorLevel:this.state.errorLevel,errorAction:this.state.errorAction,errorActionText:this.state.errorActionText,topicSelected:this.state.topicSelected,chatList:this.state.chatList,credMethod:this.state.credMethod,credCode:this.state.credCode,transport:this.state.transport,messageSounds:this.state.messageSounds,desktopAlerts:this.state.desktopAlerts,desktopAlertsEnabled:this.state.desktopAlertsEnabled,serverAddress:this.state.serverAddress,onGlobalSettings:this.handleGlobalSettings,onSignUp:this.handleNewAccount,onSettings:this.handleSettings,onLoginRequest:this.handleLoginRequest,onCreateAccount:this.handleNewAccountRequest,onUpdateAccount:this.handleUpdateAccountRequest,onUpdateAccountTags:this.handleUpdateAccountTagsRequest,onTogglePushNotifications:this.togglePushToken,onToggleMessageSounds:this.handleToggleMessageSounds,onCredAdd:this.handleCredAdd,onCredDelete:this.handleCredDelete,onCredConfirm:this.handleCredConfirm,onTopicSelected:this.handleTopicSelected,onCreateTopic:this.handleNewTopicRequest,onNewTopic:this.handleNewTopic,onLogout:this.handleLogout,onCancel:this.handleSidepanelCancel,onError:this.handleError,onValidateCredentials:this.handleValidateCredentialsRequest,onPasswordResetRequest:this.handlePasswordResetRequest,onResetPassword:this.handleResetPassword,onShowArchive:this.handleShowArchive,onInitFind:this.tnInitFind,searchResults:this.state.searchResults,onSearchContacts:this.handleSearchContacts,showContextMenu:this.handleShowContextMenu}),E.a.createElement(Xo,{tinode:this.tinode,connected:this.state.connected,ready:this.state.ready,online:this.state.topicSelectedOnline,acs:this.state.topicSelectedAcs,displayMobile:this.state.displayMobile,viewportWidth:this.state.viewportWidth,viewportHeight:this.state.viewportHeight,hideSelf:this.state.displayMobile&&("topic-view"!==this.state.mobilePanel||this.state.showInfoPanel),topic:this.state.topicSelected,myUserId:this.state.myUserId,serverVersion:this.state.serverVersion,serverAddress:this.state.serverAddress,errorText:this.state.errorText,errorLevel:this.state.errorLevel,errorAction:this.state.errorAction,errorActionText:this.state.errorActionText,newTopicParams:this.state.newTopicParams,onHideMessagesView:this.handleHideMessagesView,onData:this.tnData,onError:this.handleError,onNewTopicCreated:this.handleNewTopicCreated,readTimerHandler:this.handleReadTimer,showContextMenu:this.handleShowContextMenu,onChangePermissions:this.handleChangePermissions,onNewChat:this.handleNewChatInvitation,sendMessage:this.handleSendMessage}),this.state.showInfoPanel?E.a.createElement(ia,{tinode:this.tinode,connected:this.state.connected,displayMobile:this.state.displayMobile,topic:this.state.topicSelected,searchableContacts:this.state.searchableContacts,myUserId:this.state.myUserId,errorText:this.state.errorText,errorLevel:this.state.errorLevel,errorAction:this.state.errorAction,errorActionText:this.state.errorActionText,onTopicDescUpdate:this.handleTopicUpdateRequest,onCancel:this.handleHideInfoView,onShowAlert:this.handleShowAlert,onChangePermissions:this.handleChangePermissions,onMemberUpdateRequest:this.handleMemberUpdateRequest,onDeleteMessages:this.handleDeleteMessagesRequest,onLeaveTopic:this.handleLeaveUnsubRequest,onBlockTopic:this.handleBlockTopicRequest,onReportTopic:this.handleReportTopic,onAddMember:this.handleManageGroupMembers,onTopicTagsUpdate:this.handleTagsUpdated,onInitFind:this.tnInitFind,onError:this.handleError,showContextMenu:this.handleShowContextMenu}):null)}}],xr((Lr=Gr).prototype,qr),Hr&&xr(Lr,Hr),Gr);function Gr(e){var t,n,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Gr),n=this,(t=!(a=Dr(Gr).call(this,e))||"object"!=typeof a&&"function"!=typeof a?Rr(n):a).state=t.getBlankState(),t.handleResize=t.handleResize.bind(Rr(t)),t.handleHashRoute=t.handleHashRoute.bind(Rr(t)),t.handleOnline=t.handleOnline.bind(Rr(t)),t.checkForAppUpdate=t.checkForAppUpdate.bind(Rr(t)),t.handleAppVisibility=t.handleAppVisibility.bind(Rr(t)),t.handleReadTimer=t.handleReadTimer.bind(Rr(t)),t.handleVisibilityEvent=t.handleVisibilityEvent.bind(Rr(t)),t.handleError=t.handleError.bind(Rr(t)),t.handleLoginRequest=t.handleLoginRequest.bind(Rr(t)),t.handleConnected=t.handleConnected.bind(Rr(t)),t.handleAutoreconnectIteration=t.handleAutoreconnectIteration.bind(Rr(t)),t.doLogin=t.doLogin.bind(Rr(t)),t.handleCredentialsRequest=t.handleCredentialsRequest.bind(Rr(t)),t.handleLoginSuccessful=t.handleLoginSuccessful.bind(Rr(t)),t.handleDisconnect=t.handleDisconnect.bind(Rr(t)),t.tnMeMetaDesc=t.tnMeMetaDesc.bind(Rr(t)),t.tnMeContactUpdate=t.tnMeContactUpdate.bind(Rr(t)),t.tnMeSubsUpdated=t.tnMeSubsUpdated.bind(Rr(t)),t.resetContactList=t.resetContactList.bind(Rr(t)),t.tnData=t.tnData.bind(Rr(t)),t.tnInitFind=t.tnInitFind.bind(Rr(t)),t.tnFndSubsUpdated=t.tnFndSubsUpdated.bind(Rr(t)),t.handleSearchContacts=t.handleSearchContacts.bind(Rr(t)),t.handleTopicSelected=t.handleTopicSelected.bind(Rr(t)),t.handleHideMessagesView=t.handleHideMessagesView.bind(Rr(t)),t.handleSendMessage=t.handleSendMessage.bind(Rr(t)),t.handleNewChatInvitation=t.handleNewChatInvitation.bind(Rr(t)),t.handleNewAccount=t.handleNewAccount.bind(Rr(t)),t.handleNewAccountRequest=t.handleNewAccountRequest.bind(Rr(t)),t.handleUpdateAccountRequest=t.handleUpdateAccountRequest.bind(Rr(t)),t.handleUpdateAccountTagsRequest=t.handleUpdateAccountTagsRequest.bind(Rr(t)),t.handleSettings=t.handleSettings.bind(Rr(t)),t.handleGlobalSettings=t.handleGlobalSettings.bind(Rr(t)),t.handleShowArchive=t.handleShowArchive.bind(Rr(t)),t.handleToggleMessageSounds=t.handleToggleMessageSounds.bind(Rr(t)),t.handleCredAdd=t.handleCredAdd.bind(Rr(t)),t.handleCredDelete=t.handleCredDelete.bind(Rr(t)),t.handleCredConfirm=t.handleCredConfirm.bind(Rr(t)),t.initDesktopAlerts=t.initDesktopAlerts.bind(Rr(t)),t.togglePushToken=t.togglePushToken.bind(Rr(t)),t.requestPushToken=t.requestPushToken.bind(Rr(t)),t.handleSidepanelCancel=t.handleSidepanelCancel.bind(Rr(t)),t.handleNewTopic=t.handleNewTopic.bind(Rr(t)),t.handleNewTopicRequest=t.handleNewTopicRequest.bind(Rr(t)),t.handleNewTopicCreated=t.handleNewTopicCreated.bind(Rr(t)),t.handleTopicUpdateRequest=t.handleTopicUpdateRequest.bind(Rr(t)),t.handleChangePermissions=t.handleChangePermissions.bind(Rr(t)),t.handleTagsUpdated=t.handleTagsUpdated.bind(Rr(t)),t.handleLogout=t.handleLogout.bind(Rr(t)),t.handleDeleteMessagesRequest=t.handleDeleteMessagesRequest.bind(Rr(t)),t.handleLeaveUnsubRequest=t.handleLeaveUnsubRequest.bind(Rr(t)),t.handleBlockTopicRequest=t.handleBlockTopicRequest.bind(Rr(t)),t.handleReportTopic=t.handleReportTopic.bind(Rr(t)),t.handleShowContextMenu=t.handleShowContextMenu.bind(Rr(t)),t.defaultTopicContextMenu=t.defaultTopicContextMenu.bind(Rr(t)),t.handleHideContextMenu=t.handleHideContextMenu.bind(Rr(t)),t.handleShowAlert=t.handleShowAlert.bind(Rr(t)),t.handleShowInfoView=t.handleShowInfoView.bind(Rr(t)),t.handleHideInfoView=t.handleHideInfoView.bind(Rr(t)),t.handleMemberUpdateRequest=t.handleMemberUpdateRequest.bind(Rr(t)),t.handleValidateCredentialsRequest=t.handleValidateCredentialsRequest.bind(Rr(t)),t.handlePasswordResetRequest=t.handlePasswordResetRequest.bind(Rr(t)),t.handleResetPassword=t.handleResetPassword.bind(Rr(t)),t.handleContextMenuAction=t.handleContextMenuAction.bind(Rr(t)),t}var Kr=Object(k.injectIntl)(Vr),zr=P.parseUrlHash(window.location.hash).params,Jr=zr&&zr.hl||navigator.languages&&navigator.languages[0]||navigator.language||navigator.userLanguage||"en",Yr=Jr.toLowerCase().split(/[-_]/)[0],Qr=s[Jr]||s[Yr]||s.en;i.a.render(E.a.createElement(k.IntlProvider,{locale:Jr,messages:Qr,textComponent:E.a.Fragment},E.a.createElement(Kr,null)),document.getElementById("mountPoint"))}]);
//# sourceMappingURL=index.prod.js.map