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