2 lines
223 KiB
JavaScript
2 lines
223 KiB
JavaScript
!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","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":"Ничего не найдено"},"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":"检举垃圾邮件"}}')},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),C=n(1),r=n(4),s=n(5),l=(n(6),n(2)),k=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,g=(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)}(b,E.a.PureComponent),h=b,(m=[{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(C.FormattedMessage,{id:"button_cancel"})):null,E.a.createElement("button",{className:"blue",onClick:this.props.onConfirm},this.props.confirm||E.a.createElement(C.FormattedMessage,{id:"button_ok"}))))):null}}])&&c(h.prototype,m),void(f&&c(h,f)),b);function b(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,b),d(this,u(b).apply(this,arguments))}var v="TinodeWeb/0.16.2",_={hosted:"web.tinode.co",local:"localhost:6060"},y=_.hosted,w="JRWPS",S=195840;function M(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 O,T,P,j=(O=N,P=[{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)}}],(T=null)&&M(O.prototype,T),void(P&&M(O,P)),N);function N(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,N)}function A(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 U(e){return(U=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 x(e,t){return(x=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var D,R,I,L=Object(C.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"}}),q=(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&&x(e,t)}(H,E.a.Component),D=H,(R=[{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)}}])&&A(D.prototype,R),void(I&&A(D,I)),H);function H(a){var o;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,H),o=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?F(e):t}(this,U(H).call(this,a));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(L.info),handler:null},messages_clear:{id:"messages_clear",title:i(L.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(L.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(L.delete),handler:function(e,t){return o.deleteMessages(!1,!1,e,t)}},message_delete_hard:{id:"message_delete_hard",title:i(L.delete_for_all),handler:function(e,t){return o.deleteMessages(!1,!0,e,t)}},topic_unmute:{id:"topic_unmute",title:i(L.unmute),handler:o.topicPermissionSetter.bind(F(o),"+P")},topic_mute:{id:"topic_mute",title:i(L.mute),handler:o.topicPermissionSetter.bind(F(o),"-P")},topic_unblock:{id:"topic_unblock",title:i(L.unblock),handler:o.topicPermissionSetter.bind(F(o),"+JP")},topic_block:{id:"topic_block",title:i(L.block),handler:function(t,e){return a.onShowAlert(i({id:"menu_item_block"}),i(L.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(L.topic_delete),handler:function(t,n){return a.onShowAlert(i({id:"menu_item_delete_topic"}),i(L.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(L.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(L.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(L.mute),handler:o.topicPermissionSetter.bind(F(o),"-P")},member_unmute:{id:"member_unmute",title:i(L.unmute),handler:o.topicPermissionSetter.bind(F(o),"+P")},member_block:{id:"member_block",title:i(L.block),handler:o.topicPermissionSetter.bind(F(o),"-J")},member_unblock:{id:"member_unblock",title:i(L.unblock),handler:o.topicPermissionSetter.bind(F(o),"+J")}},o}var W=Object(C.injectIntl)(q);function B(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 V(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 G(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 K(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 z(e){return(z=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function J(e,t){return(J=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Y,Q,X,Z=(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&&J(e,t)}($,E.a.PureComponent),Y=$,(Q=[{key:"render",value:function(){var e;if(!0===this.props.avatar){var t="grp"==k.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}}])&&G(Y.prototype,Q),void(X&&G(Y,X)),$);function $(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,$),K(this,z($).apply(this,arguments))}var ee=["image/jpeg","image/gif","image/png","image/svg","image/svg+xml"],te=["jpg","gif","png","svg","svg"];function ne(e){return e&&e.type&&e.data?"data:image/"+e.type+";base64,"+e.data:null}function ae(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),r={dstWidth:e*i|0,dstHeight:t*i|0};return o?(r.dstWidth=r.dstHeight=Math.min(r.dstWidth,r.dstHeight),r.srcWidth=r.srcHeight=Math.min(e,t),r.xoffset=(e-r.srcWidth)/2|0,r.yoffset=(t-r.srcWidth)/2|0):(r.xoffset=r.yoffset=0,r.srcWidth=e,r.srcHeight=t),r}function oe(e,t){var n=ee.indexOf(t),a=te[n],o=e.lastIndexOf(".");return 0<=o&&(e=e.substring(0,o)),e+"."+a}function ie(r,s,l,c,d,u){var e=new Image;e.crossOrigin="Anonymous",e.onerror=function(e){u("Image format unrecognized")},e.onload=function(){var e=ae(this.width,this.height,s,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||ee.indexOf(r.type)<0?"image/jpeg":r.type,o=t.toDataURL(a);if(a=le(o.split(",")[0])){var i=.78;if(ce(o.length)>S&&(a="image/jpeg"),"image/jpeg"==a)for(;ce(o.length)>S&&.45<i;)o=t.toDataURL(a,i),i*=.84;ce(o.length)>S?u("The image size "+bytesToHumanSize(ce(o.length))+" exceeds the "+bytesToHumanSize(S)+" limit.","err"):(t=null,d(o.split(",")[1],a,e.dstWidth,e.dstHeight,oe(r.name,a)))}else u("Unsupported image format")}else u("Invalid image")},e.src=URL.createObjectURL(r)}function re(a,o,i){var r=new FileReader;r.addEventListener("load",function(){var e=r.result.split(","),t=le(e[0]);if(t){var n=new Image;n.crossOrigin="Anonymous",n.onload=function(){o(e[1],t,this.width,this.height,oe(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),r.readAsDataURL(a)}function se(e,t){var n=new FileReader;n.addEventListener("load",function(){t(e.type,n.result.split(",")[1],e.name)}),n.readAsDataURL(e)}function le(e){var t=/^data:(image\/[-+a-z0-9.]+);base64/.exec(e);return t&&1<t.length?t[1]:null}function ce(e){return 3*Math.floor(e/4)}function de(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 ue(e){return(ue=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function pe(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function he(e,t){return(he=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var me,fe,ge,be=(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&&he(e,t)}(ve,E.a.Component),me=ve,(fe=[{key:"componentDidUpdate",value:function(e){this.props.avatar!=e.avatar&&this.setState({dataUrl:this.props.avatar})}},{key:"handleFileUpload",value:function(e){var a=this;ie(e.target.files[0],128,128,!0,function(e,t){var n=ne({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(Z,{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")))}}])&&de(me.prototype,fe),void(ge&&de(me,ge)),ve);function ve(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,ve),(t=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?pe(e):t}(this,ue(ve).call(this,e))).state={dataUrl:e.avatar},t.handleFileUpload=t.handleFileUpload.bind(pe(t)),t}function _e(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 we(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Ee(e,t){return(Ee=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Ce,ke,Se,Me=(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&&Ee(e,t)}(Oe,E.a.PureComponent),Ce=Oe,(ke=[{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")}}])&&_e(Ce.prototype,ke),void(Se&&_e(Ce,Se)),Oe);function Oe(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Oe),(t=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?we(e):t}(this,ye(Oe).call(this,e))).handleChange=t.handleChange.bind(we(t)),t}function Te(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 Pe(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 je(e){return(je=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Ne(e,t){return(Ne=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Ae,Ue,Fe,xe={muted:"notifications_off",banned:"block"},De=(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&&Ne(e,t)}(Re,E.a.PureComponent),Ae=Re,(Ue=[{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},xe[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(Ae.prototype,Ue),void(Fe&&Te(Ae,Fe)),Re);function Re(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Re),Pe(this,je(Re).apply(this,arguments))}function Ie(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,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 qe(e){return(qe=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function He(e,t){return(He=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var We,Be,Ve,Ge=(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&&He(e,t)}(Ke,E.a.PureComponent),We=Ke,(Be=[{key:"render",value:function(){return 0<this.props.count?E.a.createElement("span",{className:"unread"},9<this.props.count?"9+":this.props.count):null}}])&&Ie(We.prototype,Be),void(Ve&&Ie(We,Ve)),Ke);function Ke(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Ke),Le(this,qe(Ke).apply(this,arguments))}function ze(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 Je(e){return(Je=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Ye(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Qe(e,t){return(Qe=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Xe,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&&Qe(e,t)}(tt,E.a.Component),Xe=tt,(Ze=[{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(C.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(Z,{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(Ge,{count:this.props.unread}),E.a.createElement(De,{badges:o})),this.props.comment?E.a.createElement("div",{className:"contact-comment"},this.props.comment):null,E.a.createElement("span",null,E.a.createElement(De,{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)}}])&&ze(Xe.prototype,Ze),void($e&&ze(Xe,$e)),tt);function tt(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,tt),(t=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?Ye(e):t}(this,Je(tt).call(this,e))).handleClick=t.handleClick.bind(Ye(t)),t.handleContextClick=t.handleContextClick.bind(Ye(t)),t}function nt(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 at(e){return(at=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ot(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function it(e,t){return(it=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var rt,st,lt,ct=(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&&it(e,t)}(dt,E.a.PureComponent),rt=dt,(st=[{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)))}}])&&nt(rt.prototype,st),void(lt&&nt(rt,lt)),dt);function dt(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,dt),(t=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?ot(e):t}(this,at(dt).call(this,e))).handleClick=t.handleClick.bind(ot(t)),t}var ut=Object(C.injectIntl)(ct);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 ht(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 mt(e){return(mt=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ft(e,t){return(ft=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var gt,bt,vt,_t=Object(C.defineMessages)({badge_you:{id:"badge_you",defaultMessage:"you"},badge_owner:{id:"badge_owner",defaultMessage:"owner"}}),yt=(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&&ft(e,t)}(wt,E.a.Component),gt=wt,(bt=[{key:"render",value:function(){var r=this,s=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(ut,{title:e.title,action:e.action,values:e.values,key:e.action,onAction:r.props.onAction}));else{var t=e.topic?e.topic:e.user;if(r.props.filterFunc&&r.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()),!r.props.filterFunc(r.props.filter,n))return}var a=l?-1<r.props.topicSelected.indexOf(t):r.props.topicSelected===t,o=[];r.props.showMode&&(t===r.props.myUserId&&o.push({name:s(_t.badge_you),color:"green"}),e.acs&&e.acs.isOwner()&&o.push({name:s(_t.badge_owner),color:"blue"}));var i=Array.isArray(e.private)?e.private.join(","):e.private?e.private.comment:null;c.push(E.a.createElement(et,{title:e.public?e.public.fn:null,avatar:ne(e.public?e.public.photo:null),comment:i,unread:r.props.showUnread?e.unread:0,now:e.online&&r.props.connected,acs:e.acs,showMode:r.props.showMode,badges:o,showCheckmark:l,selected:a,showOnline:r.props.showOnline,onSelected:r.props.onTopicSelected,showContextMenu:r.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)}}])&&pt(gt.prototype,bt),void(vt&&pt(gt,vt)),wt);function wt(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,wt),ht(this,mt(wt).apply(this,arguments))}var Et=Object(C.injectIntl)(yt);function Ct(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 kt(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 St(e){return(St=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Mt(e,t){return(Mt=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Ot,Tt,Pt,jt=(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&&Mt(e,t)}(Nt,E.a.PureComponent),Ot=Nt,(Tt=[{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"))}}])&&Ct(Ot.prototype,Tt),void(Pt&&Ct(Ot,Pt)),Nt);function Nt(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Nt),kt(this,St(Nt).apply(this,arguments))}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 Ut(e){return(Ut=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Ft(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function xt(e,t){return(xt=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Dt,Rt,It,Lt=(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&&xt(e,t)}(qt,E.a.PureComponent),Dt=qt,(Rt=[{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(jt,{onCancel:this.hide})))}}])&&At(Dt.prototype,Rt),void(It&&At(Dt,It)),qt);function qt(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,qt),(t=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?Ft(e):t}(this,Ut(qt).call(this,e))).state={show:!1},t.hide=t.hide.bind(Ft(t)),t}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 Wt(e){return(Wt=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Bt(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Vt(e,t){return(Vt=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Gt,Kt,zt,Jt=(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&&Vt(e,t)}(Yt,E.a.PureComponent),Gt=Yt,(Kt=[{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(Z,{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"}))}}])&&Ht(Gt.prototype,Kt),void(zt&&Ht(Gt,zt)),Yt);function Yt(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Yt),(t=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?Bt(e):t}(this,Wt(Yt).call(this,e))).handleCancel=t.handleCancel.bind(Bt(t)),t}function Qt(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 Xt(e){return(Xt=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Zt(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function $t(e,t){return($t=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var en,tn,nn,an=(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&&$t(e,t)}(on,E.a.Component),en=on,nn=[{key:"deriveStateFromProps",value:function(e){return{placeholder:e.chips?"":e.prompt,sortedChips:on.sortChips(e.chips,e.staticMembers),chipIndex:on.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)}}],(tn=[{key:"componentDidUpdate",value:function(e,t){e.chips==this.props.chips&&e.staticMembers==this.props.staticMembers&&e.prompt==this.props.prompt||this.setState(on.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(Jt,{onCancel:t.handleChipCancel,avatar:ne(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}))}}])&&Qt(en.prototype,tn),void(nn&&Qt(en,nn)),on);function on(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,on),(t=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?Zt(e):t}(this,Xt(on).call(this,e))).state=on.deriveStateFromProps(e),t.state.input="",t.state.focused=!1,t.handleTextInput=t.handleTextInput.bind(Zt(t)),t.removeChipAt=t.removeChipAt.bind(Zt(t)),t.handleChipCancel=t.handleChipCancel.bind(Zt(t)),t.handleFocusGained=t.handleFocusGained.bind(Zt(t)),t.handleFocusLost=t.handleFocusLost.bind(Zt(t)),t.handleKeyDown=t.handleKeyDown.bind(Zt(t)),t}function rn(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 sn(e){return(sn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ln(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function cn(e,t){return(cn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var dn,un,pn,hn=Object(C.defineMessages)({no_contacts:{id:"no_contacts",defaultMessage:"You have no contacts :-("},contacts_not_found:{id:"contacts_not_found_short",defaultMessage:"No contacts match '{query}'"}}),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&&cn(e,t)}(fn,E.a.Component),dn=fn,pn=[{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}}],(un=[{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=fn.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-=1;var a=this.state.members.slice();a.splice(t,1);var o=fn.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(hn.contacts_not_found,{query:e}):t(hn.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(C.FormattedMessage,{id:"title_group_members",defaultMessage:"Group Members"}))),E.a.createElement("div",{className:"panel-form-row"},E.a.createElement(an,{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(C.FormattedMessage,{id:"title_all_contacts",defaultMessage:"All Contacts"}))),E.a.createElement(Et,{contacts:this.props.contacts,myUserId:this.props.myUserId,topicSelected:this.state.selectedContacts,filter:this.state.contactFilter,filterFunc:fn.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(C.FormattedMessage,{id:"button_ok",defaultMessage:"OK"})),E.a.createElement("button",{className:"white",onClick:this.handleCancel},E.a.createElement(C.FormattedMessage,{id:"button_cancel",defaultMessage:"Cancel"}))))}}])&&rn(dn.prototype,un),void(pn&&rn(dn,pn)),fn);function fn(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,fn),(t=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?ln(e):t}(this,sn(fn).call(this,e))).state={members:e.members,index:fn.indexMembers(e.members),staticMembers:fn.staticMembers(e.members,e.keepInitialMembers,e.requiredMember),contactFilter:"",noContactsMessage:e.intl.formatMessage(hn.no_contacts),selectedContacts:fn.selectedContacts(e.members)},t.handleContactSelected=t.handleContactSelected.bind(ln(t)),t.handleMemberRemoved=t.handleMemberRemoved.bind(ln(t)),t.handleContactFilter=t.handleContactFilter.bind(ln(t)),t.handleSubmit=t.handleSubmit.bind(ln(t)),t.handleCancel=t.handleCancel.bind(ln(t)),t}var gn=Object(C.injectIntl)(mn);function bn(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 vn(e){return(vn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _n(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function yn(e,t){return(yn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var wn,En,Cn,kn=(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&&yn(e,t)}(Sn,E.a.PureComponent),wn=Sn,(En=[{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")))}}])&&bn(wn.prototype,En),void(Cn&&bn(wn,Cn)),Sn);function Sn(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Sn),(t=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?_n(e):t}(this,vn(Sn).call(this,e))).state={value:t.props.value,visible:!1},t.handleVisibility=t.handleVisibility.bind(_n(t)),t.handeTextChange=t.handeTextChange.bind(_n(t)),t.handleKeyDown=t.handleKeyDown.bind(_n(t)),t.handleEditingFinished=t.handleEditingFinished.bind(_n(t)),t}function Mn(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 Tn(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Pn(e,t){return(Pn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var jn,Nn,An,Un=(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&&Pn(e,t)}(Fn,E.a.Component),jn=Fn,(Nn=[{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(kn,{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))}}])&&Mn(jn.prototype,Nn),void(An&&Mn(jn,An)),Fn);function Fn(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Fn),(t=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?Tn(e):t}(this,On(Fn).call(this,e))).state={active:e.active,initialValue:e.value||"",value:e.value||""},t.handeTextChange=t.handeTextChange.bind(Tn(t)),t.handleKeyDown=t.handleKeyDown.bind(Tn(t)),t.handleStartEditing=t.handleStartEditing.bind(Tn(t)),t.handleEditingFinished=t.handleEditingFinished.bind(Tn(t)),t.handlePasswordFinished=t.handlePasswordFinished.bind(Tn(t)),t}function xn(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 Dn(e){return(Dn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Rn(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function In(e,t){return(In=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Ln,qn,Hn,Wn=(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&&In(e,t)}(Bn,E.a.PureComponent),Ln=Bn,(qn=[{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"))}}])&&xn(Ln.prototype,qn),void(Hn&&xn(Ln,Hn)),Bn);function Bn(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Bn),(t=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?Rn(e):t}(this,Dn(Bn).call(this,e))).state={open:e.open},t.handleToggle=t.handleToggle.bind(Rn(t)),t}function Vn(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 Gn(e){return(Gn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Kn(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function zn(e,t){return(zn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Jn,Yn,Qn,Xn=Object(C.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})"}}),Zn=(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&&zn(e,t)}($n,E.a.Component),Jn=$n,(Yn=[{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(Xn.joiner,{val:"J"}),R:e(Xn.reader,{val:"R"}),W:e(Xn.writer,{val:"W"}),P:e(Xn.preser,{val:"P"}),A:e(Xn.approver,{val:"A"}),S:e(Xn.sharer,{val:"S"}),D:e(Xn.deleter,{val:"D"}),O:e(Xn.owner,{val:"O"})},a=this.props.skip||"",o=this.state.mode,i=(this.props.compare||"").replace("N",""),r=[],s=0;s<t.length;s++){var l=t.charAt(s);0<=a.indexOf(l)&&o.indexOf(l)<0||r.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(Me,{name:l,checked:0<=o.indexOf(l),onChange:this.handleChange}):E.a.createElement(Me,{name:l,checked:0<=o.indexOf(l)})),this.props.compare?E.a.createElement("td",{className:"checkbox"},E.a.createElement(Me,{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(et,{item:this.props.item,title:this.props.userTitle,avatar:ne(this.props.userAvatar?this.props.userAvatar:null)})):null,E.a.createElement("label",{className:"small"},E.a.createElement(C.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,r)),E.a.createElement("br",null),E.a.createElement("div",{className:"dialog-buttons"},E.a.createElement("button",{className:"outline",onClick:this.handleCancel},E.a.createElement(C.FormattedMessage,{id:"button_cancel"})),E.a.createElement("button",{className:"blue",onClick:this.handleSubmit},E.a.createElement(C.FormattedMessage,{id:"button_ok"}))))}}])&&Vn(Jn.prototype,Yn),void(Qn&&Vn(Jn,Qn)),$n);function $n(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,$n),(t=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?Kn(e):t}(this,Gn($n).call(this,e))).state={mode:(e.mode||"").replace("N","")},t.handleChange=t.handleChange.bind(Kn(t)),t.handleSubmit=t.handleSubmit.bind(Kn(t)),t.handleCancel=t.handleCancel.bind(Kn(t)),t}var ea=Object(C.injectIntl)(Zn);function ta(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 na(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 aa(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 oa(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 ia(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){return(ra=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function sa(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function la(e,t){return(la=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var ca,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&&la(e,t)}(ha,E.a.Component),ca=ha,ua=[{key:"getDerivedStateFromProps",value:function(e,t){return aa(e.tags,t.tags)||t.activated?null:{tags:e.tags}}}],(da=[{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(C.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(C.FormattedMessage,{id:"tags_editor_no_tags",defaultMessage:"Add some tags"},function(e){return E.a.createElement(an,{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(C.FormattedMessage,{id:"button_cancel",defautMessage:"Cancel",description:"Rejection button [Cancel]"})),E.a.createElement("button",{className:"blue",onClick:this.handleSubmit},E.a.createElement(C.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(C.FormattedMessage,{id:"title_manage_tags",defaultMessage:"Manage"})),E.a.createElement(E.a.Fragment,null,n)))}}])&&ia(ca.prototype,da),void(ua&&ia(ca,ua)),ha);function ha(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,ha),(t=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?sa(e):t}(this,ra(ha).call(this,e))).state={tags:t.props.tags,tagInput:"",activated:t.props.activated},t.handleTagInput=t.handleTagInput.bind(sa(t)),t.handleAddTag=t.handleAddTag.bind(sa(t)),t.handleRemoveTag=t.handleRemoveTag.bind(sa(t)),t.handleSubmit=t.handleSubmit.bind(sa(t)),t.handleCancel=t.handleCancel.bind(sa(t)),t}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,wa=Object(C.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?"}}),Ea=(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)}(Ca,E.a.Component),va=Ca,(_a=[{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,t){var n=e.getDefaultAccess()||{},a=e.getAccessMode();this.setState({owner:a&&a.isOwner(),admin:a&&a.isAdmin(),sharer:a&&a.isSharer(),deleter:a&&a.isDeleter(),muted:a&&a.isMuted(),fullName:e.public?e.public.fn:void 0,avatar:ne(e.public?e.public.photo:null),private:e.private?e.private.comment:null,address:e.name,groupTopic:"grp"==e.getType(),showMemberPanel:!1,access:a?a.getMode():void 0,modeGiven:a?a.getGiven():void 0,modeWant:a?a.getWant():void 0,auth:n.auth,anon:n.anon}),"grp"==e.getType()&&a&&a.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,na(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||k.a.DEL_CHAR))}},{key:"handleImageChanged",value:function(e){this.setState({avatar:e}),this.props.onTopicDescUpdate(this.props.topic,na(null,e||k.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,r,s,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(wa.requested),r=c(wa.granted);break;case"given":n=this.state.modeGiven2,a=this.state.modeWant2,o=this.state.groupTopic?this.state.owner?"":"O":"ASDO",i=c(wa.granted),r=c(wa.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(wa.granted),r=c(wa.requested),u.public&&(s=u.public.fn,l=u.public.photo);break;default:console.log("Unknown permission editing mode '"+e+"'")}this.setState({showPermissionEditorFor:e,userPermissionsEdited:t,userPermissionsTitle:s,userPermissionsAvatar:l,editedPermissions:n,immutablePermissions:a,editedPermissionsTitle:i,immutablePermissionsTitle:r,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?wa.delete_messages:wa.clear_messages),n(this.state.deleter?wa.delete_messages_warning:wa.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(wa.leave_chat),n(wa.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(wa.block_contact),n(wa.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(wa.report_chat),n(wa.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){aa(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(wa.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(C.FormattedMessage,{id:"title_info",defaultMessage:"Info"})),E.a.createElement("div",null,E.a.createElement(jt,{onCancel:this.props.onCancel}))),this.props.displayMobile?E.a.createElement(Lt,{level:this.props.errorLevel,text:this.props.errorText,onClearError:this.props.onError}):null,this.state.showMemberPanel?E.a.createElement(gn,{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(ea,{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(C.FormattedMessage,{id:"label_topic_name",defaultMessage:"Name"}))),E.a.createElement("div",null,E.a.createElement(Un,{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(C.FormattedMessage,{id:"label_private",defaultMessage:"Private comment"}))),E.a.createElement("div",null,E.a.createElement(C.FormattedMessage,{id:"private_editing_placeholder",defaultMessage:"Visible to you only"},function(e){return E.a.createElement(Un,{placeholder:e,value:t.state.private,onFinished:t.handlePrivateUpdate})}))),E.a.createElement(be,{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(C.FormattedMessage,{id:"label_muting_topic",defaultMessage:"Muted:"})),E.a.createElement(Me,{name:"P",checked:this.state.muted,onChange:this.handleMuted})),E.a.createElement(C.FormattedMessage,{id:"action_more",defaultMessage:"More"},function(e){return E.a.createElement(Wn,{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(C.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(C.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(C.FormattedMessage,{id:"label_permissions",defaultMessage:"Permissions:"}))),E.a.createElement("div",{className:"quoted"},E.a.createElement("div",null,E.a.createElement(C.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(wa.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(C.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(C.FormattedMessage,{id:"title_tag_manager"},function(e){return E.a.createElement(pa,{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?wa.delete_messages:wa.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(wa.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(wa.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(wa.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(C.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(C.FormattedMessage,{id:"button_add_members",defaultMessage:"Add members"})):null),E.a.createElement(C.FormattedMessage,{id:"group_has_no_members",defaultMessage:"No members"},function(e){return E.a.createElement(Et,{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))}}])&&ma(va.prototype,_a),void(ya&&ma(va,ya)),Ca);function Ca(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Ca),(t=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?ga(e):t}(this,fa(Ca).call(this,e))).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(ga(t)),t.resetDesc=t.resetDesc.bind(ga(t)),t.onMetaDesc=t.onMetaDesc.bind(ga(t)),t.onSubsUpdated=t.onSubsUpdated.bind(ga(t)),t.onTagsUpdated=t.onTagsUpdated.bind(ga(t)),t.handleFullNameUpdate=t.handleFullNameUpdate.bind(ga(t)),t.handlePrivateUpdate=t.handlePrivateUpdate.bind(ga(t)),t.handleImageChanged=t.handleImageChanged.bind(ga(t)),t.handleMuted=t.handleMuted.bind(ga(t)),t.handlePermissionsChanged=t.handlePermissionsChanged.bind(ga(t)),t.handleLaunchPermissionsEditor=t.handleLaunchPermissionsEditor.bind(ga(t)),t.handleHidePermissionsEditor=t.handleHidePermissionsEditor.bind(ga(t)),t.handleShowAddMembers=t.handleShowAddMembers.bind(ga(t)),t.handleHideAddMembers=t.handleHideAddMembers.bind(ga(t)),t.handleMemberUpdateRequest=t.handleMemberUpdateRequest.bind(ga(t)),t.handleDeleteMessages=t.handleDeleteMessages.bind(ga(t)),t.handleLeave=t.handleLeave.bind(ga(t)),t.handleBlock=t.handleBlock.bind(ga(t)),t.handleReport=t.handleReport.bind(ga(t)),t.handleMemberSelected=t.handleMemberSelected.bind(ga(t)),t.handleMoreInfo=t.handleMoreInfo.bind(ga(t)),t.handleTagsUpdated=t.handleTagsUpdated.bind(ga(t)),t.handleContextMenu=t.handleContextMenu.bind(ga(t)),t}var ka=Object(C.injectIntl)(Ea);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 Ma(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 Oa(e){return(Oa=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Ta(e,t){return(Ta=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Pa,ja,Na,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&&Ta(e,t)}(Ua,E.a.PureComponent),Pa=Ua,(ja=[{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(C.FormattedMessage,{id:"action_cancel",defaultMessage:"cancel"})):E.a.createElement(C.FormattedMessage,{id:"upload_finishing",defaultMessage:"finishing..."}))}}])&&Sa(Pa.prototype,ja),void(Na&&Sa(Pa,Na)),Ua);function Ua(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Ua),Ma(this,Oa(Ua).apply(this,arguments))}function Fa(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 xa(e){return(xa=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Da(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Ra(e,t){return(Ra=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Ia,La,qa,Ha=(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&&Ra(e,t)}(Wa,E.a.Component),Ia=Wa,(La=[{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=0<this.props.size?E.a.createElement("span",{className:"small gray"},"(",V(this.props.size),")"):null;return a=this.props.uploader||this.state.downloader||!function(e){return!/^\s*([a-z][a-z0-9+.-]*:|\/\/)/im.test(e)}(this.props.downloadUrl)?(n=oa(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," ",o),this.props.uploader||this.state.downloader?E.a.createElement(Aa,{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(C.FormattedMessage,{id:"save_attachment",defaultMessage:"save"})))))}}])&&Fa(Ia.prototype,La),void(qa&&Fa(Ia,qa)),Wa);function Wa(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Wa),(t=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?Da(e):t}(this,xa(Wa).call(this,e))).state={downloader:null,progress:0},t.downloadFile=t.downloadFile.bind(Da(t)),t.handleCancel=t.handleCancel.bind(Da(t)),t}function Ba(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 Va(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 Ga(e){return(Ga=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Ka(e,t){return(Ka=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var za,Ja,Ya,Qa=Object(C.defineMessages)({sending:{id:"message_sending",defaultMessage:"sending..."},failed:{id:"message_sending_failed",defaultMessage:"failed"}}),Xa=(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&&Ka(e,t)}(Za,E.a.PureComponent),za=Za,(Ja=[{key:"render",value:function(){var e,t=this.props.intl.formatMessage;e=this.props.received<=k.a.MESSAGE_STATUS_SENDING?t(Qa.sending):this.props.received==k.a.MESSAGE_STATUS_FAILED?t(Qa.failed):B(this.props.timestamp,this.props.intl.locale);var n=null;return this.props.received<=k.a.MESSAGE_STATUS_SENDING?n=E.a.createElement("i",{className:"material-icons small"},"access_time"):this.props.received==k.a.MESSAGE_STATUS_FAILED?n=E.a.createElement("i",{className:"material-icons small amber"},"warning"):this.props.received==k.a.MESSAGE_STATUS_SENT?n=E.a.createElement("i",{className:"material-icons small"},"done"):this.props.received==k.a.MESSAGE_STATUS_RECEIVED?n=E.a.createElement("i",{className:"material-icons small"},"done_all"):this.props.received==k.a.MESSAGE_STATUS_READ&&(n=E.a.createElement("i",{className:"material-icons small blue"},"done_all")),E.a.createElement("span",{className:"timestamp"},e," ",n)}}])&&Ba(za.prototype,Ja),void(Ya&&Ba(za,Ya)),Za);function Za(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Za),Va(this,Ga(Za).apply(this,arguments))}var $a=Object(C.injectIntl)(Xa);function eo(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 to(e){return(to=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function no(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ao(e,t){return(ao=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var oo,io,ro,so=(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&&ao(e,t)}(lo,E.a.Component),oo=lo,(io=[{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=oa(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.sequence+" "+(this.props.response?"left":"right"),n="single"==this.props.sequence||"last"==this.props.sequence?"bubble tip":"bubble",a=this.props.userAvatar||!0,o=this.props.userFrom&&this.props.response&&("single"==this.props.sequence||"last"==this.props.sequence),i=this.props.content,r=[];return this.props.mimeType==l.Drafty.getContentType()?(l.Drafty.attachments(i,function(e,t){"application/json"!=e.mime&&r.push(E.a.createElement(Ha,{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,co,this))):"string"!=typeof i&&(i=E.a.createElement(E.a.Fragment,null,E.a.createElement("i",{className:"material-icons"},"error_outline")," ",E.a.createElement("i",null,E.a.createElement(C.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(Z,{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,r,E.a.createElement($a,{timestamp:this.props.timestamp,received:this.props.received})),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(C.FormattedMessage,{id:"user_not_found",defaultMessage:"Not found"},function(e){return t.props.userName||E.a.createElement("i",null,e)})):null))}}])&&eo(oo.prototype,io),void(ro&&eo(oo,ro)),lo);function lo(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,lo),(t=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?no(e):t}(this,to(lo).call(this,e))).state={progress:0},e.uploader&&(e.uploader.onProgress=t.handleProgress.bind(no(t))),t.handlePreviewImage=t.handlePreviewImage.bind(no(t)),t.handleFormButtonClick=t.handleFormButtonClick.bind(no(t)),t.handleContextClick=t.handleContextClick.bind(no(t)),t.handleCancelUpload=t.handleCancelUpload.bind(no(t)),t}function co(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 r=ae(t.width,t.height,Math.min(this.props.viewportWidth-52,468),312,!1);r=r||{dstWidth:32,dstHeight:32},i.style={width:r.dstWidth+"px",height:r.dstHeight+"px"},i.src=function(e){if(!e)return null;var t=oa(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 s=E.a.Children.map(n,function(e){return"string"==typeof e?e:void 0});s&&0!=s.length||(s=[i.name]),i["data-title"]=s.join("");break;case"FM":i.className="bot-form"}return E.a.createElement(o,i,n)}return n}function uo(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,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 ho(e){return(ho=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function mo(e,t){return(mo=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var fo,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&&mo(e,t)}(_o,E.a.Component),fo=_o,(go=[{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(Z,{topic:e.user,avatar:ne(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(C.FormattedMessage,{id:"more_online_members",defaultMessage:"+{overflow} more",values:{overflow:e-n}})):null)}}])&&uo(fo.prototype,go),void(bo&&uo(fo,bo)),_o);function _o(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,_o),po(this,ho(_o).call(this,e))}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 Co(e,t){return(Co=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var ko,So,Mo,Oo=(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&&Co(e,t)}(To,E.a.PureComponent),ko=To,(So=[{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=ae(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||"-",r=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(C.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(C.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(C.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(C.FormattedMessage,{id:"label_size",defaultMessage:"Size:"}))),E.a.createElement("div",null,i," × ",r," px; ",V(this.props.content.size)))))}}])&&yo(ko.prototype,So),void(Mo&&yo(ko,Mo)),To);function To(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,To),(t=wo(this,Eo(To).call(this,e))).state={width:0,height:0},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 jo(e){return(jo=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function No(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Ao(e,t){return(Ao=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Uo,Fo,xo,Do=(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&&Ao(e,t)}(Ro,E.a.PureComponent),Uo=Ro,(Fo=[{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(C.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(C.FormattedMessage,{id:"chat_invitation_accept",defaultMessage:"Accept"})),E.a.createElement("button",{className:"white",onClick:function(e){t.handleButtonAction(e,"delete")}},E.a.createElement(C.FormattedMessage,{id:"chat_invitation_ignore",defaultMessage:"Ignore"})),E.a.createElement("button",{className:"white",onClick:function(e){t.handleButtonAction(e,"block")}},E.a.createElement(C.FormattedMessage,{id:"chat_invitation_block",defaultMessage:"Block"}))))}}])&&Po(Uo.prototype,Fo),void(xo&&Po(Uo,xo)),Ro);function Ro(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Ro),(t=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?No(e):t}(this,jo(Ro).call(this,e))).handleButtonAction=t.handleButtonAction.bind(No(t)),t}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,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 qo(e){return(qo=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Ho(e,t){return(Ho=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Wo,Bo,Vo,Go=(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)}(Ko,E.a.PureComponent),Wo=Ko,(Bo=[{key:"render",value:function(){return this.props.show?E.a.createElement("div",{className:"load-spinner-box"},E.a.createElement("div",{className:"loader-spinner"})):null}}])&&Io(Wo.prototype,Bo),void(Vo&&Io(Wo,Vo)),Ko);function Ko(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Ko),Lo(this,qo(Ko).apply(this,arguments))}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 Jo(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 Yo(e){return(Yo=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Qo(e,t){return(Qo=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Xo,Zo,$o,ei=(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&&Qo(e,t)}(ti,E.a.PureComponent),Xo=ti,(Zo=[{key:"render",value:function(){var e=v+" ("+k.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(C.FormattedMessage,{id:"label_client",defaultMessage:"Client:"})," ",e),E.a.createElement("p",null,E.a.createElement(C.FormattedMessage,{id:"label_server",defaultMessage:"Server:"})," ",this.props.serverVersion," (",this.props.serverAddress,")")))}}])&&zo(Xo.prototype,Zo),void($o&&zo(Xo,$o)),ti);function ti(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,ti),Jo(this,Yo(ti).apply(this,arguments))}function ni(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 ai(e){return(ai=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function oi(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ii(e,t){return(ii=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var ri,si,li,ci=Object(C.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."}}),di=(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&&ii(e,t)}(ui,E.a.PureComponent),ri=ui,(si=[{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 r=o[i];if("file"!==r.kind);else{var s=r.getAsFile();if(s)return s.type&&"image"==s.type.split("/")[0]?s.size>S||ee.indexOf(s.type)<0?ie(s,768,768,!1,t,a):re(s,t,a):se(s,n),!0;console.log("Failed to get file object from pasted file item",r.kind,r.type)}}return!1}(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>S||ee.indexOf(t.type)<0?ie(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")}):re(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(ci.file_attachment_too_large,{size:V(n.size),limit:V(1<<23)}),"err");else if(n.size>S){var o=this.props.tinode.getLargeFileHelper();if(!o)return void this.props.onError(t(ci.cannot_initiate_upload));var i=o.upload(n),r=l.Drafty.attachFile(null,n.type,null,n.name,n.size,i);this.props.sendMessage(r,i,o)}else se(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(ci.messaging_disabled):e(ci.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"}}))}}])&&ni(ri.prototype,si),void(li&&ni(ri,li)),ui);function ui(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,ui),(t=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?oi(e):t}(this,ai(ui).call(this,e))).state={message:"",keypressTimestamp:(new Date).getTime()-3e3-1},t.handlePasteEvent=t.handlePasteEvent.bind(oi(t)),t.handleAttachImage=t.handleAttachImage.bind(oi(t)),t.handleAttachFile=t.handleAttachFile.bind(oi(t)),t.handleSend=t.handleSend.bind(oi(t)),t.handleKeyPress=t.handleKeyPress.bind(oi(t)),t.handleMessageTyping=t.handleMessageTyping.bind(oi(t)),t}var pi=Object(C.injectIntl)(di);function hi(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 mi(e){return(mi=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function fi(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function gi(e,t){return(gi=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var bi=k.a.Drafty,vi=Object(C.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 _i(e){if(e){var t=e.getExcessive()||"";return e.isJoiner("given")&&(t.includes("R")||t.includes("W"))}return!1}function yi(e){if(e){var t=e.getMissing()||"";return e.isJoiner("want")&&(t.includes("R")||t.includes("W"))}return!1}var wi,Ei,Ci,ki=(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&&gi(e,t)}(Si,E.a.Component),wi=Si,Ci=[{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:ne(a.public.photo)}):Object.assign(n,{title:"",avatar:null});var r=a.p2pPeerDesc();r?Object.assign(n,{peerMessagingDisabled:yi(r.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)),_i(t.acs)==!e.unconformed&&(n.unconfirmed=!e.unconformed),!t.connected&&e.onlineSubs&&0<e.onlineSubs.length&&(n.onlineSubs=[]),n}}],(Ei=[{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&&!k.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 r=o?this.props.newTopicParams:void 0;a.subscribe(i.build(),r).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=Si.getDerivedStateFromProps({},{});t.title=n.props.intl.formatMessage(vi.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:ne(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:_i(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:yi(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)>=k.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(e){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(bi.attachJSON(bi.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,w,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=[],r=null,s=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==r?u=c.from==d?"middle":"last":c.from==d&&(u="first"),r=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=ne(b.public.photo)),g=c.from,s="chat-box group"}else s="chat-box";i.push(E.a.createElement(so,{tinode:this.props.tinode,content:c.content,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"==k.a.topicType(_.topic)&&(_.online?v=n(vi.online_now):_.seen&&(v=n(vi.last_seen)+": "+B(_.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(Z,{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(C.FormattedMessage,{id:"unnamed_topic",defaultMessage:"Unnamed"}))),E.a.createElement("div",{id:"topic-last-seen"},v)),o?E.a.createElement(vo,{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(Lt,{level:this.props.errorLevel,text:this.props.errorText,onClearError:this.props.onError}):null,E.a.createElement(Go,{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:s},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(C.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(C.FormattedMessage,{id:"peers_messaging_disabled",defaultMessage:"Peer's messaging is disabled."})," ",E.a.createElement("a",{href:"#",onClick:this.handleEnablePeer},E.a.createElement(C.FormattedMessage,{id:"enable_peers_messaging",defaultMessage:"Enable"})),"."):null,this.state.unconfirmed?E.a.createElement(Do,{onAction:this.handleNewChatAcceptance}):E.a.createElement(pi,{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(Oo,{content:this.state.imagePreview,onClose:this.handleCloseImagePreview}):null)}else e=E.a.createElement(ei,{hideSelf:this.props.hideSelf,serverVersion:this.props.serverVersion,serverAddress:this.props.serverAddress});return e}}])&&hi(wi.prototype,Ei),void(Ci&&hi(wi,Ci)),Si);function Si(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Si),(t=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?fi(e):t}(this,mi(Si).call(this,e))).state=Si.getDerivedStateFromProps(e,{}),t.leave=t.leave.bind(fi(t)),t.handleScrollReference=t.handleScrollReference.bind(fi(t)),t.handleScrollEvent=t.handleScrollEvent.bind(fi(t)),t.handleDescChange=t.handleDescChange.bind(fi(t)),t.handleSubsUpdated=t.handleSubsUpdated.bind(fi(t)),t.handleNewMessage=t.handleNewMessage.bind(fi(t)),t.handleAllMessagesReceived=t.handleAllMessagesReceived.bind(fi(t)),t.handleInfoReceipt=t.handleInfoReceipt.bind(fi(t)),t.handleImagePreview=t.handleImagePreview.bind(fi(t)),t.handleCloseImagePreview=t.handleCloseImagePreview.bind(fi(t)),t.handleFormResponse=t.handleFormResponse.bind(fi(t)),t.handleContextClick=t.handleContextClick.bind(fi(t)),t.handleShowContextMenuMessage=t.handleShowContextMenuMessage.bind(fi(t)),t.handleNewChatAcceptance=t.handleNewChatAcceptance.bind(fi(t)),t.handleEnablePeer=t.handleEnablePeer.bind(fi(t)),t}var Mi=Object(C.injectIntl)(ki);function Oi(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 Ti(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 Pi(e){return(Pi=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ji(e,t){return(ji=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Ni,Ai,Ui,Fi=(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&&ji(e,t)}(xi,E.a.PureComponent),Ni=xi,(Ai=[{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")))}}])&&Oi(Ni.prototype,Ai),void(Ui&&Oi(Ni,Ui)),xi);function xi(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,xi),Ti(this,Pi(xi).apply(this,arguments))}function Di(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 Ii(e){return(Ii=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Li(e,t){return(Li=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var qi,Hi,Wi,Bi=(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&&Li(e,t)}(Vi,E.a.PureComponent),qi=Vi,(Hi=[{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")))}}])&&Di(qi.prototype,Hi),void(Wi&&Di(qi,Wi)),Vi);function Vi(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Vi),Ri(this,Ii(Vi).apply(this,arguments))}function Gi(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,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 zi(e){return(zi=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Ji(e,t){return(Ji=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Yi,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&&Ji(e,t)}($i,E.a.PureComponent),Yi=$i,(Qi=[{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(Z,{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(Bi,{onSignUp:this.props.onSignUp,onSettings:this.props.onSettings}):"contacts"===this.props.state?E.a.createElement(Fi,{onNewTopic:this.props.onNewTopic,onSettings:this.props.onSettings}):null,this.props.onCancel?E.a.createElement(jt,{onCancel:this.props.onCancel}):null)}}])&&Gi(Yi.prototype,Qi),void(Xi&&Gi(Yi,Xi)),$i);function $i(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,$i),Ki(this,zi($i).apply(this,arguments))}function er(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 tr(e){return(tr=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function nr(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ar(e,t){return(ar=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var or,ir,rr,sr=Object(C.defineMessages)({archived_contacts_title:{id:"archived_contacts",defaultMessage:"Archived contacts ({count})"}}),lr=(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&&ar(e,t)}(cr,E.a.Component),or=cr,rr=[{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:sr.archived_contacts_title,values:{count:o}}),{contactList:n,unreadThreads:a}}}],(ir=[{key:"componentDidUpdate",value:function(e,t){if(e.chatList!=this.props.chatList||e.archive!=this.props.archive){var n=cr.deriveStateFromProps(this.props);this.setState(n),n.unreadThreads!=t.unreadThreads&&ta(n.unreadThreads)}}},{key:"handleAction",value:function(e){this.props.onShowArchive()}},{key:"render",value:function(){var t=this;return E.a.createElement(C.FormattedHTMLMessage,{id:"contacts_not_found",defaultMessage:"You have no chats<br />¯∖_(ツ)_/¯"},function(e){return E.a.createElement(Et,{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})})}}])&&er(or.prototype,ir),void(rr&&er(or,rr)),cr);function cr(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,cr),(t=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?nr(e):t}(this,tr(cr).call(this,e))).handleAction=t.handleAction.bind(nr(t)),t.state=cr.deriveStateFromProps(e),t}function dr(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 ur,pr,hr,mr=(ur=fr,hr=[{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)}}],(pr=null)&&dr(ur.prototype,pr),void(hr&&dr(ur,hr)),fr);function fr(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,fr)}function gr(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 br(e){return(br=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function vr(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _r(e,t){return(_r=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var yr,wr,Er,Cr=(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&&_r(e,t)}(kr,E.a.PureComponent),yr=kr,(wr=[{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(){mr.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(),na(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(C.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(C.FormattedMessage,{id:"password_prompt"},function(e){return E.a.createElement(kn,{placeholder:e,autoComplete:"new-password",value:t.state.password,onFinished:t.handlePasswordChange,required:!0})})),E.a.createElement(be,{onImageChanged:this.handleImageChanged,onError:this.props.onError})),E.a.createElement("div",{className:"panel-form-row"},E.a.createElement(C.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(C.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(Me,{id:"save-token",name:"save-token",checked:this.state.saveToken,onChange:this.handleToggleSaveToken}),E.a.createElement(C.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(C.FormattedMessage,{id:"button_sign_up",defaultMessage:"Sign up"}))))}}])&&gr(yr.prototype,wr),void(Er&&gr(yr,Er)),kr);function kr(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,kr),(t=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?vr(e):t}(this,br(kr).call(this,e))).state={login:"",password:"",email:"",fn:"",imageDataUrl:null,errorCleared:!1,saveToken:mr.getObject("keep-logged-in")},t.handleLoginChange=t.handleLoginChange.bind(vr(t)),t.handlePasswordChange=t.handlePasswordChange.bind(vr(t)),t.handleEmailChange=t.handleEmailChange.bind(vr(t)),t.handleFnChange=t.handleFnChange.bind(vr(t)),t.handleImageChanged=t.handleImageChanged.bind(vr(t)),t.handleToggleSaveToken=t.handleToggleSaveToken.bind(vr(t)),t.handleSubmit=t.handleSubmit.bind(vr(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 Mr(e){return(Mr=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Or(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 Pr,jr,Nr,Ar=(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)}(Ur,E.a.Component),Pr=Ur,(jr=[{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,na(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,na(null,e||k.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(e){var t=this.state.newCred.trim();if(t){var n,a=function(e){return e=e.trim(),/^(?:\+?(\d{1,3}))?[- (.]*(\d{3})[- ).]*(\d{3})[- .]*(\d{2})[- .]*(\d{2})?$/.test(e)?e.replace(/[- ().]*/,""):null}(t);a?n="tel":(a=function(e){return e=e.trim(),/^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/.test(e)?e:null}(t))&&(n="email"),n?(this.props.onCredAdd(n,a),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){aa(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(C.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(ea,{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(C.FormattedMessage,{id:"label_your_name",defaultMessage:"Your name"}))),E.a.createElement("div",null,E.a.createElement(C.FormattedMessage,{id:"full_name_prompt"},function(e){return E.a.createElement(Un,{placeholder:e,value:n.state.fullName,onFinished:n.handleFullNameUpdate})})),E.a.createElement("div",null,E.a.createElement("label",{className:"small"},E.a.createElement(C.FormattedMessage,{id:"label_password",defaultMessage:"Password"}))),E.a.createElement("div",null,E.a.createElement(C.FormattedMessage,{id:"password_unchanged_prompt",defaultMessage:"Unchanged"},function(e){return E.a.createElement(Un,{placeholder:e,type:"password",onFinished:n.handlePasswordUpdate})}))),E.a.createElement(be,{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(C.FormattedMessage,{id:"label_message_sound",defaultMessage:"Message sound:"})),E.a.createElement(Me,{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(C.FormattedMessage,{id:"label_push_notifications",defaultMessage:"Notification alerts:"}):E.a.createElement(C.FormattedMessage,{id:"label_push_notifications_disabled",defaultMessage:"Notification alerts (requires HTTPS):"})),E.a.createElement(Me,{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(C.FormattedMessage,{id:"title_tag_manager",defaultMessage:"Tags (user discovery)"},function(e){return E.a.createElement(pa,{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(C.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(C.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(C.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(C.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(C.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(C.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(C.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(C.FormattedMessage,{id:"link_privacy_policy",defaultMessage:"Privacy Policy"}))))))}}])&&Sr(Pr.prototype,jr),void(Nr&&Sr(Pr,Nr)),Ur);function Ur(e){var t;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Ur);var n=(t=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?Or(e):t}(this,Mr(Ur).call(this,e))).props.tinode.getMeTopic(),a=n.getDefaultAccess();return t.state={fullName:n.public?n.public.fn:void 0,avatar:ne(n.public?n.public.photo:null),auth:a?a.auth:null,anon:a?a.anon:null,tags:n.tags(),credentials:n.getCredentials()||[],addCredActive:!1,addCredInvalid:!1,newCred:"",showPermissionEditorFor:void 0,previousOnTags:n.onTagsUpdated},t.tnNewTags=t.tnNewTags.bind(Or(t)),t.tnCredsUpdated=t.tnCredsUpdated.bind(Or(t)),t.handleFullNameUpdate=t.handleFullNameUpdate.bind(Or(t)),t.handlePasswordUpdate=t.handlePasswordUpdate.bind(Or(t)),t.handleImageChanged=t.handleImageChanged.bind(Or(t)),t.handleCheckboxClick=t.handleCheckboxClick.bind(Or(t)),t.handleCredChange=t.handleCredChange.bind(Or(t)),t.handleCredKeyDown=t.handleCredKeyDown.bind(Or(t)),t.handleCredEntered=t.handleCredEntered.bind(Or(t)),t.handleLaunchPermissionsEditor=t.handleLaunchPermissionsEditor.bind(Or(t)),t.handleHidePermissionsEditor=t.handleHidePermissionsEditor.bind(Or(t)),t.handlePermissionsChanged=t.handlePermissionsChanged.bind(Or(t)),t.handleTagsUpdated=t.handleTagsUpdated.bind(Or(t)),t}function Fr(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 xr(e){return(xr=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Dr(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Rr(e,t){return(Rr=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Ir,Lr,qr,Hr=(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&&Rr(e,t)}(Wr,E.a.Component),Ir=Wr,(Lr=[{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(){mr.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(C.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(C.FormattedMessage,{id:"password_prompt",defaultMessage:"Password"},function(e){return E.a.createElement(kn,{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(Me,{id:"save-token",name:"save-token",checked:this.state.saveToken,onChange:this.handleToggleSaveToken}),E.a.createElement("label",{htmlFor:"save-token"}," ",E.a.createElement(C.FormattedMessage,{id:"stay_logged_in",defaultMessage:"Stay logged in"})),E.a.createElement("a",{href:"#reset"},E.a.createElement(C.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(C.FormattedMessage,{id:"button_sign_in",defaultMessage:"Sign in"}))))}}])&&Fr(Ir.prototype,Lr),void(qr&&Fr(Ir,qr)),Wr);function Wr(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Wr),(t=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?Dr(e):t}(this,xr(Wr).call(this,e))).state={login:e.login,password:"",hostName:e.serverAddress,saveToken:mr.getObject("keep-logged-in")},t.handleLoginChange=t.handleLoginChange.bind(Dr(t)),t.handlePasswordChange=t.handlePasswordChange.bind(Dr(t)),t.handleToggleSaveToken=t.handleToggleSaveToken.bind(Dr(t)),t.handleSubmit=t.handleSubmit.bind(Dr(t)),t}function Br(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 Vr(e){return(Vr=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 Kr(e,t){return(Kr=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var zr,Jr,Yr,Qr=Object(C.defineMessages)({invalid_id:{id:"error_invalid_id",defaultMessage:"Invalid ID"}}),Xr=(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&&Kr(e,t)}(Zr,E.a.PureComponent),zr=Zr,(Jr=[{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(Qr.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(C.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(C.FormattedMessage,{id:"button_subscribe",defaultMessage:"Subscribe"}))))}}])&&Br(zr.prototype,Jr),void(Yr&&Br(zr,Yr)),Zr);function Zr(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Zr),(t=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?Gr(e):t}(this,Vr(Zr).call(this,e))).state={groupId:""},t.handleChange=t.handleChange.bind(Gr(t)),t.handleKeyPress=t.handleKeyPress.bind(Gr(t)),t.handleSubmit=t.handleSubmit.bind(Gr(t)),t}var $r=Object(C.injectIntl)(Xr);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,rs,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)}(ls,E.a.PureComponent),os=ls,(is=[{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(C.FormattedMessage,{id:"label_topic_name"})),E.a.createElement(C.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(C.FormattedMessage,{id:"label_private"})),E.a.createElement(C.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(be,{onError:this.props.onError,onImageChanged:this.handleImageChanged})),E.a.createElement(C.FormattedMessage,{id:"title_tag_manager"},function(e){return E.a.createElement(pa,{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(C.FormattedMessage,{id:"button_create",defaultMessage:"Create"}))))}}])&&es(os.prototype,is),void(rs&&es(os,rs)),ls);function ls(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,ls),(t=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?ns(e):t}(this,ts(ls).call(this,e))).state={fn:"",private:"",imageDataUrl:null,tags:[]},t.handleFnChange=t.handleFnChange.bind(ns(t)),t.handlePrivateChange=t.handlePrivateChange.bind(ns(t)),t.handleImageChanged=t.handleImageChanged.bind(ns(t)),t.handleTagsChanged=t.handleTagsChanged.bind(ns(t)),t.handleTagsChanged=t.handleTagsChanged.bind(ns(t)),t.handleSubmit=t.handleSubmit.bind(ns(t)),t}function cs(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 ds(e){return(ds=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function us(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 hs,ms,fs,gs=(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)}(bs,E.a.PureComponent),hs=bs,(ms=[{key:"componentWillUnmount",value:function(){this.state.edited&&(this.setState({search:"",edited:!1}),this.props.onSearchContacts(k.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:k.a.DEL_CHAR)}},{key:"handleClear",value:function(e){e.preventDefault(),this.state.edited&&this.props.onSearchContacts(k.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(C.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"))))}}])&&cs(hs.prototype,ms),void(fs&&cs(hs,fs)),bs);function bs(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,bs),(t=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?us(e):t}(this,ds(bs).call(this,e))).state={edited:!1,search:""},t.handleSearchChange=t.handleSearchChange.bind(us(t)),t.handleSearch=t.handleSearch.bind(us(t)),t.handleClear=t.handleClear.bind(us(t)),t.handleKeyDown=t.handleKeyDown.bind(us(t)),t}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,Cs,ks,Ss=Object(C.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"}}),Ms=(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)}(Os,E.a.Component),Es=Os,(Cs=[{key:"componentDidMount",value:function(){this.props.onInitFind()}},{key:"handleTabClick",value:function(e){e.preventDefault(),j.navigateTo(j.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:k.a.isNullValue(e)?null:e})}},{key:"handleContactSelected",value:function(e){"p2p"===this.state.tabSelected&&(j.navigateTo(j.removeUrlParam(window.location.hash,"tab")),this.props.onCreateTopic(e,void 0))}},{key:"handleNewGroupSubmit",value:function(e,t,n,a){j.navigateTo(j.removeUrlParam(window.location.hash,"tab")),this.props.onCreateTopic(void 0,na(e,t),n,a)}},{key:"handleGroupByID",value:function(e){j.navigateTo(j.removeUrlParam(window.location.hash,"tab")),this.props.onCreateTopic(e)}},{key:"render",value:function(){var e=(0,this.props.intl.formatMessage)(this.state.searchQuery?Ss.search_no_results:Ss.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(C.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(C.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(C.FormattedMessage,{id:"tabtitle_group_by_id",defaultMessage:"by id"})))),"grp"===this.state.tabSelected?E.a.createElement(ss,{onSubmit:this.handleNewGroupSubmit}):"byid"===this.state.tabSelected?E.a.createElement($r,{onSubmit:this.handleGroupByID,onError:this.props.onError}):E.a.createElement("div",{className:"flex-column"},E.a.createElement(gs,{type:"p2p",onSearchContacts:this.handleSearchContacts}),E.a.createElement(Et,{contacts:this.props.searchResults,myUserId:this.props.myUserId,emptyListMessage:e,showOnline:!1,showUnread:!1,showContextMenu:!1,onTopicSelected:this.handleContactSelected})))}}])&&vs(Es.prototype,Cs),void(ks&&vs(Es,ks)),Os);function Os(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Os),(t=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?ys(e):t}(this,_s(Os).call(this,e))).state={tabSelected:"p2p",searchQuery:null},t.handleTabClick=t.handleTabClick.bind(ys(t)),t.handleSearchContacts=t.handleSearchContacts.bind(ys(t)),t.handleContactSelected=t.handleContactSelected.bind(ys(t)),t.handleNewGroupSubmit=t.handleNewGroupSubmit.bind(ys(t)),t.handleGroupByID=t.handleGroupByID.bind(ys(t)),t}var Ts=Object(C.injectIntl)(Ms);function Ps(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 js(e){return(js=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 Us,Fs,xs,Ds=(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.PureComponent),Us=Rs,(Fs=[{key:"componentDidMount",value:function(){var e=j.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(C.FormattedMessage,{id:"new_password_placeholder",defaultMessage:"Enter new password"},function(e){return E.a.createElement(kn,{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(C.FormattedMessage,{id:"label_reset_password",defaultMessage:"Send a password reset email:"})),E.a.createElement(C.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(C.FormattedMessage,{id:"button_reset",defaultMessage:"Reset"}):E.a.createElement(C.FormattedMessage,{id:"button_send_request",defaultMessage:"Send request"}))))}}])&&Ps(Us.prototype,Fs),void(xs&&Ps(Us,xs)),Rs);function Rs(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Rs),(t=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?Ns(e):t}(this,js(Rs).call(this,e))).state={email:"",password:""},t.handleSubmit=t.handleSubmit.bind(Ns(t)),t.handleEmailChange=t.handleEmailChange.bind(Ns(t)),t.handlePasswordChange=t.handlePasswordChange.bind(Ns(t)),t}function Is(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 Ls(e){return(Ls=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function qs(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Hs(e,t){return(Hs=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Ws,Bs,Vs,Gs=(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&&Hs(e,t)}(Ks,E.a.PureComponent),Ws=Ks,(Bs=[{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 _){var n=_[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))}}])&&Is(Ws.prototype,Bs),void(Vs&&Is(Ws,Vs)),Ks);function Ks(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,Ks),(t=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?qs(e):t}(this,Ls(Ks).call(this,e))).state={hostName:e.serverAddress,changed:!1},t.handleHostNameChange=t.handleHostNameChange.bind(qs(t)),t.handleEditingFinished=t.handleEditingFinished.bind(qs(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 Js(e){return(Js=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 Qs(e,t){return(Qs=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Xs,Zs,$s,el=(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&&Qs(e,t)}(tl,E.a.PureComponent),Xs=tl,(Zs=[{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(C.FormattedMessage,{id:"label_server_to_use",defaultMessage:"Server to use:"}))),E.a.createElement(Gs,{serverAddress:this.state.serverAddress,onServerAddressChange:this.handleServerAddressChange}),E.a.createElement("div",{className:"panel-form-row"},E.a.createElement("label",{className:"small"},E.a.createElement(C.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(C.FormattedMessage,{id:"button_update",defaultMessage:"Update"}))))}}])&&zs(Xs.prototype,Zs),void($s&&zs(Xs,$s)),tl);function tl(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,tl),(t=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?Ys(e):t}(this,Js(tl).call(this,e))).state={transport:e.transport||"def",serverAddress:e.serverAddress},t.handleSubmit=t.handleSubmit.bind(Ys(t)),t.handleTransportSelected=t.handleTransportSelected.bind(Ys(t)),t.handleServerAddressChange=t.handleServerAddressChange.bind(Ys(t)),t}function nl(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 al(e){return(al=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ol(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function il(e,t){return(il=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var rl,sl,ll,cl=Object(C.defineMessages)({phone:{id:"phone_dative",defaultMessage:"phone"},email:{id:"email_dative",defaultMessage:"email"}}),dl=(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&&il(e,t)}(ul,E.a.PureComponent),rl=ul,(sl=[{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(cl.email),tel:e(cl.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(C.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(C.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(C.FormattedMessage,{id:"button_confirm",defaultMessage:"Confirm"})),E.a.createElement("button",{className:"white",onClick:this.handleCancel},E.a.createElement(C.FormattedMessage,{id:"button_cancel"}))))}}])&&nl(rl.prototype,sl),void(ll&&nl(rl,ll)),ul);function ul(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,ul),(t=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?ol(e):t}(this,al(ul).call(this,e))).state={code:e.credCode||""},t.handleChange=t.handleChange.bind(ol(t)),t.handleKeyPress=t.handleKeyPress.bind(ol(t)),t.handleSubmit=t.handleSubmit.bind(ol(t)),t.handleCancel=t.handleCancel.bind(ol(t)),t}var pl=Object(C.injectIntl)(dl);function hl(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 ml(e){return(ml=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function fl(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function gl(e,t){return(gl=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var bl,vl,_l,yl=Object(C.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"}}),wl=(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&&gl(e,t)}(El,E.a.Component),bl=El,(vl=[{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(yl[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(Zi,{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(Lt,{level:this.props.errorLevel,text:this.props.errorText,action:this.props.errorAction,actionText:this.props.errorActionText,onClearError:this.props.onError}),E.a.createElement(Go,{show:this.props.loadSpinnerVisible}),"login"===o?E.a.createElement(Hr,{login:this.props.login,disabled:this.props.loginDisabled,onLogin:this.handleLoginRequested}):"register"===o?E.a.createElement(Cr,{onCreateAccount:this.props.onCreateAccount,onCancel:this.props.onCancel,onError:this.props.onError}):"settings"===o?E.a.createElement(el,{transport:this.props.transport,serverAddress:this.props.serverAddress,onCancel:this.props.onCancel,onUpdate:this.props.onGlobalSettings}):"edit"===o?E.a.createElement(Ar,{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(lr,{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(Ts,{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(pl,{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(Ds,{onRequest:this.props.onPasswordResetRequest,onReset:this.props.onResetPassword}):null)}}])&&hl(bl.prototype,vl),void(_l&&hl(bl,_l)),El);function El(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,El),(t=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?fl(e):t}(this,ml(El).call(this,e))).handleLoginRequested=t.handleLoginRequested.bind(fl(t)),t}var Cl=Object(C.injectIntl)(wl);function kl(){return"object"==typeof window.location&&"https:"==window.location.protocol}function Sl(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 Ml(e){return(Ml=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Ol(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Tl(e,t){return(Tl=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Pl,jl,Nl,Al=new Audio("audio/msg.mp3"),Ul=Object(C.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"}}),Fl=(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&&Tl(e,t)}(xl,E.a.Component),Pl=xl,Nl=[{key:"tnSetup",value:function(e,t){var n=new k.a(v,e,"AQEAAAABAAD_rAp4DJh05a1HAwFT3A6K",t,kl());return n.enableLogging(!0,!0),n}},{key:"prepareSearchableContacts",value:function(e,t){var n={},a=!0,o=!1,i=void 0;try{for(var r,s=e[Symbol.iterator]();!(a=(r=s.next()).done);a=!0){var l=r.value;"p2p"==k.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==s.return||s.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)}}],(jl=[{key:"getBlankState",value:function(){var e=mr.getObject("settings")||{};return{connected:!1,ready:!1,transport:e.transport||null,serverAddress:e.serverAddress||function(){var e=y;return"object"==typeof window.location&&("file:"==window.location.protocol||"localhost"==window.location.hostname?e=_.local:window.location.hostname&&(e=window.location.hostname+(window.location.port?":"+window.location.port:""))),e}(),serverVersion:"no connection",messageSounds:!e.messageSoundsOff,desktopAlerts:e.desktopAlerts,desktopAlertsEnabled:(kl()||"object"==typeof window.location&&"localhost"==window.location.hostname)&&void 0!==s&&"undefined"!=typeof navigator&&"undefined"!=typeof FIREBASE_INIT,firebaseToken:mr.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=xl.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=s.initializeApp(FIREBASE_INIT,v).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=mr.getObject("keep-logged-in")?mr.getObject("auth-token"):void 0,n=j.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]="",j.navigateTo(j.composeUrlHash(n.path,n.params))):n.params.token||j.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(Ul.update_available),"info")}}}},{key:"handleHashRoute",value:function(){var e=j.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:k.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 n=this;if(clearInterval(this.reconnectCountdown),e<0)this.handleError();else if(t)t.then(function(){n.handleError()}).catch(function(e){n.handleError(e.message,"err")});else{var a=this.props.intl.formatHTMLMessage,o=e/1e3;o|=o,this.reconnectCountdown=setInterval(function(){var e=99<o?function(e){var t=Math.floor(e/60),n=e%60;return n=n<10?"0".concat(n):n,"".concat(t,":").concat(n)}(o):o;n.handleError(a(Ul.reconnect_countdown,{seconds:e}),"warn",function(){clearInterval(n.reconnectCountdown),n.tinode.reconnect()},a(Ul.reconnect_now)),o-=1},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())j.navigateTo("");else{n=k.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"),j.navigateTo("")}):(j.navigateTo(""),this.setState({loginDisabled:!1}))}}},{key:"handleCredentialsRequest",value:function(e){var t=j.parseUrlHash(window.location.hash);t.path[0]="cred",t.params.method=e.cred[0],j.navigateTo(j.composeUrlHash(t.path,t.params))}},{key:"handleLoginSuccessful",value:function(){var t=this;this.handleError("",null),mr.getObject("keep-logged-in")&&mr.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"),j.navigateTo("")}).finally(function(){t.setState({loadSpinnerVisible:!1})}),j.navigateTo(j.setUrlSidePanel(window.location.hash,"contacts"))}},{key:"tnMeMetaDesc",value:function(e){e&&e.public&&this.setState({sidePanelTitle:e.public.fn,sidePanelAvatar:ne(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&&(document.hidden?(this.state.messageSounds&&!a&&Al.play(),this.resetContactList()):this.state.topicSelected!=t.topic&&(this.state.messageSounds&&!a&&Al.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(e){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=xl.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)>=k.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:xl.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}),j.navigateTo(j.setUrlTopic("",e)))):(this.setState({errorText:"",errorLevel:null,mobilePanel:"sidepanel",topicSelectedOnline:!1,topicSelectedAcs:null,showInfoPanel:!1}),j.navigateTo(j.setUrlTopic("",null)))}},{key:"handleHideMessagesView",value:function(){this.setState({mobilePanel:"sidepanel"}),j.navigateTo(j.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 r=a.getAccessMode().updateWant("-JP").getWant();o=a.setMeta({sub:{mode:r}}).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(){j.navigateTo(j.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:k.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(){j.navigateTo(j.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=xl.tnSetup(t,n),this.tinode.onConnect=this.handleConnected,this.tinode.onDisconnect=this.handleDisconnect,this.setState({serverAddress:t,transport:n}),mr.setObject("settings",{serverAddress:t,transport:n}),j.navigateTo(j.setUrlSidePanel(window.location.hash,""))}},{key:"handleShowArchive",value:function(){j.navigateTo(j.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}),mr.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}),mr.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(){mr.updateObject("settings",{desktopAlerts:!1}),localStorage.removeItem("firebase-token"),t.setState({desktopAlerts:!1,firebaseToken:null})}):(this.setState({desktopAlerts:!1,firebaseToken:null}),mr.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),mr.setObject("firebase-token",e)),t.setState({firebaseToken:e,desktopAlerts:!0}),mr.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}),mr.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,t){this.handleCredentialsRequest({cred:[e]})}},{key:"handleSidepanelCancel",value:function(){var e=j.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),j.navigateTo(j.composeUrlHash(e.path,e.params)),this.setState({errorText:"",errorLevel:null})}},{key:"handleNewTopic",value:function(){j.navigateTo(j.setUrlSidePanel(window.location.hash,"newtpk"))}},{key:"handleNewTopicRequest",value:function(e,t,n,a){var o=this,i=e||this.tinode.newGroupTopicName(),r={_topicName:i};e?(r.sub={mode:w},r.desc={defacs:{auth:w}}):(r.desc={public:t,private:{comment:n}},r.tags=a),this.setState({newTopicParams:r},function(){o.handleTopicSelected(i)})}},{key:"handleNewTopicCreated",value:function(e,t){this.state.topicSelected==e&&e!=t&&this.setState({topicSelected:t},function(){j.navigateTo(j.setUrlTopic("",t))})}},{key:"handleTopicUpdateRequest",value:function(e,t,n,a){var o=this,i=this.tinode.getTopic(e);if(i){var r={};t&&(r.public=t),n&&(r.private=n===k.a.DEL_CHAR?k.a.DEL_CHAR:{comment:n}),a&&(r.defacs=a),i.setMeta({desc:r}).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(){ta(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=xl.tnSetup(this.state.serverAddress,this.state.transport),this.tinode.onConnect=this.handleConnected,this.tinode.onDisconnect=this.handleDisconnect,j.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){j.navigateTo(j.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){j.navigateTo(j.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(k.a.TOPIC_SYS,k.a.Drafty.attachJSON(null,{action:"report",target:e})),n.updateMode(null,"-JP").then(function(e){j.navigateTo(j.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,r=!1,s=!1,l=!1;if(t){r=t.isSubscribed(),l=t.isArchived();var c=t.getAccessMode();c&&(a=c.isMuted(),o=!c.isJoiner(),i=!c.isJoiner("want"),s=c.isDeleter())}return[r?{title:n({id:"menu_item_info"}),handler:this.handleShowInfoView}:null,r?"messages_clear":null,r&&s?"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(){j.navigateTo(j.addUrlParam(window.location.hash,"info",!0)),this.setState({showInfoPanel:!0})}},{key:"handleHideInfoView",value:function(){j.navigateTo(j.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(){j.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(W,{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(g,{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(Cl,{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(Mi,{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(ka,{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)}}])&&Sl(Pl.prototype,jl),void(Nl&&Sl(Pl,Nl)),xl);function xl(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,xl),(t=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?Ol(e):t}(this,Ml(xl).call(this,e))).state=t.getBlankState(),t.handleResize=t.handleResize.bind(Ol(t)),t.handleHashRoute=t.handleHashRoute.bind(Ol(t)),t.handleOnline=t.handleOnline.bind(Ol(t)),t.checkForAppUpdate=t.checkForAppUpdate.bind(Ol(t)),t.handleAppVisibility=t.handleAppVisibility.bind(Ol(t)),t.handleReadTimer=t.handleReadTimer.bind(Ol(t)),t.handleVisibilityEvent=t.handleVisibilityEvent.bind(Ol(t)),t.handleError=t.handleError.bind(Ol(t)),t.handleLoginRequest=t.handleLoginRequest.bind(Ol(t)),t.handleConnected=t.handleConnected.bind(Ol(t)),t.handleAutoreconnectIteration=t.handleAutoreconnectIteration.bind(Ol(t)),t.doLogin=t.doLogin.bind(Ol(t)),t.handleCredentialsRequest=t.handleCredentialsRequest.bind(Ol(t)),t.handleLoginSuccessful=t.handleLoginSuccessful.bind(Ol(t)),t.handleDisconnect=t.handleDisconnect.bind(Ol(t)),t.tnMeMetaDesc=t.tnMeMetaDesc.bind(Ol(t)),t.tnMeContactUpdate=t.tnMeContactUpdate.bind(Ol(t)),t.tnMeSubsUpdated=t.tnMeSubsUpdated.bind(Ol(t)),t.resetContactList=t.resetContactList.bind(Ol(t)),t.tnData=t.tnData.bind(Ol(t)),t.tnInitFind=t.tnInitFind.bind(Ol(t)),t.tnFndSubsUpdated=t.tnFndSubsUpdated.bind(Ol(t)),t.handleSearchContacts=t.handleSearchContacts.bind(Ol(t)),t.handleTopicSelected=t.handleTopicSelected.bind(Ol(t)),t.handleHideMessagesView=t.handleHideMessagesView.bind(Ol(t)),t.handleSendMessage=t.handleSendMessage.bind(Ol(t)),t.handleNewChatInvitation=t.handleNewChatInvitation.bind(Ol(t)),t.handleNewAccount=t.handleNewAccount.bind(Ol(t)),t.handleNewAccountRequest=t.handleNewAccountRequest.bind(Ol(t)),t.handleUpdateAccountRequest=t.handleUpdateAccountRequest.bind(Ol(t)),t.handleUpdateAccountTagsRequest=t.handleUpdateAccountTagsRequest.bind(Ol(t)),t.handleSettings=t.handleSettings.bind(Ol(t)),t.handleGlobalSettings=t.handleGlobalSettings.bind(Ol(t)),t.handleShowArchive=t.handleShowArchive.bind(Ol(t)),t.handleToggleMessageSounds=t.handleToggleMessageSounds.bind(Ol(t)),t.handleCredAdd=t.handleCredAdd.bind(Ol(t)),t.handleCredDelete=t.handleCredDelete.bind(Ol(t)),t.handleCredConfirm=t.handleCredConfirm.bind(Ol(t)),t.initDesktopAlerts=t.initDesktopAlerts.bind(Ol(t)),t.togglePushToken=t.togglePushToken.bind(Ol(t)),t.requestPushToken=t.requestPushToken.bind(Ol(t)),t.handleSidepanelCancel=t.handleSidepanelCancel.bind(Ol(t)),t.handleNewTopic=t.handleNewTopic.bind(Ol(t)),t.handleNewTopicRequest=t.handleNewTopicRequest.bind(Ol(t)),t.handleNewTopicCreated=t.handleNewTopicCreated.bind(Ol(t)),t.handleTopicUpdateRequest=t.handleTopicUpdateRequest.bind(Ol(t)),t.handleChangePermissions=t.handleChangePermissions.bind(Ol(t)),t.handleTagsUpdated=t.handleTagsUpdated.bind(Ol(t)),t.handleLogout=t.handleLogout.bind(Ol(t)),t.handleDeleteMessagesRequest=t.handleDeleteMessagesRequest.bind(Ol(t)),t.handleLeaveUnsubRequest=t.handleLeaveUnsubRequest.bind(Ol(t)),t.handleBlockTopicRequest=t.handleBlockTopicRequest.bind(Ol(t)),t.handleReportTopic=t.handleReportTopic.bind(Ol(t)),t.handleShowContextMenu=t.handleShowContextMenu.bind(Ol(t)),t.defaultTopicContextMenu=t.defaultTopicContextMenu.bind(Ol(t)),t.handleHideContextMenu=t.handleHideContextMenu.bind(Ol(t)),t.handleShowAlert=t.handleShowAlert.bind(Ol(t)),t.handleShowInfoView=t.handleShowInfoView.bind(Ol(t)),t.handleHideInfoView=t.handleHideInfoView.bind(Ol(t)),t.handleMemberUpdateRequest=t.handleMemberUpdateRequest.bind(Ol(t)),t.handleValidateCredentialsRequest=t.handleValidateCredentialsRequest.bind(Ol(t)),t.handlePasswordResetRequest=t.handlePasswordResetRequest.bind(Ol(t)),t.handleResetPassword=t.handleResetPassword.bind(Ol(t)),t.handleContextMenuAction=t.handleContextMenuAction.bind(Ol(t)),t}var Dl=Object(C.injectIntl)(Fl),Rl=j.parseUrlHash(window.location.hash).params,Il=Rl&&Rl.hl||navigator.languages&&navigator.languages[0]||navigator.language||navigator.userLanguage||"en",Ll=Il.toLowerCase().split(/[-_]/)[0],ql=r[Il]||r[Ll]||r.en;i.a.render(E.a.createElement(C.IntlProvider,{locale:Il,messages:ql,textComponent:E.a.Fragment},E.a.createElement(Dl,null)),document.getElementById("mountPoint"))}]);
|
||
//# sourceMappingURL=index.prod.js.map
|