2 lines
252 KiB
JavaScript
2 lines
252 KiB
JavaScript
!function(e){var t={};function n(a){if(t[a])return t[a].exports;var o=t[a]={i:a,l:!1,exports:{}};return e[a].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,a){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:a})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(n.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(a,o,function(t){return e[t]}.bind(null,o));return a},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=7)}([function(e,t){e.exports=React},function(e,t){e.exports=ReactIntl},function(e,t,n){(function(t){e.exports=function(){var e={exports:{}},n=[{name:"ST",start:/(?:^|\W)(\*)[^\s*]/,end:/[^\s*](\*)(?=$|\W)/},{name:"EM",start:/(?:^|[\W_])(_)[^\s_]/,end:/[^\s_](_)(?=$|[\W_])/},{name:"DL",start:/(?:^|\W)(~)[^\s~]/,end:/[^\s~](~)(?=$|\W)/},{name:"CO",start:/(?:^|\W)(`)[^`]/,end:/[^`](`)(?=$|\W)/}],a=[{name:"LN",dataName:"url",pack:function(e){return/^[a-z]+:\/\//i.test(e)||(e="http://"+e),{url:e}},re:/(?:(?:https?|ftp):\/\/|www\.|ftp\.)[-A-Z0-9+&@#\/%=~_|$?!:,.]*[A-Z0-9+&@#\/%=~_|$]/gi},{name:"MN",dataName:"val",pack:function(e){return{val:e.slice(1)}},re:/\B@(\w\w+)/g},{name:"HT",dataName:"val",pack:function(e){return{val:e.slice(1)}},re:/\B#(\w\w+)/g}],o={ST:{name:"b",isVoid:!1},EM:{name:"i",isVoid:!1},DL:{name:"del",isVoid:!1},CO:{name:"tt",isVoid:!1},BR:{name:"br",isVoid:!0},LN:{name:"a",isVoid:!1},MN:{name:"a",isVoid:!1},HT:{name:"a",isVoid:!1},IM:{name:"img",isVoid:!0},FM:{name:"div",isVoid:!1},RW:{name:"div",isVoid:!1},BN:{name:"button",isVoid:!1},HD:{name:"",isVoid:!1}};function r(e,t){var n;try{n=atob(e)}catch(e){console.log("Drafty: failed to decode base64-encoded object",e.message),n=atob("")}for(var a=n.length,o=new ArrayBuffer(a),r=new Uint8Array(o),i=0;i<a;i++)r[i]=n.charCodeAt(i);return URL.createObjectURL(new Blob([o],{type:t}))}var i={ST:{open:function(){return"<b>"},close:function(){return"</b>"}},EM:{open:function(){return"<i>"},close:function(){return"</i>"}},DL:{open:function(){return"<del>"},close:function(){return"</del>"}},CO:{open:function(){return"<tt>"},close:function(){return"</tt>"}},BR:{open:function(){return"<br/>"},close:function(){return""}},HD:{open:function(){return""},close:function(){return""}},LN:{open:function(e){return'<a href="'+e.url+'">'},close:function(e){return"</a>"},props:function(e){return e?{href:e.url,target:"_blank"}:null}},MN:{open:function(e){return'<a href="#'+e.val+'">'},close:function(e){return"</a>"},props:function(e){return e?{name:e.val}:null}},HT:{open:function(e){return'<a href="#'+e.val+'">'},close:function(e){return"</a>"},props:function(e){return e?{name:e.val}:null}},BN:{open:function(e){return"<button>"},close:function(e){return"</button>"},props:function(e){return e?{"data-act":e.act,"data-val":e.val,"data-name":e.name,"data-ref":e.ref}:null}},IM:{open:function(e){var t=r(e.val,e.mime),n=e.ref?e.ref:t;return(e.name?'<a href="'+n+'" download="'+e.name+'">':"")+'<img src="'+t+'"'+(e.width?' width="'+e.width+'"':"")+(e.height?' height="'+e.height+'"':"")+' border="0" />'},close:function(e){return e.name?"</a>":""},props:function(e){return e?{src:r(e.val,e.mime),title:e.name,"data-width":e.width,"data-height":e.height,"data-name":e.name,"data-size":.75*e.val.length|0,"data-mime":e.mime}:null}},FM:{open:function(e){return"<div>"},close:function(e){return"</div>"}},RW:{open:function(e){return"<div>"},close:function(e){return"</div>"}}},s=function(){};s.parse=function(e){if("string"!=typeof e)return null;var t=e.split(/\r?\n/),o=[],r={},i=[];t.map(function(e){var t,s,l=[];if(n.map(function(t){l=l.concat(function(e,t,n,a){for(var o=[],r=0,i=e.slice(0);i.length>0;){var s=t.exec(i);if(null==s)break;var l=s.index+s[0].lastIndexOf(s[1]);i=i.slice(l+1),r=(l+=r)+1;var c=n?n.exec(i):null;if(null==c)break;var u=c.index+c[0].indexOf(c[1]);i=i.slice(u+1),r=(u+=r)+1,o.push({text:e.slice(l+1,u),children:[],start:l,end:u,type:a})}return o}(e,t.start,t.end,t.name))}),0==l.length)s={txt:e};else{l.sort(function(e,t){return e.start-t.start}),l=function e(t){if(0==t.length)return[];for(var n=[t[0]],a=t[0],o=1;o<t.length;o++)t[o].start>a.end?(n.push(t[o]),a=t[o]):t[o].end<a.end&&a.children.push(t[o]);for(var o in n)n[o].children=e(n[o].children);return n}(l);var c=function e(t,n){var a="",o=[];for(var r in t){var i=t[r];if(!i.text){var s=e(i.children,a.length+n);i.text=s.txt,o=o.concat(s.fmt)}i.type&&o.push({at:a.length+n,len:i.text.length,tp:i.type}),a+=i.text}return{txt:a,fmt:o}}(function e(t,n,a,o){var r=[];if(0==o.length)return[];for(var i in o){var s=o[i];s.start>n&&r.push({text:t.slice(n,s.start)});var l={type:s.type},c=e(t,s.start+1,s.end-1,s.children);c.length>0?l.children=c:l.text=s.text,r.push(l),n=s.end+1}return n<a&&r.push({text:t.slice(n,a)}),r}(e,0,e.length,l),0);s={txt:c.txt,fmt:c.fmt}}if((t=function(e){var t,n=[];if(a.map(function(a){for(;null!==(t=a.re.exec(e));)n.push({offset:t.index,len:t[0].length,unique:t[0],data:a.pack(t[0]),type:a.name})}),0==n.length)return n;n.sort(function(e,t){return e.offset-t.offset});var o=-1;return n=n.filter(function(e){var t=e.offset>o;return o=e.offset+e.len,t})}(s.txt)).length>0){var u=[];for(var d in t){var p=t[d],h=r[p.unique];h||(h=o.length,r[p.unique]=h,o.push({tp:p.type,data:p.data})),u.push({at:p.offset,len:p.len,key:h})}s.ent=u}i.push(s)});var s={txt:""};if(i.length>0){s.txt=i[0].txt,s.fmt=(i[0].fmt||[]).concat(i[0].ent||[]);for(var l=1;l<i.length;l++){var c=i[l],u=s.txt.length+1;s.fmt.push({tp:"BR",len:1,at:u-1}),s.txt+=" "+c.txt,c.fmt&&(s.fmt=s.fmt.concat(c.fmt.map(function(e){return e.at+=u,e}))),c.ent&&(s.fmt=s.fmt.concat(c.ent.map(function(e){return e.at+=u,e})))}0==s.fmt.length&&delete s.fmt,o.length>0&&(s.ent=o)}return s},s.insertImage=function(e,t,n,a,o,r,i,s,l){return(e=e||{txt:" "}).ent=e.ent||[],e.fmt=e.fmt||[],e.fmt.push({at:t,len:1,key:e.ent.length}),e.ent.push({tp:"IM",data:{mime:n,val:a,width:o,height:r,name:i,ref:l,size:0|s}}),e},s.appendImage=function(e,t,n,a,o,r,i,l){return(e=e||{txt:""}).txt+=" ",s.insertImage(e,e.txt.length-1,t,n,a,o,r,i,l)},s.attachFile=function(e,t,n,a,o,r){(e=e||{txt:""}).ent=e.ent||[],e.fmt=e.fmt||[],e.fmt.push({at:-1,len:0,key:e.ent.length});var i={tp:"EX",data:{mime:t,val:n,name:a,ref:r,size:0|o}};return r instanceof Promise&&(i.data.ref=r.then(function(e){i.data.ref=e},function(e){})),e.ent.push(i),e},s.wrapAsForm=function(e,t,n){return"string"==typeof e&&(e={txt:e}),e.fmt=e.fmt||[],e.fmt.push({at:t,len:n,tp:"FM"}),e},s.insertButton=function(e,t,n,a,o,r,i){return"string"==typeof e&&(e={txt:e}),!e||!e.txt||e.txt.length<t+n?null:n<=0||-1==["url","pub"].indexOf(o)?null:"url"!=o||i?(i=""+i,e.ent=e.ent||[],e.fmt=e.fmt||[],e.fmt.push({at:t,len:n,key:e.ent.length}),e.ent.push({tp:"BN",data:{act:o,val:r,ref:i,name:a}}),e):null},s.appendButton=function(e,t,n,a,o,r){var i=(e=e||{txt:""}).txt.length;return e.txt+=t,s.insertButton(e,i,t.length,n,a,o,r)},s.attachJSON=function(e,t){return(e=e||{txt:""}).ent=e.ent||[],e.fmt=e.fmt||[],e.fmt.push({at:-1,len:0,key:e.ent.length}),e.ent.push({tp:"EX",data:{mime:"application/json",val:t}}),e},s.appendLineBreak=function(e){return(e=e||{txt:""}).fmt=e.fmt||[],e.fmt.push({at:e.txt.length,len:1,tp:"BR"}),e.txt+=" ",e},s.UNSAFE_toHTML=function(e){var t,n,a,o=e.txt,r=e.fmt,s=e.ent,l=[];if(r)for(var c in r){var u=r[c],d=u.tp,p=void 0;if(!d){var h=s[0|u.key];h&&(d=h.tp,p=h.data)}i[d]&&(l.push({idx:u.at+u.len,len:-u.len,what:i[d].close(p)}),l.push({idx:u.at,len:u.len,what:i[d].open(p)}))}for(var f in l.sort(function(e,t){return t.idx==e.idx?t.len-e.len:t.idx-e.idx}),l)l[f].what&&(t=o,n=l[f].idx,a=l[f].what,o=t.slice(0,n)+a+t.slice(n));return o},s.format=function(e,t,n){var a=e.txt,r=e.fmt,i=e.ent;if(a=a||"",!Array.isArray(r)){if(!Array.isArray(i)||1!=i.length)return[a];r=[{at:0,len:0,key:0}]}var s=[].concat(r);return s.map(function(e){e.at=e.at||0,e.len=e.len||0,e.len<0&&(e.len=0),e.at<-1&&(e.at=-1)}),s.sort(function(e,t){return e.at-t.at==0?t.len-e.len:e.at-t.at}),s=s.map(function(e){var t,n=e.tp;return n||(e.key=e.key||0,i[e.key]?(t=i[e.key].data,n=i[e.key].tp):n="HD"),{tp:n,data:t,at:e.at,len:e.len}}),function e(t,n,a,r,i,s){for(var l=[],c=0;c<r.length;c++){var u=r[c];if(!(u.at<0)){n<u.at&&(l.push(i.call(s,null,void 0,t.slice(n,u.at),l.length)),n=u.at);for(var d=[],p=c+1;p<r.length&&r[p].at<u.at+u.len;p++)d.push(r[p]),c=p;var h=o[u.tp]||{};l.push(i.call(s,u.tp,u.data,h.isVoid?null:e(t,n,u.at+u.len,d,i,s),l.length)),n=u.at+u.len}}return n<a&&l.push(i.call(s,null,void 0,t.slice(n,a),l.length)),l}(a,0,a.length,s,t,n)},s.toPlainText=function(e){return"string"==typeof e?e:e.txt},s.isPlainText=function(e){return"string"==typeof e||!(e.fmt||e.ent)},s.hasAttachments=function(e){if(e.ent&&e.ent.length>0)for(var t in e.ent)if(e.ent[t]&&"EX"==e.ent[t].tp)return!0;return!1},s.attachments=function(e,t,n){if(e.ent&&e.ent.length>0)for(var a in e.ent)e.ent[a]&&"EX"==e.ent[a].tp&&t.call(n,e.ent[a].data,a)},s.getDownloadUrl=function(e){var t=null;return"application/json"!=e.mime&&e.val?t=r(e.val,e.mime):"string"==typeof e.ref&&(t=e.ref),t},s.isUploading=function(e){return e.ref instanceof Promise},s.getPreviewUrl=function(e){return e.val?r(e.val,e.mime):null},s.getEntitySize=function(e){return e.size?e.size:e.val?.75*e.val.length|0:0},s.getEntityMimeType=function(e){return e.mime||"text/plain"},s.tagName=function(e){return o[e]?o[e].name:void 0},s.attrValue=function(e,t){if(t&&i[e])return i[e].props(t)},s.getContentType=function(){return"text/x-drafty"},e.exports=s,e=e.exports;var l={exports:{}};return function(t){"use strict";function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var a,o="0.15.10";"undefined"!=typeof WebSocket&&(a=WebSocket),"undefined"==typeof btoa&&(t.btoa=function(){for(var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n="",a=0,o=0,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";t.charAt(0|o)||(r="=",o%1);n+=r.charAt(63&a>>8-o%1*8)){if((e=t.charCodeAt(o+=.75))>255)throw new Error("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.");a=a<<8|e}return n}),"undefined"==typeof atob&&(t.atob=function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").replace(/=+$/,""),t="";if(e.length%4==1)throw new Error("'atob' failed: The string to be decoded is not correctly encoded.");for(var n,a=0,o=0,r=0;n=e.charAt(r++);~n&&(o=a%4?64*o+n:n,a++%4)?t+=String.fromCharCode(255&o>>(-2*a&6)):0)n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(n);return t}),"undefined"==typeof window&&(t.window={WebSocket:a,URL:{createObjectURL:function(){throw new Error("Unable to use window.URL in a non browser application")}}});var r="0",i=o||"0.15",s="tinodejs/"+i,c=503,u="Connection failed";function d(e){return btoa(encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,function(e,t){return String.fromCharCode("0x"+t)}))}function p(e,t,a){if(null==t)return e;if("object"!=n(t))return t||e;if(t instanceof Date)return t;if(t instanceof w)return new w(t);if(t instanceof Array)return t.length>0?t:e;for(var o in e&&e!==y.DEL_CHAR||(e=t.constructor()),t)!t.hasOwnProperty(o)||!t[o]&&!1!==t[o]||a&&a[o]||"_generated"==o||(e[o]=p(e[o],t[o]));return e}function h(e,t,n,a){return e[t]=p(e[t],n,a),e[t]}function f(){var e=null;if("withCredentials"in new XMLHttpRequest)e=new XMLHttpRequest;else{if("undefined"==typeof XDomainRequest)throw new Error("Browser not supported");e=new XDomainRequest}return e}function m(e,t){if("ts"===e&&"string"==typeof t&&t.length>=20&&t.length<=24){var a=new Date(t);if(a)return a}else if("acs"===e&&"object"===n(t))return new w(t);return t}function g(e,t){return"string"==typeof t&&t.length>128?"<"+t.length+", bytes: "+t.substring(0,12)+"..."+t.substring(t.length-12)+">":function(e,t){if(t instanceof Date)t=function(e){if(e&&0!=e.getTime()){var t=e.getUTCMilliseconds();return e.getUTCFullYear()+"-"+n(e.getUTCMonth()+1)+"-"+n(e.getUTCDate())+"T"+n(e.getUTCHours())+":"+n(e.getUTCMinutes())+":"+n(e.getUTCSeconds())+(t?"."+n(t,3):"")+"Z"}function n(e,t){return"0".repeat((t=t||2)-(""+e).length)+e}}(t);else if(null==t||!1===t||Array.isArray(t)&&0==t.length||"object"==n(t)&&0==Object.keys(t).length)return;return t}(0,t)}function b(e,t,n){var a=null;return"http"!==t&&"https"!==t&&"ws"!==t&&"wss"!==t||(a=t+"://","/"!==(a+=e).charAt(a.length-1)&&(a+="/"),a+="v"+r+"/channels","http"!==t&&"https"!==t||(a+="/lp"),a+="?apikey="+n),a}var v=function(e,t,o,r,i){var s=this,l=e,d=r,p=t,h=i,g=2e3,v=10,y=.3,_=null,w=0,S=!1,E=function(e){s.logger&&s.logger(e)};function k(){var e=this;clearTimeout(_);var t=g*(Math.pow(2,w)*(1+y*Math.random()));w=w>=v?w:w+1,this.onAutoreconnectIteration&&this.onAutoreconnectIteration(t),_=setTimeout(function(){if(E("Reconnecting, iter="+w+", timeout="+t),S)e.onAutoreconnectIteration&&e.onAutoreconnectIteration(-1);else{var n=e.connect();e.onAutoreconnectIteration?e.onAutoreconnectIteration(0,n):n.catch(function(){})}},t)}function C(){clearTimeout(_),_=null,w=0}function M(e){var t=null;e.connect=function(n){return S=!1,t&&t.readyState==t.OPEN?Promise.resolve():(n&&(l=n),new Promise(function(n,o){var r=b(l,d?"wss":"ws",p);E("Connecting to: "+r);var i=new a(r);i.onopen=function(t){e.onOpen&&e.onOpen(),n(),h&&C()},i.onclose=function(n){t=null,e.onDisconnect&&e.onDisconnect(null),!S&&h&&k.call(e)},i.onerror=function(e){o(e)},i.onmessage=function(t){e.onMessage&&e.onMessage(t.data)},t=i}))},e.reconnect=function(){C(),e.connect()},e.disconnect=function(){S=!0,t&&(C(),t.close(),t=null)},e.sendText=function(e){if(!t||t.readyState!=t.OPEN)throw new Error("Websocket is not connected");t.send(e)},e.isConnected=function(){return t&&t.readyState==t.OPEN},e.transport=function(){return"ws"},e.probe=function(){e.sendText("1")}}function T(e){var t=null,n=null,a=null;e.connect=function(a){return S=!1,n?Promise.resolve():(a&&(l=a),new Promise(function(a,o){var r=b(l,d?"https":"http",p);E("Connecting to: "+r),(n=function n(a,o,r){var i=f(),s=!1;return i.onreadystatechange=function(l){if(4==i.readyState)if(201==i.status){var d=JSON.parse(i.responseText,m);t=a+"&sid="+d.ctrl.params.sid,(i=n(t)).send(null),e.onOpen&&e.onOpen(),o&&(s=!0,o()),h&&C()}else if(i.status<400)e.onMessage&&e.onMessage(i.responseText),(i=n(t)).send(null);else{if(r&&!s&&(s=!0,r(i.responseText)),e.onMessage&&i.responseText&&e.onMessage(i.responseText),e.onDisconnect){var p=i.status||c,f=i.responseText||u;e.onDisconnect(new Error(f+"("+p+")"))}i=null,!S&&h&&k.call(e)}},i.open("GET",a,!0),i}(r,a,o)).send(null)}).catch(function(){}))},e.reconnect=function(){C(),e.connect()},e.disconnect=function(){S=!0,C(),a&&(a.onreadystatechange=void 0,a.abort(),a=null),n&&(n.onreadystatechange=void 0,n.abort(),n=null),e.onDisconnect&&e.onDisconnect(null),t=null},e.sendText=function(e){var n,o;if(n=t,(o=f()).onreadystatechange=function(e){if(4==o.readyState&&o.status>=400)throw new Error("LP sender failed, "+o.status)},o.open("POST",n,!0),!(a=o)||1!=a.readyState)throw new Error("Long poller failed to connect");a.send(e)},e.isConnected=function(){return n&&!0},e.transport=function(){return"lp"},e.probe=function(){e.sendText("1")}}"lp"===o?T(this):"ws"===o?M(this):"object"==("undefined"==typeof window?"undefined":n(window))&&window.WebSocket?M(this):T(this),this.onMessage=void 0,this.onDisconnect=void 0,this.onOpen=void 0,this.onAutoreconnectIteration=void 0,this.logger=void 0},y=function(e,t,a,o,r,l){var d=this;this._appName=e||"Undefined",this._apiKey=a,this._browser="",this._platform=l,this._hwos="undefined",this._humanLanguage="xx","undefined"!=typeof navigator&&(this._browser=function(e,t){e=e||"";var n="";/reactnative/i.test(t)&&(n="ReactNative; ");var a,o=(e=e.replace(" (KHTML, like Gecko)","")).match(/(AppleWebKit\/[.\d]+)/i);if(o){for(var r=["chrome","safari","mobile","version"],i=e.substr(o.index+o[0].length).split(" "),s=[],l=function(e){var t=/([\w.]+)[\/]([\.\d]+)/.exec(i[e]);t&&s.push([t[1],t[2],r.findIndex(function(e){return e==t[1].toLowerCase()})])},c=0;c<i.length;c++)l(c);s.sort(function(e,t){var n=e[2]-t[2];return 0!=n?n:t[0].length-e[0].length}),a=s.length>0?s[0][0]+"/"+s[0][1]:o[1]}else a=/trident/i.test(e)?(o=/(?:\brv[ :]+([.\d]+))|(?:\bMSIE ([.\d]+))/g.exec(e))?"MSIE/"+(o[1]||o[2]):"MSIE/?":/firefox/i.test(e)?(o=/Firefox\/([.\d]+)/g.exec(e))?"Firefox/"+o[1]:"Firefox/?":/presto/i.test(e)?(o=/Opera\/([.\d]+)/g.exec(e))?"Opera/"+o[1]:"Opera/?":(o=/([\w.]+)\/([.\d]+)/.exec(e))?o[1]+"/"+o[2]:(o=e.split(" "))[0];if((o=a.split("/")).length>1){var u=o[1].split(".");a=o[0]+"/"+u[0]+(u[1]?"."+u[1]:"")}return n+a}(navigator.userAgent,navigator.product),this._hwos=navigator.platform,this._humanLanguage=navigator.language||"en-US"),this._loggingEnabled=!1,this._trimLongStrings=!1,this._myUID=null,this._authenticated=!1,this._login=null,this._authToken=null,this._inPacketCount=0,this._messageId=Math.floor(65535*Math.random()+65535),this._serverInfo=null,this._deviceToken=null,this._pendingPromises={},this._connection=new v(t,a,o,r,!0),this.logger=function(e){if(d._loggingEnabled){var t=new Date,n=("0"+t.getUTCHours()).slice(-2)+":"+("0"+t.getUTCMinutes()).slice(-2)+":"+("0"+t.getUTCSeconds()).slice(-2)+":"+("0"+t.getUTCMilliseconds()).slice(-3);console.log("["+n+"] "+e)}},this._connection.logger=this.logger,this._cache={};var h=this.cachePut=function(e,t,n){d._cache[e+":"+t]=n},f=this.cacheGet=function(e,t){return d._cache[e+":"+t]},b=this.cacheDel=function(e,t){delete d._cache[e+":"+t]},y=this.cacheMap=function(e,t){for(var n in d._cache)if(e(d._cache[n],n,t))break};this.attachCacheToTopic=function(e){e._tinode=d,e._cacheGetUser=function(e){var t=f("user",e);if(t)return{user:e,public:p({},t)}},e._cachePutUser=function(e,t){return h("user",e,p({},t.public))},e._cacheDelUser=function(e){return b("user",e)},e._cachePutSelf=function(){return h("topic",e.name,e)},e._cacheDelSelf=function(){return b("topic",e.name)}};var _=function(e,t,n,a){var o=d._pendingPromises[e];o&&(delete d._pendingPromises[e],t>=200&&t<400?o.resolve&&o.resolve(n):o.reject&&o.reject(new Error("Error: "+a+" ("+t+")")))},w=this.getNextUniqueId=function(){return 0!=d._messageId?""+d._messageId++:void 0};this.initPacket=function(e,t){switch(e){case"hi":return{hi:{id:w(),ver:i,ua:d._appName+" ("+(d._browser?d._browser+"; ":"")+d._hwos+"); "+s,dev:d._deviceToken,lang:d._humanLanguage,platf:d._platform}};case"acc":return{acc:{id:w(),user:null,scheme:null,secret:null,login:!1,tags:null,desc:{},cred:{}}};case"login":return{login:{id:w(),scheme:null,secret:null}};case"sub":return{sub:{id:w(),topic:t,set:{},get:{}}};case"leave":return{leave:{id:w(),topic:t,unsub:!1}};case"pub":return{pub:{id:w(),topic:t,noecho:!1,head:null,content:{}}};case"get":return{get:{id:w(),topic:t,what:null,desc:{},sub:{},data:{}}};case"set":return{set:{id:w(),topic:t,desc:{},sub:{},tags:[]}};case"del":return{del:{id:w(),topic:t,what:null,delseq:null,user:null,hard:!1}};case"note":return{note:{topic:t,what:null,seq:void 0}};default:throw new Error("Unknown packet type requested: "+e)}},this.send=function(e,t){var a;t&&(a=function(e){var t=null;return e&&(t=new Promise(function(t,n){d._pendingPromises[e]={resolve:t,reject:n}})),t}(t)),e=function e(t){return Object.keys(t).forEach(function(a){"_"==a[0]?delete t[a]:t[a]?Array.isArray(t[a])&&0==t[a].length?delete t[a]:t[a]?"object"!=n(t[a])||t[a]instanceof Date||(e(t[a]),0==Object.getOwnPropertyNames(t[a]).length&&delete t[a]):delete t[a]:delete t[a]}),t}(e);var o=JSON.stringify(e);d.logger("out: "+(d._trimLongStrings?JSON.stringify(e,g):o));try{d._connection.sendText(o)}catch(e){if(!t)throw e;_(t,c,null,e.message)}return a},this.loginSuccessful=function(e){e.params&&e.params.user&&(d._myUID=e.params.user,d._authenticated=e&&e.code>=200&&e.code<300,e.params&&e.params.token&&e.params.expires?d._authToken={token:e.params.token,expires:new Date(e.params.expires)}:d._authToken=null,d.onLogin&&d.onLogin(e.code,e.text))},this._connection.onMessage=function(e){if(e)if(d._inPacketCount++,d.onRawMessage&&d.onRawMessage(e),"0"!==e){var t=JSON.parse(e,m);if(t)if(d.logger("in: "+(d._trimLongStrings?JSON.stringify(t,g):e)),d.onMessage&&d.onMessage(t),t.ctrl){if(d.onCtrlMessage&&d.onCtrlMessage(t.ctrl),t.ctrl.id&&_(t.ctrl.id,t.ctrl.code,t.ctrl,t.ctrl.text),t.ctrl.params&&"data"==t.ctrl.params.what){var n=f("topic",t.ctrl.topic);n&&n._allMessagesReceived(t.ctrl.params.count)}}else if(t.meta){var a=f("topic",t.meta.topic);a&&a._routeMeta(t.meta),d.onMetaMessage&&d.onMetaMessage(t.meta)}else if(t.data){var o=f("topic",t.data.topic);o&&o._routeData(t.data),d.onDataMessage&&d.onDataMessage(t.data)}else if(t.pres){var r=f("topic",t.pres.topic);r&&r._routePres(t.pres),d.onPresMessage&&d.onPresMessage(t.pres)}else if(t.info){var i=f("topic",t.info.topic);i&&i._routeInfo(t.info),d.onInfoMessage&&d.onInfoMessage(t.info)}else d.logger("ERROR: Unknown packet received.");else d.logger("in: "+e),d.logger("ERROR: failed to parse data")}else d.onNetworkProbe&&d.onNetworkProbe()},this._connection.onOpen=function(){d.hello()},this._connection.onAutoreconnectIteration=function(e,t){d.onAutoreconnectIteration&&d.onAutoreconnectIteration(e,t)},this._connection.onDisconnect=function(e){for(var t in d._inPacketCount=0,d._serverInfo=null,d._authenticated=!1,d._pendingPromises){var n=d._pendingPromises[t];n&&n.reject&&n.reject(new Error(u+" ("+c+")"))}d._pendingPromises={},y(function(e,t){0===t.lastIndexOf("topic:",0)&&e._resetSub()}),d.onDisconnect&&d.onDisconnect(e)}};y.credential=function(e,t,a,o){if("object"==n(e)){var r=e;t=r.val,a=r.params,o=r.resp,e=r.meth}return e&&(t||o)?[{meth:e,val:t,resp:o,params:a}]:null},y.topicType=function(e){return{me:"me",fnd:"fnd",grp:"grp",new:"grp",usr:"p2p"}["string"==typeof e?e.substring(0,3):"xxx"]},y.isNewGroupTopicName=function(e){return"string"==typeof e&&"new"==e.substring(0,3)},y.getVersion=function(){return i},y.setWebSocketProvider=function(e){a=e},y.getLibrary=function(){return s},y.MESSAGE_STATUS_NONE=0,y.MESSAGE_STATUS_QUEUED=1,y.MESSAGE_STATUS_SENDING=2,y.MESSAGE_STATUS_FAILED=3,y.MESSAGE_STATUS_SENT=4,y.MESSAGE_STATUS_RECEIVED=5,y.MESSAGE_STATUS_READ=6,y.MESSAGE_STATUS_TO_ME=7,y.DEL_CHAR="␡",y.prototype={connect:function(e){return this._connection.connect(e)},reconnect:function(){this._connection.reconnect()},disconnect:function(){this._connection.disconnect()},networkProbe:function(){this._connection.probe()},isConnected:function(){return this._connection.isConnected()},isAuthenticated:function(){return this._authenticated},account:function(e,t,n,a,o){var r=this.initPacket("acc");return r.acc.user=e,r.acc.scheme=t,r.acc.secret=n,r.acc.login=a,o&&(r.acc.desc.defacs=o.defacs,r.acc.desc.public=o.public,r.acc.desc.private=o.private,r.acc.tags=o.tags,r.acc.cred=o.cred,r.acc.token=o.token),this.send(r,r.acc.id)},createAccount:function(e,t,n,a){var o=this,r=this.account("new",e,t,n,a);return n&&(r=r.then(function(e){return o.loginSuccessful(e),e})),r},createAccountBasic:function(e,t,n){return e=e||"",t=t||"",this.createAccount("basic",d(e+":"+t),!0,n)},updateAccountBasic:function(e,t,n,a){return t=t||"",n=n||"",this.account(e,"basic",d(t+":"+n),!1,a)},hello:function(){var e=this,t=this.initPacket("hi");return this.send(t,t.hi.id).then(function(t){return t.params&&(e._serverInfo=t.params),e.onConnect&&e.onConnect(),t}).catch(function(t){e.onDisconnect&&e.onDisconnect(t)})},setDeviceToken:function(e,t){var n=!1;return e&&e!=this._deviceToken&&(this._deviceToken=e,t&&this.isConnected()&&this.isAuthenticated()&&(this.send({hi:{dev:e}}),n=!0)),n},login:function(e,t,n){var a=this,o=this.initPacket("login");return o.login.scheme=e,o.login.secret=t,o.login.cred=n,this.send(o,o.login.id).then(function(e){return a.loginSuccessful(e),e})},loginBasic:function(e,t,n){var a=this;return this.login("basic",d(e+":"+t),n).then(function(t){return a._login=e,t})},loginToken:function(e,t){return this.login("token",e,t)},requestResetAuthSecret:function(e,t,n){return this.login("reset",d(e+":"+t+":"+n))},getAuthToken:function(){return this._authToken&&this._authToken.expires.getTime()>Date.now()?this._authToken:(this._authToken=null,null)},setAuthToken:function(e){this._authToken=e},subscribe:function(e,t,n){var a=this.initPacket("sub",e);return e||(e="new"),a.sub.get=t,n&&(n.sub&&(a.sub.set.sub=n.sub),y.isNewGroupTopicName(e)&&n.desc&&(a.sub.set.desc=n.desc),n.tags&&(a.sub.set.tags=n.tags)),this.send(a,a.sub.id)},leave:function(e,t){var n=this.initPacket("leave",e);return n.leave.unsub=t,this.send(n,n.leave.id)},createMessage:function(t,n,a){var o=this.initPacket("pub",t),r="string"==typeof n?e.parse(n):n;return r&&!e.isPlainText(r)&&(o.pub.head={mime:e.getContentType()},n=r),o.pub.noecho=a,o.pub.content=n,o.pub},publish:function(e,t,n){return this.publishMessage(this.createMessage(e,t,n))},publishMessage:function(e){return(e=Object.assign({},e)).seq=void 0,e.from=void 0,e.ts=void 0,this.send({pub:e},e.id)},getMeta:function(e,t){var n=this.initPacket("get",e);return n.get=p(n.get,t),this.send(n,n.get.id)},setMeta:function(e,t){var n=this.initPacket("set",e),a=[];return t&&["desc","sub","tags"].map(function(e){t.hasOwnProperty(e)&&(a.push(e),n.set[e]=t[e])}),0==a.length?Promise.reject(new Error("Invalid {set} parameters")):this.send(n,n.set.id)},delMessages:function(e,t,n){var a=this.initPacket("del",e);return a.del.what="msg",a.del.delseq=t,a.del.hard=n,this.send(a,a.del.id)},delTopic:function(e){var t=this,n=this.initPacket("del",e);return n.del.what="topic",this.send(n,n.del.id).then(function(n){return t.cacheDel("topic",e),t.ctrl})},delSubscription:function(e,t){var n=this.initPacket("del",e);return n.del.what="sub",n.del.user=t,this.send(n,n.del.id)},note:function(e,t,n){if(n<=0||n>=268435455)throw new Error("Invalid message id "+n);var a=this.initPacket("note",e);a.note.what=t,a.note.seq=n,this.send(a)},noteKeyPress:function(e){var t=this.initPacket("note",e);t.note.what="kp",this.send(t)},getTopic:function(e){var t=this.cacheGet("topic",e);return!t&&e&&(t="me"==e?new E:"fnd"==e?new k:new S(e),this.cachePut("topic",e,t),this.attachCacheToTopic(t)),t},newTopic:function(e){var t=new S("new",e);return this.attachCacheToTopic(t),t},newGroupTopicName:function(){return"new"+this.getNextUniqueId()},newTopicWith:function(e,t){var n=new S(e,t);return this.attachCacheToTopic(n),n},getMeTopic:function(){return this.getTopic("me")},getFndTopic:function(){return this.getTopic("fnd")},getLargeFileHelper:function(){return new C(this)},getCurrentUserID:function(){return this._myUID},getCurrentLogin:function(){return this._login},getServerInfo:function(){return this._serverInfo},enableLogging:function(e,t){this._loggingEnabled=e,this._trimLongStrings=e&&t},isTopicOnline:function(e){var t=this.getMeTopic(),n=t&&t.getContact(e);return n&&n.online},wantAkn:function(e){this._messageId=e?Math.floor(16777215*Math.random()+16777215):0},onWebsocketOpen:void 0,onConnect:void 0,onDisconnect:void 0,onLogin:void 0,onCtrlMessage:void 0,onDataMessage:void 0,onPresMessage:void 0,onMessage:void 0,onRawMessage:void 0,onNetworkProbe:void 0,onAutoreconnectIteration:void 0};var _=function(e){this.topic=e;var t=e._tinode.getMeTopic();this.contact=t&&t.getContact(e.name),this.what={}};_.prototype={_get_ims:function(){var e=this.contact&&this.contact.updated,t=this.topic._lastDescUpdate||0;return e>t?e:t},withData:function(e,t,n){return this.what.data={since:e,before:t,limit:n},this},withLaterData:function(e){return this.withData(this.topic._maxSeq>0?this.topic._maxSeq+1:void 0,void 0,e)},withEarlierData:function(e){return this.withData(void 0,this.topic._minSeq>0?this.topic._minSeq:void 0,e)},withDesc:function(e){return this.what.desc={ims:e},this},withLaterDesc:function(){return this.withDesc(this._get_ims())},withSub:function(e,t,n){var a={ims:e,limit:t};return"me"==this.topic.getType()?a.topic=n:a.user=n,this.what.sub=a,this},withOneSub:function(e,t){return this.withSub(e,void 0,t)},withLaterOneSub:function(e){return this.withOneSub(this.topic._lastSubsUpdate,e)},withLaterSub:function(e){return this.withSub("p2p"==this.topic.getType()?this._get_ims():this.topic._lastSubsUpdate,e)},withTags:function(){return this.what.tags=!0,this},withDel:function(e,t){return(e||t)&&(this.what.del={since:e,limit:t}),this},withLaterDel:function(e){return this.withDel(this.topic._maxSeq>0?this.topic._maxDel+1:void 0,e)},build:function(){var e={},t=[],n=this;return["data","sub","desc","tags","del"].map(function(a){n.what.hasOwnProperty(a)&&(t.push(a),Object.getOwnPropertyNames(n.what[a]).length>0&&(e[a]=n.what[a]))}),t.length>0?e.what=t.join(" "):e=void 0,e}};var w=function e(t){t&&(this.given="number"==typeof t.given?t.given:e.decode(t.given),this.want="number"==typeof t.want?t.want:e.decode(t.want),this.mode=t.mode?"number"==typeof t.mode?t.mode:e.decode(t.mode):this.given&this.want)};w._NONE=0,w._JOIN=1,w._READ=2,w._WRITE=4,w._PRES=8,w._APPROVE=16,w._SHARE=32,w._DELETE=64,w._OWNER=128,w._BITMASK=w._JOIN|w._READ|w._WRITE|w._PRES|w._APPROVE|w._SHARE|w._DELETE|w._OWNER,w._INVALID=1048576,w.decode=function(e){if(!e)return null;if("number"==typeof e)return e&w._BITMASK;if("N"===e||"n"===e)return w._NONE;for(var t={J:w._JOIN,R:w._READ,W:w._WRITE,P:w._PRES,A:w._APPROVE,S:w._SHARE,D:w._DELETE,O:w._OWNER},n=w._NONE,a=0;a<e.length;a++){var o=t[e.charAt(a).toUpperCase()];o&&(n|=o)}return n},w.encode=function(e){if(null===e||e===w._INVALID)return null;if(e===w._NONE)return"N";for(var t=["J","R","W","P","A","S","D","O"],n="",a=0;a<t.length;a++)0!=(e&1<<a)&&(n+=t[a]);return n},w.update=function(e,t){if(!t||"string"!=typeof t)return e;var n=t.charAt(0);if("+"==n||"-"==n){for(var a=e,o=t.split(/([-+])/),r=1;r<o.length-1;r+=2){n=o[r];var i=w.decode(o[r+1]);if(i==w._INVALID)return e;null!=i&&("+"===n?a|=i:"-"===n&&(a&=~i))}e=a}else(a=w.decode(t))!=w._INVALID&&(e=a);return e},w.prototype={setMode:function(e){return this.mode=w.decode(e),this},updateMode:function(e){return this.mode=w.update(this.mode,e),this},getMode:function(){return w.encode(this.mode)},setGiven:function(e){return this.given=w.decode(e),this},updateGiven:function(e){return this.given=w.update(this.given,e),this},getGiven:function(){return w.encode(this.given)},setWant:function(e){return this.want=w.decode(e),this},updateWant:function(e){return this.want=w.update(this.want,e),this},getWant:function(){return w.encode(this.want)},updateAll:function(e){return e&&(this.updateGiven(e.given),this.updateWant(e.want),this.mode=this.given&this.want),this},isOwner:function(){return 0!=(this.mode&w._OWNER)},isMuted:function(){return 0==(this.mode&w._PRES)},isPresencer:function(){return 0!=(this.mode&w._PRES)},isJoiner:function(){return 0!=(this.mode&w._JOIN)},isReader:function(){return 0!=(this.mode&w._READ)},isWriter:function(){return 0!=(this.mode&w._WRITE)},isApprover:function(){return 0!=(this.mode&w._APPROVE)},isAdmin:function(){return this.isOwner()||this.isApprover()},isSharer:function(){return 0!=(this.mode&w._SHARE)},isDeleter:function(){return 0!=(this.mode&w._DELETE)}};var S=function(e,t){this._tinode=null,this.name=e,this.created=null,this.updated=null,this.touched=null,this.acs=new w(null),this.private=null,this.public=null,this._users={},this._queuedSeqId=268435455,this._maxSeq=0,this._minSeq=0,this._noEarlierMsgs=!1,this._maxDel=0,this._tags=[],this._messages=function(e){var t=[];function n(t,n,a){for(var o=0,r=n.length-1,i=0,s=0,l=!1;o<=r;)if((s=e(n[i=(o+r)/2|0],t))<0)o=i+1;else{if(!(s>0)){l=!0;break}r=i-1}return l?i:a?-1:s<0?i+1:i}function a(e,t){var a=n(e,t,!1);return t.splice(a,0,e),t}return e=e||function(e,t){return e===t?0:e<t?-1:1},{getAt:function(e){return t[e]},put:function(){var e;for(var n in e=1==arguments.length&&Array.isArray(arguments[0])?arguments[0]:arguments)a(e[n],t)},delAt:function(e){var n=t.splice(e,1);if(n&&n.length>0)return n[0]},delRange:function(e,n){return t.splice(e,n-e)},size:function(){return t.length},reset:function(e){t=[]},forEach:function(e,n,a,o){n|=0,a=a||t.length;for(var r=n;r<a;r++)e.call(o,t[r],r)},find:function(e,a){return n(e,t,!a)}}}(function(e,t){return e.seq-t.seq}),this._subscribed=!1,this._lastDescUpdate=null,this._lastSubsUpdate=null,this._new=!0,t&&(this.onData=t.onData,this.onMeta=t.onMeta,this.onPres=t.onPres,this.onInfo=t.onInfo,this.onMetaDesc=t.onMetaDesc,this.onMetaSub=t.onMetaSub,this.onSubsUpdated=t.onSubsUpdated,this.onTagsUpdated=t.onTagsUpdated,this.onDeleteTopic=t.onDeleteTopic,this.onAllMessagesReceived=t.onAllMessagesReceived)};S.prototype={isSubscribed:function(){return this._subscribed},subscribe:function(e,t){var n=this;if(this._subscribed)return Promise.resolve(this);var a=this.name;return this._tinode.subscribe(a||"new",e,t).then(function(e){if(e.code>=300)return e;if(n._subscribed=!0,n.acs=e.params&&e.params.acs?e.params.acs:n.acs,n._new){n._new=!1,n.name=e.topic,n.created=e.ts,n.updated=e.ts,n.touched=e.ts,n._cachePutSelf();var a=n._tinode.getMeTopic();a&&a._processMetaSub([{_generated:!0,topic:n.name,created:e.ts,updated:e.ts,touched:e.ts,acs:n.acs}]),t&&t.desc&&(t.desc._generated=!0,n._processMetaDesc(t.desc))}return e})},createMessage:function(e,t){return this._tinode.createMessage(this.name,e,t)},publish:function(e,t){return this.publishMessage(this.createMessage(e,t))},publishMessage:function(t){var n=this;if(!this._subscribed)return Promise.reject(new Error("Cannot publish on inactive topic"));if(e.hasAttachments(t.content)&&!t.head.attachments){var a=[];e.attachments(t.content,function(e){a.push(e.ref)}),t.head.attachments=a}return t._sending=!0,this._tinode.publishMessage(t).then(function(e){return t._sending=!1,t.seq=e.params.seq,t.ts=e.ts,n._routeData(t),e}).catch(function(e){t._sending=!1,t._failed=!0})},publishDraft:function(e,t){var n=this;if(!t&&!this._subscribed)return Promise.reject(new Error("Cannot publish on inactive topic"));var a=e.seq||this._getQueuedSeqId();return e._generated||(e._generated=!0,e.seq=a,e.ts=new Date,e.from=this._tinode.getCurrentUserID(),e.noecho=!0,this._messages.put(e),this.onData&&this.onData(e)),(t||Promise.resolve()).then(function(){return e._cancelled?{code:300,text:"cancelled"}:n.publishMessage(e)},function(t){e._sending=!1,n._messages.delAt(n._messages.find(e)),n.onData&&n.onData()})},leave:function(e){var t=this;return this._subscribed||e?this._tinode.leave(this.name,e).then(function(n){return t._resetSub(),e&&t._gone(),n}):Promise.reject(new Error("Cannot leave inactive topic"))},getMeta:function(e){return this._subscribed?this._tinode.getMeta(this.name,e):Promise.reject(new Error("Cannot query inactive topic"))},getMessagesPage:function(e,t){var n=this,a=this.startMetaQuery();t?a.withLaterData(e):a.withEarlierData(e);var o=this.getMeta(a.build());return t||(o=o.then(function(e){e&&e.params&&!e.params.count&&(n._noEarlierMsgs=!0)})),o},setMeta:function(e){var t=this;return this._subscribed?(e.tags&&(e.tags=function(e){var t=[];if(Array.isArray(e)){for(var n=0,a=e.length;n<a;n++){var o=e[n];o&&(o=o.trim().toLowerCase()).length>1&&t.push(o)}t.sort().filter(function(e,t,n){return!t||e!=n[t-1]})}return 0==t.length&&t.push(y.DEL_CHAR),t}(e.tags)),this._tinode.setMeta(this.name,e).then(function(n){return n&&n.code>=300?n:(e.sub&&(n.params&&n.params.acs&&(e.sub.acs=n.params.acs,e.sub.updated=n.ts),e.sub.user||(e.sub.user=t._tinode.getCurrentUserID(),e.desc||(e.desc={})),e.sub._generated=!0,t._processMetaSub([e.sub])),e.desc&&(n.params&&n.params.acs&&(e.desc.acs=n.params.acs,e.desc.updated=n.ts),t._processMetaDesc(e.desc)),e.tags&&t._processMetaTags(e.tags),n)})):Promise.reject(new Error("Cannot update inactive topic"))},invite:function(e,t){return this.setMeta({sub:{user:e,mode:t}})},delMessages:function(e,t){var n=this;if(!this._subscribed)return Promise.reject(new Error("Cannot delete messages in inactive topic"));e.sort(function(e,t){return e.low<t.low||e.low==t.low&&(!t.hi||e.hi>=t.hi)});var a=e.reduce(function(e,t){return t.low<268435455&&(!t.hi||t.hi<268435455?e.push(t):e.push({low:t.low,hi:n._maxSeq+1})),e},[]);return(a.length>0?this._tinode.delMessages(this.name,a,t):Promise.resolve({params:{del:0}})).then(function(t){return t.params.del>n._maxDel&&(n._maxDel=t.params.del),e.map(function(e){e.hi?n.flushMessageRange(e.low,e.hi):n.flushMessage(e.low)}),n.onData&&n.onData(),t})},delMessagesAll:function(e){return this.delMessages([{low:1,hi:this._maxSeq+1,_all:!0}],e)},delMessagesList:function(e,t){e.sort(function(e,t){return e-t});var n=e.reduce(function(e,t){if(0==e.length)e.push({low:t});else{var n=e[e.length-1];!n.hi&&t!=n.low+1||t>n.hi?e.push({low:t}):n.hi=n.hi?Math.max(n.hi,t+1):t+1}return e},[]);return this.delMessages(n,t)},delTopic:function(){var e=this;return this._tinode.delTopic(this.name).then(function(t){return e._resetSub(),e._gone(),t})},delSubscription:function(e){var t=this;return this._subscribed?this._tinode.delSubscription(this.name,e).then(function(n){return delete t._users[e],t.onSubsUpdated&&t.onSubsUpdated(Object.keys(t._users)),n}):Promise.reject(new Error("Cannot delete subscription in inactive topic"))},note:function(e,t){var n=this._users[this._tinode.getCurrentUserID()];n?((!n[e]||n[e]<t)&&(this._subscribed?this._tinode.note(this.name,e,t):this._tinode.logger("Not sending {note} on inactive topic")),n[e]=t):this._tinode.logger("note(): user not found "+this._tinode.getCurrentUserID());var a=this._tinode.getMeTopic();a&&a.setMsgReadRecv(this.name,e,t)},noteRecv:function(e){this.note("recv",e)},noteRead:function(e){this.note("read",e)},noteKeyPress:function(){this._subscribed?this._tinode.noteKeyPress(this.name):this._tinode.logger("Cannot send notification in inactive topic")},userDesc:function(e){var t=this._cacheGetUser(e);if(t)return t},subscribers:function(e,t){var n=e||this.onMetaSub;if(n)for(var a in this._users)n.call(t,this._users[a],a,this._users)},tags:function(){return this._tags.slice(0)},subscriber:function(e){return this._users[e]},messages:function(e,t,n,a){var o=e||this.onData;if(o){var r="number"==typeof t?this._messages.find({seq:t}):void 0,i="number"==typeof n?this._messages.find({seq:n},!0):void 0;-1!=r&&-1!=i&&this._messages.forEach(o,r,i,a)}},queuedMessages:function(e,t){if(!e)throw new Error("Callback must be provided");this.messages(e,268435455,void 0,t)},msgReceiptCount:function(e,t){var n=0,a=this._tinode.getCurrentUserID();if(t>0)for(var o in this._users){var r=this._users[o];r.user!==a&&r[e]>=t&&n++}return n},msgReadCount:function(e){return this.msgReceiptCount("read",e)},msgRecvCount:function(e){return this.msgReceiptCount("recv",e)},msgHasMoreMessages:function(e){return e?this.seq>this._maxSeq:this._minSeq>1&&!this._noEarlierMsgs},isNewMessage:function(e){return this._maxSeq<=e},flushMessage:function(e){var t=this._messages.find({seq:e});return t>=0?this._messages.delAt(t):void 0},flushMessageRange:function(e,t){var n=this._messages.find({seq:e});return n>=0?this._messages.delRange(n,this._messages.find({seq:t},!0)):[]},cancelSend:function(e){var t=this._messages.find({seq:e});if(t>=0){var n=this._messages.getAt(t),a=this.msgStatus(n);if(1==a||3==a)return n._cancelled=!0,this._messages.delAt(t),this.onData&&this.onData(),!0}return!1},getType:function(){return y.topicType(this.name)},getAccessMode:function(){return this.acs},getDefaultAccess:function(){return this.defacs},startMetaQuery:function(){return new _(this)},msgStatus:function(e){var t=0;return e.from==this._tinode.getCurrentUserID()?e._sending?t=2:e._failed?t=3:e.seq>=268435455?t=1:this.msgReadCount(e.seq)>0?t=6:this.msgRecvCount(e.seq)>0?t=5:e.seq>0&&(t=4):t=7,t},_routeData:function(e){e.content&&((!this.touched||this.touched<e.ts)&&(this.touched=e.ts),e._generated||this._messages.put(e)),e.seq>this._maxSeq&&(this._maxSeq=e.seq),(e.seq<this._minSeq||0==this._minSeq)&&(this._minSeq=e.seq),this.onData&&this.onData(e);var t=this._tinode.getMeTopic();t&&t.setMsgReadRecv(this.name,"msg",e.seq,e.ts)},_routeMeta:function(e){e.desc&&(this._lastDescUpdate=e.ts,this._processMetaDesc(e.desc)),e.sub&&e.sub.length>0&&(this._lastSubsUpdate=e.ts,this._processMetaSub(e.sub)),e.del&&this._processDelMessages(e.del.clear,e.del.delseq),e.tags&&this._processMetaTags(e.tags),this.onMeta&&this.onMeta(e)},_routePres:function(e){var t;switch(e.what){case"del":this._processDelMessages(e.clear,e.delseq);break;case"on":case"off":(t=this._users[e.src])?t.online="on"==e.what:this._tinode.logger("Presence update for an unknown user",this.name,e.src);break;case"acs":var n="me"==e.src?this._tinode.getCurrentUserID():e.src;if(t=this._users[n])t.acs.updateAll(e.dacs),n==this._tinode.getCurrentUserID()&&this.acs.updateAll(e.dacs),t.acs&&t.acs.mode!=w._NONE||("p2p"==this.getType()&&this.leave(),this._processMetaSub([{user:n,deleted:new Date,_generated:!0}]));else{var a=(new w).updateAll(e.dacs);a&&a.mode!=w._NONE&&((t=this._cacheGetUser(n))?t.acs=a:(t={user:n,acs:a},this.getMeta(this.startMetaQuery().withOneSub(void 0,n).build())),t._generated=!0,t.updated=new Date,this._processMetaSub([t]))}break;default:this._tinode.logger("Ignored presence update",e.what)}this.onPres&&this.onPres(e)},_routeInfo:function(e){if("kp"!==e.what){var t=this._users[e.from];t&&(t[e.what]=e.seq)}this.onInfo&&this.onInfo(e)},_processMetaDesc:function(e,t){if(p(this,e),"string"==typeof this.created&&(this.created=new Date(this.created)),"string"==typeof this.updated&&(this.updated=new Date(this.updated)),"string"==typeof this.touched&&(this.touched=new Date(this.touched)),"me"!==this.name&&!t&&!e._generated){var n=this._tinode.getMeTopic();n&&n._processMetaSub([{_generated:!0,topic:this.name,updated:this.updated,touched:this.touched,acs:this.acs,public:this.public,private:this.private}])}this.onMetaDesc&&this.onMetaDesc(this)},_processMetaSub:function(e){var t=void 0;for(var n in e){var a=e[n];if(a.user){a.updated=new Date(a.updated),a.deleted=a.deleted?new Date(a.deleted):null;var o=null;a.deleted?(delete this._users[a.user],o=a):((o=this._users[a.user])||(o=this._cacheGetUser(a.user)),o=this._updateCachedUser(a.user,a,a._generated)),this.onMetaSub&&this.onMetaSub(o)}else a._generated||(t=a)}t&&this.onMetaDesc&&this.onMetaDesc(t),this.onSubsUpdated&&this.onSubsUpdated(Object.keys(this._users))},_processMetaTags:function(e){1==e.length&&e[0]==y.DEL_CHAR&&(e=[]),this._tags=e,this.onTagsUpdated&&this.onTagsUpdated(e)},_processDelMessages:function(e,t){this._maxDel=Math.max(e,this._maxDel),this.clear=Math.max(e,this.clear);var n=this,a=0;Array.isArray(t)&&t.map(function(e){if(e.hi)for(var t=e.low;t<e.hi;t++)a++,n.flushMessage(t);else a++,n.flushMessage(e.low)}),a>0&&this.onData&&this.onData()},_allMessagesReceived:function(e){this.onAllMessagesReceived&&this.onAllMessagesReceived(e)},_resetSub:function(){this._subscribed=!1},_gone:function(){this._messages.reset(),this._users={},this.acs=new w(null),this.private=null,this.public=null,this._maxSeq=0,this._minSeq=0,this._subscribed=!1;var e=this._tinode.getMeTopic();e&&e._routePres({_generated:!0,what:"gone",topic:"me",src:this.name}),this.onDeleteTopic&&this.onDeleteTopic()},_updateCachedUser:function(e,t,n){var a=this._cacheGetUser(e);return a?a=p(a,t):(n&&this.getMeta(this.startMetaQuery().withLaterOneSub(e).build()),a=p({},t)),this._cachePutUser(e,a),h(this._users,e,a)},_getQueuedSeqId:function(){return this._queuedSeqId++}};var E=function(e){S.call(this,"me",e),this._contacts={},e&&(this.onContactUpdate=e.onContactUpdate)};E.prototype=Object.create(S.prototype,{_processMetaSub:{value:function(e){var t=0;for(var n in e){var a=e[n],o=a.topic;if("fnd"!=o&&"me"!=o){a.updated=new Date(a.updated),a.touched=a.touched?new Date(a.touched):null,a.deleted=a.deleted?new Date(a.deleted):null,a.seq=0|a.seq,a.recv=0|a.recv,a.read=0|a.read,a.unread=a.seq-a.read;var r=null;if(a.deleted)r=a,delete this._contacts[o];else if(a.seen&&a.seen.when&&(a.seen.when=new Date(a.seen.when)),r=h(this._contacts,o,a),"p2p"==y.topicType(o)&&this._cachePutUser(o,r),!a._generated){var i=this._tinode.getTopic(o);i&&i._processMetaDesc(a,!0)}t++,this.onMetaSub&&this.onMetaSub(r)}}t>0&&this.onSubsUpdated&&this.onSubsUpdated(Object.keys(this._contacts))},enumerable:!0,configurable:!0,writable:!1},_routePres:{value:function(e){var t=this._contacts[e.src];if(t){switch(e.what){case"on":t.online=!0;break;case"off":t.online&&(t.online=!1,t.seen?t.seen.when=new Date:t.seen={when:new Date});break;case"msg":t.touched=new Date,t.seq=0|e.seq,t.unread=t.seq-t.read;break;case"upd":this.getMeta(this.startMetaQuery().withLaterOneSub(e.src).build());break;case"acs":t.acs?t.acs.updateAll(e.dacs):t.acs=(new w).updateAll(e.dacs);break;case"ua":t.seen={when:new Date,ua:e.ua};break;case"recv":t.recv=t.recv?Math.max(t.recv,e.seq):0|e.seq;break;case"read":t.read=t.read?Math.max(t.read,e.seq):0|e.seq,t.unread=t.seq-t.read;break;case"gone":delete this._contacts[e.src]}this.onContactUpdate&&this.onContactUpdate(e.what,t)}else if("acs"==e.what){var n=new w(e.dacs);if(!n||n.mode==w._INVALID)return void this._tinode.logger("Invalid access mode update",e.src,e.dacs);if(n.mode==w._NONE)return void this._tinode.logger("Removing non-existent subscription",e.src,e.dacs);this.getMeta(this.startMetaQuery().withOneSub(void 0,e.src).build()),this._contacts[e.src]={topic:e.src,online:!1,acs:n}}this.onPres&&this.onPres(e)},enumerable:!0,configurable:!0,writable:!1},publish:{value:function(){return Promise.reject(new Error("Publishing to 'me' is not supported"))},enumerable:!0,configurable:!0,writable:!1},contacts:{value:function(e,t){var n=e||this.onMetaSub;if(n)for(var a in this._contacts)n.call(t,this._contacts[a],a,this._contacts)},enumerable:!0,configurable:!0,writable:!0},setMsgReadRecv:{value:function(e,t,n,a){var o,r=this._contacts[e],i=!1;if(r){switch(n|=0,t){case"recv":o=r.recv,r.recv=r.recv?Math.max(r.recv,n):n,i=o!=r.recv;break;case"read":o=r.read,r.read=r.read?Math.max(r.read,n):n,r.unread=r.seq-r.read,i=o!=r.read,r.recv<r.read&&(r.recv=r.read,i=!0);break;case"msg":o=r.seq,r.seq=r.seq?Math.max(r.seq,n):n,r.unread=r.seq-r.read,(!r.touched||r.touched<a)&&(r.touched=a),i=o!=r.seq}!i||r.acs&&r.acs.isMuted()||!this.onContactUpdate||this.onContactUpdate(t,r)}},enumerable:!0,configurable:!0,writable:!0},getContact:{value:function(e){return this._contacts[e]},enumerable:!0,configurable:!0,writable:!0},getAccessMode:{value:function(e){var t=this._contacts[e];return t?t.acs:null},enumerable:!0,configurable:!0,writable:!0}}),E.prototype.constructor=E;var k=function(e){S.call(this,"fnd",e),this._contacts={}};k.prototype=Object.create(S.prototype,{_processMetaSub:{value:function(e){var t=Object.getOwnPropertyNames(this._contacts).length;for(var n in this._contacts={},e){var a=e[n],o=a.topic?a.topic:a.user;a.updated=new Date(a.updated),a.seen&&a.seen.when&&(a.seen.when=new Date(a.seen.when)),a=h(this._contacts,o,a),t++,this.onMetaSub&&this.onMetaSub(a)}t>0&&this.onSubsUpdated&&this.onSubsUpdated(Object.keys(this._contacts))},enumerable:!0,configurable:!0,writable:!1},publish:{value:function(){return Promise.reject(new Error("Publishing to 'fnd' is not supported"))},enumerable:!0,configurable:!0,writable:!1},setMeta:{value:function(e){var t=this;return Object.getPrototypeOf(k.prototype).setMeta.call(this,e).then(function(){Object.keys(t._contacts).length>0&&(t._contacts={},t.onSubsUpdated&&t.onSubsUpdated([]))})},enumerable:!0,configurable:!0,writable:!1},contacts:{value:function(e,t){var n=e||this.onMetaSub;if(n)for(var a in this._contacts)n.call(t,this._contacts[a],a,this._contacts)},enumerable:!0,configurable:!0,writable:!0}}),k.prototype.constructor=k;var C=function(e){this._tinode=e,this._apiKey=e._apiKey,this._authToken=e.getAuthToken(),this._msgId=e.getNextUniqueId(),this.xhr=f(),this.toResolve=null,this.toReject=null,this.onProgress=null,this.onSuccess=null,this.onFailure=null};C.prototype={upload:function(e,t,n,a){var o=this;if(!this._authToken)throw new Error("Must authenticate first");var i=this;this.xhr.open("POST","/v"+r+"/file/u/",!0),this.xhr.setRequestHeader("X-Tinode-APIKey",this._apiKey),this.xhr.setRequestHeader("X-Tinode-Auth","Token "+this._authToken.token);var s=new Promise(function(e,t){o.toResolve=e,o.toReject=t});this.onProgress=t,this.onSuccess=n,this.onFailure=a,this.xhr.upload.onprogress=function(e){e.lengthComputable&&i.onProgress&&i.onProgress(e.loaded/e.total)},this.xhr.onload=function(){var e;try{e=JSON.parse(this.response,m)}catch(e){i._tinode.logger("Invalid server response in LargeFileHelper",this.response)}this.status>=200&&this.status<300?(i.toResolve&&i.toResolve(e.ctrl.params.url),i.onSuccess&&i.onSuccess(e.ctrl)):this.status>=400?(i.toReject&&i.toReject(new Error(e.ctrl.text+" ("+e.ctrl.code+")")),i.onFailure&&i.onFailure(e.ctrl)):i._tinode.logger("Unexpected server response status",this.status,this.response)},this.xhr.onerror=function(e){i.toReject&&i.toReject(new Error("failed")),i.onFailure&&i.onFailure(null)},this.xhr.onabort=function(e){i.toReject&&i.toReject(new Error("upload cancelled by user")),i.onFailure&&i.onFailure(null)};try{var l=new FormData;l.append("file",e),l.set("id",this._msgId),this.xhr.send(l)}catch(e){this.toReject&&this.toReject(e),this.onFailure&&this.onFailure(null)}return s},download:function(e,t,n,a){var o=this;if(/^(?:(?:[a-z]+:)?\/\/)/i.test(e))throw new Error("The URL '"+e+"' must be relative, not absolute");if(!this._authToken)throw new Error("Must authenticate first");var r=this;this.xhr.open("GET",e,!0),this.xhr.setRequestHeader("X-Tinode-APIKey",this._apiKey),this.xhr.setRequestHeader("X-Tinode-Auth","Token "+this._authToken.token),this.xhr.responseType="blob",this.onProgress=a,this.xhr.onprogress=function(e){r.onProgress&&r.onProgress(e.loaded)};var i=new Promise(function(e,t){o.toResolve=e,o.toReject=t});this.xhr.onload=function(){if(200==this.status){var e=document.createElement("a");e.href=window.URL.createObjectURL(new Blob([this.response],{type:n})),e.style.display="none",e.setAttribute("download",t),document.body.appendChild(e),e.click(),document.body.removeChild(e),window.URL.revokeObjectURL(e.href),r.toResolve&&r.toResolve()}else if(this.status>=400&&r.toReject){var a=new FileReader;a.onload=function(){try{var e=JSON.parse(this.result,m);r.toReject(new Error(e.ctrl.text+" ("+e.ctrl.code+")"))}catch(e){r._tinode.logger("Invalid server response in LargeFileHelper",this.result),r.toReject(e)}},a.readAsText(this.response)}},this.xhr.onerror=function(e){r.toReject&&r.toReject(new Error("failed"))},this.xhr.onabort=function(){r.toReject&&r.toReject(null)};try{this.xhr.send()}catch(e){this.toReject&&this.toReject(e)}return i},cancel:function(){this.xhr&&this.xhr.readyState<4&&this.xhr.abort()},getId:function(){return this._msgId}};var M=function e(t,n){this.status=e.STATUS_NONE,this.topic=t,this.content=n};M.STATUS_NONE=0,M.STATUS_QUEUED=1,M.STATUS_SENDING=2,M.STATUS_FAILED=3,M.STATUS_SENT=4,M.STATUS_RECEIVED=5,M.STATUS_READ=6,M.STATUS_TO_ME=7,(M.prototype={toJSON:function(){},fromJSON:function(e){}}).constructor=M,l.exports=y,l.exports.Drafty=e}.call(this,void 0!==t?t:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{}),l=l.exports}()}).call(this,n(9))},function(e,t){e.exports=ReactDOM},function(e){e.exports={en:{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",label_your_name:"Your name",label_password:"Password",password_unchanged_prompt:"Unchanged",label_user_id:"Address:",label_default_access_mode:"Default access mode:",label_message_sound:"Message sound:",label_push_notifications:"Notification alerts:",label_push_notifications_disabled:"Notification alerts (requires HTTPS):",title_tag_manager:"Tags (user discovery)",button_logout:"Logout",requested_permissions:"Requested",granted_permissions:"Granted",menu_item_edit_permissions:"Edit permissions",label_other_user:"Other",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",button_leave:"Leave",group_has_no_members:"No members",action_leave_chat:"Leave",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",tabtitle_find_user:"find",tabtitle_new_group:"new group",tabtitle_group_by_id:"by id",search_for_contacts:"Use search to find contacts",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",update_available:'Update available. <a href="">Reload</a>.',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",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",menu_item_unblock:"Unblock",menu_item_block:"Block",menu_item_member_delete:"Remove",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",download_action:"download",label_file_name:"File name:",label_content_type:"Content type:",label_size:"Size:",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 tags"},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:"Добавить",button_leave:"Отписаться",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:"Не найден"}}},function(e,t){e.exports=firebase},function(e,t,n){e.exports=function(){"use strict";return[{locale:"ru",pluralRuleFunction:function(e,t){var n=String(e).split("."),a=n[0],o=!n[1],r=a.slice(-1),i=a.slice(-2);return t?"other":o&&1==r&&11!=i?"one":o&&r>=2&&r<=4&&(i<12||i>14)?"few":o&&0==r||o&&r>=5&&r<=9||o&&i>=11&&i<=14?"many":"other"},fields:{year:{displayName:"год",relative:{0:"в этом году",1:"в следующем году","-1":"в прошлом году"},relativeTime:{future:{one:"через {0} год",few:"через {0} года",many:"через {0} лет",other:"через {0} года"},past:{one:"{0} год назад",few:"{0} года назад",many:"{0} лет назад",other:"{0} года назад"}}},month:{displayName:"месяц",relative:{0:"в этом месяце",1:"в следующем месяце","-1":"в прошлом месяце"},relativeTime:{future:{one:"через {0} месяц",few:"через {0} месяца",many:"через {0} месяцев",other:"через {0} месяца"},past:{one:"{0} месяц назад",few:"{0} месяца назад",many:"{0} месяцев назад",other:"{0} месяца назад"}}},day:{displayName:"день",relative:{0:"сегодня",1:"завтра",2:"послезавтра","-2":"позавчера","-1":"вчера"},relativeTime:{future:{one:"через {0} день",few:"через {0} дня",many:"через {0} дней",other:"через {0} дня"},past:{one:"{0} день назад",few:"{0} дня назад",many:"{0} дней назад",other:"{0} дня назад"}}},hour:{displayName:"час",relative:{0:"в этом часе"},relativeTime:{future:{one:"через {0} час",few:"через {0} часа",many:"через {0} часов",other:"через {0} часа"},past:{one:"{0} час назад",few:"{0} часа назад",many:"{0} часов назад",other:"{0} часа назад"}}},minute:{displayName:"минута",relative:{0:"в эту минуту"},relativeTime:{future:{one:"через {0} минуту",few:"через {0} минуты",many:"через {0} минут",other:"через {0} минуты"},past:{one:"{0} минуту назад",few:"{0} минуты назад",many:"{0} минут назад",other:"{0} минуты назад"}}},second:{displayName:"секунда",relative:{0:"сейчас"},relativeTime:{future:{one:"через {0} секунду",few:"через {0} секунды",many:"через {0} секунд",other:"через {0} секунды"},past:{one:"{0} секунду назад",few:"{0} секунды назад",many:"{0} секунд назад",other:"{0} секунды назад"}}}}},{locale:"ru-BY",parentLocale:"ru"},{locale:"ru-KG",parentLocale:"ru"},{locale:"ru-KZ",parentLocale:"ru"},{locale:"ru-MD",parentLocale:"ru"},{locale:"ru-UA",parentLocale:"ru"}]}()},function(e,t,n){e.exports=n(10)},function(e,t){e.exports=firebase.messaging},function(e,t){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){"use strict";n.r(t);var a=n(0),o=n.n(a),r=n(3),i=n.n(r),s=n(1),l=n(6),c=n.n(l),u=n(4),d=n(5),p=(n(8),n(2)),h=n.n(p),f="TinodeWeb/0.15.10",m={hosted:"api.tinode.co",local:"localhost:6060"},g=m.hosted,b=3e3,v=13,y=195840,_=768;function w(e){return(w="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function S(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function E(e){return(E=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function k(e,t){return(k=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function C(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var M=Object(s.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"},unblock:{id:"menu_item_unblock",defaultMessage:"Unblock"},block:{id:"menu_item_block",defaultMessage:"Block"},member_delete:{id:"menu_item_member_delete",defaultMessage:"Remove"}}),T=function(e){function t(e){var n,a,o;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),a=this,o=E(t).call(this,e),n=!o||"object"!==w(o)&&"function"!=typeof o?C(a):o;var r=e.intl.formatMessage;return n.handlePageClick=n.handlePageClick.bind(C(C(n))),n.handleEscapeKey=n.handleEscapeKey.bind(C(C(n))),n.handleClick=n.handleClick.bind(C(C(n))),n.MenuItems={topic_info:{title:r(M.info),handler:null},messages_clear:{title:r(M.clear_messages),handler:function(e,t){n.deleteMessages(!0,!1,e,t)}},messages_clear_hard:{title:r(M.clear_for_all),handler:function(e,t){n.deleteMessages(!0,!0,e,t)}},message_delete:{title:r(M.delete),handler:function(e,t){n.deleteMessages(!1,!1,e,t)}},message_delete_hard:{title:r(M.delete_for_all),handler:function(e,t){n.deleteMessages(!1,!0,e,t)}},topic_unmute:{title:r(M.unmute),handler:n.topicPermissionSetter.bind(C(C(n)),"+P")},topic_mute:{title:r(M.mute),handler:n.topicPermissionSetter.bind(C(C(n)),"-P")},topic_unblock:{title:r(M.unblock),handler:n.topicPermissionSetter.bind(C(C(n)),"+J")},topic_block:{title:r(M.block),handler:n.topicPermissionSetter.bind(C(C(n)),"-J")},topic_delete:{title:r(M.topic_delete),handler:function(e,t){var a=n.props.tinode.getTopic(e.topicName);a?a.delTopic().catch(function(e){t&&t(e.message,"err")}):console.log("Topic not found: ",e.topicName)}},permissions:{title:r({id:"menu_item_edit_permissions"}),handler:null},member_delete:{title:r(M.member_delete),handler:function(e,t){var a=n.props.tinode.getTopic(e.topicName);a&&e.user?a.delSubscription(e.user).catch(function(e){t&&t(e.message,"err")}):console.log("Topic or user not found: '"+e.topicName+"', '"+e.user+"'")}},member_mute:{title:r(M.mute),handler:n.topicPermissionSetter.bind(C(C(n)),"-P")},member_unmute:{title:r(M.unmute),handler:n.topicPermissionSetter.bind(C(C(n)),"+P")},member_block:{title:r(M.block),handler:n.topicPermissionSetter.bind(C(C(n)),"-J")},member_unblock:{title:r(M.unblock),handler:n.topicPermissionSetter.bind(C(C(n)),"+J")}},n}var n,a,r;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&k(e,t)}(t,o.a.Component),n=t,(a=[{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.handler(this.props.params,this.props.onError)}},{key:"deleteMessages",value:function(e,t,n,a){var o=this.props.tinode.getTopic(n.topicName);o?!e&&o.cancelSend(n.seq)||(e?o.delMessagesAll(t):o.delMessagesList([n.seq],t)).catch(function(e){a&&a(e.message,"err")}):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,r;if(t.user){if(!(r=a.subscriber(t.user)))return void console.log("Subscriber not found",t.topicName+"["+t.user+"]");o=r.acs.updateGiven(e).getGiven()}else o=a.getAccessMode().updateWant(e).getWant();a.setMeta({sub:{user:t.user,mode:o}}).catch(function(e){n&&n(e.message,"err")})}else console.log("Topic not found",t.topicName)}},{key:"render",value:function(){var e=this,t=0,n=[];this.props.items.map(function(a){"string"==typeof a&&(a=e.MenuItems[a]),a&&a.title&&n.push("-"==a.title?o.a.createElement("li",{className:"separator",key:t}):o.a.createElement("li",{onClick:e.handleClick,"data-id":t,key:t},a.title)),t++});var a=12*v,r=v*(.7+2.5*n.length),i={left:(this.props.bounds.right-this.props.clickAt.x<a?this.props.clickAt.x-this.props.bounds.left-a:this.props.clickAt.x-this.props.bounds.left)+"px",top:(this.props.bounds.bottom-this.props.clickAt.y<r?this.props.clickAt.y-this.props.bounds.top-r:this.props.clickAt.y-this.props.bounds.top)+"px"};return o.a.createElement("ul",{className:"menu",style:i},n)}}])&&S(n.prototype,a),r&&S(n,r),t}(),O=Object(s.injectIntl)(T);function P(e){var t=window.navigator.userLanguage||window.navigator.language,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 j(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=n>0?a<3?2:a<30?1:0:0;return a.toFixed(o)+" "+t[n]}function N(e){return(N="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function x(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,t){return!t||"object"!==N(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function A(e){return(A=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function D(e,t){return(D=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var R=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),U(this,A(t).apply(this,arguments))}var n,a,r;return 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&&D(e,t)}(t,o.a.PureComponent),n=t,(a=[{key:"render",value:function(){var e;if(!0===this.props.avatar)if(this.props.topic&&this.props.title&&this.props.title.trim()){var t=this.props.title.trim().charAt(0),n="lettertile 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;e=o.a.createElement("div",{className:n},o.a.createElement("div",null,t))}else e="grp"==h.a.topicType(this.props.topic)?o.a.createElement("i",{className:"material-icons"},"group"):o.a.createElement("i",{className:"material-icons"},"person");else e=this.props.avatar?o.a.createElement("img",{className:"avatar",alt:"avatar",src:this.props.avatar}):null;return e}}])&&x(n.prototype,a),r&&x(n,r),t}(),F=["image/jpeg","image/gif","image/png","image/svg","image/svg+xml"],I=["jpg","gif","png","svg","svg"];function L(e){return e&&e.type&&e.data?"data:image/"+e.type+";base64,"+e.data:null}function q(e,t,n,a,o){if(!(e&&t&&n&&a))return null;o&&(n=a=Math.min(n,a));var r=Math.min(Math.min(e,n)/e,Math.min(t,a)/t),i={dstWidth:e*r|0,dstHeight:t*r|0};return o?(i.dstWidth=i.dstHeight=Math.min(i.dstWidth,i.dstHeight),i.srcWidth=i.srcHeight=Math.min(e,t),i.xoffset=(e-i.srcWidth)/2|0,i.yoffset=(t-i.srcWidth)/2|0):(i.xoffset=i.yoffset=0,i.srcWidth=e,i.srcHeight=t),i}function H(e,t){var n=F.indexOf(t),a=I[n],o=e.lastIndexOf(".");return o>=0&&(e=e.substring(0,o)),e+"."+a}function W(e,t,n,a,o,r){var i=new Image;i.crossOrigin="Anonymous",i.onerror=function(e){r("Image format unrecognized")},i.onload=function(){var i=q(this.width,this.height,t,n,a);if(i){var s=document.createElement("canvas");s.width=i.dstWidth,s.height=i.dstHeight;var l=s.getContext("2d");l.imageSmoothingEnabled=!0,l.drawImage(this,i.xoffset,i.yoffset,i.srcWidth,i.srcHeight,0,0,i.dstWidth,i.dstHeight);var c=this.width!=i.dstWidth||this.height!=i.dstHeight||F.indexOf(e.type)<0?"image/jpeg":e.type,u=s.toDataURL(c);if(c=B(u.split(",")[0])){var d=.78;if(K(u.length)>y&&(c="image/jpeg"),"image/jpeg"==c)for(;K(u.length)>y&&d>.45;)u=s.toDataURL(c,d),d*=.84;K(u.length)>y?r("The image size "+bytesToHumanSize(K(u.length))+" exceeds the "+bytesToHumanSize(y)+" limit.","err"):(s=null,o(u.split(",")[1],c,i.dstWidth,i.dstHeight,H(e.name,c)))}else r("Unsupported image format")}else r("Invalid image")},i.src=URL.createObjectURL(e)}function G(e,t,n){var a=new FileReader;a.addEventListener("load",function(){var o=a.result.split(","),r=B(o[0]);if(r){var i=new Image;i.crossOrigin="Anonymous",i.onload=function(){t(o[1],r,this.width,this.height,H(e.name,r))},i.onerror=function(e){n("Image format not recognized")},i.src=URL.createObjectURL(e)}else n("Failed to process image file")},!1),a.readAsDataURL(e)}function V(e,t,n){var a=new FileReader;a.addEventListener("load",function(){t(e.type,a.result.split(",")[1],e.name)}),a.readAsDataURL(e)}function B(e){var t=/^data:(image\/[-+a-z0-9.]+);base64/.exec(e);return t&&t.length>1?t[1]:null}function K(e){return 3*Math.floor(e/4)}function z(e){return(z="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function J(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 Y(e){return(Y=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Q(e,t){return(Q=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function X(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var $=function(e){function t(e){var n,a,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),a=this,(n=!(o=Y(t).call(this,e))||"object"!==z(o)&&"function"!=typeof o?X(a):o).state={dataUrl:e.avatar},n.handleFileUpload=n.handleFileUpload.bind(X(X(n))),n}var n,a,r;return 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&&Q(e,t)}(t,o.a.Component),n=t,r=[{key:"getDerivedStateFromProps",value:function(e,t){return t.dataUrl!=e.avatar?{dataUrl:e.avatar}:null}}],(a=[{key:"handleFileUpload",value:function(e){var t=this;W(e.target.files[0],128,128,!0,function(e,n){var a=L({data:e,type:n});t.setState({dataUrl:a}),t.props.onImageChanged(a)},function(e){t.props.onError(e,"err")}),e.target.value=""}},{key:"render",value:function(){var e="file-input-avatar-"+(Math.random()+"").substr(2);return o.a.createElement("div",{className:"avatar-upload"},this.state.dataUrl?o.a.createElement("img",{src:this.state.dataUrl,className:"preview"}):this.props.readOnly&&this.props.uid?o.a.createElement("div",{className:"avatar-box"},o.a.createElement(R,{avatar:!0,topic:this.props.uid,title:this.props.title})):o.a.createElement("div",{className:"blank"},128,"×",128),this.props.readOnly?null:o.a.createElement("input",{type:"file",id:e,className:"inputfile hidden",accept:"image/*",onChange:this.handleFileUpload}),this.props.readOnly?null:o.a.createElement("label",{htmlFor:e,className:"round"},o.a.createElement("i",{className:"material-icons"},"file_upload")))}}])&&J(n.prototype,a),r&&J(n,r),t}();function Z(e){return(Z="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ee(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 te(e){return(te=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)}function ae(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var oe=function(e){function t(e){var n,a,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),a=this,(n=!(o=te(t).call(this,e))||"object"!==Z(o)&&"function"!=typeof o?ae(a):o).handleChange=n.handleChange.bind(ae(ae(n))),n}var n,a,r;return 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)}(t,o.a.PureComponent),n=t,(a=[{key:"handleChange",value:function(){this.props.onChange(this.props.name,!this.props.checked)}},{key:"render",value:function(){return this.props.onChange?this.props.checked?o.a.createElement("i",{className:"material-icons blue clickable",onClick:this.handleChange},"check_box"):o.a.createElement("i",{className:"material-icons blue clickable",onClick:this.handleChange},"check_box_outline_blank"):this.props.checked?o.a.createElement("i",{className:"material-icons"},"check_box"):o.a.createElement("i",{className:"material-icons"},"check_box_outline_blank")}}])&&ee(n.prototype,a),r&&ee(n,r),t}();function re(e){return(re="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}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 se(e,t){return!t||"object"!==re(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function le(e){return(le=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ce(e,t){return(ce=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var ue=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),se(this,le(t).apply(this,arguments))}var n,a,r;return 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&&ce(e,t)}(t,o.a.PureComponent),n=t,(a=[{key:"render",value:function(){var e=null;return this.props.badges&&this.props.badges.length>0&&(e=[],this.props.badges.map(function(t){var n="badge"+(t.color?" "+t.color:"");e.push(o.a.createElement("span",{className:n,key:t.key||t.name},t.name))})),o.a.createElement("span",null,e)}}])&&ie(n.prototype,a),r&&ie(n,r),t}();function de(e){return(de="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function pe(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function he(e,t){return!t||"object"!==de(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function fe(e){return(fe=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function me(e,t){return(me=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var ge=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),he(this,fe(t).apply(this,arguments))}var n,a,r;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&me(e,t)}(t,o.a.PureComponent),n=t,(a=[{key:"render",value:function(){var e=null;if(this.props.count>0){var t=this.props.count>9?"9+":this.props.count;e=o.a.createElement("span",{className:"unread"},t)}return e}}])&&pe(n.prototype,a),r&&pe(n,r),t}();function be(e){return(be="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ve(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 _e(e,t){return(_e=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function we(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var Se=function(e){function t(e){var n,a,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),a=this,(n=!(o=ye(t).call(this,e))||"object"!==be(o)&&"function"!=typeof o?we(a):o).handleClick=n.handleClick.bind(we(we(n))),n.handleContextClick=n.handleContextClick.bind(we(we(n))),n}var n,a,r;return 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&&_e(e,t)}(t,o.a.Component),n=t,(a=[{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?e.length>30&&(e=e.substring(0,28)+"..."):e=o.a.createElement("i",null,o.a.createElement(s.FormattedMessage,{id:"unnamed_topic"}));var t=this.props.now?"online":"offline",n=!this.props.avatar||this.props.avatar,a=this.props.badges.slice();return this.props.showMode&&this.props.acs&&a.push({name:this.props.acs.getMode(),key:"mode"}),o.a.createElement("li",{className:!this.props.showCheckmark&&this.props.selected?"selected":null,onClick:this.handleClick},o.a.createElement("div",{className:"avatar-box"},o.a.createElement(R,{avatar:n,title:this.props.title,topic:this.props.item}),this.props.showOnline?o.a.createElement("span",{className:t}):this.props.showCheckmark&&this.props.selected?o.a.createElement("i",{className:"checkmark material-icons"},"check_circle"):null),o.a.createElement("div",{className:"text-box"},o.a.createElement("div",null,o.a.createElement("span",{className:"contact-title"},e),this.props.unread>0?o.a.createElement(ge,{count:this.props.unread}):null),this.props.comment?o.a.createElement("div",{className:"contact-comment"},this.props.comment):null,o.a.createElement(ue,{badges:a})),this.props.showContextMenu?o.a.createElement("span",{className:"menuTrigger"},o.a.createElement("a",{href:"javascript:;",onClick:this.handleContextClick},o.a.createElement("i",{className:"material-icons"},"expand_more"))):null)}}])&&ve(n.prototype,a),r&&ve(n,r),t}();function Ee(e){return(Ee="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ke(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function Ce(e,t){return!t||"object"!==Ee(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Me(e){return(Me=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Te(e,t){return(Te=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Oe=Object(s.defineMessages)({badge_you:{id:"badge_you",defaultMessage:"you"},badge_owner:{id:"badge_owner",defaultMessage:"owner"}}),Pe=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Ce(this,Me(t).apply(this,arguments))}var n,a,r;return 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&&Te(e,t)}(t,o.a.Component),n=t,(a=[{key:"render",value:function(){var e=this,t=this.props.intl.formatMessage,n=Array.isArray(this.props.topicSelected),a=[];return this.props.contacts&&this.props.contacts.length>0&&this.props.contacts.map(function(r){var i=r.topic?r.topic:r.user;if(e.props.filterFunc&&e.props.filter){var s=[i];if(r.private&&r.private.comment&&s.push((""+r.private.comment).toLowerCase()),r.public&&r.public.fn&&s.push((""+r.public.fn).toLowerCase()),!e.props.filterFunc(e.props.filter,s))return}var l=n?e.props.topicSelected.indexOf(i)>-1:e.props.topicSelected===i,c=[];e.props.showMode&&(i===e.props.myUserId&&c.push({name:t(Oe.badge_you),color:"green"}),r.acs&&r.acs.isOwner()&&c.push({name:t(Oe.badge_owner),color:"blue"}));var u=Array.isArray(r.private)?r.private.join(","):r.private?r.private.comment:null;a.push(o.a.createElement(Se,{title:r.public?r.public.fn:null,avatar:L(r.public?r.public.photo:null),comment:u,unread:e.props.showUnread?r.unread:0,now:r.online&&e.props.connected,acs:r.acs,showMode:e.props.showMode,badges:c,showCheckmark:n,selected:l,showOnline:e.props.showOnline,onSelected:e.props.onTopicSelected,showContextMenu:e.props.showContextMenu,item:i,index:a.length,key:i}))},this),o.a.createElement("div",{className:this.props.noScroll?null:"scrollable-panel"},a.length>0?o.a.createElement("ul",{className:"contact-box"},a):o.a.createElement("div",{className:"center-medium-text",dangerouslySetInnerHTML:{__html:this.props.emptyListMessage}}))}}])&&ke(n.prototype,a),r&&ke(n,r),t}(),je=Object(s.injectIntl)(Pe);function Ne(e){return(Ne="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function xe(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,t){return!t||"object"!==Ne(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Ae(e){return(Ae=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function De(e,t){return(De=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Re=function(e){function t(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Ue(this,Ae(t).call(this,e))}var n,a,r;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&De(e,t)}(t,o.a.PureComponent),n=t,(a=[{key:"render",value:function(){return o.a.createElement("a",{href:"javascript:;",onClick:this.props.onCancel},o.a.createElement("i",{className:"material-icons"},"close"))}}])&&xe(n.prototype,a),r&&xe(n,r),t}();function Fe(e){return(Fe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}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){return(Le=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function qe(e,t){return(qe=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function He(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var We=function(e){function t(e){var n,a,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),a=this,(n=!(o=Le(t).call(this,e))||"object"!==Fe(o)&&"function"!=typeof o?He(a):o).state={show:!1},n.hide=n.hide.bind(He(He(n))),n}var n,a,r;return 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)}(t,o.a.PureComponent),n=t,r=[{key:"getDerivedStateFromProps",value:function(e,t){return{show:!!e.level}}}],(a=[{key:"hide",value:function(){this.setState({show:!1}),this.props.onClearError&&this.props.onClearError()}},{key:"render",value:function(){var e={err:"error",warn:"warning",info:"info"}[this.props.level]||"",t="alert-box "+e;return o.a.createElement("div",{className:t},o.a.createElement("div",{className:"icon"},o.a.createElement("i",{className:"material-icons"},e)),o.a.createElement("span",{dangerouslySetInnerHTML:{__html:this.props.text}}),o.a.createElement("div",{className:"cancel"},o.a.createElement(Re,{onCancel:this.hide})))}}])&&Ie(n.prototype,a),r&&Ie(n,r),t}();function Ge(e){return(Ge="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ve(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 Be(e){return(Be=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Ke(e,t){return(Ke=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function ze(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var Je=function(e){function t(e){var n,a,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),a=this,(n=!(o=Be(t).call(this,e))||"object"!==Ge(o)&&"function"!=typeof o?ze(a):o).handleCancel=n.handleCancel.bind(ze(ze(n))),n}var n,a,r;return 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&&Ke(e,t)}(t,o.a.PureComponent),n=t,(a=[{key:"handleCancel",value:function(){this.props.onCancel(this.props.topic,this.props.index)}},{key:"render",value:function(){var e=this.props.title||this.props.topic;return o.a.createElement("div",{className:"chip"},this.props.noAvatar?o.a.createElement("span",{className:"spacer"}):o.a.createElement("div",{className:"avatar-box"},o.a.createElement(R,{avatar:this.props.avatar||!0,topic:this.props.topic,title:this.props.title})),o.a.createElement("span",null,e),this.props.onCancel&&!this.props.required?o.a.createElement("a",{href:"javascript:;",onClick:this.handleCancel},"×"):o.a.createElement("span",{className:"spacer"}))}}])&&Ve(n.prototype,a),r&&Ve(n,r),t}();function Ye(e){return(Ye="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Qe(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function Xe(e){return(Xe=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function $e(e,t){return($e=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Ze(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var et=function(e){function t(e){var n,a,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),a=this,(n=!(o=Xe(t).call(this,e))||"object"!==Ye(o)&&"function"!=typeof o?Ze(a):o).state={placeholder:e.chips?"":e.prompt,sortedChips:t.sortChips(e.chips,e.required),chipIndex:t.indexChips(e.chips),input:"",focused:!1},n.handleTextInput=n.handleTextInput.bind(Ze(Ze(n))),n.removeChipAt=n.removeChipAt.bind(Ze(Ze(n))),n.handleChipCancel=n.handleChipCancel.bind(Ze(Ze(n))),n.handleFocusGained=n.handleFocusGained.bind(Ze(Ze(n))),n.handleFocusLost=n.handleFocusLost.bind(Ze(Ze(n))),n.handleKeyDown=n.handleKeyDown.bind(Ze(Ze(n))),n}var n,a,r;return 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&&$e(e,t)}(t,o.a.Component),n=t,r=[{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){e.user===t?n.push(e):a.push(e)}),n.concat(a)}}],(a=[{key:"UNSAFE_componentWillReceiveProps",value:function(e){this.setState({sortedChips:t.sortChips(e.chips,e.required),chipIndex:t.indexChips(e.chips)}),e.chips.length>this.props.chips.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&&this.state.sortedChips.length>0){var t=this.state.sortedChips.length-1;this.state.sortedChips[t].user!==this.props.required&&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 e=this,t=[],n=0;this.state.sortedChips.map(function(a){t.push(o.a.createElement(Je,{onCancel:e.handleChipCancel,avatar:L(a.public?a.public.photo:null),title:a.public?a.public.fn:void 0,noAvatar:e.props.avatarDisabled,topic:a.user,required:a.user===e.props.required,index:n,key:a.user})),n++});var a="chip-input"+(this.state.focused?" focused":"");return o.a.createElement("div",{className:a},t,o.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}))}}])&&Qe(n.prototype,a),r&&Qe(n,r),t}();function tt(e){return(tt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}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,t){return(ot=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function rt(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var it=Object(s.defineMessages)({no_contacts:{id:"no_contacts",defaultMessage:"You have no contacts :-("},contacts_not_found:{id:"contacts_not_found_short",defaultMessage:"No contacts match '{query}'"}}),st=function(e){function t(e){var n,a,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),a=this,(n=!(o=at(t).call(this,e))||"object"!==tt(o)&&"function"!=typeof o?rt(a):o).state={members:e.members,index:t.indexMembers(e.members),contactFilter:"",noContactsMessage:e.intl.formatMessage(it.no_contacts),selectedContacts:t.selectedContacts(e.members)},n.handleContactSelected=n.handleContactSelected.bind(rt(rt(n))),n.handleMemberRemoved=n.handleMemberRemoved.bind(rt(rt(n))),n.handleContactFilter=n.handleContactFilter.bind(rt(rt(n))),n.handleSubmit=n.handleSubmit.bind(rt(rt(n))),n.handleCancel=n.handleCancel.bind(rt(rt(n))),n}var n,a,r;return 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&&ot(e,t)}(t,o.a.Component),n=t,r=[{key:"indexMembers",value:function(e){var t={};return e.map(function(e){t[e.user]={delta:0,present:!0}}),t}},{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(t[n].indexOf(e)>=0)return!0;return!1}return!0}}],(a=[{key:"handleContactSelected",value:function(e,n){var a=this.state.index[e];if(a){if(a.present)return;a.delta+=1,a.present=!0}else a={delta:1,present:!0};var o=this.state.members.slice();o.push(this.props.contacts[n]);var r=t.selectedContacts(o),i=this.state.index;i[e]=a,this.setState({members:o,index:i,selectedContacts:r})}},{key:"handleMemberRemoved",value:function(e,n){var a=this.state.index[e];if(a&&a.present){a.present=!1,a.delta-=1;var o=this.state.members.slice();o.splice(n,1);var r=t.selectedContacts(o),i=this.state.index;i[e]=a,this.setState({members:o,index:i,selectedContacts:r})}}},{key:"handleContactFilter",value:function(e){var t=this.props.intl.formatMessage,n=e?t(it.contacts_not_found,{query:e}):t(it.no_contacts);this.setState({contactFilter:e,noContactsMessage:n})}},{key:"handleSubmit",value:function(){var e=this,t=[],n=[],a=[];Object.keys(this.state.index).map(function(o){e.state.index[o].present&&t.push(o),e.state.index[o].delta>0?n.push(o):e.state.index[o].delta<0&&a.push(o)}),this.props.onSubmit(t,n,a)}},{key:"handleCancel",value:function(){this.props.onCancel()}},{key:"render",value:function(){this.props.intl.formatMessage;return o.a.createElement("div",{id:"group-manager"},o.a.createElement("div",{className:"panel-form-row"},o.a.createElement("label",{className:"small"},o.a.createElement(s.FormattedMessage,{id:"title_group_members",defaultMessage:"Group Members"}))),o.a.createElement("div",{className:"panel-form-row"},o.a.createElement(et,{chips:this.state.members,required:this.props.requiredMember,prompt:"add members",filterFunc:this.handleContactFilter,onChipRemoved:this.handleMemberRemoved})),o.a.createElement("div",{className:"panel-form-row"},o.a.createElement("label",{className:"small"},o.a.createElement(s.FormattedMessage,{id:"title_all_contacts",defaultMessage:"All Contacts"}))),o.a.createElement(je,{contacts:this.props.contacts,myUserId:this.props.myUserId,topicSelected:this.state.selectedContacts,filter:this.state.contactFilter,filterFunc:t.doContactFiltering,emptyListMessage:this.state.noContactsMessage,showOnline:!1,showUnread:!1,onTopicSelected:this.handleContactSelected}),o.a.createElement("div",{id:"group-manager-buttons",className:"panel-form-row"},o.a.createElement("button",{className:"blue",onClick:this.handleSubmit},o.a.createElement(s.FormattedMessage,{id:"button_ok",defaultMessage:"OK"})),o.a.createElement("button",{className:"white",onClick:this.handleCancel},o.a.createElement(s.FormattedMessage,{id:"button_cancel",defaultMessage:"Cancel"}))))}}])&&nt(n.prototype,a),r&&nt(n,r),t}(),lt=Object(s.injectIntl)(st);function ct(e){return(ct="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ut(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 dt(e){return(dt=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function pt(e,t){return(pt=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function ht(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var ft=function(e){function t(e){var n,a,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),a=this,(n=!(o=dt(t).call(this,e))||"object"!==ct(o)&&"function"!=typeof o?ht(a):o).state={value:n.props.value,visible:!1},n.handleVisibility=n.handleVisibility.bind(ht(ht(n))),n.handeTextChange=n.handeTextChange.bind(ht(ht(n))),n.handleKeyDown=n.handleKeyDown.bind(ht(ht(n))),n.handleEditingFinished=n.handleEditingFinished.bind(ht(ht(n))),n}var n,a,r;return 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&&pt(e,t)}(t,o.a.PureComponent),n=t,(a=[{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 o.a.createElement("div",{tabIndex:"-1",className:"group-focus",onBlur:this.handleEditingFinished},o.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}),o.a.createElement("span",{onClick:this.handleVisibility},o.a.createElement("i",{className:"material-icons clickable light-gray"},this.state.visible?"visibility":"visibility_off")))}}])&&ut(n.prototype,a),r&&ut(n,r),t}();function mt(e){return(mt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function gt(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 bt(e){return(bt=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function vt(e,t){return(vt=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function yt(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var _t=function(e){function t(e){var n,a,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),a=this,(n=!(o=bt(t).call(this,e))||"object"!==mt(o)&&"function"!=typeof o?yt(a):o).state={active:e.active,initialValue:e.value||"",value:e.value||""},n.handeTextChange=n.handeTextChange.bind(yt(yt(n))),n.handleKeyDown=n.handleKeyDown.bind(yt(yt(n))),n.handleStartEditing=n.handleStartEditing.bind(yt(yt(n))),n.handleEditingFinished=n.handleEditingFinished.bind(yt(yt(n))),n.handlePasswordFinished=n.handlePasswordFinished.bind(yt(yt(n))),n}var n,a,r;return 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)}(t,o.a.Component),n=t,r=[{key:"getDerivedStateFromProps",value:function(e,t){return t.initialValue==e.value||t.active?null:{initialValue:e.value||"",value:e.value||""}}}],(a=[{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()}},{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"),t.length>20&&(t=t.substring(0,19)+"...")}return this.state.active?"password"==e?o.a.createElement(ft,{value:this.state.value,placeholder:this.props.placeholder,required:this.props.required?"required":"",autoComplete:this.props.autoComplete,autoFocus:!0,onFinished:this.handlePasswordFinished}):o.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}):o.a.createElement("span",{className:n,onClick:this.handleStartEditing},o.a.createElement("span",{className:"content"},t))}}])&>(n.prototype,a),r&>(n,r),t}();function wt(e){return(wt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function St(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function Et(e){return(Et=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function kt(e,t){return(kt=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Ct(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var Mt=function(e){function t(e){var n,a,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),a=this,(n=!(o=Et(t).call(this,e))||"object"!==wt(o)&&"function"!=typeof o?Ct(a):o).state={open:e.open},n.handleToggle=n.handleToggle.bind(Ct(Ct(n))),n}var n,a,r;return 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&&kt(e,t)}(t,o.a.PureComponent),n=t,(a=[{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 o.a.createElement("label",{className:"small",onClick:this.handleToggle},this.props.title,"...",this.state.open?o.a.createElement("i",{className:"material-icons"},"expand_more"):o.a.createElement("i",{className:"material-icons"},"chevron_right"))}}])&&St(n.prototype,a),r&&St(n,r),t}();function Tt(e){return(Tt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ot(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 Pt(e){return(Pt=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function jt(e,t){return(jt=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Nt(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var xt=Object(s.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})"}}),Ut=function(e){function t(e){var n,a,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),a=this,(n=!(o=Pt(t).call(this,e))||"object"!==Tt(o)&&"function"!=typeof o?Nt(a):o).state={mode:(e.mode||"").replace("N","")},n.handleChange=n.handleChange.bind(Nt(Nt(n))),n.handleSubmit=n.handleSubmit.bind(Nt(Nt(n))),n.handleCancel=n.handleCancel.bind(Nt(Nt(n))),n}var n,a,r;return 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&&jt(e,t)}(t,o.a.Component),n=t,(a=[{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={J:e(xt.joiner,{val:"J"}),R:e(xt.reader,{val:"R"}),W:e(xt.writer,{val:"W"}),P:e(xt.preser,{val:"P"}),A:e(xt.approver,{val:"A"}),S:e(xt.sharer,{val:"S"}),D:e(xt.deleter,{val:"D"}),O:e(xt.owner,{val:"O"})},n=this.props.skip||"",a=this.state.mode,r=(this.props.compare||"").replace("N",""),i=[],l=0;l<"JRWPASDO".length;l++){var c="JRWPASDO".charAt(l);n.indexOf(c)>=0&&a.indexOf(c)<0||i.push(o.a.createElement("tr",{key:c},o.a.createElement("td",null,t[c]),o.a.createElement("td",{className:"checkbox"},n.indexOf(c)<0?o.a.createElement(oe,{name:c,checked:a.indexOf(c)>=0,onChange:this.handleChange}):o.a.createElement(oe,{name:c,checked:a.indexOf(c)>=0})),this.props.compare?o.a.createElement("td",{className:"checkbox"},o.a.createElement(oe,{name:c,checked:r.indexOf(c)>=0})):null))}return o.a.createElement("div",{className:"panel-form-column"},this.props.userTitle?o.a.createElement("ul",{className:"contact-box"},o.a.createElement(Se,{item:this.props.item,title:this.props.userTitle,avatar:L(this.props.userAvatar?this.props.userAvatar:null)})):null,o.a.createElement("label",{className:"small"},o.a.createElement(s.FormattedMessage,{id:"title_permissions",defaultMessage:"Permissions"})),o.a.createElement("table",{className:"permission-editor"},this.props.compare?o.a.createElement("thead",null,o.a.createElement("tr",null,o.a.createElement("th",null),o.a.createElement("th",null,this.props.modeTitle),o.a.createElement("th",null,this.props.compareTitle))):null,o.a.createElement("tbody",null,i)),o.a.createElement("br",null),o.a.createElement("div",{className:"dialog-buttons"},o.a.createElement("button",{className:"blue",onClick:this.handleSubmit},o.a.createElement(s.FormattedMessage,{id:"button_ok"})),o.a.createElement("button",{className:"white",onClick:this.handleCancel},o.a.createElement(s.FormattedMessage,{id:"button_cancel"}))))}}])&&Ot(n.prototype,a),r&&Ot(n,r),t}(),At=Object(s.injectIntl)(Ut);function Dt(e){var t=document.getElementById("shortcut-icon");if(t){var 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"+(e>0?"a":"")+".png",n.removeChild(t),n.appendChild(a)}document.title=(e>0?"("+e+") ":"")+"Tinode"}function Rt(e,t){var n=null;if((e&&e.trim()||t)&&(n={},e&&(n.fn=e.trim()),t)){var a=t.indexOf(",");n.photo={data:t.substring(a+1),type:"jpg"}}return n}function Ft(e){return(Ft="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function It(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 Lt(e){return(Lt=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function qt(e,t){return(qt=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Ht(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var Wt=function(e){function t(e){var n,a,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),a=this,(n=!(o=Lt(t).call(this,e))||"object"!==Ft(o)&&"function"!=typeof o?Ht(a):o).state={tags:n.props.tags,tagInput:"",activated:n.props.activated},n.handleShowTagManager=n.handleShowTagManager.bind(Ht(Ht(n))),n.handleTagInput=n.handleTagInput.bind(Ht(Ht(n))),n.handleAddTag=n.handleAddTag.bind(Ht(Ht(n))),n.handleRemoveTag=n.handleRemoveTag.bind(Ht(Ht(n))),n.handleSubmit=n.handleSubmit.bind(Ht(Ht(n))),n.handleCancel=n.handleCancel.bind(Ht(Ht(n))),n}var n,a,r;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&qt(e,t)}(t,o.a.Component),n=t,r=[{key:"getDerivedStateFromProps",value:function(e,t){return function(e,t){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}(e.tags,t.tags)||t.activated?null:{tags:e.tags}}}],(a=[{key:"handleShowTagManager",value:function(){this.setState({activated:!0})}},{key:"handleTagInput",value:function(e){if(this.setState({tagInput:e}),e.length>0){var t=e[e.length-1];if(","==t||" "==t||";"==t){var n=e.substr(0,e.length-1).trim();n.length>=4&&this.handleAddTag(n)}}}},{key:"handleAddTag",value:function(e){if((e=e.trim()).length>0){var t=this.state.tags.slice(0);t.push(e),this.setState({tags:t,tagInput:""}),this.props.onTagsChanged&&this.props.onTagsChanged(t)}}},{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(){var e=this.state.tags.slice(0),t=this.state.tagInput.trim();t.length>0&&(e.push(t),this.props.onTagsChanged&&this.props.onTagsChanged(e)),this.props.onSubmit(e),this.setState({activated:!1,tagInput:"",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 e=this,t=[];return this.state.activated?this.state.tags.map(function(e){t.push({user:e})}):(this.state.tags.map(function(e){t.push(o.a.createElement("span",{className:"badge",key:t.length},e))}),0==t.length&&(t=o.a.createElement("i",null,o.a.createElement(s.FormattedMessage,{id:"tags_not_found",defaultMessage:"No tags defined. Add some."})))),o.a.createElement("div",{className:"panel-form-column"},o.a.createElement("div",{className:"panel-form-row"},o.a.createElement("label",{className:"small"},this.props.title)),this.state.activated?o.a.createElement("div",null,o.a.createElement(s.FormattedMessage,{id:"tags_editor_no_tags",defaultMessage:"Add some tags"},function(n){return o.a.createElement(et,{chips:t,avatarDisabled:!0,prompt:n,onEnter:e.handleAddTag,onFocusLost:e.handleAddTag,onCancel:e.handleCancel,onChipRemoved:e.handleRemoveTag,filterFunc:e.handleTagInput})}),this.props.onSubmit||this.props.onCancel?o.a.createElement("div",{id:"tag-manager-buttons",className:"panel-form-row"},o.a.createElement("button",{className:"blue",onClick:this.handleSubmit},o.a.createElement(s.FormattedMessage,{id:"button_ok",defautMessage:"OK",description:"Confirmation button [OK]"})),o.a.createElement("button",{className:"white",onClick:this.handleCancel},o.a.createElement(s.FormattedMessage,{id:"button_cancel",defautMessage:"Cancel",description:"Rejection button [Cancel]"}))):null):o.a.createElement("div",null,o.a.createElement("a",{href:"javascript:;",className:"flat-button",onClick:this.handleShowTagManager},o.a.createElement("i",{className:"material-icons"},"edit")," ",o.a.createElement(s.FormattedMessage,{id:"title_manage_tags",defaultMessage:"Manage tags"})),o.a.createElement("span",null,t)))}}])&&It(n.prototype,a),r&&It(n,r),t}();function Gt(e){return(Gt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Vt(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 Bt(e){return(Bt=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Kt(e,t){return(Kt=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function zt(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var Jt=Object(s.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"}}),Yt=function(e){function t(e){var n,a,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),a=this,(n=!(o=Bt(t).call(this,e))||"object"!==Gt(o)&&"function"!=typeof o?zt(a):o).state={topic:null,owner:!1,admin:!1,sharer:!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},n.resetSubs=n.resetSubs.bind(zt(zt(n))),n.resetDesc=n.resetDesc.bind(zt(zt(n))),n.onMetaDesc=n.onMetaDesc.bind(zt(zt(n))),n.onSubsUpdated=n.onSubsUpdated.bind(zt(zt(n))),n.onTagsUpdated=n.onTagsUpdated.bind(zt(zt(n))),n.handleFullNameUpdate=n.handleFullNameUpdate.bind(zt(zt(n))),n.handlePrivateUpdate=n.handlePrivateUpdate.bind(zt(zt(n))),n.handleImageChanged=n.handleImageChanged.bind(zt(zt(n))),n.handleMuted=n.handleMuted.bind(zt(zt(n))),n.handlePermissionsChanged=n.handlePermissionsChanged.bind(zt(zt(n))),n.handleLaunchPermissionsEditor=n.handleLaunchPermissionsEditor.bind(zt(zt(n))),n.handleHidePermissionsEditor=n.handleHidePermissionsEditor.bind(zt(zt(n))),n.handleShowAddMembers=n.handleShowAddMembers.bind(zt(zt(n))),n.handleHideAddMembers=n.handleHideAddMembers.bind(zt(zt(n))),n.handleMemberUpdateRequest=n.handleMemberUpdateRequest.bind(zt(zt(n))),n.handleLeave=n.handleLeave.bind(zt(zt(n))),n.handleMemberSelected=n.handleMemberSelected.bind(zt(zt(n))),n.handleMoreInfo=n.handleMoreInfo.bind(zt(zt(n))),n.handleTagsUpdated=n.handleTagsUpdated.bind(zt(zt(n))),n.handleContextMenu=n.handleContextMenu.bind(zt(zt(n))),n}var n,a,r;return 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&&Kt(e,t)}(t,o.a.Component),n=t,(a=[{key:"UNSAFE_componentWillReceiveProps",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())}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.isAdmin()||a.isSharer()),muted:a&&a.isMuted(),fullName:e.public?e.public.fn:void 0,avatar:L(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(){var e=this.props.tinode.getTopic(this.props.topic);e&&(this.resetSubs(e,this.props),this.previousSubsUpdated&&this.previousSubsUpdated!=this.onSubsUpdated&&this.previousSubsUpdated())}},{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(),this.state.fullName!==e&&(this.setState({fullName:e}),this.props.onTopicDescUpdate(this.props.topic,Rt(e,this.state.avatar),null))}},{key:"handlePrivateUpdate",value:function(e){this.state.priv!==e&&(this.setState({private:e}),this.props.onTopicDescUpdate(this.props.topic,null,e||h.a.DEL_CHAR))}},{key:"handleImageChanged",value:function(e){this.setState({avatar:e}),this.props.onTopicDescUpdate(this.props.topic,Rt(this.state.fullName,e),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,r,i,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",r=c(Jt.requested),i=c(Jt.granted);break;case"given":n=this.state.modeGiven2,a=this.state.modeWant2,o=this.state.groupTopic?this.state.owner?"":"O":"ASDO",r=c(Jt.granted),i=c(Jt.requested);break;case"auth":n=this.state.auth,o="O";break;case"anon":n=this.state.anon,o="O";break;case"user":var u=this.props.tinode.getTopic(this.props.topic);if(!u)return;var d=u.subscriber(t);if(!d||!d.acs)return;n=d.acs.getGiven(),a=d.acs.getWant(),o=this.state.owner?"":"O",r=c(Jt.granted),i=c(Jt.requested),d.public&&(s=d.public.fn,l=d.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:r,immutablePermissionsTitle:i,editedPermissionsSkipped:o})}},{key:"handleHidePermissionsEditor",value:function(){this.setState({showPermissionEditorFor:void 0})}},{key:"handleShowAddMembers",value:function(){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:"handleLeave",value:function(){this.props.onLeaveTopic(this.props.topic)}},{key:"handleMemberSelected",value:function(e){this.setState({selectedContact:e})}},{key:"handleMoreInfo",value:function(e){this.setState({moreInfoExpanded:e})}},{key:"handleTagsUpdated",value:function(e){arrayEqual(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 r=[{title:t(Jt.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},r)}}}},{key:"render",value:function(){var e=this,t=this.props.intl.formatMessage;return o.a.createElement("div",{id:"info-view"},o.a.createElement("div",{className:"caption-panel",id:"info-caption-panel"},o.a.createElement("div",{className:"panel-title",id:"info-title"},o.a.createElement(s.FormattedMessage,{id:"title_info",defaultMessage:"Info"})),o.a.createElement("div",null,o.a.createElement(Re,{onCancel:this.props.onCancel}))),this.props.displayMobile?o.a.createElement(We,{level:this.props.errorLevel,text:this.props.errorText,onClearError:this.props.onError}):null,this.state.showMemberPanel?o.a.createElement(lt,{members:this.state.contactList,requiredMember:this.props.myUserId,myUserId:this.props.myUserId,contacts:this.props.searchableContacts,onCancel:this.handleHideAddMembers,onSubmit:this.handleMemberUpdateRequest}):this.state.showPermissionEditorFor?o.a.createElement(At,{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}):o.a.createElement("div",{id:"info-view-content",className:"scrollable-panel"},o.a.createElement("div",{className:"panel-form-row"},o.a.createElement("div",{className:"panel-form-column"},o.a.createElement("div",null,o.a.createElement("label",{className:"small"},o.a.createElement(s.FormattedMessage,{id:"label_topic_name",defaultMessage:"Name"}))),o.a.createElement("div",null,o.a.createElement(_t,{placeholder:this.state.groupTopic?"Group name":o.a.createElement("i",null,"Unknown"),readOnly:!this.state.owner,value:this.state.fullName,required:!0,onFinished:this.handleFullNameUpdate})),o.a.createElement("div",null,o.a.createElement("label",{className:"small"},o.a.createElement(s.FormattedMessage,{id:"label_private",defaultMessage:"Private comment"}))),o.a.createElement("div",null,o.a.createElement(s.FormattedMessage,{id:"private_editing_placeholder",defaultMessage:"Visible to you only"},function(t){return o.a.createElement(_t,{placeholder:t,value:e.state.private,onFinished:e.handlePrivateUpdate})}))),o.a.createElement($,{avatar:this.state.avatar,readOnly:!this.state.owner,uid:this.props.topic,title:this.state.fullName,onImageChanged:this.handleImageChanged,onError:this.props.onError})),o.a.createElement("div",{className:"hr"}),o.a.createElement("div",{className:"panel-form-column"},o.a.createElement("div",{className:"panel-form-row"},o.a.createElement("label",null,o.a.createElement(s.FormattedMessage,{id:"label_muting_topic",defaultMessage:"Muted:"})),o.a.createElement(oe,{name:"P",checked:this.state.muted,onChange:this.handleMuted})),o.a.createElement(s.FormattedMessage,{id:"action_more",defaultMessage:"More"},function(t){return o.a.createElement(Mt,{title:t,open:e.state.moreInfoExpanded,onToggle:e.handleMoreInfo})}),this.state.moreInfoExpanded?o.a.createElement("div",{className:"panel-form-column"},o.a.createElement("div",{className:"panel-form-row"},o.a.createElement("label",null,o.a.createElement(s.FormattedMessage,{id:"label_user_id"})),o.a.createElement("tt",null,this.state.address)),this.state.groupTopic?o.a.createElement("div",{className:"panel-form-row"},o.a.createElement("label",null,o.a.createElement(s.FormattedMessage,{id:"label_your_permissions",defaultMessage:"Your permissions:"})),o.a.createElement("tt",{className:"clickable",onClick:this.handleLaunchPermissionsEditor.bind(this,"want")},this.state.access)):o.a.createElement("div",null,o.a.createElement("div",null,o.a.createElement("label",{className:"small"},o.a.createElement(s.FormattedMessage,{id:"label_permissions",defaultMessage:"Permissions:"}))),o.a.createElement("div",{className:"quoted"},o.a.createElement("div",null,o.a.createElement(s.FormattedMessage,{id:"label_you",defaultMessage:"You:"})," ",o.a.createElement("tt",{className:"clickable",onClick:this.handleLaunchPermissionsEditor.bind(this,"want")},this.state.access)),o.a.createElement("div",null,this.state.fullName?this.state.fullName:t(Jt.other_user),": ",o.a.createElement("tt",{className:"clickable",onClick:this.handleLaunchPermissionsEditor.bind(this,"given")},this.state.modeGiven2)))),this.state.sharer&&(this.state.auth||this.state.anon)?o.a.createElement("div",null,o.a.createElement("div",null,o.a.createElement("label",{className:"small"},o.a.createElement(s.FormattedMessage,{id:"label_default_access",defaultMessage:"Default access mode:"}))),o.a.createElement("div",{className:"quoted"},o.a.createElement("div",null,"Auth: ",this.state.admin?o.a.createElement("tt",{className:"clickable",onClick:this.handleLaunchPermissionsEditor.bind(this,"auth")},this.state.auth):o.a.createElement("tt",null,this.state.auth)),o.a.createElement("div",null,"Anon: ",this.state.admin?o.a.createElement("tt",{className:"clickable",onClick:this.handleLaunchPermissionsEditor.bind(this,"anon")},this.state.anon):o.a.createElement("tt",null,this.state.anon)))):null):null),o.a.createElement("div",{className:"hr"}),this.state.owner?o.a.createElement(s.FormattedMessage,{id:"title_tag_manager"},function(t){return o.a.createElement(Wt,{title:t,tags:e.state.tags,activated:!1,onSubmit:e.handleTagsUpdated})}):null,this.state.owner?o.a.createElement("div",{className:"hr"}):null,this.state.groupTopic?o.a.createElement("div",{className:"panel-form-column"},o.a.createElement("div",{className:"panel-form-row"},o.a.createElement("label",{className:"small"},o.a.createElement(s.FormattedMessage,{id:"label_group_members",defaultMessage:"Group members:"}))),o.a.createElement("div",{className:"panel-form-row"},this.state.sharer?o.a.createElement("a",{href:"javascript:;",className:"flat-button",onClick:this.handleShowAddMembers},o.a.createElement("i",{className:"material-icons"},"person_add")," ",o.a.createElement(s.FormattedMessage,{id:"button_add_members",defaultMessage:"Add members"})):null,this.state.owner?null:o.a.createElement("a",{href:"javascript:;",className:"red flat-button",onClick:this.handleLeave},o.a.createElement("i",{className:"material-icons"},"exit_to_app")," ",o.a.createElement(s.FormattedMessage,{id:"button_leave",defaultMessage:"Leave"}))),o.a.createElement(s.FormattedMessage,{id:"group_has_no_members",defaultMessage:"No members"},function(t){return o.a.createElement(je,{contacts:e.state.contactList,myUserId:e.props.myUserId,emptyListMessage:t,topicSelected:e.state.selectedContact,showOnline:!1,showUnread:!1,showMode:!0,noScroll:!0,onTopicSelected:e.handleMemberSelected,showContextMenu:!!e.state.admin&&e.handleContextMenu})})):o.a.createElement("div",{className:"panel-form-row"},o.a.createElement("a",{href:"javascript:;",className:"red flat-button",onClick:this.handleLeave},o.a.createElement("i",{className:"material-icons"},"exit_to_app")," ",o.a.createElement(s.FormattedMessage,{id:"action_leave_chat",defaultMessage:"Leave"})))))}}])&&Vt(n.prototype,a),r&&Vt(n,r),t}(),Qt=Object(s.injectIntl)(Yt);function Xt(e){return(Xt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function $t(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function Zt(e,t){return!t||"object"!==Xt(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function en(e){return(en=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function tn(e,t){return(tn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var nn=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Zt(this,en(t).apply(this,arguments))}var n,a,r;return 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&&tn(e,t)}(t,o.a.PureComponent),n=t,(a=[{key:"render",value:function(){return o.a.createElement("div",{className:"uploader"},o.a.createElement("div",null,o.a.createElement("span",{style:{width:100*this.props.progress+"%"}})),this.props.progress<.999?o.a.createElement("a",{href:"javascript:;",onClick:this.props.onCancel},o.a.createElement("i",{className:"material-icons"},"close")," ",o.a.createElement(s.FormattedMessage,{id:"action_cancel",defaultMessage:"cancel"})):o.a.createElement(s.FormattedMessage,{id:"upload_finishing",defaultMessage:"finishing..."}))}}])&&$t(n.prototype,a),r&&$t(n,r),t}();function an(e){return(an="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function on(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 rn(e){return(rn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function sn(e,t){return(sn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function ln(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var cn=function(e){function t(e){var n,a,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),a=this,(n=!(o=rn(t).call(this,e))||"object"!==an(o)&&"function"!=typeof o?ln(a):o).state={downloader:null,progress:0},n.downloadFile=n.downloadFile.bind(ln(ln(n))),n.handleCancel=n.handleCancel.bind(ln(ln(n))),n}var n,a,r;return 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&&sn(e,t)}(t,o.a.Component),n=t,(a=[{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 e=this,t=this.props.filename||"file_attachment";t.length>36&&(t=t.substr(0,16)+"..."+t.substr(-16));var n,a,r=this.props.size>0?o.a.createElement("span",{className:"small gray"},"(",j(this.props.size),")"):null;return this.props.uploader||this.state.downloader||/^(?:(?:[a-z]+:)?\/\/)/i.test(this.props.downloadUrl)?(n=this.props.downloadUrl,a=null):(n="javascript:;",a=function(t){e.downloadFile(e.props.downloadUrl,e.props.filename,e.props.mimetype)}),o.a.createElement("div",{className:"attachment"},o.a.createElement("div",null,o.a.createElement("i",{className:"material-icons big gray"},"insert_drive_file")),o.a.createElement("div",{className:"flex-column"},o.a.createElement("div",null,t," ",r),this.props.uploader||this.state.downloader?o.a.createElement(nn,{progress:this.props.uploader?this.props.progress:this.state.progress,onCancel:this.handleCancel}):o.a.createElement("div",null,o.a.createElement("a",{href:n,download:this.props.filename,onClick:a},o.a.createElement("i",{className:"material-icons"},"file_download")," save"))))}}])&&on(n.prototype,a),r&&on(n,r),t}();function un(e){return(un="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function dn(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function pn(e,t){return!t||"object"!==un(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function hn(e){return(hn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function fn(e,t){return(fn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var mn=Object(s.defineMessages)({sending:{id:"message_sending",defaultMessage:"sending..."},failed:{id:"message_sending_failed",defaultMessage:"failed"}}),gn=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),pn(this,hn(t).apply(this,arguments))}var n,a,r;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&fn(e,t)}(t,o.a.PureComponent),n=t,(a=[{key:"render",value:function(){var e,t=this.props.intl.formatMessage;e=this.props.received<=h.a.MESSAGE_STATUS_SENDING?t(mn.sending):this.props.received==h.a.MESSAGE_STATUS_FAILED?t(mn.failed):P(this.props.timestamp);var n=null;return this.props.received<=h.a.MESSAGE_STATUS_SENDING?n=o.a.createElement("i",{className:"material-icons small"},"access_time"):this.props.received==h.a.MESSAGE_STATUS_FAILED?n=o.a.createElement("i",{className:"material-icons small red"},"error_outline"):this.props.received==h.a.MESSAGE_STATUS_SENT?n=o.a.createElement("i",{className:"material-icons small"},"done"):this.props.received==h.a.MESSAGE_STATUS_RECEIVED?n=o.a.createElement("i",{className:"material-icons small"},"done_all"):this.props.received==h.a.MESSAGE_STATUS_READ&&(n=o.a.createElement("i",{className:"material-icons small blue"},"done_all")),o.a.createElement("span",{className:"timestamp"},e," ",n)}}])&&dn(n.prototype,a),r&&dn(n,r),t}(),bn=Object(s.injectIntl)(gn);function vn(e){return(vn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function yn(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function _n(e){return(_n=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function wn(e,t){return(wn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Sn(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var En=function(e){function t(e){var n,a,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),a=this,(n=!(o=_n(t).call(this,e))||"object"!==vn(o)&&"function"!=typeof o?Sn(a):o).state={progress:0},e.uploader&&(e.uploader.onProgress=n.handleProgress.bind(Sn(Sn(n)))),n.handlePreviewImage=n.handlePreviewImage.bind(Sn(Sn(n))),n.handleFormButtonClick=n.handleFormButtonClick.bind(Sn(Sn(n))),n.handleContextClick=n.handleContextClick.bind(Sn(Sn(n))),n.handleCancelUpload=n.handleCancelUpload.bind(Sn(Sn(n))),n}var n,a,r;return 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&&wn(e,t)}(t,o.a.Component),n=t,(a=[{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=""+e.target.dataset.ref);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 e=this,t=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,r=this.props.userFrom&&this.props.response&&("single"==this.props.sequence||"last"==this.props.sequence),i=this.props.content,l=[];return this.props.mimeType==p.Drafty.getContentType()?(p.Drafty.attachments(i,function(e,t){"application/json"!=e.mime&&l.push(o.a.createElement(cn,{tinode:this.props.tinode,downloadUrl:p.Drafty.getDownloadUrl(e),filename:e.name,uploader:p.Drafty.isUploading(e),mimetype:e.mime,size:p.Drafty.getEntitySize(e),progress:this.state.progress,onCancelUpload:this.handleCancelUpload,onError:this.props.onError,key:t}))},this),i=o.a.createElement("span",null,p.Drafty.format(i,kn,this))):"string"!=typeof i&&(i=o.a.createElement("span",null,o.a.createElement("i",{className:"material-icons"},"error_outline")," ",o.a.createElement("i",null,o.a.createElement(s.FormattedMessage,{id:"invalid_content",defaultMessage:"invalid content"})))),o.a.createElement("li",{className:t},this.props.userFrom&&this.props.response?o.a.createElement("div",{className:"avatar-box"},r?o.a.createElement(R,{topic:this.props.userFrom,title:this.props.userName,avatar:a}):null):null,o.a.createElement("div",null,o.a.createElement("div",{className:n},o.a.createElement("div",{className:"message-content"},i,l,o.a.createElement(bn,{timestamp:this.props.timestamp,received:this.props.received})),o.a.createElement("span",{className:"menuTrigger"},o.a.createElement("a",{href:"javascript:;",onClick:this.handleContextClick},o.a.createElement("i",{className:"material-icons"},"expand_more")))),r?o.a.createElement("div",{className:"author"},o.a.createElement(s.FormattedMessage,{id:"user_not_found",defaultMessage:"Not found"},function(t){return e.props.userName||o.a.createElement("i",null,t)})):null))}}])&&yn(n.prototype,a),r&&yn(n,r),t}();function kn(e,t,n,a){var r=p.Drafty.tagName(e);if(r){var i=p.Drafty.attrValue(e,t)||{};switch(i.key=a,e){case"IM":if(t){i.className="inline-image",i.onClick=this.handlePreviewImage;var s=q(t.width,t.height,Math.min(this.props.viewportWidth-4*v,36*v),24*v,!1);i.style=s?{width:s.dstWidth+"px",height:s.dstHeight+"px"}:null}break;case"BN":i.onClick=this.handleFormButtonClick;var l=o.a.Children.map(n,function(e){return"string"==typeof e?e:void 0});l&&0!=l.length||(l=[i.name]),i["data-title"]=l.join("");break;case"FM":i.className="bot-form"}return o.a.createElement(r,i,n)}return n}function Cn(e){return(Cn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}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 Tn(e,t){return!t||"object"!==Cn(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function On(e){return(On=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Pn(e,t){return(Pn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var jn=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=Tn(this,On(t).call(this,e))).state={onlineSubs:e.subscribers||[]},n}var n,a,r;return 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)}(t,o.a.Component),n=t,r=[{key:"getDerivedStateFromProps",value:function(e,t){return{onlineSubs:e.subscribers?e.subscribers:[]}}}],(a=[{key:"render",value:function(){var e=[];return this.state.onlineSubs.map(function(t){e.push(o.a.createElement("div",{className:"avatar-box",key:t.user},o.a.createElement(R,{topic:t.user,avatar:L(t.public?t.public.photo:null)||!0,title:t.public?t.public.fn:null})))}),o.a.createElement("div",{id:"topic-users"},e)}}])&&Mn(n.prototype,a),r&&Mn(n,r),t}();function Nn(e){return(Nn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}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 Un(e,t){return!t||"object"!==Nn(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function An(e){return(An=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Dn(e,t){return(Dn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Rn=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=Un(this,An(t).call(this,e))).state={},n}var n,a,r;return 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&&Dn(e,t)}(t,o.a.PureComponent),n=t,(a=[{key:"componentDidMount",value:function(){this.setState({width:this.container.clientWidth,height:this.container.clientHeight})}},{key:"render",value:function(){if(!this.props.content)return null;var e=this,t=q(this.props.content.width,this.props.content.height,this.state.width,this.state.height,!1),n=t?{width:t.dstWidth+"px",height:t.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,r=this.props.content.width/v|0;return a.length>r&&(a=a.slice(0,r-2)+"..."+a.slice(2-r)),o.a.createElement("div",{id:"image-preview",onClick:this.props.onClose},o.a.createElement("div",{id:"image-preview-caption-panel"},o.a.createElement("a",{href:this.props.content.url,download:this.props.content.filename},o.a.createElement("i",{className:"material-icons"},"file_download")," ",o.a.createElement(s.FormattedMessage,{id:"download_action",defaultMessage:"download"})),o.a.createElement("a",{href:"javascript:;",onClick:this.props.onClose},o.a.createElement("i",{className:"material-icons gray"},"close"))),o.a.createElement("div",{id:"image-preview-container",ref:function(t){e.container=t}},o.a.createElement("img",{src:this.props.content.url,style:n})),o.a.createElement("div",{id:"image-preview-footer"},o.a.createElement("div",null,o.a.createElement("div",null,o.a.createElement("b",null,o.a.createElement(s.FormattedMessage,{id:"label_file_name",defaultMessage:"File name:"}))),o.a.createElement("div",null,o.a.createElement("span",{title:this.props.content.filename},a))),o.a.createElement("div",null,o.a.createElement("div",null,o.a.createElement("b",null,o.a.createElement(s.FormattedMessage,{id:"label_content_type",defaultMessage:"Content type:"}))),o.a.createElement("div",null,this.props.content.type)),o.a.createElement("div",null,o.a.createElement("div",null,o.a.createElement("b",null,o.a.createElement(s.FormattedMessage,{id:"label_size",defaultMessage:"Size:"}))),o.a.createElement("div",null,this.props.content.width," × ",this.props.content.height," px; ",j(this.props.content.size)))))}}])&&xn(n.prototype,a),r&&xn(n,r),t}();function Fn(e){return(Fn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function In(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 Ln(e,t){return!t||"object"!==Fn(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function qn(e){return(qn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Hn(e,t){return(Hn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Wn=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Ln(this,qn(t).apply(this,arguments))}var n,a,r;return 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&&Hn(e,t)}(t,o.a.PureComponent),n=t,(a=[{key:"render",value:function(){return this.props.show?o.a.createElement("div",{className:"load-spinner-box"},o.a.createElement("div",{className:"loader-spinner"})):null}}])&&In(n.prototype,a),r&&In(n,r),t}();function Gn(e){return(Gn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}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 Bn(e,t){return!t||"object"!==Gn(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Kn(e){return(Kn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function zn(e,t){return(zn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Jn=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Bn(this,Kn(t).apply(this,arguments))}var n,a,r;return 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)}(t,o.a.PureComponent),n=t,(a=[{key:"render",value:function(){var e=f+" ("+h.a.getLibrary()+")";return o.a.createElement("div",{id:"dummy-view",className:this.props.hideSelf?"nodisplay":null},o.a.createElement("div",null,o.a.createElement("a",{href:"https://github.com/tinode/chat/"},o.a.createElement("img",{id:"logo",alt:"logo",src:"img/logo.svg"}),o.a.createElement("h2",null,"Tinode Web")),o.a.createElement("p",null,o.a.createElement(s.FormattedMessage,{id:"label_client",defaultMessage:"Client:"})," ",e),o.a.createElement("p",null,o.a.createElement(s.FormattedMessage,{id:"label_server",defaultMessage:"Server:"})," ",this.props.serverVersion,"(",this.props.serverAddress,")")))}}])&&Vn(n.prototype,a),r&&Vn(n,r),t}();function Yn(e){return(Yn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Qn(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function Xn(e){return(Xn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function $n(e,t){return($n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Zn(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var ea=Object(s.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."}}),ta=function(e){function t(e){var n,a,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),a=this,(n=!(o=Xn(t).call(this,e))||"object"!==Yn(o)&&"function"!=typeof o?Zn(a):o).state={message:"",keypressTimestamp:(new Date).getTime()-b-1},n.handlePasteEvent=n.handlePasteEvent.bind(Zn(Zn(n))),n.handleAttachImage=n.handleAttachImage.bind(Zn(Zn(n))),n.handleAttachFile=n.handleAttachFile.bind(Zn(Zn(n))),n.handleSend=n.handleSend.bind(Zn(Zn(n))),n.handleKeyPress=n.handleKeyPress.bind(Zn(Zn(n))),n.handleMessageTyping=n.handleMessageTyping.bind(Zn(Zn(n))),n}var n,a,r;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&$n(e,t)}(t,o.a.PureComponent),n=t,(a=[{key:"componentDidMount",value:function(){this.pasteFile.addEventListener("paste",this.handlePasteEvent,!1)}},{key:"componentWillUnmount",value:function(){this.pasteFile.removeEventListener("paste",this.handlePasteEvent,!1)}},{key:"handlePasteEvent",value:function(e){var t=this;this.props.disabled||function(e,t,n,a){var o=(e.clipboardData||e.originalEvent.clipboardData||{}).items;for(var r in o){var i=o[r];if("file"===i.kind){var s=i.getAsFile();if(!s){console.log("Failed to get file object from pasted file item",i.kind,i.type);continue}return s.type&&"image"==s.type.split("/")[0]?s.size>y||F.indexOf(s.type)<0?W(s,_,_,!1,t,a):G(s,t,a):V(s,n),!0}}return!1}(e,function(e,n,a,o,r){t.props.sendMessage(p.Drafty.insertImage(null,0,n,e,a,o,r))},function(e,n,a){t.props.sendMessage(p.Drafty.attachFile(null,e,n,a))},this.props.onError)&&e.preventDefault()}},{key:"handleAttachImage",value:function(e){var t=this;if(e.target.files&&e.target.files.length>0){var n=e.target.files[0];n.size>y||F.indexOf(n.type)<0?W(n,_,_,!1,function(e,n,a,o,r){t.props.sendMessage(p.Drafty.insertImage(null,0,n,e,a,o,r))},function(e){t.props.onError(e,"err")}):G(n,function(e,n,a,o,r){t.props.sendMessage(p.Drafty.insertImage(null,0,n,e,a,o,r))},function(e){t.props.onError(e,"err")})}e.target.value=""}},{key:"handleAttachFile",value:function(e){var t=this,n=this.props.intl.formatMessage;if(e.target.files&&e.target.files.length>0){var a=e.target.files[0];if(a.size>1<<23)this.props.onError(n(ea.file_attachment_too_large,{size:j(a.size),limit:j(1<<23)}),"err");else if(a.size>y){var o=this.props.tinode.getLargeFileHelper();if(!o)return void this.props.onError(n(ea.cannot_initiate_upload));var r=o.upload(a),i=p.Drafty.attachFile(null,a.type,null,a.name,a.size,r);this.props.sendMessage(i,r,o)}else V(a,function(e,n,a){t.props.sendMessage(p.Drafty.attachFile(null,e,n,a))},this.props.onError)}e.target.value=""}},{key:"handleSend",value:function(){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()))}},{key:"handleMessageTyping",value:function(e){var t={message:e.target.value},n=(new Date).getTime();if(n-this.state.keypressTimestamp>b){var a=this.props.tinode.getTopic(this.props.topic);a.isSubscribed()&&a.noteKeyPress(),t.keypressTimestamp=n}this.setState(t)}},{key:"render",value:function(){var e=this.props.intl.formatMessage,t=this.props.disabled?e(ea.messaging_disabled):e(ea.type_new_message),n=this;return o.a.createElement("div",{id:"send-message-panel"},this.props.disabled?o.a.createElement("i",{className:"material-icons disabled"},"photo"):o.a.createElement("a",{href:"javascript:;",onClick:function(e){n.attachImage.click()},title:"Add image"},o.a.createElement("i",{className:"material-icons secondary"},"photo")),this.props.disabled?o.a.createElement("i",{className:"material-icons disabled"},"attach_file"):o.a.createElement("a",{href:"javascript:;",onClick:function(e){n.attachFile.click()},title:"Attach file"},o.a.createElement("i",{className:"material-icons secondary"},"attach_file")),o.a.createElement("textarea",{id:"sendMessage",placeholder:t,disabled:this.props.disabled,value:this.state.message,onChange:this.handleMessageTyping,onKeyPress:this.handleKeyPress,ref:function(e){n.pasteFile=e},autoFocus:!0}),this.props.disabled?o.a.createElement("i",{className:"material-icons disabled"},"send"):o.a.createElement("a",{href:"javascript:;",onClick:this.handleSend,title:"Send"},o.a.createElement("i",{className:"material-icons"},"send")),o.a.createElement("input",{type:"file",ref:function(e){n.attachFile=e},onChange:this.handleAttachFile,style:{display:"none"}}),o.a.createElement("input",{type:"file",ref:function(e){n.attachImage=e},accept:"image/*",onChange:this.handleAttachImage,style:{display:"none"}}))}}])&&Qn(n.prototype,a),r&&Qn(n,r),t}(),na=Object(s.injectIntl)(ta);function aa(e){return(aa="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function oa(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 ia(e,t){return(ia=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function sa(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var la=h.a.Drafty,ca=Object(s.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"}}),ua=function(e){function t(e){var n,a,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),a=this,(n=!(o=ra(t).call(this,e))||"object"!==aa(o)&&"function"!=typeof o?sa(a):o).state={messages:[],onlineSubs:[],topic:"",title:"",avatar:null,scrollPosition:0,readOnly:!e.acs||!e.acs.isWriter(),writeOnly:!e.acs||!e.acs.isReader(),typingIndicator:!1,imagePreview:null},n.propsChange=n.propsChange.bind(sa(sa(n))),n.leave=n.leave.bind(sa(sa(n))),n.handleScrollReference=n.handleScrollReference.bind(sa(sa(n))),n.handleScrollEvent=n.handleScrollEvent.bind(sa(sa(n))),n.handleDescChange=n.handleDescChange.bind(sa(sa(n))),n.handleSubsUpdated=n.handleSubsUpdated.bind(sa(sa(n))),n.handleNewMessage=n.handleNewMessage.bind(sa(sa(n))),n.handleAllMessagesReceived=n.handleAllMessagesReceived.bind(sa(sa(n))),n.handleInfoReceipt=n.handleInfoReceipt.bind(sa(sa(n))),n.handleImagePreview=n.handleImagePreview.bind(sa(sa(n))),n.handleCloseImagePreview=n.handleCloseImagePreview.bind(sa(sa(n))),n.handleFormResponse=n.handleFormResponse.bind(sa(sa(n))),n.handleContextClick=n.handleContextClick.bind(sa(sa(n))),n.handleShowContextMenuMessage=n.handleShowContextMenuMessage.bind(sa(sa(n))),n.handleBackNavigation=n.handleBackNavigation.bind(sa(sa(n))),n}var n,a,r;return 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&&ia(e,t)}(t,o.a.Component),n=t,(a=[{key:"componentDidUpdate",value:function(e,t){this.messagesScroller&&(t.title!=this.state.title||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))}},{key:"componentDidMount",value:function(){this.propsChange(this.props),this.messagesScroller&&this.messagesScroller.addEventListener("scroll",this.handleScrollEvent)}},{key:"componentWillUnmount",value:function(){this.leave(this.state.topic),this.messagesScroller&&this.messagesScroller.removeEventListener("scroll",this.handleScrollEvent)}},{key:"UNSAFE_componentWillReceiveProps",value:function(e){this.propsChange(e)}},{key:"propsChange",value:function(e){var t=this;if(e&&e.topic)if(e.connected){var n=this.props.tinode.getTopic(e.topic);if(n){var a=h.a.isNewGroupTopicName(e.topic),o=!this.props.connected&&e.connected;if(e.topic!=this.state.topic){var r=[],i=[];n.onData=this.handleNewMessage,n.onAllMessagesReceived=this.handleAllMessagesReceived,n.onInfo=this.handleInfoReceipt,n.onMetaDesc=this.handleDescChange,n.onSubsUpdated=this.handleSubsUpdated,n.onPres=this.handleSubsUpdated,this.leave(this.state.topic),this.handleDescChange(n),n.subscribers(function(e){e.online&&e.user!=t.props.myUserId&&i.push(e)}),n.messages(function(e){e.deleted||(r=r.concat(e))}),this.setState({messages:r,onlineSubs:i,topic:e.topic,imagePreview:null,scrollPosition:0}),o=!0,this.props.readTimerHandler(null)}if(this.setState({readOnly:!e.acs||!e.acs.isWriter(),writeOnly:!e.acs||!e.acs.isReader()}),!n.isSubscribed()&&o){var s=n.startMetaQuery().withLaterDesc().withLaterSub().withLaterData(24).withLaterDel(),l=a?e.newGroupTopicParams:void 0;this.setState({fetchingMessages:!0}),n.subscribe(s.build(),l).then(function(a){t.setState({topic:a.topic}),t.props.onNewTopicCreated(e.topic,a.topic),n.queuedMessages(function(e){!e._sending&&n.isSubscribed()&&n.publishMessage(e)})}).catch(function(e){t.props.onError(e.message,"err");var n=t.props.intl.formatMessage;t.setState({title:n(ca.not_found),avatar:null,readOnly:!0,writeOnly:!0,fetchingMessages:!1,messages:[],onlineSubs:[],typingIndicator:!1,imagePreview:null})})}}}else this.setState({onlineSubs:[]});else{var c=this.state.topic;this.setState({messages:[],onlineSubs:[],topic:null},this.leave(c))}}},{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 t=this;this.setState({scrollPosition:e.target.scrollHeight-e.target.scrollTop}),e.target.scrollTop<=0&&this.setState(function(e,n){var a={};if(!e.fetchingMessages){var o=t.props.tinode.getTopic(t.state.topic);o&&o.isSubscribed()&&o.msgHasMoreMessages()&&(a.fetchingMessages=!0,o.getMessagesPage(24).catch(function(e){t.setState({fetchingMessages:!1}),t.props.onError(e.message,"err")}))}return a})}},{key:"handleDescChange",value:function(e){e.public?this.setState({title:e.public.fn,avatar:L(e.public.photo)}):this.setState({title:"",avatar:null}),e.acs&&this.setState({readOnly:!e.acs.isWriter(),writeOnly:!e.acs.isReader()})}},{key:"handleSubsUpdated",value:function(){var e=this;if(this.state.topic){var t=[];this.props.tinode.getTopic(this.state.topic).subscribers(function(n){n.online&&n.user!=e.props.myUserId&&t.push(n)}),this.setState({onlineSubs:t})}}},{key:"handleNewMessage",value:function(e){var t=this.props.tinode.getTopic(this.state.topic),n={messages:[]};(t.messages(function(e){e.deleted||(n.messages=n.messages.concat(e))}),e&&!e.deleted)&&(t.isNewMessage(e.seq)&&(n.scrollPosition=0),t.msgStatus(e)>=h.a.MESSAGE_STATUS_SENT&&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})},b+1e3),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(la.attachJSON(la.parse(t),n));else if("url"==e){var a=new URL(n.ref),o=a.searchParams;for(var r in n.resp)n.resp.hasOwnProperty(r)&&o.set(r,n.resp[r]);["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:"handleBackNavigation",value:function(){this.props.onHideMessagesView()}},{key:"render",value:function(){var e,t=this.props.intl.formatMessage;if(this.state.topic){for(var n=this.props.tinode.getTopic(this.state.topic),a="grp"==n.getType(),r=[],i=null,l=null,c=0;c<this.state.messages.length;c++){var u=this.state.messages[c],d=null;c+1<this.state.messages.length&&(d=this.state.messages[c+1].from);var p="single";u.from==i?p=u.from==d?"middle":"last":u.from==d&&(p="first"),i=u.from;var f=!(u.from==this.props.myUserId),m=n.msgStatus(u),g=void 0,b=void 0,v=void 0;if(a){var y=n.userDesc(u.from);y&&y.public&&(g=y.public.fn,b=L(y.public.photo)),v=u.from,l="chat-box group"}else l="chat-box";r.push(o.a.createElement(En,{tinode:this.props.tinode,content:u.content,mimeType:u.head?u.head.mime:null,timestamp:u.ts,response:f,seq:u.seq,userFrom:v,userName:g,userAvatar:b,sequence:p,received:m,uploader:u._uploader,viewportWidth:this.props.viewportWidth,showContextMenu:this.handleShowContextMenuMessage,onImagePreview:this.handleImagePreview,onFormResponse:this.handleFormResponse,onError:this.props.onError,key:u.seq}))}var _=null,w=this.props.tinode.getMeTopic().getContact(this.state.topic);w&&"p2p"==h.a.topicType(w.topic)&&(w.online?_=t(ca.online_now):w.seen&&(_=t(ca.last_seen)+": "+P(w.seen.when)));var S=this.state.avatar||!0,E=this.props.online?"online"+(this.state.typingIndicator?" typing":""):"offline";e=o.a.createElement("div",{id:"topic-view",className:this.props.hideSelf?"nodisplay":null},o.a.createElement("div",{id:"topic-caption-panel",className:"caption-panel"},this.props.displayMobile?o.a.createElement("a",{href:"javascript:;",id:"hide-message-view",onClick:this.handleBackNavigation},o.a.createElement("i",{className:"material-icons"},"arrow_back")):null,o.a.createElement("div",{className:"avatar-box"},o.a.createElement(R,{avatar:S,topic:this.state.topic,title:this.state.title}),o.a.createElement("span",{className:E})),o.a.createElement("div",{id:"topic-title-group"},o.a.createElement("div",{id:"topic-title",className:"panel-title"},this.state.title||o.a.createElement("i",null,o.a.createElement(s.FormattedMessage,{id:"unnamed_topic",defaultMessage:"Unnamed"}))),o.a.createElement("div",{id:"topic-last-seen"},_)),a?o.a.createElement(jn,{subscribers:this.state.onlineSubs}):o.a.createElement("div",{id:"topic-users"}),o.a.createElement("div",null,o.a.createElement("a",{href:"javascript:;",onClick:this.handleContextClick},o.a.createElement("i",{className:"material-icons"},"more_vert")))),this.props.displayMobile?o.a.createElement(We,{level:this.props.errorLevel,text:this.props.errorText,onClearError:this.props.onError}):null,o.a.createElement(Wn,{show:this.state.fetchingMessages}),o.a.createElement("div",{id:"messages-container"},o.a.createElement("div",{id:"messages-panel",ref:this.handleScrollReference},o.a.createElement("ul",{id:"scroller",className:l},r)),this.state.writeOnly?o.a.createElement("div",{id:"write-only-background"},o.a.createElement("div",{id:"write-only-note"},o.a.createElement(s.FormattedMessage,{id:"messages_not_readable",defaultMessage:"no access to messages"}))):null),o.a.createElement(na,{tinode:this.props.tinode,topic:this.props.topic,disabled:this.state.readOnly,sendMessage:this.props.sendMessage,onError:this.props.onError}),this.state.imagePreview?o.a.createElement(Rn,{content:this.state.imagePreview,onClose:this.handleCloseImagePreview}):null)}else e=o.a.createElement(Jn,{hideSelf:this.props.hideSelf,serverVersion:this.props.serverVersion,serverAddress:this.props.serverAddress});return e}}])&&oa(n.prototype,a),r&&oa(n,r),t}(),da=Object(s.injectIntl)(ua);function pa(e){return(pa="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ha(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function fa(e,t){return!t||"object"!==pa(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function ma(e){return(ma=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ga(e,t){return(ga=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var ba=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),fa(this,ma(t).apply(this,arguments))}var n,a,r;return 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&&ga(e,t)}(t,o.a.PureComponent),n=t,(a=[{key:"render",value:function(){return o.a.createElement("div",null,o.a.createElement("a",{href:"javascript:;",onClick:this.props.onNewTopic},o.a.createElement("i",{className:"material-icons"},"chat"))," ",o.a.createElement("a",{href:"javascript:;",onClick:this.props.onSettings},o.a.createElement("i",{className:"material-icons"},"settings")))}}])&&ha(n.prototype,a),r&&ha(n,r),t}();function va(e){return(va="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ya(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function _a(e,t){return!t||"object"!==va(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function wa(e){return(wa=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Sa(e,t){return(Sa=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Ea=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),_a(this,wa(t).apply(this,arguments))}var n,a,r;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Sa(e,t)}(t,o.a.PureComponent),n=t,(a=[{key:"render",value:function(){return o.a.createElement("div",null,o.a.createElement("a",{href:"javascript:;",onClick:this.props.onSignUp},o.a.createElement("i",{className:"material-icons"},"person_add"))," ",o.a.createElement("a",{href:"javascript:;",onClick:this.props.onSettings},o.a.createElement("i",{className:"material-icons"},"settings")))}}])&&ya(n.prototype,a),r&&ya(n,r),t}();function ka(e){return(ka="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ca(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"!==ka(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Ta(e){return(Ta=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Oa(e,t){return(Oa=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Pa=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Ma(this,Ta(t).apply(this,arguments))}var n,a,r;return 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&&Oa(e,t)}(t,o.a.PureComponent),n=t,(a=[{key:"render",value:function(){return o.a.createElement("div",{id:"side-caption-panel",className:"caption-panel"},o.a.createElement("div",{id:"self-avatar",className:"avatar-box"},o.a.createElement(R,{avatar:this.props.avatar,topic:this.props.myUserId,title:this.props.title})),o.a.createElement("div",{id:"sidepanel-title",className:"panel-title"},this.props.title),"login"===this.props.state?o.a.createElement(Ea,{onSignUp:this.props.onSignUp,onSettings:this.props.onSettings}):"contacts"===this.props.state?o.a.createElement(ba,{onNewTopic:this.props.onNewTopic,onSettings:this.props.onSettings}):null,this.props.onCancel?o.a.createElement(Re,{onCancel:this.props.onCancel}):null)}}])&&Ca(n.prototype,a),r&&Ca(n,r),t}();function ja(e){return(ja="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Na(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,t){return!t||"object"!==ja(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Ua(e){return(Ua=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Aa(e,t){return(Aa=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Da=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=xa(this,Ua(t).call(this,e))).state=t.getDerivedStateFromProps(e,{}),n}var n,a,r;return 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&&Aa(e,t)}(t,o.a.Component),n=t,r=[{key:"getDerivedStateFromProps",value:function(e,t){var n=[],a=0;return e.chatList.map(function(e){a+=e.unread>0?1:0,n.push(e)}),n.sort(function(e,t){return(t.touched||0)-(e.touched||0)}),Dt(a),{contactList:n}}}],(a=[{key:"render",value:function(){var e=this;return o.a.createElement(s.FormattedHTMLMessage,{id:"contacts_not_found",defaultMesage:"You have no chats<br />¯∖_(ツ)_/¯",description:"HTML message shown in ContactList when no contacts are found"},function(t){return o.a.createElement(je,{connected:e.props.connected,contacts:e.state.contactList,emptyListMessage:t,topicSelected:e.props.topicSelected,myUserId:e.props.myUserId,showOnline:!0,showUnread:!0,onTopicSelected:e.props.onTopicSelected,showContextMenu:e.props.showContextMenu})})}}])&&Na(n.prototype,a),r&&Na(n,r),t}();function Ra(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 Fa=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,n,a;return t=e,a=[{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)}}],(n=null)&&Ra(t.prototype,n),a&&Ra(t,a),e}();function Ia(e){return(Ia="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function La(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function qa(e){return(qa=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Ha(e,t){return(Ha=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Wa(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var Ga=function(e){function t(e){var n,a,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),a=this,(n=!(o=qa(t).call(this,e))||"object"!==Ia(o)&&"function"!=typeof o?Wa(a):o).state={login:"",password:"",email:"",fn:"",imageDataUrl:null,errorCleared:!1,saveToken:Fa.getObject("keep-logged-in")},n.handleLoginChange=n.handleLoginChange.bind(Wa(Wa(n))),n.handlePasswordChange=n.handlePasswordChange.bind(Wa(Wa(n))),n.handleEmailChange=n.handleEmailChange.bind(Wa(Wa(n))),n.handleFnChange=n.handleFnChange.bind(Wa(Wa(n))),n.handleImageChanged=n.handleImageChanged.bind(Wa(Wa(n))),n.handleToggleSaveToken=n.handleToggleSaveToken.bind(Wa(Wa(n))),n.handleSubmit=n.handleSubmit.bind(Wa(Wa(n))),n}var n,a,r;return 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&&Ha(e,t)}(t,o.a.PureComponent),n=t,(a=[{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(){Fa.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(),Rt(this.state.fn,this.state.imageDataUrl),{meth:"email",val:this.state.email})}},{key:"render",value:function(){var e=this,t="blue";return this.props.disabled&&(t+=" disabled"),o.a.createElement("form",{className:"panel-form-column",onSubmit:this.handleSubmit},o.a.createElement("div",{className:"panel-form-row"},o.a.createElement("div",{className:"panel-form-column"},o.a.createElement(s.FormattedMessage,{id:"login_prompt"},function(t){return o.a.createElement("input",{type:"text",placeholder:t,autoComplete:"user-name",value:e.state.login,onChange:e.handleLoginChange,required:!0,autoFocus:!0})}),o.a.createElement(s.FormattedMessage,{id:"password_prompt"},function(t){return o.a.createElement(ft,{placeholder:t,autoComplete:"new-password",value:e.state.password,onFinished:e.handlePasswordChange,required:!0})})),o.a.createElement($,{onImageChanged:this.handleImageChanged,onError:this.props.onError})),o.a.createElement("div",{className:"panel-form-row"},o.a.createElement(s.FormattedMessage,{id:"full_name_prompt",defaultMessage:"Full name, e.g. John Doe"},function(t){return o.a.createElement("input",{type:"text",placeholder:t,autoComplete:"name",value:e.state.fn,onChange:e.handleFnChange,required:!0})})),o.a.createElement("div",{className:"panel-form-row"},o.a.createElement(s.FormattedMessage,{id:"email_prompt",defaultMessage:"Email, e.g. jdoe@example.com"},function(t){return o.a.createElement("input",{type:"email",placeholder:t,autoComplete:"email",value:e.state.email,onChange:e.handleEmailChange,required:!0})})),o.a.createElement("div",{className:"panel-form-row"},o.a.createElement(oe,{id:"save-token",name:"save-token",checked:this.state.saveToken,onChange:this.handleToggleSaveToken}),o.a.createElement(s.FormattedMessage,{id:"stay_logged_in"},function(e){return o.a.createElement("label",{htmlFor:"save-token"}," ",e)})),o.a.createElement("div",{className:"dialog-buttons"},o.a.createElement("button",{className:t,type:"submit"},o.a.createElement(s.FormattedMessage,{id:"button_sign_up",defaultMessage:"Sign up"}))))}}])&&La(n.prototype,a),r&&La(n,r),t}();function Va(e){return(Va="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}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 Ka(e){return(Ka=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function za(e,t){return(za=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Ja(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var Ya=function(e){function t(e){var n,a,o;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),a=this;var r=(n=!(o=Ka(t).call(this,e))||"object"!==Va(o)&&"function"!=typeof o?Ja(a):o).props.tinode.getMeTopic(),i=r.getDefaultAccess(),s=n.props.tinode.getFndTopic();return n.state={fullName:r.public?r.public.fn:void 0,avatar:L(r.public?r.public.photo:null),auth:i?i.auth:null,anon:i?i.anon:null,tags:s.tags(),showPermissionEditorFor:void 0,previousOnTags:s.onTagsUpdated},n.tnNewTags=n.tnNewTags.bind(Ja(Ja(n))),n.handleFullNameUpdate=n.handleFullNameUpdate.bind(Ja(Ja(n))),n.handlePasswordUpdate=n.handlePasswordUpdate.bind(Ja(Ja(n))),n.handleImageChanged=n.handleImageChanged.bind(Ja(Ja(n))),n.handleCheckboxClick=n.handleCheckboxClick.bind(Ja(Ja(n))),n.handleLaunchPermissionsEditor=n.handleLaunchPermissionsEditor.bind(Ja(Ja(n))),n.handleHidePermissionsEditor=n.handleHidePermissionsEditor.bind(Ja(Ja(n))),n.handlePermissionsChanged=n.handlePermissionsChanged.bind(Ja(Ja(n))),n.handleTagsUpdated=n.handleTagsUpdated.bind(Ja(Ja(n))),n}var n,a,r;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&za(e,t)}(t,o.a.Component),n=t,(a=[{key:"componentDidMount",value:function(){var e=this,t=this.props.tinode.getFndTopic();t.onTagsUpdated=this.tnNewTags,t.isSubscribed()||t.subscribe(t.startMetaQuery().withLaterDesc().withTags().build()).catch(function(t){e.props.onError(t.message,"err")})}},{key:"componentWillUnmount",value:function(){this.props.tinode.getFndTopic().onTagsUpdated=this.state.previousOnTags}},{key:"tnNewTags",value:function(e){this.setState({tags:e})}},{key:"handleFullNameUpdate",value:function(e){this.setState({fullName:e}),this.props.onUpdateAccount(void 0,Rt(e,this.state.avatar))}},{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,Rt(this.state.fullName,e))}},{key:"handleCheckboxClick",value:function(e,t){"sound"==e?this.props.onToggleMessageSounds(t):"alert"==e&&this.props.onTogglePushNotifications(t)}},{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){arrayEqual(this.state.tags.slice(0),e.slice(0))||this.props.onUpdateTags(e)}},{key:"render",value:function(){var e=this,t=[];return this.state.tags.map(function(e){t.push(o.a.createElement("span",{className:"badge",key:t.length},e))}),0==t.length&&(t=o.a.createElement("i",null,o.a.createElement(s.FormattedMessage,{id:"tags_not_found"}))),o.a.createElement(o.a.Fragment,null,this.state.showPermissionEditorFor?o.a.createElement(At,{mode:this.state.editedPermissions,skip:"O",onSubmit:this.handlePermissionsChanged,onCancel:this.handleHidePermissionsEditor}):o.a.createElement("div",{id:"edit-account",className:"scrollable-panel"},o.a.createElement("div",{className:"panel-form-row"},o.a.createElement("div",{className:"panel-form-column"},o.a.createElement("div",null,o.a.createElement("label",{className:"small"},o.a.createElement(s.FormattedMessage,{id:"label_your_name",defaultMessage:"Your name"}))),o.a.createElement("div",null,o.a.createElement(s.FormattedMessage,{id:"full_name_prompt"},function(t){return o.a.createElement(_t,{placeholder:t,value:e.state.fullName,onFinished:e.handleFullNameUpdate})})),o.a.createElement("div",null,o.a.createElement("label",{className:"small"},o.a.createElement(s.FormattedMessage,{id:"label_password",defaultMessage:"Password"}))),o.a.createElement("div",null,o.a.createElement(s.FormattedMessage,{id:"password_unchanged_prompt",defaultMessage:"Unchanged"},function(t){return o.a.createElement(_t,{placeholder:t,type:"password",onFinished:e.handlePasswordUpdate})}))),o.a.createElement($,{avatar:this.state.avatar,uid:this.props.myUserId,title:this.state.fullName,onImageChanged:this.handleImageChanged,onError:this.props.onError})),o.a.createElement("div",{className:"hr"}),o.a.createElement("div",{className:"panel-form-column"},o.a.createElement("div",{className:"panel-form-row"},o.a.createElement("label",null,o.a.createElement(s.FormattedMessage,{id:"label_user_id",defaultMessage:"Address:"})),o.a.createElement("tt",null,this.props.myUserId)),o.a.createElement("div",null,o.a.createElement("label",{className:"small"},o.a.createElement(s.FormattedMessage,{id:"label_default_access_mode",defaultMessage:"Default access mode:"}))),o.a.createElement("div",{className:"quoted"},o.a.createElement("div",null,"Auth: ",o.a.createElement("tt",{className:"clickable",onClick:this.handleLaunchPermissionsEditor.bind(this,"auth")},this.state.auth)),o.a.createElement("div",null,"Anon: ",o.a.createElement("tt",{className:"clickable",onClick:this.handleLaunchPermissionsEditor.bind(this,"anon")},this.state.anon)))),o.a.createElement("div",{className:"hr"}),o.a.createElement("div",{className:"panel-form-row"},o.a.createElement("label",{htmlFor:"message-sound"},o.a.createElement(s.FormattedMessage,{id:"label_message_sound",defaultMessage:"Message sound:"})),o.a.createElement(oe,{name:"sound",id:"message-sound",checked:this.props.messageSounds,onChange:this.handleCheckboxClick})),o.a.createElement("div",{className:"panel-form-row"},o.a.createElement("label",{htmlFor:"desktop-alerts"},this.props.desktopAlertsEnabled?o.a.createElement(s.FormattedMessage,{id:"label_push_notifications",defaultMessage:"Notification alerts:"}):o.a.createElement(s.FormattedMessage,{id:"label_push_notifications_disabled",defaultMessage:"Notification alerts (requires HTTPS):"})),o.a.createElement(oe,{name:"alert",id:"desktop-alerts",checked:this.props.desktopAlerts,onChange:this.props.desktopAlertsEnabled?this.handleCheckboxClick:null})),o.a.createElement("div",{className:"hr"}),o.a.createElement(s.FormattedMessage,{id:"title_tag_manager",defaultMessage:"Tags (user discovery)"},function(t){return o.a.createElement(Wt,{title:t,activated:!1,tags:e.state.tags,onSubmit:e.handleTagsUpdated})}),o.a.createElement("div",{className:"hr"}),o.a.createElement("div",{className:"panel-form-column"},o.a.createElement("a",{href:"javascript:;",className:"red flat-button",onClick:this.props.onLogout},o.a.createElement("i",{className:"material-icons"},"exit_to_app")," ",o.a.createElement(s.FormattedMessage,{id:"button_logout",defaultMessage:"Logout"})))))}}])&&Ba(n.prototype,a),r&&Ba(n,r),t}();function Qa(e){return(Qa="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Xa(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function $a(e){return($a=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Za(e,t){return(Za=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function eo(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var to=function(e){function t(e){var n,a,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),a=this,(n=!(o=$a(t).call(this,e))||"object"!==Qa(o)&&"function"!=typeof o?eo(a):o).state={login:e.login,password:"",hostName:e.serverAddress,saveToken:Fa.getObject("keep-logged-in")},n.handleLoginChange=n.handleLoginChange.bind(eo(eo(n))),n.handlePasswordChange=n.handlePasswordChange.bind(eo(eo(n))),n.handleToggleSaveToken=n.handleToggleSaveToken.bind(eo(eo(n))),n.handleSubmit=n.handleSubmit.bind(eo(eo(n))),n}var n,a,r;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Za(e,t)}(t,o.a.Component),n=t,(a=[{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(){Fa.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 e=this,t="blue";return this.props.disabled&&(t+=" disabled"),o.a.createElement("form",{id:"login-form",onSubmit:this.handleSubmit},o.a.createElement(s.FormattedMessage,{id:"login_prompt",defaultMessage:"Login"},function(t){return o.a.createElement("input",{type:"text",id:"inputLogin",placeholder:t,autoComplete:"username",value:e.state.login,onChange:e.handleLoginChange,required:!0,autoFocus:!0})}),o.a.createElement(s.FormattedMessage,{id:"password_prompt",defaultMessage:"Password"},function(t){return o.a.createElement(ft,{type:"password",id:"inputPassword",placeholder:t,autoComplete:"current-password",value:e.state.password,onChange:e.handlePasswordChange,required:!0})}),o.a.createElement("div",{className:"panel-form-row"},o.a.createElement(oe,{id:"save-token",name:"save-token",checked:this.state.saveToken,onChange:this.handleToggleSaveToken}),o.a.createElement("label",{htmlFor:"save-token"}," ",o.a.createElement(s.FormattedMessage,{id:"stay_logged_in",defaultMessage:"Stay logged in"})),o.a.createElement("a",{href:"#reset"},o.a.createElement(s.FormattedMessage,{id:"forgot_password_link",defaultMessage:"Forgot password?"}))),o.a.createElement("div",{className:"dialog-buttons"},o.a.createElement("button",{className:t,type:"submit"},o.a.createElement(s.FormattedMessage,{id:"button_sign_in",defaultMessage:"Sign in"}))))}}])&&Xa(n.prototype,a),r&&Xa(n,r),t}();function no(e){return(no="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ao(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function oo(e){return(oo=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ro(e,t){return(ro=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function io(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var so=Object(s.defineMessages)({invalid_id:{id:"error_invalid_id",defaultMessage:"Invalid ID"}}),lo=function(e){function t(e){var n,a,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),a=this,(n=!(o=oo(t).call(this,e))||"object"!==no(o)&&"function"!=typeof o?io(a):o).state={groupId:""},n.handleChange=n.handleChange.bind(io(io(n))),n.handleKeyPress=n.handleKeyPress.bind(io(io(n))),n.handleSubmit=n.handleSubmit.bind(io(io(n))),n}var n,a,r;return 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&&ro(e,t)}(t,o.a.PureComponent),n=t,(a=[{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();t.length>3&&("usr"==t.substr(0,3)||"grp"==t.substr(0,3))?this.props.onSubmit(t):this.props.onError(this.props.intl.formatMessage(so.invalid_id),"err")}}},{key:"render",value:function(){var e=this;return o.a.createElement("div",{className:"panel-form"},o.a.createElement("div",{className:"panel-form-row"},o.a.createElement(s.FormattedMessage,{id:"group_user_id_prompt",defaultMessage:"Group or User ID"},function(t){return o.a.createElement("input",{type:"text",placeholder:t,value:e.state.groupId,onChange:e.handleChange,onKeyPress:e.handleKeyPress,required:!0})})),o.a.createElement("div",{className:"dialog-buttons"},o.a.createElement("button",{className:"blue",onClick:this.handleSubmit},o.a.createElement(s.FormattedMessage,{id:"button_subscribe",defaultMessage:"Subscribe"}))))}}])&&ao(n.prototype,a),r&&ao(n,r),t}(),co=Object(s.injectIntl)(lo);function uo(e){return(uo="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function po(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function ho(e){return(ho=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function fo(e,t){return(fo=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function mo(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var go=function(e){function t(e){var n,a,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),a=this,(n=!(o=ho(t).call(this,e))||"object"!==uo(o)&&"function"!=typeof o?mo(a):o).state={fn:"",private:"",imageDataUrl:null,tags:[]},n.handleFnChange=n.handleFnChange.bind(mo(mo(n))),n.handlePrivateChange=n.handlePrivateChange.bind(mo(mo(n))),n.handleImageChanged=n.handleImageChanged.bind(mo(mo(n))),n.handleTagsChanged=n.handleTagsChanged.bind(mo(mo(n))),n.handleTagsChanged=n.handleTagsChanged.bind(mo(mo(n))),n.handleSubmit=n.handleSubmit.bind(mo(mo(n))),n}var n,a,r;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&fo(e,t)}(t,o.a.PureComponent),n=t,(a=[{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(),this.state.fn&&this.state.fn.trim()&&this.props.onSubmit(this.state.fn.trim(),this.state.imageDataUrl,this.state.private.trim(),this.state.tags)}},{key:"render",value:function(){var e=this,t="blue";return this.props.disabled&&(t+=" disabled"),o.a.createElement("form",{className:"panel-form",onSubmit:this.handleSubmit},o.a.createElement("div",{className:"panel-form-row"},o.a.createElement("div",{className:"panel-form-column"},o.a.createElement("label",{className:"small",htmlFor:"new-topic-fn"},o.a.createElement(s.FormattedMessage,{id:"label_topic_name"})),o.a.createElement(s.FormattedMessage,{id:"topic_name_editing_placeholder",defaultMessage:"Freeform name of the group"},function(t){return o.a.createElement("input",{type:"text",id:"new-topic-fn",placeholder:t,value:e.state.fn,onChange:e.handleFnChange,autoFocus:!0,required:!0})}),o.a.createElement("br",null),o.a.createElement("label",{className:"small",htmlFor:"new-topic-priv"},o.a.createElement(s.FormattedMessage,{id:"label_private"})),o.a.createElement(s.FormattedMessage,{id:"private_editing_placeholder"},function(t){return o.a.createElement("input",{type:"text",id:"new-topic-priv",placeholder:t,value:e.state.private,onChange:e.handlePrivateChange})})),o.a.createElement($,{onError:this.props.onError,onImageChanged:this.handleImageChanged})),o.a.createElement(s.FormattedMessage,{id:"title_tag_manager"},function(t){return o.a.createElement(Wt,{tags:e.state.tags,activated:!0,onTagsChanged:e.handleTagsChanged,title:t})}),o.a.createElement("div",{className:"dialog-buttons"},o.a.createElement("button",{className:t},o.a.createElement(s.FormattedMessage,{id:"button_create",defaultMessage:"Create"}))))}}])&&po(n.prototype,a),r&&po(n,r),t}();function bo(e){return(bo="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function vo(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 yo(e){return(yo=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _o(e,t){return(_o=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function wo(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var So=function(e){function t(e){var n,a,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),a=this,(n=!(o=yo(t).call(this,e))||"object"!==bo(o)&&"function"!=typeof o?wo(a):o).state={edited:!1,search:""},n.handleSearchChange=n.handleSearchChange.bind(wo(wo(n))),n.handleSearch=n.handleSearch.bind(wo(wo(n))),n.handleClear=n.handleClear.bind(wo(wo(n))),n.handleKeyDown=n.handleKeyDown.bind(wo(wo(n))),n}var n,a,r;return 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&&_o(e,t)}(t,o.a.PureComponent),n=t,(a=[{key:"componentWillUnmount",value:function(){this.state.edited&&(this.setState({search:"",edited:!1}),this.props.onSearchContacts(h.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:t.length>0}),this.props.onSearchContacts(t.length>0?t:h.a.DEL_CHAR)}},{key:"handleClear",value:function(){this.state.edited&&this.props.onSearchContacts(h.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 e=this;return o.a.createElement("div",{className:"panel-form"},o.a.createElement("div",{className:"panel-form-row"},o.a.createElement("i",{className:"material-icons search"},"search"),o.a.createElement(s.FormattedMessage,{id:"search_placeholder",defaultMessage:"List like email:alice@example.com, tel:17025550003..."},function(t){return o.a.createElement("input",{className:"search",type:"text",placeholder:t,value:e.state.search,onChange:e.handleSearchChange,onKeyDown:e.handleKeyDown,required:!0,autoFocus:!0})}),o.a.createElement("a",{href:"javascript:;",onClick:this.handleClear},o.a.createElement("i",{className:"material-icons"},"close"))))}}])&&vo(n.prototype,a),r&&vo(n,r),t}();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)}}var ko=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,n,a;return t=e,a=[{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 a.length>0&&(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)}}],(n=null)&&Eo(t.prototype,n),a&&Eo(t,a),e}();function Co(e){return(Co="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Mo(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 Oo(e,t){return(Oo=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Po(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var jo=function(e){function t(e){var n,a,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),a=this,(n=!(o=To(t).call(this,e))||"object"!==Co(o)&&"function"!=typeof o?Po(a):o).state={tabSelected:"p2p",contactList:e.searchResults},n.handleTabClick=n.handleTabClick.bind(Po(Po(n))),n.handleContactSelected=n.handleContactSelected.bind(Po(Po(n))),n.handleNewGroupSubmit=n.handleNewGroupSubmit.bind(Po(Po(n))),n.handleGroupByID=n.handleGroupByID.bind(Po(Po(n))),n}var n,a,r;return 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&&Oo(e,t)}(t,o.a.Component),n=t,r=[{key:"getDerivedStateFromProps",value:function(e,t){return{contactList:e.searchResults}}}],(a=[{key:"componentDidMount",value:function(){this.props.onInitFind()}},{key:"handleTabClick",value:function(e){e.preventDefault(),ko.navigateTo(ko.addUrlParam(window.location.hash,"tab",e.currentTarget.dataset.id)),this.setState({tabSelected:e.currentTarget.dataset.id})}},{key:"handleContactSelected",value:function(e){"p2p"===this.state.tabSelected&&(ko.navigateTo(ko.removeUrlParam(window.location.hash,"tab")),this.props.onCreateTopic(e,void 0))}},{key:"handleNewGroupSubmit",value:function(e,t,n,a){ko.navigateTo(ko.removeUrlParam(window.location.hash,"tab")),this.props.onCreateTopic(void 0,Rt(e,t),n,a)}},{key:"handleGroupByID",value:function(e){ko.navigateTo(ko.removeUrlParam(window.location.hash,"tab")),this.props.onCreateTopic(e)}},{key:"render",value:function(){var e=this;return o.a.createElement("div",{className:"flex-column"},o.a.createElement("ul",{className:"tabbar"},o.a.createElement("li",{className:"p2p"===this.state.tabSelected?"active":null},o.a.createElement("a",{href:"javascript:;","data-id":"p2p",onClick:this.handleTabClick},o.a.createElement(s.FormattedMessage,{id:"tabtitle_find_user",defaultMessage:"find"}))),o.a.createElement("li",{className:"grp"===this.state.tabSelected?"active":null},o.a.createElement("a",{href:"javascript:;","data-id":"grp",onClick:this.handleTabClick},o.a.createElement(s.FormattedMessage,{id:"tabtitle_new_group",defaultMessage:"new group"}))),o.a.createElement("li",{className:"byid"===this.state.tabSelected?"active":null},o.a.createElement("a",{href:"javascript:;","data-id":"byid",onClick:this.handleTabClick},o.a.createElement(s.FormattedMessage,{id:"tabtitle_group_by_id",defaultMessage:"by id"})))),"grp"===this.state.tabSelected?o.a.createElement(go,{onSubmit:this.handleNewGroupSubmit}):"byid"===this.state.tabSelected?o.a.createElement(co,{onSubmit:this.handleGroupByID,onError:this.props.onError}):o.a.createElement("div",{className:"flex-column"},o.a.createElement(So,{type:"p2p",onSearchContacts:this.props.onSearchContacts}),o.a.createElement(s.FormattedMessage,{id:"search_for_contacts",defaultMessage:"Use search to find contacts"},function(t){return o.a.createElement(je,{contacts:e.state.contactList,myUserId:e.props.myUserId,emptyListMessage:t,topicSelected:e.state.selectedContact,showOnline:!1,showUnread:!1,showContextMenu:!1,onTopicSelected:e.handleContactSelected})})))}}])&&Mo(n.prototype,a),r&&Mo(n,r),t}();function No(e){return(No="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function xo(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 Uo(e){return(Uo=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Ao(e,t){return(Ao=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Do(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var Ro=function(e){function t(e){var n,a,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),a=this,(n=!(o=Uo(t).call(this,e))||"object"!==No(o)&&"function"!=typeof o?Do(a):o).state={email:"",password:""},n.handleSubmit=n.handleSubmit.bind(Do(Do(n))),n.handleEmailChange=n.handleEmailChange.bind(Do(Do(n))),n.handlePasswordChange=n.handlePasswordChange.bind(Do(Do(n))),n}var n,a,r;return 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)}(t,o.a.PureComponent),n=t,(a=[{key:"componentDidMount",value:function(){var e=ko.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 e=this,t=this.state.token&&this.state.scheme;return o.a.createElement("form",{id:"password-reset-form",onSubmit:this.handleSubmit},t?o.a.createElement(s.FormattedMessage,{id:"new_password_placeholder",defaultMessage:"Enter new password"},function(t){return o.a.createElement(ft,{placeholder:t,autoComplete:"new-password",value:e.state.password,required:!0,autoFocus:!0,onChange:e.handlePasswordChange})}):o.a.createElement(o.a.Fragment,null,o.a.createElement("label",{htmlFor:"inputEmail"},o.a.createElement(s.FormattedMessage,{id:"label_reset_password",defaultMessage:"Send a password reset email:"})),o.a.createElement(s.FormattedMessage,{id:"credential_email_prompt",defaultMessage:"Your registration email"},function(t){return o.a.createElement("input",{type:"email",id:"inputEmail",placeholder:t,autoComplete:"email",value:e.state.email,onChange:e.handleEmailChange,required:!0,autoFocus:!0})})),o.a.createElement("div",{className:"dialog-buttons"},o.a.createElement("button",{className:"blue",type:"submit"},t?o.a.createElement(s.FormattedMessage,{id:"button_reset",defaultMessage:"Reset"}):o.a.createElement(s.FormattedMessage,{id:"button_send_request",defaultMessage:"Send request"}))))}}])&&xo(n.prototype,a),r&&xo(n,r),t}();function Fo(e){return(Fo="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Io(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function Lo(e){return(Lo=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function qo(e,t){return(qo=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Ho(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var Wo=function(e){function t(e){var n,a,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),a=this,(n=!(o=Lo(t).call(this,e))||"object"!==Fo(o)&&"function"!=typeof o?Ho(a):o).state={hostName:e.serverAddress,changed:!1},n.handleHostNameChange=n.handleHostNameChange.bind(Ho(Ho(n))),n.handleEditingFinished=n.handleEditingFinished.bind(Ho(Ho(n))),n}var n,a,r;return 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)}(t,o.a.PureComponent),n=t,(a=[{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 m){var n=m[t];e.push(o.a.createElement("option",{key:n,value:n}))}return o.a.createElement("div",{className:"panel-form-row"},o.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}),o.a.createElement("datalist",{id:"known-hosts"},e))}}])&&Io(n.prototype,a),r&&Io(n,r),t}();function Go(e){return(Go="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Vo(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 Bo(e){return(Bo=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Ko(e,t){return(Ko=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function zo(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var Jo=function(e){function t(e){var n,a,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),a=this,(n=!(o=Bo(t).call(this,e))||"object"!==Go(o)&&"function"!=typeof o?zo(a):o).state={transport:e.transport||"def",serverAddress:e.serverAddress},n.handleSubmit=n.handleSubmit.bind(zo(zo(n))),n.handleTransportSelected=n.handleTransportSelected.bind(zo(zo(n))),n.handleServerAddressChange=n.handleServerAddressChange.bind(zo(zo(n))),n}var n,a,r;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Ko(e,t)}(t,o.a.PureComponent),n=t,(a=[{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 e={def:"default",ws:"websocket",lp:"long polling"},t=[],n=this;return["def","ws","lp"].map(function(a){var r="transport-"+a,i=e[a];t.push(o.a.createElement("li",{key:a},o.a.createElement("input",{type:"radio",id:r,name:"transport-select",value:a,checked:n.state.transport===a,onChange:n.handleTransportSelected}),o.a.createElement("label",{htmlFor:r},i)))}),o.a.createElement("form",{id:"settings-form",className:"panel-form",onSubmit:this.handleSubmit},o.a.createElement("div",{className:"panel-form-row"},o.a.createElement("label",{className:"small"},o.a.createElement(s.FormattedMessage,{id:"label_server_to_use",defaultMessage:"Server to use:"}))),o.a.createElement(Wo,{serverAddress:this.state.serverAddress,onServerAddressChange:this.handleServerAddressChange}),o.a.createElement("div",{className:"panel-form-row"},o.a.createElement("label",{className:"small"},o.a.createElement(s.FormattedMessage,{id:"label_wire_transport",defaultMessage:"Wire transport:"}))),o.a.createElement("div",{className:"panel-form-row"},o.a.createElement("ul",{className:"quoted"},t)),o.a.createElement("div",{className:"dialog-buttons"},o.a.createElement("button",{type:"submit",className:"blue"},o.a.createElement(s.FormattedMessage,{id:"button_update",defaultMessage:"Update"}))))}}])&&Vo(n.prototype,a),r&&Vo(n,r),t}();function Yo(e){return(Yo="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Qo(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 Xo(e){return(Xo=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function $o(e,t){return($o=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Zo(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var er=Object(s.defineMessages)({phone:{id:"phone_dative",defaultMessage:"phone"},email:{id:"email_dative",defaultMessage:"email"}}),tr=function(e){function t(e){var n,a,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),a=this,(n=!(o=Xo(t).call(this,e))||"object"!==Yo(o)&&"function"!=typeof o?Zo(a):o).state={code:e.credCode||""},n.handleChange=n.handleChange.bind(Zo(Zo(n))),n.handleKeyPress=n.handleKeyPress.bind(Zo(Zo(n))),n.handleSubmit=n.handleSubmit.bind(Zo(Zo(n))),n}var n,a,r;return 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&&$o(e,t)}(t,o.a.PureComponent),n=t,(a=[{key:"handleChange",value:function(e){this.setState({code:e.target.value})}},{key:"handleKeyPress",value:function(e){"Enter"===e.key&&this.handleSubmit(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:"render",value:function(){var e=this,t=this.props.intl.formatMessage,n={email:t(er.email),tel:t(er.phone)}[this.props.credMethod]||this.props.credMethod;return o.a.createElement("div",{className:"panel-form"},o.a.createElement("div",{className:"panel-form-row"},o.a.createElement("label",{className:"small",htmlFor:"enter-confirmation-code"},o.a.createElement(s.FormattedMessage,{id:"enter_confirmation_code_prompt",defaultMessage:"Enter confirmation code sent to you by {method}:",values:{method:n}}))),o.a.createElement("div",{className:"panel-form-row"},o.a.createElement(s.FormattedMessage,{id:"numeric_confirmation_code_prompt",defaultMessage:"Numbers only"},function(t){return o.a.createElement("input",{type:"text",id:"enter-confirmation-code",placeholder:t,value:e.state.code,onChange:e.handleChange,onKeyPress:e.handleKeyPress,required:!0})})),o.a.createElement("div",{className:"dialog-buttons"},o.a.createElement("button",{className:"blue",onClick:this.handleSubmit},o.a.createElement(s.FormattedMessage,{id:"button_confirm",defaultMessage:"Confirm"}))))}}])&&Qo(n.prototype,a),r&&Qo(n,r),t}(),nr=Object(s.injectIntl)(tr);function ar(e){return(ar="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function or(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function rr(e){return(rr=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ir(e,t){return(ir=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function sr(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var lr=Object(s.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"}}),cr=function(e){function t(e){var n,a,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),a=this,(n=!(o=rr(t).call(this,e))||"object"!==ar(o)&&"function"!=typeof o?sr(a):o).handleLoginRequested=n.handleLoginRequested.bind(sr(sr(n))),n}var n,a,r;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&ir(e,t)}(t,o.a.Component),n=t,(a=[{key:"handleLoginRequested",value:function(e,t){this.props.onLoginRequest(e,t)}},{key:"render",value:function(){var e,t,n,a=this.props.intl.formatMessage,r=this.props.state||(this.props.myUserId?"contacts":"login");return"contacts"==r?(e=this.props.title,t=!this.props.avatar||this.props.avatar):(e=a(lr[r]),t=!1),-1==["login","contacts"].indexOf(r)&&(n=this.props.onCancel),o.a.createElement("div",{id:"sidepanel",className:this.props.hideSelf?"nodisplay":null},o.a.createElement(Pa,{state:r,title:e,avatar:t,myUserId:this.props.myUserId,onSignUp:this.props.onSignUp,onSettings:this.props.onSettings,onNewTopic:this.props.onNewTopic,onCancel:n}),o.a.createElement(We,{level:this.props.errorLevel,text:this.props.errorText,onClearError:this.props.onError}),"login"===r?o.a.createElement(to,{login:this.props.login,disabled:this.props.loginDisabled,onLogin:this.handleLoginRequested}):"register"===r?o.a.createElement(Ga,{onCreateAccount:this.props.onCreateAccount,onCancel:this.props.onCancel,onError:this.props.onError}):"settings"===r?o.a.createElement(Jo,{transport:this.props.transport,serverAddress:this.props.serverAddress,onCancel:this.props.onCancel,onUpdate:this.props.onGlobalSettings}):"edit"===r?o.a.createElement(Ya,{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,onLogout:this.props.onLogout,onCancel:this.props.onCancel,onError:this.props.onError}):"contacts"===r?o.a.createElement(Da,{tinode:this.props.tinode,myUserId:this.props.myUserId,connected:this.props.connected,topicSelected:this.props.topicSelected,chatList:this.props.chatList,showContextMenu:this.props.showContextMenu,onTopicSelected:this.props.onTopicSelected}):"newtpk"===r?o.a.createElement(jo,{searchResults:this.props.searchResults,onInitFind:this.props.onInitFind,onSearchContacts:this.props.onSearchContacts,onCreateTopic:this.props.onCreateTopic,onError:this.props.onError}):"cred"===r?o.a.createElement(nr,{credCode:this.props.credCode,credMethod:this.props.credMethod,onSubmit:this.props.onValidateCredentials,onCancel:this.props.onCancel,onError:this.props.onError}):"reset"===r?o.a.createElement(Ro,{onRequest:this.props.onPasswordResetRequest,onReset:this.props.onResetPassword}):null)}}])&&or(n.prototype,a),r&&or(n,r),t}(),ur=Object(s.injectIntl)(cr);function dr(e){return(dr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function pr(){return"object"==dr(window.location)&&"https:"==window.location.protocol}function hr(e){return(hr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function fr(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function mr(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function gr(e){return(gr=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function br(e,t){return(br=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function vr(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var yr=new Audio("audio/msg.mp3"),_r=Object(s.defineMessages)({update_available:{id:"update_available",defaultMessage:'Update available. <a href="">Reload</a>.'}}),wr=function(e){function t(e){var n,a,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),a=this,(n=!(o=gr(t).call(this,e))||"object"!==hr(o)&&"function"!=typeof o?vr(a):o).state=n.getBlankState(),n.handleResize=n.handleResize.bind(vr(vr(n))),n.handleHashRoute=n.handleHashRoute.bind(vr(vr(n))),n.handleOnline=n.handleOnline.bind(vr(vr(n))),n.checkForAppUpdate=n.checkForAppUpdate.bind(vr(vr(n))),n.handleAppVisibility=n.handleAppVisibility.bind(vr(vr(n))),n.handleReadTimer=n.handleReadTimer.bind(vr(vr(n))),n.handleVisibilityEvent=n.handleVisibilityEvent.bind(vr(vr(n))),n.handleError=n.handleError.bind(vr(vr(n))),n.handleLoginRequest=n.handleLoginRequest.bind(vr(vr(n))),n.handleConnected=n.handleConnected.bind(vr(vr(n))),n.doLogin=n.doLogin.bind(vr(vr(n))),n.handleCredentialsRequest=n.handleCredentialsRequest.bind(vr(vr(n))),n.handleLoginSuccessful=n.handleLoginSuccessful.bind(vr(vr(n))),n.handleDisconnect=n.handleDisconnect.bind(vr(vr(n))),n.tnMeMetaDesc=n.tnMeMetaDesc.bind(vr(vr(n))),n.tnMeContactUpdate=n.tnMeContactUpdate.bind(vr(vr(n))),n.tnMeSubsUpdated=n.tnMeSubsUpdated.bind(vr(vr(n))),n.resetContactList=n.resetContactList.bind(vr(vr(n))),n.tnData=n.tnData.bind(vr(vr(n))),n.tnInitFind=n.tnInitFind.bind(vr(vr(n))),n.tnFndSubsUpdated=n.tnFndSubsUpdated.bind(vr(vr(n))),n.handleSearchContacts=n.handleSearchContacts.bind(vr(vr(n))),n.handleTopicSelected=n.handleTopicSelected.bind(vr(vr(n))),n.handleHideMessagesView=n.handleHideMessagesView.bind(vr(vr(n))),n.handleSendMessage=n.handleSendMessage.bind(vr(vr(n))),n.handleNewAccount=n.handleNewAccount.bind(vr(vr(n))),n.handleNewAccountRequest=n.handleNewAccountRequest.bind(vr(vr(n))),n.handleUpdateAccountRequest=n.handleUpdateAccountRequest.bind(vr(vr(n))),n.handleUpdateAccountTagsRequest=n.handleUpdateAccountTagsRequest.bind(vr(vr(n))),n.handleSettings=n.handleSettings.bind(vr(vr(n))),n.handleGlobalSettings=n.handleGlobalSettings.bind(vr(vr(n))),n.handleToggleMessageSounds=n.handleToggleMessageSounds.bind(vr(vr(n))),n.initDesktopAlerts=n.initDesktopAlerts.bind(vr(vr(n))),n.togglePushToken=n.togglePushToken.bind(vr(vr(n))),n.requestPushToken=n.requestPushToken.bind(vr(vr(n))),n.handleSidepanelCancel=n.handleSidepanelCancel.bind(vr(vr(n))),n.handleNewTopic=n.handleNewTopic.bind(vr(vr(n))),n.handleNewTopicRequest=n.handleNewTopicRequest.bind(vr(vr(n))),n.handleNewTopicCreated=n.handleNewTopicCreated.bind(vr(vr(n))),n.handleTopicUpdateRequest=n.handleTopicUpdateRequest.bind(vr(vr(n))),n.handleChangePermissions=n.handleChangePermissions.bind(vr(vr(n))),n.handleTagsUpdated=n.handleTagsUpdated.bind(vr(vr(n))),n.handleLogout=n.handleLogout.bind(vr(vr(n))),n.handleLeaveUnsubRequest=n.handleLeaveUnsubRequest.bind(vr(vr(n))),n.handleDialogCancel=n.handleDialogCancel.bind(vr(vr(n))),n.handleShowContextMenu=n.handleShowContextMenu.bind(vr(vr(n))),n.defaultTopicContextMenu=n.defaultTopicContextMenu.bind(vr(vr(n))),n.handleHideContextMenu=n.handleHideContextMenu.bind(vr(vr(n))),n.handleShowInfoView=n.handleShowInfoView.bind(vr(vr(n))),n.handleHideInfoView=n.handleHideInfoView.bind(vr(vr(n))),n.handleMemberUpdateRequest=n.handleMemberUpdateRequest.bind(vr(vr(n))),n.handleValidateCredentialsRequest=n.handleValidateCredentialsRequest.bind(vr(vr(n))),n.handlePasswordResetRequest=n.handlePasswordResetRequest.bind(vr(vr(n))),n.handleResetPassword=n.handleResetPassword.bind(vr(vr(n))),n}var n,a,r;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&br(e,t)}(t,o.a.Component),n=t,r=[{key:"tnSetup",value:function(e,t){var n=new h.a(f,e,"AQEAAAABAAD_rAp4DJh05a1HAwFT3A6K",t,pr());return n.enableLogging(!0,!0),n}},{key:"prepareSearchableContacts",value:function(e,t){var n={},a=!0,o=!1,r=void 0;try{for(var i,s=e[Symbol.iterator]();!(a=(i=s.next()).done);a=!0){var l=i.value;"p2p"==h.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,r=e}finally{try{a||null==s.return||s.return()}finally{if(o)throw r}}var c=!0,u=!1,d=void 0;try{for(var p,f=t[Symbol.iterator]();!(c=(p=f.next()).done);c=!0){var m=p.value;n[m.user]||(n[m.user]=m)}}catch(e){u=!0,d=e}finally{try{c||null==f.return||f.return()}finally{if(u)throw d}}return Object.values(n)}}],(a=[{key:"getBlankState",value:function(){var e,t,n=Fa.getObject("settings")||{};return fr(e={connected:!1,transport:n.transport||null,serverAddress:n.serverAddress||(t=g,"object"==dr(window.location)&&("file:"==window.location.protocol||"localhost"==window.location.hostname?t=m.local:window.location.hostname&&(t=window.location.hostname+(window.location.port?":"+window.location.port:""))),t),serverVersion:"no connection",messageSounds:!n.messageSoundsOff,desktopAlerts:n.desktopAlerts,desktopAlertsEnabled:(pr()||"object"==dr(window.location)&&"localhost"==window.location.hostname)&&void 0!==d&&"undefined"!=typeof navigator&&"undefined"!=typeof FIREBASE_INIT,firebaseToken:Fa.getObject("firebase-token"),errorText:"",errorLevel:null,sidePanelSelected:"login",sidePanelTitle:null,sidePanelAvatar:null,dialogSelected:null,contextMenuVisible:!1,login:"",password:"",myUserId:null,liveConnection:navigator.onLine,topicSelected:"",topicSelectedOnline:!1,topicSelectedAcs:null,newGroupTopicParams:null,loginDisabled:!1,displayMobile:window.innerWidth<=640,showInfoPanel:!1,mobilePanel:"sidepanel"},"contextMenuVisible",!1),fr(e,"contextMenuBounds",null),fr(e,"contextMenuClickAt",null),fr(e,"contextMenuParams",null),fr(e,"contextMenuItems",[]),fr(e,"chatList",[]),fr(e,"searchResults",[]),fr(e,"searchableContacts",[]),fr(e,"credMethod",void 0),fr(e,"credCode",void 0),e}},{key:"componentDidMount",value:function(){var e=this;if(window.addEventListener("resize",this.handleResize),window.addEventListener("online",function(t){e.handleOnline(!0)}),window.addEventListener("offline",function(t){e.handleOnline(!1)}),window.addEventListener("hashchange",this.handleHashRoute),document.addEventListener("visibilitychange",this.handleVisibilityEvent),this.setState({viewportWidth:document.documentElement.clientWidth,viewportHeight:document.documentElement.clientHeight}),this.tinode=t.tnSetup(this.state.serverAddress,this.state.transport),this.tinode.onConnect=this.handleConnected,this.tinode.onDisconnect=this.handleDisconnect,this.state.desktopAlertsEnabled)try{this.fbPush=d.initializeApp(FIREBASE_INIT,f).messaging(),this.fbPush.usePublicVapidKey(FIREBASE_INIT.messagingVapidKey),navigator.serviceWorker.register("/service-worker.js").then(function(t){e.checkForAppUpdate(t),e.fbPush.useServiceWorker(t),e.initDesktopAlerts(),e.state.desktopAlerts&&(e.state.firebaseToken?e.tinode.setDeviceToken(e.state.firebaseToken):e.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 n=Fa.getObject("keep-logged-in")?Fa.getObject("auth-token"):void 0,a=ko.parseUrlHash(window.location.hash);n?(n.expires=new Date(n.expires),this.tinode.setAuthToken(n),this.tinode.connect().catch(function(t){e.handleError(t.message,"err")}),delete a.params.info,delete a.params.tab,a.path[0]="",ko.navigateTo(ko.composeUrlHash(a.path,a.params))):a.params.token||ko.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(e){var t=this,n=this.props.intl.formatHTMLMessage;e.onupdatefound=function(){var a=e.installing;a.onstatechange=function(){"installed"==a.state&&navigator.serviceWorker.controller&&t.handleError(n(_r.update_available),"info")}}}},{key:"handleHashRoute",value:function(){var e=ko.parseUrlHash(window.location.hash);e.path&&e.path.length>0?(["register","settings","edit","cred","reset","newtpk","contacts",""].includes(e.path[0])?this.setState({sidePanelSelected:e.path[0]}):console.log("Unknown sidepanel view",e.path[0]),e.path.length>1&&e.path[1]!=this.state.topicSelected&&this.setState({topicSelected:h.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){this.setState({errorText:e,errorLevel:t})}},{key:"handleLoginRequest",value:function(e,t){var n=this;this.setState({loginDisabled:!0,login:e,password:t}),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:"doLogin",value:function(e,t,n){var a=this;if(this.tinode.isAuthenticated())ko.navigateTo("");else{n=h.a.credential(n);var o=null,r=this.tinode.getAuthToken();e&&t?(this.setState({password:null}),o=this.tinode.loginBasic(e,t,n)):r&&(o=this.tinode.loginToken(r.token,n)),o?o.then(function(e){e.code>=300&&"validate credentials"===e.text?(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}),a.handleError(e.message,"err"),localStorage.removeItem("auth-token"),ko.navigateTo("")}):(ko.navigateTo(""),this.setState({loginDisabled:!1}))}}},{key:"handleCredentialsRequest",value:function(e){var t=ko.parseUrlHash(window.location.hash);t.path[0]="cred",t.params.method=e.cred[0],ko.navigateTo(ko.composeUrlHash(t.path,t.params))}},{key:"handleLoginSuccessful",value:function(){var e=this;this.handleError("",null),Fa.getObject("keep-logged-in")&&Fa.setObject("auth-token",this.tinode.getAuthToken());var t=this.tinode.getMeTopic();t.onMetaDesc=this.tnMeMetaDesc,t.onContactUpdate=this.tnMeContactUpdate,t.onSubsUpdated=this.tnMeSubsUpdated,this.setState({connected:!0,credMethod:void 0,credCode:void 0,myUserId:this.tinode.getCurrentUserID()}),t.subscribe(t.startMetaQuery().withLaterSub().withDesc().build()).catch(function(t){localStorage.removeItem("auth-token"),e.handleError(t.message,"err"),ko.navigateTo("")}),ko.navigateTo(ko.setUrlSidePanel(window.location.hash,"contacts"))}},{key:"handleDisconnect",value:function(e){this.setState({connected:!1,topicSelectedOnline:!1,dialogSelected:null,errorText:e&&e.message?e.message:"Disconnected",errorLevel:e&&e.message?"err":"warn",loginDisabled:!1,contextMenuVisible:!1,serverVersion:"no connection"})}},{key:"tnMeMetaDesc",value:function(e){e&&e.public&&this.setState({sidePanelTitle:e.public.fn,sidePanelAvatar:L(e.public.photo)})}},{key:"tnMeContactUpdate",value:function(e,t){"on"==e||"off"==e?(this.resetContactList(),this.state.topicSelected==t.topic&&this.setState({topicSelectedOnline:"on"==e})):"read"==e?this.resetContactList():"msg"==e?this.state.topicSelected!=t.topic?(this.state.messageSounds&&yr.play(),this.resetContactList()):document.hidden&&this.state.messageSounds&&yr.play():"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||console.log("Unsupported (yet) presence update:"+e+" in: "+t.topic))}},{key:"tnMeSubsUpdated",value:function(e){this.resetContactList()}},{key:"resetContactList",value:function(){var e=this,n={chatList:[]};this.tinode.getMeTopic().contacts(function(t){n.chatList.push(t),e.state.topicSelected==t.topic&&(n.topicSelectedOnline=t.online,n.topicSelectedAcs=t.acs)}),n.searchableContacts=t.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)>=h.a.MESSAGE_STATUS_SENT&&(clearTimeout(this.receivedTimer),this.receivedTimer=setTimeout(function(){t.receivedTimer=void 0,n.noteRecv(e.seq)},500))}},{key:"tnInitFind",value:function(){var e=this,t=this.tinode.getFndTopic();t.isSubscribed()?this.tnFndSubsUpdated():(t.onSubsUpdated=this.tnFndSubsUpdated,t.subscribe(t.startMetaQuery().withSub().withTags().build()).catch(function(t){e.handleError(t.message,"err")}))}},{key:"tnFndSubsUpdated",value:function(){var e=[];this.tinode.getFndTopic().contacts(function(t){e.push(t)}),this.setState({searchResults:e,searchableContacts:t.prepareSearchableContacts(this.state.chatList,e)})}},{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){e?(this.setState({errorText:"",errorLevel:null,mobilePanel:"topic-view",showInfoPanel:!1}),this.state.topicSelected!=e&&(this.setState({topicSelectedOnline:n,topicSelectedAcs:a}),ko.navigateTo(ko.setUrlTopic("",e)))):(this.setState({errorText:"",errorLevel:null,mobilePanel:"sidepanel",topicSelectedOnline:!1,topicSelectedAcs:null,showInfoPanel:!1}),this.state.topicSelected&&ko.navigateTo(ko.setUrlTopic("",null)))}},{key:"handleHideMessagesView",value:function(){this.setState({mobilePanel:"sidepanel"}),ko.navigateTo(ko.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=Promise.resolve()),t=t.then(function(){return o.subscribe()})),t&&(t=t.catch(function(e){a.handleError(e.message,"err")})),o.publishDraft(e,t).catch(function(e){a.handleError(e.message,"err")})}},{key:"handleNewAccount",value:function(){ko.navigateTo(ko.setUrlSidePanel(window.location.hash,"register"))}},{key:"handleNewAccountRequest",value:function(e,t,n,a,o){var r=this;this.tinode.connect(this.state.serverAddress).then(function(){return r.tinode.createAccountBasic(e,t,{public:n,tags:o,cred:h.a.credential(a)})}).then(function(e){e.code>=300&&"validate credentials"==e.text?r.handleCredentialsRequest(e.params):r.handleLoginSuccessful(r)}).catch(function(e){r.handleError(e.message,"err")})}},{key:"handleUpdateAccountRequest",value:function(e,t,n){var a=this;(t||n)&&this.tinode.getMeTopic().setMeta({desc:{public:t,defacs:n}}).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.getFndTopic().setMeta({tags:e}).catch(function(e){t.handleError(e.message,"err")})}},{key:"handleSettings",value:function(){ko.navigateTo(ko.setUrlSidePanel(window.location.hash,this.state.myUserId?"edit":"settings"))}},{key:"handleGlobalSettings",value:function(e){var n=e.serverAddress||this.state.serverAddress,a=e.transport||this.state.transport;this.tinode&&(this.tinode.onDisconnect=void 0,this.tinode.disconnect()),this.tinode=t.tnSetup(n,a),this.tinode.onConnect=this.handleConnected,this.tinode.onDisconnect=this.handleDisconnect,this.setState({serverAddress:n,transport:a}),Fa.setObject("settings",{serverAddress:n,transport:a}),ko.navigateTo(ko.setUrlSidePanel(window.location.hash,""))}},{key:"initDesktopAlerts",value:function(){var e=this;this.fbPush.onTokenRefresh(function(){e.requestPushToken(!0)}),this.fbPush.onMessage(function(e){})}},{key:"togglePushToken",value:function(e){var t=this;e?this.state.firebaseToken?(this.setState({desktopAlerts:!0}),Fa.updateObject("settings",{desktopAlerts:!0})):this.fbPush.requestPermission().then(function(){t.requestPushToken(!0)}).catch(function(e){t.handleError(e.message,"err"),t.setState({desktopAlerts:!1,firebaseToken:null}),Fa.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(){Fa.updateObject("settings",{desktopAlerts:!1}),localStorage.removeItem("firebase-token"),t.setState({desktopAlerts:!1,firebaseToken:null})}):(this.setState({desktopAlerts:!1,firebaseToken:null}),Fa.updateObject("settings",{desktopAlerts:!1}))}},{key:"requestPushToken",value:function(e){var t=this;this.fbPush.getToken().then(function(n){n!=t.state.firebaseToken&&(t.tinode.setDeviceToken(n,e),Fa.setObject("firebase-token",n)),t.setState({firebaseToken:n,desktopAlerts:!0}),Fa.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}),Fa.updateObject("settings",{messageSoundsOff:!e})}},{key:"handleSidepanelCancel",value:function(){var e=ko.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),ko.navigateTo(ko.composeUrlHash(e.path,e.params)),this.setState({errorText:"",errorLevel:null})}},{key:"handleNewTopic",value:function(){ko.navigateTo(ko.setUrlSidePanel(window.location.hash,"newtpk"))}},{key:"handleNewTopicRequest",value:function(e,t,n,a){var o=this,r=e||this.tinode.newGroupTopicName();e?this.handleTopicSelected(r):this.setState({newGroupTopicParams:{desc:{public:t,private:{comment:n}},tags:a}},function(){o.handleTopicSelected(r)})}},{key:"handleNewTopicCreated",value:function(e,t){this.state.topicSelected==e&&e!=t&&this.setState({topicSelected:t},function(){ko.navigateTo(ko.setUrlTopic("",t))})}},{key:"handleTopicUpdateRequest",value:function(e,t,n,a){var o=this,r=this.tinode.getTopic(e);if(r){var i={};t&&(i.public=t),n&&(i.private=n===h.a.DEL_CHAR?h.a.DEL_CHAR:{comment:n}),a&&(i.defacs=a),r.setMeta({desc:i}).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 r=o.getAccessMode();n?(r.updateGiven(t),t=r.getGiven()):(r.updateWant(t),t=r.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);if(a){a.setMeta({tags:t}).catch(function(e){n.handleError(e.message,"err")})}}},{key:"handleLogout",value:function(){Dt(0),localStorage.removeItem("auth-token"),this.tinode&&(this.tinode.onDisconnect=void 0,this.tinode.disconnect()),this.setState(this.getBlankState()),this.tinode=t.tnSetup(this.state.serverAddress,this.state.transport),this.tinode.onConnect=this.handleConnected,this.tinode.onDisconnect=this.handleDisconnect,ko.navigateTo("")}},{key:"handleLeaveUnsubRequest",value:function(e){var t=this,n=this.tinode.getTopic(e);n&&n.leave(!0).then(function(e){ko.navigateTo(ko.setUrlTopic(window.location.hash,""))}).catch(function(e){t.handleError(e.message,"err")})}},{key:"handleDialogCancel",value:function(){this.setState({dialogSelected:null})}},{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,r=!1,i=!1;if(t&&t.isSubscribed()){r=!0;var s=t.getAccessMode();a=s&&s.isMuted(),o=s&&!s.isJoiner(),i=s&&s.isDeleter()}return[r?{title:n({id:"menu_item_info"}),handler:this.handleShowInfoView}:null,r?"messages_clear":null,r&&i?"messages_clear_hard":null,r?a?"topic_unmute":"topic_mute":null,r?o?"topic_unblock":"topic_block":null,"topic_delete"]}},{key:"handleHideContextMenu",value:function(){this.setState({contextMenuVisible:!1,contextMenuClickAt:null,contextMenuParams:null,contextMenuBounds:null})}},{key:"handleShowInfoView",value:function(){ko.navigateTo(ko.addUrlParam(window.location.hash,"info",!0)),this.setState({showInfoPanel:!0})}},{key:"handleHideInfoView",value:function(){ko.navigateTo(ko.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&&t.length>0&&t.map(function(e){o.invite(e,null).catch(function(e){a.handleError(e.message,"err")})}),n&&n.length>0&&n.map(function(e){o.delSubscription(e).catch(function(e){a.handleError(e.message,"err")})}))}}},{key:"handleValidateCredentialsRequest",value:function(e,t){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=base64ReEncode(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(){return o.a.createElement("div",{id:"app-container"},this.state.contextMenuVisible?o.a.createElement(O,{tinode:this.tinode,bounds:this.state.contextMenuBounds,clickAt:this.state.contextMenuClickAt,params:this.state.contextMenuParams,items:this.state.contextMenuItems,hide:this.handleHideContextMenu,onAction:this.handleContextMenuAction,onError:this.handleError}):null,o.a.createElement(ur,{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,errorText:this.state.errorText,errorLevel:this.state.errorLevel,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,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,onInitFind:this.tnInitFind,searchResults:this.state.searchResults,onSearchContacts:this.handleSearchContacts,showContextMenu:this.handleShowContextMenu}),o.a.createElement(da,{tinode:this.tinode,connected:this.state.connected,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,newGroupTopicParams:this.state.newGroupTopicParams,onHideMessagesView:this.handleHideMessagesView,onData:this.tnData,onError:this.handleError,onNewTopicCreated:this.handleNewTopicCreated,readTimerHandler:this.handleReadTimer,showContextMenu:this.handleShowContextMenu,sendMessage:this.handleSendMessage}),this.state.showInfoPanel?o.a.createElement(Qt,{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,onTopicDescUpdate:this.handleTopicUpdateRequest,onCancel:this.handleHideInfoView,onChangePermissions:this.handleChangePermissions,onMemberUpdateRequest:this.handleMemberUpdateRequest,onLeaveTopic:this.handleLeaveUnsubRequest,onAddMember:this.handleManageGroupMembers,onTopicTagsUpdate:this.handleTagsUpdated,onInitFind:this.tnInitFind,onError:this.handleError,showContextMenu:this.handleShowContextMenu}):null)}}])&&mr(n.prototype,a),r&&mr(n,r),t}(),Sr=Object(s.injectIntl)(wr);Object(s.addLocaleData)(c.a);var Er=ko.parseUrlHash(window.location.hash).params,kr=Er&&Er.hl||navigator.languages&&navigator.languages[0]||navigator.language||navigator.userLanguage,Cr=kr.toLowerCase().split(/[-_]+/)[0],Mr=u[kr]||u[Cr]||u.en;i.a.render(o.a.createElement(s.IntlProvider,{locale:kr,messages:Mr,textComponent:o.a.Fragment},o.a.createElement(Sr,null)),document.getElementById("mountPoint"))}]);
|
||
//# sourceMappingURL=index.prod.js.map
|