diff --git a/umd/index.prod.js b/umd/index.prod.js index bb7c27e3..d477b6c5 100644 --- a/umd/index.prod.js +++ b/umd/index.prod.js @@ -1,2 +1,2 @@ -!function(){"use strict";var e,t,s,a,i={221:function(e,t,s){s.d(t,{A:function(){return l}});var a=s(1594),i=s.n(a),n=s(8181);class r extends i().Component{constructor(e){super(e),this.state={panX:0,panY:0,originX:0,originY:0,zoom:1,minZoom:.001,maxZoom:8},this.overlay=i().createRef(),this.cutout=i().createRef(),this.preview=i().createRef(),this.boundingBox=i().createRef(),this.imageWidth=0,this.imageHeight=0,this.mouseX=0,this.mouseY=0,this.prevDistance=0,this.cutoutRect={},this.bBoxRect={},this.originX=0,this.originY=0,this.initScaling=this.initScaling.bind(this),this.onZoom=this.onZoom.bind(this),this.handleZoom=this.handleZoom.bind(this),this.mouseDown=this.mouseDown.bind(this),this.mouseUp=this.mouseUp.bind(this),this.mouseMove=this.mouseMove.bind(this),this.mouseTouch=this.mouseTouch.bind(this),this.positionAll=this.positionAll.bind(this),this.translate=this.translate.bind(this)}componentDidMount(){this.overlay.current.addEventListener("mousedown",this.mouseDown,{passive:!0}),this.overlay.current.addEventListener("touchstart",this.mouseDown,{passive:!0}),this.bBoxRect=this.boundingBox.current.getBoundingClientRect(),this.originX=this.bBoxRect.width/2,this.originY=this.bBoxRect.height/2,this.cutoutRect=this.cutout.current.getBoundingClientRect()}componentWillUnmount(){this.overlay.current&&(this.overlay.current.removeEventListener("mousedown",this.mouseDown),this.overlay.current.removeEventListener("touchstart",this.mouseDown))}positionAll(e,t,s){this.setState({panX:e,panY:t,zoom:s,originX:this.originX-e,originY:this.originY-t});const a=(this.originX-e)*s-this.originX,i=(this.originY-t)*s-this.originY;this.props.onChange((a+this.cutoutRect.left-this.bBoxRect.left)/s,(i+this.cutoutRect.top-this.bBoxRect.top)/s,this.cutoutRect.width/s,this.cutoutRect.height/s,s)}static checkBound(e,t,s,a){let i=Math.min(0,s[0]-t[0]-a,t[1]-s[1]+a);return(0==i||Math.min(0,s[0]-t[0],t[1]-s[1])i&&(t+=(l-i)/e),cr&&(s+=(h-r)/e),this.positionAll(t,s,e)}mouseDown(e){e.touches?(this.mouseX=e.touches[0].pageX,this.mouseY=e.touches[0].pageY):(this.mouseX=e.pageX,this.mouseY=e.pageY),window.addEventListener("mousemove",this.mouseMove,{passive:!1}),window.addEventListener("touchmove",this.mouseTouch,{passive:!1}),window.addEventListener("mouseup",this.mouseUp,{passive:!0}),window.addEventListener("touchend",this.mouseUp,{passive:!0}),document.body.style.userSelect="none"}translate(e,t){const s=(e-this.mouseX)/this.state.zoom,a=(t-this.mouseY)/this.state.zoom;this.mouseX=e,this.mouseY=t;const i=this.preview.current.getBoundingClientRect(),n=r.checkBound(this.state.panX,[i.left,i.right],[this.cutoutRect.left,this.cutoutRect.right],s),o=r.checkBound(this.state.panY,[i.top,i.bottom],[this.cutoutRect.top,this.cutoutRect.bottom],a);this.positionAll(n,o,this.state.zoom)}mouseMove(e){e.preventDefault(),this.translate(e.pageX,e.pageY)}mouseTouch(e){if(e.preventDefault(),1==e.touches.length)return void this.translate(e.touches[0].pageX,e.touches[0].pageY);const[t,s]=e.touches,a=Math.sqrt((t.pageX-s.pageX)*(t.pageX-s.pageX)+(t.pageY-s.pageY)*(t.pageY-s.pageY));this.prevDistance||(this.prevDistance=a/this.state.zoom);let i=a/this.prevDistance;this.handleZoom(Math.max(this.minZoom,Math.min(this.maxZoom,i)))}mouseUp(e){window.removeEventListener("mousemove",this.mouseMove),window.removeEventListener("touchmove",this.mouseTouch),window.removeEventListener("mouseup",this.mouseUp),window.removeEventListener("touchend",this.mouseUp),document.body.style.userSelect="",this.positionAll(this.state.panX,this.state.panY,this.state.zoom)}render(){const e=`translate3d(${this.state.panX}px, ${this.state.panY}px, 0) scale(${this.state.zoom})`,t=`${this.state.originX}px ${this.state.originY}px`,s={top:this.originY-this.state.originY*this.state.zoom+"px",left:this.originX-this.state.originX*this.state.zoom+"px",width:this.imageWidth*this.state.zoom+"px",height:this.imageHeight*this.state.zoom+"px"};return i().createElement("div",{className:"cropper"},i().createElement("div",{className:"bounding-box",ref:this.boundingBox},i().createElement("img",{src:this.props.source,className:"preview",alt:"",style:{transform:e,transformOrigin:t},ref:this.preview,onLoad:this.initScaling}),i().createElement("div",{className:"cutout circle",ref:this.cutout}),i().createElement("div",{className:"overlay",style:s,ref:this.overlay})),i().createElement("div",{className:"zoom-wrapper"},i().createElement("input",{type:"range",className:"zoomer",step:"0.001",min:this.state.minZoom,max:this.state.maxZoom,value:this.state.zoom,onChange:this.onZoom})))}}var o=s(6110);class l extends i().PureComponent{constructor(e){super(e),this.state={top:0,left:0,width:0,height:0,scale:1},this.handleSubmit=this.handleSubmit.bind(this),this.handleChange=this.handleChange.bind(this)}handleChange(e,t,s,a,i){this.setState({left:e,top:t,width:s,height:a,scale:i})}handleSubmit(){(0,o.CO)(this.props.mime,this.props.avatar,this.state.left,this.state.top,this.state.width,this.state.height,this.state.scale).then(e=>{this.props.onSubmit(e.mime,e.blob,e.width,e.height)}).catch(e=>{this.props.onError(e)})}render(){return i().createElement("div",{className:"panel-form"},i().createElement("div",{className:"panel-form-row"},i().createElement(r,{source:this.props.avatar,onChange:this.handleChange})),i().createElement("div",{className:"dialog-buttons"},this.props.onCancel?i().createElement("button",{className:"secondary",onClick:this.props.onCancel},i().createElement(n.FormattedMessage,{id:"button_cancel",defaultMessage:[{type:0,value:"Cancel"}]})):null,i().createElement("button",{className:"primary",onClick:this.handleSubmit},i().createElement(n.FormattedMessage,{id:"button_ok",defaultMessage:[{type:0,value:"OK"}]}))))}}},257:function(e,t,s){s.d(t,{i:function(){return a}});const a="0.25.0-beta2"},504:function(e,t,s){s.d(t,{A:function(){return r}});var a=s(1594),i=s.n(a);const n={muted:"notifications_off",banned:"block",staff:"verified_user"};class r extends i().PureComponent{render(){let e=null;return this.props.badges&&this.props.badges.length>0?(e=[],this.props.badges.forEach(t=>{const s=t.color?" "+t.color:"";t.icon?e.push(i().createElement("i",{className:"material-icons as-badge"+s,key:t.key||t.icon},n[t.icon]||t.icon)):e.push(i().createElement("span",{className:"badge"+s,key:t.key||t.name},t.name))}),i().createElement(i().Fragment,null,e)):null}}},635:function(e,t,s){var a=s(1594),i=s.n(a),n=s(8181);const r={staff:"verified_user"},o=(0,n.defineMessages)({badge_verified:{id:"badge_verified",defaultMessage:[{type:0,value:"Verified/official"}]},badge_staff:{id:"badge_staff",defaultMessage:[{type:0,value:"Staff-managed"}]},badge_danger:{id:"badge_danger",defaultMessage:[{type:0,value:"Untrustworthy"}]}});class l extends i().PureComponent{render(){const{formatMessage:e}=this.props.intl;let t=null;return this.props.trustedBadges&&this.props.trustedBadges.length>0?(t=[],this.props.trustedBadges.forEach(s=>{const a=this.props.short?null:e(o["badge_"+s]),n="material-icons "+s+"-color";t.push(i().createElement("div",{className:"trusted-badge",key:s},i().createElement("i",{className:n},r[s]||s)," ",a))}),i().createElement(i().Fragment,null,t)):null}}t.A=(0,n.injectIntl)(l)},1013:function(e,t,s){s.d(t,{A:function(){return n}});var a=s(1594),i=s.n(a);class n extends i().PureComponent{render(){const e="load-spinner-box"+(this.props.large?" large":"")+(this.props.clear?" clear":"")+(this.props.centered?" centered":"");return this.props.show?i().createElement("div",{className:e},i().createElement("div",{className:"loader-spinner"})):null}}},1166:function(e,t,s){s.d(t,{A:function(){return n}});var a=s(1594),i=s.n(a);class n extends i().PureComponent{constructor(e){super(e),this.handleChange=this.handleChange.bind(this)}handleChange(){this.props.onChange(this.props.name,!this.props.checked)}render(){let e,t=["material-icons"];Array.isArray(this.props.className)?t.push(...this.props.className):this.props.className&&t.push(this.props.className),this.props.onChange?this.props.checked?(t.push("blue","clickable"),e="check_box"):!1===this.props.checked?(t.push("blue","clickable"),e="check_box_outline_blank"):(t.push("lt-blue"),e="indeterminate_check_box"):e=this.props.checked?"check_box":"check_box_outline_blank";let s={className:t.join(" "),id:this.props.id};return this.props.onChange&&(s.onClick=this.handleChange),i().createElement("i",s,e)}}},1334:function(e,t,s){s.d(t,{A:function(){return r}});var a=s(1594),i=s.n(a),n=s(3913);class r extends i().PureComponent{constructor(e){super(e),this.state={show:!1},this.hide=this.hide.bind(this)}componentDidUpdate(e){e.level!==this.props.level&&this.setState({show:!!this.props.level})}hide(){this.setState({show:!1}),this.props.onClearError&&this.props.onClearError()}render(){const e={err:"error",warn:"warning",info:"info"}[this.props.level]||"",t="info-box "+e;return i().createElement("div",{className:t},i().createElement("div",{className:"icon"},i().createElement("i",{className:"material-icons"},e)),i().createElement("span",null,this.props.text,this.props.action?i().createElement(i().Fragment,null,"  ",i().createElement("a",{href:"#",style:{whiteSpace:"nowrap"},onClick:e=>{e.preventDefault(),this.props.action()}},this.props.actionText)):null),i().createElement("div",{className:"cancel"},i().createElement(n.A,{onCancel:this.hide})))}}},1485:function(e,t,s){s.d(t,{A:function(){return r}});var a=s(1594),i=s.n(a),n=s(6789);class r extends i().Component{constructor(e){super(e),this.selfRef=i().createRef(),this.state={active:e.active,initialValue:e.value||"",value:e.value||"",valid:!0},this.handeTextChange=this.handeTextChange.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleStartEditing=this.handleStartEditing.bind(this),this.handleEditingFinished=this.handleEditingFinished.bind(this),this.handlePasswordFinished=this.handlePasswordFinished.bind(this)}componentDidUpdate(e,t){const s=this.props.value||"";t.initialValue==s||t.active||this.setState({initialValue:s,value:s})}handeTextChange(e){this.setState({value:e.target.value||""}),this.props.validator&&Promise.resolve(this.props.validator(e.target.value)).then(e=>{this.setState({valid:e})}).catch(e=>{e&&this.setState({valid:!1})})}handleKeyDown(e){27===e.keyCode?this.setState({value:this.props.value,active:!1}):13===e.keyCode&&this.handleEditingFinished(e)}handleStartEditing(){this.props.readOnly||this.setState({active:!0},e=>{this.selfRef.current&&this.selfRef.current.focus()})}handleEditingFinished(e){const t=this.state.value.trim();!this.props.required||e.target.checkValidity()&&t?(this.setState({active:!1}),(t||this.props.value)&&t!==this.props.value&&this.state.valid&&this.props.onFinished(t)):this.setState({value:this.props.value,active:!1})}handlePasswordFinished(e){this.setState({active:!1}),e&&e!==this.props.value&&this.props.onFinished(e)}render(){if(!this.state.active){let e="password"==this.props.type?"••••••••":this.state.value,t="in-place-edit"+(this.props.readOnly?" disabled":"");return e||(e=this.props.placeholder,t+=" placeholder"),this.props.multiline&&1!=this.props.multiline||(t+=" short"),i().createElement("span",{className:t,onClick:this.handleStartEditing},this.props.iconLeft&&i().createElement("i",{className:"material-icons light-gray"},this.props.iconLeft),i().createElement("span",null,e),this.props.iconRight&&i().createElement("i",{className:"material-icons light-gray"},this.props.iconRight))}let e;const t={};return"password"==this.props.type?(e=n.A,t.onFinished=this.handlePasswordFinished):(this.props.multiline>1?(e="textarea",t.rows=this.props.multiline,t.className="in-place-edit"):(e="input",t.type=this.props.type||"text",t.className="in-place-edit"+(this.props.iconLeft?" with-icon-left":this.props.iconRight?" with-icon-right":""),this.props.maxLength&&(t.maxLength=this.props.maxLength)),t.value=this.state.value,t.className+=this.state.valid?"":" invalid",t.ref=this.selfRef,t.onChange=this.handeTextChange,t.onKeyDown=this.handleKeyDown,t.onBlur=this.handleEditingFinished),t.placeholder=this.props.placeholder,t.required=this.props.required?"required":"",t.autoComplete=this.props.autoComplete,t.autoFocus=!0,void 0!==this.props.spellCheck&&(t.spellCheck=this.props.spellCheck?"true":"false"),this.props.iconLeft||this.props.iconRight?i().createElement(i().Fragment,null,this.props.iconLeft&&i().createElement("i",{className:"material-icons light-gray"},this.props.iconLeft),i().createElement(e,t,null),this.props.iconRight&&i().createElement("i",{className:"material-icons light-gray"},this.props.iconRight)):i().createElement(e,t,null)}}},1594:function(e){e.exports=React},1781:function(e){e.exports=JSON.parse('{"patt":[{"name":"a00.png","size":200},{"name":"a01.jpg","size":384},{"name":"a02.jpg","size":384},{"name":"a03.jpg","size":384},{"name":"a04.png","size":400},{"name":"a05.jpg","size":400},{"name":"a06.jpg","size":256},{"name":"a07.jpg","size":384},{"name":"a08.jpg","size":384},{"name":"a09.jpg","size":400},{"name":"a10.jpg","size":256},{"name":"a11.png","size":200}],"img":[{"name":"w01.jpg","pr":"p01.jpg"},{"name":"w02.jpg","pr":"p02.jpg"},{"name":"w03.jpg","pr":"p03.jpg"},{"name":"w04.jpg","pr":"p04.jpg"},{"name":"w05.jpg","pr":"p05.jpg"},{"name":"w06.jpg","pr":"p06.jpg"},{"name":"w07.jpg","pr":"p07.jpg"},{"name":"w08.jpg","pr":"p08.jpg"},{"name":"w09.jpg","pr":"p09.jpg"},{"name":"w10.jpg","pr":"p10.jpg"},{"name":"w11.jpg","pr":"p11.jpg"},{"name":"w12.jpg","pr":"p12.jpg"},{"name":"w13.jpg","pr":"p13.jpg"},{"name":"w14.jpg","pr":"p14.jpg"},{"name":"w15.jpg","pr":"p15.jpg"},{"name":"w16.jpg","pr":"p16.jpg"},{"name":"w17.jpg","pr":"p17.jpg"},{"name":"w18.jpg","pr":"p18.jpg"},{"name":"w19.jpg","pr":"p19.jpg"},{"name":"w20.jpg","pr":"p20.jpg"},{"name":"w21.jpg","pr":"p21.jpg"},{"name":"w22.jpg","pr":"p22.jpg"},{"name":"w23.jpg","pr":"p23.jpg"},{"name":"w24.jpg","pr":"p24.jpg"}]}')},3307:function(e,t,s){s.d(t,{A:function(){return h}});var a=s(1594),i=s.n(a),n=s(8181),r=s(5874),o=s(4532),l=s(9027),c=s(3540);class h extends i().Component{constructor(e){super(e),this.state={tags:this.props.tags||[],alias:o.Tinode.tagByPrefix(this.props.tags,o.Tinode.TAG_ALIAS)||"",tagInput:"",activated:this.props.activated},this.handleTagInput=this.handleTagInput.bind(this),this.handleAddTag=this.handleAddTag.bind(this),this.handleRemoveTag=this.handleRemoveTag.bind(this),this.handleSubmit=this.handleSubmit.bind(this),this.handleCancel=this.handleCancel.bind(this)}static getDerivedStateFromProps(e,t){const s=e.tags||[];return(0,c.af)(s,t.tags)||t.activated?null:{tags:s||[],alias:o.Tinode.tagByPrefix(s,o.Tinode.TAG_ALIAS)||""}}handleTagInput(e){if(this.setState({tagInput:e}),e.length>0){const t=e[e.length-1];'"'==e[0]?e.length>1&&'"'==t&&this.handleAddTag(e.substring(1,e.length-1)):","!=t&&" "!=t&&";"!=t&&'"'!=t||this.handleAddTag(e.substring(0,e.length-1).trim())}}handleAddTag(e){const t=this.props.tinode.getServerParam(o.Tinode.MAX_TAG_COUNT,l.GB);if(e.length>0&&this.state.tags.length{a!=this.state.alias&&s.push({user:a,invalid:a.lengtht})}):(this.state.tags.forEach(e=>{e!=this.state.alias&&s.push(i().createElement("span",{className:"badge",key:s.length},e))}),0==s.length&&(s=i().createElement("i",null,i().createElement(n.FormattedMessage,{id:"tags_not_found",defaultMessage:[{type:0,value:"No tags defined. Add some."}]})))),i().createElement("div",{className:"panel-form-column"},i().createElement("div",{className:"panel-form-row"},i().createElement("label",{className:"small"},this.props.title)),this.state.activated?i().createElement("div",null,i().createElement(n.FormattedMessage,{id:"tags_editor_no_tags",defaultMessage:[{type:0,value:"Add some tags"}]},e=>i().createElement(r.A,{tinode:this.props.tinode,chips:s,avatarDisabled:!0,prompt:e,tabIndex:this.props.tabIndex,onEnter:this.handleAddTag,onFocusLost:this.handleAddTag,onCancel:this.handleCancel,onChipRemoved:this.handleRemoveTag,filterFunc:this.handleTagInput})),this.props.onSubmit||this.props.onCancel?i().createElement("div",{id:"tag-manager-buttons",className:"dialog-buttons panel-form-row"},i().createElement("button",{className:"outline",onClick:this.handleCancel},i().createElement(n.FormattedMessage,{id:"button_cancel",defaultMessage:[{type:0,value:"Cancel"}]})),i().createElement("button",{className:"primary",onClick:this.handleSubmit},i().createElement(n.FormattedMessage,{id:"button_ok",defaultMessage:[{type:0,value:"OK"}]}))):null):i().createElement("div",{className:"quoted"},i().createElement("a",{href:"#",className:"flat-button",onClick:e=>{e.preventDefault(),this.setState({activated:!0})}},i().createElement("i",{className:"material-icons"},"edit"),"  ",i().createElement(n.FormattedMessage,{id:"title_manage_tags",defaultMessage:[{type:0,value:"Manage"}]})),i().createElement(i().Fragment,null,s)))}}},3540:function(e,t,s){s.d(t,{FH:function(){return u},Jf:function(){return d},Jt:function(){return l},KY:function(){return f},LO:function(){return m},OM:function(){return n},YO:function(){return h},af:function(){return o},iE:function(){return g},k6:function(){return r},wk:function(){return p},xH:function(){return c}});var a=s(4532),i=s(9027);function n(e){const t=document.getElementById("shortcut-icon"),s=document.head||document.getElementsByTagName("head")[0],a=document.createElement("link");a.type="image/png",a.id="shortcut-icon",a.rel="shortcut icon",a.href="img/logo32x32"+(e>0?"a":"")+".png",t&&s.removeChild(t),s.appendChild(a),document.title=(e>0?"("+e+") ":"")+"Tinode"}function r(e,t,s,i){let n=null;if((e=e&&e.trim())&&(n={fn:e}),"string"==typeof(i=i&&i.trim())&&(n=n||{},n.note=i||a.Tinode.DEL_CHAR),t){n=n||{};let e=s;const i=/^data:(image\/[-a-z0-9+.]+)?(;base64)?,/i.exec(t);i?(e=i[1],n.photo={data:t.substring(t.indexOf(",")+1),ref:a.Tinode.DEL_CHAR}):n.photo={data:a.Tinode.DEL_CHAR,ref:t},n.photo.type=(e||"image/jpeg").substring(6)}return n}function o(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(let s=0,a=e.length;s0&&(s=e.substring(a+1),e=e.substring(0,a));const i=e.indexOf("?");i>0&&(t=e.substring(i+1),e=e.substring(0,i));const n=new URLSearchParams(t);return n.append("asatt","1"),`${e}?${n.toString()}`+(s?`#${s}`:"")}function m(e){switch(e){case a.Tinode.MESSAGE_STATUS_SENDING:return{name:"access_time"};case a.Tinode.MESSAGE_STATUS_FAILED:case a.Tinode.MESSAGE_STATUS_FATAL:return{name:"warning",color:"danger-color"};case a.Tinode.MESSAGE_STATUS_SENT:return{name:"done"};case a.Tinode.MESSAGE_STATUS_RECEIVED:return{name:"done_all"};case a.Tinode.MESSAGE_STATUS_READ:return{name:"done_all",color:"blue"}}return null}function g(e){let t=!1;return{promise:e instanceof Error?Promise.reject(e):new Promise((s,a)=>{e.then(e=>t?a({isCanceled:!0}):s(e),e=>a(t?{isCanceled:!0}:e))}),cancel(){t=!0}}}function f(){const e=s(1781)[i.S.type][i.S.index];return{name:`../${i.S.path}${e.name}`,size:e.size}}},3913:function(e,t,s){s.d(t,{A:function(){return n}});var a=s(1594),i=s.n(a);class n extends i().PureComponent{render(){return i().createElement("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onCancel()}},i().createElement("i",{className:"material-icons"},"close"))}}},4152:function(e,t,s){s.d(t,{A:function(){return m}});var a=s(1594),i=s.n(a),n=s(8181),r=s(4532),o=s(6005);class l extends i().PureComponent{constructor(e){super(e),this.handleClick=this.handleClick.bind(this)}handleClick(e){e.preventDefault(),e.stopPropagation(),this.props.onAction(this.props.action)}render(){const{formatMessage:e}=this.props.intl;return i().createElement("li",{onClick:this.handleClick,className:"action"},i().createElement("div",{className:"action-text"},e(this.props.title,this.props.values)))}}var c=(0,n.injectIntl)(l),h=s(6110),d=s(9027);const p=(0,n.defineMessages)({badge_you:{id:"badge_you",defaultMessage:[{type:0,value:"you"}]},badge_owner:{id:"badge_owner",defaultMessage:[{type:0,value:"owner"}]}});class u extends i().Component{render(){const{formatMessage:e}=this.props.intl,t=Array.isArray(this.props.topicSelected),s=[];let a=0;if(this.props.showSelfTopic){const e=t?this.props.topicSelected.indexOf("slf")>-1:"slf"===this.props.topicSelected;s.push(i().createElement(o.A,{tinode:this.props.tinode,avatar:!0,showMode:this.props.showMode,selected:e,showCheckmark:t,onSelected:this.props.onTopicSelected,showContextMenu:this.props.showContextMenu,index:s.length,item:"slf",key:"slf"})),a++}return this.props.contacts&&this.props.contacts.length>0&&this.props.contacts.forEach(n=>{if(n.action)s.push(i().createElement(c,{title:n.title,action:n.action,values:n.values,key:n.action,onAction:this.props.onAction}));else{const l=this.props.showMode?n.user:n.topic||n.user;if(this.props.filterFunc&&this.props.filter){const e=[l];if(n.private&&n.private.comment&&e.push((""+n.private.comment).toLowerCase()),n.public&&n.public.fn&&e.push((""+n.public.fn).toLowerCase()),!this.props.filterFunc(this.props.filter,e))return}const c=r.Tinode.isChannelTopicName(l),u=!c&&r.Tinode.isGroupTopicName(l),m=t?this.props.topicSelected.indexOf(l)>-1:this.props.topicSelected===l,g=[];this.props.showMode&&(l==this.props.myUserId&&g.push({name:e(p.badge_you),color:"green"}),n.acs&&n.acs.isOwner()&&g.push({name:e(p.badge_owner),color:"blue"}));const f=Array.isArray(n.private)?n.private.join(","):n.private?n.private.comment:null;let v,b,E,y;if(!this.props.showMode&&n.latestMessage){const e=n.latestMessage();e&&(b=e.head?e.head.forwarded:null,y=e._status||n.msgStatus(e,!0),E=e.from!=this.props.myUserId,e.content&&(v="string"==typeof e.content?e.content.substr(0,d.sT):r.Drafty.preview(e.content,d.sT)))}s.push(i().createElement(o.A,{tinode:this.props.tinode,title:n.public?n.public.fn:null,avatar:(0,h.to)(n.public?n.public.photo:null),comment:f,preview:v,previewIsResponse:E,forwarded:b,received:y,unread:this.props.showUnread?n.unread:0,now:n.online&&this.props.connected,acs:n.acs,showMode:this.props.showMode,badges:g,showCheckmark:t,selected:m,pinned:n.pinned,showOnline:this.props.showOnline&&!c,isChannel:c,isGroup:u,showContextMenu:this.props.showContextMenu,isVerified:n.trusted&&n.trusted.verified,isStaff:n.trusted&&n.trusted.staff,isDangerous:n.trusted&&n.trusted.danger,deleted:n._deleted,onSelected:this.props.onTopicSelected,item:l,index:s.length,key:l})),a++}},this),i().createElement("div",{className:this.props.noScroll?null:"scrollable-panel"},0==a?i().createElement("div",{className:"center-medium-text",dangerouslySetInnerHTML:{__html:this.props.emptyListMessage}}):null,s.length>0?i().createElement("ul",{className:"contact-box"},s):null)}}var m=(0,n.injectIntl)(u)},4532:function(e){e.exports=tinode},5053:function(e,t,s){var a=s(1594),i=s.n(a),n=s(8181),r=s(8589),o=s(6110);const l="#666C",c=(0,n.defineMessages)({icon_title_play:{id:"icon_title_play",defaultMessage:[{type:0,value:"Play recording"}]}});class h extends i().PureComponent{constructor(e){super(e);let t=(0,o.F8)(this.props.preview);(!Array.isArray(t)||t.length<16)&&(t=null),this.state={canPlay:!1,playing:!1,currentTime:"0:00",duration:this.props.duration>0?(0,r.Ye)(this.props.duration/1e3):"-:--",longMin:this.props.duration>=6e5,preview:t},this.initAudio=this.initAudio.bind(this),this.initCanvas=this.initCanvas.bind(this),this.resampleBars=this.resampleBars.bind(this),this.visualize=this.visualize.bind(this),this.handlePlay=this.handlePlay.bind(this),this.handleSeek=this.handleSeek.bind(this),this.handleError=this.handleError.bind(this),this.audioPlayer=null,this.viewBuffer=[],this.canvasRef=i().createRef()}componentDidMount(){this.props.src&&this.initAudio(),this.initCanvas()}componentWillUnmount(){this.audioPlayer&&(this.audioPlayer.onloadedmetadata=null,this.audioPlayer.ontimeupdate=null,this.audioPlayer.onended=null,this.audioPlayer.pause(),this.audioPlayer=null)}componentDidUpdate(e){if(this.props.src!=e.src&&this.initAudio(),this.props.preview!=e.preview){let e=(0,o.F8)(this.props.preview);(!Array.isArray(e)||e.length<16)&&(e=null),this.setState({preview:e},this.initCanvas)}}initAudio(){this.audioPlayer=new Audio(this.props.src),this.audioPlayer.onloadedmetadata=e=>this.setState({canPlay:!0}),this.audioPlayer.ontimeupdate=e=>this.setState({currentTime:(0,r.Ye)(this.audioPlayer.currentTime,this.state.longMin)}),this.audioPlayer.onended=e=>{this.audioPlayer.currentTime=0,this.setState({playing:!1,currentTime:(0,r.Ye)(0,this.state.longMin)})}}initCanvas(){this.canvasRef.current.width=2*this.canvasRef.current.offsetWidth,this.canvasRef.current.height=2*this.canvasRef.current.offsetHeight,this.canvasContext=this.canvasRef.current.getContext("2d"),this.canvasContext.lineCap="round",this.viewBuffer=this.resampleBars(this.state.preview),this.visualize()}visualize(){if(!this.canvasRef.current)return;const e=this.effectiveWidth,t=this.canvasRef.current.height;this.canvasContext.lineWidth=6;const s=a=>{if(this.canvasRef.current&&this.audioPlayer&&(this.canvasContext.clearRect(0,0,this.canvasRef.current.width,t),this.viewBuffer)){this.state.playing&&window.requestAnimationFrame(s);const a=this.props.duration?Math.max(0,Math.min(1e3*this.audioPlayer.currentTime/this.props.duration,1))*(e-12):-1;this.canvasContext.beginPath(),this.canvasContext.strokeStyle=l;for(let e=0;e.01);const s=e.length/t;let a=[],i=-1;for(let n=0;n0?a.map(e=>e/i):Array.apply(null,Array(t)).map(e=>.01)}handlePlay(e){e.preventDefault(),this.state.canPlay&&(this.state.playing?(this.audioPlayer.pause(),this.setState({playing:!1})):this.audioPlayer.readyState>=2&&(this.audioPlayer.play(),this.setState({playing:!0},this.visualize)))}handleError(e){console.error(e)}handleSeek(e){if(e.preventDefault(),e.target&&this.props.duration){const t=e.target.getBoundingClientRect(),s=(e.clientX-t.left)/this.effectiveWidth*2;this.audioPlayer.currentTime=this.props.duration*s/1e3,this.setState({currentTime:(0,r.Ye)(this.audioPlayer.currentTime,this.state.longMin)}),this.state.playing||this.visualize()}}render(){const e="material-icons"+(this.props.short?"":" large")+(this.state.canPlay?"":" disabled"),t=i().createElement("a",{href:"#",onClick:this.handlePlay,title:this.props.intl.formatMessage(c.icon_title_play)},i().createElement("i",{className:e},this.state.playing?"pause_circle":this.state.canPlay?"play_circle":"not_interested"));return i().createElement("div",{className:"audio-player"},this.props.short?i().createElement(i().Fragment,null,i().createElement("canvas",{className:"playback",ref:this.canvasRef,onClick:this.handleSeek}),t):i().createElement(i().Fragment,null,t,i().createElement("div",null,i().createElement("canvas",{className:"playback",ref:this.canvasRef,onClick:this.handleSeek}),i().createElement("div",{className:"timer"},this.state.currentTime,"/",this.state.duration))))}}t.A=(0,n.injectIntl)(h)},5206:function(e){e.exports=ReactDOM},5338:function(e,t,s){var a=s(5206);t.H=a.createRoot,a.hydrateRoot},5874:function(e,t,s){s.d(t,{A:function(){return l}});var a=s(1594),i=s.n(a),n=s(6904);class r extends i().PureComponent{constructor(e){super(e),this.handleCancel=this.handleCancel.bind(this)}handleCancel(e){e.preventDefault(),this.props.onCancel(this.props.topic,this.props.index)}render(){const e=this.props.title||this.props.topic,t=this.props.invalid?"chip invalid":"chip";return i().createElement("div",{className:t},this.props.noAvatar?i().createElement("span",{className:"spacer"}):i().createElement("div",{className:"avatar-box"},i().createElement(n.A,{tinode:this.props.tinode,avatar:this.props.avatar||!0,topic:this.props.topic,title:this.props.title})),i().createElement("span",null,e),this.props.onCancel&&!this.props.required?i().createElement("a",{href:"#",onClick:this.handleCancel},"×"):i().createElement("span",{className:"spacer"}))}}var o=s(6110);class l extends i().Component{constructor(e){super(e),this.state=l.deriveStateFromProps(e),this.state.input="",this.state.focused=!1,this.handleTextInput=this.handleTextInput.bind(this),this.removeChipAt=this.removeChipAt.bind(this),this.handleChipCancel=this.handleChipCancel.bind(this),this.handleFocusGained=this.handleFocusGained.bind(this),this.handleFocusLost=this.handleFocusLost.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this)}static deriveStateFromProps(e){return{placeholder:e.chips?"":e.prompt,sortedChips:l.sortChips(e.chips,e.staticMembers),chipIndex:l.indexChips(e.chips)}}componentDidUpdate(e,t){e.chips==this.props.chips&&e.staticMembers==this.props.staticMembers&&e.prompt==this.props.prompt||this.setState(l.deriveStateFromProps(this.props)),(!t||this.props.chips.length>t.sortedChips.length)&&this.setState({input:""})}static indexChips(e){const t={};let s=0;return e.forEach(e=>{t[e.user]=s,s++}),t}static sortChips(e,t){const s=[],a=[];return e.forEach(e=>{t&&t.includes(e.user)?s.push(e):a.push(e)}),s.concat(a)}handleTextInput(e){this.setState({input:e.target.value}),this.props.filterFunc&&this.props.filterFunc(e.target.value)}removeChipAt(e){const t=this.state.sortedChips[e];this.props.onChipRemoved(t.user,this.state.chipIndex[t.user])}handleChipCancel(e,t){this.removeChipAt(t)}handleFocusGained(){this.setState({focused:!0})}handleFocusLost(){this.setState({focused:!1}),this.props.onFocusLost&&this.props.onFocusLost(this.state.input)}handleKeyDown(e){if("Backspace"===e.key){if(0==this.state.input.length&&this.state.sortedChips.length>0){const e=this.state.sortedChips.length-1;this.state.sortedChips[e].user!==this.props.staticMembers&&this.removeChipAt(e)}}else"Enter"===e.key?this.props.onEnter&&this.props.onEnter(this.state.input):"Escape"===e.key&&this.props.onCancel&&this.props.onCancel()}render(){const e=[];let t=0;const s=this.props.staticMembers||[];this.state.sortedChips.forEach(a=>{e.push(i().createElement(r,{tinode:this.props.tinode,onCancel:this.handleChipCancel,avatar:(0,o.to)(a.public?a.public.photo:null),title:a.public?a.public.fn:void 0,noAvatar:this.props.avatarDisabled,topic:a.user,required:s.includes(a.user),invalid:a.invalid,index:t,key:a.user})),t++});const a="chip-input"+(this.state.focused?" focused":""),n=!(this.props.tabIndex>0);return i().createElement("div",{className:a},e,i().createElement("input",{type:"text",placeholder:this.state.placeholder,onChange:this.handleTextInput,onFocus:this.handleFocusGained,onBlur:this.handleFocusLost,onKeyDown:this.handleKeyDown,value:this.state.input,tabIndex:this.props.tabIndex,autoFocus:n}))}}},6005:function(e,t,s){s.d(t,{A:function(){return g}});var a=s(1594),i=s.n(a),n=s(8181),r=s(4532),o=s(504),l=s(6904);class c extends i().PureComponent{render(){return this.props.count>0?i().createElement("span",{className:"unread"},this.props.count>9?"9+":this.props.count):null}}var h=s(8043),d=s(3540),p=s(8589);const u=(0,n.defineMessages)({self_topic_name:{id:"self_topic_name",defaultMessage:[{type:0,value:"Saved messages"}]},self_topic_comment:{id:"self_topic_comment",defaultMessage:[{type:0,value:"Notes, messages, links, files saved for posterity"}]}});class m extends i().Component{constructor(e){super(e),this.handleClick=this.handleClick.bind(this),this.handleContextClick=this.handleContextClick.bind(this)}handleClick(e){e.preventDefault(),e.stopPropagation(),this.props.onSelected&&this.props.onSelected(this.props.item,this.props.index)}handleContextClick(e){e.preventDefault(),e.stopPropagation(),this.props.showContextMenu({topicName:this.props.item,topicTitle:this.props.title,y:e.pageY,x:e.pageX})}render(){let e=this.props.title;const t=r.Tinode.isSelfTopicName(this.props.item);e?e.length>30&&(e=(0,p.W5)(e,30)):e=t?this.props.intl.formatMessage(u.self_topic_name):i().createElement("i",null,i().createElement(n.FormattedMessage,{id:"unnamed_topic",defaultMessage:[{type:0,value:"Unnamed"}]}));const s=this.props.now?"online":"offline",a=!this.props.avatar||this.props.avatar,m=this.props.badges?this.props.badges.slice():[],g=[];let f;this.props.isVerified&&g.push({icon:"verified",color:"verified-color"}),this.props.isStaff&&g.push({icon:"staff",color:"staff-color"}),this.props.isDangerous&&g.push({icon:"dangerous",color:"danger-color"}),this.props.acs&&(this.props.showMode&&m.push({name:this.props.acs.getMode(),key:"mode"}),this.props.acs.isMuted()&&g.push({icon:"muted"}),this.props.acs.isJoiner()||g.push({icon:"banned"})),"string"==typeof this.props.preview?f=this.props.preview:r.Drafty.isValid(this.props.preview)?f=i().createElement(i().Fragment,null,r.Drafty.format(this.props.preview,h.TU,{formatMessage:this.props.intl.formatMessage,previewIsResponse:this.props.previewIsResponse})):this.props.preview&&(f=i().createElement(i().Fragment,null,i().createElement("i",{className:"material-icons gray"},"warning_amber")," ",i().createElement("i",{className:"gray"},i().createElement(n.FormattedMessage,{id:"invalid_content",defaultMessage:[{type:0,value:"invalid content"}]}))));const v=(0,d.LO)(this.props.received),b=v?i().createElement("i",{className:"material-icons small space-right"+(v.color?" "+v.color:"")},v.name):null,E="contact-title"+(this.props.deleted?" deleted":""),y=f||this.props.comment||(t?this.props.intl.formatMessage(u.self_topic_comment):" "),w=this.props.showCheckmark?null:this.props.selected?"selected":this.props.pinned?"tpinned":null;return i().createElement("li",{className:w,onClick:this.handleClick},i().createElement("div",{className:"avatar-box"},i().createElement(l.A,{tinode:this.props.tinode,avatar:a,title:this.props.title,topic:this.props.item,deleted:this.props.deleted}),this.props.deleted?i().createElement("i",{className:"deleted material-icons"},"cancel"):!t&&this.props.showOnline?i().createElement("span",{className:s}):this.props.showCheckmark&&this.props.selected?i().createElement("i",{className:"checkmark material-icons"},"check_circle"):null),i().createElement("div",{className:"text-box"},i().createElement("div",null,i().createElement("span",{className:E},e),this.props.isGroup?i().createElement("i",{className:"material-icons as-badge"},"group"):null,this.props.isChannel?i().createElement("i",{className:"material-icons as-badge"},"podcasts"):null,t?null:i().createElement(o.A,{badges:g}),this.props.deleted?null:i().createElement(c,{count:this.props.unread})),this.props.showMode?i().createElement("span",null,i().createElement(o.A,{badges:m})):this.props.small?null:i().createElement("div",{className:"contact-comment"},b,i().createElement("span",null,y))),this.props.showContextMenu?i().createElement("span",{className:"menuTrigger"},i().createElement("a",{href:"#",onClick:this.handleContextClick},i().createElement("i",{className:"material-icons"},"expand_more"))):null)}}var g=(0,n.injectIntl)(m)},6110:function(e,t,s){s.d(t,{$Z:function(){return u},CO:function(){return c},F8:function(){return f},Pv:function(){return g},Sk:function(){return d},ae:function(){return r},ag:function(){return l},bB:function(){return h},i:function(){return m},iJ:function(){return p},to:function(){return n}});const a=["image/jpeg","image/gif","image/png","image/svg","image/svg+xml"],i=["jpg","gif","png","svg","svg"];function n(e){if(e&&"object"==typeof e){if(e.ref)return e.ref;if(e.data&&e.type){return"data:"+(e.type.startsWith("image/")?e.type:"image/"+e.type)+";base64,"+e.data}}return null}function r(e,t,s,a,i){if(t|=0,s|=0,a|=0,(e|=0)<=0||t<=0||s<=0||a<=0)return null;i&&(s=a=Math.min(s,a));const n=Math.min(Math.min(e,s)/e,Math.min(t,a)/t),r={dstWidth:e*n|0,dstHeight:t*n|0};return i?(r.dstWidth=r.dstHeight=Math.min(r.dstWidth,r.dstHeight),r.srcWidth=r.srcHeight=Math.min(e,t),r.xoffset=(e-r.srcWidth)/2|0,r.yoffset=(t-r.srcWidth)/2|0):(r.xoffset=r.yoffset=0,r.srcWidth=e,r.srcHeight=t),r}function o(e,t){const s=a.indexOf(t);if(s<0||!e)return e;const n=i[s],r=e.lastIndexOf(".");return r>=0&&(e=e.substring(0,r)),e+"."+n}function l(e,t,s,i,n){return new Promise((l,c)=>{const h=new Image;h.crossOrigin="Anonymous",h.onerror=function(e){c(new Error("Image format unrecognized"))},h.onload=async function(){URL.revokeObjectURL(h.src);const d=r(h.width,h.height,t,s,n);if(!d)return void c(new Error("Invalid image"));let p=document.createElement("canvas");p.width=d.dstWidth,p.height=d.dstHeight;let u=p.getContext("2d");u.imageSmoothingEnabled=!0,u.drawImage(h,d.xoffset,d.yoffset,d.srcWidth,d.srcHeight,0,0,d.dstWidth,d.dstHeight);const m=a.includes(e.type)?e.type:"image/jpeg";let g=await new Promise(e=>p.toBlob(e,m));if(g){for(;i>0&&g.length>i;)d.dstWidth=.70710678118*d.dstWidth|0,d.dstHeight=.70710678118*d.dstHeight|0,p.width=d.dstWidth,p.height=d.dstHeight,u=p.getContext("2d"),u.clearRect(0,0,p.width,p.height),u.drawImage(h,d.xoffset,d.yoffset,d.srcWidth,d.srcHeight,0,0,d.dstWidth,d.dstHeight),g=await new Promise(e=>p.toBlob(e,m));p=null,l({mime:m,blob:g,width:d.dstWidth,height:d.dstHeight,name:o(e.name,m)})}else c(new Error("Unsupported image format"))},h.src=URL.createObjectURL(e)})}function c(e,t,s,i,n,r,o){return new Promise((l,c)=>{const h=new Image;h.crossOrigin="Anonymous",h.onerror=e=>{c(new Error("Image format unrecognized"))},h.onload=t=>{URL.revokeObjectURL(h.src);let d=document.createElement("canvas");d.width=n*o,d.height=r*o;let p=d.getContext("2d");p.imageSmoothingEnabled=!0,p.drawImage(h,s,i,n,r,0,0,d.width,d.height),e=a.includes(e)?e:"image/jpeg",d.toBlob(t=>{d=null,t?l({mime:e,blob:t,width:n,height:r}):c(new Error("Unsupported image format"))},e)},h.src=t})}function h(e){return new Promise((t,s)=>{const a=new FileReader;a.onerror=e=>{s(a.error)},a.onload=s=>{t({mime:e.type,bits:a.result.split(",")[1],name:e.name})},a.readAsDataURL(e)})}function d(e){return new Promise((t,s)=>{const a=new FileReader;a.onerror=e=>{s(a.error)},a.onload=s=>{t({mime:e.type,bits:a.result.split(",")[1]})},a.readAsDataURL(e)})}function p(e,t,s,a){const i=(e.clipboardData||e.originalEvent.clipboardData||{}).items;if(!i||!i.length)return!1;for(let e in i){const n=i[e];if("file"===n.kind){const e=n.getAsFile();if(!e){console.error("Failed to get file object from pasted file item",n.kind,n.type),a("Failed to get file object from pasted file item");continue}return e.type&&"image"==e.type.split("/")[0]?t(e):s(e),!0}}return!1}function u(e){if(e){e=e.replace(/-/g,"+").replace(/_/g,"/");try{e=btoa(atob(e))}catch(t){console.error("Failed to base64 re-encode string.",t),e=null}}return e}function m(e,t){if(!e)return null;try{const s=atob(e),a=s.length,i=new ArrayBuffer(a),n=new Uint8Array(i);for(let e=0;et+=String.fromCharCode(e)),window.btoa(t)}catch(e){}return null}function f(e){const t=[];try{return[...window.atob(e)].forEach(e=>{t.push(e.charCodeAt(0))}),t}catch(e){}return null}},6789:function(e,t,s){s.d(t,{A:function(){return n}});var a=s(1594),i=s.n(a);class n extends i().PureComponent{constructor(e){super(e),this.inputRef=i().createRef(),this.state={value:this.props.value||"",visible:!1},this.handleVisibility=this.handleVisibility.bind(this),this.handeTextChange=this.handeTextChange.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleEditingFinished=this.handleEditingFinished.bind(this)}componentDidMount(){this.props.autoFocus&&this.inputRef.current.focus()}handeTextChange(e){this.setState({value:e.target.value}),this.props.onChange&&this.props.onChange(e)}handleVisibility(e){e.preventDefault(),this.setState({visible:!this.state.visible})}handleKeyDown(e){27==e.keyCode?(this.setState({value:this.props.value||"",visible:!1}),this.props.onFinished&&this.props.onFinished()):13==e.keyCode&&this.handleEditingFinished()}handleEditingFinished(e){if(e){let t=e.currentTarget;setTimeout(e=>{t.contains(document.activeElement)||this.props.onFinished&&this.props.onFinished(this.state.value)},0)}else this.props.onFinished&&this.props.onFinished(this.state.value.trim())}render(){return i().createElement("div",{tabIndex:"-1",className:"group-focus",onBlur:this.handleEditingFinished},i().createElement("input",{className:"with-icon-right",type:this.state.visible?"text":"password",value:this.state.value,placeholder:this.props.placeholder,maxLength:32,required:this.props.required?"required":"",autoFocus:this.props.autoFocus?"autoFocus":"",autoComplete:this.props.autoComplete,onChange:this.handeTextChange,onKeyDown:this.handleKeyDown,ref:this.inputRef}),i().createElement("span",{onClick:this.handleVisibility},i().createElement("i",{className:"material-icons clickable light-gray"},this.state.visible?"visibility":"visibility_off")))}}},6904:function(e,t,s){s.d(t,{A:function(){return c}});var a=s(1594),i=s.n(a),n=s(4532),r=s(8589),o=s(3540),l=s(9027);class c extends i().PureComponent{render(){let e;if(!0===this.props.avatar)if(n.Tinode.isSelfTopicName(this.props.topic))e=i().createElement("img",{className:"avatar self",alt:"avatar",src:l.Yd});else{const t=n.Tinode.isGroupTopicName(this.props.topic),s=(0,r.kJ)(this.props.topic,t);if(this.props.topic&&this.props.title&&this.props.title.trim()){const t=this.props.title.trim().charAt(0),a="lettertile "+s+(this.props.deleted?" disabled":"");e=i().createElement("div",{className:a},i().createElement("div",null,t))}else{const a="material-icons "+s+(this.props.deleted?" disabled":"");e=t?i().createElement("i",{className:a},"group"):i().createElement("i",{className:a},"person")}}else if(this.props.avatar){const t=this.props.tinode.authorizeURL((0,o.wk)(this.props.avatar,"image")),s="avatar"+(this.props.deleted?" deleted":"");e=i().createElement("img",{className:s,alt:"avatar",src:t,onError:e=>{e.target.onerror=null,e.target.src="img/broken_image.png"}})}else e=null;return e}}},7151:function(e,t,s){s.d(t,{A:function(){return a}});class a{static parseUrlHash(e){const t=e.split("?",2),s={};let a=[];return t[0]&&(a=t[0].replace("#","").split("/")),t[1]&&t[1].split("&").forEach(e=>{const t=e.indexOf("=");t>0&&(s[e.slice(0,t)]=decodeURIComponent(e.slice(t+1)))}),{path:a,params:s}}static navigateTo(e){window.location.hash=e}static composeUrlHash(e,t){let s=e.join("/");const a=[];for(const e in t)t.hasOwnProperty(e)&&void 0!==t[e]&&a.push(e+"="+encodeURIComponent(t[e]));return a.length>0&&(s+="?"+a.join("&")),s}static addUrlParam(e,t,s){const i=a.parseUrlHash(e);return i.params[t]=s,a.composeUrlHash(i.path,i.params)}static removeUrlParam(e,t){const s=a.parseUrlHash(e);return delete s.params[t],a.composeUrlHash(s.path,s.params)}static setUrlSidePanel(e,t){const s=a.parseUrlHash(e);return s.path[0]=t,a.composeUrlHash(s.path,s.params)}static setUrlInfoPanel(e,t){const s=a.parseUrlHash(e);return t?s.params.info=t:delete s.params.info,a.composeUrlHash(s.path,s.params)}static setUrlTopic(e,t){const s=a.parseUrlHash(e);return s.path[1]=t,delete s.params.info,a.composeUrlHash(s.path,s.params)}}},8043:function(e,t,s){s.d(t,{e3:function(){return E},TU:function(){return C},NV:function(){return A}});var a=s(1594),i=s.n(a),n=s(8181),r=s(4532),o=s(5053),l=s(8589);class c extends i().PureComponent{render(){const e=["busy","declined","disconnected","missed"].includes(this.props.callState),t="material-icons medium "+(e?"red":"green"),s=this.props.incoming?e?"call_missed":"call_received":e?"call_missed_outgoing":"call_made",a=this.props.incoming?i().createElement(n.FormattedMessage,{id:"calls_incoming",defaultMessage:[{type:0,value:"Incoming call"}]}):i().createElement(n.FormattedMessage,{id:"calls_outgoing",defaultMessage:[{type:0,value:"Outgoing call"}]});let r;if(e)switch(this.props.callState){case"busy":r=i().createElement(n.FormattedMessage,{id:"call_busy",defaultMessage:[{type:0,value:"busy"}]});break;case"declined":r=i().createElement(n.FormattedMessage,{id:"call_declined",defaultMessage:[{type:0,value:"declined"}]});break;case"missed":r=this.props.incoming?i().createElement(n.FormattedMessage,{id:"call_missed",defaultMessage:[{type:0,value:"missed"}]}):i().createElement(n.FormattedMessage,{id:"call_cancelled",defaultMessage:[{type:0,value:"cancelled"}]});break;default:r=i().createElement(n.FormattedMessage,{id:"call_disconnected",defaultMessage:[{type:0,value:"disconnected"}]})}else r=i().createElement("span",null,(0,l.Ye)(this.props.duration/1e3));return i().createElement("div",{className:"call-message"},i().createElement("div",null,i().createElement("i",{className:"material-icons big gray"},"call")),i().createElement("div",{className:"flex-column narrow"},i().createElement("div",null,a),i().createElement("div",{className:"duration"},i().createElement("i",{className:t},s)," ",r)))}}class h extends i().PureComponent{render(){const e=["busy","declined","disconnected","missed"].includes(this.props.callState),t=this.props.incoming?e?"call_missed":"call_received":e?"call_missed_outgoing":"call_made";let s;if(e)switch(this.props.callState){case"busy":s=i().createElement(n.FormattedMessage,{id:"call_busy",defaultMessage:[{type:0,value:"busy"}]});break;case"declined":s=i().createElement(n.FormattedMessage,{id:"call_declined",defaultMessage:[{type:0,value:"declined"}]});break;case"missed":s=this.props.incoming?i().createElement(n.FormattedMessage,{id:"call_missed",defaultMessage:[{type:0,value:"missed"}]}):i().createElement(n.FormattedMessage,{id:"call_cancelled",defaultMessage:[{type:0,value:"cancelled"}]});break;default:s=i().createElement(n.FormattedMessage,{id:"call_disconnected",defaultMessage:[{type:0,value:"disconnected"}]})}else s=["accepted","started"].includes(this.props.callState)&&!this.props.duration?i().createElement(n.FormattedMessage,{id:"call_in_progress",defaultMessage:[{type:0,value:"in progress"}]}):i().createElement("span",null,(0,l.Ye)(this.props.duration/1e3));return i().createElement(i().Fragment,null,i().createElement("div",{className:"composed-material"},i().createElement("i",{className:"material-icons"},"call"),i().createElement("i",{className:"material-icons second"},t))," ",s)}}class d extends i().PureComponent{constructor(e){super(e),this.videoRef=i().createRef(),this.handleClick=this.handleClick.bind(this)}handleClick(e){this.props.onClick&&this.props.onClick(e)}render(){const e=(0,l.Ye)(this.props["data-duration"]/1e3),t="inline-video"+(this.props.onClick?" image-clickable":"");return i().createElement("div",{className:t},i().createElement("img",this.props),i().createElement("div",{className:"play-control"},this.props.onClick?i().createElement("i",{className:"material-icons white x-big"},"play_arrow"):i().createElement("img",{src:"img/broken_video.png",style:{filter:"invert(100%)"},width:"36",height:"36"})),e?i().createElement("div",{className:"duration"},e):null)}}class p extends i().PureComponent{constructor(e){super(e),this.state={src:this.props.isvideo?"img/blankvid.png":"img/blankimg.png",style:Object.assign({padding:"4px"},this.props.style),className:this.props.className,alt:this.props.alt,onClick:this.props.onClick}}componentDidMount(){this.props.whenDone.promise.then(e=>this.setState({src:e.src,style:{...this.state.style,padding:0}})).catch(e=>this.setState({src:this.props.isvideo?"img/broken_video.png":"img/broken_image.png"}))}componentWillUnmount(){this.props.whenDone.cancel()}componentDidUpdate(e){e.whenDone!=this.props.whenDone&&(this.setState({src:this.props.isvideo?"img/blankvid.png":"img/blankimg.png",style:{...this.state.style,padding:"4px"}}),this.props.whenDone.promise.then(e=>this.setState({src:e.src,style:{...this.state.style,padding:0}})).catch(e=>this.setState({src:this.props.isvideo?"img/broken_video.png":"img/broken_image.png"})))}render(){return i().createElement("img",this.state)}}var u=s(9895);class m extends i().PureComponent{constructor(e){super(e)}render(){return i().createElement("div",{className:"inline-image"},i().createElement("img",this.props),i().createElement("div",{className:"rounded-container"},i().createElement(u.A,{progress:this.props.progress,onCancel:this.props.onCancelUpload})))}}var g=s(9027),f=s(6110),v=s(3540);const b=(0,n.defineMessages)({drafty_form:{id:"drafty_form",defaultMessage:[{type:0,value:"Form:"}]},drafty_attachment:{id:"drafty_attachment",defaultMessage:[{type:0,value:"Attachment"}]},drafty_image:{id:"drafty_image",defaultMessage:[{type:0,value:"Picture"}]},drafty_video:{id:"drafty_video",defaultMessage:[{type:0,value:"Video recording"}]},drafty_unknown:{id:"drafty_unknown",defaultMessage:[{type:0,value:"Unsupported"}]}});function E(e,t,s,a,n){if(n.includes("QQ"))return _.call(this,e,t,s,a);if(!e)return s;let h=r.Drafty.tagName(e),d=r.Drafty.attrValue(e,t)||{};switch(d.key=a,e){case"AU":d.src&&(d.src=this.authorizeURL((0,v.wk)(d.src,"audio")),d.duration=t.duration>0?0|t.duration:void 0,d.preview=t.preview,d.loading="lazy"),h=o.A,s=null;break;case"BR":s=null;break;case"EX":case"RW":break;case"HL":d.className="highlight";break;case"HD":h=null,s=null;break;case"IM":h=y.call(this,h,t,d),s=null;break;case"BN":d.onClick=this.onFormButtonClick;let e=i().Children.map(s,e=>"string"==typeof e?e:void 0);e&&0!=e.length||(e=[d.name]),d["data-title"]=e.join("");break;case"LN":d&&(d.href="string"==typeof d.href?(0,v.Jf)(d.href,g.kA):"");break;case"MN":d.className="mention",t&&(d.className+=" "+(0,l.kJ)(t.val,!1,!0));break;case"FM":d.className="bot-form";break;case"QQ":d.className="reply-quote",d.onClick=this.onQuoteClick;break;case"VC":h=c,s=null,t&&(d.callState=t.state,d.incoming=t.incoming,d.duration=t.duration);break;case"VD":h=w.call(this,h,t,d),s=null;break;default:if(!h){h=i().Fragment,d={key:a};let e=s;Array.isArray(s)&&s.join("").trim()||(e=[i().createElement("span",{key:"x1",className:"gray"},this.formatMessage(b.drafty_unknown))]),s=[i().createElement("i",{key:"x0",className:"material-icons gray"},"extension")," "].concat(e)}}return h?i().createElement(h,d,s):s}function y(e,t,s){if(!t)return s.src="img/broken_image.png",s.style={width:g._g+"px",height:g._g+"px"},e;s.className="inline-image";const a=(0,f.ae)(t.width,t.height,this.viewportWidth>0?Math.min(this.viewportWidth-6.5*g.JS,34.5*g.JS):34.5*g.JS,24*g.JS,!1)||{dstWidth:g._j,dstHeight:g._j};return s.style={width:a.dstWidth+"px",height:a.dstHeight+"px",minWidth:a.dstWidth+"px",minHeight:a.dstHeight+"px"},r.Drafty.isProcessing(t)?e=m:(s.src=this.authorizeURL((0,v.wk)(s.src,"image")),s.alt=t.name,s.src?(Math.max(t.width||0,t.height||0)>g._g&&(s.onClick=this.onImagePreview,s.className+=" image-clickable"),s.loading="lazy"):s.src=null),e}function w(e,t,s){if(!t)return s.src="img/broken_video.png",s.style={width:g._g+"px",height:g._g+"px"},e;s.className="inline-image";const a=(0,f.ae)(t.width,t.height,this.viewportWidth>0?Math.min(this.viewportWidth-6.5*g.JS,34.5*g.JS):34.5*g.JS,24*g.JS,!1)||{dstWidth:g.qV,dstHeight:g.qV};return s.style={width:a.dstWidth+"px",height:a.dstHeight+"px",minWidth:a.dstWidth+"px",minHeight:a.dstHeight+"px"},r.Drafty.isProcessing(t)?e=m:(s.src=this.authorizeURL((0,v.wk)(s.src,"image")),s.alt=t.name,(t.ref||t.val)&&(s.onClick=this.onVideoPreview,s.loading="lazy"),e=d),e}function C(e,t,s,a){if(!e)return s;let n=r.Drafty.tagName(e);const o={key:a};switch(e){case"AU":n=i().Fragment,s=[i().createElement("i",{key:"au",className:"material-icons"},"mic")," ",(0,l.Ye)(t.duration/1e3)];break;case"BR":n=i().Fragment,s=[" "];break;case"HL":o.className="highlight preview";break;case"LN":case"MN":n="span";break;case"IM":n=i().Fragment,s=[i().createElement("i",{key:"im",className:"material-icons"},"photo")," ",this.formatMessage(b.drafty_image)];break;case"BN":n="span",o.className="flat-button faux";break;case"FM":n=i().Fragment,s=[i().createElement("i",{key:"fm",className:"material-icons"},"dashboard"),this.formatMessage(b.drafty_form)].concat(" ",s||[]);break;case"RW":n=i().Fragment;break;case"EX":if(t){if(r.Drafty.isFormResponseType(t.mime))return null;delete t.val,delete t.ref}n=i().Fragment,s=[i().createElement("i",{key:"ex",className:"material-icons"},"attachment")," ",this.formatMessage(b.drafty_attachment)];break;case"VC":n=h,t&&(o.callState=t.state,o.incoming=t.incoming,o.duration=t.duration),s=null;break;case"QQ":case"HD":n=null,s=null;break;case"VD":n=i().Fragment,s=[i().createElement("i",{key:"im",className:"material-icons"},"play_circle_outline")," ",this.formatMessage(b.drafty_video)];break;default:n||(n=i().Fragment,s=[i().createElement("i",{key:"x0",className:"material-icons gray"},"extension")," ",this.formatMessage(b.drafty_unknown)])}return n?i().createElement(n,o,s):s}function S(e,t){return e.style={width:g._g+"px",height:g._g+"px",maxWidth:g._g+"px",maxHeight:g._g+"px"},e.className="inline-image",e.alt=this.formatMessage(b.drafty_image),e.src=t&&e.src||"img/broken_image.png",e.title=e.alt,e}function M(e,t){const s=(0,f.ae)(t.width,t.height,g.iq,g._g);return e.style={width:s.width+"px",height:s.height+"px",maxWidth:g.iq+"px",maxHeight:g._g+"px"},e.className="inline-image",e.alt=this.formatMessage(b.drafty_video),e.title=e.alt,e.src=t&&e.src||"img/broken_video.png",e}function _(e,t,s,a){if(["BR","EX","IM","MN","VD"].includes(e)){let n=r.Drafty.tagName(e),o=r.Drafty.attrValue(e,t)||{};switch(o.key=a,e){case"BR":s=null;break;case"IM":o=S.call(this,o,t),s=[i().createElement("img",o,null)," ",o.alt],n=i().Fragment,o={key:a};break;case"VD":o=M.call(this,o,t),s=[i().createElement("img",o,null)," ",o.alt],n=i().Fragment,o={key:a};break;case"MN":n="span",o.className="mention",t&&(o.className+=" "+(0,l.kJ)(t.val,!1,!0));break;case"EX":let e;if(t){if(r.Drafty.isFormResponseType(t.mime))return null;e=t.name,delete t.val,delete t.ref}n=i().Fragment,s=[i().createElement("i",{key:"ex",className:"material-icons"},"attachment"),(0,l.Tu)(e,16)||this.formatMessage(b.drafty_attachment)]}return i().createElement(n,o,s)}return C.call(this,e,t,s,a)}function T(e,t){let s,a,i,n;if(t?(a=e.preview,n=e.premime||"image/jpeg",i=e.preref):(a=e.val,n=e.mime,i=e.ref),a){const e=(0,f.i)(a,n);if(!e)throw new Error("Invalid image");s=Promise.resolve(e)}else{if(!i)throw new Error("Missing image data");s=fetch(this.authorizeURL((0,v.wk)(i,"image"))).then(e=>{if(e.ok)return e.blob();throw new Error(`Image fetch unsuccessful: ${e.status} ${e.statusText}`)})}return s.then(e=>(0,f.ag)(e,t?g.iq:g._g,g._g,-1,!t)).then(s=>(t?e.premime=s.mime:e.mime=s.mime,e.size=s.blob.size,e.width=s.width,e.height=s.height,delete e.ref,delete e.preref,e.src=URL.createObjectURL(s.blob),(0,f.Sk)(s.blob))).then(s=>(t?e.preview=s.bits:e.val=s.bits,e)).catch(t=>{throw delete e.val,delete e.preview,delete e.src,e.width=g._g,e.height=g._g,t})}function A(e,t,s,a,n){if("IM"==e||"VD"==e){const n="IM"==e?S.call(this,{key:a},t):M.call(this,{key:a},t);let r;try{r=(0,v.iE)(T.call(this,t,"VD"==e))}catch(e){console.warn("Failed to quote image:",e.message),r=(0,v.iE)(e)}return n.whenDone=r,s=[i().createElement(p,n,null)," ",n.alt],i().createElement(i().Fragment,{key:a},s)}if("QQ"==e){if(n.includes("QQ"))return i().createElement("span",{key:a},[i().createElement("i",{key:"qq",className:"material-icons"},"format_quote")," "]);const e=r.Drafty.attrValue("QQ",t)||{};return e.key=a,e.className="reply-quote",i().createElement(r.Drafty.tagName("QQ"),e,s)}return _.call(this,e,t,s,a)}},8089:function(e,t,s){s.d(t,{A:function(){return b}});var a=s(1594),i=s.n(a),n=s(8181),r=s(4532),o=s(221),l=s(9418),c=s(1485),h=s(3307),d=s(9027),p=s(6110),u=s(8589),m=s(3540);const g=(0,n.defineMessages)({alias_invalid:{id:"alias_invalid",defaultMessage:[{type:0,value:"(invalid)"}]},alias_already_taken:{id:"alias_already_taken",defaultMessage:[{type:0,value:"(already taken)"}]},self_topic_name:{id:"self_topic_name",defaultMessage:[{type:0,value:"Saved messages"}]},self_topic_comment:{id:"self_topic_comment",defaultMessage:[{type:0,value:"Notes, messages, links, files saved for posterity"}]}});class f extends i().Component{constructor(e){super(e);const t=this.props.tinode.getTopic(this.props.topic),s=t.getAccessMode(),a=r.Tinode.isSelfTopicName(this.props.topic);this.state={isMe:r.Tinode.isMeTopicName(this.props.topic),isSelf:a,owner:s&&s.isOwner(),fullName:t.public?t.public.fn:a?this.props.intl.formatMessage(g.self_topic_name):null,private:t.private?t.private.comment:null,description:t.public?t.public.note:a?this.props.intl.formatMessage(g.self_topic_comment):null,avatar:(0,p.to)(t.public?t.public.photo:null),tags:t.tags()||[],newAvatar:null,newAvatarMime:null,aliasError:""},this.previousOnTags=null,this.aliasCheckTimer=null,this.aliasCheckPromise=null,this.tnNewTags=this.tnNewTags.bind(this),this.handleFullNameUpdate=this.handleFullNameUpdate.bind(this),this.handleImageUpdated=this.handleImageUpdated.bind(this),this.handleAvatarCropped=this.handleAvatarCropped.bind(this),this.handleAvatarCropCancel=this.handleAvatarCropCancel.bind(this),this.uploadAvatar=this.uploadAvatar.bind(this),this.handlePrivateUpdate=this.handlePrivateUpdate.bind(this),this.handleAliasUpdate=this.handleAliasUpdate.bind(this),this.handleDescriptionUpdate=this.handleDescriptionUpdate.bind(this),this.handleTagsUpdated=this.handleTagsUpdated.bind(this),this.validateAlias=this.validateAlias.bind(this),this.cancelValidator=this.cancelValidator.bind(this)}componentDidMount(){const e=this.props.tinode.getTopic(this.props.topic);this.previousOnTags=e.onTagsUpdated,e.onTagsUpdated=this.tnNewTags}componentWillUnmount(){this.props.tinode.getTopic(this.props.topic).onTagsUpdated=this.previousOnTags,this.cancelValidator()}tnNewTags(e){this.setState({tags:e})}handleFullNameUpdate(e){(e=(0,u.W5)(e.trim(),d.tS))&&this.state.fullName!==e&&(this.setState({fullName:e}),this.props.onUpdateTopicDesc(this.props.topic,(0,m.k6)(e,null)))}handlePrivateUpdate(e){e=e.trim().substring(0,d.tS),this.state.private!==e&&(this.setState({private:e}),this.props.onUpdateTopicDesc(this.props.topic,null,e||r.Tinode.DEL_CHAR))}handleDescriptionUpdate(e){(e=e.trim().substring(0,d.lQ))&&(this.setState({description:e}),this.props.onUpdateTopicDesc(this.props.topic,(0,m.k6)(null,null,null,e)))}handleImageUpdated(e,t){this.setState({newAvatar:t,newAvatarMime:e}),t||(this.setState({avatar:null}),this.props.onUpdateTopicDesc(this.props.topic,(0,m.k6)(null,r.Tinode.DEL_CHAR)))}handleAvatarCropped(e,t,s,a){const i=t?URL.createObjectURL(t):null;this.setState({avatar:i,newAvatar:null,newAvatarMime:null}),t&&this.uploadAvatar(e,t,s,a)}uploadAvatar(e,t,s,a){const i=e=>{let{mime:t,blob:s}=e;if(s.size>d.Z7){this.props.tinode.getLargeFileHelper().upload(s).then(e=>this.props.onUpdateTopicDesc(this.props.topic,(0,m.k6)(null,e))).catch(e=>this.props.onError(e.message,"err"))}else(0,p.Sk)(s).then(e=>{const s=(0,p.to)({data:e.bits,type:t});this.setState({source:s}),this.props.onUpdateTopicDesc(this.props.topic,(0,m.k6)(null,s))})};s>d.eQ||a>d.eQ||s!=a?(0,p.ag)(t,d.eQ,d.eQ,d.qy,!0).then(e=>i(e)).catch(e=>this.props.onError(e.message,"err")):i({mime:e,blob:t,width:s,height:a})}handleAvatarCropCancel(){this.setState({newAvatar:null,newAvatarMime:null})}handleAliasUpdate(e){const t=(e=(e||"").trim())?r.Tinode.setUniqueTag(this.state.tags,r.Tinode.TAG_ALIAS+e.toLowerCase()):r.Tinode.clearTagPrefix(this.state.tags,r.Tinode.TAG_ALIAS);this.handleTagsUpdated(t)}validateAlias(e){if(this.cancelValidator(),!(e=e.trim()))return this.setState({aliasError:""}),!0;if(!r.Tinode.isValidTagValue(e))return this.setState({aliasError:this.props.intl.formatMessage(g.alias_invalid)}),!1;this.setState({aliasError:""});const t=this.props.tinode.getFndTopic();if(!t)return this.setState({aliasError:""}),!0;this.aliasCheckPromise={};const s=new Promise((e,t)=>{this.aliasCheckPromise.resolve=e,this.aliasCheckPromise.reject=t});return this.aliasCheckTimer=setTimeout(s=>{this.aliasCheckTimer=null,t.checkTagUniqueness(`${r.Tinode.TAG_ALIAS}${e}`,this.props.topic).then(e=>{this.aliasCheckPromise.resolve(e),this.setState({aliasError:e?"":this.props.intl.formatMessage(g.alias_already_taken)})}).catch(e=>{this.aliasCheckPromise.reject(e),this.setState({aliasError:e.message})})},1e3),s}cancelValidator(){this.aliasCheckTimer&&(clearTimeout(this.aliasCheckTimer),this.aliasCheckTimer=null,this.aliasCheckPromise.reject(null))}handleTagsUpdated(e){(0,m.af)(this.state.tags.slice(0),e.slice(0))||this.props.onUpdateTags(e)}render(){if(this.state.newAvatar)return i().createElement(o.A,{avatar:this.state.newAvatar,mime:this.state.newAvatarMime,onSubmit:this.handleAvatarCropped,onCancel:this.handleAvatarCropCancel,onError:this.props.onError});const e=this.state.isMe||this.state.owner&&!this.state.isSelf;let t=this.state.tags&&this.state.tags.find(e=>e.startsWith("alias:"));return t&&(t=t.substring(6)),i().createElement(i().Fragment,null,i().createElement("div",{className:"panel-form-column"},i().createElement("center",null,i().createElement(l.A,{tinode:this.props.tinode,avatar:this.state.avatar,readOnly:!e,uid:this.props.topic,title:this.state.fullName,onImageUpdated:this.handleImageUpdated,onError:this.props.onError})),this.state.isMe?i().createElement("div",{className:"group"},i().createElement("label",{className:"small"},i().createElement(n.FormattedMessage,{id:"label_your_name",defaultMessage:[{type:0,value:"Your name"}]})),i().createElement("div",null,i().createElement(n.FormattedMessage,{id:"full_name_prompt",defaultMessage:[{type:0,value:"Full name, e.g. John Doe"}]},e=>i().createElement(c.A,{placeholder:e,value:this.state.fullName,required:!0,onFinished:this.handleFullNameUpdate})))):i().createElement(i().Fragment,null,i().createElement("div",{className:"group"},i().createElement("div",null,i().createElement("label",{className:"small"},i().createElement(n.FormattedMessage,{id:"label_topic_name",defaultMessage:[{type:0,value:"Name"}]}))),i().createElement("div",null,i().createElement(n.FormattedMessage,{id:"topic_name_editing_placeholder",defaultMessage:[{type:0,value:"Freeform name of the group"}]},t=>i().createElement(c.A,{placeholder:t,readOnly:!e,value:this.state.fullName,required:!0,maxLength:32,onFinished:this.handleFullNameUpdate})))),i().createElement("div",{className:"group"},i().createElement("div",null,i().createElement("label",{className:"small"},i().createElement(n.FormattedMessage,{id:"label_private",defaultMessage:[{type:0,value:"Private comment"}]}))),i().createElement("div",null,i().createElement(n.FormattedMessage,{id:"private_editing_placeholder",defaultMessage:[{type:0,value:"Visible to you only"}]},e=>i().createElement(c.A,{placeholder:e,value:this.state.private,onFinished:this.handlePrivateUpdate}))))),e||t?i().createElement("div",{className:"group"},i().createElement("div",null,i().createElement("label",{className:"small "+(this.state.aliasError?"invalid":"")},i().createElement(n.FormattedMessage,{id:"label_alias_edit",defaultMessage:[{type:0,value:"Alias"}]})," ",this.state.aliasError)),i().createElement("div",null,i().createElement(n.FormattedMessage,{id:"alias_editing_placeholder",defaultMessage:[{type:0,value:"Alias (optional)"}]},s=>i().createElement(c.A,{placeholder:s,readOnly:!e,value:t,validator:this.validateAlias,iconLeft:"alternate_email",maxLength:24,spellCheck:!1,onFinished:this.handleAliasUpdate})))):null,e||this.state.description?i().createElement("div",{className:"group"},i().createElement("div",null,i().createElement("label",{className:"small"},i().createElement(n.FormattedMessage,{id:"label_description",defaultMessage:[{type:0,value:"Description"}]}))),i().createElement("div",null,i().createElement(n.FormattedMessage,{id:"description_editing_placeholder",defaultMessage:[{type:0,value:"Description (optional)"}]},t=>i().createElement(c.A,{placeholder:t,readOnly:!e,value:this.state.description,multiline:2,onFinished:this.handleDescriptionUpdate})))):null),e&&!this.state.isMe?i().createElement(i().Fragment,null,i().createElement("div",{className:"hr"}),i().createElement(n.FormattedMessage,{id:"title_tag_manager",defaultMessage:[{type:0,value:"Tags (search & discovery)"}]},e=>i().createElement(h.A,{tinode:this.props.tinode,title:e,activated:!1,tags:this.state.tags,onSubmit:this.handleTagsUpdated}))):null)}}var v=(0,n.injectIntl)(f);class b extends i().Component{constructor(e){super(e);this.props.tinode.getTopic(this.props.topic).getAccessMode();this.state={tags:[]},this.previousTagsUpdated=void 0,this.onTagsUpdated=this.onTagsUpdated.bind(this),this.handleTagsUpdated=this.handleTagsUpdated.bind(this)}componentDidUpdate(e){const t=this.props.tinode.getTopic(e.topic);t&&(t.onTagsUpdated!=this.onTagsUpdated&&("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}))}componentWillUnmount(){this.props.tinode.getTopic(this.props.topic).onTagsUpdated=this.previousTagsUpdated}onTagsUpdated(e){this.setState({tags:e}),this.previousTagsUpdated&&this.previousTagsUpdated!=this.onTagsUpdated&&this.previousTagsUpdated(e)}handleTagsUpdated(e){(0,m.af)(this.state.tags.slice(0),e.slice(0))||this.props.onUpdateTagsRequest(this.props.topic,e)}render(){return i().createElement("div",{className:"scrollable-panel"},i().createElement(v,{tinode:this.props.tinode,topic:this.props.topic,onUpdateTopicDesc:this.props.onUpdateTopicDesc,onUpdateTags:this.handleTagsUpdated,onError:this.props.onError}))}}},8181:function(e){e.exports=ReactIntl},8262:function(e,t,s){s.d(t,{A:function(){return a}});class a{static setObject(e,t){localStorage.setItem(e,JSON.stringify(t))}static getObject(e){const t=localStorage.getItem(e);return t&&JSON.parse(t)}static updateObject(e,t){const s=this.getObject(e);this.setObject(e,Object.assign(s||{},t))}static removeItem(e){localStorage.removeItem(e)}}},8589:function(e,t,s){function a(e,t){t=t||window.navigator.userLanguage||window.navigator.language;const s=new Date;return e.getFullYear()==s.getFullYear()?e.getMonth()==s.getMonth()&&e.getDate()==s.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,{year:"numeric",month:"short",day:"numeric"})}function i(e,t){t=t||window.navigator.userLanguage||window.navigator.language;const s=new Date,a=Math.floor((e.getTime()-6e4*e.getTimezoneOffset())/864e5)-Math.floor((s.getTime()-6e4*s.getTimezoneOffset())/864e5);return Math.abs(a)<2?new Intl.RelativeTimeFormat(t,{numeric:"auto"}).format(a,"day"):new Intl.DateTimeFormat(t).format(e)}function n(e,t){if("number"!=typeof e)return"";let s=(0|Math.floor(e/60))%60,a=0|Math.floor(e/3600);(t||a>0)&&(s=s<10?`0${s}`:s);let i=(0|e)%60;return i=i<10?`0${i}`:i,0==a?`${s}:${i}`:`${a}:${s}:${i}`}function r(e){if(!e||0==e)return"0 Bytes";const t=["Bytes","KB","MB","GB","TB","PB"],s=Math.min(0|Math.floor(Math.log2(e)/10),t.length-1),a=e/Math.pow(1024,s),i=s>0?a<3?2:a<30?1:0:0;return a.toFixed(i)+" "+t[s]}function o(e,t){return"string"!=typeof e?e:e.length>t?e.slice(0,t/2-1)+"…"+e.slice(1-t/2):e}function l(e,t,s){return(t?"lt-":"dk-")+(s?"fg-":"bg-")+(a=e,Math.abs(function(e){let t=0;e=""+e;for(let s=0;s127397+e.charCodeAt());return String.fromCodePoint(...t)}function h(e,t){if("string"!=typeof e)return e;if(e.length<=t)return e;return/[\u0590-\u05FF\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF\uFB50-\uFDFF\uFE70-\uFEFF]/.test(e)?"…"+e.slice(0,t-1):e.slice(0,t-1)+"…"}s.d(t,{Tu:function(){return o},W5:function(){return h},Ye:function(){return n},cq:function(){return a},kJ:function(){return l},lX:function(){return r},lb:function(){return c},mf:function(){return i}})},9027:function(e,t,s){s.d(t,{C3:function(){return a},Cx:function(){return T},D3:function(){return m},DT:function(){return N},GB:function(){return p},H1:function(){return w},HX:function(){return r},J:function(){return c},JS:function(){return f},Lq:function(){return i},NR:function(){return l},QG:function(){return M},RS:function(){return B},Rz:function(){return R},S:function(){return Z},SE:function(){return n},TR:function(){return x},Ti:function(){return d},Tn:function(){return H},U3:function(){return o},Uv:function(){return J},V9:function(){return q},VJ:function(){return g},Yd:function(){return G},Z7:function(){return b},ZW:function(){return K},_g:function(){return A},_j:function(){return E},bn:function(){return Q},cL:function(){return X},cZ:function(){return u},eQ:function(){return v},fi:function(){return j},gb:function(){return Y},hB:function(){return U},hT:function(){return W},iB:function(){return O},iq:function(){return k},kA:function(){return V},lQ:function(){return I},mp:function(){return C},mu:function(){return P},qV:function(){return y},qy:function(){return S},rl:function(){return z},rn:function(){return h},sT:function(){return F},tS:function(){return D},wj:function(){return _},wl:function(){return L},yS:function(){return $}});const a="TinodeWeb/"+(s(257).i||"0.24"),i="AQEAAAABAAD_rAp4DJh05a1HAwFT3A6K",n={hosted:"web.tinode.co",local:"localhost:6060"},r=n.hosted,o=!0,l=3e3,c=1500,h=2,d=96,p=16,u="JRWPS",m="N",g=640,f=13,v=384,b=4096,E=32,y=128,w=24,C=262144,S=1<<23,M=1024,_=64,T=96,A=36,k=48,N=4,D=60,I=360,P=24,F=80,R=30,x=84,U=48,L=2e3,O=6e5,j="mailto:support@tinode.co",B="https://tinode.co/privacy.html",q="https://tinode.co/terms.html",z=!1,V=["http","https","ftp","ftps"],H=128,W=8e4,K=1e3,$=3*f,G="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZpZXdCb3g9IjAgMCAxNyAxNyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMy41NjIgMXYxNS40NTlsNC42ODYtMy4yNyA0Ljc1MiAzLjI2di0xNS40NDloLTkuNDM4ek0xMiAxNC41NTFsLTMuNzU2LTIuNTc4LTMuNjgxIDIuNTY4di0xMi41NDFoNy40Mzd2MTIuNTUxeiIgZmlsbD0iIzU1NTU1NSIgLz48L3N2Zz4=",Q=3e3,Y="auto",X=10,J="application/json",Z={type:"patt",index:0,path:"img/bkg/"}},9418:function(e,t,s){s.d(t,{A:function(){return c}});var a=s(1594),i=s.n(a),n=s(6904),r=s(1013),o=s(3540),l=s(9027);class c extends i().Component{constructor(e){super(e),this.state={source:e.avatar},this.handleFileReceived=this.handleFileReceived.bind(this)}componentDidUpdate(e){this.props.avatar!=e.avatar&&this.setState({source:this.props.avatar})}handleFileReceived(e){const t=e.target.files[0];this.props.onImageUpdated(t.type,URL.createObjectURL(t),t.name),e.target.value=""}render(){const e="file-input-avatar-"+(""+Math.random()).substring(0,4),t="avatar-upload"+(this.props.readOnly?" read-only":"");return i().createElement("div",{className:t},this.props.readOnly||!this.state.source?null:i().createElement("a",{href:"#",className:"clear-avatar",onClick:e=>{e.preventDefault(),this.props.onImageUpdated()}},i().createElement("i",{className:"material-icons"},"clear")),this.state.source?i().createElement("img",{src:this.props.tinode.authorizeURL((0,o.wk)(this.state.source,"image")),className:"preview"}):this.props.readOnly&&this.props.uid?i().createElement("div",{className:"avatar-box"},i().createElement(n.A,{tinode:this.props.tinode,avatar:!0,topic:this.props.uid,title:this.props.title})):i().createElement("div",{className:"blank"},l.eQ,"×",l.eQ),this.props.readOnly?null:i().createElement("input",{type:"file",id:e,className:"inputfile hidden",accept:"image/*",onChange:this.handleFileReceived}),this.props.readOnly?null:i().createElement("label",{htmlFor:e,className:"round"},i().createElement("i",{className:"material-icons"},"file_upload")),i().createElement(r.A,{show:this.props.uploading,large:!0,clear:!0,centered:!0}))}}},9593:function(e){e.exports=QRCode},9895:function(e,t,s){s.d(t,{A:function(){return r}});var a=s(1594),i=s.n(a),n=s(8181);class r extends i().PureComponent{render(){return i().createElement("div",{className:"uploader"},i().createElement("div",null,i().createElement("span",{style:{width:100*this.props.progress+"%"}})),this.props.progress<.999?i().createElement("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onCancel()}},i().createElement("i",{className:"material-icons"},"close")," ",i().createElement(n.FormattedMessage,{id:"action_cancel",defaultMessage:[{type:0,value:"cancel"}]})):i().createElement(n.FormattedMessage,{id:"upload_finishing",defaultMessage:[{type:0,value:"finishing..."}]}))}}}},n={};function r(e){var t=n[e];if(void 0!==t)return t.exports;var s=n[e]={exports:{}};return i[e].call(s.exports,s,s.exports,r),s.exports}r.m=i,r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,{a:t}),t},t=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},r.t=function(s,a){if(1&a&&(s=this(s)),8&a)return s;if("object"==typeof s&&s){if(4&a&&s.__esModule)return s;if(16&a&&"function"==typeof s.then)return s}var i=Object.create(null);r.r(i);var n={};e=e||[null,t({}),t([]),t(t)];for(var o=2&a&&s;("object"==typeof o||"function"==typeof o)&&!~e.indexOf(o);o=t(o))Object.getOwnPropertyNames(o).forEach(function(e){n[e]=function(){return s[e]}});return n.default=function(){return s},r.d(i,n),i},r.d=function(e,t){for(var s in t)r.o(t,s)&&!r.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},r.f={},r.e=function(e){return Promise.all(Object.keys(r.f).reduce(function(t,s){return r.f[s](e,t),t},[]))},r.u=function(e){return e+".prod.js"},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},s={},a="tinode-webapp:",r.l=function(e,t,i,n){if(s[e])s[e].push(t);else{var o,l;if(void 0!==i)for(var c=document.getElementsByTagName("script"),h=0;h>6|192,t[s++]=63&i|128):55296==(64512&i)&&a+1>18|240,t[s++]=i>>12&63|128,t[s++]=i>>6&63|128,t[s++]=63&i|128):(t[s++]=i>>12|224,t[s++]=i>>6&63|128,t[s++]=63&i|128)}return t},p={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(e,t){if(!Array.isArray(e))throw Error("encodeByteArray takes an array as a parameter");this.init_();const s=t?this.byteToCharMapWebSafe_:this.byteToCharMap_,a=[];for(let t=0;t>2,h=(3&i)<<4|r>>4;let d=(15&r)<<2|l>>6,p=63&l;o||(p=64,n||(d=64)),a.push(s[c],s[h],s[d],s[p])}return a.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(d(e),t)},decodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?atob(e):function(e){const t=[];let s=0,a=0;for(;s191&&i<224){const n=e[s++];t[a++]=String.fromCharCode((31&i)<<6|63&n)}else if(i>239&&i<365){const n=((7&i)<<18|(63&e[s++])<<12|(63&e[s++])<<6|63&e[s++])-65536;t[a++]=String.fromCharCode(55296+(n>>10)),t[a++]=String.fromCharCode(56320+(1023&n))}else{const n=e[s++],r=e[s++];t[a++]=String.fromCharCode((15&i)<<12|(63&n)<<6|63&r)}}return t.join("")}(this.decodeStringToByteArray(e,t))},decodeStringToByteArray(e,t){this.init_();const s=t?this.charToByteMapWebSafe_:this.charToByteMap_,a=[];for(let t=0;t>4;if(a.push(l),64!==r){const e=n<<4&240|r>>2;if(a.push(e),64!==o){const e=r<<6&192|o;a.push(e)}}}return a},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let e=0;e=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class u extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const m=function(e){return function(e){const t=d(e);return p.encodeByteArray(t,!0)}(e).replace(/\./g,"")},g=function(e){try{return p.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};const f=()=>function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw new Error("Unable to locate global object.")}().__FIREBASE_DEFAULTS__,v=()=>{try{return f()||(()=>{if("undefined"==typeof process||void 0===process.env)return;const e=process.env.__FIREBASE_DEFAULTS__;return e?JSON.parse(e):void 0})()||(()=>{if("undefined"==typeof document)return;let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}const t=e&&g(e[1]);return t&&JSON.parse(t)})()}catch(e){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`)}},b=()=>{var e;return null===(e=v())||void 0===e?void 0:e.config};class E{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}wrapCallback(e){return(t,s)=>{t?this.reject(t):this.resolve(s),"function"==typeof e&&(this.promise.catch(()=>{}),1===e.length?e(t):e(t,s))}}}function y(){try{return"object"==typeof indexedDB}catch(e){return!1}}function w(){return new Promise((e,t)=>{try{let s=!0;const a="validate-browser-context-for-indexeddb-analytics-module",i=self.indexedDB.open(a);i.onsuccess=()=>{i.result.close(),s||self.indexedDB.deleteDatabase(a),e(!0)},i.onupgradeneeded=()=>{s=!1},i.onerror=()=>{var e;t((null===(e=i.error)||void 0===e?void 0:e.message)||"")}}catch(e){t(e)}})}class C extends Error{constructor(e,t,s){super(t),this.code=e,this.customData=s,this.name="FirebaseError",Object.setPrototypeOf(this,C.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,S.prototype.create)}}class S{constructor(e,t,s){this.service=e,this.serviceName=t,this.errors=s}create(e,...t){const s=t[0]||{},a=`${this.service}/${e}`,i=this.errors[e],n=i?function(e,t){return e.replace(M,(e,s)=>{const a=t[s];return null!=a?String(a):`<${s}?>`})}(i,s):"Error",r=`${this.serviceName}: ${n} (${a}).`;return new C(a,r,s)}}const M=/\{\$([^}]+)}/g;function _(e,t){if(e===t)return!0;const s=Object.keys(e),a=Object.keys(t);for(const i of s){if(!a.includes(i))return!1;const s=e[i],n=t[i];if(T(s)&&T(n)){if(!_(s,n))return!1}else if(s!==n)return!1}for(const e of a)if(!s.includes(e))return!1;return!0}function T(e){return null!==e&&"object"==typeof e}function A(e){return e&&e._delegate?e._delegate:e}class k{constructor(e,t,s){this.name=e,this.instanceFactory=t,this.type=s,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}const N="[DEFAULT]";class D{constructor(e,t){this.name=e,this.container=t,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){const t=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(t)){const e=new E;if(this.instancesDeferred.set(t,e),this.isInitialized(t)||this.shouldAutoInitialize())try{const s=this.getOrInitializeService({instanceIdentifier:t});s&&e.resolve(s)}catch(e){}}return this.instancesDeferred.get(t).promise}getImmediate(e){var t;const s=this.normalizeInstanceIdentifier(null==e?void 0:e.identifier),a=null!==(t=null==e?void 0:e.optional)&&void 0!==t&&t;if(!this.isInitialized(s)&&!this.shouldAutoInitialize()){if(a)return null;throw Error(`Service ${this.name} is not available`)}try{return this.getOrInitializeService({instanceIdentifier:s})}catch(e){if(a)return null;throw e}}getComponent(){return this.component}setComponent(e){if(e.name!==this.name)throw Error(`Mismatching Component ${e.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=e,this.shouldAutoInitialize()){if(function(e){return"EAGER"===e.instantiationMode}(e))try{this.getOrInitializeService({instanceIdentifier:N})}catch(e){}for(const[e,t]of this.instancesDeferred.entries()){const s=this.normalizeInstanceIdentifier(e);try{const e=this.getOrInitializeService({instanceIdentifier:s});t.resolve(e)}catch(e){}}}}clearInstance(e=N){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){const e=Array.from(this.instances.values());await Promise.all([...e.filter(e=>"INTERNAL"in e).map(e=>e.INTERNAL.delete()),...e.filter(e=>"_delete"in e).map(e=>e._delete())])}isComponentSet(){return null!=this.component}isInitialized(e=N){return this.instances.has(e)}getOptions(e=N){return this.instancesOptions.get(e)||{}}initialize(e={}){const{options:t={}}=e,s=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(s))throw Error(`${this.name}(${s}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);const a=this.getOrInitializeService({instanceIdentifier:s,options:t});for(const[e,t]of this.instancesDeferred.entries()){s===this.normalizeInstanceIdentifier(e)&&t.resolve(a)}return a}onInit(e,t){var s;const a=this.normalizeInstanceIdentifier(t),i=null!==(s=this.onInitCallbacks.get(a))&&void 0!==s?s:new Set;i.add(e),this.onInitCallbacks.set(a,i);const n=this.instances.get(a);return n&&e(n,a),()=>{i.delete(e)}}invokeOnInitCallbacks(e,t){const s=this.onInitCallbacks.get(t);if(s)for(const a of s)try{a(e,t)}catch(e){}}getOrInitializeService({instanceIdentifier:e,options:t={}}){let s=this.instances.get(e);if(!s&&this.component&&(s=this.component.instanceFactory(this.container,{instanceIdentifier:(a=e,a===N?void 0:a),options:t}),this.instances.set(e,s),this.instancesOptions.set(e,t),this.invokeOnInitCallbacks(s,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,s)}catch(e){}var a;return s||null}normalizeInstanceIdentifier(e=N){return this.component?this.component.multipleInstances?e:N:e}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class I{constructor(e){this.name=e,this.providers=new Map}addComponent(e){const t=this.getProvider(e.name);if(t.isComponentSet())throw new Error(`Component ${e.name} has already been registered with ${this.name}`);t.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){if(this.providers.has(e))return this.providers.get(e);const t=new D(e,this);return this.providers.set(e,t),t}getProviders(){return Array.from(this.providers.values())}}const P=[];var F;!function(e){e[e.DEBUG=0]="DEBUG",e[e.VERBOSE=1]="VERBOSE",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.SILENT=5]="SILENT"}(F||(F={}));const R={debug:F.DEBUG,verbose:F.VERBOSE,info:F.INFO,warn:F.WARN,error:F.ERROR,silent:F.SILENT},x=F.INFO,U={[F.DEBUG]:"log",[F.VERBOSE]:"log",[F.INFO]:"info",[F.WARN]:"warn",[F.ERROR]:"error"},L=(e,t,...s)=>{if(t{const a=()=>{e.removeEventListener("complete",i),e.removeEventListener("error",n),e.removeEventListener("abort",n)},i=()=>{t(),a()},n=()=>{s(e.error||new DOMException("AbortError","AbortError")),a()};e.addEventListener("complete",i),e.addEventListener("error",n),e.addEventListener("abort",n)});q.set(e,t)}(e),t=e,(O||(O=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])).some(e=>t instanceof e)?new Proxy(e,W):e);var t}function G(e){if(e instanceof IDBRequest)return function(e){const t=new Promise((t,s)=>{const a=()=>{e.removeEventListener("success",i),e.removeEventListener("error",n)},i=()=>{t(G(e.result)),a()},n=()=>{s(e.error),a()};e.addEventListener("success",i),e.addEventListener("error",n)});return t.then(t=>{t instanceof IDBCursor&&B.set(t,e)}).catch(()=>{}),H.set(t,e),t}(e);if(V.has(e))return V.get(e);const t=$(e);return t!==e&&(V.set(e,t),H.set(t,e)),t}const Q=e=>H.get(e);function Y(e,t,{blocked:s,upgrade:a,blocking:i,terminated:n}={}){const r=indexedDB.open(e,t),o=G(r);return a&&r.addEventListener("upgradeneeded",e=>{a(G(r.result),e.oldVersion,e.newVersion,G(r.transaction),e)}),s&&r.addEventListener("blocked",e=>s(e.oldVersion,e.newVersion,e)),o.then(e=>{n&&e.addEventListener("close",()=>n()),i&&e.addEventListener("versionchange",e=>i(e.oldVersion,e.newVersion,e))}).catch(()=>{}),o}function X(e,{blocked:t}={}){const s=indexedDB.deleteDatabase(e);return t&&s.addEventListener("blocked",e=>t(e.oldVersion,e)),G(s).then(()=>{})}const J=["get","getKey","getAll","getAllKeys","count"],Z=["put","add","delete","clear"],ee=new Map;function te(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(ee.get(t))return ee.get(t);const s=t.replace(/FromIndex$/,""),a=t!==s,i=Z.includes(s);if(!(s in(a?IDBIndex:IDBObjectStore).prototype)||!i&&!J.includes(s))return;const n=async function(e,...t){const n=this.transaction(e,i?"readwrite":"readonly");let r=n.store;return a&&(r=r.index(t.shift())),(await Promise.all([r[s](...t),i&&n.done]))[0]};return ee.set(t,n),n}W=(e=>({...e,get:(t,s,a)=>te(t,s)||e.get(t,s,a),has:(t,s)=>!!te(t,s)||e.has(t,s)}))(W);class se{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map(e=>{if(function(e){const t=e.getComponent();return"VERSION"===(null==t?void 0:t.type)}(e)){const t=e.getImmediate();return`${t.library}/${t.version}`}return null}).filter(e=>e).join(" ")}}const ae="@firebase/app",ie="0.13.2",ne=new class{constructor(e){this.name=e,this._logLevel=x,this._logHandler=L,this._userLogHandler=null,P.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in F))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?R[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,F.DEBUG,...e),this._logHandler(this,F.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,F.VERBOSE,...e),this._logHandler(this,F.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,F.INFO,...e),this._logHandler(this,F.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,F.WARN,...e),this._logHandler(this,F.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,F.ERROR,...e),this._logHandler(this,F.ERROR,...e)}}("@firebase/app"),re="@firebase/app-compat",oe="@firebase/analytics-compat",le="@firebase/analytics",ce="@firebase/app-check-compat",he="@firebase/app-check",de="@firebase/auth",pe="@firebase/auth-compat",ue="@firebase/database",me="@firebase/data-connect",ge="@firebase/database-compat",fe="@firebase/functions",ve="@firebase/functions-compat",be="@firebase/installations",Ee="@firebase/installations-compat",ye="@firebase/messaging",we="@firebase/messaging-compat",Ce="@firebase/performance",Se="@firebase/performance-compat",Me="@firebase/remote-config",_e="@firebase/remote-config-compat",Te="@firebase/storage",Ae="@firebase/storage-compat",ke="@firebase/firestore",Ne="@firebase/ai",De="@firebase/firestore-compat",Ie="firebase",Pe="[DEFAULT]",Fe={[ae]:"fire-core",[re]:"fire-core-compat",[le]:"fire-analytics",[oe]:"fire-analytics-compat",[he]:"fire-app-check",[ce]:"fire-app-check-compat",[de]:"fire-auth",[pe]:"fire-auth-compat",[ue]:"fire-rtdb",[me]:"fire-data-connect",[ge]:"fire-rtdb-compat",[fe]:"fire-fn",[ve]:"fire-fn-compat",[be]:"fire-iid",[Ee]:"fire-iid-compat",[ye]:"fire-fcm",[we]:"fire-fcm-compat",[Ce]:"fire-perf",[Se]:"fire-perf-compat",[Me]:"fire-rc",[_e]:"fire-rc-compat",[Te]:"fire-gcs",[Ae]:"fire-gcs-compat",[ke]:"fire-fst",[De]:"fire-fst-compat",[Ne]:"fire-vertex","fire-js":"fire-js",[Ie]:"fire-js-all"},Re=new Map,xe=new Map,Ue=new Map;function Le(e,t){try{e.container.addComponent(t)}catch(s){ne.debug(`Component ${t.name} failed to register with FirebaseApp ${e.name}`,s)}}function Oe(e){const t=e.name;if(Ue.has(t))return ne.debug(`There were multiple attempts to register component ${t}.`),!1;Ue.set(t,e);for(const t of Re.values())Le(t,e);for(const t of xe.values())Le(t,e);return!0}function je(e,t){const s=e.container.getProvider("heartbeat").getImmediate({optional:!0});return s&&s.triggerHeartbeat(),e.container.getProvider(t)}const Be=new S("app","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call initializeApp() first","bad-app-name":"Illegal App name: '{$appName}'","duplicate-app":"Firebase App named '{$appName}' already exists with different options or config","app-deleted":"Firebase App named '{$appName}' already deleted","server-app-deleted":"Firebase Server App has been deleted","no-options":"Need to provide options, when not being deployed to hosting via source.","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance.","invalid-log-argument":"First argument to `onLog` must be null or a function.","idb-open":"Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.","idb-get":"Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.","idb-set":"Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.","idb-delete":"Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.","finalization-registry-not-supported":"FirebaseServerApp deleteOnDeref field defined but the JS runtime does not support FinalizationRegistry.","invalid-server-app-environment":"FirebaseServerApp is not for use in browser environments."});class qe{constructor(e,t,s){this._isDeleted=!1,this._options=Object.assign({},e),this._config=Object.assign({},t),this._name=t.name,this._automaticDataCollectionEnabled=t.automaticDataCollectionEnabled,this._container=s,this.container.addComponent(new k("app",()=>this,"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this.checkDestroyed(),this._automaticDataCollectionEnabled=e}get name(){return this.checkDestroyed(),this._name}get options(){return this.checkDestroyed(),this._options}get config(){return this.checkDestroyed(),this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(e){this._isDeleted=e}checkDestroyed(){if(this.isDeleted)throw Be.create("app-deleted",{appName:this._name})}}function ze(e,t={}){let s=e;if("object"!=typeof t){t={name:t}}const a=Object.assign({name:Pe,automaticDataCollectionEnabled:!0},t),i=a.name;if("string"!=typeof i||!i)throw Be.create("bad-app-name",{appName:String(i)});if(s||(s=b()),!s)throw Be.create("no-options");const n=Re.get(i);if(n){if(_(s,n.options)&&_(a,n.config))return n;throw Be.create("duplicate-app",{appName:i})}const r=new I(i);for(const e of Ue.values())r.addComponent(e);const o=new qe(s,a,r);return Re.set(i,o),o}function Ve(e,t,s){var a;let i=null!==(a=Fe[e])&&void 0!==a?a:e;s&&(i+=`-${s}`);const n=i.match(/\s|\//),r=t.match(/\s|\//);if(n||r){const e=[`Unable to register library "${i}" with version "${t}":`];return n&&e.push(`library name "${i}" contains illegal characters (whitespace or "/")`),n&&r&&e.push("and"),r&&e.push(`version name "${t}" contains illegal characters (whitespace or "/")`),void ne.warn(e.join(" "))}Oe(new k(`${i}-version`,()=>({library:i,version:t}),"VERSION"))}const He="firebase-heartbeat-store";let We=null;function Ke(){return We||(We=Y("firebase-heartbeat-database",1,{upgrade:(e,t)=>{if(0===t)try{e.createObjectStore(He)}catch(e){console.warn(e)}}}).catch(e=>{throw Be.create("idb-open",{originalErrorMessage:e.message})})),We}async function $e(e,t){try{const s=(await Ke()).transaction(He,"readwrite"),a=s.objectStore(He);await a.put(t,Ge(e)),await s.done}catch(e){if(e instanceof C)ne.warn(e.message);else{const t=Be.create("idb-set",{originalErrorMessage:null==e?void 0:e.message});ne.warn(t.message)}}}function Ge(e){return`${e.name}!${e.options.appId}`}class Qe{constructor(e){this.container=e,this._heartbeatsCache=null;const t=this.container.getProvider("app").getImmediate();this._storage=new Xe(t),this._heartbeatsCachePromise=this._storage.read().then(e=>(this._heartbeatsCache=e,e))}async triggerHeartbeat(){var e,t;try{const s=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),a=Ye();if(null==(null===(e=this._heartbeatsCache)||void 0===e?void 0:e.heartbeats)&&(this._heartbeatsCache=await this._heartbeatsCachePromise,null==(null===(t=this._heartbeatsCache)||void 0===t?void 0:t.heartbeats)))return;if(this._heartbeatsCache.lastSentHeartbeatDate===a||this._heartbeatsCache.heartbeats.some(e=>e.date===a))return;if(this._heartbeatsCache.heartbeats.push({date:a,agent:s}),this._heartbeatsCache.heartbeats.length>30){const e=function(e){if(0===e.length)return-1;let t=0,s=e[0].date;for(let a=1;ae.agent===i.agent);if(e){if(e.dates.push(i.date),Je(s)>t){e.dates.pop();break}}else if(s.push({agent:i.agent,dates:[i.date]}),Je(s)>t){s.pop();break}a=a.slice(1)}return{heartbeatsToSend:s,unsentEntries:a}}(this._heartbeatsCache.heartbeats),i=m(JSON.stringify({version:2,heartbeats:s}));return this._heartbeatsCache.lastSentHeartbeatDate=t,a.length>0?(this._heartbeatsCache.heartbeats=a,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),i}catch(e){return ne.warn(e),""}}}function Ye(){return(new Date).toISOString().substring(0,10)}class Xe{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!y()&&w().then(()=>!0).catch(()=>!1)}async read(){if(await this._canUseIndexedDBPromise){const e=await async function(e){try{const t=(await Ke()).transaction(He),s=await t.objectStore(He).get(Ge(e));return await t.done,s}catch(e){if(e instanceof C)ne.warn(e.message);else{const t=Be.create("idb-get",{originalErrorMessage:null==e?void 0:e.message});ne.warn(t.message)}}}(this.app);return(null==e?void 0:e.heartbeats)?e:{heartbeats:[]}}return{heartbeats:[]}}async overwrite(e){var t;if(await this._canUseIndexedDBPromise){const s=await this.read();return $e(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:s.lastSentHeartbeatDate,heartbeats:e.heartbeats})}}async add(e){var t;if(await this._canUseIndexedDBPromise){const s=await this.read();return $e(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:s.lastSentHeartbeatDate,heartbeats:[...s.heartbeats,...e.heartbeats]})}}}function Je(e){return m(JSON.stringify({version:2,heartbeats:e})).length}var Ze;Ze="",Oe(new k("platform-logger",e=>new se(e),"PRIVATE")),Oe(new k("heartbeat",e=>new Qe(e),"PRIVATE")),Ve(ae,ie,Ze),Ve(ae,ie,"esm2017"),Ve("fire-js","");Ve("firebase","11.10.0","app");const et="@firebase/installations",tt="0.6.18",st=1e4,at=`w:${tt}`,it="FIS_v2",nt=36e5,rt=new S("installations","Installations",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"not-registered":"Firebase Installation is not registered.","installation-not-found":"Firebase Installation not found.","request-failed":'{$requestName} request failed with error "{$serverCode} {$serverStatus}: {$serverMessage}"',"app-offline":"Could not process request. Application offline.","delete-pending-registration":"Can't delete installation while there is a pending registration request."});function ot(e){return e instanceof C&&e.code.includes("request-failed")}function lt({projectId:e}){return`https://firebaseinstallations.googleapis.com/v1/projects/${e}/installations`}function ct(e){return{token:e.token,requestStatus:2,expiresIn:(t=e.expiresIn,Number(t.replace("s","000"))),creationTime:Date.now()};var t}async function ht(e,t){const s=(await t.json()).error;return rt.create("request-failed",{requestName:e,serverCode:s.code,serverMessage:s.message,serverStatus:s.status})}function dt({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function pt(e,{refreshToken:t}){const s=dt(e);return s.append("Authorization",function(e){return`${it} ${e}`}(t)),s}async function ut(e){const t=await e();return t.status>=500&&t.status<600?e():t}function mt(e){return new Promise(t=>{setTimeout(t,e)})}const gt=/^[cdef][\w-]{21}$/;function ft(){try{const e=new Uint8Array(17);(self.crypto||self.msCrypto).getRandomValues(e),e[0]=112+e[0]%16;const t=function(e){const t=(s=e,btoa(String.fromCharCode(...s)).replace(/\+/g,"-").replace(/\//g,"_"));var s;return t.substr(0,22)}(e);return gt.test(t)?t:""}catch(e){return""}}function vt(e){return`${e.appName}!${e.appId}`}const bt=new Map;function Et(e,t){const s=vt(e);yt(s,t),function(e,t){const s=Ct();s&&s.postMessage({key:e,fid:t});St()}(s,t)}function yt(e,t){const s=bt.get(e);if(s)for(const e of s)e(t)}let wt=null;function Ct(){return!wt&&"BroadcastChannel"in self&&(wt=new BroadcastChannel("[Firebase] FID Change"),wt.onmessage=e=>{yt(e.data.key,e.data.fid)}),wt}function St(){0===bt.size&&wt&&(wt.close(),wt=null)}const Mt="firebase-installations-store";let _t=null;function Tt(){return _t||(_t=Y("firebase-installations-database",1,{upgrade:(e,t)=>{if(0===t)e.createObjectStore(Mt)}})),_t}async function At(e,t){const s=vt(e),a=(await Tt()).transaction(Mt,"readwrite"),i=a.objectStore(Mt),n=await i.get(s);return await i.put(t,s),await a.done,n&&n.fid===t.fid||Et(e,t.fid),t}async function kt(e){const t=vt(e),s=(await Tt()).transaction(Mt,"readwrite");await s.objectStore(Mt).delete(t),await s.done}async function Nt(e,t){const s=vt(e),a=(await Tt()).transaction(Mt,"readwrite"),i=a.objectStore(Mt),n=await i.get(s),r=t(n);return void 0===r?await i.delete(s):await i.put(r,s),await a.done,!r||n&&n.fid===r.fid||Et(e,r.fid),r}async function Dt(e){let t;const s=await Nt(e.appConfig,s=>{const a=function(e){const t=e||{fid:ft(),registrationStatus:0};return Ft(t)}(s),i=function(e,t){if(0===t.registrationStatus){if(!navigator.onLine){return{installationEntry:t,registrationPromise:Promise.reject(rt.create("app-offline"))}}const s={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},a=async function(e,t){try{const s=await async function({appConfig:e,heartbeatServiceProvider:t},{fid:s}){const a=lt(e),i=dt(e),n=t.getImmediate({optional:!0});if(n){const e=await n.getHeartbeatsHeader();e&&i.append("x-firebase-client",e)}const r={fid:s,authVersion:it,appId:e.appId,sdkVersion:at},o={method:"POST",headers:i,body:JSON.stringify(r)},l=await ut(()=>fetch(a,o));if(l.ok){const e=await l.json();return{fid:e.fid||s,registrationStatus:2,refreshToken:e.refreshToken,authToken:ct(e.authToken)}}throw await ht("Create Installation",l)}(e,t);return At(e.appConfig,s)}catch(s){throw ot(s)&&409===s.customData.serverCode?await kt(e.appConfig):await At(e.appConfig,{fid:t.fid,registrationStatus:0}),s}}(e,s);return{installationEntry:s,registrationPromise:a}}return 1===t.registrationStatus?{installationEntry:t,registrationPromise:It(e)}:{installationEntry:t}}(e,a);return t=i.registrationPromise,i.installationEntry});return""===s.fid?{installationEntry:await t}:{installationEntry:s,registrationPromise:t}}async function It(e){let t=await Pt(e.appConfig);for(;1===t.registrationStatus;)await mt(100),t=await Pt(e.appConfig);if(0===t.registrationStatus){const{installationEntry:t,registrationPromise:s}=await Dt(e);return s||t}return t}function Pt(e){return Nt(e,e=>{if(!e)throw rt.create("installation-not-found");return Ft(e)})}function Ft(e){return 1===(t=e).registrationStatus&&t.registrationTime+stfetch(a,o));if(l.ok){return ct(await l.json())}throw await ht("Generate Auth Token",l)}async function xt(e,t=!1){let s;const a=await Nt(e.appConfig,a=>{if(!Lt(a))throw rt.create("not-registered");const i=a.authToken;if(!t&&function(e){return 2===e.requestStatus&&!function(e){const t=Date.now();return t{if(!Lt(e))throw rt.create("not-registered");const t=e.authToken;return 1===(s=t).requestStatus&&s.requestTime+st{const t=je(e.getProvider("app").getImmediate(),Bt).getImmediate();return{getId:()=>async function(e){const t=e,{installationEntry:s,registrationPromise:a}=await Dt(t);return a?a.catch(console.error):xt(t).catch(console.error),s.fid}(t),getToken:e=>Ot(t,e)}};Oe(new k(Bt,e=>{const t=e.getProvider("app").getImmediate(),s=function(e){if(!e||!e.options)throw jt("App Configuration");if(!e.name)throw jt("App Name");const t=["projectId","apiKey","appId"];for(const s of t)if(!e.options[s])throw jt(s);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}}(t);return{app:t,appConfig:s,heartbeatServiceProvider:je(t,"heartbeat"),_delete:()=>Promise.resolve()}},"PUBLIC")),Oe(new k("installations-internal",qt,"PRIVATE")),Ve(et,tt),Ve(et,tt,"esm2017");const zt="BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4",Vt="google.c.a.c_id",Ht=1e4;var Wt,Kt;function $t(e){const t=new Uint8Array(e);return btoa(String.fromCharCode(...t)).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function Gt(e){const t=(e+"=".repeat((4-e.length%4)%4)).replace(/\-/g,"+").replace(/_/g,"/"),s=atob(t),a=new Uint8Array(s.length);for(let e=0;e{if(0===t)e.createObjectStore(Xt)}})),Jt}async function es(e){const t=ss(e),s=await Zt(),a=await s.transaction(Xt).objectStore(Xt).get(t);if(a)return a;{const t=await async function(e){if("databases"in indexedDB){const e=(await indexedDB.databases()).map(e=>e.name);if(!e.includes(Qt))return null}let t=null;return(await Y(Qt,5,{upgrade:async(s,a,i,n)=>{var r;if(a<2)return;if(!s.objectStoreNames.contains(Yt))return;const o=n.objectStore(Yt),l=await o.index("fcmSenderId").get(e);if(await o.clear(),l)if(2===a){const e=l;if(!e.auth||!e.p256dh||!e.endpoint)return;t={token:e.fcmToken,createTime:null!==(r=e.createTime)&&void 0!==r?r:Date.now(),subscriptionOptions:{auth:e.auth,p256dh:e.p256dh,endpoint:e.endpoint,swScope:e.swScope,vapidKey:"string"==typeof e.vapidKey?e.vapidKey:$t(e.vapidKey)}}}else if(3===a){const e=l;t={token:e.fcmToken,createTime:e.createTime,subscriptionOptions:{auth:$t(e.auth),p256dh:$t(e.p256dh),endpoint:e.endpoint,swScope:e.swScope,vapidKey:$t(e.vapidKey)}}}else if(4===a){const e=l;t={token:e.fcmToken,createTime:e.createTime,subscriptionOptions:{auth:$t(e.auth),p256dh:$t(e.p256dh),endpoint:e.endpoint,swScope:e.swScope,vapidKey:$t(e.vapidKey)}}}}})).close(),await X(Qt),await X("fcm_vapid_details_db"),await X("undefined"),function(e){if(!e||!e.subscriptionOptions)return!1;const{subscriptionOptions:t}=e;return"number"==typeof e.createTime&&e.createTime>0&&"string"==typeof e.token&&e.token.length>0&&"string"==typeof t.auth&&t.auth.length>0&&"string"==typeof t.p256dh&&t.p256dh.length>0&&"string"==typeof t.endpoint&&t.endpoint.length>0&&"string"==typeof t.swScope&&t.swScope.length>0&&"string"==typeof t.vapidKey&&t.vapidKey.length>0}(t)?t:null}(e.appConfig.senderId);if(t)return await ts(e,t),t}}async function ts(e,t){const s=ss(e),a=(await Zt()).transaction(Xt,"readwrite");return await a.objectStore(Xt).put(t,s),await a.done,t}function ss({appConfig:e}){return e.appId}const as=new S("messaging","Messaging",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"only-available-in-window":"This method is available in a Window context.","only-available-in-sw":"This method is available in a service worker context.","permission-default":"The notification permission was not granted and dismissed instead.","permission-blocked":"The notification permission was not granted and blocked instead.","unsupported-browser":"This browser doesn't support the API's required to use the Firebase SDK.","indexed-db-unsupported":"This browser doesn't support indexedDb.open() (ex. Safari iFrame, Firefox Private Browsing, etc)","failed-service-worker-registration":"We are unable to register the default service worker. {$browserErrorMessage}","token-subscribe-failed":"A problem occurred while subscribing the user to FCM: {$errorInfo}","token-subscribe-no-token":"FCM returned no token when subscribing the user to push.","token-unsubscribe-failed":"A problem occurred while unsubscribing the user from FCM: {$errorInfo}","token-update-failed":"A problem occurred while updating the user from FCM: {$errorInfo}","token-update-no-token":"FCM returned no token when updating the user to push.","use-sw-after-get-token":"The useServiceWorker() method may only be called once and must be called before calling getToken() to ensure your service worker is used.","invalid-sw-registration":"The input to useServiceWorker() must be a ServiceWorkerRegistration.","invalid-bg-handler":"The input to setBackgroundMessageHandler() must be a function.","invalid-vapid-key":"The public VAPID key must be a string.","use-vapid-key-after-get-token":"The usePublicVapidKey() method may only be called once and must be called before calling getToken() to ensure your VAPID key is used."});async function is(e,t){const s={method:"DELETE",headers:await rs(e)};try{const a=await fetch(`${ns(e.appConfig)}/${t}`,s),i=await a.json();if(i.error){const e=i.error.message;throw as.create("token-unsubscribe-failed",{errorInfo:e})}}catch(e){throw as.create("token-unsubscribe-failed",{errorInfo:null==e?void 0:e.toString()})}}function ns({projectId:e}){return`https://fcmregistrations.googleapis.com/v1/projects/${e}/registrations`}async function rs({appConfig:e,installations:t}){const s=await t.getToken();return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e.apiKey,"x-goog-firebase-installations-auth":`FIS ${s}`})}function os({p256dh:e,auth:t,endpoint:s,vapidKey:a}){const i={web:{endpoint:s,auth:t,p256dh:e}};return a!==zt&&(i.web.applicationPubKey=a),i}async function ls(e){const t=await async function(e,t){const s=await e.pushManager.getSubscription();if(s)return s;return e.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:Gt(t)})}(e.swRegistration,e.vapidKey),s={vapidKey:e.vapidKey,swScope:e.swRegistration.scope,endpoint:t.endpoint,auth:$t(t.getKey("auth")),p256dh:$t(t.getKey("p256dh"))},a=await es(e.firebaseDependencies);if(a){if(function(e,t){const s=t.vapidKey===e.vapidKey,a=t.endpoint===e.endpoint,i=t.auth===e.auth,n=t.p256dh===e.p256dh;return s&&a&&i&&n}(a.subscriptionOptions,s))return Date.now()>=a.createTime+6048e5?async function(e,t){try{const s=await async function(e,t){const s=await rs(e),a=os(t.subscriptionOptions),i={method:"PATCH",headers:s,body:JSON.stringify(a)};let n;try{const s=await fetch(`${ns(e.appConfig)}/${t.token}`,i);n=await s.json()}catch(e){throw as.create("token-update-failed",{errorInfo:null==e?void 0:e.toString()})}if(n.error){const e=n.error.message;throw as.create("token-update-failed",{errorInfo:e})}if(!n.token)throw as.create("token-update-no-token");return n.token}(e.firebaseDependencies,t),a=Object.assign(Object.assign({},t),{token:s,createTime:Date.now()});return await ts(e.firebaseDependencies,a),s}catch(e){throw e}}(e,{token:a.token,createTime:Date.now(),subscriptionOptions:s}):a.token;try{await is(e.firebaseDependencies,a.token)}catch(e){console.warn(e)}return hs(e.firebaseDependencies,s)}return hs(e.firebaseDependencies,s)}async function cs(e){const t=await es(e.firebaseDependencies);t&&(await is(e.firebaseDependencies,t.token),await async function(e){const t=ss(e),s=(await Zt()).transaction(Xt,"readwrite");await s.objectStore(Xt).delete(t),await s.done}(e.firebaseDependencies));const s=await e.swRegistration.pushManager.getSubscription();return!s||s.unsubscribe()}async function hs(e,t){const s=await async function(e,t){const s=await rs(e),a=os(t),i={method:"POST",headers:s,body:JSON.stringify(a)};let n;try{const t=await fetch(ns(e.appConfig),i);n=await t.json()}catch(e){throw as.create("token-subscribe-failed",{errorInfo:null==e?void 0:e.toString()})}if(n.error){const e=n.error.message;throw as.create("token-subscribe-failed",{errorInfo:e})}if(!n.token)throw as.create("token-subscribe-no-token");return n.token}(e,t),a={token:s,createTime:Date.now(),subscriptionOptions:t};return await ts(e,a),a.token}function ds(e){const t={from:e.from,collapseKey:e.collapse_key,messageId:e.fcmMessageId};return function(e,t){if(!t.notification)return;e.notification={};const s=t.notification.title;s&&(e.notification.title=s);const a=t.notification.body;a&&(e.notification.body=a);const i=t.notification.image;i&&(e.notification.image=i);const n=t.notification.icon;n&&(e.notification.icon=n)}(t,e),function(e,t){if(!t.data)return;e.data=t.data}(t,e),function(e,t){var s,a,i,n,r;if(!t.fcmOptions&&!(null===(s=t.notification)||void 0===s?void 0:s.click_action))return;e.fcmOptions={};const o=null!==(i=null===(a=t.fcmOptions)||void 0===a?void 0:a.link)&&void 0!==i?i:null===(n=t.notification)||void 0===n?void 0:n.click_action;o&&(e.fcmOptions.link=o);const l=null===(r=t.fcmOptions)||void 0===r?void 0:r.analytics_label;l&&(e.fcmOptions.analyticsLabel=l)}(t,e),t}function ps(e){return as.create("missing-app-config-values",{valueName:e})}!function(e,t){const s=[];for(let a=0;a{}),await async function(e){return new Promise((t,s)=>{const a=setTimeout(()=>s(new Error("Service worker not registered after 10000 ms")),Ht),i=e.installing||e.waiting;e.active?(clearTimeout(a),t()):i?i.onstatechange=e=>{var s;"activated"===(null===(s=e.target)||void 0===s?void 0:s.state)&&(i.onstatechange=null,clearTimeout(a),t())}:(clearTimeout(a),s(new Error("No incoming service worker found.")))})}(e.swRegistration)}catch(e){throw as.create("failed-service-worker-registration",{browserErrorMessage:null==e?void 0:e.message})}}async function gs(e,t){if(!navigator)throw as.create("only-available-in-window");if("default"===Notification.permission&&await Notification.requestPermission(),"granted"!==Notification.permission)throw as.create("permission-blocked");return await async function(e,t){t?e.vapidKey=t:e.vapidKey||(e.vapidKey=zt)}(e,null==t?void 0:t.vapidKey),await async function(e,t){if(t||e.swRegistration||await ms(e),t||!e.swRegistration){if(!(t instanceof ServiceWorkerRegistration))throw as.create("invalid-sw-registration");e.swRegistration=t}}(e,null==t?void 0:t.serviceWorkerRegistration),ls(e)}async function fs(e,t,s){const a=function(e){switch(e){case Kt.NOTIFICATION_CLICKED:return"notification_open";case Kt.PUSH_RECEIVED:return"notification_foreground";default:throw new Error}}(t);(await e.firebaseDependencies.analyticsProvider.get()).logEvent(a,{message_id:s[Vt],message_name:s["google.c.a.c_l"],message_time:s["google.c.a.ts"],message_device_time:Math.floor(Date.now()/1e3)})}async function vs(e,t){const s=t.data;if(!s.isFirebaseMessaging)return;e.onMessageHandler&&s.messageType===Kt.PUSH_RECEIVED&&("function"==typeof e.onMessageHandler?e.onMessageHandler(ds(s)):e.onMessageHandler.next(ds(s)));const a=s.data;var i;"object"==typeof(i=a)&&i&&Vt in i&&"1"===a["google.c.a.e"]&&await fs(e,s.messageType,a)}const bs="@firebase/messaging",Es="0.12.22",ys=e=>{const t=e.getProvider("messaging").getImmediate();return{getToken:e=>gs(t,e)}};async function ws(){try{await w()}catch(e){return!1}return"undefined"!=typeof window&&y()&&!("undefined"==typeof navigator||!navigator.cookieEnabled)&&"serviceWorker"in navigator&&"PushManager"in window&&"Notification"in window&&"fetch"in window&&ServiceWorkerRegistration.prototype.hasOwnProperty("showNotification")&&PushSubscription.prototype.hasOwnProperty("getKey")}function Cs(e=function(e=Pe){const t=Re.get(e);if(!t&&e===Pe&&b())return ze();if(!t)throw Be.create("no-app",{appName:e});return t}()){return ws().then(e=>{if(!e)throw as.create("unsupported-browser")},e=>{throw as.create("indexed-db-unsupported")}),je(A(e),"messaging").getImmediate()}async function Ss(e,t){return gs(e=A(e),t)}function Ms(e){return async function(e){if(!navigator)throw as.create("only-available-in-window");return e.swRegistration||await ms(e),cs(e)}(e=A(e))}function _s(e,t){return function(e,t){if(!navigator)throw as.create("only-available-in-window");return e.onMessageHandler=t,()=>{e.onMessageHandler=null}}(e=A(e),t)}Oe(new k("messaging",e=>{const t=new us(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),e.getProvider("analytics-internal"));return navigator.serviceWorker.addEventListener("message",e=>vs(t,e)),t},"PUBLIC")),Oe(new k("messaging-internal",ys,"PRIVATE")),Ve(bs,Es),Ve(bs,Es,"esm2017");var Ts=r(4532);class As extends l().PureComponent{render(){return l().createElement("div",{className:"alert-container"},l().createElement("div",{className:"alert"},l().createElement("div",{className:"title"},this.props.title),l().createElement("div",{className:"content"},this.props.content),l().createElement("div",{className:"dialog-buttons"},this.props.onReject?l().createElement("button",{className:"outline",onClick:this.props.onReject},this.props.reject||l().createElement(h.FormattedMessage,{id:"button_cancel",defaultMessage:[{type:0,value:"Cancel"}]})):null,this.props.onConfirm?l().createElement("button",{className:"primary",onClick:this.props.onConfirm},this.props.confirm||l().createElement(h.FormattedMessage,{id:"button_ok",defaultMessage:[{type:0,value:"OK"}]})):null)))}}var ks=r(9027);const Ns=(0,h.defineMessages)({info:{id:"menu_item_info",defaultMessage:[{type:0,value:"Info"}]},clear_messages:{id:"menu_item_clear_messages",defaultMessage:[{type:0,value:"Clear messages"}]},clear_for_all:{id:"menu_item_clear_messages_for_all",defaultMessage:[{type:0,value:"Clear for All"}]},delete:{id:"menu_item_delete",defaultMessage:[{type:0,value:"Delete"}]},delete_for_all:{id:"menu_item_delete_for_all",defaultMessage:[{type:0,value:"Delete for All"}]},send_retry:{id:"menu_item_send_retry",defaultMessage:[{type:0,value:"Retry"}]},mute:{id:"menu_item_mute",defaultMessage:[{type:0,value:"Mute"}]},unmute:{id:"menu_item_unmute",defaultMessage:[{type:0,value:"Unmute"}]},reply:{id:"menu_item_reply",defaultMessage:[{type:0,value:"Reply"}]},forward:{id:"menu_item_forward",defaultMessage:[{type:0,value:"Forward"}]},edit:{id:"menu_item_edit",defaultMessage:[{type:0,value:"Edit"}]},topic_delete:{id:"menu_item_delete_topic",defaultMessage:[{type:0,value:"Delete"}]},topic_delete_warning:{id:"topic_delete_warning",defaultMessage:[{type:0,value:"Are you sure you want to delete this conversation? It cannot be undone."}]},delete_messages_warning:{id:"delete_messages_warning",defaultMessage:[{type:0,value:"Are you sure you want to delete all messages for everyone? It cannot be undone."}]},unblock:{id:"menu_item_unblock",defaultMessage:[{type:0,value:"Unblock"}]},block:{id:"menu_item_block",defaultMessage:[{type:0,value:"Block"}]},topic_block_warning:{id:"topic_block_warning",defaultMessage:[{type:0,value:"Are you sure you want to block this conversation?"}]},member_delete:{id:"menu_item_member_delete",defaultMessage:[{type:0,value:"Remove"}]},archive:{id:"menu_item_archive_topic",defaultMessage:[{type:0,value:"Archive"}]},unarchive:{id:"menu_item_restore_topic",defaultMessage:[{type:0,value:"Restore"}]},edit_permissions:{id:"menu_item_edit_permissions",defaultMessage:[{type:0,value:"Edit permissions"}]},clear_messages_warning:{id:"clear_messages_warning",defaultMessage:[{type:0,value:"Are you sure you want to clear all messages? It cannot be undone."}]},pin_message:{id:"pin_message",defaultMessage:[{type:0,value:"Pin"}]},unpin_message:{id:"unpin_message",defaultMessage:[{type:0,value:"Unpin"}]},pin_chat:{id:"pin_chat",defaultMessage:[{type:0,value:"Pin"}]},unpin_chat:{id:"unpin_chat",defaultMessage:[{type:0,value:"Unpin"}]}});class Ds extends l().Component{constructor(e){super(e),this.selfRef=l().createRef();const{formatMessage:t}=e.intl;this.handlePageClick=this.handlePageClick.bind(this),this.handleEscapeKey=this.handleEscapeKey.bind(this),this.handleClick=this.handleClick.bind(this),this.MenuItems={topic_info:{id:"topic_info",title:t(Ns.info),handler:null},messages_clear:{id:"messages_clear",title:t(Ns.clear_messages),handler:(s,a)=>e.onShowAlert(s.topicTitle||t(Ns.clear_messages),t(Ns.clear_messages_warning),e=>{this.deleteMessages(!0,!1,s,a)},null,!0,null)},messages_clear_hard:{id:"messages_clear_hard",title:t(Ns.clear_for_all),handler:(s,a)=>e.onShowAlert(s.topicTitle||t(Ns.clear_for_all),t(Ns.delete_messages_warning),e=>this.deleteMessages(!0,!0,s,a),null,!0,null)},message_delete:{id:"message_delete",title:t(Ns.delete),handler:(e,t)=>this.deleteMessages(!1,!1,e,t)},message_delete_hard:{id:"message_delete_hard",title:t(Ns.delete_for_all),handler:(e,t)=>this.deleteMessages(!1,!0,e,t)},message_delete_generic:{id:"message_delete_generic",title:t(Ns.delete),handler:(e,t)=>this.deleteMessages(!1,!0,e,t)},menu_item_send_retry:{id:"menu_item_send_retry",title:t(Ns.send_retry),handler:(e,t)=>this.retryMessage(e,t)},menu_item_reply:{id:"menu_item_reply",title:t(Ns.reply),handler:(e,t)=>this.replyToMessage(e,t)},menu_item_forward:{id:"menu_item_forward",title:t(Ns.forward),handler:e=>{}},menu_item_edit:{id:"menu_item_edit",title:t(Ns.edit),handler:(e,t)=>this.editMessage(e,t)},menu_item_pin:{id:"menu_item_pin",title:t(Ns.pin_message),handler:(e,t)=>this.pinMessage(!0,e,t)},menu_item_unpin:{id:"menu_item_unpin",title:t(Ns.unpin_message),handler:(e,t)=>this.pinMessage(!1,e,t)},topic_unmute:{id:"topic_unmute",title:t(Ns.unmute),handler:this.topicPermissionSetter.bind(this,"+P")},topic_mute:{id:"topic_mute",title:t(Ns.mute),handler:this.topicPermissionSetter.bind(this,"-P")},topic_unblock:{id:"topic_unblock",title:t(Ns.unblock),handler:this.topicPermissionSetter.bind(this,"+JP")},topic_block:{id:"topic_block",title:t(Ns.block),handler:(s,a)=>e.onShowAlert(s.topicTitle||t(Ns.block),t(Ns.topic_block_warning),e=>this.topicPermissionSetter("-JP",s,a).then(e=>(this.props.onTopicRemoved(s.topicName),e)),null,!0,null)},topic_delete:{id:"topic_delete",title:t(Ns.topic_delete),handler:(s,a)=>e.onShowAlert(s.topicTitle||t(Ns.topic_delete),t(Ns.topic_delete_warning),e=>{const t=this.props.tinode.getTopic(s.topicName);if(t)return t.delTopic(!0).catch(e=>{a&&a(e.message,"err")});console.warn("Topic not found: ",s.topicName)},null,!0,null)},topic_archive:{id:"topic_archive",title:t(Ns.archive),handler:(e,t)=>{const s=this.props.tinode.getTopic(e.topicName);if(s)return s.archive(!0).catch(e=>{t&&t(e.message,"err")});console.warn("Topic not found: ",e.topicName)}},topic_restore:{id:"topic_restore",title:t(Ns.unarchive),handler:(e,t)=>{const s=this.props.tinode.getTopic(e.topicName);if(s)return s.archive(!1).catch(e=>{t&&t(e.message,"err")});console.warn("Topic not found: ",e.topicName)}},topic_pin:{id:"topic_pin",title:t(Ns.pin_chat),handler:(e,t)=>{const s=this.props.tinode.getMeTopic();if(s)return s.pinTopic(e.topicName,!0).catch(e=>{t&&t(e.message,"err")});console.warn("'me' topic not found")}},topic_unpin:{id:"topic_unpin",title:t(Ns.unpin_chat),handler:(e,t)=>{const s=this.props.tinode.getMeTopic();if(s)return s.pinTopic(e.topicName,!1).catch(e=>{t&&t(e.message,"err")});console.warn("'me' topic not found")}},permissions:{id:"permissions",title:t(Ns.edit_permissions),handler:null},member_delete:{id:"member_delete",title:t(Ns.member_delete),handler:(e,t)=>{const s=this.props.tinode.getTopic(e.topicName);if(s&&e.user)return s.delSubscription(e.user).catch(e=>{t&&t(e.message,"err")});console.warn("Topic or user not found: '"+e.topicName+"', '"+e.user+"'")}},member_mute:{id:"member_mute",title:t(Ns.mute),handler:this.topicPermissionSetter.bind(this,"-P")},member_unmute:{id:"member_unmute",title:t(Ns.unmute),handler:this.topicPermissionSetter.bind(this,"+P")},member_block:{id:"member_block",title:t(Ns.block),handler:this.topicPermissionSetter.bind(this,"-JP")},member_unblock:{id:"member_unblock",title:t(Ns.unblock),handler:this.topicPermissionSetter.bind(this,"+JP")}}}componentDidMount(){document.addEventListener("mousedown",this.handlePageClick,!1),document.addEventListener("keyup",this.handleEscapeKey,!1)}componentWillUnmount(){document.removeEventListener("mousedown",this.handlePageClick,!1),document.removeEventListener("keyup",this.handleEscapeKey,!1)}handlePageClick(e){this.selfRef.current.contains(e.target)||(e.preventDefault(),e.stopPropagation(),this.props.hide())}handleEscapeKey(e){27===e.keyCode&&this.props.hide()}handleClick(e){e.preventDefault(),e.stopPropagation(),this.props.hide();let 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.error("Invalid menu item ID",e.currentTarget.dataset.id)}deleteMessages(e,t,s,a){const i=this.props.tinode.getTopic(s.topicName);if(!i)return void console.warn("Topic not found: ",s.topicName);if(!e&&i.cancelSend(s.seq))return;return(e?i.delMessagesAll(t):s.replace>0?i.delMessagesEdits(s.replace,t):i.delMessagesList([s.seq],t)).catch(e=>{a&&a(e.message,"err")})}retryMessage(e,t){const s=this.props.tinode.getTopic(e.topicName);if(!s||!s.flushMessage(e.seq))return;const a=s.createMessage(e.content,!1);return s.publishDraft(a).catch(e=>{t&&t(e.message,"err")})}pinMessage(e,t,s){const a=this.props.tinode.getTopic(t.topicName);a&&a.pinMessage(t.seq,e).catch(e=>s?s(e.message,"err"):null)}topicPermissionSetter(e,t,s){const a=this.props.tinode.getTopic(t.topicName);if(!a)return void console.warn("Topic not found",t.topicName);let i=a.updateMode(t.user,e);return s&&(i=i.catch(e=>s(e.message,"err"))),i}replyToMessage(e,t){e.pickReply(e.seq,e.content,e.userFrom,e.userName,t)}editMessage(e,t){e.editMessage(e.replace||e.seq,e.content,t)}render(){const e=[];let t=0;this.props.items.forEach(s=>{if("string"==typeof s&&(s=this.MenuItems[s]),s&&s.title){const a=s.disabled?"disabled":void 0;e.push("-"==s.title?l().createElement("li",{className:"separator",key:t}):l().createElement("li",{className:a,onClick:this.handleClick,"data-id":t,key:t},s.title))}t++});const s=12*ks.JS,a=ks.JS*(.7+2.5*e.length),i={left:(this.props.bounds.right-this.props.clickAt.x0}),this.props.onSearchContacts(t.length>0?t:Ts.Tinode.DEL_CHAR)}handleClear(e){e.preventDefault(),this.state.edited&&this.props.onSearchContacts(Ts.Tinode.DEL_CHAR),this.setState({search:"",edited:!1})}handleKeyDown(e){"Enter"===e.key?this.handleSearch(e):"Escape"===e.key&&this.handleClear()}render(){return l().createElement("div",{className:"panel-form"},l().createElement("div",{className:"panel-form-row"},l().createElement("i",{className:"material-icons search"},"search"),l().createElement("input",{className:"search",type:"text",placeholder:this.props.placeholder,value:this.state.search,onChange:this.handleSearchChange,onKeyDown:this.handleKeyDown,required:!0,autoFocus:!0}),this.state.search?l().createElement("a",{href:"#",onClick:this.handleClear},l().createElement("i",{className:"material-icons"},"highlight_off")):l().createElement("span",null,l().createElement("i",{className:"material-icons"}," "))))}}class Rs extends l().Component{constructor(e){super(e),this.state={query:null},this.handleEscapeKey=this.handleEscapeKey.bind(this),this.handleClose=this.handleClose.bind(this),this.handleSearchContacts=this.handleSearchContacts.bind(this),this.handleContactSelected=this.handleContactSelected.bind(this)}componentDidMount(){this.props.onInitFind()}handleEscapeKey(e){27===e.keyCode&&this.props.hide(!1)}handleClose(e){e.preventDefault(),this.props.hide(!1)}handleSearchContacts(e){this.setState({query:Ts.Tinode.isNullValue(e)?null:e}),this.props.onSearchContacts(e)}handleContactSelected(e){this.props.onTopicSelected(e),this.props.hide(!0)}render(){let e=null!=this.state.query?this.props.searchResults:this.props.contacts;return e=e.filter(e=>e.name!=this.props.topicSelected&&e.acs.isJoiner()&&e.acs.isWriter()),l().createElement("div",{className:"alert-container"},l().createElement("div",{className:"forward-dialog"},l().createElement("div",{className:"title with-control"},l().createElement("div",null,l().createElement(h.FormattedMessage,{id:"forward_to",defaultMessage:[{type:0,value:"Forward to"}],desription:"Title of the contact selector dialog when forwarding a message"})),l().createElement("div",null,l().createElement("a",{href:"#",onClick:this.handleClose},l().createElement("i",{className:"material-icons"},"close")))),l().createElement(h.FormattedMessage,{id:"forward_to_search_placeholder",defaultMessage:[{type:0,value:"Search contacts"}]},e=>l().createElement(Fs,{placeholder:e,onSearchContacts:this.handleSearchContacts})),l().createElement(h.FormattedMessage,{id:"search_no_results",defaultMessage:[{type:0,value:"Search returned no results"}]},t=>l().createElement(Ps.A,{tinode:this.props.tinode,contacts:e,myUserId:this.props.myUserId,emptyListMessage:t,showOnline:!1,showUnread:!1,showContextMenu:!1,onTopicSelected:this.handleContactSelected}))))}}var xs=r(635),Us=r(6904);const Ls="started";var Os=r(6110),js=r(8589);const Bs=new Audio("audio/call-in.m4a");class qs extends l().Component{constructor(e){super(e),this.state={topic:null,fullName:void 0,avatar:null,trustedBadges:[],previousMetaDesc:void 0},this.resetDesc=this.resetDesc.bind(this),this.onMetaDesc=this.onMetaDesc.bind(this),this.handleRejectCall=this.handleRejectCall.bind(this),this.handleAcceptCall=this.handleAcceptCall.bind(this),this.ringTimer=null}componentDidMount(){const e=this.props.tinode.getTopic(this.props.topic);e&&(this.resetDesc(e),2==this.props.callState&&(Bs.play().catch(e=>{}),this.ringTimer=setInterval(e=>{Bs.play().catch(e=>{})},2e3),this.props.onRinging(this.props.topic,this.props.seq)))}componentDidUpdate(e){const t=this.props.tinode.getTopic(e.topic);t&&(this.onMetaDesc!=t.onMetaDesc&&(this.previousMetaDesc=t.onMetaDesc,t.onMetaDesc=this.onMetaDesc),this.state.topic!=e.topic&&(this.setState({topic:e.topic}),this.resetDesc(t,e)))}componentWillUnmount(){null!=this.ringTimer&&(clearInterval(this.ringTimer),Bs.pause());const e=this.props.tinode.getTopic(this.props.topic);e&&(this.setState({topic:null}),e.onMetaDesc=this.previousMetaDesc)}resetDesc(e){const t=[];if(e.trusted)for(const[s,a]of Object.entries(e.trusted))a&&t.push(s);this.setState({fullName:(0,js.W5)(e.public?e.public.fn:void 0,ks.tS),avatar:(0,Os.to)(e.public?e.public.photo:null),trustedBadges:t})}onMetaDesc(e){const t=this.props.tinode.getTopic(this.props.topic);t&&(this.resetDesc(t),this.previousMetaDesc&&this.previousMetaDesc!=this.onMetaDesc&&this.previousMetaDesc(e))}handleAcceptCall(){this.props.onAcceptCall(this.props.topic)}handleRejectCall(){this.props.onReject(this.props.topic,this.props.seq),this.props.onClose()}render(){return l().createElement("div",{className:"alert-container"},l().createElement("div",{className:"incoming-call"},l().createElement("div",{className:"caller-card incoming pulse"},l().createElement("div",{className:"avatar-box"},l().createElement(Us.A,{tinode:this.props.tinode,avatar:this.state.avatar||!0,topic:this.props.topic,title:this.state.fullName})),l().createElement("div",{className:"caller-name"},(0,js.W5)(this.state.fullName,ks.mu),l().createElement(xs.A,{short:!0,trustedBadges:this.state.trustedBadges}))),l().createElement("div",{id:"controls"},2==this.props.callState?l().createElement(l().Fragment,null,l().createElement("button",{className:"danger",onClick:this.handleRejectCall},l().createElement("i",{className:"material-icons"},"call_end")),l().createElement("button",{className:"positive",onClick:this.handleAcceptCall},l().createElement("i",{className:"material-icons"},"call"))):null)))}}const zs=new Audio("audio/call-out.m4a");zs.loop=!0;const Vs=new Audio("audio/call-end.m4a");Vs.loop=!0;const Hs=new Audio("audio/dialing.m4a"),Ws="video:muted",Ks="video:unmuted",$s=(0,h.defineMessages)({already_in_call:{id:"already_in_call",defaultMessage:[{type:0,value:"You already in an ongoing call!"}]}});class Gs extends l().PureComponent{constructor(e){super(e),this.state={localStream:void 0,remoteStream:void 0,pc:void 0,dataChannel:void 0,previousOnInfo:void 0,waitingForPeer:!1,callInitialSetupComplete:!1,audioOnly:e.callAudioOnly,videoToggleInProgress:!1,remoteVideoLive:!1},this.localStreamConstraints={audio:!0,video:!e.callAudioOnly},this.isOutgoingCall=1==e.callState,this.containerRef=l().createRef(),this.localRef=l().createRef(),this.remoteRef=l().createRef(),this.remoteIceCandidatesCache=[],this.onInfo=this.onInfo.bind(this),this.start=this.start.bind(this),this.stop=this.stop.bind(this),this.createPeerConnection=this.createPeerConnection.bind(this),this.canSendOffer=this.canSendOffer.bind(this),this.drainRemoteIceCandidatesCache=this.drainRemoteIceCandidatesCache.bind(this),this.handleNegotiationNeededEvent=this.handleNegotiationNeededEvent.bind(this),this.handleICECandidateEvent=this.handleICECandidateEvent.bind(this),this.handleNewICECandidateMsg=this.handleNewICECandidateMsg.bind(this),this.handleICEConnectionStateChangeEvent=this.handleICEConnectionStateChangeEvent.bind(this),this.handleSignalingStateChangeEvent=this.handleSignalingStateChangeEvent.bind(this),this.handleICEGatheringStateChangeEvent=this.handleICEGatheringStateChangeEvent.bind(this),this.handleIceCandidateErrorEvent=this.handleIceCandidateErrorEvent.bind(this),this.handleTrackEvent=this.handleTrackEvent.bind(this),this.handleVideoOfferMsg=this.handleVideoOfferMsg.bind(this),this.handleVideoAnswerMsg=this.handleVideoAnswerMsg.bind(this),this.handleNewICECandidateMsg=this.handleNewICECandidateMsg.bind(this),this.reportError=this.reportError.bind(this),this.handleGetUserMediaError=this.handleGetUserMediaError.bind(this),this.stopTracks=this.stopTracks.bind(this),this.disconnectMedia=this.disconnectMedia.bind(this),this.handleCloseClick=this.handleCloseClick.bind(this),this.handleToggleCameraClick=this.handleToggleCameraClick.bind(this),this.handleToggleMicClick=this.handleToggleMicClick.bind(this),this.handleRemoteHangup=this.handleRemoteHangup.bind(this),this.handleVideoCallAccepted=this.handleVideoCallAccepted.bind(this),this.muteVideo=this.muteVideo.bind(this),this.unmuteVideo=this.unmuteVideo.bind(this),this.emptyVideoTrack=this.emptyVideoTrack.bind(this),this.handleDataChannelEvent=this.handleDataChannelEvent.bind(this),this.handleDataChannelError=this.handleDataChannelError.bind(this),this.handleDataChannelMessage=this.handleDataChannelMessage.bind(this),this.handleDataChannelOpen=this.handleDataChannelOpen.bind(this),this.handleDataChannelClose=this.handleDataChannelClose.bind(this),this.bounds={},this.dragStart=e=>{if(e.target.classList.contains("draggable")&&!window.matchMedia("(width<=640px)")&&this.props.minimized&&this.containerRef){e.stopPropagation(),this.containerRef.current.setPointerCapture(e.pointerId),this.containerRef.current.style.cursor="grabbing",this.bounds.left=this.containerRef.current.offsetLeft,this.bounds.top=this.containerRef.current.offsetTop,this.bounds.width=this.containerRef.current.offsetWidth,this.bounds.height=this.containerRef.current.offsetHeight;const t=this.containerRef.current.offsetParent;this.bounds.maxX=t.offsetWidth,this.bounds.maxY=t.offsetHeight}},this.drag=e=>{e.stopPropagation();const t=this.containerRef.current;this.props.minimized&&this.containerRef&&t.hasPointerCapture(e.pointerId)&&(this.bounds.left=Math.min(Math.max(this.bounds.left+e.movementX,0),this.bounds.maxX-this.bounds.width),this.bounds.top=Math.min(Math.max(this.bounds.top+e.movementY,0),this.bounds.maxY-this.bounds.height),t.style.left=`${this.bounds.left}px`,t.style.top=`${this.bounds.top}px`)},this.dragEnd=e=>{e.stopPropagation(),this.props.minimized&&this.containerRef&&(this.containerRef.current.releasePointerCapture(e.pointerId),this.containerRef.current.style.cursor="grab")}}componentDidMount(){const e=this.props.tinode.getTopic(this.props.topic);this.previousOnInfo=e.onInfo,e.onInfo=this.onInfo,1!=this.props.callState&&3!=this.props.callState||!this.localRef.current||this.start(),this.containerRef&&(this.containerRef.current.addEventListener("pointerdown",this.dragStart),this.containerRef.current.addEventListener("pointermove",this.drag),this.containerRef.current.addEventListener("pointerup",this.dragEnd))}componentWillUnmount(){this.props.tinode.getTopic(this.props.topic).onInfo=this.previousOnInfo,this.stop(),this.containerRef&&(this.containerRef.current.removeEventListener("pointerdown",this.dragStart),this.containerRef.current.removeEventListener("pointermove",this.drag),this.containerRef.current.removeEventListener("pointerup",this.dragEnd))}handleVideoCallAccepted(e){zs.pause();const t=this.createPeerConnection(!0),s=this.state.localStream;s.getTracks().forEach(e=>{t.addTrack(e,s),"video"==e.kind&&this.state.audioOnly&&(e.enabled=!1,e.stop(),s.removeTrack(e))})}onInfo(e){if("call"==e.what)switch(e.event){case"accept":this.handleVideoCallAccepted(e);break;case"answer":this.handleVideoAnswerMsg(e);break;case"ice-candidate":this.handleNewICECandidateMsg(e);break;case"hang-up":this.handleRemoteHangup(e);break;case"offer":this.handleVideoOfferMsg(e);break;case"ringing":zs.play().catch(e=>{});break;default:console.warn("Unknown call event",e.event)}}emptyVideoTrack(){const e=Object.assign(document.createElement("canvas"),{width:640,height:480});e.getContext("2d").fillRect(0,0,640,480);const t=e.captureStream(0);return Object.assign(t.getVideoTracks()[0],{enabled:!1})}start(){this.state.localStream?this.props.onError(this.props.intl.formatMessage($s.already_in_call),"info"):3!=this.props.callState?navigator.mediaDevices.getUserMedia(this.localStreamConstraints).then(e=>{this.localStreamConstraints.video||e.addTrack(this.emptyVideoTrack()),this.setState({localStream:e,waitingForPeer:!0}),this.localRef.current.srcObject=e,Hs.play(),this.props.onInvite(this.props.topic,this.props.seq,this.props.callState,this.props.callAudioOnly)}).catch(this.handleGetUserMediaError):this.props.onInvite(this.props.topic,this.props.seq,3,this.props.callAudioOnly)}stop(){Vs.pause(),Vs.currentTime=0,zs.pause(),zs.currentTime=0,this.stopTracks(this.state.localStream),this.stopTracks(this.state.remoteStream),this.disconnectMedia(this.localRef.current),this.disconnectMedia(this.remoteRef.current),this.state.pc&&(this.state.pc.ontrack=null,this.state.pc.onremovetrack=null,this.state.pc.onremovestream=null,this.state.pc.onicecandidate=null,this.state.pc.oniceconnectionstatechange=null,this.state.pc.onsignalingstatechange=null,this.state.pc.onicegatheringstatechange=null,this.state.pc.onnegotiationneeded=null,this.state.pc.onicecandidateerror=null,this.state.pc.ondatachannel=null,!this.state.dataChannel||"open"!=this.state.dataChannel.readyState&&"connecting"!=this.state.dataChannel.readyState||this.state.dataChannel.close(),this.state.pc.close()),this.setState({pc:null,waitingForPeer:!1})}disconnectMedia(e){e&&(e.srcObject=null,e.src="")}stopTracks(e){if(!e)return;let t=e.getTracks();t&&t.forEach(e=>{e.stop(),e.enabled=!1})}handleDataChannelError(e){console.error("data channel error",e)}handleDataChannelMessage(e){switch(e.data){case Ws:this.setState({remoteVideoLive:!1},e=>{this.remoteRef.current.srcObject=this.state.remoteStream});break;case Ks:this.setState({remoteVideoLive:!0},e=>{this.remoteRef.current.srcObject=this.state.remoteStream})}}handleDataChannelOpen(e){this.state.audioOnly||e.target.send(Ks)}handleDataChannelClose(e){console.log("close data channel:",e)}handleDataChannelEvent(e){console.log("data channel event:",e);const t=e.channel;t.onerror=this.handleDataChannelError,t.onmessage=this.handleDataChannelMessage,t.onopen=this.handleDataChannelOpen,t.onclose=this.handleDataChannelClose,this.setState({dataChannel:t})}createPeerConnection(e){const t=this.props.tinode.getServerParam("iceServers",null),s=t?new RTCPeerConnection({iceServers:t}):new RTCPeerConnection;s.onicecandidate=this.handleICECandidateEvent,s.oniceconnectionstatechange=this.handleICEConnectionStateChangeEvent,s.onicegatheringstatechange=this.handleICEGatheringStateChangeEvent,s.onsignalingstatechange=this.handleSignalingStateChangeEvent,s.onnegotiationneeded=this.handleNegotiationNeededEvent,s.onicecandidateerror=this.handleIceCandidateErrorEvent,s.ontrack=this.handleTrackEvent,s.ondatachannel=this.handleDataChannelEvent;let a={pc:s,waitingForPeer:!1};if(e){const e=s.createDataChannel("events",{ordered:!0});e.onerror=this.handleDataChannelError,e.onmessage=this.handleDataChannelMessage,e.onopen=this.handleDataChannelOpen,e.onclose=this.handleDataChannelClose,a.dataChannel=e}return this.setState(a),s}handleVideoAnswerMsg(e){const t=new RTCSessionDescription(e.payload);this.state.pc.setRemoteDescription(t).then(e=>{this.setState({callInitialSetupComplete:!0},e=>this.drainRemoteIceCandidatesCache())}).catch(e=>this.reportError(e))}reportError(e){this.props.onError(e.message,"err")}canSendOffer(){return this.isOutgoingCall||this.state.callInitialSetupComplete}handleNegotiationNeededEvent(e){const t=e.target;this.canSendOffer()&&t.createOffer().then(e=>t.setLocalDescription(e)).then(e=>{this.props.onSendOffer(this.props.topic,this.props.seq,t.localDescription.toJSON())}).catch(e=>this.reportError(e))}handleIceCandidateErrorEvent(e){console.warn("ICE candidate error:",e)}handleICECandidateEvent(e){e.candidate&&this.props.onIceCandidate(this.props.topic,this.props.seq,e.candidate.toJSON())}handleNewICECandidateMsg(e){const t=new RTCIceCandidate(e.payload);this.state.callInitialSetupComplete?this.state.pc.addIceCandidate(t).catch(e=>{t.candidate&&this.reportError(e),console.warn("Error adding new ice candidate",t,e)}):this.remoteIceCandidatesCache.push(t)}drainRemoteIceCandidatesCache(){this.remoteIceCandidatesCache.forEach(e=>{this.state.pc.addIceCandidate(e).catch(t=>{e.candidate&&this.reportError(t),console.warn("Error adding cached ice candidate",e,t)})}),this.remoteIceCandidatesCache=[]}handleICEConnectionStateChangeEvent(e){switch(e.target.iceConnectionState){case"closed":case"failed":this.handleCloseClick()}}handleSignalingStateChangeEvent(e){"closed"==e.target.signalingState&&this.handleCloseClick()}handleICEGatheringStateChangeEvent(e){}handleTrackEvent(e){this.remoteRef.current.srcObject=e.streams[0],this.setState({remoteStream:e.streams[0]})}handleGetUserMediaError(e){switch(console.error("Error opening camera and/or microphone",e),e.name){case"NotFoundError":default:this.reportError(e);case"SecurityError":case"PermissionDeniedError":}this.handleCloseClick()}handleVideoOfferMsg(e){let t=null;const s=this.state.pc?this.state.pc:this.createPeerConnection(!1),a=new RTCSessionDescription(e.payload);s.setRemoteDescription(a).then(e=>navigator.mediaDevices.getUserMedia(this.localStreamConstraints)).then(e=>{let a;this.localStreamConstraints.video||(a=this.emptyVideoTrack(),e.addTrack(a)),t=e,this.localRef.current.srcObject=e,this.setState({localStream:e}),t.getTracks().forEach(e=>{s.addTrack(e,t)}),a&&(a.enabled=!1,a.stop(),e.removeTrack(a))}).then(e=>s.createAnswer()).then(e=>s.setLocalDescription(e)).then(e=>{this.props.onSendAnswer(this.props.topic,this.props.seq,s.localDescription.toJSON()),this.setState({callInitialSetupComplete:!0},e=>this.drainRemoteIceCandidatesCache())}).catch(this.handleGetUserMediaError)}handleRemoteHangup(){this.state.waitingForPeer?(this.setState({waitingForPeer:!1}),zs.pause(),zs.currentTime=0,Vs.loop=!0,Vs.play().catch(e=>{}),setTimeout(e=>{this.handleCloseClick()},2e3)):this.handleCloseClick()}handleCloseClick(){this.stop(),this.props.onHangup(this.props.topic,this.props.seq)}muteVideo(){if(!this.state.pc||!this.state.dataChannel)return;const e=this.state.localStream,t=e.getVideoTracks()[0];t.enabled=!1,t.stop(),e.removeTrack(t),this.state.dataChannel.send(Ws),this.setState({videoToggleInProgress:!1})}unmuteVideo(){this.state.pc&&this.state.dataChannel&&navigator.mediaDevices.getUserMedia({video:!0}).then(e=>{this.localRef.current.srcObject=null;const t=this.state.pc.getSenders().find(e=>"video"==e.track.kind),s=e.getVideoTracks()[0];return e.removeTrack(s),this.state.localStream.addTrack(s),t.replaceTrack(s)}).then(e=>{this.localRef.current.srcObject=this.state.localStream,this.state.dataChannel.send(Ks)}).catch(e=>this.handleGetUserMediaError(e)).finally(e=>{this.setState({videoToggleInProgress:!1})})}handleToggleCameraClick(){if(this.state.videoToggleInProgress)return;const e=this.state.localStream.getVideoTracks();this.setState({videoToggleInProgress:!0},t=>{e&&e.length>0&&e[0].enabled&&"live"==e[0].readyState?this.muteVideo():this.unmuteVideo(),this.setState({audioOnly:!this.state.audioOnly})})}handleToggleMicClick(){const e=this.state.localStream.getAudioTracks()[0];e.enabled=!e.enabled,this.forceUpdate()}render(){const e=this.state.localStream&&this.state.localStream.getAudioTracks(),t=!this.state.audioOnly&&this.state.localStream&&this.state.localStream.getVideoTracks(),s=!this.state.pc||!this.state.dataChannel||!(e&&e[0]),a=e&&e[0]&&e[0].enabled?"mic":"mic_off",i=t&&t[0]&&t[0].enabled&&"live"==t[0].readyState?"videocam":"videocam_off",n=(0,js.W5)(this.props.title,ks.mu),r=this.state.waitingForPeer?" pulse":"";let o=!1;if(this.remoteRef.current&&this.remoteRef.current.srcObject&&this.state.remoteVideoLive){const e=this.remoteRef.current.srcObject;if(e.getVideoTracks().length>0){const t=e.getVideoTracks()[0];o=t.enabled&&"live"==t.readyState}}const c=this.props.minimized?"minimized":null,d=this.props.minimized?"fullscreen":"fullscreen_exit";return l().createElement("div",{id:"video-container",className:c,ref:this.containerRef},l().createElement("div",{id:"video-container-panel"},l().createElement("div",{className:"call-party self",disabled:this.state.audioOnly||this.props.minimized},l().createElement("video",{ref:this.localRef,autoPlay:!0,muted:!0,playsInline:!0}),l().createElement("div",{className:"caller-name inactive"},l().createElement(h.FormattedMessage,{id:"calls_you_label",defaultMessage:[{type:0,value:"You"}]}))),l().createElement("div",{className:"call-party peer",disabled:!o},o?l().createElement(l().Fragment,null,l().createElement("video",{ref:this.remoteRef,autoPlay:!0,playsInline:!0}),l().createElement("div",{className:"caller-name inactive"},n)):l().createElement(l().Fragment,null,l().createElement("audio",{ref:this.remoteRef,autoPlay:!0}),l().createElement("div",{className:`caller-card${r} draggable`},l().createElement("div",{className:"avatar-box"},l().createElement(Us.A,{tinode:this.props.tinode,avatar:this.props.avatar,topic:this.props.topic,title:this.props.title})),l().createElement("div",{className:"caller-name"},n))))),l().createElement("button",{className:"full-screen",onClick:this.props.onToggleMinimize},l().createElement("i",{className:"material-icons"},d)),l().createElement("div",{id:"controls",className:c},l().createElement("button",{className:"danger",onClick:this.handleCloseClick},l().createElement("i",{className:"material-icons"},"call_end")),l().createElement("button",{className:"secondary",onClick:this.handleToggleCameraClick,disabled:s},l().createElement("i",{className:"material-icons"},i)),l().createElement("button",{className:"secondary",onClick:this.handleToggleMicClick,disabled:s},l().createElement("i",{className:"material-icons"},a))))}}var Qs=(0,h.injectIntl)(Gs),Ys=r(9895),Xs=r(3540);class Js extends l().Component{constructor(e){super(e),this.state={downloader:null,progress:0},this.downloadFile=this.downloadFile.bind(this),this.handleCancel=this.handleCancel.bind(this)}downloadFile(e,t,s){if(!e)return void this.props.onError("Invalid download URL '"+e+"'");const a=this.props.tinode.getLargeFileHelper();this.setState({downloader:a}),a.download(e,t,s,e=>this.setState({progress:e/this.props.size}),e=>this.props.onError(e,"err")).then(e=>this.setState({downloader:null,progress:0})).catch(e=>{e&&this.props.onError("Error downloading file: "+e.message,"err"),this.setState({downloader:null,progress:0})})}handleCancel(){this.props.uploading?this.props.onCancelUpload():this.state.downloader&&this.state.downloader.cancel()}render(){let e=this.props.filename||"file_attachment";e.length>36&&(e=e.substr(0,16)+"..."+e.substr(-16));let t,s,a=this.props.size>0?l().createElement("span",{className:"small gray"},"(",(0,js.lX)(this.props.size),")"):null;this.props.uploading||this.state.downloader||!(0,Xs.YO)(this.props.downloadUrl)?(t=(0,Xs.Jf)(this.props.downloadUrl),s=null):(t="#",s=e=>{e.preventDefault(),this.downloadFile(this.props.downloadUrl,this.props.filename,this.props.mimetype)});const i=l().createElement(l().Fragment,null,l().createElement("i",{className:"material-icons"},"file_download")," ",l().createElement(h.FormattedMessage,{id:"save_attachment",defaultMessage:[{type:0,value:"save"}]}));return l().createElement("div",{className:"attachment"},l().createElement("div",null,l().createElement("i",{className:"material-icons big gray"},"insert_drive_file")),l().createElement("div",{className:"flex-column"},l().createElement("div",null,e," ",a),this.props.uploading||this.state.downloader?l().createElement(Ys.A,{progress:this.props.uploading?this.props.progress:this.state.progress,onCancel:this.handleCancel}):l().createElement("div",null,t?l().createElement("a",{href:t,download:this.props.filename,onClick:s},i):l().createElement("span",{className:"light-gray"},i))))}}const Zs=(0,h.defineMessages)({message_sending:{id:"message_sending",defaultMessage:[{type:0,value:"sending..."}]},message_sending_failed:{id:"message_sending_failed",defaultMessage:[{type:0,value:"failed"}]},message_edited_marker:{id:"message_edited_marker",defaultMessage:[{type:0,value:", edited"}]}});class ea extends l().PureComponent{render(){const{formatMessage:e}=this.props.intl;let t;t=this.props.received<=Ts.Tinode.MESSAGE_STATUS_SENDING?e(Zs.message_sending):this.props.received==Ts.Tinode.MESSAGE_STATUS_FAILED||this.props.received==Ts.Tinode.MESSAGE_STATUS_FATAL?e(Zs.message_sending_failed):this.props.timestamp.toLocaleTimeString(this.props.intl.locale,{timeStyle:"short"});const s=(0,Xs.LO)(this.props.received),a=s?l().createElement("i",{className:"material-icons small "+s.color},s.name):null,i=this.props.edited?e(Zs.message_edited_marker):null;return l().createElement("span",{className:"timestamp"},t,i," ",a)}}var ta=(0,h.injectIntl)(ea),sa=r(8043);function aa(){return aa=Object.assign?Object.assign.bind():function(e){for(var t=1;tTs.Tinode.MESSAGE_STATUS_FATAL){if(this.props.userIsWriter&&(t.push("menu_item_reply"),!this.props.response)){let e=!1;Ts.Drafty.entities(this.props.content,(t,s,a)=>(e=["AU","EX","FM","IM","VC","VD"].includes(a),e)),e||Ts.Drafty.styles(this.props.content,t=>(e=["QQ"].includes(t),e)),e||t.push("menu_item_edit")}this.props.userIsAdmin&&t.push(this.props.pinned?"menu_item_unpin":"menu_item_pin")}t.push("menu_item_forward"),this.props.showContextMenu({seq:this.props.seq,replace:this.props.edited?parseInt(this.props.edited.split(":")[1]):0,content:this.props.content,userFrom:this.props.userFrom,userName:this.props.userName,y:e.pageY,x:e.pageX,pickReply:this.props.pickReply,editMessage:this.props.editMessage,timestamp:this.props.timestamp},t)}handleProgress(e){this.setState({progress:e})}handleCancelUpload(){this.props.onCancelUpload(this.props.seq,this.props.uploader)}handleQuoteClick(e){e.preventDefault(),e.stopPropagation();const t=this.props.replyToSeq;t&&this.props.onQuoteClick(t)}render(){const e=this.props.sequence+" "+(this.props.response?"left":"right"),t="single"==this.props.sequence||"last"==this.props.sequence?"bubble tip":"bubble",s=this.props.userAvatar||!0;let a="message-content";const i=this.props.isGroup&&this.props.response&&("single"==this.props.sequence||"last"==this.props.sequence);let n=this.props.content;const r=[];if(this.props.mimeType==Ts.Drafty.getContentType()&&Ts.Drafty.isValid(n)){Ts.Drafty.attachments(n,(e,t)=>{Ts.Drafty.isFormResponseType(e.mime)||r.push(l().createElement(Js,{tinode:this.props.tinode,downloadUrl:Ts.Drafty.getDownloadUrl(e),filename:e.name,uploading:Ts.Drafty.isProcessing(e),mimetype:e.mime,size:Ts.Drafty.getEntitySize(e),progress:this.state.progress,onCancelUpload:this.handleCancelUpload,onError:this.props.onError,key:t}))},this);const e=Ts.Drafty.format(n,sa.e3,this.formatterContext);n=l().createElement(l().Fragment,null,e)}else"string"==typeof n?new RegExp("^\\p{RGI_Emoji}{1,5}$","v").test(n||"")&&(a+=" emoji-"+(n||"").match(/(?:👨🏻‍❤️‍💋‍👨🏻|👨🏻‍❤️‍💋‍👨🏼|👨🏻‍❤️‍💋‍👨🏽|👨🏻‍❤️‍💋‍👨🏾|👨🏻‍❤️‍💋‍👨🏿|👨🏼‍❤️‍💋‍👨🏻|👨🏼‍❤️‍💋‍👨🏼|👨🏼‍❤️‍💋‍👨🏽|👨🏼‍❤️‍💋‍👨🏾|👨🏼‍❤️‍💋‍👨🏿|👨🏽‍❤️‍💋‍👨🏻|👨🏽‍❤️‍💋‍👨🏼|👨🏽‍❤️‍💋‍👨🏽|👨🏽‍❤️‍💋‍👨🏾|👨🏽‍❤️‍💋‍👨🏿|👨🏾‍❤️‍💋‍👨🏻|👨🏾‍❤️‍💋‍👨🏼|👨🏾‍❤️‍💋‍👨🏽|👨🏾‍❤️‍💋‍👨🏾|👨🏾‍❤️‍💋‍👨🏿|👨🏿‍❤️‍💋‍👨🏻|👨🏿‍❤️‍💋‍👨🏼|👨🏿‍❤️‍💋‍👨🏽|👨🏿‍❤️‍💋‍👨🏾|👨🏿‍❤️‍💋‍👨🏿|👩🏻‍❤️‍💋‍👨🏻|👩🏻‍❤️‍💋‍👨🏼|👩🏻‍❤️‍💋‍👨🏽|👩🏻‍❤️‍💋‍👨🏾|👩🏻‍❤️‍💋‍👨🏿|👩🏻‍❤️‍💋‍👩🏻|👩🏻‍❤️‍💋‍👩🏼|👩🏻‍❤️‍💋‍👩🏽|👩🏻‍❤️‍💋‍👩🏾|👩🏻‍❤️‍💋‍👩🏿|👩🏼‍❤️‍💋‍👨🏻|👩🏼‍❤️‍💋‍👨🏼|👩🏼‍❤️‍💋‍👨🏽|👩🏼‍❤️‍💋‍👨🏾|👩🏼‍❤️‍💋‍👨🏿|👩🏼‍❤️‍💋‍👩🏻|👩🏼‍❤️‍💋‍👩🏼|👩🏼‍❤️‍💋‍👩🏽|👩🏼‍❤️‍💋‍👩🏾|👩🏼‍❤️‍💋‍👩🏿|👩🏽‍❤️‍💋‍👨🏻|👩🏽‍❤️‍💋‍👨🏼|👩🏽‍❤️‍💋‍👨🏽|👩🏽‍❤️‍💋‍👨🏾|👩🏽‍❤️‍💋‍👨🏿|👩🏽‍❤️‍💋‍👩🏻|👩🏽‍❤️‍💋‍👩🏼|👩🏽‍❤️‍💋‍👩🏽|👩🏽‍❤️‍💋‍👩🏾|👩🏽‍❤️‍💋‍👩🏿|👩🏾‍❤️‍💋‍👨🏻|👩🏾‍❤️‍💋‍👨🏼|👩🏾‍❤️‍💋‍👨🏽|👩🏾‍❤️‍💋‍👨🏾|👩🏾‍❤️‍💋‍👨🏿|👩🏾‍❤️‍💋‍👩🏻|👩🏾‍❤️‍💋‍👩🏼|👩🏾‍❤️‍💋‍👩🏽|👩🏾‍❤️‍💋‍👩🏾|👩🏾‍❤️‍💋‍👩🏿|👩🏿‍❤️‍💋‍👨🏻|👩🏿‍❤️‍💋‍👨🏼|👩🏿‍❤️‍💋‍👨🏽|👩🏿‍❤️‍💋‍👨🏾|👩🏿‍❤️‍💋‍👨🏿|👩🏿‍❤️‍💋‍👩🏻|👩🏿‍❤️‍💋‍👩🏼|👩🏿‍❤️‍💋‍👩🏽|👩🏿‍❤️‍💋‍👩🏾|👩🏿‍❤️‍💋‍👩🏿|🧑🏻‍❤️‍💋‍🧑🏼|🧑🏻‍❤️‍💋‍🧑🏽|🧑🏻‍❤️‍💋‍🧑🏾|🧑🏻‍❤️‍💋‍🧑🏿|🧑🏼‍❤️‍💋‍🧑🏻|🧑🏼‍❤️‍💋‍🧑🏽|🧑🏼‍❤️‍💋‍🧑🏾|🧑🏼‍❤️‍💋‍🧑🏿|🧑🏽‍❤️‍💋‍🧑🏻|🧑🏽‍❤️‍💋‍🧑🏼|🧑🏽‍❤️‍💋‍🧑🏾|🧑🏽‍❤️‍💋‍🧑🏿|🧑🏾‍❤️‍💋‍🧑🏻|🧑🏾‍❤️‍💋‍🧑🏼|🧑🏾‍❤️‍💋‍🧑🏽|🧑🏾‍❤️‍💋‍🧑🏿|🧑🏿‍❤️‍💋‍🧑🏻|🧑🏿‍❤️‍💋‍🧑🏼|🧑🏿‍❤️‍💋‍🧑🏽|🧑🏿‍❤️‍💋‍🧑🏾|🏴󠁧󠁢󠁥󠁮󠁧󠁿|🏴󠁧󠁢󠁳󠁣󠁴󠁿|🏴󠁧󠁢󠁷󠁬󠁳󠁿|👨🏻‍❤️‍👨🏻|👨🏻‍❤️‍👨🏼|👨🏻‍❤️‍👨🏽|👨🏻‍❤️‍👨🏾|👨🏻‍❤️‍👨🏿|👨🏻‍🐰‍👨🏼|👨🏻‍🐰‍👨🏽|👨🏻‍🐰‍👨🏾|👨🏻‍🐰‍👨🏿|👨🏻‍🤝‍👨🏼|👨🏻‍🤝‍👨🏽|👨🏻‍🤝‍👨🏾|👨🏻‍🤝‍👨🏿|👨🏻‍🫯‍👨🏼|👨🏻‍🫯‍👨🏽|👨🏻‍🫯‍👨🏾|👨🏻‍🫯‍👨🏿|👨🏼‍❤️‍👨🏻|👨🏼‍❤️‍👨🏼|👨🏼‍❤️‍👨🏽|👨🏼‍❤️‍👨🏾|👨🏼‍❤️‍👨🏿|👨🏼‍🐰‍👨🏻|👨🏼‍🐰‍👨🏽|👨🏼‍🐰‍👨🏾|👨🏼‍🐰‍👨🏿|👨🏼‍🤝‍👨🏻|👨🏼‍🤝‍👨🏽|👨🏼‍🤝‍👨🏾|👨🏼‍🤝‍👨🏿|👨🏼‍🫯‍👨🏻|👨🏼‍🫯‍👨🏽|👨🏼‍🫯‍👨🏾|👨🏼‍🫯‍👨🏿|👨🏽‍❤️‍👨🏻|👨🏽‍❤️‍👨🏼|👨🏽‍❤️‍👨🏽|👨🏽‍❤️‍👨🏾|👨🏽‍❤️‍👨🏿|👨🏽‍🐰‍👨🏻|👨🏽‍🐰‍👨🏼|👨🏽‍🐰‍👨🏾|👨🏽‍🐰‍👨🏿|👨🏽‍🤝‍👨🏻|👨🏽‍🤝‍👨🏼|👨🏽‍🤝‍👨🏾|👨🏽‍🤝‍👨🏿|👨🏽‍🫯‍👨🏻|👨🏽‍🫯‍👨🏼|👨🏽‍🫯‍👨🏾|👨🏽‍🫯‍👨🏿|👨🏾‍❤️‍👨🏻|👨🏾‍❤️‍👨🏼|👨🏾‍❤️‍👨🏽|👨🏾‍❤️‍👨🏾|👨🏾‍❤️‍👨🏿|👨🏾‍🐰‍👨🏻|👨🏾‍🐰‍👨🏼|👨🏾‍🐰‍👨🏽|👨🏾‍🐰‍👨🏿|👨🏾‍🤝‍👨🏻|👨🏾‍🤝‍👨🏼|👨🏾‍🤝‍👨🏽|👨🏾‍🤝‍👨🏿|👨🏾‍🫯‍👨🏻|👨🏾‍🫯‍👨🏼|👨🏾‍🫯‍👨🏽|👨🏾‍🫯‍👨🏿|👨🏿‍❤️‍👨🏻|👨🏿‍❤️‍👨🏼|👨🏿‍❤️‍👨🏽|👨🏿‍❤️‍👨🏾|👨🏿‍❤️‍👨🏿|👨🏿‍🐰‍👨🏻|👨🏿‍🐰‍👨🏼|👨🏿‍🐰‍👨🏽|👨🏿‍🐰‍👨🏾|👨🏿‍🤝‍👨🏻|👨🏿‍🤝‍👨🏼|👨🏿‍🤝‍👨🏽|👨🏿‍🤝‍👨🏾|👨🏿‍🫯‍👨🏻|👨🏿‍🫯‍👨🏼|👨🏿‍🫯‍👨🏽|👨🏿‍🫯‍👨🏾|👩🏻‍❤️‍👨🏻|👩🏻‍❤️‍👨🏼|👩🏻‍❤️‍👨🏽|👩🏻‍❤️‍👨🏾|👩🏻‍❤️‍👨🏿|👩🏻‍❤️‍👩🏻|👩🏻‍❤️‍👩🏼|👩🏻‍❤️‍👩🏽|👩🏻‍❤️‍👩🏾|👩🏻‍❤️‍👩🏿|👩🏻‍🐰‍👩🏼|👩🏻‍🐰‍👩🏽|👩🏻‍🐰‍👩🏾|👩🏻‍🐰‍👩🏿|👩🏻‍🤝‍👨🏼|👩🏻‍🤝‍👨🏽|👩🏻‍🤝‍👨🏾|👩🏻‍🤝‍👨🏿|👩🏻‍🤝‍👩🏼|👩🏻‍🤝‍👩🏽|👩🏻‍🤝‍👩🏾|👩🏻‍🤝‍👩🏿|👩🏻‍🫯‍👩🏼|👩🏻‍🫯‍👩🏽|👩🏻‍🫯‍👩🏾|👩🏻‍🫯‍👩🏿|👩🏼‍❤️‍👨🏻|👩🏼‍❤️‍👨🏼|👩🏼‍❤️‍👨🏽|👩🏼‍❤️‍👨🏾|👩🏼‍❤️‍👨🏿|👩🏼‍❤️‍👩🏻|👩🏼‍❤️‍👩🏼|👩🏼‍❤️‍👩🏽|👩🏼‍❤️‍👩🏾|👩🏼‍❤️‍👩🏿|👩🏼‍🐰‍👩🏻|👩🏼‍🐰‍👩🏽|👩🏼‍🐰‍👩🏾|👩🏼‍🐰‍👩🏿|👩🏼‍🤝‍👨🏻|👩🏼‍🤝‍👨🏽|👩🏼‍🤝‍👨🏾|👩🏼‍🤝‍👨🏿|👩🏼‍🤝‍👩🏻|👩🏼‍🤝‍👩🏽|👩🏼‍🤝‍👩🏾|👩🏼‍🤝‍👩🏿|👩🏼‍🫯‍👩🏻|👩🏼‍🫯‍👩🏽|👩🏼‍🫯‍👩🏾|👩🏼‍🫯‍👩🏿|👩🏽‍❤️‍👨🏻|👩🏽‍❤️‍👨🏼|👩🏽‍❤️‍👨🏽|👩🏽‍❤️‍👨🏾|👩🏽‍❤️‍👨🏿|👩🏽‍❤️‍👩🏻|👩🏽‍❤️‍👩🏼|👩🏽‍❤️‍👩🏽|👩🏽‍❤️‍👩🏾|👩🏽‍❤️‍👩🏿|👩🏽‍🐰‍👩🏻|👩🏽‍🐰‍👩🏼|👩🏽‍🐰‍👩🏾|👩🏽‍🐰‍👩🏿|👩🏽‍🤝‍👨🏻|👩🏽‍🤝‍👨🏼|👩🏽‍🤝‍👨🏾|👩🏽‍🤝‍👨🏿|👩🏽‍🤝‍👩🏻|👩🏽‍🤝‍👩🏼|👩🏽‍🤝‍👩🏾|👩🏽‍🤝‍👩🏿|👩🏽‍🫯‍👩🏻|👩🏽‍🫯‍👩🏼|👩🏽‍🫯‍👩🏾|👩🏽‍🫯‍👩🏿|👩🏾‍❤️‍👨🏻|👩🏾‍❤️‍👨🏼|👩🏾‍❤️‍👨🏽|👩🏾‍❤️‍👨🏾|👩🏾‍❤️‍👨🏿|👩🏾‍❤️‍👩🏻|👩🏾‍❤️‍👩🏼|👩🏾‍❤️‍👩🏽|👩🏾‍❤️‍👩🏾|👩🏾‍❤️‍👩🏿|👩🏾‍🐰‍👩🏻|👩🏾‍🐰‍👩🏼|👩🏾‍🐰‍👩🏽|👩🏾‍🐰‍👩🏿|👩🏾‍🤝‍👨🏻|👩🏾‍🤝‍👨🏼|👩🏾‍🤝‍👨🏽|👩🏾‍🤝‍👨🏿|👩🏾‍🤝‍👩🏻|👩🏾‍🤝‍👩🏼|👩🏾‍🤝‍👩🏽|👩🏾‍🤝‍👩🏿|👩🏾‍🫯‍👩🏻|👩🏾‍🫯‍👩🏼|👩🏾‍🫯‍👩🏽|👩🏾‍🫯‍👩🏿|👩🏿‍❤️‍👨🏻|👩🏿‍❤️‍👨🏼|👩🏿‍❤️‍👨🏽|👩🏿‍❤️‍👨🏾|👩🏿‍❤️‍👨🏿|👩🏿‍❤️‍👩🏻|👩🏿‍❤️‍👩🏼|👩🏿‍❤️‍👩🏽|👩🏿‍❤️‍👩🏾|👩🏿‍❤️‍👩🏿|👩🏿‍🐰‍👩🏻|👩🏿‍🐰‍👩🏼|👩🏿‍🐰‍👩🏽|👩🏿‍🐰‍👩🏾|👩🏿‍🤝‍👨🏻|👩🏿‍🤝‍👨🏼|👩🏿‍🤝‍👨🏽|👩🏿‍🤝‍👨🏾|👩🏿‍🤝‍👩🏻|👩🏿‍🤝‍👩🏼|👩🏿‍🤝‍👩🏽|👩🏿‍🤝‍👩🏾|👩🏿‍🫯‍👩🏻|👩🏿‍🫯‍👩🏼|👩🏿‍🫯‍👩🏽|👩🏿‍🫯‍👩🏾|🧑🏻‍❤️‍🧑🏼|🧑🏻‍❤️‍🧑🏽|🧑🏻‍❤️‍🧑🏾|🧑🏻‍❤️‍🧑🏿|🧑🏻‍🐰‍🧑🏼|🧑🏻‍🐰‍🧑🏽|🧑🏻‍🐰‍🧑🏾|🧑🏻‍🐰‍🧑🏿|🧑🏻‍🤝‍🧑🏻|🧑🏻‍🤝‍🧑🏼|🧑🏻‍🤝‍🧑🏽|🧑🏻‍🤝‍🧑🏾|🧑🏻‍🤝‍🧑🏿|🧑🏻‍🫯‍🧑🏼|🧑🏻‍🫯‍🧑🏽|🧑🏻‍🫯‍🧑🏾|🧑🏻‍🫯‍🧑🏿|🧑🏼‍❤️‍🧑🏻|🧑🏼‍❤️‍🧑🏽|🧑🏼‍❤️‍🧑🏾|🧑🏼‍❤️‍🧑🏿|🧑🏼‍🐰‍🧑🏻|🧑🏼‍🐰‍🧑🏽|🧑🏼‍🐰‍🧑🏾|🧑🏼‍🐰‍🧑🏿|🧑🏼‍🤝‍🧑🏻|🧑🏼‍🤝‍🧑🏼|🧑🏼‍🤝‍🧑🏽|🧑🏼‍🤝‍🧑🏾|🧑🏼‍🤝‍🧑🏿|🧑🏼‍🫯‍🧑🏻|🧑🏼‍🫯‍🧑🏽|🧑🏼‍🫯‍🧑🏾|🧑🏼‍🫯‍🧑🏿|🧑🏽‍❤️‍🧑🏻|🧑🏽‍❤️‍🧑🏼|🧑🏽‍❤️‍🧑🏾|🧑🏽‍❤️‍🧑🏿|🧑🏽‍🐰‍🧑🏻|🧑🏽‍🐰‍🧑🏼|🧑🏽‍🐰‍🧑🏾|🧑🏽‍🐰‍🧑🏿|🧑🏽‍🤝‍🧑🏻|🧑🏽‍🤝‍🧑🏼|🧑🏽‍🤝‍🧑🏽|🧑🏽‍🤝‍🧑🏾|🧑🏽‍🤝‍🧑🏿|🧑🏽‍🫯‍🧑🏻|🧑🏽‍🫯‍🧑🏼|🧑🏽‍🫯‍🧑🏾|🧑🏽‍🫯‍🧑🏿|🧑🏾‍❤️‍🧑🏻|🧑🏾‍❤️‍🧑🏼|🧑🏾‍❤️‍🧑🏽|🧑🏾‍❤️‍🧑🏿|🧑🏾‍🐰‍🧑🏻|🧑🏾‍🐰‍🧑🏼|🧑🏾‍🐰‍🧑🏽|🧑🏾‍🐰‍🧑🏿|🧑🏾‍🤝‍🧑🏻|🧑🏾‍🤝‍🧑🏼|🧑🏾‍🤝‍🧑🏽|🧑🏾‍🤝‍🧑🏾|🧑🏾‍🤝‍🧑🏿|🧑🏾‍🫯‍🧑🏻|🧑🏾‍🫯‍🧑🏼|🧑🏾‍🫯‍🧑🏽|🧑🏾‍🫯‍🧑🏿|🧑🏿‍❤️‍🧑🏻|🧑🏿‍❤️‍🧑🏼|🧑🏿‍❤️‍🧑🏽|🧑🏿‍❤️‍🧑🏾|🧑🏿‍🐰‍🧑🏻|🧑🏿‍🐰‍🧑🏼|🧑🏿‍🐰‍🧑🏽|🧑🏿‍🐰‍🧑🏾|🧑🏿‍🤝‍🧑🏻|🧑🏿‍🤝‍🧑🏼|🧑🏿‍🤝‍🧑🏽|🧑🏿‍🤝‍🧑🏾|🧑🏿‍🤝‍🧑🏿|🧑🏿‍🫯‍🧑🏻|🧑🏿‍🫯‍🧑🏼|🧑🏿‍🫯‍🧑🏽|🧑🏿‍🫯‍🧑🏾|👨‍❤️‍💋‍👨|👨‍👨‍👦‍👦|👨‍👨‍👧‍👦|👨‍👨‍👧‍👧|👨‍👩‍👦‍👦|👨‍👩‍👧‍👦|👨‍👩‍👧‍👧|👩‍❤️‍💋‍👨|👩‍❤️‍💋‍👩|👩‍👩‍👦‍👦|👩‍👩‍👧‍👦|👩‍👩‍👧‍👧|🧑‍🧑‍🧒‍🧒|🏃🏻‍♀️‍➡️|🏃🏻‍♂️‍➡️|🏃🏼‍♀️‍➡️|🏃🏼‍♂️‍➡️|🏃🏽‍♀️‍➡️|🏃🏽‍♂️‍➡️|🏃🏾‍♀️‍➡️|🏃🏾‍♂️‍➡️|🏃🏿‍♀️‍➡️|🏃🏿‍♂️‍➡️|👨🏻‍🦯‍➡️|👨🏻‍🦼‍➡️|👨🏻‍🦽‍➡️|👨🏼‍🦯‍➡️|👨🏼‍🦼‍➡️|👨🏼‍🦽‍➡️|👨🏽‍🦯‍➡️|👨🏽‍🦼‍➡️|👨🏽‍🦽‍➡️|👨🏾‍🦯‍➡️|👨🏾‍🦼‍➡️|👨🏾‍🦽‍➡️|👨🏿‍🦯‍➡️|👨🏿‍🦼‍➡️|👨🏿‍🦽‍➡️|👩🏻‍🦯‍➡️|👩🏻‍🦼‍➡️|👩🏻‍🦽‍➡️|👩🏼‍🦯‍➡️|👩🏼‍🦼‍➡️|👩🏼‍🦽‍➡️|👩🏽‍🦯‍➡️|👩🏽‍🦼‍➡️|👩🏽‍🦽‍➡️|👩🏾‍🦯‍➡️|👩🏾‍🦼‍➡️|👩🏾‍🦽‍➡️|👩🏿‍🦯‍➡️|👩🏿‍🦼‍➡️|👩🏿‍🦽‍➡️|🚶🏻‍♀️‍➡️|🚶🏻‍♂️‍➡️|🚶🏼‍♀️‍➡️|🚶🏼‍♂️‍➡️|🚶🏽‍♀️‍➡️|🚶🏽‍♂️‍➡️|🚶🏾‍♀️‍➡️|🚶🏾‍♂️‍➡️|🚶🏿‍♀️‍➡️|🚶🏿‍♂️‍➡️|🧎🏻‍♀️‍➡️|🧎🏻‍♂️‍➡️|🧎🏼‍♀️‍➡️|🧎🏼‍♂️‍➡️|🧎🏽‍♀️‍➡️|🧎🏽‍♂️‍➡️|🧎🏾‍♀️‍➡️|🧎🏾‍♂️‍➡️|🧎🏿‍♀️‍➡️|🧎🏿‍♂️‍➡️|🧑🏻‍🦯‍➡️|🧑🏻‍🦼‍➡️|🧑🏻‍🦽‍➡️|🧑🏼‍🦯‍➡️|🧑🏼‍🦼‍➡️|🧑🏼‍🦽‍➡️|🧑🏽‍🦯‍➡️|🧑🏽‍🦼‍➡️|🧑🏽‍🦽‍➡️|🧑🏾‍🦯‍➡️|🧑🏾‍🦼‍➡️|🧑🏾‍🦽‍➡️|🧑🏿‍🦯‍➡️|🧑🏿‍🦼‍➡️|🧑🏿‍🦽‍➡️|🫱🏻‍🫲🏼|🫱🏻‍🫲🏽|🫱🏻‍🫲🏾|🫱🏻‍🫲🏿|🫱🏼‍🫲🏻|🫱🏼‍🫲🏽|🫱🏼‍🫲🏾|🫱🏼‍🫲🏿|🫱🏽‍🫲🏻|🫱🏽‍🫲🏼|🫱🏽‍🫲🏾|🫱🏽‍🫲🏿|🫱🏾‍🫲🏻|🫱🏾‍🫲🏼|🫱🏾‍🫲🏽|🫱🏾‍🫲🏿|🫱🏿‍🫲🏻|🫱🏿‍🫲🏼|🫱🏿‍🫲🏽|🫱🏿‍🫲🏾|🏃‍♀️‍➡️|🏃‍♂️‍➡️|👨‍❤️‍👨|👨‍👦‍👦|👨‍👧‍👦|👨‍👧‍👧|👨‍👨‍👦|👨‍👨‍👧|👨‍👩‍👦|👨‍👩‍👧|👨‍🦯‍➡️|👨‍🦼‍➡️|👨‍🦽‍➡️|👩‍❤️‍👨|👩‍❤️‍👩|👩‍👦‍👦|👩‍👧‍👦|👩‍👧‍👧|👩‍👩‍👦|👩‍👩‍👧|👩‍🦯‍➡️|👩‍🦼‍➡️|👩‍🦽‍➡️|🚶‍♀️‍➡️|🚶‍♂️‍➡️|🧎‍♀️‍➡️|🧎‍♂️‍➡️|🧑‍🤝‍🧑|🧑‍🦯‍➡️|🧑‍🦼‍➡️|🧑‍🦽‍➡️|🧑‍🧑‍🧒|🧑‍🧒‍🧒|🏃🏻‍♀️|🏃🏻‍♂️|🏃🏻‍➡️|🏃🏼‍♀️|🏃🏼‍♂️|🏃🏼‍➡️|🏃🏽‍♀️|🏃🏽‍♂️|🏃🏽‍➡️|🏃🏾‍♀️|🏃🏾‍♂️|🏃🏾‍➡️|🏃🏿‍♀️|🏃🏿‍♂️|🏃🏿‍➡️|🏄🏻‍♀️|🏄🏻‍♂️|🏄🏼‍♀️|🏄🏼‍♂️|🏄🏽‍♀️|🏄🏽‍♂️|🏄🏾‍♀️|🏄🏾‍♂️|🏄🏿‍♀️|🏄🏿‍♂️|🏊🏻‍♀️|🏊🏻‍♂️|🏊🏼‍♀️|🏊🏼‍♂️|🏊🏽‍♀️|🏊🏽‍♂️|🏊🏾‍♀️|🏊🏾‍♂️|🏊🏿‍♀️|🏊🏿‍♂️|🏋🏻‍♀️|🏋🏻‍♂️|🏋🏼‍♀️|🏋🏼‍♂️|🏋🏽‍♀️|🏋🏽‍♂️|🏋🏾‍♀️|🏋🏾‍♂️|🏋🏿‍♀️|🏋🏿‍♂️|🏌🏻‍♀️|🏌🏻‍♂️|🏌🏼‍♀️|🏌🏼‍♂️|🏌🏽‍♀️|🏌🏽‍♂️|🏌🏾‍♀️|🏌🏾‍♂️|🏌🏿‍♀️|🏌🏿‍♂️|👁️‍🗨️|👨🏻‍⚕️|👨🏻‍⚖️|👨🏻‍✈️|👨🏻‍🌾|👨🏻‍🍳|👨🏻‍🍼|👨🏻‍🎓|👨🏻‍🎤|👨🏻‍🎨|👨🏻‍🏫|👨🏻‍🏭|👨🏻‍💻|👨🏻‍💼|👨🏻‍🔧|👨🏻‍🔬|👨🏻‍🚀|👨🏻‍🚒|👨🏻‍🦯|👨🏻‍🦰|👨🏻‍🦱|👨🏻‍🦲|👨🏻‍🦳|👨🏻‍🦼|👨🏻‍🦽|👨🏼‍⚕️|👨🏼‍⚖️|👨🏼‍✈️|👨🏼‍🌾|👨🏼‍🍳|👨🏼‍🍼|👨🏼‍🎓|👨🏼‍🎤|👨🏼‍🎨|👨🏼‍🏫|👨🏼‍🏭|👨🏼‍💻|👨🏼‍💼|👨🏼‍🔧|👨🏼‍🔬|👨🏼‍🚀|👨🏼‍🚒|👨🏼‍🦯|👨🏼‍🦰|👨🏼‍🦱|👨🏼‍🦲|👨🏼‍🦳|👨🏼‍🦼|👨🏼‍🦽|👨🏽‍⚕️|👨🏽‍⚖️|👨🏽‍✈️|👨🏽‍🌾|👨🏽‍🍳|👨🏽‍🍼|👨🏽‍🎓|👨🏽‍🎤|👨🏽‍🎨|👨🏽‍🏫|👨🏽‍🏭|👨🏽‍💻|👨🏽‍💼|👨🏽‍🔧|👨🏽‍🔬|👨🏽‍🚀|👨🏽‍🚒|👨🏽‍🦯|👨🏽‍🦰|👨🏽‍🦱|👨🏽‍🦲|👨🏽‍🦳|👨🏽‍🦼|👨🏽‍🦽|👨🏾‍⚕️|👨🏾‍⚖️|👨🏾‍✈️|👨🏾‍🌾|👨🏾‍🍳|👨🏾‍🍼|👨🏾‍🎓|👨🏾‍🎤|👨🏾‍🎨|👨🏾‍🏫|👨🏾‍🏭|👨🏾‍💻|👨🏾‍💼|👨🏾‍🔧|👨🏾‍🔬|👨🏾‍🚀|👨🏾‍🚒|👨🏾‍🦯|👨🏾‍🦰|👨🏾‍🦱|👨🏾‍🦲|👨🏾‍🦳|👨🏾‍🦼|👨🏾‍🦽|👨🏿‍⚕️|👨🏿‍⚖️|👨🏿‍✈️|👨🏿‍🌾|👨🏿‍🍳|👨🏿‍🍼|👨🏿‍🎓|👨🏿‍🎤|👨🏿‍🎨|👨🏿‍🏫|👨🏿‍🏭|👨🏿‍💻|👨🏿‍💼|👨🏿‍🔧|👨🏿‍🔬|👨🏿‍🚀|👨🏿‍🚒|👨🏿‍🦯|👨🏿‍🦰|👨🏿‍🦱|👨🏿‍🦲|👨🏿‍🦳|👨🏿‍🦼|👨🏿‍🦽|👩🏻‍⚕️|👩🏻‍⚖️|👩🏻‍✈️|👩🏻‍🌾|👩🏻‍🍳|👩🏻‍🍼|👩🏻‍🎓|👩🏻‍🎤|👩🏻‍🎨|👩🏻‍🏫|👩🏻‍🏭|👩🏻‍💻|👩🏻‍💼|👩🏻‍🔧|👩🏻‍🔬|👩🏻‍🚀|👩🏻‍🚒|👩🏻‍🦯|👩🏻‍🦰|👩🏻‍🦱|👩🏻‍🦲|👩🏻‍🦳|👩🏻‍🦼|👩🏻‍🦽|👩🏼‍⚕️|👩🏼‍⚖️|👩🏼‍✈️|👩🏼‍🌾|👩🏼‍🍳|👩🏼‍🍼|👩🏼‍🎓|👩🏼‍🎤|👩🏼‍🎨|👩🏼‍🏫|👩🏼‍🏭|👩🏼‍💻|👩🏼‍💼|👩🏼‍🔧|👩🏼‍🔬|👩🏼‍🚀|👩🏼‍🚒|👩🏼‍🦯|👩🏼‍🦰|👩🏼‍🦱|👩🏼‍🦲|👩🏼‍🦳|👩🏼‍🦼|👩🏼‍🦽|👩🏽‍⚕️|👩🏽‍⚖️|👩🏽‍✈️|👩🏽‍🌾|👩🏽‍🍳|👩🏽‍🍼|👩🏽‍🎓|👩🏽‍🎤|👩🏽‍🎨|👩🏽‍🏫|👩🏽‍🏭|👩🏽‍💻|👩🏽‍💼|👩🏽‍🔧|👩🏽‍🔬|👩🏽‍🚀|👩🏽‍🚒|👩🏽‍🦯|👩🏽‍🦰|👩🏽‍🦱|👩🏽‍🦲|👩🏽‍🦳|👩🏽‍🦼|👩🏽‍🦽|👩🏾‍⚕️|👩🏾‍⚖️|👩🏾‍✈️|👩🏾‍🌾|👩🏾‍🍳|👩🏾‍🍼|👩🏾‍🎓|👩🏾‍🎤|👩🏾‍🎨|👩🏾‍🏫|👩🏾‍🏭|👩🏾‍💻|👩🏾‍💼|👩🏾‍🔧|👩🏾‍🔬|👩🏾‍🚀|👩🏾‍🚒|👩🏾‍🦯|👩🏾‍🦰|👩🏾‍🦱|👩🏾‍🦲|👩🏾‍🦳|👩🏾‍🦼|👩🏾‍🦽|👩🏿‍⚕️|👩🏿‍⚖️|👩🏿‍✈️|👩🏿‍🌾|👩🏿‍🍳|👩🏿‍🍼|👩🏿‍🎓|👩🏿‍🎤|👩🏿‍🎨|👩🏿‍🏫|👩🏿‍🏭|👩🏿‍💻|👩🏿‍💼|👩🏿‍🔧|👩🏿‍🔬|👩🏿‍🚀|👩🏿‍🚒|👩🏿‍🦯|👩🏿‍🦰|👩🏿‍🦱|👩🏿‍🦲|👩🏿‍🦳|👩🏿‍🦼|👩🏿‍🦽|👮🏻‍♀️|👮🏻‍♂️|👮🏼‍♀️|👮🏼‍♂️|👮🏽‍♀️|👮🏽‍♂️|👮🏾‍♀️|👮🏾‍♂️|👮🏿‍♀️|👮🏿‍♂️|👯🏻‍♀️|👯🏻‍♂️|👯🏼‍♀️|👯🏼‍♂️|👯🏽‍♀️|👯🏽‍♂️|👯🏾‍♀️|👯🏾‍♂️|👯🏿‍♀️|👯🏿‍♂️|👰🏻‍♀️|👰🏻‍♂️|👰🏼‍♀️|👰🏼‍♂️|👰🏽‍♀️|👰🏽‍♂️|👰🏾‍♀️|👰🏾‍♂️|👰🏿‍♀️|👰🏿‍♂️|👱🏻‍♀️|👱🏻‍♂️|👱🏼‍♀️|👱🏼‍♂️|👱🏽‍♀️|👱🏽‍♂️|👱🏾‍♀️|👱🏾‍♂️|👱🏿‍♀️|👱🏿‍♂️|👳🏻‍♀️|👳🏻‍♂️|👳🏼‍♀️|👳🏼‍♂️|👳🏽‍♀️|👳🏽‍♂️|👳🏾‍♀️|👳🏾‍♂️|👳🏿‍♀️|👳🏿‍♂️|👷🏻‍♀️|👷🏻‍♂️|👷🏼‍♀️|👷🏼‍♂️|👷🏽‍♀️|👷🏽‍♂️|👷🏾‍♀️|👷🏾‍♂️|👷🏿‍♀️|👷🏿‍♂️|💁🏻‍♀️|💁🏻‍♂️|💁🏼‍♀️|💁🏼‍♂️|💁🏽‍♀️|💁🏽‍♂️|💁🏾‍♀️|💁🏾‍♂️|💁🏿‍♀️|💁🏿‍♂️|💂🏻‍♀️|💂🏻‍♂️|💂🏼‍♀️|💂🏼‍♂️|💂🏽‍♀️|💂🏽‍♂️|💂🏾‍♀️|💂🏾‍♂️|💂🏿‍♀️|💂🏿‍♂️|💆🏻‍♀️|💆🏻‍♂️|💆🏼‍♀️|💆🏼‍♂️|💆🏽‍♀️|💆🏽‍♂️|💆🏾‍♀️|💆🏾‍♂️|💆🏿‍♀️|💆🏿‍♂️|💇🏻‍♀️|💇🏻‍♂️|💇🏼‍♀️|💇🏼‍♂️|💇🏽‍♀️|💇🏽‍♂️|💇🏾‍♀️|💇🏾‍♂️|💇🏿‍♀️|💇🏿‍♂️|🕵🏻‍♀️|🕵🏻‍♂️|🕵🏼‍♀️|🕵🏼‍♂️|🕵🏽‍♀️|🕵🏽‍♂️|🕵🏾‍♀️|🕵🏾‍♂️|🕵🏿‍♀️|🕵🏿‍♂️|🙅🏻‍♀️|🙅🏻‍♂️|🙅🏼‍♀️|🙅🏼‍♂️|🙅🏽‍♀️|🙅🏽‍♂️|🙅🏾‍♀️|🙅🏾‍♂️|🙅🏿‍♀️|🙅🏿‍♂️|🙆🏻‍♀️|🙆🏻‍♂️|🙆🏼‍♀️|🙆🏼‍♂️|🙆🏽‍♀️|🙆🏽‍♂️|🙆🏾‍♀️|🙆🏾‍♂️|🙆🏿‍♀️|🙆🏿‍♂️|🙇🏻‍♀️|🙇🏻‍♂️|🙇🏼‍♀️|🙇🏼‍♂️|🙇🏽‍♀️|🙇🏽‍♂️|🙇🏾‍♀️|🙇🏾‍♂️|🙇🏿‍♀️|🙇🏿‍♂️|🙋🏻‍♀️|🙋🏻‍♂️|🙋🏼‍♀️|🙋🏼‍♂️|🙋🏽‍♀️|🙋🏽‍♂️|🙋🏾‍♀️|🙋🏾‍♂️|🙋🏿‍♀️|🙋🏿‍♂️|🙍🏻‍♀️|🙍🏻‍♂️|🙍🏼‍♀️|🙍🏼‍♂️|🙍🏽‍♀️|🙍🏽‍♂️|🙍🏾‍♀️|🙍🏾‍♂️|🙍🏿‍♀️|🙍🏿‍♂️|🙎🏻‍♀️|🙎🏻‍♂️|🙎🏼‍♀️|🙎🏼‍♂️|🙎🏽‍♀️|🙎🏽‍♂️|🙎🏾‍♀️|🙎🏾‍♂️|🙎🏿‍♀️|🙎🏿‍♂️|🚣🏻‍♀️|🚣🏻‍♂️|🚣🏼‍♀️|🚣🏼‍♂️|🚣🏽‍♀️|🚣🏽‍♂️|🚣🏾‍♀️|🚣🏾‍♂️|🚣🏿‍♀️|🚣🏿‍♂️|🚴🏻‍♀️|🚴🏻‍♂️|🚴🏼‍♀️|🚴🏼‍♂️|🚴🏽‍♀️|🚴🏽‍♂️|🚴🏾‍♀️|🚴🏾‍♂️|🚴🏿‍♀️|🚴🏿‍♂️|🚵🏻‍♀️|🚵🏻‍♂️|🚵🏼‍♀️|🚵🏼‍♂️|🚵🏽‍♀️|🚵🏽‍♂️|🚵🏾‍♀️|🚵🏾‍♂️|🚵🏿‍♀️|🚵🏿‍♂️|🚶🏻‍♀️|🚶🏻‍♂️|🚶🏻‍➡️|🚶🏼‍♀️|🚶🏼‍♂️|🚶🏼‍➡️|🚶🏽‍♀️|🚶🏽‍♂️|🚶🏽‍➡️|🚶🏾‍♀️|🚶🏾‍♂️|🚶🏾‍➡️|🚶🏿‍♀️|🚶🏿‍♂️|🚶🏿‍➡️|🤦🏻‍♀️|🤦🏻‍♂️|🤦🏼‍♀️|🤦🏼‍♂️|🤦🏽‍♀️|🤦🏽‍♂️|🤦🏾‍♀️|🤦🏾‍♂️|🤦🏿‍♀️|🤦🏿‍♂️|🤵🏻‍♀️|🤵🏻‍♂️|🤵🏼‍♀️|🤵🏼‍♂️|🤵🏽‍♀️|🤵🏽‍♂️|🤵🏾‍♀️|🤵🏾‍♂️|🤵🏿‍♀️|🤵🏿‍♂️|🤷🏻‍♀️|🤷🏻‍♂️|🤷🏼‍♀️|🤷🏼‍♂️|🤷🏽‍♀️|🤷🏽‍♂️|🤷🏾‍♀️|🤷🏾‍♂️|🤷🏿‍♀️|🤷🏿‍♂️|🤸🏻‍♀️|🤸🏻‍♂️|🤸🏼‍♀️|🤸🏼‍♂️|🤸🏽‍♀️|🤸🏽‍♂️|🤸🏾‍♀️|🤸🏾‍♂️|🤸🏿‍♀️|🤸🏿‍♂️|🤹🏻‍♀️|🤹🏻‍♂️|🤹🏼‍♀️|🤹🏼‍♂️|🤹🏽‍♀️|🤹🏽‍♂️|🤹🏾‍♀️|🤹🏾‍♂️|🤹🏿‍♀️|🤹🏿‍♂️|🤼🏻‍♀️|🤼🏻‍♂️|🤼🏼‍♀️|🤼🏼‍♂️|🤼🏽‍♀️|🤼🏽‍♂️|🤼🏾‍♀️|🤼🏾‍♂️|🤼🏿‍♀️|🤼🏿‍♂️|🤽🏻‍♀️|🤽🏻‍♂️|🤽🏼‍♀️|🤽🏼‍♂️|🤽🏽‍♀️|🤽🏽‍♂️|🤽🏾‍♀️|🤽🏾‍♂️|🤽🏿‍♀️|🤽🏿‍♂️|🤾🏻‍♀️|🤾🏻‍♂️|🤾🏼‍♀️|🤾🏼‍♂️|🤾🏽‍♀️|🤾🏽‍♂️|🤾🏾‍♀️|🤾🏾‍♂️|🤾🏿‍♀️|🤾🏿‍♂️|🦸🏻‍♀️|🦸🏻‍♂️|🦸🏼‍♀️|🦸🏼‍♂️|🦸🏽‍♀️|🦸🏽‍♂️|🦸🏾‍♀️|🦸🏾‍♂️|🦸🏿‍♀️|🦸🏿‍♂️|🦹🏻‍♀️|🦹🏻‍♂️|🦹🏼‍♀️|🦹🏼‍♂️|🦹🏽‍♀️|🦹🏽‍♂️|🦹🏾‍♀️|🦹🏾‍♂️|🦹🏿‍♀️|🦹🏿‍♂️|🧍🏻‍♀️|🧍🏻‍♂️|🧍🏼‍♀️|🧍🏼‍♂️|🧍🏽‍♀️|🧍🏽‍♂️|🧍🏾‍♀️|🧍🏾‍♂️|🧍🏿‍♀️|🧍🏿‍♂️|🧎🏻‍♀️|🧎🏻‍♂️|🧎🏻‍➡️|🧎🏼‍♀️|🧎🏼‍♂️|🧎🏼‍➡️|🧎🏽‍♀️|🧎🏽‍♂️|🧎🏽‍➡️|🧎🏾‍♀️|🧎🏾‍♂️|🧎🏾‍➡️|🧎🏿‍♀️|🧎🏿‍♂️|🧎🏿‍➡️|🧏🏻‍♀️|🧏🏻‍♂️|🧏🏼‍♀️|🧏🏼‍♂️|🧏🏽‍♀️|🧏🏽‍♂️|🧏🏾‍♀️|🧏🏾‍♂️|🧏🏿‍♀️|🧏🏿‍♂️|🧑🏻‍⚕️|🧑🏻‍⚖️|🧑🏻‍✈️|🧑🏻‍🌾|🧑🏻‍🍳|🧑🏻‍🍼|🧑🏻‍🎄|🧑🏻‍🎓|🧑🏻‍🎤|🧑🏻‍🎨|🧑🏻‍🏫|🧑🏻‍🏭|🧑🏻‍💻|🧑🏻‍💼|🧑🏻‍🔧|🧑🏻‍🔬|🧑🏻‍🚀|🧑🏻‍🚒|🧑🏻‍🦯|🧑🏻‍🦰|🧑🏻‍🦱|🧑🏻‍🦲|🧑🏻‍🦳|🧑🏻‍🦼|🧑🏻‍🦽|🧑🏻‍🩰|🧑🏼‍⚕️|🧑🏼‍⚖️|🧑🏼‍✈️|🧑🏼‍🌾|🧑🏼‍🍳|🧑🏼‍🍼|🧑🏼‍🎄|🧑🏼‍🎓|🧑🏼‍🎤|🧑🏼‍🎨|🧑🏼‍🏫|🧑🏼‍🏭|🧑🏼‍💻|🧑🏼‍💼|🧑🏼‍🔧|🧑🏼‍🔬|🧑🏼‍🚀|🧑🏼‍🚒|🧑🏼‍🦯|🧑🏼‍🦰|🧑🏼‍🦱|🧑🏼‍🦲|🧑🏼‍🦳|🧑🏼‍🦼|🧑🏼‍🦽|🧑🏼‍🩰|🧑🏽‍⚕️|🧑🏽‍⚖️|🧑🏽‍✈️|🧑🏽‍🌾|🧑🏽‍🍳|🧑🏽‍🍼|🧑🏽‍🎄|🧑🏽‍🎓|🧑🏽‍🎤|🧑🏽‍🎨|🧑🏽‍🏫|🧑🏽‍🏭|🧑🏽‍💻|🧑🏽‍💼|🧑🏽‍🔧|🧑🏽‍🔬|🧑🏽‍🚀|🧑🏽‍🚒|🧑🏽‍🦯|🧑🏽‍🦰|🧑🏽‍🦱|🧑🏽‍🦲|🧑🏽‍🦳|🧑🏽‍🦼|🧑🏽‍🦽|🧑🏽‍🩰|🧑🏾‍⚕️|🧑🏾‍⚖️|🧑🏾‍✈️|🧑🏾‍🌾|🧑🏾‍🍳|🧑🏾‍🍼|🧑🏾‍🎄|🧑🏾‍🎓|🧑🏾‍🎤|🧑🏾‍🎨|🧑🏾‍🏫|🧑🏾‍🏭|🧑🏾‍💻|🧑🏾‍💼|🧑🏾‍🔧|🧑🏾‍🔬|🧑🏾‍🚀|🧑🏾‍🚒|🧑🏾‍🦯|🧑🏾‍🦰|🧑🏾‍🦱|🧑🏾‍🦲|🧑🏾‍🦳|🧑🏾‍🦼|🧑🏾‍🦽|🧑🏾‍🩰|🧑🏿‍⚕️|🧑🏿‍⚖️|🧑🏿‍✈️|🧑🏿‍🌾|🧑🏿‍🍳|🧑🏿‍🍼|🧑🏿‍🎄|🧑🏿‍🎓|🧑🏿‍🎤|🧑🏿‍🎨|🧑🏿‍🏫|🧑🏿‍🏭|🧑🏿‍💻|🧑🏿‍💼|🧑🏿‍🔧|🧑🏿‍🔬|🧑🏿‍🚀|🧑🏿‍🚒|🧑🏿‍🦯|🧑🏿‍🦰|🧑🏿‍🦱|🧑🏿‍🦲|🧑🏿‍🦳|🧑🏿‍🦼|🧑🏿‍🦽|🧑🏿‍🩰|🧔🏻‍♀️|🧔🏻‍♂️|🧔🏼‍♀️|🧔🏼‍♂️|🧔🏽‍♀️|🧔🏽‍♂️|🧔🏾‍♀️|🧔🏾‍♂️|🧔🏿‍♀️|🧔🏿‍♂️|🧖🏻‍♀️|🧖🏻‍♂️|🧖🏼‍♀️|🧖🏼‍♂️|🧖🏽‍♀️|🧖🏽‍♂️|🧖🏾‍♀️|🧖🏾‍♂️|🧖🏿‍♀️|🧖🏿‍♂️|🧗🏻‍♀️|🧗🏻‍♂️|🧗🏼‍♀️|🧗🏼‍♂️|🧗🏽‍♀️|🧗🏽‍♂️|🧗🏾‍♀️|🧗🏾‍♂️|🧗🏿‍♀️|🧗🏿‍♂️|🧘🏻‍♀️|🧘🏻‍♂️|🧘🏼‍♀️|🧘🏼‍♂️|🧘🏽‍♀️|🧘🏽‍♂️|🧘🏾‍♀️|🧘🏾‍♂️|🧘🏿‍♀️|🧘🏿‍♂️|🧙🏻‍♀️|🧙🏻‍♂️|🧙🏼‍♀️|🧙🏼‍♂️|🧙🏽‍♀️|🧙🏽‍♂️|🧙🏾‍♀️|🧙🏾‍♂️|🧙🏿‍♀️|🧙🏿‍♂️|🧚🏻‍♀️|🧚🏻‍♂️|🧚🏼‍♀️|🧚🏼‍♂️|🧚🏽‍♀️|🧚🏽‍♂️|🧚🏾‍♀️|🧚🏾‍♂️|🧚🏿‍♀️|🧚🏿‍♂️|🧛🏻‍♀️|🧛🏻‍♂️|🧛🏼‍♀️|🧛🏼‍♂️|🧛🏽‍♀️|🧛🏽‍♂️|🧛🏾‍♀️|🧛🏾‍♂️|🧛🏿‍♀️|🧛🏿‍♂️|🧜🏻‍♀️|🧜🏻‍♂️|🧜🏼‍♀️|🧜🏼‍♂️|🧜🏽‍♀️|🧜🏽‍♂️|🧜🏾‍♀️|🧜🏾‍♂️|🧜🏿‍♀️|🧜🏿‍♂️|🧝🏻‍♀️|🧝🏻‍♂️|🧝🏼‍♀️|🧝🏼‍♂️|🧝🏽‍♀️|🧝🏽‍♂️|🧝🏾‍♀️|🧝🏾‍♂️|🧝🏿‍♀️|🧝🏿‍♂️|⛹🏻‍♀️|⛹🏻‍♂️|⛹🏼‍♀️|⛹🏼‍♂️|⛹🏽‍♀️|⛹🏽‍♂️|⛹🏾‍♀️|⛹🏾‍♂️|⛹🏿‍♀️|⛹🏿‍♂️|🏋️‍♀️|🏋️‍♂️|🏌️‍♀️|🏌️‍♂️|🏳️‍⚧️|🏳️‍🌈|🕵️‍♀️|🕵️‍♂️|😶‍🌫️|⛓️‍💥|⛹️‍♀️|⛹️‍♂️|❤️‍🔥|❤️‍🩹|🍄‍🟫|🍋‍🟩|🏃‍♀️|🏃‍♂️|🏃‍➡️|🏄‍♀️|🏄‍♂️|🏊‍♀️|🏊‍♂️|🏴‍☠️|🐕‍🦺|🐦‍🔥|🐻‍❄️|👨‍⚕️|👨‍⚖️|👨‍✈️|👨‍🌾|👨‍🍳|👨‍🍼|👨‍🎓|👨‍🎤|👨‍🎨|👨‍🏫|👨‍🏭|👨‍👦|👨‍👧|👨‍💻|👨‍💼|👨‍🔧|👨‍🔬|👨‍🚀|👨‍🚒|👨‍🦯|👨‍🦰|👨‍🦱|👨‍🦲|👨‍🦳|👨‍🦼|👨‍🦽|👩‍⚕️|👩‍⚖️|👩‍✈️|👩‍🌾|👩‍🍳|👩‍🍼|👩‍🎓|👩‍🎤|👩‍🎨|👩‍🏫|👩‍🏭|👩‍👦|👩‍👧|👩‍💻|👩‍💼|👩‍🔧|👩‍🔬|👩‍🚀|👩‍🚒|👩‍🦯|👩‍🦰|👩‍🦱|👩‍🦲|👩‍🦳|👩‍🦼|👩‍🦽|👮‍♀️|👮‍♂️|👯‍♀️|👯‍♂️|👰‍♀️|👰‍♂️|👱‍♀️|👱‍♂️|👳‍♀️|👳‍♂️|👷‍♀️|👷‍♂️|💁‍♀️|💁‍♂️|💂‍♀️|💂‍♂️|💆‍♀️|💆‍♂️|💇‍♀️|💇‍♂️|😮‍💨|😵‍💫|🙂‍↔️|🙂‍↕️|🙅‍♀️|🙅‍♂️|🙆‍♀️|🙆‍♂️|🙇‍♀️|🙇‍♂️|🙋‍♀️|🙋‍♂️|🙍‍♀️|🙍‍♂️|🙎‍♀️|🙎‍♂️|🚣‍♀️|🚣‍♂️|🚴‍♀️|🚴‍♂️|🚵‍♀️|🚵‍♂️|🚶‍♀️|🚶‍♂️|🚶‍➡️|🤦‍♀️|🤦‍♂️|🤵‍♀️|🤵‍♂️|🤷‍♀️|🤷‍♂️|🤸‍♀️|🤸‍♂️|🤹‍♀️|🤹‍♂️|🤼‍♀️|🤼‍♂️|🤽‍♀️|🤽‍♂️|🤾‍♀️|🤾‍♂️|🦸‍♀️|🦸‍♂️|🦹‍♀️|🦹‍♂️|🧍‍♀️|🧍‍♂️|🧎‍♀️|🧎‍♂️|🧎‍➡️|🧏‍♀️|🧏‍♂️|🧑‍⚕️|🧑‍⚖️|🧑‍✈️|🧑‍🌾|🧑‍🍳|🧑‍🍼|🧑‍🎄|🧑‍🎓|🧑‍🎤|🧑‍🎨|🧑‍🏫|🧑‍🏭|🧑‍💻|🧑‍💼|🧑‍🔧|🧑‍🔬|🧑‍🚀|🧑‍🚒|🧑‍🦯|🧑‍🦰|🧑‍🦱|🧑‍🦲|🧑‍🦳|🧑‍🦼|🧑‍🦽|🧑‍🧒|🧑‍🩰|🧔‍♀️|🧔‍♂️|🧖‍♀️|🧖‍♂️|🧗‍♀️|🧗‍♂️|🧘‍♀️|🧘‍♂️|🧙‍♀️|🧙‍♂️|🧚‍♀️|🧚‍♂️|🧛‍♀️|🧛‍♂️|🧜‍♀️|🧜‍♂️|🧝‍♀️|🧝‍♂️|🧞‍♀️|🧞‍♂️|🧟‍♀️|🧟‍♂️|\*️⃣|🇦🇨|🇦🇩|🇦🇪|🇦🇫|🇦🇬|🇦🇮|🇦🇱|🇦🇲|🇦🇴|🇦🇶|🇦🇷|🇦🇸|🇦🇹|🇦🇺|🇦🇼|🇦🇽|🇦🇿|🇧🇦|🇧🇧|🇧🇩|🇧🇪|🇧🇫|🇧🇬|🇧🇭|🇧🇮|🇧🇯|🇧🇱|🇧🇲|🇧🇳|🇧🇴|🇧🇶|🇧🇷|🇧🇸|🇧🇹|🇧🇻|🇧🇼|🇧🇾|🇧🇿|🇨🇦|🇨🇨|🇨🇩|🇨🇫|🇨🇬|🇨🇭|🇨🇮|🇨🇰|🇨🇱|🇨🇲|🇨🇳|🇨🇴|🇨🇵|🇨🇶|🇨🇷|🇨🇺|🇨🇻|🇨🇼|🇨🇽|🇨🇾|🇨🇿|🇩🇪|🇩🇬|🇩🇯|🇩🇰|🇩🇲|🇩🇴|🇩🇿|🇪🇦|🇪🇨|🇪🇪|🇪🇬|🇪🇭|🇪🇷|🇪🇸|🇪🇹|🇪🇺|🇫🇮|🇫🇯|🇫🇰|🇫🇲|🇫🇴|🇫🇷|🇬🇦|🇬🇧|🇬🇩|🇬🇪|🇬🇫|🇬🇬|🇬🇭|🇬🇮|🇬🇱|🇬🇲|🇬🇳|🇬🇵|🇬🇶|🇬🇷|🇬🇸|🇬🇹|🇬🇺|🇬🇼|🇬🇾|🇭🇰|🇭🇲|🇭🇳|🇭🇷|🇭🇹|🇭🇺|🇮🇨|🇮🇩|🇮🇪|🇮🇱|🇮🇲|🇮🇳|🇮🇴|🇮🇶|🇮🇷|🇮🇸|🇮🇹|🇯🇪|🇯🇲|🇯🇴|🇯🇵|🇰🇪|🇰🇬|🇰🇭|🇰🇮|🇰🇲|🇰🇳|🇰🇵|🇰🇷|🇰🇼|🇰🇾|🇰🇿|🇱🇦|🇱🇧|🇱🇨|🇱🇮|🇱🇰|🇱🇷|🇱🇸|🇱🇹|🇱🇺|🇱🇻|🇱🇾|🇲🇦|🇲🇨|🇲🇩|🇲🇪|🇲🇫|🇲🇬|🇲🇭|🇲🇰|🇲🇱|🇲🇲|🇲🇳|🇲🇴|🇲🇵|🇲🇶|🇲🇷|🇲🇸|🇲🇹|🇲🇺|🇲🇻|🇲🇼|🇲🇽|🇲🇾|🇲🇿|🇳🇦|🇳🇨|🇳🇪|🇳🇫|🇳🇬|🇳🇮|🇳🇱|🇳🇴|🇳🇵|🇳🇷|🇳🇺|🇳🇿|🇴🇲|🇵🇦|🇵🇪|🇵🇫|🇵🇬|🇵🇭|🇵🇰|🇵🇱|🇵🇲|🇵🇳|🇵🇷|🇵🇸|🇵🇹|🇵🇼|🇵🇾|🇶🇦|🇷🇪|🇷🇴|🇷🇸|🇷🇺|🇷🇼|🇸🇦|🇸🇧|🇸🇨|🇸🇩|🇸🇪|🇸🇬|🇸🇭|🇸🇮|🇸🇯|🇸🇰|🇸🇱|🇸🇲|🇸🇳|🇸🇴|🇸🇷|🇸🇸|🇸🇹|🇸🇻|🇸🇽|🇸🇾|🇸🇿|🇹🇦|🇹🇨|🇹🇩|🇹🇫|🇹🇬|🇹🇭|🇹🇯|🇹🇰|🇹🇱|🇹🇲|🇹🇳|🇹🇴|🇹🇷|🇹🇹|🇹🇻|🇹🇼|🇹🇿|🇺🇦|🇺🇬|🇺🇲|🇺🇳|🇺🇸|🇺🇾|🇺🇿|🇻🇦|🇻🇨|🇻🇪|🇻🇬|🇻🇮|🇻🇳|🇻🇺|🇼🇫|🇼🇸|🇽🇰|🇾🇪|🇾🇹|🇿🇦|🇿🇲|🇿🇼|🎅🏻|🎅🏼|🎅🏽|🎅🏾|🎅🏿|🏂🏻|🏂🏼|🏂🏽|🏂🏾|🏂🏿|🏃🏻|🏃🏼|🏃🏽|🏃🏾|🏃🏿|🏄🏻|🏄🏼|🏄🏽|🏄🏾|🏄🏿|🏇🏻|🏇🏼|🏇🏽|🏇🏾|🏇🏿|🏊🏻|🏊🏼|🏊🏽|🏊🏾|🏊🏿|🏋🏻|🏋🏼|🏋🏽|🏋🏾|🏋🏿|🏌🏻|🏌🏼|🏌🏽|🏌🏾|🏌🏿|🐈‍⬛|🐦‍⬛|👂🏻|👂🏼|👂🏽|👂🏾|👂🏿|👃🏻|👃🏼|👃🏽|👃🏾|👃🏿|👆🏻|👆🏼|👆🏽|👆🏾|👆🏿|👇🏻|👇🏼|👇🏽|👇🏾|👇🏿|👈🏻|👈🏼|👈🏽|👈🏾|👈🏿|👉🏻|👉🏼|👉🏽|👉🏾|👉🏿|👊🏻|👊🏼|👊🏽|👊🏾|👊🏿|👋🏻|👋🏼|👋🏽|👋🏾|👋🏿|👌🏻|👌🏼|👌🏽|👌🏾|👌🏿|👍🏻|👍🏼|👍🏽|👍🏾|👍🏿|👎🏻|👎🏼|👎🏽|👎🏾|👎🏿|👏🏻|👏🏼|👏🏽|👏🏾|👏🏿|👐🏻|👐🏼|👐🏽|👐🏾|👐🏿|👦🏻|👦🏼|👦🏽|👦🏾|👦🏿|👧🏻|👧🏼|👧🏽|👧🏾|👧🏿|👨🏻|👨🏼|👨🏽|👨🏾|👨🏿|👩🏻|👩🏼|👩🏽|👩🏾|👩🏿|👫🏻|👫🏼|👫🏽|👫🏾|👫🏿|👬🏻|👬🏼|👬🏽|👬🏾|👬🏿|👭🏻|👭🏼|👭🏽|👭🏾|👭🏿|👮🏻|👮🏼|👮🏽|👮🏾|👮🏿|👯🏻|👯🏼|👯🏽|👯🏾|👯🏿|👰🏻|👰🏼|👰🏽|👰🏾|👰🏿|👱🏻|👱🏼|👱🏽|👱🏾|👱🏿|👲🏻|👲🏼|👲🏽|👲🏾|👲🏿|👳🏻|👳🏼|👳🏽|👳🏾|👳🏿|👴🏻|👴🏼|👴🏽|👴🏾|👴🏿|👵🏻|👵🏼|👵🏽|👵🏾|👵🏿|👶🏻|👶🏼|👶🏽|👶🏾|👶🏿|👷🏻|👷🏼|👷🏽|👷🏾|👷🏿|👸🏻|👸🏼|👸🏽|👸🏾|👸🏿|👼🏻|👼🏼|👼🏽|👼🏾|👼🏿|💁🏻|💁🏼|💁🏽|💁🏾|💁🏿|💂🏻|💂🏼|💂🏽|💂🏾|💂🏿|💃🏻|💃🏼|💃🏽|💃🏾|💃🏿|💅🏻|💅🏼|💅🏽|💅🏾|💅🏿|💆🏻|💆🏼|💆🏽|💆🏾|💆🏿|💇🏻|💇🏼|💇🏽|💇🏾|💇🏿|💏🏻|💏🏼|💏🏽|💏🏾|💏🏿|💑🏻|💑🏼|💑🏽|💑🏾|💑🏿|💪🏻|💪🏼|💪🏽|💪🏾|💪🏿|🕴🏻|🕴🏼|🕴🏽|🕴🏾|🕴🏿|🕵🏻|🕵🏼|🕵🏽|🕵🏾|🕵🏿|🕺🏻|🕺🏼|🕺🏽|🕺🏾|🕺🏿|🖐🏻|🖐🏼|🖐🏽|🖐🏾|🖐🏿|🖕🏻|🖕🏼|🖕🏽|🖕🏾|🖕🏿|🖖🏻|🖖🏼|🖖🏽|🖖🏾|🖖🏿|🙅🏻|🙅🏼|🙅🏽|🙅🏾|🙅🏿|🙆🏻|🙆🏼|🙆🏽|🙆🏾|🙆🏿|🙇🏻|🙇🏼|🙇🏽|🙇🏾|🙇🏿|🙋🏻|🙋🏼|🙋🏽|🙋🏾|🙋🏿|🙌🏻|🙌🏼|🙌🏽|🙌🏾|🙌🏿|🙍🏻|🙍🏼|🙍🏽|🙍🏾|🙍🏿|🙎🏻|🙎🏼|🙎🏽|🙎🏾|🙎🏿|🙏🏻|🙏🏼|🙏🏽|🙏🏾|🙏🏿|🚣🏻|🚣🏼|🚣🏽|🚣🏾|🚣🏿|🚴🏻|🚴🏼|🚴🏽|🚴🏾|🚴🏿|🚵🏻|🚵🏼|🚵🏽|🚵🏾|🚵🏿|🚶🏻|🚶🏼|🚶🏽|🚶🏾|🚶🏿|🛀🏻|🛀🏼|🛀🏽|🛀🏾|🛀🏿|🛌🏻|🛌🏼|🛌🏽|🛌🏾|🛌🏿|🤌🏻|🤌🏼|🤌🏽|🤌🏾|🤌🏿|🤏🏻|🤏🏼|🤏🏽|🤏🏾|🤏🏿|🤘🏻|🤘🏼|🤘🏽|🤘🏾|🤘🏿|🤙🏻|🤙🏼|🤙🏽|🤙🏾|🤙🏿|🤚🏻|🤚🏼|🤚🏽|🤚🏾|🤚🏿|🤛🏻|🤛🏼|🤛🏽|🤛🏾|🤛🏿|🤜🏻|🤜🏼|🤜🏽|🤜🏾|🤜🏿|🤝🏻|🤝🏼|🤝🏽|🤝🏾|🤝🏿|🤞🏻|🤞🏼|🤞🏽|🤞🏾|🤞🏿|🤟🏻|🤟🏼|🤟🏽|🤟🏾|🤟🏿|🤦🏻|🤦🏼|🤦🏽|🤦🏾|🤦🏿|🤰🏻|🤰🏼|🤰🏽|🤰🏾|🤰🏿|🤱🏻|🤱🏼|🤱🏽|🤱🏾|🤱🏿|🤲🏻|🤲🏼|🤲🏽|🤲🏾|🤲🏿|🤳🏻|🤳🏼|🤳🏽|🤳🏾|🤳🏿|🤴🏻|🤴🏼|🤴🏽|🤴🏾|🤴🏿|🤵🏻|🤵🏼|🤵🏽|🤵🏾|🤵🏿|🤶🏻|🤶🏼|🤶🏽|🤶🏾|🤶🏿|🤷🏻|🤷🏼|🤷🏽|🤷🏾|🤷🏿|🤸🏻|🤸🏼|🤸🏽|🤸🏾|🤸🏿|🤹🏻|🤹🏼|🤹🏽|🤹🏾|🤹🏿|🤼🏻|🤼🏼|🤼🏽|🤼🏾|🤼🏿|🤽🏻|🤽🏼|🤽🏽|🤽🏾|🤽🏿|🤾🏻|🤾🏼|🤾🏽|🤾🏾|🤾🏿|🥷🏻|🥷🏼|🥷🏽|🥷🏾|🥷🏿|🦵🏻|🦵🏼|🦵🏽|🦵🏾|🦵🏿|🦶🏻|🦶🏼|🦶🏽|🦶🏾|🦶🏿|🦸🏻|🦸🏼|🦸🏽|🦸🏾|🦸🏿|🦹🏻|🦹🏼|🦹🏽|🦹🏾|🦹🏿|🦻🏻|🦻🏼|🦻🏽|🦻🏾|🦻🏿|🧍🏻|🧍🏼|🧍🏽|🧍🏾|🧍🏿|🧎🏻|🧎🏼|🧎🏽|🧎🏾|🧎🏿|🧏🏻|🧏🏼|🧏🏽|🧏🏾|🧏🏿|🧑🏻|🧑🏼|🧑🏽|🧑🏾|🧑🏿|🧒🏻|🧒🏼|🧒🏽|🧒🏾|🧒🏿|🧓🏻|🧓🏼|🧓🏽|🧓🏾|🧓🏿|🧔🏻|🧔🏼|🧔🏽|🧔🏾|🧔🏿|🧕🏻|🧕🏼|🧕🏽|🧕🏾|🧕🏿|🧖🏻|🧖🏼|🧖🏽|🧖🏾|🧖🏿|🧗🏻|🧗🏼|🧗🏽|🧗🏾|🧗🏿|🧘🏻|🧘🏼|🧘🏽|🧘🏾|🧘🏿|🧙🏻|🧙🏼|🧙🏽|🧙🏾|🧙🏿|🧚🏻|🧚🏼|🧚🏽|🧚🏾|🧚🏿|🧛🏻|🧛🏼|🧛🏽|🧛🏾|🧛🏿|🧜🏻|🧜🏼|🧜🏽|🧜🏾|🧜🏿|🧝🏻|🧝🏼|🧝🏽|🧝🏾|🧝🏿|🫃🏻|🫃🏼|🫃🏽|🫃🏾|🫃🏿|🫄🏻|🫄🏼|🫄🏽|🫄🏾|🫄🏿|🫅🏻|🫅🏼|🫅🏽|🫅🏾|🫅🏿|🫰🏻|🫰🏼|🫰🏽|🫰🏾|🫰🏿|🫱🏻|🫱🏼|🫱🏽|🫱🏾|🫱🏿|🫲🏻|🫲🏼|🫲🏽|🫲🏾|🫲🏿|🫳🏻|🫳🏼|🫳🏽|🫳🏾|🫳🏿|🫴🏻|🫴🏼|🫴🏽|🫴🏾|🫴🏿|🫵🏻|🫵🏼|🫵🏽|🫵🏾|🫵🏿|🫶🏻|🫶🏼|🫶🏽|🫶🏾|🫶🏿|🫷🏻|🫷🏼|🫷🏽|🫷🏾|🫷🏿|🫸🏻|🫸🏼|🫸🏽|🫸🏾|🫸🏿|#️⃣|0️⃣|1️⃣|2️⃣|3️⃣|4️⃣|5️⃣|6️⃣|7️⃣|8️⃣|9️⃣|☝🏻|☝🏼|☝🏽|☝🏾|☝🏿|⛹🏻|⛹🏼|⛹🏽|⛹🏾|⛹🏿|✊🏻|✊🏼|✊🏽|✊🏾|✊🏿|✋🏻|✋🏼|✋🏽|✋🏾|✋🏿|✌🏻|✌🏼|✌🏽|✌🏾|✌🏿|✍🏻|✍🏼|✍🏽|✍🏾|✍🏿|🅰️|🅱️|🅾️|🅿️|🈂️|🈷️|🌡️|🌤️|🌥️|🌦️|🌧️|🌨️|🌩️|🌪️|🌫️|🌬️|🌶️|🍽️|🎖️|🎗️|🎙️|🎚️|🎛️|🎞️|🎟️|🏋️|🏌️|🏍️|🏎️|🏔️|🏕️|🏖️|🏗️|🏘️|🏙️|🏚️|🏛️|🏜️|🏝️|🏞️|🏟️|🏳️|🏵️|🏷️|🐿️|👁️|📽️|🕉️|🕊️|🕯️|🕰️|🕳️|🕴️|🕵️|🕶️|🕷️|🕸️|🕹️|🖇️|🖊️|🖋️|🖌️|🖍️|🖐️|🖥️|🖨️|🖱️|🖲️|🖼️|🗂️|🗃️|🗄️|🗑️|🗒️|🗓️|🗜️|🗝️|🗞️|🗡️|🗣️|🗨️|🗯️|🗳️|🗺️|🛋️|🛍️|🛎️|🛏️|🛠️|🛡️|🛢️|🛣️|🛤️|🛥️|🛩️|🛰️|🛳️|©️|®️|‼️|⁉️|™️|ℹ️|↔️|↕️|↖️|↗️|↘️|↙️|↩️|↪️|⌨️|⏏️|⏭️|⏮️|⏯️|⏱️|⏲️|⏸️|⏹️|⏺️|Ⓜ️|▪️|▫️|▶️|◀️|◻️|◼️|☀️|☁️|☂️|☃️|☄️|☎️|☑️|☘️|☝️|☠️|☢️|☣️|☦️|☪️|☮️|☯️|☸️|☹️|☺️|♀️|♂️|♟️|♠️|♣️|♥️|♦️|♨️|♻️|♾️|⚒️|⚔️|⚕️|⚖️|⚗️|⚙️|⚛️|⚜️|⚠️|⚧️|⚰️|⚱️|⛈️|⛏️|⛑️|⛓️|⛩️|⛰️|⛱️|⛴️|⛷️|⛸️|⛹️|✂️|✈️|✉️|✌️|✍️|✏️|✒️|✔️|✖️|✝️|✡️|✳️|✴️|❄️|❇️|❣️|❤️|➡️|⤴️|⤵️|⬅️|⬆️|⬇️|〰️|〽️|㊗️|㊙️|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55\u{1F004}\u{1F0CF}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F201}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F236}\u{1F238}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F320}\u{1F32D}-\u{1F335}\u{1F337}-\u{1F37C}\u{1F37E}-\u{1F393}\u{1F3A0}-\u{1F3CA}\u{1F3CF}-\u{1F3D3}\u{1F3E0}-\u{1F3F0}\u{1F3F4}\u{1F3F8}-\u{1F43E}\u{1F440}\u{1F442}-\u{1F4FC}\u{1F4FF}-\u{1F53D}\u{1F54B}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F57A}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5FB}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CC}\u{1F6D0}-\u{1F6D2}\u{1F6D5}-\u{1F6D8}\u{1F6DC}-\u{1F6DF}\u{1F6EB}\u{1F6EC}\u{1F6F4}-\u{1F6FC}\u{1F7E0}-\u{1F7EB}\u{1F7F0}\u{1F90C}-\u{1F93A}\u{1F93C}-\u{1F945}\u{1F947}-\u{1F9FF}\u{1FA70}-\u{1FA7C}\u{1FA80}-\u{1FA8A}\u{1FA8E}-\u{1FAC6}\u{1FAC8}\u{1FACD}-\u{1FADC}\u{1FADF}-\u{1FAEA}\u{1FAEF}-\u{1FAF8}])/gu).length):n=l().createElement(l().Fragment,null,l().createElement("i",{className:"material-icons gray"},"warning_amber")," ",l().createElement("i",{className:"gray"},l().createElement(h.FormattedMessage,{id:"invalid_content",defaultMessage:[{type:0,value:"invalid content"}]})));return l().createElement("li",{ref:this.props.innerRef,className:e},this.props.isGroup&&this.props.response?l().createElement("div",{className:"avatar-box"},i?l().createElement(Us.A,{tinode:this.props.tinode,topic:this.props.userFrom,title:this.props.userName,avatar:s}):null):null,l().createElement("div",null,l().createElement("div",{className:t},l().createElement("div",{className:"content-meta"},l().createElement("div",{className:a},n,r),this.props.timestamp?l().createElement(ta,{edited:this.props.edited,timestamp:this.props.timestamp,received:this.props.received}):null),this.props.showContextMenu?l().createElement("span",{className:"menuTrigger"},l().createElement("a",{href:"#",onClick:this.handleContextClick},l().createElement("i",{className:"material-icons"},"expand_more"))):null),i?l().createElement("div",{className:"author"},this.props.userName||l().createElement("i",null,l().createElement(h.FormattedMessage,{id:"user_not_found",defaultMessage:[{type:0,value:"Not found"}]}))):null))}}const na=(0,h.injectIntl)(ia);var ra=l().forwardRef((e,t)=>l().createElement(na,aa({innerRef:t},e))),oa=r(504);const la=l().lazy(e=>Promise.all([r.e(537),r.e(0)]).then(r.bind(r,4e3))),ca=(0,h.defineMessages)({messaging_disabled:{id:"messaging_disabled_prompt",defaultMessage:[{type:0,value:"Messaging disabled"}]},type_new_message:{id:"new_message_prompt",defaultMessage:[{type:0,value:"New message"}]},add_image_caption:{id:"image_caption_prompt",defaultMessage:[{type:0,value:"Image caption"}]},file_attachment_too_large:{id:"file_attachment_too_large",defaultMessage:[{type:0,value:"The file size "},{type:1,value:"size"},{type:0,value:" exceeds the "},{type:1,value:"limit"},{type:0,value:" limit."}]},cannot_initiate_upload:{id:"cannot_initiate_file_upload",defaultMessage:[{type:0,value:"Cannot initiate file upload."}]},icon_title_record_voice:{id:"icon_title_record_voice",defaultMessage:[{type:0,value:"Record voice message"}]},icon_title_attach_file:{id:"icon_title_attach_file",defaultMessage:[{type:0,value:"Attach file"}]},icon_title_add_image:{id:"icon_title_add_image",defaultMessage:[{type:0,value:"Add image"}]},icon_title_send:{id:"icon_title_send",defaultMessage:[{type:0,value:"Send message"}]}});class ha extends l().PureComponent{constructor(e){super(e),this.state={quote:null,message:"",audioRec:!1,audioAvailable:!(!navigator.mediaDevices||!navigator.mediaDevices.getUserMedia)},this.keypressTimestamp=0,this.handlePasteEvent=this.handlePasteEvent.bind(this),this.handleAttachImage=this.handleAttachImage.bind(this),this.handleAttachFile=this.handleAttachFile.bind(this),this.handleAttachAudio=this.handleAttachAudio.bind(this),this.handleSend=this.handleSend.bind(this),this.handleKeyPress=this.handleKeyPress.bind(this),this.handleMessageTyping=this.handleMessageTyping.bind(this),this.handleDropAttach=this.handleDropAttach.bind(this),this.handleQuoteClick=this.handleQuoteClick.bind(this),this.formatReply=this.formatReply.bind(this)}componentDidMount(){this.messageEditArea&&(this.messageEditArea.addEventListener("paste",this.handlePasteEvent,!1),"all"==window.getComputedStyle(this.messageEditArea).getPropertyValue("transition-property")&&this.messageEditArea.focus()),this.setState({quote:this.formatReply()})}componentWillUnmount(){this.messageEditArea&&this.messageEditArea.removeEventListener("paste",this.handlePasteEvent,!1)}componentDidUpdate(e){if(this.messageEditArea&&("all"==window.getComputedStyle(this.messageEditArea).getPropertyValue("transition-property")&&this.messageEditArea.focus(),this.messageEditArea.style.height="0px",this.messageEditArea.style.height=this.messageEditArea.scrollHeight+"px"),e.topicName!=this.props.topicName)this.setState({message:this.props.initMessage||"",audioRec:!1,quote:null});else if(e.initMessage!=this.props.initMessage){const e=this.props.initMessage||"";this.setState({message:e},t=>{this.messageEditArea.scrollTop=this.messageEditArea.scrollHeight,this.messageEditArea.setSelectionRange(e.length,e.length)})}e.reply!=this.props.reply&&this.setState({quote:this.formatReply()})}formatReply(){return this.props.reply?Ts.Drafty.format(this.props.reply.content,sa.NV,{formatMessage:this.props.intl.formatMessage.bind(this.props.intl),authorizeURL:this.props.tinode.authorizeURL.bind(this.props.tinode)}):null}handlePasteEvent(e){this.props.disabled||(0,Os.iJ)(e,e=>{this.props.onAttachImage(e)},e=>{this.props.onAttachFile(e)},this.props.onError)&&e.preventDefault()}handleAttachImage(e){e.target.files&&e.target.files.length>0&&this.props.onAttachImage(e.target.files[0]),e.target.value=""}handleAttachFile(e){e.target.files&&e.target.files.length>0&&this.props.onAttachFile(e.target.files[0]),e.target.value=""}handleDropAttach(e){e&&e.length>0&&this.props.onAttachFile(e[0])}handleAttachAudio(e,t,s){this.setState({audioRec:!1}),this.props.onAttachAudio(e,t,s)}handleSend(e){e.preventDefault();const t=this.state.message.trim();(t||this.props.acceptBlank||this.props.noInput)&&(this.props.onSendMessage(t),this.setState({message:""}))}handleKeyPress(e){if(this.state.audioRec)return e.preventDefault(),void e.stopPropagation();"Enter"===e.key&&("plain"==this.props.sendOnEnter?e.shiftKey||(e.preventDefault(),e.stopPropagation(),this.handleSend(e)):(e.ctrlKey||e.metaKey)&&(e.preventDefault(),e.stopPropagation(),this.handleSend(e)))}handleMessageTyping(e){if(this.setState({message:e.target.value}),this.props.onKeyPress){const e=(new Date).getTime();e-this.keypressTimestamp>ks.NR&&(this.props.onKeyPress(),this.keypressTimestamp=e)}}handleQuoteClick(e){if(e.preventDefault(),e.stopPropagation(),this.props.reply&&this.props.onQuoteClick){const e=this.props.reply.seq;this.props.onQuoteClick(e)}}render(){const{formatMessage:e}=this.props.intl,t=this.props.disabled?e(ca.messaging_disabled):this.props.messagePrompt?e(ca[this.props.messagePrompt]):e(ca.type_new_message),s=this.props.reply&&this.props.reply.editing?"check_circle":"send",a=this.state.quote?l().createElement("div",{id:"reply-quote-preview"},l().createElement("div",{className:"cancel"},l().createElement("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onCancelReply()}},l().createElement("i",{className:"material-icons gray"},"close"))),this.state.quote):null,i=this.state.audioAvailable&&this.props.onAttachAudio;return l().createElement("div",{id:"send-message-wrapper"},this.props.noInput?null:a,l().createElement("div",{id:"send-message-panel"},this.props.disabled?l().createElement("div",{id:"writing-disabled"},t):l().createElement(l().Fragment,null,this.props.onAttachFile&&!this.state.audioRec?l().createElement(l().Fragment,null,l().createElement("a",{href:"#",onClick:e=>{e.preventDefault(),this.attachImage.click()},title:e(ca.icon_title_add_image)},l().createElement("i",{className:"material-icons secondary"},"photo")),l().createElement("a",{href:"#",onClick:e=>{e.preventDefault(),this.attachFile.click()},title:e(ca.icon_title_attach_file)},l().createElement("i",{className:"material-icons secondary"},"attach_file"))):null,this.props.noInput?a||l().createElement("div",{className:"hr thin"}):this.state.audioRec?l().createElement(o.Suspense,{fallback:l().createElement("div",null,l().createElement(h.FormattedMessage,{id:"loading_note",defaultMessage:[{type:0,value:"Loading..."}]}))},l().createElement(la,{onRecordingProgress:e=>this.props.onKeyPress(!0),onDeleted:e=>this.setState({audioRec:!1}),onFinished:this.handleAttachAudio})):l().createElement("textarea",{id:"send-message-input",placeholder:t,value:this.state.message,onChange:this.handleMessageTyping,onKeyDown:this.handleKeyPress,ref:e=>{this.messageEditArea=e}}),this.state.message||!i?l().createElement("a",{href:"#",onClick:this.handleSend,title:e(ca.icon_title_send)},l().createElement("i",{className:"material-icons"},s)):this.state.audioRec?null:l().createElement("a",{href:"#",onClick:e=>{e.preventDefault(),this.setState({audioRec:!0})},title:e(ca.icon_title_record_voice)},l().createElement("i",{className:"material-icons"},"mic")),l().createElement("input",{type:"file",ref:e=>{this.attachFile=e},onChange:this.handleAttachFile,style:{display:"none"}}),l().createElement("input",{type:"file",ref:e=>{this.attachImage=e},accept:"image/*, video/*",onChange:this.handleAttachImage,style:{display:"none"}}))))}}var da=(0,h.injectIntl)(ha);class pa extends l().PureComponent{constructor(e){super(e),this.handleSendDoc=this.handleSendDoc.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this)}componentDidMount(){document.addEventListener("keydown",this.handleKeyDown)}componentWillUnmount(){document.removeEventListener("keydown",this.handleKeyDown)}handleKeyDown(e){e.preventDefault(),"Escape"===e.key&&this.props.onClose()}handleSendDoc(e){this.props.onClose(),this.props.onSendMessage(this.props.content.file)}render(){return this.props.content?l().createElement("div",{id:"image-preview"},l().createElement("div",{id:"image-preview-caption-panel"},l().createElement("span",null,this.props.content.name),l().createElement("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onClose()}},l().createElement("i",{className:"material-icons gray"},"close"))),l().createElement("div",{id:"image-preview-container"},l().createElement("div",{className:"doc-card"},l().createElement("i",{className:"material-icons gray"},function(e){const t={default:"insert_drive_file",image:"image",text:"description",video:"theaters"};return t[e]||t[(e||"").split("/")[0]]||t.default}(this.props.content.type)),l().createElement("div",null,l().createElement("b",null,l().createElement(h.FormattedMessage,{id:"label_file_name",defaultMessage:[{type:0,value:"File name:"}]}))," ",(0,js.Tu)(this.props.content.name,24)||"-"),l().createElement("div",null,l().createElement("b",null,l().createElement(h.FormattedMessage,{id:"label_content_type",defaultMessage:[{type:0,value:"Content type:"}]}))," ",this.props.content.type||"application/octet-stream"),l().createElement("div",null,l().createElement("b",null,l().createElement(h.FormattedMessage,{id:"label_size",defaultMessage:[{type:0,value:"Size:"}]}))," ",(0,js.lX)(this.props.content.size)))),l().createElement(da,{noInput:!0,tinode:this.props.tinode,reply:this.props.reply,onCancelReply:this.props.onCancelReply,onSendMessage:this.handleSendDoc,onError:this.props.onError})):null}}var ua=r(1334);class ma extends l().Component{constructor(e){super(e)}render(){const e=[],t=(this.props.subscribers||[]).length,s=Math.min(ks.DT,t);return(this.props.subscribers||[]).some(t=>(e.push(l().createElement("div",{className:"avatar-box",key:t.user},l().createElement(Us.A,{tinode:this.props.tinode,topic:t.user,avatar:(0,Os.to)(t.public?t.public.photo:null)||!0,title:t.public?t.public.fn:null}))),e.length==s)),0==e.length?null:l().createElement("div",{id:"topic-users"},e," ",t>s?l().createElement("span",null,l().createElement(h.FormattedMessage,{id:"more_online_members",defaultMessage:[{type:0,value:"+"},{type:1,value:"overflow"},{type:0,value:" more"}],values:{overflow:t-s}})):null)}}class ga extends l().PureComponent{constructor(e){super(e),this.state={width:0,height:0},this.handleSendImage=this.handleSendImage.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this)}componentDidMount(){document.addEventListener("keydown",this.handleKeyDown)}componentWillUnmount(){document.removeEventListener("keydown",this.handleKeyDown)}handleKeyDown(e){this.props.onSendMessage||(e.preventDefault(),"Escape"===e.key&&this.props.onClose())}assignWidth(e){if(e&&!this.state.width){const t=e.getBoundingClientRect();this.setState({width:0|t.width,height:0|t.height})}}handleSendImage(e){this.props.onClose(),this.props.onSendMessage(e,this.props.content.blob)}render(){if(!this.props.content)return null;const e=(0,Os.ae)(this.props.content.width,this.props.content.height,this.state.width,this.state.height,!1),t=e?{width:e.dstWidth+"px",height:e.dstHeight+"px"}:this.props.content.width>this.props.content.height?{width:"100%"}:{height:"100%"};t.maxWidth="100%",t.maxHeight="100%";const s=Math.max((this.state.width/ks.JS/1.5|0)-2,12),a=(0,js.Tu)(this.props.content.filename,s)||"-",i=this.props.content.width||"-",n=this.props.content.height||"-",r=(0,Xs.FH)(this.props.content.url);return l().createElement("div",{id:"image-preview"},l().createElement("div",{id:"image-preview-caption-panel"},this.props.onSendMessage?l().createElement("span",null,a):l().createElement("a",{href:r,download:this.props.content.filename},l().createElement("i",{className:"material-icons"},"file_download")," ",l().createElement(h.FormattedMessage,{id:"download_action",defaultMessage:[{type:0,value:"download"}]})),l().createElement("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onClose()}},l().createElement("i",{className:"material-icons gray"},"close"))),l().createElement("div",{id:"image-preview-container",ref:e=>this.assignWidth(e)},l().createElement("img",{src:this.props.content.url,style:t,className:"image-preview",alt:this.props.content.filename})),this.props.onSendMessage?l().createElement(da,{messagePrompt:"add_image_caption",acceptBlank:!0,tinode:this.props.tinode,reply:this.props.reply,onCancelReply:this.props.onCancelReply,onSendMessage:this.handleSendImage,onError:this.props.onError}):l().createElement("div",{id:"image-preview-footer"},l().createElement("div",null,l().createElement("div",null,l().createElement("b",null,l().createElement(h.FormattedMessage,{id:"label_file_name",defaultMessage:[{type:0,value:"File name:"}]}))),l().createElement("div",null,l().createElement("span",{title:this.props.content.filename},a))),l().createElement("div",null,l().createElement("div",null,l().createElement("b",null,l().createElement(h.FormattedMessage,{id:"label_content_type",defaultMessage:[{type:0,value:"Content type:"}]}))),l().createElement("div",null,this.props.content.type)),l().createElement("div",null,l().createElement("div",null,l().createElement("b",null,l().createElement(h.FormattedMessage,{id:"label_size",defaultMessage:[{type:0,value:"Size:"}]}))),l().createElement("div",null,i," × ",n," px; ",(0,js.lX)(this.props.content.size)))))}}class fa extends l().PureComponent{constructor(e){super(e),this.handleButtonAction=this.handleButtonAction.bind(this)}handleButtonAction(e,t){e.preventDefault(),this.props.onAction(t)}render(){return l().createElement("div",{className:"accept-invite-panel"},l().createElement("div",{className:"title"},l().createElement(h.FormattedMessage,{id:"chat_invitation",defaultMessage:[{type:0,value:"You are invited to start a new chat. What would you like to do?"}]})),l().createElement("div",{className:"footer"},l().createElement("button",{className:"primary",onClick:e=>{this.handleButtonAction(e,"accept")}},l().createElement(h.FormattedMessage,{id:"chat_invitation_accept",defaultMessage:[{type:0,value:"Accept"}]})),l().createElement("button",{className:"secondary",onClick:e=>{this.handleButtonAction(e,"delete")}},l().createElement(h.FormattedMessage,{id:"chat_invitation_ignore",defaultMessage:[{type:0,value:"Ignore"}]})),l().createElement("button",{className:"secondary",onClick:e=>{this.handleButtonAction(e,"block")}},l().createElement(h.FormattedMessage,{id:"chat_invitation_block",defaultMessage:[{type:0,value:"Block"}]}))))}}var va=r(1013);class ba extends l().PureComponent{render(){const e=ks.C3+" ("+Ts.Tinode.getLibrary()+")";return l().createElement("div",{id:"dummy-view"},l().createElement("div",null,l().createElement("a",{href:"https://github.com/tinode/chat/"},l().createElement("img",{id:"logo",alt:"logo",src:"img/logo.svg"}),l().createElement("h2",null,"Tinode Web")),l().createElement("p",null,l().createElement(h.FormattedMessage,{id:"label_client",defaultMessage:[{type:0,value:"Client:"}]})," ",e),l().createElement("p",null,l().createElement(h.FormattedMessage,{id:"label_server",defaultMessage:[{type:0,value:"Server:"}]})," ",this.props.serverVersion," (",this.props.serverAddress,")")))}}class Ea extends l().PureComponent{constructor(e){super(e)}render(){let e=null,t="bubble";return this.props.date&&(e=l().createElement(l().Fragment,null,this.props.date),t+=" date"),e?l().createElement("li",{className:"meta"},l().createElement("div",{className:t},l().createElement("div",{className:"message-content"},e))):l().createElement(l().Fragment,null,null)}}const ya=(0,h.defineMessages)({message_not_found:{id:"message_not_found",defaultMessage:[{type:0,value:"message not found"}]},message_deleted:{id:"message_deleted",defaultMessage:[{type:0,value:"message deleted"}]}});class wa extends l().PureComponent{constructor(e){super(e),this.touchX=null,this.touchY=null,this.touchSurface=l().createRef(),this.getSelectedIndex=this.getSelectedIndex.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleSelected=this.handleSelected.bind(this),this.handleMoveNext=this.handleMoveNext.bind(this),this.handleMovePrev=this.handleMovePrev.bind(this),this.handleTouchEventStart=this.handleTouchEventStart.bind(this),this.handleTouchEventEnd=this.handleTouchEventEnd.bind(this),this.handleTouchCancel=this.handleTouchCancel.bind(this)}componentDidMount(){this.touchSurface.current.addEventListener("touchstart",this.handleTouchEventStart,{passive:!0}),this.touchSurface.current.addEventListener("touchend",this.handleTouchEventEnd,{passive:!0}),this.touchSurface.current.addEventListener("touchcancel",this.handleTouchCancel,{passive:!0})}componentWillUnmount(){this.touchSurface.current.removeEventListener("touchstart",this.handleTouchEventStart),this.touchSurface.current.removeEventListener("touchend",this.handleTouchEventEnd),this.touchSurface.current.removeEventListener("touchcancel",this.handleTouchCancel)}getSelectedIndex(){return(this.props.pins||[]).length-this.props.selected-1}handleCancel(e){e.preventDefault(),this.props.onCancel(this.props.pins[this.getSelectedIndex()])}handleSelected(e){e.preventDefault(),this.props.onSelected(this.props.pins[this.getSelectedIndex()])}handleMoveNext(e,t){t||e.preventDefault(),e.stopPropagation();const s=Math.max(this.props.selected-1,0);s!=this.props.selected&&this.props.setSelected(s)}handleMovePrev(e,t){t||e.preventDefault(),e.stopPropagation();const s=Math.min(this.props.selected+1,(this.props.pins||[]).length-1);s!=this.props.selected&&this.props.setSelected(s)}handleTouchEventStart(e){1==e.touches.length&&(this.touchX=e.touches[0].clientX,this.touchY=e.touches[0].clientY)}handleTouchEventEnd(e){if(null===this.touchX||1!=e.changedTouches.length)return void(this.touchX=null);const t=this.touchX-e.changedTouches[0].clientX,s=this.touchY-e.changedTouches[0].clientY;this.touchX=null,Math.abs(t)>Math.abs(s)||Math.abs(s)0?this.handleMovePrev(e,!0):this.handleMoveNext(e,!0))}handleTouchCancel(){this.touchX=null}render(){const e=this.getSelectedIndex();let t=(this.props.messages||[])[e];t=t?t._deleted?l().createElement("i",{className:"gray"},this.props.intl.formatMessage(ya.message_deleted)):Ts.Drafty.format(t.content,sa.TU,{formatMessage:this.props.intl.formatMessage.bind(this.props.intl),authorizeURL:this.props.tinode.authorizeURL.bind(this.props.tinode)}):l().createElement("i",{className:"gray"},this.props.intl.formatMessage(ya.message_not_found));const s=[];return this.props.pins.forEach(t=>{const a=s.length==e?"adot":"dot";s.push(l().createElement("div",{key:t,className:a}))}),l().createElement("div",{id:"pinned-wrapper",ref:this.touchSurface},this.props.isAdmin?l().createElement("div",{className:"cancel"},l().createElement("a",{href:"#",onClick:this.handleCancel},l().createElement("i",{className:"material-icons gray"},"close"))):l().createElement("div",null,l().createElement("i",{className:"material-icons gray"},"push_pin")),l().createElement("div",{className:"pinned-scroll"},s),l().createElement("div",{className:"pinned",onClick:this.handleSelected},l().createElement("p",null,t)),l().createElement("div",{className:"pinned-menu"},l().createElement("span",{className:"menuTrigger upper"},e>0?l().createElement("a",{href:"#",onClick:this.handleMovePrev},l().createElement("i",{className:"material-icons"},"expand_less")):null),l().createElement("span",{className:"menuTrigger lower"},this.props.selected>0?l().createElement("a",{href:"#",onClick:this.handleMoveNext},l().createElement("i",{className:"material-icons"},"expand_more")):null)))}}var Ca=(0,h.injectIntl)(wa);const Sa=(0,h.defineMessages)({unrecognized_video_format:{id:"unrecognized_video_format",defaultMessage:[{type:0,value:"Format of this video is not recognized"}]}});class Ma extends l().PureComponent{constructor(e){super(e),this.videoRef=l().createRef(),this.handleSendVideo=this.handleSendVideo.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this)}componentDidMount(){document.addEventListener("keydown",this.handleKeyDown)}componentWillUnmount(){document.removeEventListener("keydown",this.handleKeyDown)}handleKeyDown(e){this.props.onSendMessage||(e.preventDefault(),"Escape"===e.key&&this.props.onClose())}handleSendVideo(e){this.props.onClose();const t={width:this.videoRef.current.videoWidth,height:this.videoRef.current.videoHeight,duration:1e3*this.videoRef.current.duration|0,mime:this.props.content.mime,name:this.props.content.filename};if(0==t.width||0==t.height)return void this.props.onError(this.props.intl.formatMessage(Sa.unrecognized_video_format),"err");const s=document.createElement("canvas");s.width=t.width,s.height=t.height;const a=s.getContext("2d");a.drawImage(this.videoRef.current,0,0,s.width,s.height),a.canvas.toBlob(s=>this.props.onSendMessage(e,this.props.content.blob,s,t),"image/jpeg",.75)}render(){if(!this.props.content)return null;const e=this.props.content.width||"-",t=this.props.content.height||"-",s=this.props.onSendMessage?"nodownload":"",a=!this.props.onSendMessage;return l().createElement("div",{id:"image-preview"},l().createElement("div",{id:"image-preview-caption-panel"},l().createElement("span",null,this.props.content.filename),l().createElement("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onClose()}},l().createElement("i",{className:"material-icons gray"},"close"))),l().createElement("div",{id:"image-preview-container"},l().createElement("video",{className:"image-preview",controls:!0,controlsList:s,disablePictureInPicture:!0,ref:this.videoRef,autoPlay:a,src:this.props.tinode.authorizeURL(this.props.content.url),poster:this.props.content.preview,alt:this.props.content.filename})),this.props.onSendMessage?l().createElement(da,{messagePrompt:"add_image_caption",acceptBlank:!0,tinode:this.props.tinode,reply:this.props.reply,onCancelReply:this.props.onCancelReply,onSendMessage:this.handleSendVideo,onError:this.props.onError}):l().createElement("div",{id:"image-preview-footer"},l().createElement("div",null,l().createElement("div",null,l().createElement("b",null,l().createElement(h.FormattedMessage,{id:"label_file_name",defaultMessage:[{type:0,value:"File name:"}]}))),l().createElement("div",null,l().createElement("span",{title:this.props.content.filename},this.props.content.filename))),l().createElement("div",null,l().createElement("div",null,l().createElement("b",null,l().createElement(h.FormattedMessage,{id:"label_content_type",defaultMessage:[{type:0,value:"Content type:"}]}))),l().createElement("div",null,this.props.content.type)),l().createElement("div",null,l().createElement("div",null,l().createElement("b",null,l().createElement(h.FormattedMessage,{id:"label_size",defaultMessage:[{type:0,value:"Size:"}]}))),l().createElement("div",null,e," × ",t," px; ",(0,js.lX)(this.props.content.size)))))}}var _a=(0,h.injectIntl)(Ma),Ta=r(7151);const Aa=(0,h.defineMessages)({online_now:{id:"online_now",defaultMessage:[{type:0,value:"online now"}]},last_seen:{id:"last_seen_timestamp",defaultMessage:[{type:0,value:"Last seen: "},{type:1,value:"timestamp"}]},not_found:{id:"title_not_found",defaultMessage:[{type:0,value:"Not found"}]},channel:{id:"channel",defaultMessage:[{type:0,value:"channel"}]},file_attachment_too_large:{id:"file_attachment_too_large",defaultMessage:[{type:0,value:"The file size "},{type:1,value:"size"},{type:0,value:" exceeds the "},{type:1,value:"limit"},{type:0,value:" limit."}]},invalid_content:{id:"invalid_content",defaultMessage:[{type:0,value:"invalid content"}]},editing_message:{id:"editing_message",defaultMessage:[{type:0,value:"Editing"}]},drag_file:{id:"drag_file",defaultMessage:[{type:0,value:"Drag file here"}]},self_topic_name:{id:"self_topic_name",defaultMessage:[{type:0,value:"Saved messages"}]},subscriber_count:{id:"subscriber_count",defaultMessage:[{type:6,value:"count",options:{one:{value:[{type:2,value:"count",style:null},{type:0,value:" subscriber"}]},two:{value:[{type:2,value:"count",style:null},{type:0,value:" subscribers"}]},three:{value:[{type:2,value:"count",style:null},{type:0,value:" subscribers"}]},few:{value:[{type:2,value:"count",style:null},{type:0,value:" subscribers"}]},many:{value:[{type:2,value:"count",style:null},{type:0,value:" subscribers"}]},other:{value:[{type:2,value:"count",style:null},{type:0,value:" subscribers"}]}},offset:0,pluralType:"cardinal"}]},member_count:{id:"member_count",defaultMessage:[{type:6,value:"count",options:{one:{value:[{type:2,value:"count",style:null},{type:0,value:" member"}]},two:{value:[{type:2,value:"count",style:null},{type:0,value:" members"}]},three:{value:[{type:2,value:"count",style:null},{type:0,value:" members"}]},few:{value:[{type:2,value:"count",style:null},{type:0,value:" members"}]},many:{value:[{type:2,value:"count",style:null},{type:0,value:" members"}]},other:{value:[{type:2,value:"count",style:null},{type:0,value:" members"}]}},offset:0,pluralType:"cardinal"}]}});function ka(e){if(e){const t=e.getExcessive()||"";return e.isJoiner("given")&&(t.includes("R")||t.includes("W"))}return!1}function Na(e){if(e){const t=e.getMissing()||"";return e.isJoiner("want")&&(t.includes("R")||t.includes("W"))}return!1}function Da(e){return 1==e||3==e}class Ia extends l().Component{constructor(e){super(e),this.state=Ia.getDerivedStateFromProps(e,{}),this.componentSetup=this.componentSetup.bind(this),this.leave=this.leave.bind(this),this.sendMessage=this.sendMessage.bind(this),this.retrySend=this.retrySend.bind(this),this.sendImageAttachment=this.sendImageAttachment.bind(this),this.sendVideoAttachment=this.sendVideoAttachment.bind(this),this.sendFileAttachment=this.sendFileAttachment.bind(this),this.sendAudioAttachment=this.sendAudioAttachment.bind(this),this.sendKeyPress=this.sendKeyPress.bind(this),this.subscribe=this.subscribe.bind(this),this.handleScrollReference=this.handleScrollReference.bind(this),this.mountDnDEvents=this.mountDnDEvents.bind(this),this.handleScrollEvent=this.handleScrollEvent.bind(this),this.handleDescChange=this.handleDescChange.bind(this),this.handleSubsUpdated=this.handleSubsUpdated.bind(this),this.handleMessageUpdate=this.handleMessageUpdate.bind(this),this.handleAuxUpdate=this.handleAuxUpdate.bind(this),this.handleAllMessagesReceived=this.handleAllMessagesReceived.bind(this),this.handleInfoReceipt=this.handleInfoReceipt.bind(this),this.handleExpandMedia=this.handleExpandMedia.bind(this),this.handleClosePreview=this.handleClosePreview.bind(this),this.handleCallPanelToggle=this.handleCallPanelToggle.bind(this),this.handleFormResponse=this.handleFormResponse.bind(this),this.handleContextClick=this.handleContextClick.bind(this),this.handleShowMessageContextMenu=this.handleShowMessageContextMenu.bind(this),this.handleNewChatAcceptance=this.handleNewChatAcceptance.bind(this),this.handleEnablePeer=this.handleEnablePeer.bind(this),this.handleAttachFile=this.handleAttachFile.bind(this),this.handleAttachImageOrVideo=this.handleAttachImageOrVideo.bind(this),this.handleCancelUpload=this.handleCancelUpload.bind(this),this.postReadNotification=this.postReadNotification.bind(this),this.clearNotificationQueue=this.clearNotificationQueue.bind(this),this.goToLatestMessage=this.goToLatestMessage.bind(this),this.handleFileDrop=this.handleFileDrop.bind(this),this.handlePickReply=this.handlePickReply.bind(this),this.handleEditMessage=this.handleEditMessage.bind(this),this.handleCancelReply=this.handleCancelReply.bind(this),this.handleQuoteClick=this.handleQuoteClick.bind(this),this.handleUnpinMessage=this.handleUnpinMessage.bind(this),this.handleCallHangup=this.handleCallHangup.bind(this),this.isDragEnabled=this.isDragEnabled.bind(this),this.handleDragStart=this.handleDragStart.bind(this),this.handleDragIn=this.handleDragIn.bind(this),this.handleDragOut=this.handleDragOut.bind(this),this.handleDrag=this.handleDrag.bind(this),this.handleDrop=this.handleDrop.bind(this),this.chatMessageRefs=[],this.getOrCreateMessageRef=this.getOrCreateMessageRef.bind(this),this.getVisibleMessageRange=this.getVisibleMessageRange.bind(this),this.dragCounter=0,this.dndRef=null,this.readNotificationQueue=[],this.readNotificationTimer=null,this.keyPressTimer=null}getOrCreateMessageRef(e){if(this.chatMessageRefs[e])return this.chatMessageRefs[e];const t=l().createRef();return this.chatMessageRefs[e]=t,t}getVisibleMessageRange(e){let t=Number.MAX_SAFE_INTEGER,s=-1,a=!1;return this.chatMessageRefs.every((i,n)=>{if(i.current){const{top:r,bottom:o,height:l}=i.current.getBoundingClientRect();if(r<=e.top?e.top-r<=l:o-e.bottom<=l)a=!0,t=Math.min(t,n),s=Math.max(s,n);else if(a)return!1}return!0}),s>=t?{min:t,max:s}:{min:0,max:0}}componentDidMount(){this.messagesScroller&&this.messagesScroller.addEventListener("scroll",this.handleScrollEvent),this.mountDnDEvents(this.dndRef),this.componentSetup({},{})}componentWillUnmount(){this.messagesScroller&&this.messagesScroller.removeEventListener("scroll",this.handleScrollEvent),this.clearNotificationQueue(),this.dndRef&&(this.dndRef.removeEventListener("dragstart",this.handleDragStart),this.dndRef.removeEventListener("dragenter",this.handleDragIn),this.dndRef.removeEventListener("dragleave",this.handleDragOut),this.dndRef.removeEventListener("dragover",this.handleDrag),this.dndRef.removeEventListener("drop",this.handleDrop))}componentDidUpdate(e,t){!this.messagesScroller||t.topic==this.state.topic&&t.maxSeqId==this.state.maxSeqId&&t.minSeqId==this.state.minSeqId||this.state.scrollPosition<100&&(this.messagesScroller.scrollTop=this.messagesScroller.scrollHeight-this.state.scrollPosition-this.messagesScroller.offsetHeight),this.props.applicationVisible?this.postReadNotification(0):this.clearNotificationQueue(),this.componentSetup(e,t)}componentSetup(e,t){const s=this.props.tinode?this.props.tinode.getTopic(this.state.topic):void 0;if(this.state.topic!=t.topic&&(t.topic&&!Ts.Tinode.isNewGroupTopicName(t.topic)&&(this.leave(t.topic),t.rtcPanel&&this.handleCallHangup(t.topic,e.callSeq)),s&&(s.onData=this.handleMessageUpdate,s.onAllMessagesReceived=this.handleAllMessagesReceived,s.onInfo=this.handleInfoReceipt,s.onMetaDesc=this.handleDescChange,s.onSubsUpdated=this.handleSubsUpdated,s.onPres=this.handleSubsUpdated,s.onAuxUpdated=this.handleAuxUpdate)),s)if(this.state.topic!=t.topic||this.props.myUserId&&!e.myUserId){const e=this.props.newTopicParams&&this.props.newTopicParams._topicName==this.props.topic;s.isP2PType()&&e&&!ks.rl?s.getMeta(s.startMetaQuery().withDesc().build()):this.props.myUserId&&this.subscribe(s)}else s.isSubscribed()&&this.state.isReader&&!t.isReader&&s.getMeta(s.startMetaQuery().withLaterData().build())}static getDerivedStateFromProps(e,t){let s={};if(e.topic)if(e.topic!=t.topic){const a=e.tinode.getTopic(e.topic);if(s={topic:e.topic,deleted:a._deleted,docPreview:null,imagePreview:null,imagePostview:null,videoPreview:null,videoPostview:null,rtcPanel:null,minimizedCallPanel:!1,typingIndicator:!1,scrollPosition:0,fetchingMessages:!1,showGoToLastButton:!1,contentToEdit:null,dragging:!1,selectedPin:0},e.forwardMessage?s.reply={content:e.forwardMessage.preview,seq:null}:s.reply=null,a){const i=[];e.connected&&a.subscribers(t=>{t.online&&t.user!=e.myUserId&&i.push(t)}),Object.assign(s,{onlineSubs:i}),a.isSelfType()?Object.assign(s,{title:e.intl.formatMessage(Aa.self_topic_name),avatar:!0}):a.public?Object.assign(s,{title:a.public.fn,avatar:(0,Os.to)(a.public.photo)}):Object.assign(s,{title:"",avatar:null});const n=a.p2pPeerDesc();n?Object.assign(s,{peerMessagingDisabled:Na(n.acs)}):t.peerMessagingDisabled&&Object.assign(s,{peerMessagingDisabled:!1}),Object.assign(s,{minSeqId:a.minMsgSeq(),maxSeqId:a.maxMsgSeq(),latestClearId:a.maxClearId(),channel:a.isChannelType(),pins:(a.aux("pins")||[]).slice(),pinsLoaded:!1}),e.callTopic==a.name&&Da(e.callState)&&(s.rtcPanel=e.callTopic)}else Object.assign(s,{minSeqId:-1,maxSeqId:-1,latestClearId:-1,onlineSubs:[],title:"",avatar:null,peerMessagingDisabled:!1,channel:!1,pins:[],pinsLoaded:!1})}else e.callTopic==t.topic&&!t.rtcPanel&&Da(e.callState)&&(s.rtcPanel=e.callTopic);else s={minSeqId:-1,maxSeqId:-1,latestClearId:-1,onlineSubs:[],topic:null,title:"",avatar:null,isVerified:!1,isStaff:!1,isDangerous:!1,deleted:!1,docPreview:null,imagePreview:null,imagePostview:null,videoPreview:null,videoPostview:null,rtcPanel:null,minimizedCallPanel:!1,typingIndicator:!1,scrollPosition:0,fetchingMessages:!1,peerMessagingDisabled:!1,channel:!1,reply:null,contentToEdit:null,showGoToLastButton:!1,dragging:!1,pins:[],pinsLoaded:!1,selectedPin:0,subsVersion:0};return e.acs?(e.acs.isWriter()!=t.isWriter&&(s.isWriter=!t.isWriter),e.acs.isReader()!=t.isReader&&(s.isReader=!t.isReader),e.acs.isAdmin()!=t.isAdmin&&(s.isAdmin=!t.isAdmin),!e.acs.isReader("given")!=t.readingBlocked&&(s.readingBlocked=!t.readingBlocked),e.acs.isSharer()!=t.isSharer&&(s.isSharer=!t.isSharer)):(t.isWriter&&(s.isWriter=!1),t.isReader&&(s.isReader=!1),t.isAdmin&&(s.isAdmin=!1),t.readingBlocked||(t.readingBlocked=!0),t.isSharer&&(s.isSharer=!1)),ka(e.acs)==!t.unconformed&&(s.unconfirmed=!t.unconformed),!e.connected&&t.onlineSubs&&t.onlineSubs.length>0&&(s.onlineSubs=[]),s}subscribe(e){if(e.isSubscribed()||!this.props.ready)return;const t=this.props.newTopicParams&&this.props.newTopicParams._topicName==this.props.topic;let s=e.startMetaQuery().withLaterDesc().withLaterSub().withAux();(this.state.isReader||t)&&(s=s.withLaterData(ks.H1),this.state.isReader&&(s=s.withLaterDel()),this.setState({fetchingMessages:!0}));const a=t?this.props.newTopicParams:void 0;e.subscribe(s.build(),a).then(t=>{if(303==t.code)return void Ta.A.navigateTo(Ta.A.setUrlTopic("",t.params.topic));this.state.topic!=t.topic&&this.setState({topic:t.topic}),this.state.deleted&&this.setState({deleted:!1}),this.props.onNewTopicCreated(this.props.topic,t.topic);let s=[];e.queuedMessages(t=>{t._sending||(t._fatal||t.head&&t.head.webrtc?s.push(t.seq):e.isSubscribed()&&this.retrySend(t))}),s.length>0&&e.delMessagesList(s,!0)}).catch(e=>{console.error("Failed subscription to",this.state.topic,e),this.props.onError(e.message,"err");const t=Ia.getDerivedStateFromProps({},{});t.title=this.props.intl.formatMessage(Aa.not_found),this.setState(t)})}leave(e){if(!e||!this.props.tinode.isTopicCached(e))return;const t=this.props.tinode.getTopic(e);t&&t.isSubscribed()&&t.leave(!1).catch(e=>{}).finally(e=>{this.setState({fetchingMessages:!1}),t.onData=void 0,t.onAllMessagesReceived=void 0,t.onInfo=void 0,t.onMetaDesc=void 0,t.onSubsUpdated=void 0,t.onPres=void 0,t.onAuxUpdated=void 0})}handleScrollReference(e){e&&(e.addEventListener("scroll",this.handleScrollEvent),this.messagesScroller=e,this.messagesScroller.scrollTop=this.messagesScroller.scrollHeight-this.state.scrollPosition-this.messagesScroller.offsetHeight)}handleScrollEvent(e){const t=e.target.scrollHeight-e.target.scrollTop-e.target.offsetHeight;if(this.setState({scrollPosition:t,showGoToLastButton:t>100&&t0&&this.setState({fetchingMessages:!0},e=>{t.getMessagesPage(ks.H1,i,s,a).catch(e=>this.props.onError(e.message,"err")).finally(e=>this.setState({fetchingMessages:!1}))})}}this.processingScrollEvent=!1}}mountDnDEvents(e){e&&(e.addEventListener("dragstart",this.handleDragStart),e.addEventListener("dragenter",this.handleDragIn),e.addEventListener("dragleave",this.handleDragOut),e.addEventListener("dragover",this.handleDrag),e.addEventListener("drop",this.handleDrop),this.dndRef=e)}goToLatestMessage(){this.setState({scrollPosition:0}),this.messagesScroller&&(this.messagesScroller.scrollTop=this.messagesScroller.scrollHeight-this.messagesScroller.offsetHeight)}handleDescChange(e){Ts.Tinode.isSelfTopicName(this.props.topic)?this.setState({title:this.props.intl.formatMessage(Aa.self_topic_name),avatar:!0}):e.public?this.setState({title:e.public.fn,avatar:(0,Os.to)(e.public.photo)}):this.setState({title:"",avatar:null}),e.acs&&this.setState({isWriter:e.acs.isWriter(),isReader:e.acs.isReader(),isAdmin:e.acs.isAdmin(),readingBlocked:!e.acs.isReader("given"),unconfirmed:ka(e.acs)})}postReadNotification(e){if(!this.props.applicationVisible||!this.state.topic)return;this.readNotificationTimer||(this.readNotificationTimer=setInterval(e=>{if(0==this.readNotificationQueue.length)return clearInterval(this.readNotificationTimer),void(this.readNotificationTimer=null);let t=-1;for(;this.readNotificationQueue.length>0;){const e=this.readNotificationQueue[0];if(e.topicName!=this.state.topic){this.readNotificationQueue.shift();continue}const s=new Date;if(!(e.sendAt<=s))break;this.readNotificationQueue.shift(),(0==e.seq||Ts.Tinode.isServerAssignedSeq(e.seq))&&(t=Math.max(t,e.seq))}if(t>=0){const e=this.props.tinode.getTopic(this.state.topic);if(e)try{e.noteRead(t)}catch(e){console.error("Failed to send read notification",e)}}},300));const t=new Date;this.readNotificationQueue.push({topicName:this.state.topic,seq:e,sendAt:t.setMilliseconds(t.getMilliseconds()+ks.J)})}clearNotificationQueue(){this.readNotificationQueue=[],this.readNotificationTimer&&(clearInterval(this.readNotificationTimer),this.readNotificationTimer=null)}handleSubsUpdated(){if(this.state.topic){const e=[],t=this.props.tinode.getTopic(this.state.topic);t.subscribers(t=>{t.online&&t.user!=this.props.myUserId&&e.push(t)});const s={onlineSubs:e,subsVersion:this.state.subsVersion+1},a=t.p2pPeerDesc();a?Object.assign(s,{peerMessagingDisabled:Na(a.acs)}):this.state.peerMessagingDisabled&&Object.assign(s,{peerMessagingDisabled:!1}),this.setState(s)}}handleMessageUpdate(e){if(!this.state.topic)return;const t=this.props.tinode.getTopic(this.state.topic);if(!e)return void this.setState({latestClearId:t.maxClearId()});clearTimeout(this.keyPressTimer),this.setState({maxSeqId:t.maxMsgSeq(),minSeqId:t.minMsgSeq(),typingIndicator:!1},s=>{t.isNewMessage(e.seq)?this.state.scrollPosition>100?this.setState({showGoToLastButton:!0}):this.goToLatestMessage():this.messagesScroller&&(this.messagesScroller.scrollTop=this.messagesScroller.scrollHeight-this.state.scrollPosition-this.messagesScroller.offsetHeight)});t.msgStatus(e,!0)>=Ts.Tinode.MESSAGE_STATUS_SENT&&e.from!=this.props.myUserId&&this.postReadNotification(e.seq)}handleAllMessagesReceived(e){if(this.setState({fetchingMessages:!1}),!e){const e=this.props.tinode.getTopic(this.state.topic);return void(e&&this.postReadNotification(e.seq))}if(this.state.pinsLoaded)this.setState({pinsLoaded:!1});else{const e=this.props.tinode.getTopic(this.state.topic);this.setState({pinsLoaded:!0},t=>{e.getPinnedMessages()})}}handleAuxUpdate(e){const t=(e.pins||[]).slice();let s=this.state.selectedPin;t.length>this.state.pins.length?s=0:s>=t.length&&(s=Math.max(0,t.length-1)),this.setState({pins:t,selectedPin:s})}handleInfoReceipt(e){switch(e.what){case"kp":clearTimeout(this.keyPressTimer),this.keyPressTimer=setTimeout(e=>this.setState({typingIndicator:!1}),ks.NR+1e3),this.state.typingIndicator||this.setState({typingIndicator:!0});break;case"read":case"recv":this.forceUpdate();break;default:console.info("Other change in topic: ",e.what)}}handleExpandMedia(e){e&&(e.video?this.setState({videoPostview:e}):this.setState({imagePostview:e}))}handleClosePreview(){this.state.imagePreview&&this.state.imagePreview.url&&URL.revokeObjectURL(this.state.imagePreview.url),this.state.videoPreview&&this.state.videoPreview.url&&URL.revokeObjectURL(this.state.videoPreview.url),this.setState({imagePostview:null,imagePreview:null,docPreview:null,videoPreview:null,videoPostview:null})}handleFormResponse(e,t,s){if("pub"==e)this.sendMessage(Ts.Drafty.attachJSON(Ts.Drafty.parse(t),s));else if("url"==e){const e=new URL(s.ref),t=e.searchParams;for(let e in s.resp)s.resp.hasOwnProperty(e)&&t.set(e,s.resp[e]);["name","seq"].forEach(e=>{s[e]&&t.set(e,s[e])}),t.set("uid",this.props.myUserId),t.set("topic",this.state.topic),e.search=t,window.open(e,"_blank")}else console.info("Unknown action in form",e)}handleContextClick(e){e.preventDefault(),e.stopPropagation(),this.props.showContextMenu({topicName:this.state.topic,y:e.pageY,x:e.pageX})}handleShowMessageContextMenu(e,t){"chan"==e.userFrom&&(e.userFrom=this.state.topic,e.userName=this.state.title),e.topicName=this.state.topic;const s=t||[],a=this.props.tinode.getTopic(e.topicName);if(a)if(a.isSelfType())s.push("message_delete_generic");else{a.isChannelType()||s.push("message_delete");const t=a.getAccessMode();if(t&&t.isDeleter()){let a=t.isOwner();if(!a){const t=0|this.props.tinode.getServerParam(Ts.Tinode.MSG_DELETE_AGE,0);a=0==t||!!(t>0&&e.timestamp)&&e.timestamp.getTime()>(new Date).getTime()-1e3*t}a&&s.push("message_delete_hard")}}this.props.showContextMenu(e,s)}handleNewChatAcceptance(e){this.props.onNewChat(this.state.topic,e)}handleEnablePeer(e){e.preventDefault(),this.props.onChangePermissions(this.state.topic,ks.cZ,this.state.topic)}sendKeyPress(e){const t=this.props.tinode.getTopic(this.state.topic);t.isSubscribed()&&(e?t.noteRecording(!0):t.noteKeyPress())}sendMessage(e,t,s){let a;if(this.props.forwardMessage)e=this.props.forwardMessage.msg,a=this.props.forwardMessage.head,this.handleCancelReply();else if(this.state.reply){if(this.state.reply.editing){if(e==this.state.contentToEdit)return void this.handleCancelReply();a={replace:":"+this.state.reply.seq}}else this.state.reply.content&&(a={reply:""+this.state.reply.seq},"string"==typeof e&&(e=Ts.Drafty.parse(e)),e=Ts.Drafty.append(Ts.Drafty.sanitizeEntities(this.state.reply.content),e));this.handleCancelReply()}this.props.sendMessage(e,t,s,a)}retrySend(e){this.props.sendMessage(e.content,void 0,void 0,e.head).then(t=>{this.props.tinode.getTopic(this.state.topic).delMessagesList([e.seq],!0)})}sendFileAttachment(e){const t=.75*this.props.tinode.getServerParam("maxMessageSize",ks.mp)-1024|0,s=e=>e===ks.Uv?"application/octet-stream":e;if(e.size>t){const t=this.props.tinode.getLargeFileHelper();if(!t)return void this.props.onError(this.props.intl.formatMessage(Aa.cannot_initiate_upload));const a=t.upload(e),i=Ts.Drafty.attachFile(null,{mime:s(e.type),filename:e.name,size:e.size,urlPromise:a});this.sendMessage(i,a,t)}else(0,Os.bB)(e).then(t=>this.sendMessage(Ts.Drafty.attachFile(null,{mime:s(t.mime),data:t.bits,filename:t.name,size:e.size}))).catch(e=>this.props.onError(e.message,"err"))}handleAttachFile(e){const t=this.props.tinode.getServerParam("maxFileUploadSize",ks.qy);e.size>t?this.props.onError(this.props.intl.formatMessage(Aa.file_attachment_too_large,{size:(0,js.lX)(e.size),limit:(0,js.lX)(t)}),"err"):this.setState({docPreview:{file:e,name:e.name,size:e.size,type:e.type}})}handleCallHangup(e,t){this.props.onVideoCallClosed(),this.setState({rtcPanel:null}),this.props.onCallHangup(e,t)}handleCallPanelToggle(){this.setState({minimizedCallPanel:!this.state.minimizedCallPanel})}sendImageAttachment(e,t){const s=this.state.imagePreview.mime,a=this.state.imagePreview.width,i=this.state.imagePreview.height,n=this.state.imagePreview.filename,r=.75*this.props.tinode.getServerParam("maxMessageSize",ks.mp)-1024|0;if(t.size>r){const r=this.props.tinode.getLargeFileHelper();if(!r)return void this.props.onError(this.props.intl.formatMessage(Aa.cannot_initiate_upload));const o=r.upload(t);return void(0,Os.ag)(t,ks.wj,ks.wj,-1,!1).then(e=>(0,Os.Sk)(e.blob)).then(l=>{let c=Ts.Drafty.insertImage(null,0,{mime:s,_tempPreview:l.bits,bits:l.bits,width:a,height:i,filename:n,size:t.size,urlPromise:o});e&&(c=Ts.Drafty.appendLineBreak(c),c=Ts.Drafty.append(c,Ts.Drafty.parse(e))),this.sendMessage(c,o,r)}).catch(e=>this.props.onError(e,"err"))}(0,Os.Sk)(t).then(s=>{let r=Ts.Drafty.insertImage(null,0,{mime:s.mime,bits:s.bits,width:a,height:i,filename:n,size:t.size});e&&(r=Ts.Drafty.appendLineBreak(r),r=Ts.Drafty.append(r,Ts.Drafty.parse(e))),this.sendMessage(r)})}sendVideoAttachment(e,t,s,a){const i=a.width,n=a.height,r=.75*this.props.tinode.getServerParam("maxMessageSize",ks.mp)-1024|0,o=[];let l;if(t.size+s.size>r){if(l=this.props.tinode.getLargeFileHelper(),!l)return void this.props.onError(this.props.intl.formatMessage(Aa.cannot_initiate_upload));o[0]=t.size>.675*r?l.upload(t):null,o[1]=s.size>.275*r?l.upload(s):null}if(0==o.length)return void Promise.all([(0,Os.Sk)(t),(0,Os.Sk)(s)]).then(s=>{const[r,o]=s;let l=Ts.Drafty.insertVideo(null,0,{mime:r.mime,bits:r.bits,preview:o.bits,premime:o.mime,width:i,height:n,duration:a.duration,filename:a.name,size:t.size});e&&(l=Ts.Drafty.appendLineBreak(l),l=Ts.Drafty.append(l,Ts.Drafty.parse(e))),this.sendMessage(l)});const c=Promise.all(o),h=[];h[0]=o[0]?null:(0,Os.Sk)(t),h[1]=o[1]?null:(0,Os.ag)(s,ks.QG,ks.QG,-1,!1).then(e=>(0,Os.Sk)(e.blob)),h[2]=(0,Os.ag)(s,ks.Cx,ks.Cx,-1,!1).then(e=>(0,Os.Sk)(e.blob)),Promise.all(h).then(s=>{const[r,o,h]=s;let d=Ts.Drafty.insertVideo(null,0,{mime:a.mime,bits:r?r.bits:null,_tempPreview:h.bits,preview:o?o.bits:h.bits,premime:o?o.mime:h.mime,width:i,height:n,duration:a.duration,filename:a.name,size:t.size,urlPromise:c});e&&(d=Ts.Drafty.appendLineBreak(d),d=Ts.Drafty.append(d,Ts.Drafty.parse(e))),this.sendMessage(d,c,l)}).catch(e=>this.props.onError(e.message,"err"))}handleAttachImageOrVideo(e){const t=this.props.tinode.getServerParam("maxFileUploadSize",ks.qy);e.type.startsWith("video/")?this.setState({videoPreview:{url:URL.createObjectURL(e),blob:e,filename:e.name,size:e.size,mime:e.type}}):(0,Os.ag)(e,ks.QG,ks.QG,t,!1).then(e=>{this.setState({imagePreview:{url:URL.createObjectURL(e.blob),blob:e.blob,filename:e.name,width:e.width,height:e.height,size:e.blob.size,mime:e.mime}})}).catch(e=>{this.props.onError(e.message,"err")})}handleFileDrop(e){if(!e||0==e.length)return;const t=e[0];t.type&&t.type.startsWith("image/")?this.handleAttachImageOrVideo(t):this.handleAttachFile(t)}sendAudioAttachment(e,t,s){fetch(e).then(e=>e.blob()).then(e=>{const a=.75*this.props.tinode.getServerParam("maxMessageSize",ks.mp)-1024;if(e.size>a){const a=this.props.tinode.getLargeFileHelper();if(!a)return void this.props.onError(this.props.intl.formatMessage(Aa.cannot_initiate_upload));const i=a.upload(e),n=Ts.Drafty.appendAudio(null,{mime:e.type,size:e.size,duration:s,preview:t,urlPromise:i});this.sendMessage(n,i,a)}else(0,Os.Sk)(e).then(a=>{this.sendMessage(Ts.Drafty.appendAudio(null,{mime:a.mime,bits:a.bits,size:e.size,duration:s,preview:t}))})}).catch(e=>{this.props.onError(e.message,"err")})}handleCancelUpload(e,t){const s=this.props.tinode.getTopic(this.state.topic).findMessage(e);s&&(s._cancelled=!0),t.cancel()}handlePickReply(e,t,s,a){e&&t?(t="string"==typeof t?Ts.Drafty.init(t):t,t=Ts.Drafty.isValid(t)?Ts.Drafty.replyContent(t,ks.Rz):Ts.Drafty.append(Ts.Drafty.init("⚠ "),Ts.Drafty.wrapInto(this.props.intl.formatMessage(Aa.invalid_content),"EM")),this.setState({reply:{content:Ts.Drafty.quote(a,s,t),seq:e}}),this.props.onCancelForwardMessage()):this.setState({reply:null})}handleEditMessage(e,t){if(!e||!t)return void this.setState({reply:null});t="string"==typeof t?Ts.Drafty.init(t):t;const s=Ts.Drafty.toMarkdown(t);t=Ts.Drafty.isValid(t)?Ts.Drafty.replyContent(t,ks.hB):Ts.Drafty.append(Ts.Drafty.init("⚠ "),Ts.Drafty.wrapInto(this.props.intl.formatMessage(Aa.invalid_content),"EM")),this.setState({reply:{content:Ts.Drafty.quote(this.props.intl.formatMessage(Aa.editing_message),null,t),seq:e,editing:!0},contentToEdit:s}),this.props.onCancelForwardMessage()}handleCancelReply(){this.setState({reply:null,contentToEdit:null}),this.props.onCancelForwardMessage()}handleQuoteClick(e){const t=this.getOrCreateMessageRef(e);t&&t.current?(t.current.scrollIntoView({block:"center",behavior:"smooth"}),t.current.classList.add("flash"),setTimeout(e=>{t.current.classList.remove("flash")},1e3)):console.error("Unresolved message ref",e)}handleUnpinMessage(e){this.props.tinode.getTopic(this.state.topic).pinMessage(e,!1)}isDragEnabled(){return this.state.isWriter&&!this.state.unconfirmed&&!this.props.forwardMessage&&!this.state.peerMessagingDisabled}handleDragStart(e){e.preventDefault(),e.stopPropagation(),e.dataTransfer.clearData()}handleDragIn(e){e.preventDefault(),e.stopPropagation(),this.dragCounter++,e.dataTransfer.items&&e.dataTransfer.items.length>0&&this.setState({dragging:!0})}handleDragOut(e){e.preventDefault(),e.stopPropagation(),this.dragCounter--,this.dragCounter<=0&&this.setState({dragging:!1})}handleDrag(e){e.preventDefault(),e.stopPropagation()}handleDrop(e){e.preventDefault(),e.stopPropagation(),this.setState({dragging:!1}),this.isDragEnabled()&&e.dataTransfer.files&&e.dataTransfer.files.length>0&&(this.handleFileDrop(e.dataTransfer.files),this.dragCounter=0)}render(){const{formatMessage:e}=this.props.intl,t=this.state.rtcPanel?l().createElement(Qs,{topic:this.state.topic,seq:this.props.callSeq,callState:this.props.callState,callAudioOnly:this.props.callAudioOnly,tinode:this.props.tinode,title:this.state.title,avatar:this.state.avatar||!0,minimized:this.state.minimizedCallPanel,onError:this.props.onError,onHangup:this.handleCallHangup,onToggleMinimize:this.handleCallPanelToggle,onInvite:this.props.onCallInvite,onSendOffer:this.props.onCallSendOffer,onIceCandidate:this.props.onCallIceCandidate,onSendAnswer:this.props.onCallSendAnswer}):null;let s;if(this.state.topic){let a;if(this.state.imagePreview)a=l().createElement(ga,{content:this.state.imagePreview,tinode:this.props.tinode,reply:this.state.reply,onCancelReply:this.handleCancelReply,onClose:this.handleClosePreview,onSendMessage:this.sendImageAttachment});else if(this.state.videoPreview)a=l().createElement(_a,{content:this.state.videoPreview,tinode:this.props.tinode,reply:this.state.reply,onError:this.props.onError,onCancelReply:this.handleCancelReply,onClose:this.handleClosePreview,onSendMessage:this.sendVideoAttachment});else if(this.state.imagePostview)a=l().createElement(ga,{content:this.state.imagePostview,onClose:this.handleClosePreview});else if(this.state.videoPostview)a=l().createElement(_a,{content:this.state.videoPostview,tinode:this.props.tinode,onError:this.props.onError,onClose:this.handleClosePreview});else if(this.state.docPreview)a=l().createElement(pa,{content:this.state.docPreview,tinode:this.props.tinode,reply:this.state.reply,onCancelReply:this.handleCancelReply,onClose:this.handleClosePreview,onSendMessage:this.sendFileAttachment});else{const t=this.props.tinode.getTopic(this.state.topic),s=t.isChannelType()||t.chan,i=t.isGroupType()&&!s,n=[];t.trusted&&(t.trusted.verified&&n.push({icon:"verified",color:"badge-inv"}),t.trusted.staff&&n.push({icon:"staff",color:"badge-inv"}),t.trusted.danger&&n.push({icon:"dangerous",color:"badge-inv"}));const r=[];this.state.pins.forEach(e=>r.push(t.latestMsgVersion(e)||t.findMessage(e)));const o=[];let c=null,d=null,p=null;t.messages((e,s,a,n)=>{let r=a?a.from||"chan":null,h="single",u=e.from||"chan";u==c?h=u==r?"middle":"last":u==r&&(h="first"),c=u;const m=!(u==this.props.myUserId),g=t.msgStatus(e,!0);let f,v,b=u;const E=t.userDesc(u);E&&E.public&&(f=E.public.fn,v=(0,Os.to)(E.public.photo)),p=i?"chat-box group":"chat-box";const y=this.getOrCreateMessageRef(e.seq);let w=e.head?parseInt(e.head.reply):null;if(w&&!isNaN(w)||(w=null),e.hi)o.push(l().createElement(Ea,{deleted:!0,key:e.seq}));else{const t=new Date(e.ts);d&&d.toDateString()==t.toDateString()||(o.push(l().createElement(Ea,{date:(0,js.mf)(e.ts),locale:this.props.intl.locale,key:"date-"+e.seq})),d=t),o.push(l().createElement(ra,{tinode:this.props.tinode,topic:this.state.topic,content:e.content,mimeType:e.head&&e.head.mime,replyToSeq:w,edited:e.head&&!e.head.webrtc&&e.head.replace,timestamp:e.ts,response:m,seq:e.seq,isGroup:i,isChan:this.state.channel,userFrom:b,userName:f,userAvatar:v,sequence:h,received:g,uploader:e._uploader,userIsWriter:this.state.isWriter,userIsAdmin:this.state.isAdmin,pinned:this.state.pins.includes(e.seq),viewportWidth:this.props.viewportWidth,showContextMenu:this.handleShowMessageContextMenu,onExpandMedia:this.handleExpandMedia,onFormResponse:this.handleFormResponse,onCancelUpload:this.handleCancelUpload,pickReply:this.handlePickReply,editMessage:this.handleEditMessage,onQuoteClick:this.handleQuoteClick,onAcceptCall:this.props.onAcceptCall,onError:this.props.onError,ref:y,key:e.seq}))}});let u=null;if(s)u=e(Aa.subscriber_count,{count:t.subcnt});else{const s=this.props.tinode.getMeTopic().getContact(this.state.topic);s&&(Ts.Tinode.isP2PTopicName(s.topic)?s.online?u=e(Aa.online_now):s.seen&&(u=e(Aa.last_seen,{timestamp:(0,js.cq)(s.seen.when,this.props.intl.locale)})):Ts.Tinode.isGroupTopicName(s.topic)&&(u=e(Aa.member_count,{count:t.subcnt})))}const m=this.state.avatar||!0,g=this.state.deleted||t.isSelfType()?null:this.props.online?"online"+(this.state.typingIndicator?" typing":""):"offline",f="panel-title"+(this.state.deleted?" deleted":""),v="dark"==this.props.colorSchema?"dark":"";let b=l().createElement(l().Fragment,null,l().createElement("div",{id:"messages-container",className:v},l().createElement("button",{id:"go-to-latest",className:"action-button"+(this.state.showGoToLastButton?"":" hidden"),onClick:this.goToLatestMessage},l().createElement("i",{className:"material-icons"},"arrow_downward")),l().createElement("div",{id:"messages-panel",ref:this.handleScrollReference},l().createElement("ul",{id:"scroller",className:p},o)),this.state.isReader?null:l().createElement("div",{id:"write-only-background"},this.state.readingBlocked?l().createElement("div",{id:"write-only-note"},l().createElement(h.FormattedMessage,{id:"messages_not_readable",defaultMessage:[{type:0,value:"no access to messages"}]})):null)),this.state.peerMessagingDisabled&&!this.state.unconfirmed?l().createElement("div",{id:"peer-messaging-disabled-note"},l().createElement("i",{className:"material-icons secondary"},"block")," ",l().createElement(h.FormattedMessage,{id:"peers_messaging_disabled",defaultMessage:[{type:0,value:"Peer's messaging is disabled."}]})," ",l().createElement("a",{href:"#",onClick:this.handleEnablePeer},l().createElement(h.FormattedMessage,{id:"enable_peers_messaging",defaultMessage:[{type:0,value:"Enable"}]})),"."):null,this.state.unconfirmed?l().createElement(fa,{onAction:this.handleNewChatAcceptance}):l().createElement(da,{tinode:this.props.tinode,topicName:this.state.topic,noInput:!!this.props.forwardMessage,disabled:!this.state.isWriter||this.state.deleted,reply:this.state.reply,initMessage:this.state.contentToEdit,sendOnEnter:this.props.sendOnEnter,onKeyPress:this.sendKeyPress,onRecordingProgress:this.sendKeyPress,onSendMessage:this.sendMessage,onAttachFile:this.props.forwardMessage?null:this.handleAttachFile,onAttachImage:this.props.forwardMessage?null:this.handleAttachImageOrVideo,onAttachAudio:this.props.forwardMessage?null:this.sendAudioAttachment,onError:this.props.onError,onQuoteClick:this.handleQuoteClick,onCancelReply:this.handleCancelReply}));a=l().createElement(l().Fragment,null,l().createElement("div",{id:"topic-caption-panel",className:"caption-panel"},this.props.displayMobile?l().createElement("a",{href:"#",id:"hide-message-view",onClick:e=>{e.preventDefault(),this.leave(this.state.topic),this.props.onHideMessagesView()}},l().createElement("i",{className:"material-icons"},"arrow_back")):null,l().createElement("div",{className:"avatar-box"},l().createElement(Us.A,{tinode:this.props.tinode,avatar:m,topic:this.state.topic,title:this.state.title,deleted:this.state.deleted}),s?null:l().createElement("span",{className:g})),l().createElement("div",{id:"topic-title-group"},l().createElement("div",{id:"topic-title",className:f},this.state.title||l().createElement("i",null,l().createElement(h.FormattedMessage,{id:"unnamed_topic",defaultMessage:[{type:0,value:"Unnamed"}]})),l().createElement(oa.A,{badges:n})),l().createElement("div",{id:"topic-last-seen"},u)),l().createElement("div",{style:{marginLeft:"auto"}}),!this.props.displayMobile&&this.state.pins.length>0?l().createElement(Ca,{tinode:this.props.tinode,pins:this.state.pins,messages:r,selected:this.state.selectedPin,isAdmin:this.state.isAdmin,setSelected:e=>this.setState({selectedPin:e}),onSelected:this.handleQuoteClick,onCancel:this.handleUnpinMessage}):null,i?l().createElement(ma,{tinode:this.props.tinode,subscribers:this.state.onlineSubs}):null,l().createElement("div",null,l().createElement("a",{href:"#",onClick:this.handleContextClick},l().createElement("i",{className:"material-icons"},"more_vert")))),this.props.displayMobile?l().createElement(l().Fragment,null,this.state.pins.length>0?l().createElement(Ca,{tinode:this.props.tinode,pins:this.state.pins,messages:r,selected:this.state.selectedPin,isAdmin:this.state.isAdmin,setSelected:e=>this.setState({selectedPin:e}),onSelected:this.handleQuoteClick,onCancel:this.handleUnpinMessage}):null,l().createElement(ua.A,{level:this.props.errorLevel,text:this.props.errorText,onClearError:this.props.onError})):null,l().createElement(va.A,{show:this.state.fetchingMessages}),b,this.state.dragging&&this.isDragEnabled()?l().createElement("div",{className:"drag-n-drop"},e(Aa.drag_file)):null)}s=l().createElement("div",{id:"topic-view",ref:this.mountDnDEvents},a,t)}else s=l().createElement(ba,{serverVersion:this.props.serverVersion,serverAddress:this.props.serverAddress});return s}}var Pa=(0,h.injectIntl)(Ia);class Fa extends l().PureComponent{render(){return l().createElement("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onBack()}},l().createElement("i",{className:"material-icons"},"arrow_back"))}}class Ra extends l().PureComponent{render(){return l().createElement("div",null,l().createElement("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onNewTopic()}},l().createElement("i",{className:"material-icons"},"chat"))," ",l().createElement("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onSettings()}},l().createElement("i",{className:"material-icons"},"settings")))}}class xa extends l().PureComponent{render(){return l().createElement("div",null,l().createElement("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onSignUp()}},l().createElement("i",{className:"material-icons"},"person_add"))," ",l().createElement("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onSettings()}},l().createElement("i",{className:"material-icons"},"settings")))}}class Ua extends l().PureComponent{render(){const e=[];this.props.trustedBadges&&this.props.trustedBadges.forEach(t=>{e.push({icon:t,color:"badge-inv"})});let t=null;return this.props.tinode&&(t=this.props.tinode.authorizeURL((0,Xs.wk)(this.props.avatar,"image"))),l().createElement("div",{id:"side-caption-panel",className:"caption-panel"},this.props.onCancel?l().createElement(Fa,{onBack:this.props.onCancel}):null,t?l().createElement("div",{id:"self-avatar",className:"avatar-box"},l().createElement(Us.A,{tinode:this.props.tinode,avatar:t,topic:this.props.myUserId,title:this.props.title})):null,l().createElement("div",{id:"sidepanel-title",className:"panel-title"},this.props.title,l().createElement(oa.A,{badges:e})),"login"===this.props.state?l().createElement(xa,{onSignUp:this.props.onSignUp,onSettings:this.props.onSettings}):"contacts"===this.props.state?l().createElement(Ra,{onNewTopic:this.props.onNewTopic,onSettings:this.props.onSettings}):null)}}var La=r(8089);const Oa=(0,h.defineMessages)({archived_contacts_title:{id:"archived_contacts",defaultMessage:[{type:0,value:"Archived contacts ("},{type:1,value:"count"},{type:0,value:")"}]}});class ja extends l().Component{constructor(e){super(e),this.handleAction=this.handleAction.bind(this),this.state=ja.deriveStateFromProps(e)}static deriveStateFromProps(e){const t=[];let s=0,a=0;const i=e.tinode.getMeTopic();return e.chatList.forEach(n=>{const r=n.acs&&!n.acs.isJoiner();n.pinned=i.pinnedTopicRank(n.topic),r&&e.blocked&&t.push(n),r||e.blocked||(n.private&&n.private.arch?e.archive?t.push(n):a++:e.archive||(t.push(n),s+=n.unread>0?1:0))}),t.sort((e,t)=>{const s=t.pinned-e.pinned;return 0!=s?s:(t.touched||0)-(e.touched||0)}),a>0&&t.push({action:"archive",title:Oa.archived_contacts_title,values:{count:a}}),{contactList:t,unreadThreads:s}}componentDidUpdate(e,t){if(e.chatList!=this.props.chatList||e.archive!=this.props.archive||e.blocked!=this.props.blocked){const e=ja.deriveStateFromProps(this.props);this.setState(e),e.unreadThreads!=t.unreadThreads&&(0,Xs.OM)(e.unreadThreads)}}handleAction(e){this.props.onShowArchive()}render(){return l().createElement(h.FormattedMessage,{id:"contacts_not_found",defaultMessage:[{type:0,value:"You have no chats"},{type:0,value:"
"},{type:0,value:"¯∖_(ツ)_/¯"}]},e=>l().createElement(Ps.A,{tinode:this.props.tinode,connected:this.props.connected,contacts:this.state.contactList,emptyListMessage:e,topicSelected:this.props.topicSelected,myUserId:this.props.myUserId,showOnline:!0,showUnread:!0,onTopicSelected:this.props.onTopicSelected,showContextMenu:this.props.showContextMenu,onAction:this.handleAction}))}}class Ba extends l().PureComponent{constructor(e){super(e),this.state={colorSchema:e.colorSchema||"auto",textSize:10*e.textSize||"100",sendOnEnter:e.sendOnEnter||"plain"},this.isMac=(navigator.userAgentData&&navigator.userAgentData.platform||navigator.platform).toLowerCase().startsWith("mac"),this.handleColorSchemaSelected=this.handleColorSchemaSelected.bind(this),this.handleTextSizeChanged=this.handleTextSizeChanged.bind(this),this.handleSendOnEnterSelected=this.handleSendOnEnterSelected.bind(this)}handleColorSchemaSelected(e){this.setState({colorSchema:e.currentTarget.value}),this.props.onChangeColorSchema(e.currentTarget.value)}handleTextSizeChanged(e){this.setState({textSize:e.currentTarget.value}),this.props.onTextSizeChanged(e.currentTarget.value/10|0)}handleSendOnEnterSelected(e){this.setState({sendOnEnter:e.currentTarget.value}),this.props.onSendOnEnterChanged(e.currentTarget.value)}render(){return l().createElement("div",{id:"settings-form",className:"scrollable-panel"},l().createElement("div",{className:"panel-form-column"},l().createElement("div",{className:"panel-form-row"},l().createElement("label",{className:"small"},l().createElement(h.FormattedMessage,{id:"label_color_schema",defaultMessage:[{type:0,value:"Theme:"}]}))),l().createElement("div",{className:"panel-form-row"},l().createElement("ul",{className:"quoted"},l().createElement("li",{key:"system"},l().createElement("input",{type:"radio",id:"system",name:"color-scheme-select",value:"auto",checked:"auto"==this.state.colorSchema,onChange:this.handleColorSchemaSelected})," ",l().createElement("label",{htmlFor:"system"},l().createElement(h.FormattedMessage,{id:"color_schema_system",defaultMessage:[{type:0,value:"System default"}]})," ",l().createElement("img",{src:"img/routine.svg",style:{verticalAlign:"top",width:"1.6rem",height:"1.6rem"}}))),l().createElement("li",{key:"light"},l().createElement("input",{type:"radio",id:"light",name:"color-scheme-select",value:"light",checked:"light"==this.state.colorSchema,onChange:this.handleColorSchemaSelected})," ",l().createElement("label",{htmlFor:"light"},l().createElement(h.FormattedMessage,{id:"color_schema_light",defaultMessage:[{type:0,value:"Light"}]})," ",l().createElement("i",{className:"material-icons orange large"},"light_mode"))),l().createElement("li",{key:"dark"},l().createElement("input",{type:"radio",id:"dark",name:"color-scheme-select",value:"dark",checked:"dark"==this.state.colorSchema,onChange:this.handleColorSchemaSelected})," ",l().createElement("label",{htmlFor:"dark"},l().createElement(h.FormattedMessage,{id:"color_schema_dark",defaultMessage:[{type:0,value:"Dark"}]})," ",l().createElement("i",{className:"material-icons blue large"},"dark_mode")))))),l().createElement("div",{className:"hr"}),l().createElement("div",{className:"panel-form-row clean-clickable"},l().createElement("a",{onClick:this.props.onSelectWallpapers,className:"flat-button"},l().createElement("i",{className:"material-icons"},"wallpaper")," ",l().createElement(h.FormattedMessage,{id:"wallpapers",defaultMessage:[{type:0,value:"Wallpapers"}]}))),l().createElement("div",{className:"hr"}),l().createElement("div",{className:"panel-form-column"},l().createElement("div",{className:"panel-form-row"},l().createElement("label",{className:"small"},l().createElement(h.FormattedMessage,{id:"label_text_size",defaultMessage:[{type:0,value:"Text size:"}]}))),l().createElement("div",{className:"panel-form-row"},l().createElement("input",{type:"range",id:"text_size",name:"text_size",min:"80",max:"120",step:"10",list:"text_size_options",value:this.state.textSize,onChange:this.handleTextSizeChanged})),l().createElement("div",{className:"panel-form-row"},l().createElement("datalist",{id:"text_size_options"},l().createElement("option",{value:"80",label:"80%"}),l().createElement("option",{value:"90",label:"90%"}),l().createElement("option",{value:"100",label:"100%"}),l().createElement("option",{value:"110",label:"110%"}),l().createElement("option",{value:"120",label:"120%"})))),l().createElement("div",{className:"hr"}),l().createElement("div",{className:"panel-form-row"},l().createElement("label",{className:"small"},l().createElement(h.FormattedMessage,{id:"label_keyboard",defaultMessage:[{type:0,value:"Keyboard:"}]}))),l().createElement("div",{className:"panel-form-row"},l().createElement("ul",{className:"quoted"},l().createElement("li",{key:"plain"},l().createElement("input",{type:"radio",id:"plain",name:"send-select",value:"plain",checked:"plain"==this.state.sendOnEnter,onChange:this.handleSendOnEnterSelected})," ",l().createElement("label",{htmlFor:"send_plain"},l().createElement(h.FormattedMessage,{id:"send_plain",defaultMessage:[{type:0,value:"Send on Enter"}]})," "),l().createElement("div",{className:"panel-form-row"},l().createElement("span",{className:"small gray"},l().createElement(h.FormattedMessage,{id:"send_plain_explained",defaultMessage:[{type:0,value:"Press Shift + Enter for new line"}]})))),l().createElement("li",{key:"command"},l().createElement("input",{type:"radio",id:"command",name:"send-select",value:"command",checked:"command"==this.state.sendOnEnter,onChange:this.handleSendOnEnterSelected})," ",l().createElement("label",{htmlFor:"send_command"},l().createElement(h.FormattedMessage,{id:"send_command",defaultMessage:[{type:0,value:"Send on "},{type:1,value:"key"}],values:{key:this.isMac?"⌘ + Enter":"Ctrl + Enter"}})," "),l().createElement("div",{className:"panel-form-row"},l().createElement("span",{className:"small gray"},l().createElement(h.FormattedMessage,{id:"send_command_explained",defaultMessage:[{type:0,value:"Press Enter for new line"}]})))))))}}var qa=r(1166);class za extends l().PureComponent{constructor(e){super(e),this.handleCheckboxClick=this.handleCheckboxClick.bind(this)}handleCheckboxClick(e,t){"sound"==e?this.props.onToggleMessageSounds(t):"alert"==e&&this.props.onTogglePushNotifications(t)}render(){return l().createElement("div",{className:"scrollable-panel"},l().createElement("div",{className:"panel-form-row"},l().createElement("label",{htmlFor:"message-sound"},l().createElement(h.FormattedMessage,{id:"label_message_sound",defaultMessage:[{type:0,value:"Message sound:"}]})),l().createElement(qa.A,{name:"sound",id:"message-sound",checked:this.props.messageSounds,onChange:this.handleCheckboxClick})),l().createElement("div",{className:"panel-form-row"},l().createElement("label",{htmlFor:"desktop-alerts"},this.props.desktopAlertsEnabled?l().createElement(h.FormattedMessage,{id:"label_push_notifications",defaultMessage:[{type:0,value:"Notification alerts:"}]}):l().createElement(h.FormattedMessage,{id:"label_push_notifications_disabled",defaultMessage:[{type:0,value:"Notification alerts (requires HTTPS):"}]})),l().createElement(qa.A,{name:"alert",id:"desktop-alerts",checked:this.props.desktopAlerts,onChange:this.props.desktopAlertsEnabled?this.handleCheckboxClick:null})))}}class Va extends l().PureComponent{render(){return l().createElement("div",{className:"scrollable-panel"},l().createElement("div",{className:"panel-form-column"},l().createElement("a",{href:ks.fi,className:"flat-button",target:"_blank"},l().createElement("i",{className:"material-icons"},"email"),"  ",l().createElement(h.FormattedMessage,{id:"link_contact_us",defaultMessage:[{type:0,value:"Contact Us"}]})),l().createElement("a",{href:ks.V9,className:"flat-button",target:"_blank"},l().createElement("i",{className:"material-icons"},"description"),"  ",l().createElement(h.FormattedMessage,{id:"link_terms_of_service",defaultMessage:[{type:0,value:"Terms of Service"}]})),l().createElement("a",{href:ks.RS,className:"flat-button",target:"_blank"},l().createElement("i",{className:"material-icons"},"policy"),"  ",l().createElement(h.FormattedMessage,{id:"link_privacy_policy",defaultMessage:[{type:0,value:"Privacy Policy"}]}))),l().createElement("div",{className:"hr"}),l().createElement("div",{className:"panel-form-column"},l().createElement("div",{className:"panel-form-row"},l().createElement("label",{className:"small"},l().createElement(h.FormattedMessage,{id:"label_client",defaultMessage:[{type:0,value:"Client:"}]})),ks.C3),l().createElement("div",{className:"panel-form-row"},l().createElement("label",{className:"small"},l().createElement(h.FormattedMessage,{id:"label_sdk",defaultMessage:[{type:0,value:"SDK:"}]})),Ts.Tinode.getLibrary()),l().createElement("div",{className:"panel-form-row"},l().createElement("label",{className:"small"},l().createElement(h.FormattedMessage,{id:"label_server",defaultMessage:[{type:0,value:"Server:"}]})),this.props.serverVersion),l().createElement("div",{className:"panel-form-row"},l().createElement("label",{className:"small"},l().createElement(h.FormattedMessage,{id:"label_server_address",defaultMessage:[{type:0,value:"Server address:"}]})),this.props.serverAddress)))}}var Ha=r(6789);class Wa extends l().Component{constructor(e){super(e),this.state={login:e.login,password:"",hostName:e.serverAddress,saveToken:e.persist},this.handleLoginChange=this.handleLoginChange.bind(this),this.handlePasswordChange=this.handlePasswordChange.bind(this),this.handleToggleSaveToken=this.handleToggleSaveToken.bind(this),this.handleSubmit=this.handleSubmit.bind(this)}handleLoginChange(e){this.setState({login:e.target.value})}handlePasswordChange(e){this.setState({password:e.target.value})}handleToggleSaveToken(){this.props.onPersistenceChange(!this.state.saveToken),this.setState({saveToken:!this.state.saveToken})}handleSubmit(e){e.preventDefault(),this.props.onLogin(this.state.login.trim(),this.state.password.trim())}render(){let e="primary";return this.props.disabled&&(e+=" disabled"),l().createElement("form",{id:"login-form",onSubmit:this.handleSubmit},l().createElement(h.FormattedMessage,{id:"login_prompt",defaultMessage:[{type:0,value:"Login"}]},e=>l().createElement("input",{type:"text",id:"inputLogin",placeholder:e,autoComplete:"username",autoCorrect:"off",autoCapitalize:"none",value:this.state.login,onChange:this.handleLoginChange,required:!0,autoFocus:!0})),l().createElement(h.FormattedMessage,{id:"password_prompt",defaultMessage:[{type:0,value:"Password"}]},e=>l().createElement(Ha.A,{type:"password",id:"inputPassword",placeholder:e,autoComplete:"current-password",value:this.state.password,onChange:this.handlePasswordChange,required:!0})),l().createElement("div",{className:"panel-form-row"},l().createElement(qa.A,{id:"save-token",name:"save-token",checked:this.state.saveToken,onChange:this.handleToggleSaveToken}),l().createElement("label",{htmlFor:"save-token"}," ",l().createElement(h.FormattedMessage,{id:"stay_logged_in",defaultMessage:[{type:0,value:"Stay logged in"}]})),l().createElement("a",{href:"#reset"},l().createElement(h.FormattedMessage,{id:"forgot_password_link",defaultMessage:[{type:0,value:"Forgot password?"}]}))),l().createElement("div",{className:"dialog-buttons"},l().createElement("button",{className:e,type:"submit"},l().createElement(h.FormattedMessage,{id:"button_sign_in",defaultMessage:[{type:0,value:"Sign in"}]}))))}}var Ka=r(9593),$a=r.n(Ka);const Ga=(0,h.defineMessages)({invalid_id:{id:"error_invalid_id",defaultMessage:[{type:0,value:"Invalid ID"}]}});class Qa extends l().PureComponent{constructor(e){super(e),this.qrCodeRef=l().createRef(),this.state={groupId:""},this.handleChange=this.handleChange.bind(this),this.handleKeyPress=this.handleKeyPress.bind(this),this.handleSubmit=this.handleSubmit.bind(this)}componentDidMount(){new($a())(this.qrCodeRef.current,{text:this.props.myURI,width:ks.Tn,height:ks.Tn})}handleChange(e){this.setState({groupId:e.target.value})}handleKeyPress(e){"Enter"===e.key&&this.handleSubmit(e)}handleSubmit(e){if(e.preventDefault(),this.state.groupId){const e=this.state.groupId.trim(),t=e.substring(0,3);e.length>3&&["usr","grp","chn"].includes(t)?this.props.onSubmit(e):this.props.onError(this.props.intl.formatMessage(Ga.invalid_id),"err")}}render(){return l().createElement("div",{className:"panel-form"},l().createElement("div",{className:"panel-form-row"},l().createElement(h.FormattedMessage,{id:"group_user_id_prompt",defaultMessage:[{type:0,value:"Group or User ID"}]},e=>l().createElement("input",{type:"text",placeholder:e,value:this.state.groupId,onChange:this.handleChange,onKeyDown:this.handleKeyPress,required:!0,autoFocus:!0}))),l().createElement("div",{className:"dialog-buttons"},l().createElement("button",{className:"primary",onClick:this.handleSubmit},l().createElement(h.FormattedMessage,{id:"button_subscribe",defaultMessage:[{type:0,value:"Subscribe"}]}))),l().createElement("br",null),l().createElement("div",{className:"panel-form-column"},l().createElement("label",{className:"small"},"Scan my ID:"),l().createElement("div",{className:"qr-code",ref:this.qrCodeRef})))}}var Ya=(0,h.injectIntl)(Qa),Xa=r(221),Ja=r(9418),Za=r(3307);class ei extends l().PureComponent{constructor(e){super(e),this.fullName=l().createRef(),this.state={fullName:"",private:"",description:"",imageUrl:null,tags:[],isChannel:!1,newAvatar:null,newAvatarMime:null},this.handleFieldEdit=this.handleFieldEdit.bind(this),this.handleImageChanged=this.handleImageChanged.bind(this),this.handleAvatarCropped=this.handleAvatarCropped.bind(this),this.handleAvatarCropCancel=this.handleAvatarCropCancel.bind(this),this.uploadAvatar=this.uploadAvatar.bind(this),this.handleTagsChanged=this.handleTagsChanged.bind(this),this.handleChannelToggle=this.handleChannelToggle.bind(this),this.handleSubmit=this.handleSubmit.bind(this)}componentDidMount(){}handleFieldEdit(e,t){this.setState({[e]:t.target.value||""})}handleImageChanged(e,t){this.setState({newAvatar:t,newAvatarMime:e})}handleAvatarCropped(e,t,s,a){const i=t?URL.createObjectURL(t):null;this.setState({imageUrl:i,newAvatar:null,newAvatarMime:null}),t&&this.uploadAvatar(e,t,s,a)}handleAvatarCropCancel(){this.setState({newAvatar:null,newAvatarMime:null})}uploadAvatar(e,t,s,a){const i=e=>{let{mime:t,blob:s}=e;if(s.size>ks.Z7){this.props.tinode.getLargeFileHelper().upload(s).then(e=>this.setState({imageUrl:e})).catch(e=>this.props.onError(e.message,"err"))}else(0,Os.Sk)(s).then(e=>this.setState({imageUrl:(0,Os.to)({data:e.bits,type:t})}))};s>ks.eQ||a>ks.eQ||s!=a?(0,Os.ag)(t,ks.eQ,ks.eQ,ks.qy,!0).then(e=>i(e)).catch(e=>this.props.onError(e.message,"err")):i({mime:e,blob:t,width:s,height:a})}handleTagsChanged(e){this.setState({tags:e})}handleChannelToggle(){this.setState({isChannel:!this.state.isChannel})}handleSubmit(e){e.preventDefault();const t=(0,js.W5)(this.state.fullName.trim(),ks.tS),s=(0,js.W5)(this.state.private.trim(),ks.tS),a=(0,js.W5)(this.state.description.trim(),ks.lQ);t&&this.props.onSubmit(t,a,this.state.imageUrl,s,this.state.tags,this.state.isChannel)}render(){if(this.state.newAvatar)return l().createElement(Xa.A,{avatar:this.state.newAvatar,mime:this.state.newAvatarMime,onSubmit:this.handleAvatarCropped,onCancel:this.handleAvatarCropCancel,onError:this.props.onError});let e="primary";return this.props.disabled&&(e+=" disabled"),l().createElement("form",{className:"panel-form",onSubmit:this.handleSubmit},l().createElement("div",{className:"panel-form-column"},l().createElement("center",null,l().createElement(Ja.A,{tinode:this.props.tinode,avatar:this.state.imageUrl,onError:this.props.onError,onImageUpdated:this.handleImageChanged})),l().createElement("div",{className:"group"},l().createElement("label",{className:"small",htmlFor:"new-topic-fn"},l().createElement(h.FormattedMessage,{id:"label_topic_name",defaultMessage:[{type:0,value:"Name"}]})),l().createElement(h.FormattedMessage,{id:"topic_name_editing_placeholder",defaultMessage:[{type:0,value:"Freeform name of the group"}]},e=>l().createElement("input",{type:"text",id:"new-topic-fn",placeholder:e,ref:this.fullName,value:this.state.fullName,onChange:this.handleFieldEdit.bind(this,"fullName"),autoFocus:!0,required:!0,tabIndex:0}))),l().createElement("div",{className:"group"},l().createElement("label",{className:"small",htmlFor:"new-topic-priv"},l().createElement(h.FormattedMessage,{id:"label_private",defaultMessage:[{type:0,value:"Private comment"}]})),l().createElement(h.FormattedMessage,{id:"private_editing_placeholder",defaultMessage:[{type:0,value:"Visible to you only"}]},e=>l().createElement("input",{type:"text",id:"new-topic-priv",placeholder:e,value:this.state.private,onChange:this.handleFieldEdit.bind(this,"private"),tabIndex:1}))),l().createElement("div",{className:"group"},l().createElement("label",{className:"small",htmlFor:"new-topic-desc"},l().createElement(h.FormattedMessage,{id:"label_description",defaultMessage:[{type:0,value:"Description"}]})),l().createElement(h.FormattedMessage,{id:"description_editing_placeholder",defaultMessage:[{type:0,value:"Description (optional)"}]},e=>l().createElement("input",{type:"text",id:"new-topic-desc",placeholder:e,value:this.state.description,onChange:this.handleFieldEdit.bind(this,"description"),tabIndex:2})))),l().createElement("div",{className:"panel-form-row"},l().createElement(qa.A,{checked:this.state.isChannel,tabIndex:3,onChange:this.handleChannelToggle})," ",l().createElement("label",{onClick:this.handleChannelToggle},l().createElement(h.FormattedMessage,{id:"channel_prompt",defaultMessage:[{type:0,value:"This is a channel"}]}))),l().createElement(h.FormattedMessage,{id:"title_tag_manager",defaultMessage:[{type:0,value:"Tags (search & discovery)"}]},e=>l().createElement(Za.A,{tinode:this.props.tinode,tags:this.state.tags,activated:!0,onTagsChanged:this.handleTagsChanged,tabIndex:4,title:e})),l().createElement("div",{className:"dialog-buttons"},l().createElement("button",{className:e},l().createElement(h.FormattedMessage,{id:"button_create",defaultMessage:[{type:0,value:"Create"}]}))))}}const ti=(0,h.defineMessages)({search_for_contacts:{id:"search_for_contacts",defaultMessage:[{type:0,value:"Use search to find contacts"}]},search_no_results:{id:"search_no_results",defaultMessage:[{type:0,value:"Search returned no results"}]},search_placeholder:{id:"search_placeholder",defaultMessage:[{type:0,value:"List like alice@example.com, +17025550003..."}]}});class si extends l().Component{constructor(e){super(e),this.state={tabSelected:"find",searchQuery:null},this.handleTabClick=this.handleTabClick.bind(this),this.handleSearchContacts=this.handleSearchContacts.bind(this),this.handleSearchResultSelected=this.handleSearchResultSelected.bind(this),this.handleNewGroupSubmit=this.handleNewGroupSubmit.bind(this),this.handleGroupByID=this.handleGroupByID.bind(this)}componentDidMount(){this.props.onInitFind()}handleTabClick(e){e.preventDefault(),Ta.A.navigateTo(Ta.A.addUrlParam(window.location.hash,"tab",e.currentTarget.dataset.id)),this.setState({tabSelected:e.currentTarget.dataset.id})}handleSearchContacts(e){if(e=e.trim()||Ts.Tinode.DEL_CHAR,!/[\s,:]/.test(e)&&e!=Ts.Tinode.DEL_CHAR){const t=(0,Xs.xH)(e);if(t)e=`${Ts.Tinode.TAG_EMAIL}${t}`;else{const t=(0,Xs.Jt)(e);t?e=`${Ts.Tinode.TAG_PHONE}${t}`:("@"==e[0]&&(e=e.substring(1)),e=`${Ts.Tinode.TAG_ALIAS}${e},${e}`)}}this.props.onSearchContacts(e),this.setState({searchQuery:Ts.Tinode.isNullValue(e)?null:e})}handleSearchResultSelected(e){"find"==this.state.tabSelected&&(Ta.A.navigateTo(Ta.A.removeUrlParam(window.location.hash,"tab")),this.props.onCreateTopic(e))}handleNewGroupSubmit(e,t,s,a,i,n){Ta.A.navigateTo(Ta.A.removeUrlParam(window.location.hash,"tab")),this.props.onCreateTopic(void 0,{public:(0,Xs.k6)(e,s,null,t),private:a,tags:i},n)}handleGroupByID(e){Ta.A.navigateTo(Ta.A.removeUrlParam(window.location.hash,"tab")),this.props.onCreateTopic(e)}render(){const{formatMessage:e}=this.props.intl,t=e(this.state.searchQuery?ti.search_no_results:ti.search_for_contacts),s=e(ti.search_placeholder);return l().createElement("div",{className:"flex-column"},l().createElement("ul",{className:"tabbar"},l().createElement("li",{className:"find"===this.state.tabSelected?"active":null},l().createElement("a",{href:"#","data-id":"find",onClick:this.handleTabClick},l().createElement(h.FormattedMessage,{id:"tabtitle_find_user",defaultMessage:[{type:0,value:"find"}]}))),l().createElement("li",{className:"grp"===this.state.tabSelected?"active":null},l().createElement("a",{href:"#","data-id":"grp",onClick:this.handleTabClick},l().createElement(h.FormattedMessage,{id:"tabtitle_new_group",defaultMessage:[{type:0,value:"new group"}]}))),l().createElement("li",{className:"byid"===this.state.tabSelected?"active":null},l().createElement("a",{href:"#","data-id":"byid",onClick:this.handleTabClick},l().createElement(h.FormattedMessage,{id:"tabtitle_group_by_id",defaultMessage:[{type:0,value:"by id"}]})))),"grp"===this.state.tabSelected?l().createElement(ei,{tinode:this.props.tinode,onSubmit:this.handleNewGroupSubmit,onError:this.props.onError}):"byid"===this.state.tabSelected?l().createElement(Ya,{myURI:Ts.Tinode.URI_TOPIC_ID_PREFIX+this.props.tinode.getCurrentUserID(),onSubmit:this.handleGroupByID,onError:this.props.onError}):l().createElement("div",{className:"flex-column"},l().createElement(Fs,{placeholder:s,onSearchContacts:this.handleSearchContacts}),l().createElement(Ps.A,{tinode:this.props.tinode,contacts:this.props.searchResults,myUserId:this.props.myUserId,emptyListMessage:t,showSelfTopic:!this.state.searchQuery,showOnline:!1,showUnread:!1,showContextMenu:!1,onTopicSelected:this.handleSearchResultSelected})))}}var ai=(0,h.injectIntl)(si);class ii extends l().PureComponent{constructor(e){super(e),this.state={hostName:e.serverAddress,changed:!1},this.handleHostNameChange=this.handleHostNameChange.bind(this),this.handleEditingFinished=this.handleEditingFinished.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this)}handleHostNameChange(e){this.setState({hostName:e.target.value,changed:!0})}handleEditingFinished(){this.state.changed&&(this.setState({changed:!1}),this.props.onServerAddressChange(this.state.hostName.trim()))}handleKeyDown(e){"Enter"==e.key&&this.handleEditingFinished()}render(){const e=[];for(let t in ks.SE){let s=ks.SE[t];e.push(l().createElement("option",{key:s,value:s}))}return l().createElement("div",{className:"panel-form-row"},l().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,onKeyDown:this.handleKeyDown,required:!0}),l().createElement("datalist",{id:"known-hosts"},e))}}class ni extends l().PureComponent{constructor(e){super(e),this.state={transport:e.transport||"def",serverAddress:e.serverAddress,secureConnection:e.secureConnection},this.handleSubmit=this.handleSubmit.bind(this),this.handleTransportSelected=this.handleTransportSelected.bind(this),this.handleServerAddressChange=this.handleServerAddressChange.bind(this),this.handleToggleSecure=this.handleToggleSecure.bind(this)}handleSubmit(e){e.preventDefault(),this.props.onUpdate({transport:this.state.transport,serverAddress:this.state.serverAddress,secureConnection:this.state.secureConnection})}handleTransportSelected(e){this.setState({transport:e.currentTarget.value})}handleServerAddressChange(e){this.setState({serverAddress:e})}handleToggleSecure(e){this.setState({secureConnection:!this.state.secureConnection})}render(){const e={def:"default",ws:"websocket",lp:"long polling"},t=[];return["def","ws","lp"].forEach(s=>{const a="transport-"+s,i=e[s];t.push(l().createElement("li",{key:s},l().createElement("input",{type:"radio",id:a,name:"transport-select",value:s,checked:this.state.transport===s,onChange:this.handleTransportSelected}),l().createElement("label",{htmlFor:a},i)))}),l().createElement("form",{id:"settings-form",className:"panel-form",onSubmit:this.handleSubmit},l().createElement("div",{className:"panel-form-row"},l().createElement("label",{className:"small"},l().createElement(h.FormattedMessage,{id:"label_server_to_use",defaultMessage:[{type:0,value:"Server to use:"}]}))),l().createElement(ii,{serverAddress:this.state.serverAddress,onServerAddressChange:this.handleServerAddressChange}),l().createElement("div",{className:"panel-form-row"},l().createElement(qa.A,{id:"secure-connection",name:"secure-connection",checked:this.state.secureConnection,className:"quoted",onChange:this.handleToggleSecure}),l().createElement("label",{htmlFor:"secure-connection"},l().createElement(h.FormattedMessage,{id:"label_use_secure_connection",defaultMessage:[{type:0,value:"Use secure connection"}]}))),l().createElement("div",{className:"panel-form-row"},l().createElement("label",{className:"small"},l().createElement(h.FormattedMessage,{id:"label_wire_transport",defaultMessage:[{type:0,value:"Wire transport:"}]}))),l().createElement("div",{className:"panel-form-row"},l().createElement("ul",{className:"quoted"},t)),l().createElement("div",{className:"dialog-buttons"},l().createElement("button",{type:"submit",className:"primary"},l().createElement(h.FormattedMessage,{id:"button_update",defaultMessage:[{type:0,value:"Update"}]}))))}}const ri=(0,h.defineMessages)({phone:{id:"phone_dative",defaultMessage:[{type:0,value:"phone"}]},email:{id:"email_dative",defaultMessage:[{type:0,value:"email"}]}});class oi extends l().PureComponent{constructor(e){super(e),this.state={code:e.credCode||"",codeReceived:e.credCode},this.handleCodeChange=this.handleCodeChange.bind(this),this.handleKeyPress=this.handleKeyPress.bind(this),this.handleSubmit=this.handleSubmit.bind(this),this.handleCancel=this.handleCancel.bind(this)}static getDerivedStateFromProps(e,t){return e.credCode!=t.codeReceived?{code:e.credCode||"",codeReceived:e.credCode}:t}componentDidMount(){this.props.credCode&&this.props.onSubmit(this.props.credMethod,this.props.credCode,this.props.credToken)}componentDidUpdate(e,t){this.state.codeReceived&&this.state.code&&this.state.code!=t.code&&this.props.onSubmit(this.props.credMethod,this.state.code,this.props.credToken)}handleCodeChange(e){this.setState({code:e.target.value.replace(/[^\d]/g,"")})}handleKeyPress(e){"Enter"===e.key?this.handleSubmit(e):"Escape"==e.key&&this.handleCancel(e)}handleSubmit(e){e.preventDefault(),this.state.code&&this.state.code.trim()&&this.props.onSubmit(this.props.credMethod,this.state.code.trim(),this.props.credToken)}handleCancel(e){e.preventDefault(),this.props.onCancel()}render(){const{formatMessage:e}=this.props.intl,t={email:e(ri.email),tel:e(ri.phone)}[this.props.credMethod]||this.props.credMethod;return l().createElement("div",{className:"panel-form"},l().createElement("div",{className:"panel-form-row"},l().createElement("label",{className:"small gray",htmlFor:"enter-confirmation-code"},l().createElement(h.FormattedMessage,{id:"enter_confirmation_code_prompt",defaultMessage:[{type:0,value:"Confirmation code"}],values:{method:t}}))),l().createElement("div",{className:"panel-form-row"},l().createElement(h.FormattedMessage,{id:"numeric_confirmation_code_prompt",defaultMessage:[{type:0,value:"Numbers only"}]},e=>l().createElement("input",{type:"text",id:"enter-confirmation-code",placeholder:e,value:this.state.code,onChange:this.handleCodeChange,onKeyDown:this.handleKeyPress,required:!0}))),l().createElement("div",{className:"dialog-buttons"},l().createElement("button",{className:"secondary",onClick:this.handleCancel},l().createElement(h.FormattedMessage,{id:"button_cancel",defaultMessage:[{type:0,value:"Cancel"}]})),l().createElement("button",{className:"primary",onClick:this.handleSubmit},l().createElement(h.FormattedMessage,{id:"button_confirm",defaultMessage:[{type:0,value:"Confirm"}]}))))}}var li=(0,h.injectIntl)(oi);const ci=l().lazy(e=>Promise.all([r.e(961),r.e(271)]).then(r.bind(r,4271))),hi=l().lazy(e=>Promise.all([r.e(961),r.e(996)]).then(r.bind(r,3996))),di=l().lazy(e=>r.e(352).then(r.bind(r,2352))),pi=l().lazy(e=>Promise.all([r.e(961),r.e(993)]).then(r.bind(r,3993))),ui=l().lazy(e=>r.e(827).then(r.bind(r,3827))),mi=(0,h.defineMessages)({login:{id:"sidepanel_title_login",defaultMessage:[{type:0,value:"Sign In"}]},register:{id:"sidepanel_title_register",defaultMessage:[{type:0,value:"Create Account"}]},settings:{id:"sidepanel_title_settings",defaultMessage:[{type:0,value:"Settings"}]},edit:{id:"sidepanel_title_account_settings",defaultMessage:[{type:0,value:"Account Settings"}]},general:{id:"panel_title_general",defaultMessage:[{type:0,value:"General"}]},security:{id:"panel_title_security",defaultMessage:[{type:0,value:"Security"}]},crop:{id:"panel_title_crop",defaultMessage:[{type:0,value:"Drag to Adjust"}]},notif:{id:"sidepanel_title_acc_notifications",defaultMessage:[{type:0,value:"Notifications"}]},acc_general:{id:"sidepanel_title_acc_general",defaultMessage:[{type:0,value:"General"}]},support:{id:"sidepanel_title_acc_support",defaultMessage:[{type:0,value:"Support"}]},newtpk:{id:"sidepanel_title_newtpk",defaultMessage:[{type:0,value:"Start New Chat"}]},cred:{id:"sidepanel_title_cred",defaultMessage:[{type:0,value:"Confirm Credentials"}]},reset:{id:"sidepanel_title_reset",defaultMessage:[{type:0,value:"Reset Password"}]},archive:{id:"sidepanel_title_archive",defaultMessage:[{type:0,value:"Archived Chats"}]},blocked:{id:"sidepanel_title_blocked",defaultMessage:[{type:0,value:"Blocked Chats"}]},wallpapers:{id:"wallpapers",defaultMessage:[{type:0,value:"Wallpapers"}]}});class gi extends l().PureComponent{constructor(e){super(e),this.handleNewTopic=this.handleNewTopic.bind(this)}handleNewTopic(){this.props.onNavigate("newtpk")}render(){const{formatMessage:e}=this.props.intl,t=this.props.state||(this.props.myUserId?"contacts":"login");let s,a,i,n;return"contacts"==t?(s=this.props.title,a=!this.props.avatar||this.props.avatar,i=this.props.trustedBadges):(s=e(mi[t]),a=!1,i=null),-1==["login","contacts"].indexOf(t)&&(n=this.props.onCancel),l().createElement("div",{id:"sidepanel"},l().createElement(Ua,{state:t,title:s,avatar:a,tinode:this.props.tinode,trustedBadges:i,myUserId:this.props.myUserId,onSignUp:this.props.onSignUp,onSettings:this.props.onSettings,onNewTopic:this.handleNewTopic,onCancel:n}),l().createElement(ua.A,{level:this.props.errorLevel,text:this.props.errorText,action:this.props.errorAction,actionText:this.props.errorActionText,onClearError:this.props.onError}),l().createElement(va.A,{show:this.props.loadSpinnerVisible}),"login"===t?l().createElement(Wa,{login:this.props.login,disabled:this.props.loginDisabled,persist:this.props.persist,onLogin:this.props.onLoginRequest,onPersistenceChange:this.props.onPersistenceChange}):"register"===t?l().createElement(o.Suspense,{fallback:l().createElement("div",{className:"panel-form-row"},l().createElement(h.FormattedMessage,{id:"loading_note",defaultMessage:[{type:0,value:"Loading..."}]}))},l().createElement(hi,{tinode:this.props.tinode,reqCredMethod:this.props.reqCredMethod,onShowCountrySelector:this.props.onShowCountrySelector,onCreateAccount:this.props.onCreateAccount,onCancel:this.props.onCancel,onError:this.props.onError})):"settings"===t?l().createElement(ni,{transport:this.props.transport,serverAddress:this.props.serverAddress,secureConnection:this.props.secureConnection,onCancel:this.props.onCancel,onUpdate:this.props.onGlobalSettings}):"edit"===t?l().createElement(o.Suspense,{fallback:l().createElement("div",{className:"panel-form-row"},l().createElement(h.FormattedMessage,{id:"loading_note",defaultMessage:[{type:0,value:"Loading..."}]}))},l().createElement(ci,{tinode:this.props.tinode,myUserId:this.props.myUserId,trustedBadges:this.props.trustedBadges,reqCredMethod:this.props.reqCredMethod,onShowCountrySelector:this.props.onShowCountrySelector,onNavigate:this.props.onNavigate,onCredAdd:this.props.onCredAdd,onCredDelete:this.props.onCredDelete,onCredConfirm:this.props.onCredConfirm,onError:this.props.onError})):"general"===t||"crop"===t?l().createElement(La.A,{topic:"me",tinode:this.props.tinode,myUserId:this.props.myUserId,reqCredMethod:this.props.reqCredMethod,onUpdateTopicDesc:this.props.onUpdateAccountDesc,onUpdateTagsRequest:this.props.onUpdateAccountTags,onError:this.props.onError}):"acc_general"===t?l().createElement(Ba,{colorSchema:this.props.colorSchema,onSelectWallpapers:this.props.onSelectWallpapers,textSize:this.props.textSize,sendOnEnter:this.props.sendOnEnter,onChangeColorSchema:this.props.onChangeColorSchema,onTextSizeChanged:this.props.onTextSizeChanged,onSendOnEnterChanged:this.props.onSendOnEnterChanged}):"notif"===t?l().createElement(za,{messageSounds:this.props.messageSounds,desktopAlerts:this.props.desktopAlerts,desktopAlertsEnabled:this.props.desktopAlertsEnabled,onTogglePushNotifications:this.props.onTogglePushNotifications,onToggleMessageSounds:this.props.onToggleMessageSounds}):"security"===t?l().createElement(o.Suspense,{fallback:l().createElement("div",{className:"panel-form-row"},l().createElement(h.FormattedMessage,{id:"loading_note",defaultMessage:[{type:0,value:"Loading..."}]}))},l().createElement(di,{tinode:this.props.tinode,incognitoMode:this.props.incognitoMode,onUpdateAccountDesc:this.props.onUpdateAccountDesc,onUpdatePassword:this.props.onUpdatePassword,onLogout:this.props.onLogout,onDeleteAccount:this.props.onDeleteAccount,onShowAlert:this.props.onShowAlert,onShowBlocked:this.props.onShowBlocked,onToggleIncognitoMode:this.props.onToggleIncognitoMode})):"support"===t?l().createElement(Va,{serverAddress:this.props.serverAddress,serverVersion:this.props.serverVersion}):"wallpapers"===t?l().createElement(o.Suspense,{fallback:l().createElement("div",{className:"panel-form-row"},l().createElement(h.FormattedMessage,{id:"loading_note",defaultMessage:[{type:0,value:"Loading..."}]}))},l().createElement(ui,{colorSchema:"auto"!==this.props.colorSchema?this.props.colorSchema:this.props.systemColorSchema,onWallpaperSelected:this.props.onWallpaperSelected})):"contacts"===t||"archive"==t||"blocked"==t?l().createElement(ja,{tinode:this.props.tinode,myUserId:this.props.myUserId,connected:this.props.connected,topicSelected:this.props.topicSelected,archive:"archive"==t,blocked:"blocked"==t,chatList:this.props.chatList,showContextMenu:this.props.showContextMenu,onTopicSelected:this.props.onTopicSelected,onShowArchive:this.props.onShowArchive}):"newtpk"===t?l().createElement(ai,{tinode:this.props.tinode,searchResults:this.props.searchResults,onInitFind:this.props.onInitFind,onSearchContacts:this.props.onSearchContacts,onCreateTopic:this.props.onCreateTopic,onError:this.props.onError}):"cred"===t?l().createElement(li,{credCode:this.props.credCode,credMethod:this.props.credMethod,credToken:this.props.credToken,onSubmit:this.props.onValidateCredentials,onCancel:this.props.onCancel}):"reset"===t?l().createElement(o.Suspense,{fallback:l().createElement("div",{className:"panel-form-row"},l().createElement(h.FormattedMessage,{id:"loading_note",defaultMessage:[{type:0,value:"Loading..."}]}))},l().createElement(pi,{tinode:this.props.tinode,reqCredMethod:this.props.reqCredMethod,onShowCountrySelector:this.props.onShowCountrySelector,onRequest:this.props.onPasswordResetRequest,onReset:this.props.onResetPassword,onCancel:this.props.onCancel,onError:this.props.onError})):null)}}var fi=(0,h.injectIntl)(gi),vi=r(257);function bi(){let e=ks.HX;return"object"==typeof window.location&&("file:"==window.location.protocol||"localhost"==window.location.hostname?e=ks.SE.local:window.location.hostname&&(e=window.location.hostname+(window.location.port?":"+window.location.port:""))),e}function Ei(){return"object"==typeof window.location&&"https:"==window.location.protocol}var yi=r(8262);const wi=l().lazy(e=>r.e(316).then(r.bind(r,4316))),Ci=l().lazy(e=>r.e(747).then(r.bind(r,7747))),Si=new Audio("audio/msg.m4a"),Mi=(0,h.defineMessages)({reconnect_countdown:{id:"reconnect_countdown",defaultMessage:[{type:0,value:"Disconnected. Reconnecting in "},{type:1,value:"seconds"},{type:0,value:"…"}]},reconnect_now:{id:"reconnect_now",defaultMessage:[{type:0,value:"Try now"}]},push_init_failed:{id:"push_init_failed",defaultMessage:[{type:0,value:"Failed to initialize push notifications"}]},invalid_security_token:{id:"invalid_security_token",defaultMessage:[{type:0,value:"Invalid security token"}]},no_connection:{id:"no_connection",defaultMessage:[{type:0,value:"No connection"}]},code_doesnot_match:{id:"code_doesnot_match",defaultMessage:[{type:0,value:"Code does not match"}]},menu_item_info:{id:"menu_item_info",defaultMessage:[{type:0,value:"Info"}]},menu_item_audio_call:{id:"menu_item_audio_call",defaultMessage:[{type:0,value:"Call"}]},menu_item_video_call:{id:"menu_item_video_call",defaultMessage:[{type:0,value:"Video call"}]},cred_confirmed_successfully:{id:"cred_confirmed_successfully",defaultMessage:[{type:0,value:"Confirmed successfully"}]},password_reset_success:{id:"password_reset_success",defaultMessage:[{type:0,value:"Password reset successfully"}]},select_country:{id:"select_country",defaultMessage:[{type:0,value:"Select country"}]}});class _i extends l().Component{constructor(e){super(e),this.selfRef=l().createRef(),this.state=this.getBlankState(),this.handleResize=this.handleResize.bind(this),this.handleHashRoute=this.handleHashRoute.bind(this),this.handleOnline=this.handleOnline.bind(this),this.handleColorSchemeChange=this.handleColorSchemeChange.bind(this),this.checkForAppUpdate=this.checkForAppUpdate.bind(this),this.handleVisibilityEvent=this.handleVisibilityEvent.bind(this),this.handleError=this.handleError.bind(this),this.handleLoginRequest=this.handleLoginRequest.bind(this),this.handlePersistenceChange=this.handlePersistenceChange.bind(this),this.handleConnected=this.handleConnected.bind(this),this.handleAutoreconnectIteration=this.handleAutoreconnectIteration.bind(this),this.doLogin=this.doLogin.bind(this),this.handleLoginSuccessful=this.handleLoginSuccessful.bind(this),this.handleDisconnect=this.handleDisconnect.bind(this),this.tnMeMetaDesc=this.tnMeMetaDesc.bind(this),this.tnMeContactUpdate=this.tnMeContactUpdate.bind(this),this.tnMeSubsUpdated=this.tnMeSubsUpdated.bind(this),this.resetContactList=this.resetContactList.bind(this),this.tnInitFind=this.tnInitFind.bind(this),this.tnFndSubsUpdated=this.tnFndSubsUpdated.bind(this),this.handleSearchContacts=this.handleSearchContacts.bind(this),this.handleTopicSelected=this.handleTopicSelected.bind(this),this.handleHideMessagesView=this.handleHideMessagesView.bind(this),this.handleSendMessage=this.handleSendMessage.bind(this),this.handleNewChatInvitation=this.handleNewChatInvitation.bind(this),this.handleNewAccount=this.handleNewAccount.bind(this),this.handleNewAccountRequest=this.handleNewAccountRequest.bind(this),this.handleUpdatePasswordRequest=this.handleUpdatePasswordRequest.bind(this),this.handleUpdateAccountTagsRequest=this.handleUpdateAccountTagsRequest.bind(this),this.handleToggleIncognitoMode=this.handleToggleIncognitoMode.bind(this),this.handleChangeColorSchema=this.handleChangeColorSchema.bind(this),this.handleChangeTextSize=this.handleChangeTextSize.bind(this),this.handleSendOnEnter=this.handleSendOnEnter.bind(this),this.handleSelectWallpapers=this.handleSelectWallpapers.bind(this),this.handleWallpaperSelected=this.handleWallpaperSelected.bind(this),this.handleSettings=this.handleSettings.bind(this),this.handleGlobalSettings=this.handleGlobalSettings.bind(this),this.handleShowArchive=this.handleShowArchive.bind(this),this.handleShowBlocked=this.handleShowBlocked.bind(this),this.handleToggleMessageSounds=this.handleToggleMessageSounds.bind(this),this.handleCredAdd=this.handleCredAdd.bind(this),this.handleCredDelete=this.handleCredDelete.bind(this),this.handleCredConfirm=this.handleCredConfirm.bind(this),this.initFCMessaging=this.initFCMessaging.bind(this),this.toggleFCMToken=this.toggleFCMToken.bind(this),this.handlePushMessage=this.handlePushMessage.bind(this),this.handleSidepanelCancel=this.handleSidepanelCancel.bind(this),this.handleStartTopicRequest=this.handleStartTopicRequest.bind(this),this.handleNewTopicCreated=this.handleNewTopicCreated.bind(this),this.handleTopicUpdateRequest=this.handleTopicUpdateRequest.bind(this),this.handleUnarchive=this.handleUnarchive.bind(this),this.handleChangePermissions=this.handleChangePermissions.bind(this),this.handleTagsUpdateRequest=this.handleTagsUpdateRequest.bind(this),this.handleLogout=this.handleLogout.bind(this),this.handleDeleteAccount=this.handleDeleteAccount.bind(this),this.handleDeleteTopicRequest=this.handleDeleteTopicRequest.bind(this),this.handleDeleteMessagesRequest=this.handleDeleteMessagesRequest.bind(this),this.handleLeaveUnsubRequest=this.handleLeaveUnsubRequest.bind(this),this.handleBlockTopicRequest=this.handleBlockTopicRequest.bind(this),this.handleReportTopic=this.handleReportTopic.bind(this),this.handleShowContextMenu=this.handleShowContextMenu.bind(this),this.defaultTopicContextMenu=this.defaultTopicContextMenu.bind(this),this.handleHideContextMenu=this.handleHideContextMenu.bind(this),this.handleShowAlert=this.handleShowAlert.bind(this),this.handleShowInfoView=this.handleShowInfoView.bind(this),this.handleMemberUpdateRequest=this.handleMemberUpdateRequest.bind(this),this.handleValidateCredentialsRequest=this.handleValidateCredentialsRequest.bind(this),this.handlePasswordResetRequest=this.handlePasswordResetRequest.bind(this),this.handleResetPassword=this.handleResetPassword.bind(this),this.handleContextMenuAction=this.handleContextMenuAction.bind(this),this.handleShowCountrySelector=this.handleShowCountrySelector.bind(this),this.handleShowForwardDialog=this.handleShowForwardDialog.bind(this),this.handleHideForwardDialog=this.handleHideForwardDialog.bind(this),this.handleStartVideoCall=this.handleStartVideoCall.bind(this),this.handleStartAudioCall=this.handleStartAudioCall.bind(this),this.handleInfoMessage=this.handleInfoMessage.bind(this),this.handleDataMessage=this.handleDataMessage.bind(this),this.handleCallClose=this.handleCallClose.bind(this),this.handleCallInvite=this.handleCallInvite.bind(this),this.handleCallRinging=this.handleCallRinging.bind(this),this.handleCallHangup=this.handleCallHangup.bind(this),this.handleCallSendOffer=this.handleCallSendOffer.bind(this),this.handleCallIceCandidate=this.handleCallIceCandidate.bind(this),this.handleCallSendAnswer=this.handleCallSendAnswer.bind(this),this.handleCallAccept=this.handleCallAccept.bind(this),this.sendMessageToTopic=this.sendMessageToTopic.bind(this),this.callTimeoutTimer=null}getBlankState(){const e=yi.A.getObject("settings")||{},t=!!yi.A.getObject("keep-logged-in");if(!e.wallpaper){const t=(0,Xs.KY)();e.wallpaper=t.name||"",e.wallpaperSize=t.size||0,e.wallpaperBlur=0}return{connected:!1,ready:!1,autoLogin:!1,transport:e.transport||null,serverAddress:e.serverAddress||bi(),secureConnection:void 0===e.secureConnection?Ei():e.secureConnection,serverVersion:"no connection",messageSounds:!e.messageSoundsOff,incognitoMode:!1,colorSchema:e.colorSchema||ks.gb,systemColorSchema:window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",wallpaper:e.wallpaper,wallpaperSize:e.wallpaperSize,wallpaperBlur:0,textSize:e.textSize||ks.cL,sendOnEnter:e.sendOnEnter||"plain",desktopAlerts:t&&!!e.desktopAlerts,desktopAlertsEnabled:(Ei()||"object"==typeof window.location&&"localhost"==window.location.hostname)&&void 0!==ze&&"undefined"!=typeof navigator&&"undefined"!=typeof FIREBASE_INIT,firebaseToken:t?yi.A.getObject("firebase-token"):null,applicationVisible:!document.hidden,errorText:"",errorLevel:null,errorAction:void 0,errorActionText:null,sidePanelSelected:"login",sidePanelTitle:null,sidePanelAvatar:null,myTrustedBadges:[],loadSpinnerVisible:!1,login:"",password:"",persist:t,myUserId:null,liveConnection:navigator.onLine,topicSelected:"",topicSelectedOnline:!1,topicSelectedAcs:null,newTopicParams:null,loginDisabled:!1,displayMobile:window.innerWidth<=ks.VJ,infoPanel:void 0,mobilePanel:"sidepanel",callTopic:void 0,callState:0,callAudioOnly:void 0,callShouldStart:!1,contextMenuVisible:!1,contextMenuBounds:null,contextMenuClickAt:null,contextMenuParams:null,contextMenuItems:[],forwardDialogVisible:!1,forwardMessage:null,alertVisible:!1,alertParams:{},chatList:[],searchResults:[],searchableContacts:[],reqCredMethod:void 0,credMethod:void 0,credCode:void 0,credToken:void 0,requestedTopic:void 0}}componentDidMount(){if(window.addEventListener("resize",this.handleResize),this.handleOnlineOn=e=>{this.handleOnline(!0)},window.addEventListener("online",this.handleOnlineOn),this.handleOnlineOff=e=>{this.handleOnline(!1)},window.addEventListener("offline",this.handleOnlineOff),window.addEventListener("hashchange",this.handleHashRoute),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",this.handleColorSchemeChange),document.addEventListener("visibilitychange",this.handleVisibilityEvent),document.documentElement.style.colorScheme="auto"==this.state.colorSchema?"light dark":this.state.colorSchema,document.documentElement.style.setProperty("--message-text-size",`${this.state.textSize}pt`),this.applyWallpaperSettings(this.state.wallpaper,this.state.wallpaperSize,this.state.wallpaperBlur,"auto"==this.state.colorSchema?this.state.systemColorSchema:this.state.colorSchema),console.log("Wallpaper settings:",this.state.wallpaper,this.state.wallpaperSize,this.state.wallpaperBlur),console.log("Wallpaper type:",0==this.state.wallpaperSize?"wpimg":"wppatt"),console.log("System color scheme:",this.state.systemColorSchema),"function"==typeof BroadcastChannel){new BroadcastChannel("tinode-sw").addEventListener("message",this.handlePushMessage)}else console.warn("Your browser does not support BroadcastChannel. Some features will not be available");this.lastWakeUpCheck=(new Date).getTime(),this.wakeUpTicker=setInterval(e=>{const t=(new Date).getTime();t-this.lastWakeUpCheck>ks.hT&&this.handleOnlineOn(),this.lastWakeUpCheck=t},ks.ZW),this.setState({viewportWidth:document.documentElement.clientWidth,viewportHeight:document.documentElement.clientHeight}),new Promise((e,t)=>{this.tinode=_i.tnSetup(this.state.serverAddress,Ei(),this.state.transport,this.props.intl.locale,this.state.persist,e),this.tinode.onConnect=this.handleConnected,this.tinode.onDisconnect=this.handleDisconnect,this.tinode.onAutoreconnectIteration=this.handleAutoreconnectIteration,this.tinode.onInfoMessage=this.handleInfoMessage,this.tinode.onDataMessage=this.handleDataMessage}).then(e=>{this.state.desktopAlertsEnabled&&this.initFCMessaging().catch(e=>{}),this.resetContactList();const t=this.state.persist?yi.A.getObject("auth-token"):void 0;t&&(this.setState({autoLogin:!0}),t.expires=new Date(t.expires),this.tinode.setAuthToken(t),this.tinode.connect().catch(e=>{this.handleError(e.message,"err")}));const s=Ta.A.parseUrlHash(window.location.hash);if(["cred","reset","register"].includes(s.path[0]))this.handleHashRoute();else{this.setState({requestedTopic:s.path[1]});const e=s.params&&s.params.cred_done?Ta.A.addUrlParam("","cred_done",s.params.cred_done):"";Ta.A.navigateTo(e)}})}componentWillUnmount(){window.removeEventListener("resize",this.handleResize),window.removeEventListener("hashchange",this.handleHashRoute),window.removeEventListener("online",this.handleOnlineOn),window.removeEventListener("offline",this.handleOnlineOff),window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",this.handleColorSchemeChange),document.removeEventListener("visibilitychange",this.handleVisibilityEvent),clearInterval(this.wakeUpTicker)}static tnSetup(e,t,s,a,i,n){const r=new Ts.Tinode({appName:ks.C3,host:e,apiKey:ks.Lq,transport:s,secure:t,persist:i},n);return r.setHumanLanguage(a),r.enableLogging(ks.U3,!0),r}handlePushMessage(e){this.tinode.oobNotification(e.data||{})}initFCMessaging(){const{formatMessage:e,locale:t}=this.props.intl,s=(t,s)=>{console.error(t,s),this.handleError(e(Mi.push_init_failed),"err"),this.setState({firebaseToken:null}),yi.A.updateObject("settings",{desktopAlerts:!1})};try{return this.fcm=Cs(ze(FIREBASE_INIT,ks.C3)),navigator.serviceWorker.getRegistration("/service-worker.js").then(e=>e||navigator.serviceWorker.register("/service-worker.js").then(e=>(this.checkForAppUpdate(e),e))).then(e=>((e.active||e.installing).postMessage(JSON.stringify({locale:t,version:vi.i})),_i.requestFCMToken(this.fcm,e))).then(e=>{const t=yi.A.getObject("keep-logged-in");e!=this.state.firebaseToken&&(this.tinode.setDeviceToken(e),t&&yi.A.setObject("firebase-token",e)),this.setState({firebaseToken:e,desktopAlerts:!0}),t&&yi.A.updateObject("settings",{desktopAlerts:!0}),_s(this.fcm,e=>{this.handlePushMessage(e)})}).catch(e=>{throw s(e),e})}catch(e){return s(e),Promise.reject(e)}}static requestFCMToken(e,t){return Ss(e,{serviceWorkerRegistration:t,vapidKey:FIREBASE_INIT.messagingVapidKey}).then(t=>{if(t)return t;if("undefined"!=typeof Notification)return Notification.requestPermission().then(t=>{if("granted"===t)return Ss(e,{serviceWorkerRegistration:reg,vapidKey:FIREBASE_INIT.messagingVapidKey}).then(e=>{if(e)return e;throw new Error("Failed to initialize notifications")});throw new Error("No permission to send notifications: "+t)});throw new Error("Notifications are not supported")})}handleResize(){const e=document.documentElement.clientWidth<=ks.VJ;this.setState({viewportWidth:document.documentElement.clientWidth,viewportHeight:document.documentElement.clientHeight}),this.state.displayMobile!=e&&this.setState({displayMobile:e})}checkForAppUpdate(e){e.onupdatefound=t=>{const s=e.installing;s.onstatechange=e=>{if("installed"==s.state&&navigator.serviceWorker.controller){const e=l().createElement(l().Fragment,null,l().createElement(h.FormattedMessage,{id:"update_available",defaultMessage:[{type:0,value:"Update available."}]})," ",l().createElement("a",{href:""},l().createElement(h.FormattedMessage,{id:"reload_update",defaultMessage:[{type:0,value:"Reload"}]})),".");this.handleError(e,"info")}}}}handleHashRoute(){const e=Ta.A.parseUrlHash(window.location.hash),t={infoPanel:e.params.info,newTopicTabSelected:e.params.tab};if(e.path&&e.path.length>0){["acc_general","archive","blocked","contacts","cred","crop","edit","general","newtpk","notif","register","reset","security","settings","support","wallpapers",""].includes(e.path[0])?t.sidePanelSelected=e.path[0]:console.warn("Unknown sidepanel view",e.path[0]);let s=e.path[1]||null;s!=this.state.topicSelected&&(Ts.Tinode.topicType(s)?t.mobilePanel="topic-view":(s=null,t.mobilePanel="sidepanel"),Object.assign(t,{topicSelected:s,topicSelectedAcs:this.tinode.getTopicAccessMode(s)}))}else Object.assign(t,{sidePanelSelected:"",topicSelected:null});e.params.method&&(t.credMethod=e.params.method),e.params.code&&(t.credCode=e.params.code),e.params.token&&(t.credToken=e.params.token),e.params.cred_done&&Object.assign(t,_i.stateForError(this.props.intl.formatMessage(Mi.cred_confirmed_successfully),"info")),this.setState(t)}handleOnline(e){e?(this.handleError(),clearInterval(this.reconnectCountdown),this.tinode.reconnect()):this.handleError(this.props.intl.formatMessage(Mi.no_connection),"warn"),this.setState({liveConnection:e})}handleVisibilityEvent(){this.setState({applicationVisible:!document.hidden})}static stateForError(e,t,s,a){return{errorText:e,errorLevel:t,errorAction:s,errorActionText:a,callShouldStart:!1}}handleError(e,t,s,a){this.setState(_i.stateForError(e,t,s,a))}handleLoginRequest(e,t){this.setState({loginDisabled:!0,login:e,password:t,loadSpinnerVisible:!0,autoLogin:!0}),this.handleError("",null),this.tinode.isConnected()?this.doLogin(e,t,null,{meth:this.state.credMethod,resp:this.state.credCode}):this.tinode.connect().catch(e=>{this.setState({loginDisabled:!1,autoLogin:!1,loadSpinnerVisible:!1}),this.handleError(e.message,"err")}),this.state.desktopAlertsEnabled&&!this.state.firebaseToken&&this.initFCMessaging()}handlePersistenceChange(e){e?this.tinode.initStorage().then(e=>{yi.A.setObject("keep-logged-in",!0),this.setState({persist:!0})}):this.tinode.clearStorage().then(e=>{yi.A.setObject("keep-logged-in",!1),this.setState({persist:!1})})}handleConnected(){clearInterval(this.reconnectCountdown),this.handleError();const e=this.tinode.getServerInfo();this.setState({serverVersion:e.ver+" "+(e.build?e.build:"none"),reqCredMethod:((e.reqCred||{}).auth||[])[0]||"email"}),this.state.autoLogin&&this.doLogin(this.state.login,this.state.password,null,{meth:this.state.credMethod,resp:this.state.credCode})}handleAutoreconnectIteration(e,t){if(clearInterval(this.reconnectCountdown),e<0)return void this.handleError();if(t)return void t.then(e=>{this.handleError()}).catch(e=>{this.handleError(e.message,"err")});const{formatMessage:s}=this.props.intl;let a=e/1e3;a|=a,this.reconnectCountdown=setInterval(e=>{if(a<-10)return clearInterval(this.reconnectCountdown),void this.tinode.reconnect();const t=a>99?(0,js.Ye)(a):a;this.handleError(s(Mi.reconnect_countdown,{seconds:t}),"warn",e=>{clearInterval(this.reconnectCountdown),this.tinode.reconnect()},s(Mi.reconnect_now)),a-=1},1e3)}handleDisconnect(e){this.setState({connected:!1,ready:!1,topicSelectedOnline:!1,errorText:e&&e.message?e.message:"Disconnected",errorLevel:e&&e.message?"err":"warn",loginDisabled:!1,contextMenuVisible:!1,forwardDialogVisible:!1,serverVersion:"no connection"})}doLogin(e,t,s,a){if(this.tinode.isAuthenticated())return void Ta.A.navigateTo("");let i=s||(this.tinode.getAuthToken()||{}).token;if(!(e&&t||i))return Ta.A.navigateTo(""),void this.setState({loginDisabled:!1});a=Ts.Tinode.credential(a);let n,r=this.tinode.isConnected()?Promise.resolve():this.tinode.connect();e&&t?(i=null,this.setState({password:null}),n=r.then(s=>this.tinode.loginBasic(e,t,a))):n=r.then(e=>this.tinode.loginToken(i,a)),n.then(e=>{e.code>=300&&"validate credentials"===e.text?(this.setState({loadSpinnerVisible:!1}),a&&this.handleError(this.props.intl.formatMessage(Mi.code_doesnot_match),"warn"),_i.navigateToCredentialsView(e.params)):this.handleLoginSuccessful()}).catch(e=>{const t=e.code>=500;this.setState({loginDisabled:!1,credMethod:void 0,credCode:void 0,loadSpinnerVisible:!1,autoLogin:t}),this.handleError(e.message,"err"),console.warn("Login failed",e),t||(i&&this.handleLogout(),Ta.A.navigateTo(""))})}static navigateToCredentialsView(e){const t=Ta.A.parseUrlHash(window.location.hash);t.path[0]="cred",t.params.method=e.cred[0],t.params.token=e.token,t.params.code=e.code,Ta.A.navigateTo(Ta.A.composeUrlHash(t.path,t.params))}handleLoginSuccessful(){this.handleError(),yi.A.getObject("keep-logged-in")&&yi.A.setObject("auth-token",this.tinode.getAuthToken());const e=this.state.requestedTopic,t=this.tinode.getMeTopic();t.onMetaDesc=this.tnMeMetaDesc,t.onContactUpdate=this.tnMeContactUpdate,t.onSubsUpdated=this.tnMeSubsUpdated,this.setState({connected:!0,credMethod:void 0,credCode:void 0,credToken:void 0,myUserId:this.tinode.getCurrentUserID(),autoLogin:!0,requestedTopic:void 0}),t.subscribe(t.startMetaQuery().withLaterSub().withDesc().withTags().withCred().build()).catch(e=>{this.tinode.disconnect(),localStorage.removeItem("auth-token"),this.handleError(e.message,"err"),Ta.A.navigateTo("")}).finally(e=>{this.setState({loadSpinnerVisible:!1})});let s=Ta.A.setUrlSidePanel(window.location.hash,"contacts");e&&(s=Ta.A.setUrlTopic(s,e)),Ta.A.navigateTo(s)}tnMeMetaDesc(e){if(e){if(e.public&&this.setState({sidePanelTitle:e.public.fn,sidePanelAvatar:(0,Os.to)(e.public.photo)}),e.trusted){const t=[];for(const[s,a]of Object.entries(e.trusted))a&&t.push(s);this.setState({myTrustedBadges:t})}e.acs&&this.setState({incognitoMode:!e.acs.isPresencer()}),_i.checkIfPinsUpdated(e,this.state.chatList)&&this.resetContactList()}}tnMeContactUpdate(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&&t){const e=this.tinode.getTopic(t.topic),s=e&&e.isArchived();t.unread>0&&this.state.messageSounds&&!s&&(document.hidden||this.state.topicSelected!=t.topic)&&Si.play().catch(e=>{}),this.resetContactList()}else"recv"==e||("gone"==e||"unsub"==e?(this.state.topicSelected==t.topic&&this.handleTopicSelected(null),this.resetContactList()):"acs"==e?this.state.topicSelected==t.topic&&this.setState({topicSelectedAcs:t.acs}):"del"==e||"upd"==e||"call"==e||console.info("Unsupported (yet) presence update:",e,"in",(t||{}).topic))}tnMeSubsUpdated(e){this.resetContactList()}static prepareSearchableContacts(e,t){const s={};for(const t of e)Ts.Tinode.isP2PTopicName(t.topic)&&(s[t.topic]={user:t.topic,updated:t.updated,public:t.public,private:t.private,acs:t.acs});for(const e of t)s[e.user]||(s[e.user]=e);return Object.values(s)}resetContactList(){const e={chatList:[]};this.state.ready||(e.ready=!0);const t=this.tinode.getMeTopic();t.contacts(t=>{t.topic||t.user||(t.topic=t.name),e.chatList.push(t),this.state.topicSelected==t.topic&&(e.topicSelectedOnline=t.online,e.topicSelectedAcs=t.acs)});const s=new Date(0);e.chatList.sort((e,a)=>{const i=t.pinnedTopicRank(a.topic)-t.pinnedTopicRank(e.topic);return 0!=i?i:(a.touched||s).getTime()-(e.touched||s).getTime()}),e.searchableContacts=_i.prepareSearchableContacts(e.chatList,this.state.searchResults),this.setState(e)}static checkIfPinsUpdated(e,t){for(let s=0;s{this.handleError(e.message,"err")})}tnFndSubsUpdated(){const e=[];this.tinode.getFndTopic().contacts(t=>{e.push(t)}),this.setState({searchResults:e,searchableContacts:_i.prepareSearchableContacts(this.state.chatList,e)})}handleSearchContacts(e){const t=this.tinode.getFndTopic();t.setMeta({desc:{public:e}}).then(e=>t.getMeta(t.startMetaQuery().withSub().build())).catch(e=>this.handleError(e.message,"err"))}handleTopicSelected(e){this.state.newTopicParams&&this.state.newTopicParams._topicName!=e&&this.setState({newTopicParams:null}),e?(this.setState({errorText:"",errorLevel:null,mobilePanel:"topic-view",infoPanel:void 0}),this.state.topicSelected!=e&&(this.setState({topicSelectedOnline:this.tinode.isTopicOnline(e),topicSelectedAcs:this.tinode.getTopicAccessMode(e),forwardMessage:null}),Ta.A.navigateTo(Ta.A.setUrlTopic("",e)))):(this.setState({topicSelected:null,errorText:"",errorLevel:null,mobilePanel:"sidepanel",topicSelectedOnline:!1,topicSelectedAcs:null,infoPanel:void 0,forwardMessage:null}),Ta.A.navigateTo(Ta.A.setUrlTopic("",null)))}handleHideMessagesView(){this.setState({mobilePanel:"sidepanel"}),Ta.A.navigateTo(Ta.A.setUrlTopic(window.location.hash,null))}handleSendMessage(e,t,s,a){const i=this.tinode.getTopic(this.state.topicSelected);return this.sendMessageToTopic(i,e,t,s,a)}sendMessageToTopic(e,t,s,a,i){(t=e.createMessage(t,!1))._uploader=a,i&&(t.head=Object.assign(t.head||{},i));const n=[];if(s&&n.push(s),!e.isSubscribed()){const s=e.subscribe().then(s=>{let a=[];e.queuedMessages(s=>{s._sending||s.seq==t.seq||(s.head&&s.head.webrtc?a.push(s.seq):e.isSubscribed()&&e.publishMessage(s))}),a.length>0&&e.delMessagesList(a,!0)});n.push(s)}return e.publishDraft(t,Promise.all(n)).then(t=>(e.isArchived()&&e.archive(!1),t)).catch(e=>this.handleError(e.message,"err"))}handleNewChatInvitation(e,t){const s=this.tinode.getTopic(e);let a=null;switch(t){case"accept":const i=s.getAccessMode().getGiven();a=s.setMeta({sub:{mode:i}}),s.isP2PType()&&(a=a.then(t=>s.setMeta({sub:{user:e,mode:i}})));break;case"delete":a=s.delTopic(!0);break;case"block":const n=s.getAccessMode().updateWant("-JP").getWant();a=s.setMeta({sub:{mode:n}}).then(e=>this.handleTopicSelected(null));break;default:console.warn("Unknown invitation action",'"'+t+'""')}null!=a&&a.catch(e=>this.handleError(e.message,"err"))}handleNewAccount(){this.handleError(),Ta.A.navigateTo(Ta.A.setUrlSidePanel(window.location.hash,"register"))}handleNewAccountRequest(e,t,s,a,i){this.handleError(),this.tinode.connect(this.state.serverAddress).then(n=>{let r;return s&&s.photo&&s.photo.ref&&(r=[s.photo.ref]),this.tinode.createAccountBasic(e,t,{public:s,tags:i,cred:Ts.Tinode.credential(a),attachments:r})}).then(e=>{e.code>=300&&"validate credentials"==e.text?_i.navigateToCredentialsView(e.params):this.handleLoginSuccessful(this)}).catch(e=>{this.handleError(e.message,"err")})}handleToggleIncognitoMode(e){this.setState({incognitoMode:null});const t=this.tinode.getMeTopic(),s=t.getAccessMode().updateWant(e?"-P":"+P").getWant();t.setMeta({sub:{mode:s}}).catch(t=>{this.setState({incognitoMode:!e}),this.handleError(t.message,"err")})}handleChangeColorSchema(e){console.log("User color scheme change:",e),this.setState({colorSchema:e}),yi.A.updateObject("settings",{colorSchema:e}),document.documentElement.style.colorScheme="auto"==e?"light dark":e,this.applyColorSchema(e,this.state.systemColorSchema,this.state.wallpaperSize)}handleColorSchemeChange(e){const t=e.matches?"dark":"light";console.log("System color scheme change:",t),this.setState({systemColorSchema:t}),this.applyColorSchema(this.state.colorSchema,t,this.state.wallpaperSize)}applyColorSchema(e,t,s){const a="auto"==e?t:e;console.log("applyColorSchema:",a),document.documentElement.style.setProperty("--wallpaper-invert","dark"==a&&s?"1":"0"),document.documentElement.style.setProperty("--wallpaper-brightness","dark"!=a||s?"1":"0.5")}handleSelectWallpapers(){this.handleError(),Ta.A.navigateTo(Ta.A.setUrlSidePanel(window.location.hash,"wallpapers"))}applyWallpaperSettings(e,t,s,a){document.documentElement.style.setProperty("--wallpaper-url",`url('${e}')`),document.documentElement.style.setProperty("--wallpaper-repeat",t?"repeat":"no-repeat"),document.documentElement.style.setProperty("--wallpaper-blur",t?"0px":`${s}px`),document.documentElement.style.setProperty("--wallpaper-size",t?`${t}px`:"cover"),document.documentElement.style.setProperty("--wallpaper-position",t?"unset":"center"),document.documentElement.style.setProperty("--wallpaper-invert","dark"==a&&t?"1":"0"),document.documentElement.style.setProperty("--wallpaper-brightness","dark"!=a||t?"1":"0.5")}handleWallpaperSelected(e,t,s){this.handleError(),yi.A.updateObject("settings",{wallpaper:e,wallpaperSize:t,wallpaperBlur:s}),this.setState({wallpaper:e,wallpaperSize:t,wallpaperBlur:s}),this.applyWallpaperSettings(e,t,s,"auto"==this.state.colorSchema?this.state.systemColorSchema:this.state.colorSchema)}handleChangeTextSize(e){this.setState({textSize:0|e}),yi.A.updateObject("settings",{textSize:e}),document.documentElement.style.setProperty("--message-text-size",`${e}pt`)}handleSendOnEnter(e){this.setState({sendOnEnter:e}),yi.A.updateObject("settings",{sendOnEnter:e})}handleUpdateAccountTagsRequest(e,t){this.tinode.getMeTopic().setMeta({tags:t}).catch(e=>this.handleError(e.message,"err"))}handleSettings(){this.handleError(),Ta.A.navigateTo(Ta.A.setUrlSidePanel(window.location.hash,this.state.myUserId?"edit":"settings"))}handleGlobalSettings(e){const t=e.serverAddress||this.state.serverAddress,s=e.transport||this.state.transport,a=void 0===e.secureConnection?this.state.secureConnection:e.secureConnection;this.tinode&&(this.tinode.clearStorage(),this.tinode.onDisconnect=void 0,this.tinode.disconnect()),this.tinode=_i.tnSetup(t,a,s,this.props.intl.locale,yi.A.getObject("keep-logged-in")),this.tinode.onConnect=this.handleConnected,this.tinode.onDisconnect=this.handleDisconnect,this.tinode.onAutoreconnectIteration=this.handleAutoreconnectIteration,this.tinode.onInfoMessage=this.handleInfoMessage,this.tinode.onDataMessage=this.handleDataMessage,this.setState({serverAddress:t,transport:s,secureConnection:a}),yi.A.setObject("settings",{serverAddress:t,transport:s,secureConnection:a}),Ta.A.navigateTo(Ta.A.setUrlSidePanel(window.location.hash,""))}handleShowArchive(){Ta.A.navigateTo(Ta.A.setUrlSidePanel(window.location.hash,this.state.myUserId?"archive":""))}handleShowBlocked(){Ta.A.navigateTo(Ta.A.setUrlSidePanel(window.location.hash,this.state.myUserId?"blocked":""))}toggleFCMToken(e){e?(this.setState({desktopAlerts:null}),this.state.firebaseToken?(this.setState({desktopAlerts:!0}),yi.A.getObject("keep-logged-in")&&yi.A.updateObject("settings",{desktopAlerts:!0})):this.initFCMessaging()):this.state.firebaseToken&&this.fcm?Ms(this.fcm).catch(e=>{console.error("Unable to delete token.",e)}).finally(e=>{yi.A.updateObject("settings",{desktopAlerts:!1}),localStorage.removeItem("firebase-token"),this.setState({desktopAlerts:!1,firebaseToken:null}),this.tinode.setDeviceToken(null)}):(this.setState({desktopAlerts:!1,firebaseToken:null}),yi.A.updateObject("settings",{desktopAlerts:!1}))}handleToggleMessageSounds(e){this.setState({messageSounds:e}),yi.A.updateObject("settings",{messageSoundsOff:!e})}handleCredAdd(e,t){this.tinode.getMeTopic().setMeta({cred:{meth:e,val:t}}).catch(e=>this.handleError(e.message,"err"))}handleCredDelete(e,t){this.tinode.getMeTopic().delCredential(e,t).catch(e=>this.handleError(e.message,"err"))}handleCredConfirm(e,t){_i.navigateToCredentialsView({cred:[e],code:t})}handleSidepanelCancel(){const e=Ta.A.parseUrlHash(window.location.hash);let t="";["security","support","general","notif","acc_general"].includes(e.path[0])?t="edit":"crop"==e.path[0]?t="general":"blocked"==e.path[0]?t="security":"wallpapers"==e.path[0]?t="acc_general":this.state.myUserId&&(t="contacts"),e.path[0]=t,e.params&&(delete e.params.code,delete e.params.method,delete e.params.tab,delete e.params.scheme,delete e.params.token),Ta.A.navigateTo(Ta.A.composeUrlHash(e.path,e.params)),this.setState({errorText:"",errorLevel:null})}basicNavigator(e){Ta.A.navigateTo(Ta.A.setUrlSidePanel(window.location.hash,e))}infoNavigator(e){Ta.A.navigateTo(Ta.A.setUrlInfoPanel(window.location.hash,e))}handleStartTopicRequest(e,t,s){if(e&&this.tinode.isTopicCached(e))return void this.handleTopicSelected(e);const a={};Ts.Tinode.isP2PTopicName(e)?(a.sub={mode:ks.cZ},a.desc={defacs:{auth:ks.cZ}}):(e=e||this.tinode.newGroupTopicName(s),t&&(a.desc={public:t.public,private:{comment:t.private}},a.tags=t.tags)),a._topicName=e,this.setState({newTopicParams:a},t=>{this.handleTopicSelected(e)})}handleNewTopicCreated(e,t){let s={};this.state.callShouldStart&&(s={callState:3,callShouldStart:!1}),this.state.topicSelected==e&&e!=t&&(s.topicSelected=t),this.setState(s,e=>{Ta.A.navigateTo(Ta.A.setUrlTopic("",t))})}handleTopicUpdateRequest(e,t,s,a){this.handleError();const i=this.tinode.getTopic(e);if(i){const e={};let n;t&&(t.photo&&(t.photo.ref&&t.photo.ref!=Ts.Tinode.DEL_CHAR?n=[t.photo.ref]:t.photo.data&&t.photo.data!=Ts.Tinode.DEL_CHAR||(t.photo=Ts.Tinode.DEL_CHAR)),e.public=t),"string"==typeof s&&(e.private=s===Ts.Tinode.DEL_CHAR?Ts.Tinode.DEL_CHAR:{comment:s}),a&&(e.defacs=a),i.setMeta({desc:e,attachments:n}).catch(e=>this.handleError(e.message,"err"))}}handleUnarchive(e){const t=this.tinode.getTopic(e);t&&t.archive(!1).catch(e=>this.handleError(e.message,"err"))}handleUpdatePasswordRequest(e){this.handleError(),e&&this.tinode.updateAccountBasic(null,this.tinode.getCurrentLogin(),e).catch(e=>this.handleError(e.message,"err"))}handleChangePermissions(e,t,s){const a=this.tinode.getTopic(e);if(a){const e=a.getAccessMode();s?(e.updateGiven(t),t=e.getGiven()):(e.updateWant(t),t=e.getWant()),a.setMeta({sub:{user:s,mode:t}}).catch(e=>this.handleError(e.message,"err"))}}handleTagsUpdateRequest(e,t){const s=this.tinode.getTopic(e);s&&s.setMeta({tags:t}).catch(e=>this.handleError(e.message,"err"))}handleLogout(){let e;(0,Xs.OM)(0),localStorage.removeItem("auth-token"),localStorage.removeItem("firebase-token"),localStorage.removeItem("settings"),this.state.firebaseToken&&Ms(this.fcm),document.documentElement.style.colorScheme="auto"==ks.gb?"light dark":ks.gb,document.documentElement.style.setProperty("--message-text-size",`${ks.cL}pt`),clearInterval(this.reconnectCountdown),this.tinode?(e=this.tinode.clearStorage(),this.tinode.onDisconnect=void 0,this.tinode.disconnect()):e=Promose.resolve(),this.setState(this.getBlankState()),e.then(e=>{this.tinode=_i.tnSetup(this.state.serverAddress,Ei(),this.state.transport,this.props.intl.locale,yi.A.getObject("keep-logged-in"),e=>{this.tinode.onConnect=this.handleConnected,this.tinode.onDisconnect=this.handleDisconnect,this.tinode.onAutoreconnectIteration=this.handleAutoreconnectIteration,this.tinode.onInfoMessage=this.handleInfoMessage,this.tinode.onDataMessage=this.handleDataMessage,Ta.A.navigateTo("")})})}handleDeleteAccount(){this.tinode.delCurrentUser(!0).then(e=>{this.handleLogout()})}handleDeleteTopicRequest(e){const t=this.tinode.getTopic(e);t&&t.delTopic(!0).then(e=>{Ta.A.navigateTo(Ta.A.setUrlTopic(window.location.hash,""))}).catch(e=>{this.handleError(e.message,"err")})}handleDeleteMessagesRequest(e){const t=this.tinode.getTopic(e);t&&t.delMessagesAll(!0).catch(e=>this.handleError(e.message,"err"))}handleLeaveUnsubRequest(e){const t=this.tinode.getTopic(e);t&&t.leave(!0).then(e=>{Ta.A.navigateTo(Ta.A.setUrlTopic(window.location.hash,""))}).catch(e=>{this.handleError(e.message,"err")})}handleBlockTopicRequest(e){const t=this.tinode.getTopic(e);t&&t.updateMode(null,"-JP").then(e=>{Ta.A.navigateTo(Ta.A.setUrlTopic(window.location.hash,""))}).catch(e=>this.handleError(e.message,"err"))}handleReportTopic(e){const t=this.tinode.getTopic(e);t&&(this.tinode.report("report",e),t.updateMode(null,"-JP").then(e=>{Ta.A.navigateTo(Ta.A.setUrlTopic(window.location.hash,""))}).catch(e=>this.handleError(e.message,"err")))}handleShowContextMenu(e,t){this.setState({contextMenuVisible:!0,contextMenuClickAt:{x:e.x,y:e.y},contextMenuParams:e,contextMenuItems:t||this.defaultTopicContextMenu(e.topicName),contextMenuBounds:this.selfRef.current.getBoundingClientRect()})}handleShowForwardDialog(e){"newtpk"==this.state.sidePanelSelected&&this.handleSidepanelCancel();const t="➦ "+e.userName,s="string"==typeof e.content?Ts.Drafty.init(e.content):Ts.Drafty.forwardedContent(e.content),a=Ts.Drafty.preview(s,ks.TR,!0),i=Ts.Drafty.append(Ts.Drafty.appendLineBreak(Ts.Drafty.mention(t,e.userFrom)),s),n=Ts.Drafty.quote(t,e.userFrom,a),r={forwarded:e.topicName+":"+e.seq};this.setState({forwardDialogVisible:!0,forwardMessage:{head:r,msg:i,preview:n}})}defaultTopicContextMenu(e){const t=this.tinode.getTopic(e);if(t._deleted)return["topic_delete"];const s=this.tinode.getMeTopic();let a=!1,i=!1,n=!1,r=!1,o=!1,l=!1,c=!1,h=!1,d=!1,p=!1,u=!1;if(t){r=t.isSubscribed(),l=t.isArchived(),c=s.pinnedTopicRank(e)>0;const h=t.getAccessMode();h&&(a=h.isMuted(),i=!h.isJoiner(),n=!h.isJoiner("want"),o=h.isDeleter(),d=h.isWriter())}return h=d&&!!this.tinode.getServerParam("iceServers"),p=Ts.Tinode.isP2PTopicName(e),u=Ts.Tinode.isSelfTopicName(e),[r?{title:this.props.intl.formatMessage(Mi.menu_item_info),handler:this.handleShowInfoView}:null,r&&p&&h?{title:this.props.intl.formatMessage(Mi.menu_item_audio_call),handler:this.handleStartAudioCall}:null,r&&p&&h?{title:this.props.intl.formatMessage(Mi.menu_item_video_call),handler:this.handleStartVideoCall}:null,r?"messages_clear":null,r&&o&&!u?"messages_clear_hard":null,u?null:a?i?null:"topic_unmute":"topic_mute",u?null:n?"topic_unblock":"topic_block",c?"topic_unpin":"topic_pin",l?"topic_restore":"topic_archive","topic_delete"]}handleHideContextMenu(){this.setState({contextMenuVisible:!1,contextMenuClickAt:null,contextMenuParams:null,contextMenuBounds:null})}handleHideForwardDialog(e){this.setState({forwardDialogVisible:!1,forwardMessage:e?this.state.forwardMessage:null})}handleContextMenuAction(e,t,s){"topic_archive"==e?t&&s.topicName&&s.topicName==this.state.topicSelected&&t.then(e=>{this.handleTopicSelected(null)}):"menu_item_forward"==e&&this.handleShowForwardDialog(s)}handleShowAlert(e,t,s,a,i,n){this.setState({alertVisible:!0,alertParams:{title:e,content:t,onConfirm:s,confirm:a,onReject:i,reject:n}})}handleShowInfoView(){Ta.A.navigateTo(Ta.A.addUrlParam(window.location.hash,"info","info")),this.setState({infoPanel:"info"})}handleMemberUpdateRequest(e,t,s){if(!e)return;const a=this.tinode.getTopic(e);a&&(t&&t.length>0&&t.forEach(e=>{a.invite(e,null).catch(e=>this.handleError(e.message,"err"))}),s&&s.length>0&&s.forEach(e=>{a.delSubscription(e).catch(e=>this.handleError(e.message,"err"))}))}handleValidateCredentialsRequest(e,t,s){this.tinode.isAuthenticated()?this.tinode.getMeTopic().setMeta({cred:{meth:e,resp:t}}).then(e=>Ta.A.navigateTo(Ta.A.setUrlSidePanel(window.location.hash,"contacts"))).catch(e=>this.handleError(e.message,"err")):(this.setState({credMethod:e,credCode:t,credToken:s}),this.doLogin(null,null,s,{meth:e,resp:t}))}handlePasswordResetRequest(e,t){return this.tinode.connect().then(s=>this.tinode.requestResetAuthSecret("basic",e,t)).catch(e=>{this.handleError(e.message,"err")})}handleResetPassword(e,t){const s=(0,Os.$Z)(t.secret);s&&t.scheme?this.tinode.connect().then(a=>this.tinode.updateAccountBasic(null,null,e,{scheme:t.scheme,secret:s})).then(e=>{this.handleError(this.props.intl.formatMessage(Mi.password_reset_success),"info"),Ta.A.navigateTo("")}).catch(e=>{this.handleError(e.message,"err")}):this.handleError(this.props.intl.formatMessage(Mi.invalid_security_token),"err")}handleShowCountrySelector(e,t,s){this.handleShowAlert(this.props.intl.formatMessage(Mi.select_country),l().createElement(o.Suspense,{fallback:l().createElement("div",null,l().createElement(h.FormattedMessage,{id:"loading_note",defaultMessage:[{type:0,value:"Loading..."}]}))},l().createElement(wi,{selected:e,onSubmit:(e,t)=>{this.setState({alertVisible:!1}),s(e,t)}})),null,null,e=>{},null)}handleStartVideoCall(){this.setState({callTopic:this.state.topicSelected,callState:1,callAudioOnly:!1})}handleStartAudioCall(){this.setState({callTopic:this.state.topicSelected,callState:1,callAudioOnly:!0})}handleCallInvite(e,t,s,a){switch(s){case 1:const s={webrtc:Ls,aonly:!!a};return this.handleSendMessage(Ts.Drafty.videoCall(a),void 0,void 0,s).then(e=>e.code<200||e.code>=300||!e.params||!e.params.seq?(this.handleCallClose(),e):(this.setState({callSeq:e.params.seq}),e));case 3:const i=this.tinode.getTopic(e);if(!i)return;i.videoCall("accept",t)}}handleCallRinging(e,t){const s=this.tinode.getTopic(e);s&&s.videoCall("ringing",t)}handleCallHangup(e,t){const s=this.tinode.getTopic(e);s&&s.videoCall("hang-up",t)}handleCallSendOffer(e,t,s){const a=this.tinode.getTopic(e);a&&a.videoCall("offer",t,s)}handleCallIceCandidate(e,t,s){const a=this.tinode.getTopic(e);a&&a.videoCall("ice-candidate",t,s)}handleCallSendAnswer(e,t,s){const a=this.tinode.getTopic(e);a&&a.videoCall("answer",t,s)}handleCallClose(){this.callTimeoutTimer&&clearTimeout(this.callTimeoutTimer),this.setState({callTopic:void 0,callState:0,callAudioOnly:void 0})}handleCallAccept(e,t,s){const a=this.tinode.getTopic(e);if(a)if(a.isSubscribed()){this.handleTopicSelected(t?e:this.state.callTopic);const a={callState:3};t&&(a.callTopic=e,a.callSeq=s),this.setState(a)}else this.setState({callShouldStart:!0},e=>this.handleTopicSelected(this.state.callTopic))}handleInfoMessage(e){if("call"==e.what)switch(e.event){case"accept":if(Ts.Tinode.isMeTopicName(e.topic)&&this.tinode.isMe(e.from))return void this.setState({callTopic:null,callState:0,callSeq:null,callAudioOnly:void 0});e.topic==this.state.callTopic&&this.setState({callState:3});break;case"hang-up":this.handleCallClose()}}handleDataMessage(e){if(e.head&&e.head.webrtc&&e.head.webrtc==Ls&&Ts.Tinode.isP2PTopicName(e.topic)){const t=this.tinode.getTopic(e.topic);if(t){const s=t.latestMsgVersion(e.seq)||e;s.head&&s.head.webrtc&&s.head.webrtc==Ls&&e.from!=this.state.myUserId&&(0==this.state.callState?this.setState({callTopic:e.topic,callState:2,callSeq:e.seq,callAudioOnly:!!s.head.aonly}):this.handleCallHangup(e.topic,e.seq))}else console.warn("Received vc data message from unknown topic",e.topic)}}render(){const e="auto"!==this.state.colorSchema?this.state.colorSchema:this.state.systemColorSchema;return l().createElement("div",{id:"app-container",ref:this.selfRef},this.state.contextMenuVisible?l().createElement(Is,{tinode:this.tinode,bounds:this.state.contextMenuBounds,clickAt:this.state.contextMenuClickAt,params:this.state.contextMenuParams,items:this.state.contextMenuItems,hide:this.handleHideContextMenu,onShowAlert:this.handleShowAlert,onAction:this.handleContextMenuAction,onTopicRemoved:e=>{e==this.state.topicSelected&&this.handleTopicSelected(null)},onError:this.handleError}):null,this.state.forwardDialogVisible?l().createElement(Rs,{tinode:this.tinode,contacts:this.state.chatList,topicSelected:this.state.topicSelected,myUserId:this.state.myUserId,hide:this.handleHideForwardDialog,onInitFind:this.tnInitFind,searchResults:this.state.searchResults,onSearchContacts:this.handleSearchContacts,onTopicSelected:this.handleStartTopicRequest}):null,this.state.callTopic&&2==this.state.callState?l().createElement(qs,{tinode:this.tinode,topic:this.state.callTopic,seq:this.state.callSeq,callState:this.state.callState,audioOnly:this.state.callAudioOnly,onClose:this.handleCallClose,onRinging:this.handleCallRinging,onAcceptCall:this.handleCallAccept,onReject:this.handleCallHangup}):null,this.state.alertVisible?l().createElement(As,{title:this.state.alertParams.title,content:this.state.alertParams.content,onReject:this.state.alertParams.onReject?e=>this.setState({alertVisible:!1}):null,reject:this.state.alertParams.reject,onConfirm:this.state.alertParams.onConfirm?e=>{this.setState({alertVisible:!1}),this.state.alertParams.onConfirm()}:null,confirm:this.state.alertParams.confirm}):null,this.state.displayMobile&&"sidepanel"!=this.state.mobilePanel?null:l().createElement(fi,{tinode:this.tinode,connected:this.state.connected,displayMobile:this.state.displayMobile,state:this.state.sidePanelSelected,title:this.state.sidePanelTitle,avatar:this.state.sidePanelAvatar,trustedBadges:this.state.myTrustedBadges,login:this.state.login,persist:this.state.persist,myUserId:this.state.myUserId,loginDisabled:this.state.loginDisabled,loadSpinnerVisible:this.state.loadSpinnerVisible,errorText:this.state.errorText,errorLevel:this.state.errorLevel,errorAction:this.state.errorAction,errorActionText:this.state.errorActionText,topicSelected:this.state.topicSelected,chatList:this.state.chatList,credMethod:this.state.credMethod,credCode:this.state.credCode,credToken:this.state.credToken,transport:this.state.transport,messageSounds:this.state.messageSounds,desktopAlerts:this.state.desktopAlerts,desktopAlertsEnabled:this.state.desktopAlertsEnabled,incognitoMode:this.state.incognitoMode,serverAddress:this.state.serverAddress,secureConnection:this.state.secureConnection,serverVersion:this.state.serverVersion,reqCredMethod:this.state.reqCredMethod,textSize:this.state.textSize,colorSchema:this.state.colorSchema,systemColorSchema:this.state.systemColorSchema,sendOnEnter:this.state.sendOnEnter,onGlobalSettings:this.handleGlobalSettings,onSignUp:this.handleNewAccount,onSettings:this.handleSettings,onNavigate:this.basicNavigator,onLoginRequest:this.handleLoginRequest,onPersistenceChange:this.handlePersistenceChange,onCreateAccount:this.handleNewAccountRequest,onUpdateAccountDesc:this.handleTopicUpdateRequest,onUpdatePassword:this.handleUpdatePasswordRequest,onUpdateAccountTags:this.handleUpdateAccountTagsRequest,onTogglePushNotifications:this.toggleFCMToken,onToggleMessageSounds:this.handleToggleMessageSounds,onToggleIncognitoMode:this.handleToggleIncognitoMode,onChangeColorSchema:this.handleChangeColorSchema,onTextSizeChanged:this.handleChangeTextSize,onSendOnEnterChanged:this.handleSendOnEnter,onSelectWallpapers:this.handleSelectWallpapers,onWallpaperSelected:this.handleWallpaperSelected,onCredAdd:this.handleCredAdd,onCredDelete:this.handleCredDelete,onCredConfirm:this.handleCredConfirm,onTopicSelected:this.handleTopicSelected,onCreateTopic:this.handleStartTopicRequest,onLogout:this.handleLogout,onDeleteAccount:this.handleDeleteAccount,onShowAlert:this.handleShowAlert,onCancel:this.handleSidepanelCancel,onError:this.handleError,onValidateCredentials:this.handleValidateCredentialsRequest,onPasswordResetRequest:this.handlePasswordResetRequest,onResetPassword:this.handleResetPassword,onShowArchive:this.handleShowArchive,onShowBlocked:this.handleShowBlocked,onShowCountrySelector:this.handleShowCountrySelector,onInitFind:this.tnInitFind,searchResults:this.state.searchResults,onSearchContacts:this.handleSearchContacts,showContextMenu:this.handleShowContextMenu}),!this.state.displayMobile||"topic-view"==this.state.mobilePanel&&!this.state.infoPanel?l().createElement(Pa,{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,topic:this.state.topicSelected,myUserId:this.state.myUserId,myUserName:this.state.sidePanelTitle,serverVersion:this.state.serverVersion,serverAddress:this.state.serverAddress,applicationVisible:this.state.applicationVisible,colorSchema:e,sendOnEnter:this.state.sendOnEnter,wallpaper:this.state.wallpaper,forwardMessage:this.state.forwardMessage,onCancelForwardMessage:this.handleHideForwardDialog,callTopic:this.state.callTopic,callSeq:this.state.callSeq,callState:this.state.callState,callAudioOnly:this.state.callAudioOnly,onCallHangup:this.handleCallHangup,onAcceptCall:this.handleCallAccept,onCallInvite:this.handleCallInvite,onCallSendOffer:this.handleCallSendOffer,onCallIceCandidate:this.handleCallIceCandidate,onCallSendAnswer:this.handleCallSendAnswer,errorText:this.state.errorText,errorLevel:this.state.errorLevel,errorAction:this.state.errorAction,errorActionText:this.state.errorActionText,newTopicParams:this.state.newTopicParams,onHideMessagesView:this.handleHideMessagesView,onError:this.handleError,onNewTopicCreated:this.handleNewTopicCreated,showContextMenu:this.handleShowContextMenu,onChangePermissions:this.handleChangePermissions,onNewChat:this.handleNewChatInvitation,sendMessage:this.handleSendMessage,onVideoCallClosed:this.handleCallClose}):null,this.state.infoPanel?l().createElement(o.Suspense,{fallback:l().createElement("div",null,l().createElement(h.FormattedMessage,{id:"loading_note",defaultMessage:[{type:0,value:"Loading..."}]}))},l().createElement(Ci,{tinode:this.tinode,connected:this.state.connected,displayMobile:this.state.displayMobile,topic:this.state.topicSelected,searchableContacts:this.state.searchableContacts,myUserId:this.state.myUserId,panel:this.state.infoPanel,errorText:this.state.errorText,errorLevel:this.state.errorLevel,errorAction:this.state.errorAction,errorActionText:this.state.errorActionText,onNavigate:this.infoNavigator,onTopicDescUpdateRequest:this.handleTopicUpdateRequest,onShowAlert:this.handleShowAlert,onChangePermissions:this.handleChangePermissions,onMemberUpdateRequest:this.handleMemberUpdateRequest,onDeleteTopic:this.handleDeleteTopicRequest,onDeleteMessages:this.handleDeleteMessagesRequest,onLeaveTopic:this.handleLeaveUnsubRequest,onBlockTopic:this.handleBlockTopicRequest,onReportTopic:this.handleReportTopic,onAddMember:this.handleManageGroupMembers,onTopicTagsUpdateRequest:this.handleTagsUpdateRequest,onTopicUnArchive:this.handleUnarchive,onInitFind:this.tnInitFind,onError:this.handleError,showContextMenu:this.handleShowContextMenu})):null)}}var Ti=(0,h.injectIntl)(_i);if("undefined"!=typeof FIREBASE_INIT&&FIREBASE_INIT&&FIREBASE_INIT.measurementId){const xi=document.getElementsByTagName("head")[0];let Ui=document.createElement("script");function Li(){dataLayer.push(arguments)}Ui.src="https://www.googletagmanager.com/gtag/js?id="+FIREBASE_INIT.measurementId,Ui.async=!0,xi.prepend(Ui),window.dataLayer=window.dataLayer||[],Li("js",new Date),Li("config",FIREBASE_INIT.measurementId)}const Ai={ar:e=>r.e(143).then(r.t.bind(r,7143,19)),de:e=>r.e(175).then(r.t.bind(r,2175,19)),en:e=>r.e(399).then(r.t.bind(r,3399,19)),es:e=>r.e(64).then(r.t.bind(r,6064,19)),fr:e=>r.e(500).then(r.t.bind(r,2500,19)),it:e=>r.e(197).then(r.t.bind(r,7197,19)),ko:e=>r.e(186).then(r.t.bind(r,1186,19)),ro:e=>r.e(780).then(r.t.bind(r,8399,19)),ru:e=>r.e(553).then(r.t.bind(r,5553,19)),th:e=>r.e(536).then(r.t.bind(r,2536,19)),uk:e=>r.e(552).then(r.t.bind(r,4552,19)),zh:e=>r.e(570).then(r.t.bind(r,570,19)),"zh-TW":e=>r.e(744).then(r.t.bind(r,5744,19))},{params:ki}=Ta.A.parseUrlHash(window.location.hash),Ni=ki&&ki.hl||navigator.languages&&navigator.languages[0]||navigator.language||navigator.userLanguage||"en",Di=Ni.replace("_","-"),Ii=Di.split("-")[0].toLowerCase(),Pi=Ai[Di]?Ni:Ai[Ii]?Ii:"en",Fi=document.getElementsByTagName("html")[0];Fi.setAttribute("lang",Pi),["ar","fa","he","ur"].includes(Ii)&&Fi.setAttribute("dir","rtl");const Ri=(0,c.H)(document.getElementById("mountPoint"));Ai[Pi]().then(e=>Ri.render(l().createElement(h.IntlProvider,{locale:Ni,messages:e,textComponent:l().Fragment},l().createElement(Ti,null))))}(); +!function(){"use strict";var e,t,s,a,i={221:function(e,t,s){s.d(t,{A:function(){return l}});var a=s(1594),i=s.n(a),n=s(8181);class r extends i().Component{constructor(e){super(e),this.state={panX:0,panY:0,originX:0,originY:0,zoom:1,minZoom:.001,maxZoom:8},this.overlay=i().createRef(),this.cutout=i().createRef(),this.preview=i().createRef(),this.boundingBox=i().createRef(),this.imageWidth=0,this.imageHeight=0,this.mouseX=0,this.mouseY=0,this.prevDistance=0,this.cutoutRect={},this.bBoxRect={},this.originX=0,this.originY=0,this.initScaling=this.initScaling.bind(this),this.onZoom=this.onZoom.bind(this),this.handleZoom=this.handleZoom.bind(this),this.mouseDown=this.mouseDown.bind(this),this.mouseUp=this.mouseUp.bind(this),this.mouseMove=this.mouseMove.bind(this),this.mouseTouch=this.mouseTouch.bind(this),this.positionAll=this.positionAll.bind(this),this.translate=this.translate.bind(this)}componentDidMount(){this.overlay.current.addEventListener("mousedown",this.mouseDown,{passive:!0}),this.overlay.current.addEventListener("touchstart",this.mouseDown,{passive:!0}),this.bBoxRect=this.boundingBox.current.getBoundingClientRect(),this.originX=this.bBoxRect.width/2,this.originY=this.bBoxRect.height/2,this.cutoutRect=this.cutout.current.getBoundingClientRect()}componentWillUnmount(){this.overlay.current&&(this.overlay.current.removeEventListener("mousedown",this.mouseDown),this.overlay.current.removeEventListener("touchstart",this.mouseDown))}positionAll(e,t,s){this.setState({panX:e,panY:t,zoom:s,originX:this.originX-e,originY:this.originY-t});const a=(this.originX-e)*s-this.originX,i=(this.originY-t)*s-this.originY;this.props.onChange((a+this.cutoutRect.left-this.bBoxRect.left)/s,(i+this.cutoutRect.top-this.bBoxRect.top)/s,this.cutoutRect.width/s,this.cutoutRect.height/s,s)}static checkBound(e,t,s,a){let i=Math.min(0,s[0]-t[0]-a,t[1]-s[1]+a);return(0==i||Math.min(0,s[0]-t[0],t[1]-s[1])i&&(t+=(l-i)/e),cr&&(s+=(h-r)/e),this.positionAll(t,s,e)}mouseDown(e){e.touches?(this.mouseX=e.touches[0].pageX,this.mouseY=e.touches[0].pageY):(this.mouseX=e.pageX,this.mouseY=e.pageY),window.addEventListener("mousemove",this.mouseMove,{passive:!1}),window.addEventListener("touchmove",this.mouseTouch,{passive:!1}),window.addEventListener("mouseup",this.mouseUp,{passive:!0}),window.addEventListener("touchend",this.mouseUp,{passive:!0}),document.body.style.userSelect="none"}translate(e,t){const s=(e-this.mouseX)/this.state.zoom,a=(t-this.mouseY)/this.state.zoom;this.mouseX=e,this.mouseY=t;const i=this.preview.current.getBoundingClientRect(),n=r.checkBound(this.state.panX,[i.left,i.right],[this.cutoutRect.left,this.cutoutRect.right],s),o=r.checkBound(this.state.panY,[i.top,i.bottom],[this.cutoutRect.top,this.cutoutRect.bottom],a);this.positionAll(n,o,this.state.zoom)}mouseMove(e){e.preventDefault(),this.translate(e.pageX,e.pageY)}mouseTouch(e){if(e.preventDefault(),1==e.touches.length)return void this.translate(e.touches[0].pageX,e.touches[0].pageY);const[t,s]=e.touches,a=Math.sqrt((t.pageX-s.pageX)*(t.pageX-s.pageX)+(t.pageY-s.pageY)*(t.pageY-s.pageY));this.prevDistance||(this.prevDistance=a/this.state.zoom);let i=a/this.prevDistance;this.handleZoom(Math.max(this.minZoom,Math.min(this.maxZoom,i)))}mouseUp(e){window.removeEventListener("mousemove",this.mouseMove),window.removeEventListener("touchmove",this.mouseTouch),window.removeEventListener("mouseup",this.mouseUp),window.removeEventListener("touchend",this.mouseUp),document.body.style.userSelect="",this.positionAll(this.state.panX,this.state.panY,this.state.zoom)}render(){const e=`translate3d(${this.state.panX}px, ${this.state.panY}px, 0) scale(${this.state.zoom})`,t=`${this.state.originX}px ${this.state.originY}px`,s={top:this.originY-this.state.originY*this.state.zoom+"px",left:this.originX-this.state.originX*this.state.zoom+"px",width:this.imageWidth*this.state.zoom+"px",height:this.imageHeight*this.state.zoom+"px"};return i().createElement("div",{className:"cropper"},i().createElement("div",{className:"bounding-box",ref:this.boundingBox},i().createElement("img",{src:this.props.source,className:"preview",alt:"",style:{transform:e,transformOrigin:t},ref:this.preview,onLoad:this.initScaling}),i().createElement("div",{className:"cutout circle",ref:this.cutout}),i().createElement("div",{className:"overlay",style:s,ref:this.overlay})),i().createElement("div",{className:"zoom-wrapper"},i().createElement("input",{type:"range",className:"zoomer",step:"0.001",min:this.state.minZoom,max:this.state.maxZoom,value:this.state.zoom,onChange:this.onZoom})))}}var o=s(6110);class l extends i().PureComponent{constructor(e){super(e),this.state={top:0,left:0,width:0,height:0,scale:1},this.handleSubmit=this.handleSubmit.bind(this),this.handleChange=this.handleChange.bind(this)}handleChange(e,t,s,a,i){this.setState({left:e,top:t,width:s,height:a,scale:i})}handleSubmit(){(0,o.CO)(this.props.mime,this.props.avatar,this.state.left,this.state.top,this.state.width,this.state.height,this.state.scale).then(e=>{this.props.onSubmit(e.mime,e.blob,e.width,e.height)}).catch(e=>{this.props.onError(e)})}render(){return i().createElement("div",{className:"panel-form"},i().createElement("div",{className:"panel-form-row"},i().createElement(r,{source:this.props.avatar,onChange:this.handleChange})),i().createElement("div",{className:"dialog-buttons"},this.props.onCancel?i().createElement("button",{className:"secondary",onClick:this.props.onCancel},i().createElement(n.FormattedMessage,{id:"button_cancel",defaultMessage:[{type:0,value:"Cancel"}]})):null,i().createElement("button",{className:"primary",onClick:this.handleSubmit},i().createElement(n.FormattedMessage,{id:"button_ok",defaultMessage:[{type:0,value:"OK"}]}))))}}},257:function(e,t,s){s.d(t,{i:function(){return a}});const a="0.25.0-beta2"},504:function(e,t,s){s.d(t,{A:function(){return r}});var a=s(1594),i=s.n(a);const n={muted:"notifications_off",banned:"block",staff:"verified_user"};class r extends i().PureComponent{render(){let e=null;return this.props.badges&&this.props.badges.length>0?(e=[],this.props.badges.forEach(t=>{const s=t.color?" "+t.color:"";t.icon?e.push(i().createElement("i",{className:"material-icons as-badge"+s,key:t.key||t.icon},n[t.icon]||t.icon)):e.push(i().createElement("span",{className:"badge"+s,key:t.key||t.name},t.name))}),i().createElement(i().Fragment,null,e)):null}}},635:function(e,t,s){var a=s(1594),i=s.n(a),n=s(8181);const r={staff:"verified_user"},o=(0,n.defineMessages)({badge_verified:{id:"badge_verified",defaultMessage:[{type:0,value:"Verified/official"}]},badge_staff:{id:"badge_staff",defaultMessage:[{type:0,value:"Staff-managed"}]},badge_danger:{id:"badge_danger",defaultMessage:[{type:0,value:"Untrustworthy"}]}});class l extends i().PureComponent{render(){const{formatMessage:e}=this.props.intl;let t=null;return this.props.trustedBadges&&this.props.trustedBadges.length>0?(t=[],this.props.trustedBadges.forEach(s=>{const a=this.props.short?null:e(o["badge_"+s]),n="material-icons "+s+"-color";t.push(i().createElement("div",{className:"trusted-badge",key:s},i().createElement("i",{className:n},r[s]||s)," ",a))}),i().createElement(i().Fragment,null,t)):null}}t.A=(0,n.injectIntl)(l)},1013:function(e,t,s){s.d(t,{A:function(){return n}});var a=s(1594),i=s.n(a);class n extends i().PureComponent{render(){const e="load-spinner-box"+(this.props.large?" large":"")+(this.props.clear?" clear":"")+(this.props.centered?" centered":"");return this.props.show?i().createElement("div",{className:e},i().createElement("div",{className:"loader-spinner"})):null}}},1166:function(e,t,s){s.d(t,{A:function(){return n}});var a=s(1594),i=s.n(a);class n extends i().PureComponent{constructor(e){super(e),this.handleChange=this.handleChange.bind(this)}handleChange(){this.props.onChange(this.props.name,!this.props.checked)}render(){let e,t=["material-icons"];Array.isArray(this.props.className)?t.push(...this.props.className):this.props.className&&t.push(this.props.className),this.props.onChange?this.props.checked?(t.push("blue","clickable"),e="check_box"):!1===this.props.checked?(t.push("blue","clickable"),e="check_box_outline_blank"):(t.push("lt-blue"),e="indeterminate_check_box"):e=this.props.checked?"check_box":"check_box_outline_blank";let s={className:t.join(" "),id:this.props.id};return this.props.onChange&&(s.onClick=this.handleChange),i().createElement("i",s,e)}}},1334:function(e,t,s){s.d(t,{A:function(){return r}});var a=s(1594),i=s.n(a),n=s(3913);class r extends i().PureComponent{constructor(e){super(e),this.state={show:!1},this.hide=this.hide.bind(this)}componentDidUpdate(e){e.level!==this.props.level&&this.setState({show:!!this.props.level})}hide(){this.setState({show:!1}),this.props.onClearError&&this.props.onClearError()}render(){const e={err:"error",warn:"warning",info:"info"}[this.props.level]||"",t="info-box "+e;return i().createElement("div",{className:t},i().createElement("div",{className:"icon"},i().createElement("i",{className:"material-icons"},e)),i().createElement("span",null,this.props.text,this.props.action?i().createElement(i().Fragment,null,"  ",i().createElement("a",{href:"#",style:{whiteSpace:"nowrap"},onClick:e=>{e.preventDefault(),this.props.action()}},this.props.actionText)):null),i().createElement("div",{className:"cancel"},i().createElement(n.A,{onCancel:this.hide})))}}},1485:function(e,t,s){s.d(t,{A:function(){return r}});var a=s(1594),i=s.n(a),n=s(6789);class r extends i().Component{constructor(e){super(e),this.selfRef=i().createRef(),this.state={active:e.active,initialValue:e.value||"",value:e.value||"",valid:!0},this.handeTextChange=this.handeTextChange.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleStartEditing=this.handleStartEditing.bind(this),this.handleEditingFinished=this.handleEditingFinished.bind(this),this.handlePasswordFinished=this.handlePasswordFinished.bind(this)}componentDidUpdate(e,t){const s=this.props.value||"";t.initialValue==s||t.active||this.setState({initialValue:s,value:s})}handeTextChange(e){this.setState({value:e.target.value||""}),this.props.validator&&Promise.resolve(this.props.validator(e.target.value)).then(e=>{this.setState({valid:e})}).catch(e=>{e&&this.setState({valid:!1})})}handleKeyDown(e){27===e.keyCode?this.setState({value:this.props.value,active:!1}):13===e.keyCode&&this.handleEditingFinished(e)}handleStartEditing(){this.props.readOnly||this.setState({active:!0},e=>{this.selfRef.current&&this.selfRef.current.focus()})}handleEditingFinished(e){const t=this.state.value.trim();!this.props.required||e.target.checkValidity()&&t?(this.setState({active:!1}),(t||this.props.value)&&t!==this.props.value&&this.state.valid&&this.props.onFinished(t)):this.setState({value:this.props.value,active:!1})}handlePasswordFinished(e){this.setState({active:!1}),e&&e!==this.props.value&&this.props.onFinished(e)}render(){if(!this.state.active){let e="password"==this.props.type?"••••••••":this.state.value,t="in-place-edit"+(this.props.readOnly?" disabled":"");return e||(e=this.props.placeholder,t+=" placeholder"),this.props.multiline&&1!=this.props.multiline||(t+=" short"),i().createElement("span",{className:t,onClick:this.handleStartEditing},this.props.iconLeft&&i().createElement("i",{className:"material-icons light-gray"},this.props.iconLeft),i().createElement("span",null,e),this.props.iconRight&&i().createElement("i",{className:"material-icons light-gray"},this.props.iconRight))}let e;const t={};return"password"==this.props.type?(e=n.A,t.onFinished=this.handlePasswordFinished):(this.props.multiline>1?(e="textarea",t.rows=this.props.multiline,t.className="in-place-edit"):(e="input",t.type=this.props.type||"text",t.className="in-place-edit"+(this.props.iconLeft?" with-icon-left":this.props.iconRight?" with-icon-right":""),this.props.maxLength&&(t.maxLength=this.props.maxLength)),t.value=this.state.value,t.className+=this.state.valid?"":" invalid",t.ref=this.selfRef,t.onChange=this.handeTextChange,t.onKeyDown=this.handleKeyDown,t.onBlur=this.handleEditingFinished),t.placeholder=this.props.placeholder,t.required=this.props.required?"required":"",t.autoComplete=this.props.autoComplete,t.autoFocus=!0,void 0!==this.props.spellCheck&&(t.spellCheck=this.props.spellCheck?"true":"false"),this.props.iconLeft||this.props.iconRight?i().createElement(i().Fragment,null,this.props.iconLeft&&i().createElement("i",{className:"material-icons light-gray"},this.props.iconLeft),i().createElement(e,t,null),this.props.iconRight&&i().createElement("i",{className:"material-icons light-gray"},this.props.iconRight)):i().createElement(e,t,null)}}},1594:function(e){e.exports=React},1781:function(e){e.exports=JSON.parse('{"patt":[{"name":"a00.png","size":200},{"name":"a01.jpg","size":384},{"name":"a02.jpg","size":384},{"name":"a03.jpg","size":384},{"name":"a04.png","size":400},{"name":"a05.jpg","size":400},{"name":"a06.jpg","size":256},{"name":"a07.jpg","size":384},{"name":"a08.jpg","size":384},{"name":"a09.jpg","size":400},{"name":"a10.jpg","size":256},{"name":"a11.png","size":200}],"img":[{"name":"w01.jpg","pr":"p01.jpg"},{"name":"w02.jpg","pr":"p02.jpg"},{"name":"w03.jpg","pr":"p03.jpg"},{"name":"w04.jpg","pr":"p04.jpg"},{"name":"w05.jpg","pr":"p05.jpg"},{"name":"w06.jpg","pr":"p06.jpg"},{"name":"w07.jpg","pr":"p07.jpg"},{"name":"w08.jpg","pr":"p08.jpg"},{"name":"w09.jpg","pr":"p09.jpg"},{"name":"w10.jpg","pr":"p10.jpg"},{"name":"w11.jpg","pr":"p11.jpg"},{"name":"w12.jpg","pr":"p12.jpg"},{"name":"w13.jpg","pr":"p13.jpg"},{"name":"w14.jpg","pr":"p14.jpg"},{"name":"w15.jpg","pr":"p15.jpg"},{"name":"w16.jpg","pr":"p16.jpg"},{"name":"w17.jpg","pr":"p17.jpg"},{"name":"w18.jpg","pr":"p18.jpg"},{"name":"w19.jpg","pr":"p19.jpg"},{"name":"w20.jpg","pr":"p20.jpg"},{"name":"w21.jpg","pr":"p21.jpg"},{"name":"w22.jpg","pr":"p22.jpg"},{"name":"w23.jpg","pr":"p23.jpg"},{"name":"w24.jpg","pr":"p24.jpg"}]}')},3307:function(e,t,s){s.d(t,{A:function(){return h}});var a=s(1594),i=s.n(a),n=s(8181),r=s(5874),o=s(4532),l=s(9027),c=s(3540);class h extends i().Component{constructor(e){super(e),this.state={tags:this.props.tags||[],alias:o.Tinode.tagByPrefix(this.props.tags,o.Tinode.TAG_ALIAS)||"",tagInput:"",activated:this.props.activated},this.handleTagInput=this.handleTagInput.bind(this),this.handleAddTag=this.handleAddTag.bind(this),this.handleRemoveTag=this.handleRemoveTag.bind(this),this.handleSubmit=this.handleSubmit.bind(this),this.handleCancel=this.handleCancel.bind(this)}static getDerivedStateFromProps(e,t){const s=e.tags||[];return(0,c.af)(s,t.tags)||t.activated?null:{tags:s||[],alias:o.Tinode.tagByPrefix(s,o.Tinode.TAG_ALIAS)||""}}handleTagInput(e){if(this.setState({tagInput:e}),e.length>0){const t=e[e.length-1];'"'==e[0]?e.length>1&&'"'==t&&this.handleAddTag(e.substring(1,e.length-1)):","!=t&&" "!=t&&";"!=t&&'"'!=t||this.handleAddTag(e.substring(0,e.length-1).trim())}}handleAddTag(e){const t=this.props.tinode.getServerParam(o.Tinode.MAX_TAG_COUNT,l.GB);if(e.length>0&&this.state.tags.length{a!=this.state.alias&&s.push({user:a,invalid:a.lengtht})}):(this.state.tags.forEach(e=>{e!=this.state.alias&&s.push(i().createElement("span",{className:"badge",key:s.length},e))}),0==s.length&&(s=i().createElement("i",null,i().createElement(n.FormattedMessage,{id:"tags_not_found",defaultMessage:[{type:0,value:"No tags defined. Add some."}]})))),i().createElement("div",{className:"panel-form-column"},i().createElement("div",{className:"panel-form-row"},i().createElement("label",{className:"small"},this.props.title)),this.state.activated?i().createElement("div",null,i().createElement(n.FormattedMessage,{id:"tags_editor_no_tags",defaultMessage:[{type:0,value:"Add some tags"}]},e=>i().createElement(r.A,{tinode:this.props.tinode,chips:s,avatarDisabled:!0,prompt:e,tabIndex:this.props.tabIndex,onEnter:this.handleAddTag,onFocusLost:this.handleAddTag,onCancel:this.handleCancel,onChipRemoved:this.handleRemoveTag,filterFunc:this.handleTagInput})),this.props.onSubmit||this.props.onCancel?i().createElement("div",{id:"tag-manager-buttons",className:"dialog-buttons panel-form-row"},i().createElement("button",{className:"outline",onClick:this.handleCancel},i().createElement(n.FormattedMessage,{id:"button_cancel",defaultMessage:[{type:0,value:"Cancel"}]})),i().createElement("button",{className:"primary",onClick:this.handleSubmit},i().createElement(n.FormattedMessage,{id:"button_ok",defaultMessage:[{type:0,value:"OK"}]}))):null):i().createElement("div",{className:"quoted"},i().createElement("a",{href:"#",className:"flat-button",onClick:e=>{e.preventDefault(),this.setState({activated:!0})}},i().createElement("i",{className:"material-icons"},"edit"),"  ",i().createElement(n.FormattedMessage,{id:"title_manage_tags",defaultMessage:[{type:0,value:"Manage"}]})),i().createElement(i().Fragment,null,s)))}}},3540:function(e,t,s){s.d(t,{FH:function(){return u},Jf:function(){return d},Jt:function(){return l},KY:function(){return f},LO:function(){return m},OM:function(){return n},YO:function(){return h},af:function(){return o},iE:function(){return g},k6:function(){return r},wk:function(){return p},xH:function(){return c}});var a=s(4532),i=s(9027);function n(e){const t=document.getElementById("shortcut-icon"),s=document.head||document.getElementsByTagName("head")[0],a=document.createElement("link");a.type="image/png",a.id="shortcut-icon",a.rel="shortcut icon",a.href="img/logo32x32"+(e>0?"a":"")+".png",t&&s.removeChild(t),s.appendChild(a),document.title=(e>0?"("+e+") ":"")+"Tinode"}function r(e,t,s,i){let n=null;if((e=e&&e.trim())&&(n={fn:e}),"string"==typeof(i=i&&i.trim())&&(n=n||{},n.note=i||a.Tinode.DEL_CHAR),t){n=n||{};let e=s;const i=/^data:(image\/[-a-z0-9+.]+)?(;base64)?,/i.exec(t);i?(e=i[1],n.photo={data:t.substring(t.indexOf(",")+1),ref:a.Tinode.DEL_CHAR}):n.photo={data:a.Tinode.DEL_CHAR,ref:t},n.photo.type=(e||"image/jpeg").substring(6)}return n}function o(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(let s=0,a=e.length;s0&&(s=e.substring(a+1),e=e.substring(0,a));const i=e.indexOf("?");i>0&&(t=e.substring(i+1),e=e.substring(0,i));const n=new URLSearchParams(t);return n.append("asatt","1"),`${e}?${n.toString()}`+(s?`#${s}`:"")}function m(e){switch(e){case a.Tinode.MESSAGE_STATUS_SENDING:return{name:"access_time"};case a.Tinode.MESSAGE_STATUS_FAILED:case a.Tinode.MESSAGE_STATUS_FATAL:return{name:"warning",color:"danger-color"};case a.Tinode.MESSAGE_STATUS_SENT:return{name:"done"};case a.Tinode.MESSAGE_STATUS_RECEIVED:return{name:"done_all"};case a.Tinode.MESSAGE_STATUS_READ:return{name:"done_all",color:"blue"}}return null}function g(e){let t=!1;return{promise:e instanceof Error?Promise.reject(e):new Promise((s,a)=>{e.then(e=>t?a({isCanceled:!0}):s(e),e=>a(t?{isCanceled:!0}:e))}),cancel(){t=!0}}}function f(){const e=s(1781)[i.S.type][i.S.index];return{name:`../${i.S.path}${e.name}`,size:e.size}}},3913:function(e,t,s){s.d(t,{A:function(){return n}});var a=s(1594),i=s.n(a);class n extends i().PureComponent{render(){return i().createElement("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onCancel()}},i().createElement("i",{className:"material-icons"},"close"))}}},4152:function(e,t,s){s.d(t,{A:function(){return m}});var a=s(1594),i=s.n(a),n=s(8181),r=s(4532),o=s(6005);class l extends i().PureComponent{constructor(e){super(e),this.handleClick=this.handleClick.bind(this)}handleClick(e){e.preventDefault(),e.stopPropagation(),this.props.onAction(this.props.action)}render(){const{formatMessage:e}=this.props.intl;return i().createElement("li",{onClick:this.handleClick,className:"action"},i().createElement("div",{className:"action-text"},e(this.props.title,this.props.values)))}}var c=(0,n.injectIntl)(l),h=s(6110),d=s(9027);const p=(0,n.defineMessages)({badge_you:{id:"badge_you",defaultMessage:[{type:0,value:"you"}]},badge_owner:{id:"badge_owner",defaultMessage:[{type:0,value:"owner"}]}});class u extends i().Component{render(){const{formatMessage:e}=this.props.intl,t=Array.isArray(this.props.topicSelected),s=[];let a=0;if(this.props.showSelfTopic){const e=t?this.props.topicSelected.indexOf("slf")>-1:"slf"===this.props.topicSelected;s.push(i().createElement(o.A,{tinode:this.props.tinode,avatar:!0,showMode:this.props.showMode,selected:e,showCheckmark:t,onSelected:this.props.onTopicSelected,showContextMenu:this.props.showContextMenu,index:s.length,item:"slf",key:"slf"})),a++}return this.props.contacts&&this.props.contacts.length>0&&this.props.contacts.forEach(n=>{if(n.action)s.push(i().createElement(c,{title:n.title,action:n.action,values:n.values,key:n.action,onAction:this.props.onAction}));else{const l=this.props.showMode?n.user:n.topic||n.user;if(this.props.filterFunc&&this.props.filter){const e=[l];if(n.private&&n.private.comment&&e.push((""+n.private.comment).toLowerCase()),n.public&&n.public.fn&&e.push((""+n.public.fn).toLowerCase()),!this.props.filterFunc(this.props.filter,e))return}const c=r.Tinode.isChannelTopicName(l),u=!c&&r.Tinode.isGroupTopicName(l),m=t?this.props.topicSelected.indexOf(l)>-1:this.props.topicSelected===l,g=[];this.props.showMode&&(l==this.props.myUserId&&g.push({name:e(p.badge_you),color:"green"}),n.acs&&n.acs.isOwner()&&g.push({name:e(p.badge_owner),color:"blue"}));const f=Array.isArray(n.private)?n.private.join(","):n.private?n.private.comment:null;let v,b,E,y;if(!this.props.showMode&&n.latestMessage){const e=n.latestMessage();e&&(b=e.head?e.head.forwarded:null,y=e._status||n.msgStatus(e,!0),E=e.from!=this.props.myUserId,e.content&&(v="string"==typeof e.content?e.content.substr(0,d.sT):r.Drafty.preview(e.content,d.sT)))}s.push(i().createElement(o.A,{tinode:this.props.tinode,title:n.public?n.public.fn:null,avatar:(0,h.to)(n.public?n.public.photo:null),comment:f,preview:v,previewIsResponse:E,forwarded:b,received:y,unread:this.props.showUnread?n.unread:0,now:n.online&&this.props.connected,acs:n.acs,showMode:this.props.showMode,badges:g,showCheckmark:t,selected:m,pinned:n.pinned,showOnline:this.props.showOnline&&!c,isChannel:c,isGroup:u,showContextMenu:this.props.showContextMenu,isVerified:n.trusted&&n.trusted.verified,isStaff:n.trusted&&n.trusted.staff,isDangerous:n.trusted&&n.trusted.danger,deleted:n._deleted,onSelected:this.props.onTopicSelected,item:l,index:s.length,key:l})),a++}},this),i().createElement("div",{className:this.props.noScroll?null:"scrollable-panel"},0==a?i().createElement("div",{className:"center-medium-text",dangerouslySetInnerHTML:{__html:this.props.emptyListMessage}}):null,s.length>0?i().createElement("ul",{className:"contact-box"},s):null)}}var m=(0,n.injectIntl)(u)},4532:function(e){e.exports=tinode},5053:function(e,t,s){var a=s(1594),i=s.n(a),n=s(8181),r=s(8589),o=s(6110);const l="#666C",c=(0,n.defineMessages)({icon_title_play:{id:"icon_title_play",defaultMessage:[{type:0,value:"Play recording"}]}});class h extends i().PureComponent{constructor(e){super(e);let t=(0,o.F8)(this.props.preview);(!Array.isArray(t)||t.length<16)&&(t=null),this.state={canPlay:!1,playing:!1,currentTime:"0:00",duration:this.props.duration>0?(0,r.Ye)(this.props.duration/1e3):"-:--",longMin:this.props.duration>=6e5,preview:t},this.initAudio=this.initAudio.bind(this),this.initCanvas=this.initCanvas.bind(this),this.resampleBars=this.resampleBars.bind(this),this.visualize=this.visualize.bind(this),this.handlePlay=this.handlePlay.bind(this),this.handleSeek=this.handleSeek.bind(this),this.handleError=this.handleError.bind(this),this.audioPlayer=null,this.viewBuffer=[],this.canvasRef=i().createRef()}componentDidMount(){this.props.src&&this.initAudio(),this.initCanvas()}componentWillUnmount(){this.audioPlayer&&(this.audioPlayer.onloadedmetadata=null,this.audioPlayer.ontimeupdate=null,this.audioPlayer.onended=null,this.audioPlayer.pause(),this.audioPlayer=null)}componentDidUpdate(e){if(this.props.src!=e.src&&this.initAudio(),this.props.preview!=e.preview){let e=(0,o.F8)(this.props.preview);(!Array.isArray(e)||e.length<16)&&(e=null),this.setState({preview:e},this.initCanvas)}}initAudio(){this.audioPlayer=new Audio(this.props.src),this.audioPlayer.onloadedmetadata=e=>this.setState({canPlay:!0}),this.audioPlayer.ontimeupdate=e=>this.setState({currentTime:(0,r.Ye)(this.audioPlayer.currentTime,this.state.longMin)}),this.audioPlayer.onended=e=>{this.audioPlayer.currentTime=0,this.setState({playing:!1,currentTime:(0,r.Ye)(0,this.state.longMin)})}}initCanvas(){this.canvasRef.current.width=2*this.canvasRef.current.offsetWidth,this.canvasRef.current.height=2*this.canvasRef.current.offsetHeight,this.canvasContext=this.canvasRef.current.getContext("2d"),this.canvasContext.lineCap="round",this.viewBuffer=this.resampleBars(this.state.preview),this.visualize()}visualize(){if(!this.canvasRef.current)return;const e=this.effectiveWidth,t=this.canvasRef.current.height;this.canvasContext.lineWidth=6;const s=a=>{if(this.canvasRef.current&&this.audioPlayer&&(this.canvasContext.clearRect(0,0,this.canvasRef.current.width,t),this.viewBuffer)){this.state.playing&&window.requestAnimationFrame(s);const a=this.props.duration?Math.max(0,Math.min(1e3*this.audioPlayer.currentTime/this.props.duration,1))*(e-12):-1;this.canvasContext.beginPath(),this.canvasContext.strokeStyle=l;for(let e=0;e.01);const s=e.length/t;let a=[],i=-1;for(let n=0;n0?a.map(e=>e/i):Array.apply(null,Array(t)).map(e=>.01)}handlePlay(e){e.preventDefault(),this.state.canPlay&&(this.state.playing?(this.audioPlayer.pause(),this.setState({playing:!1})):this.audioPlayer.readyState>=2&&(this.audioPlayer.play(),this.setState({playing:!0},this.visualize)))}handleError(e){console.error(e)}handleSeek(e){if(e.preventDefault(),e.target&&this.props.duration){const t=e.target.getBoundingClientRect(),s=(e.clientX-t.left)/this.effectiveWidth*2;this.audioPlayer.currentTime=this.props.duration*s/1e3,this.setState({currentTime:(0,r.Ye)(this.audioPlayer.currentTime,this.state.longMin)}),this.state.playing||this.visualize()}}render(){const e="material-icons"+(this.props.short?"":" large")+(this.state.canPlay?"":" disabled"),t=i().createElement("a",{href:"#",onClick:this.handlePlay,title:this.props.intl.formatMessage(c.icon_title_play)},i().createElement("i",{className:e},this.state.playing?"pause_circle":this.state.canPlay?"play_circle":"not_interested"));return i().createElement("div",{className:"audio-player"},this.props.short?i().createElement(i().Fragment,null,i().createElement("canvas",{className:"playback",ref:this.canvasRef,onClick:this.handleSeek}),t):i().createElement(i().Fragment,null,t,i().createElement("div",null,i().createElement("canvas",{className:"playback",ref:this.canvasRef,onClick:this.handleSeek}),i().createElement("div",{className:"timer"},this.state.currentTime,"/",this.state.duration))))}}t.A=(0,n.injectIntl)(h)},5206:function(e){e.exports=ReactDOM},5338:function(e,t,s){var a=s(5206);t.H=a.createRoot,a.hydrateRoot},5874:function(e,t,s){s.d(t,{A:function(){return l}});var a=s(1594),i=s.n(a),n=s(6904);class r extends i().PureComponent{constructor(e){super(e),this.handleCancel=this.handleCancel.bind(this)}handleCancel(e){e.preventDefault(),this.props.onCancel(this.props.topic,this.props.index)}render(){const e=this.props.title||this.props.topic,t=this.props.invalid?"chip invalid":"chip";return i().createElement("div",{className:t},this.props.noAvatar?i().createElement("span",{className:"spacer"}):i().createElement("div",{className:"avatar-box"},i().createElement(n.A,{tinode:this.props.tinode,avatar:this.props.avatar||!0,topic:this.props.topic,title:this.props.title})),i().createElement("span",null,e),this.props.onCancel&&!this.props.required?i().createElement("a",{href:"#",onClick:this.handleCancel},"×"):i().createElement("span",{className:"spacer"}))}}var o=s(6110);class l extends i().Component{constructor(e){super(e),this.state=l.deriveStateFromProps(e),this.state.input="",this.state.focused=!1,this.handleTextInput=this.handleTextInput.bind(this),this.removeChipAt=this.removeChipAt.bind(this),this.handleChipCancel=this.handleChipCancel.bind(this),this.handleFocusGained=this.handleFocusGained.bind(this),this.handleFocusLost=this.handleFocusLost.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this)}static deriveStateFromProps(e){return{placeholder:e.chips?"":e.prompt,sortedChips:l.sortChips(e.chips,e.staticMembers),chipIndex:l.indexChips(e.chips)}}componentDidUpdate(e,t){e.chips==this.props.chips&&e.staticMembers==this.props.staticMembers&&e.prompt==this.props.prompt||this.setState(l.deriveStateFromProps(this.props)),(!t||this.props.chips.length>t.sortedChips.length)&&this.setState({input:""})}static indexChips(e){const t={};let s=0;return e.forEach(e=>{t[e.user]=s,s++}),t}static sortChips(e,t){const s=[],a=[];return e.forEach(e=>{t&&t.includes(e.user)?s.push(e):a.push(e)}),s.concat(a)}handleTextInput(e){this.setState({input:e.target.value}),this.props.filterFunc&&this.props.filterFunc(e.target.value)}removeChipAt(e){const t=this.state.sortedChips[e];this.props.onChipRemoved(t.user,this.state.chipIndex[t.user])}handleChipCancel(e,t){this.removeChipAt(t)}handleFocusGained(){this.setState({focused:!0})}handleFocusLost(){this.setState({focused:!1}),this.props.onFocusLost&&this.props.onFocusLost(this.state.input)}handleKeyDown(e){if("Backspace"===e.key){if(0==this.state.input.length&&this.state.sortedChips.length>0){const e=this.state.sortedChips.length-1;this.state.sortedChips[e].user!==this.props.staticMembers&&this.removeChipAt(e)}}else"Enter"===e.key?this.props.onEnter&&this.props.onEnter(this.state.input):"Escape"===e.key&&this.props.onCancel&&this.props.onCancel()}render(){const e=[];let t=0;const s=this.props.staticMembers||[];this.state.sortedChips.forEach(a=>{e.push(i().createElement(r,{tinode:this.props.tinode,onCancel:this.handleChipCancel,avatar:(0,o.to)(a.public?a.public.photo:null),title:a.public?a.public.fn:void 0,noAvatar:this.props.avatarDisabled,topic:a.user,required:s.includes(a.user),invalid:a.invalid,index:t,key:a.user})),t++});const a="chip-input"+(this.state.focused?" focused":""),n=!(this.props.tabIndex>0);return i().createElement("div",{className:a},e,i().createElement("input",{type:"text",placeholder:this.state.placeholder,onChange:this.handleTextInput,onFocus:this.handleFocusGained,onBlur:this.handleFocusLost,onKeyDown:this.handleKeyDown,value:this.state.input,tabIndex:this.props.tabIndex,autoFocus:n}))}}},6005:function(e,t,s){s.d(t,{A:function(){return g}});var a=s(1594),i=s.n(a),n=s(8181),r=s(4532),o=s(504),l=s(6904);class c extends i().PureComponent{render(){return this.props.count>0?i().createElement("span",{className:"unread"},this.props.count>9?"9+":this.props.count):null}}var h=s(8043),d=s(3540),p=s(8589);const u=(0,n.defineMessages)({self_topic_name:{id:"self_topic_name",defaultMessage:[{type:0,value:"Saved messages"}]},self_topic_comment:{id:"self_topic_comment",defaultMessage:[{type:0,value:"Notes, messages, links, files saved for posterity"}]}});class m extends i().Component{constructor(e){super(e),this.handleClick=this.handleClick.bind(this),this.handleContextClick=this.handleContextClick.bind(this)}handleClick(e){e.preventDefault(),e.stopPropagation(),this.props.onSelected&&this.props.onSelected(this.props.item,this.props.index)}handleContextClick(e){e.preventDefault(),e.stopPropagation(),this.props.showContextMenu({topicName:this.props.item,topicTitle:this.props.title,y:e.pageY,x:e.pageX})}render(){let e=this.props.title;const t=r.Tinode.isSelfTopicName(this.props.item);e?e.length>30&&(e=(0,p.W5)(e,30)):e=t?this.props.intl.formatMessage(u.self_topic_name):i().createElement("i",null,i().createElement(n.FormattedMessage,{id:"unnamed_topic",defaultMessage:[{type:0,value:"Unnamed"}]}));const s=this.props.now?"online":"offline",a=!this.props.avatar||this.props.avatar,m=this.props.badges?this.props.badges.slice():[],g=[];let f;this.props.isVerified&&g.push({icon:"verified",color:"verified-color"}),this.props.isStaff&&g.push({icon:"staff",color:"staff-color"}),this.props.isDangerous&&g.push({icon:"dangerous",color:"danger-color"}),this.props.acs&&(this.props.showMode&&m.push({name:this.props.acs.getMode(),key:"mode"}),this.props.acs.isMuted()&&g.push({icon:"muted"}),this.props.acs.isJoiner()||g.push({icon:"banned"})),"string"==typeof this.props.preview?f=this.props.preview:r.Drafty.isValid(this.props.preview)?f=i().createElement(i().Fragment,null,r.Drafty.format(this.props.preview,h.TU,{formatMessage:this.props.intl.formatMessage,previewIsResponse:this.props.previewIsResponse})):this.props.preview&&(f=i().createElement(i().Fragment,null,i().createElement("i",{className:"material-icons gray"},"warning_amber")," ",i().createElement("i",{className:"gray"},i().createElement(n.FormattedMessage,{id:"invalid_content",defaultMessage:[{type:0,value:"invalid content"}]}))));const v=(0,d.LO)(this.props.received),b=v?i().createElement("i",{className:"material-icons small space-right"+(v.color?" "+v.color:"")},v.name):null,E="contact-title"+(this.props.deleted?" deleted":""),y=f||this.props.comment||(t?this.props.intl.formatMessage(u.self_topic_comment):" "),w=this.props.showCheckmark?null:this.props.selected?"selected":this.props.pinned?"tpinned":null;return i().createElement("li",{className:w,onClick:this.handleClick},i().createElement("div",{className:"avatar-box"},i().createElement(l.A,{tinode:this.props.tinode,avatar:a,title:this.props.title,topic:this.props.item,deleted:this.props.deleted}),this.props.deleted?i().createElement("i",{className:"deleted material-icons"},"cancel"):!t&&this.props.showOnline?i().createElement("span",{className:s}):this.props.showCheckmark&&this.props.selected?i().createElement("i",{className:"checkmark material-icons"},"check_circle"):null),i().createElement("div",{className:"text-box"},i().createElement("div",null,i().createElement("span",{className:E},e),this.props.isGroup?i().createElement("i",{className:"material-icons as-badge"},"group"):null,this.props.isChannel?i().createElement("i",{className:"material-icons as-badge"},"podcasts"):null,t?null:i().createElement(o.A,{badges:g}),this.props.deleted?null:i().createElement(c,{count:this.props.unread})),this.props.showMode?i().createElement("span",null,i().createElement(o.A,{badges:m})):this.props.small?null:i().createElement("div",{className:"contact-comment"},b,i().createElement("span",null,y))),this.props.showContextMenu?i().createElement("span",{className:"menuTrigger"},i().createElement("a",{href:"#",onClick:this.handleContextClick},i().createElement("i",{className:"material-icons"},"expand_more"))):null)}}var g=(0,n.injectIntl)(m)},6110:function(e,t,s){s.d(t,{$Z:function(){return u},CO:function(){return c},F8:function(){return f},Pv:function(){return g},Sk:function(){return d},ae:function(){return r},ag:function(){return l},bB:function(){return h},i:function(){return m},iJ:function(){return p},to:function(){return n}});const a=["image/jpeg","image/gif","image/png","image/svg","image/svg+xml"],i=["jpg","gif","png","svg","svg"];function n(e){if(e&&"object"==typeof e){if(e.ref)return e.ref;if(e.data&&e.type){return"data:"+(e.type.startsWith("image/")?e.type:"image/"+e.type)+";base64,"+e.data}}return null}function r(e,t,s,a,i){if(t|=0,s|=0,a|=0,(e|=0)<=0||t<=0||s<=0||a<=0)return null;i&&(s=a=Math.min(s,a));const n=Math.min(Math.min(e,s)/e,Math.min(t,a)/t),r={dstWidth:e*n|0,dstHeight:t*n|0};return i?(r.dstWidth=r.dstHeight=Math.min(r.dstWidth,r.dstHeight),r.srcWidth=r.srcHeight=Math.min(e,t),r.xoffset=(e-r.srcWidth)/2|0,r.yoffset=(t-r.srcWidth)/2|0):(r.xoffset=r.yoffset=0,r.srcWidth=e,r.srcHeight=t),r}function o(e,t){const s=a.indexOf(t);if(s<0||!e)return e;const n=i[s],r=e.lastIndexOf(".");return r>=0&&(e=e.substring(0,r)),e+"."+n}function l(e,t,s,i,n){return new Promise((l,c)=>{const h=new Image;h.crossOrigin="Anonymous",h.onerror=function(e){c(new Error("Image format unrecognized"))},h.onload=async function(){URL.revokeObjectURL(h.src);const d=r(h.width,h.height,t,s,n);if(!d)return void c(new Error("Invalid image"));let p=document.createElement("canvas");p.width=d.dstWidth,p.height=d.dstHeight;let u=p.getContext("2d");u.imageSmoothingEnabled=!0,u.drawImage(h,d.xoffset,d.yoffset,d.srcWidth,d.srcHeight,0,0,d.dstWidth,d.dstHeight);const m=a.includes(e.type)?e.type:"image/jpeg";let g=await new Promise(e=>p.toBlob(e,m));if(g){for(;i>0&&g.length>i;)d.dstWidth=.70710678118*d.dstWidth|0,d.dstHeight=.70710678118*d.dstHeight|0,p.width=d.dstWidth,p.height=d.dstHeight,u=p.getContext("2d"),u.clearRect(0,0,p.width,p.height),u.drawImage(h,d.xoffset,d.yoffset,d.srcWidth,d.srcHeight,0,0,d.dstWidth,d.dstHeight),g=await new Promise(e=>p.toBlob(e,m));p=null,l({mime:m,blob:g,width:d.dstWidth,height:d.dstHeight,name:o(e.name,m)})}else c(new Error("Unsupported image format"))},h.src=URL.createObjectURL(e)})}function c(e,t,s,i,n,r,o){return new Promise((l,c)=>{const h=new Image;h.crossOrigin="Anonymous",h.onerror=e=>{c(new Error("Image format unrecognized"))},h.onload=t=>{URL.revokeObjectURL(h.src);let d=document.createElement("canvas");d.width=n*o,d.height=r*o;let p=d.getContext("2d");p.imageSmoothingEnabled=!0,p.drawImage(h,s,i,n,r,0,0,d.width,d.height),e=a.includes(e)?e:"image/jpeg",d.toBlob(t=>{d=null,t?l({mime:e,blob:t,width:n,height:r}):c(new Error("Unsupported image format"))},e)},h.src=t})}function h(e){return new Promise((t,s)=>{const a=new FileReader;a.onerror=e=>{s(a.error)},a.onload=s=>{t({mime:e.type,bits:a.result.split(",")[1],name:e.name})},a.readAsDataURL(e)})}function d(e){return new Promise((t,s)=>{const a=new FileReader;a.onerror=e=>{s(a.error)},a.onload=s=>{t({mime:e.type,bits:a.result.split(",")[1]})},a.readAsDataURL(e)})}function p(e,t,s,a){const i=(e.clipboardData||e.originalEvent.clipboardData||{}).items;if(!i||!i.length)return!1;for(let e in i){const n=i[e];if("file"===n.kind){const e=n.getAsFile();if(!e){console.error("Failed to get file object from pasted file item",n.kind,n.type),a("Failed to get file object from pasted file item");continue}return e.type&&"image"==e.type.split("/")[0]?t(e):s(e),!0}}return!1}function u(e){if(e){e=e.replace(/-/g,"+").replace(/_/g,"/");try{e=btoa(atob(e))}catch(t){console.error("Failed to base64 re-encode string.",t),e=null}}return e}function m(e,t){if(!e)return null;try{const s=atob(e),a=s.length,i=new ArrayBuffer(a),n=new Uint8Array(i);for(let e=0;et+=String.fromCharCode(e)),window.btoa(t)}catch(e){}return null}function f(e){const t=[];try{return[...window.atob(e)].forEach(e=>{t.push(e.charCodeAt(0))}),t}catch(e){}return null}},6789:function(e,t,s){s.d(t,{A:function(){return n}});var a=s(1594),i=s.n(a);class n extends i().PureComponent{constructor(e){super(e),this.inputRef=i().createRef(),this.state={value:this.props.value||"",visible:!1},this.handleVisibility=this.handleVisibility.bind(this),this.handeTextChange=this.handeTextChange.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleEditingFinished=this.handleEditingFinished.bind(this)}componentDidMount(){this.props.autoFocus&&this.inputRef.current.focus()}handeTextChange(e){this.setState({value:e.target.value}),this.props.onChange&&this.props.onChange(e)}handleVisibility(e){e.preventDefault(),this.setState({visible:!this.state.visible})}handleKeyDown(e){27==e.keyCode?(this.setState({value:this.props.value||"",visible:!1}),this.props.onFinished&&this.props.onFinished()):13==e.keyCode&&this.handleEditingFinished()}handleEditingFinished(e){if(e){let t=e.currentTarget;setTimeout(e=>{t.contains(document.activeElement)||this.props.onFinished&&this.props.onFinished(this.state.value)},0)}else this.props.onFinished&&this.props.onFinished(this.state.value.trim())}render(){return i().createElement("div",{tabIndex:"-1",className:"group-focus",onBlur:this.handleEditingFinished},i().createElement("input",{className:"with-icon-right",type:this.state.visible?"text":"password",value:this.state.value,placeholder:this.props.placeholder,maxLength:32,required:this.props.required?"required":"",autoFocus:this.props.autoFocus?"autoFocus":"",autoComplete:this.props.autoComplete,onChange:this.handeTextChange,onKeyDown:this.handleKeyDown,ref:this.inputRef}),i().createElement("span",{onClick:this.handleVisibility},i().createElement("i",{className:"material-icons clickable light-gray"},this.state.visible?"visibility":"visibility_off")))}}},6904:function(e,t,s){s.d(t,{A:function(){return c}});var a=s(1594),i=s.n(a),n=s(4532),r=s(8589),o=s(3540),l=s(9027);class c extends i().PureComponent{render(){let e;if(!0===this.props.avatar)if(n.Tinode.isSelfTopicName(this.props.topic))e=i().createElement("img",{className:"avatar self",alt:"avatar",src:l.Yd});else{const t=n.Tinode.isGroupTopicName(this.props.topic),s=(0,r.kJ)(this.props.topic,t);if(this.props.topic&&this.props.title&&this.props.title.trim()){const t=this.props.title.trim().charAt(0),a="lettertile "+s+(this.props.deleted?" disabled":"");e=i().createElement("div",{className:a},i().createElement("div",null,t))}else{const a="material-icons "+s+(this.props.deleted?" disabled":"");e=t?i().createElement("i",{className:a},"group"):i().createElement("i",{className:a},"person")}}else if(this.props.avatar){const t=this.props.tinode.authorizeURL((0,o.wk)(this.props.avatar,"image")),s="avatar"+(this.props.deleted?" deleted":"");e=i().createElement("img",{className:s,alt:"avatar",src:t,onError:e=>{e.target.onerror=null,e.target.src="img/broken_image.png"}})}else e=null;return e}}},7151:function(e,t,s){s.d(t,{A:function(){return a}});class a{static parseUrlHash(e){const t=e.split("?",2),s={};let a=[];return t[0]&&(a=t[0].replace("#","").split("/")),t[1]&&t[1].split("&").forEach(e=>{const t=e.indexOf("=");t>0&&(s[e.slice(0,t)]=decodeURIComponent(e.slice(t+1)))}),{path:a,params:s}}static navigateTo(e){window.location.hash=e}static composeUrlHash(e,t){let s=e.join("/");const a=[];for(const e in t)t.hasOwnProperty(e)&&void 0!==t[e]&&a.push(e+"="+encodeURIComponent(t[e]));return a.length>0&&(s+="?"+a.join("&")),s}static addUrlParam(e,t,s){const i=a.parseUrlHash(e);return i.params[t]=s,a.composeUrlHash(i.path,i.params)}static removeUrlParam(e,t){const s=a.parseUrlHash(e);return delete s.params[t],a.composeUrlHash(s.path,s.params)}static setUrlSidePanel(e,t){const s=a.parseUrlHash(e);return s.path[0]=t,a.composeUrlHash(s.path,s.params)}static setUrlInfoPanel(e,t){const s=a.parseUrlHash(e);return t?s.params.info=t:delete s.params.info,a.composeUrlHash(s.path,s.params)}static setUrlTopic(e,t){const s=a.parseUrlHash(e);return s.path[1]=t,delete s.params.info,a.composeUrlHash(s.path,s.params)}}},8043:function(e,t,s){s.d(t,{e3:function(){return E},TU:function(){return C},NV:function(){return A}});var a=s(1594),i=s.n(a),n=s(8181),r=s(4532),o=s(5053),l=s(8589);class c extends i().PureComponent{render(){const e=["busy","declined","disconnected","missed"].includes(this.props.callState),t="material-icons medium "+(e?"red":"green"),s=this.props.incoming?e?"call_missed":"call_received":e?"call_missed_outgoing":"call_made",a=this.props.incoming?i().createElement(n.FormattedMessage,{id:"calls_incoming",defaultMessage:[{type:0,value:"Incoming call"}]}):i().createElement(n.FormattedMessage,{id:"calls_outgoing",defaultMessage:[{type:0,value:"Outgoing call"}]});let r;if(e)switch(this.props.callState){case"busy":r=i().createElement(n.FormattedMessage,{id:"call_busy",defaultMessage:[{type:0,value:"busy"}]});break;case"declined":r=i().createElement(n.FormattedMessage,{id:"call_declined",defaultMessage:[{type:0,value:"declined"}]});break;case"missed":r=this.props.incoming?i().createElement(n.FormattedMessage,{id:"call_missed",defaultMessage:[{type:0,value:"missed"}]}):i().createElement(n.FormattedMessage,{id:"call_cancelled",defaultMessage:[{type:0,value:"cancelled"}]});break;default:r=i().createElement(n.FormattedMessage,{id:"call_disconnected",defaultMessage:[{type:0,value:"disconnected"}]})}else r=i().createElement("span",null,(0,l.Ye)(this.props.duration/1e3));return i().createElement("div",{className:"call-message"},i().createElement("div",null,i().createElement("i",{className:"material-icons big gray"},"call")),i().createElement("div",{className:"flex-column narrow"},i().createElement("div",null,a),i().createElement("div",{className:"duration"},i().createElement("i",{className:t},s)," ",r)))}}class h extends i().PureComponent{render(){const e=["busy","declined","disconnected","missed"].includes(this.props.callState),t=this.props.incoming?e?"call_missed":"call_received":e?"call_missed_outgoing":"call_made";let s;if(e)switch(this.props.callState){case"busy":s=i().createElement(n.FormattedMessage,{id:"call_busy",defaultMessage:[{type:0,value:"busy"}]});break;case"declined":s=i().createElement(n.FormattedMessage,{id:"call_declined",defaultMessage:[{type:0,value:"declined"}]});break;case"missed":s=this.props.incoming?i().createElement(n.FormattedMessage,{id:"call_missed",defaultMessage:[{type:0,value:"missed"}]}):i().createElement(n.FormattedMessage,{id:"call_cancelled",defaultMessage:[{type:0,value:"cancelled"}]});break;default:s=i().createElement(n.FormattedMessage,{id:"call_disconnected",defaultMessage:[{type:0,value:"disconnected"}]})}else s=["accepted","started"].includes(this.props.callState)&&!this.props.duration?i().createElement(n.FormattedMessage,{id:"call_in_progress",defaultMessage:[{type:0,value:"in progress"}]}):i().createElement("span",null,(0,l.Ye)(this.props.duration/1e3));return i().createElement(i().Fragment,null,i().createElement("div",{className:"composed-material"},i().createElement("i",{className:"material-icons"},"call"),i().createElement("i",{className:"material-icons second"},t))," ",s)}}class d extends i().PureComponent{constructor(e){super(e),this.videoRef=i().createRef(),this.handleClick=this.handleClick.bind(this)}handleClick(e){this.props.onClick&&this.props.onClick(e)}render(){const e=(0,l.Ye)(this.props["data-duration"]/1e3),t="inline-video"+(this.props.onClick?" image-clickable":"");return i().createElement("div",{className:t},i().createElement("img",this.props),i().createElement("div",{className:"play-control"},this.props.onClick?i().createElement("i",{className:"material-icons white x-big"},"play_arrow"):i().createElement("img",{src:"img/broken_video.png",style:{filter:"invert(100%)"},width:"36",height:"36"})),e?i().createElement("div",{className:"duration"},e):null)}}class p extends i().PureComponent{constructor(e){super(e),this.state={src:this.props.isvideo?"img/blankvid.png":"img/blankimg.png",style:Object.assign({padding:"4px"},this.props.style),className:this.props.className,alt:this.props.alt,onClick:this.props.onClick}}componentDidMount(){this.props.whenDone.promise.then(e=>this.setState({src:e.src,style:{...this.state.style,padding:0}})).catch(e=>this.setState({src:this.props.isvideo?"img/broken_video.png":"img/broken_image.png"}))}componentWillUnmount(){this.props.whenDone.cancel()}componentDidUpdate(e){e.whenDone!=this.props.whenDone&&(this.setState({src:this.props.isvideo?"img/blankvid.png":"img/blankimg.png",style:{...this.state.style,padding:"4px"}}),this.props.whenDone.promise.then(e=>this.setState({src:e.src,style:{...this.state.style,padding:0}})).catch(e=>this.setState({src:this.props.isvideo?"img/broken_video.png":"img/broken_image.png"})))}render(){return i().createElement("img",this.state)}}var u=s(9895);class m extends i().PureComponent{constructor(e){super(e)}render(){return i().createElement("div",{className:"inline-image"},i().createElement("img",this.props),i().createElement("div",{className:"rounded-container"},i().createElement(u.A,{progress:this.props.progress,onCancel:this.props.onCancelUpload})))}}var g=s(9027),f=s(6110),v=s(3540);const b=(0,n.defineMessages)({drafty_form:{id:"drafty_form",defaultMessage:[{type:0,value:"Form:"}]},drafty_attachment:{id:"drafty_attachment",defaultMessage:[{type:0,value:"Attachment"}]},drafty_image:{id:"drafty_image",defaultMessage:[{type:0,value:"Picture"}]},drafty_video:{id:"drafty_video",defaultMessage:[{type:0,value:"Video recording"}]},drafty_unknown:{id:"drafty_unknown",defaultMessage:[{type:0,value:"Unsupported"}]}});function E(e,t,s,a,n){if(n.includes("QQ"))return _.call(this,e,t,s,a);if(!e)return s;let h=r.Drafty.tagName(e),d=r.Drafty.attrValue(e,t)||{};switch(d.key=a,e){case"AU":d.src&&(d.src=this.authorizeURL((0,v.wk)(d.src,"audio")),d.duration=t.duration>0?0|t.duration:void 0,d.preview=t.preview,d.loading="lazy"),h=o.A,s=null;break;case"BR":s=null;break;case"EX":case"RW":break;case"HL":d.className="highlight";break;case"HD":h=null,s=null;break;case"IM":h=y.call(this,h,t,d),s=null;break;case"BN":d.onClick=this.onFormButtonClick;let e=i().Children.map(s,e=>"string"==typeof e?e:void 0);e&&0!=e.length||(e=[d.name]),d["data-title"]=e.join("");break;case"LN":d&&(d.href="string"==typeof d.href?(0,v.Jf)(d.href,g.kA):"");break;case"MN":d.className="mention",t&&(d.className+=" "+(0,l.kJ)(t.val,!1,!0));break;case"FM":d.className="bot-form";break;case"QQ":d.className="reply-quote",d.onClick=this.onQuoteClick;break;case"VC":h=c,s=null,t&&(d.callState=t.state,d.incoming=t.incoming,d.duration=t.duration);break;case"VD":h=w.call(this,h,t,d),s=null;break;default:if(!h){h=i().Fragment,d={key:a};let e=s;Array.isArray(s)&&s.join("").trim()||(e=[i().createElement("span",{key:"x1",className:"gray"},this.formatMessage(b.drafty_unknown))]),s=[i().createElement("i",{key:"x0",className:"material-icons gray"},"extension")," "].concat(e)}}return h?i().createElement(h,d,s):s}function y(e,t,s){if(!t)return s.src="img/broken_image.png",s.style={width:g._g+"px",height:g._g+"px"},e;s.className="inline-image";const a=(0,f.ae)(t.width,t.height,this.viewportWidth>0?Math.min(this.viewportWidth-6.5*g.JS,34.5*g.JS):34.5*g.JS,24*g.JS,!1)||{dstWidth:g._j,dstHeight:g._j};return s.style={width:a.dstWidth+"px",height:a.dstHeight+"px",minWidth:a.dstWidth+"px",minHeight:a.dstHeight+"px"},r.Drafty.isProcessing(t)?e=m:(s.src=this.authorizeURL((0,v.wk)(s.src,"image")),s.alt=t.name,s.src?(Math.max(t.width||0,t.height||0)>g._g&&(s.onClick=this.onImagePreview,s.className+=" image-clickable"),s.loading="lazy"):s.src=null),e}function w(e,t,s){if(!t)return s.src="img/broken_video.png",s.style={width:g._g+"px",height:g._g+"px"},e;s.className="inline-image";const a=(0,f.ae)(t.width,t.height,this.viewportWidth>0?Math.min(this.viewportWidth-6.5*g.JS,34.5*g.JS):34.5*g.JS,24*g.JS,!1)||{dstWidth:g.qV,dstHeight:g.qV};return s.style={width:a.dstWidth+"px",height:a.dstHeight+"px",minWidth:a.dstWidth+"px",minHeight:a.dstHeight+"px"},r.Drafty.isProcessing(t)?e=m:(s.src=this.authorizeURL((0,v.wk)(s.src,"image")),s.alt=t.name,(t.ref||t.val)&&(s.onClick=this.onVideoPreview,s.loading="lazy"),e=d),e}function C(e,t,s,a){if(!e)return s;let n=r.Drafty.tagName(e);const o={key:a};switch(e){case"AU":n=i().Fragment,s=[i().createElement("i",{key:"au",className:"material-icons"},"mic")," ",(0,l.Ye)(t.duration/1e3)];break;case"BR":n=i().Fragment,s=[" "];break;case"HL":o.className="highlight preview";break;case"LN":case"MN":n="span";break;case"IM":n=i().Fragment,s=[i().createElement("i",{key:"im",className:"material-icons"},"photo")," ",this.formatMessage(b.drafty_image)];break;case"BN":n="span",o.className="flat-button faux";break;case"FM":n=i().Fragment,s=[i().createElement("i",{key:"fm",className:"material-icons"},"dashboard"),this.formatMessage(b.drafty_form)].concat(" ",s||[]);break;case"RW":n=i().Fragment;break;case"EX":if(t){if(r.Drafty.isFormResponseType(t.mime))return null;delete t.val,delete t.ref}n=i().Fragment,s=[i().createElement("i",{key:"ex",className:"material-icons"},"attachment")," ",this.formatMessage(b.drafty_attachment)];break;case"VC":n=h,t&&(o.callState=t.state,o.incoming=t.incoming,o.duration=t.duration),s=null;break;case"QQ":case"HD":n=null,s=null;break;case"VD":n=i().Fragment,s=[i().createElement("i",{key:"im",className:"material-icons"},"play_circle_outline")," ",this.formatMessage(b.drafty_video)];break;default:n||(n=i().Fragment,s=[i().createElement("i",{key:"x0",className:"material-icons gray"},"extension")," ",this.formatMessage(b.drafty_unknown)])}return n?i().createElement(n,o,s):s}function S(e,t){return e.style={width:g._g+"px",height:g._g+"px",maxWidth:g._g+"px",maxHeight:g._g+"px"},e.className="inline-image",e.alt=this.formatMessage(b.drafty_image),e.src=t&&e.src||"img/broken_image.png",e.title=e.alt,e}function M(e,t){const s=(0,f.ae)(t.width,t.height,g.iq,g._g);return e.style={width:s.width+"px",height:s.height+"px",maxWidth:g.iq+"px",maxHeight:g._g+"px"},e.className="inline-image",e.alt=this.formatMessage(b.drafty_video),e.title=e.alt,e.src=t&&e.src||"img/broken_video.png",e}function _(e,t,s,a){if(["BR","EX","IM","MN","VD"].includes(e)){let n=r.Drafty.tagName(e),o=r.Drafty.attrValue(e,t)||{};switch(o.key=a,e){case"BR":s=null;break;case"IM":o=S.call(this,o,t),s=[i().createElement("img",o,null)," ",o.alt],n=i().Fragment,o={key:a};break;case"VD":o=M.call(this,o,t),s=[i().createElement("img",o,null)," ",o.alt],n=i().Fragment,o={key:a};break;case"MN":n="span",o.className="mention",t&&(o.className+=" "+(0,l.kJ)(t.val,!1,!0));break;case"EX":let e;if(t){if(r.Drafty.isFormResponseType(t.mime))return null;e=t.name,delete t.val,delete t.ref}n=i().Fragment,s=[i().createElement("i",{key:"ex",className:"material-icons"},"attachment"),(0,l.Tu)(e,16)||this.formatMessage(b.drafty_attachment)]}return i().createElement(n,o,s)}return C.call(this,e,t,s,a)}function T(e,t){let s,a,i,n;if(t?(a=e.preview,n=e.premime||"image/jpeg",i=e.preref):(a=e.val,n=e.mime,i=e.ref),a){const e=(0,f.i)(a,n);if(!e)throw new Error("Invalid image");s=Promise.resolve(e)}else{if(!i)throw new Error("Missing image data");s=fetch(this.authorizeURL((0,v.wk)(i,"image"))).then(e=>{if(e.ok)return e.blob();throw new Error(`Image fetch unsuccessful: ${e.status} ${e.statusText}`)})}return s.then(e=>(0,f.ag)(e,t?g.iq:g._g,g._g,-1,!t)).then(s=>(t?e.premime=s.mime:e.mime=s.mime,e.size=s.blob.size,e.width=s.width,e.height=s.height,delete e.ref,delete e.preref,e.src=URL.createObjectURL(s.blob),(0,f.Sk)(s.blob))).then(s=>(t?e.preview=s.bits:e.val=s.bits,e)).catch(t=>{throw delete e.val,delete e.preview,delete e.src,e.width=g._g,e.height=g._g,t})}function A(e,t,s,a,n){if("IM"==e||"VD"==e){const n="IM"==e?S.call(this,{key:a},t):M.call(this,{key:a},t);let r;try{r=(0,v.iE)(T.call(this,t,"VD"==e))}catch(e){console.warn("Failed to quote image:",e.message),r=(0,v.iE)(e)}return n.whenDone=r,s=[i().createElement(p,n,null)," ",n.alt],i().createElement(i().Fragment,{key:a},s)}if("QQ"==e){if(n.includes("QQ"))return i().createElement("span",{key:a},[i().createElement("i",{key:"qq",className:"material-icons"},"format_quote")," "]);const e=r.Drafty.attrValue("QQ",t)||{};return e.key=a,e.className="reply-quote",i().createElement(r.Drafty.tagName("QQ"),e,s)}return _.call(this,e,t,s,a)}},8089:function(e,t,s){s.d(t,{A:function(){return b}});var a=s(1594),i=s.n(a),n=s(8181),r=s(4532),o=s(221),l=s(9418),c=s(1485),h=s(3307),d=s(9027),p=s(6110),u=s(8589),m=s(3540);const g=(0,n.defineMessages)({alias_invalid:{id:"alias_invalid",defaultMessage:[{type:0,value:"(invalid)"}]},alias_already_taken:{id:"alias_already_taken",defaultMessage:[{type:0,value:"(already taken)"}]},self_topic_name:{id:"self_topic_name",defaultMessage:[{type:0,value:"Saved messages"}]},self_topic_comment:{id:"self_topic_comment",defaultMessage:[{type:0,value:"Notes, messages, links, files saved for posterity"}]}});class f extends i().Component{constructor(e){super(e);const t=this.props.tinode.getTopic(this.props.topic),s=t.getAccessMode(),a=r.Tinode.isSelfTopicName(this.props.topic);this.state={isMe:r.Tinode.isMeTopicName(this.props.topic),isSelf:a,owner:s&&s.isOwner(),fullName:t.public?t.public.fn:a?this.props.intl.formatMessage(g.self_topic_name):null,private:t.private?t.private.comment:null,description:t.public?t.public.note:a?this.props.intl.formatMessage(g.self_topic_comment):null,avatar:(0,p.to)(t.public?t.public.photo:null),tags:t.tags()||[],newAvatar:null,newAvatarMime:null,aliasError:""},this.previousOnTags=null,this.aliasCheckTimer=null,this.aliasCheckPromise=null,this.tnNewTags=this.tnNewTags.bind(this),this.handleFullNameUpdate=this.handleFullNameUpdate.bind(this),this.handleImageUpdated=this.handleImageUpdated.bind(this),this.handleAvatarCropped=this.handleAvatarCropped.bind(this),this.handleAvatarCropCancel=this.handleAvatarCropCancel.bind(this),this.uploadAvatar=this.uploadAvatar.bind(this),this.handlePrivateUpdate=this.handlePrivateUpdate.bind(this),this.handleAliasUpdate=this.handleAliasUpdate.bind(this),this.handleDescriptionUpdate=this.handleDescriptionUpdate.bind(this),this.handleTagsUpdated=this.handleTagsUpdated.bind(this),this.validateAlias=this.validateAlias.bind(this),this.cancelValidator=this.cancelValidator.bind(this)}componentDidMount(){const e=this.props.tinode.getTopic(this.props.topic);this.previousOnTags=e.onTagsUpdated,e.onTagsUpdated=this.tnNewTags}componentWillUnmount(){this.props.tinode.getTopic(this.props.topic).onTagsUpdated=this.previousOnTags,this.cancelValidator()}tnNewTags(e){this.setState({tags:e})}handleFullNameUpdate(e){(e=(0,u.W5)(e.trim(),d.tS))&&this.state.fullName!==e&&(this.setState({fullName:e}),this.props.onUpdateTopicDesc(this.props.topic,(0,m.k6)(e,null)))}handlePrivateUpdate(e){e=e.trim().substring(0,d.tS),this.state.private!==e&&(this.setState({private:e}),this.props.onUpdateTopicDesc(this.props.topic,null,e||r.Tinode.DEL_CHAR))}handleDescriptionUpdate(e){(e=e.trim().substring(0,d.lQ))&&(this.setState({description:e}),this.props.onUpdateTopicDesc(this.props.topic,(0,m.k6)(null,null,null,e)))}handleImageUpdated(e,t){this.setState({newAvatar:t,newAvatarMime:e}),t||(this.setState({avatar:null}),this.props.onUpdateTopicDesc(this.props.topic,(0,m.k6)(null,r.Tinode.DEL_CHAR)))}handleAvatarCropped(e,t,s,a){const i=t?URL.createObjectURL(t):null;this.setState({avatar:i,newAvatar:null,newAvatarMime:null}),t&&this.uploadAvatar(e,t,s,a)}uploadAvatar(e,t,s,a){const i=e=>{let{mime:t,blob:s}=e;if(s.size>d.Z7){this.props.tinode.getLargeFileHelper().upload(s).then(e=>this.props.onUpdateTopicDesc(this.props.topic,(0,m.k6)(null,e))).catch(e=>this.props.onError(e.message,"err"))}else(0,p.Sk)(s).then(e=>{const s=(0,p.to)({data:e.bits,type:t});this.setState({source:s}),this.props.onUpdateTopicDesc(this.props.topic,(0,m.k6)(null,s))})};s>d.eQ||a>d.eQ||s!=a?(0,p.ag)(t,d.eQ,d.eQ,d.qy,!0).then(e=>i(e)).catch(e=>this.props.onError(e.message,"err")):i({mime:e,blob:t,width:s,height:a})}handleAvatarCropCancel(){this.setState({newAvatar:null,newAvatarMime:null})}handleAliasUpdate(e){const t=(e=(e||"").trim())?r.Tinode.setUniqueTag(this.state.tags,r.Tinode.TAG_ALIAS+e.toLowerCase()):r.Tinode.clearTagPrefix(this.state.tags,r.Tinode.TAG_ALIAS);this.handleTagsUpdated(t)}validateAlias(e){if(this.cancelValidator(),!(e=e.trim()))return this.setState({aliasError:""}),!0;if(!r.Tinode.isValidTagValue(e))return this.setState({aliasError:this.props.intl.formatMessage(g.alias_invalid)}),!1;this.setState({aliasError:""});const t=this.props.tinode.getFndTopic();if(!t)return this.setState({aliasError:""}),!0;this.aliasCheckPromise={};const s=new Promise((e,t)=>{this.aliasCheckPromise.resolve=e,this.aliasCheckPromise.reject=t});return this.aliasCheckTimer=setTimeout(s=>{this.aliasCheckTimer=null,t.checkTagUniqueness(`${r.Tinode.TAG_ALIAS}${e}`,this.props.topic).then(e=>{this.aliasCheckPromise.resolve(e),this.setState({aliasError:e?"":this.props.intl.formatMessage(g.alias_already_taken)})}).catch(e=>{this.aliasCheckPromise.reject(e),this.setState({aliasError:e.message})})},1e3),s}cancelValidator(){this.aliasCheckTimer&&(clearTimeout(this.aliasCheckTimer),this.aliasCheckTimer=null,this.aliasCheckPromise.reject(null))}handleTagsUpdated(e){(0,m.af)(this.state.tags.slice(0),e.slice(0))||this.props.onUpdateTags(e)}render(){if(this.state.newAvatar)return i().createElement(o.A,{avatar:this.state.newAvatar,mime:this.state.newAvatarMime,onSubmit:this.handleAvatarCropped,onCancel:this.handleAvatarCropCancel,onError:this.props.onError});const e=this.state.isMe||this.state.owner&&!this.state.isSelf;let t=this.state.tags&&this.state.tags.find(e=>e.startsWith("alias:"));return t&&(t=t.substring(6)),i().createElement(i().Fragment,null,i().createElement("div",{className:"panel-form-column"},i().createElement("center",null,i().createElement(l.A,{tinode:this.props.tinode,avatar:this.state.avatar,readOnly:!e,uid:this.props.topic,title:this.state.fullName,onImageUpdated:this.handleImageUpdated,onError:this.props.onError})),this.state.isMe?i().createElement("div",{className:"group"},i().createElement("label",{className:"small"},i().createElement(n.FormattedMessage,{id:"label_your_name",defaultMessage:[{type:0,value:"Your name"}]})),i().createElement("div",null,i().createElement(n.FormattedMessage,{id:"full_name_prompt",defaultMessage:[{type:0,value:"Full name, e.g. John Doe"}]},e=>i().createElement(c.A,{placeholder:e,value:this.state.fullName,required:!0,onFinished:this.handleFullNameUpdate})))):i().createElement(i().Fragment,null,i().createElement("div",{className:"group"},i().createElement("div",null,i().createElement("label",{className:"small"},i().createElement(n.FormattedMessage,{id:"label_topic_name",defaultMessage:[{type:0,value:"Name"}]}))),i().createElement("div",null,i().createElement(n.FormattedMessage,{id:"topic_name_editing_placeholder",defaultMessage:[{type:0,value:"Freeform name of the group"}]},t=>i().createElement(c.A,{placeholder:t,readOnly:!e,value:this.state.fullName,required:!0,maxLength:32,onFinished:this.handleFullNameUpdate})))),i().createElement("div",{className:"group"},i().createElement("div",null,i().createElement("label",{className:"small"},i().createElement(n.FormattedMessage,{id:"label_private",defaultMessage:[{type:0,value:"Private comment"}]}))),i().createElement("div",null,i().createElement(n.FormattedMessage,{id:"private_editing_placeholder",defaultMessage:[{type:0,value:"Visible to you only"}]},e=>i().createElement(c.A,{placeholder:e,value:this.state.private,onFinished:this.handlePrivateUpdate}))))),e||t?i().createElement("div",{className:"group"},i().createElement("div",null,i().createElement("label",{className:"small "+(this.state.aliasError?"invalid":"")},i().createElement(n.FormattedMessage,{id:"label_alias_edit",defaultMessage:[{type:0,value:"Alias"}]})," ",this.state.aliasError)),i().createElement("div",null,i().createElement(n.FormattedMessage,{id:"alias_editing_placeholder",defaultMessage:[{type:0,value:"Alias (optional)"}]},s=>i().createElement(c.A,{placeholder:s,readOnly:!e,value:t,validator:this.validateAlias,iconLeft:"alternate_email",maxLength:24,spellCheck:!1,onFinished:this.handleAliasUpdate})))):null,e||this.state.description?i().createElement("div",{className:"group"},i().createElement("div",null,i().createElement("label",{className:"small"},i().createElement(n.FormattedMessage,{id:"label_description",defaultMessage:[{type:0,value:"Description"}]}))),i().createElement("div",null,i().createElement(n.FormattedMessage,{id:"description_editing_placeholder",defaultMessage:[{type:0,value:"Description (optional)"}]},t=>i().createElement(c.A,{placeholder:t,readOnly:!e,value:this.state.description,multiline:2,onFinished:this.handleDescriptionUpdate})))):null),e&&!this.state.isMe?i().createElement(i().Fragment,null,i().createElement("div",{className:"hr"}),i().createElement(n.FormattedMessage,{id:"title_tag_manager",defaultMessage:[{type:0,value:"Tags (search & discovery)"}]},e=>i().createElement(h.A,{tinode:this.props.tinode,title:e,activated:!1,tags:this.state.tags,onSubmit:this.handleTagsUpdated}))):null)}}var v=(0,n.injectIntl)(f);class b extends i().Component{constructor(e){super(e);this.props.tinode.getTopic(this.props.topic).getAccessMode();this.state={tags:[]},this.previousTagsUpdated=void 0,this.onTagsUpdated=this.onTagsUpdated.bind(this),this.handleTagsUpdated=this.handleTagsUpdated.bind(this)}componentDidUpdate(e){const t=this.props.tinode.getTopic(e.topic);t&&(t.onTagsUpdated!=this.onTagsUpdated&&("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}))}componentWillUnmount(){this.props.tinode.getTopic(this.props.topic).onTagsUpdated=this.previousTagsUpdated}onTagsUpdated(e){this.setState({tags:e}),this.previousTagsUpdated&&this.previousTagsUpdated!=this.onTagsUpdated&&this.previousTagsUpdated(e)}handleTagsUpdated(e){(0,m.af)(this.state.tags.slice(0),e.slice(0))||this.props.onUpdateTagsRequest(this.props.topic,e)}render(){return i().createElement("div",{className:"scrollable-panel"},i().createElement(v,{tinode:this.props.tinode,topic:this.props.topic,onUpdateTopicDesc:this.props.onUpdateTopicDesc,onUpdateTags:this.handleTagsUpdated,onError:this.props.onError}))}}},8181:function(e){e.exports=ReactIntl},8262:function(e,t,s){s.d(t,{A:function(){return a}});class a{static setObject(e,t){localStorage.setItem(e,JSON.stringify(t))}static getObject(e){const t=localStorage.getItem(e);return t&&JSON.parse(t)}static updateObject(e,t){const s=this.getObject(e);this.setObject(e,Object.assign(s||{},t))}static removeItem(e){localStorage.removeItem(e)}}},8589:function(e,t,s){function a(e,t){t=t||window.navigator.userLanguage||window.navigator.language;const s=new Date;return e.getFullYear()==s.getFullYear()?e.getMonth()==s.getMonth()&&e.getDate()==s.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,{year:"numeric",month:"short",day:"numeric"})}function i(e,t){t=t||window.navigator.userLanguage||window.navigator.language;const s=new Date,a=Math.floor((e.getTime()-6e4*e.getTimezoneOffset())/864e5)-Math.floor((s.getTime()-6e4*s.getTimezoneOffset())/864e5);return Math.abs(a)<2?new Intl.RelativeTimeFormat(t,{numeric:"auto"}).format(a,"day"):new Intl.DateTimeFormat(t).format(e)}function n(e,t){if("number"!=typeof e)return"";let s=(0|Math.floor(e/60))%60,a=0|Math.floor(e/3600);(t||a>0)&&(s=s<10?`0${s}`:s);let i=(0|e)%60;return i=i<10?`0${i}`:i,0==a?`${s}:${i}`:`${a}:${s}:${i}`}function r(e){if(!e||0==e)return"0 Bytes";const t=["Bytes","KB","MB","GB","TB","PB"],s=Math.min(0|Math.floor(Math.log2(e)/10),t.length-1),a=e/Math.pow(1024,s),i=s>0?a<3?2:a<30?1:0:0;return a.toFixed(i)+" "+t[s]}function o(e,t){return"string"!=typeof e?e:e.length>t?e.slice(0,t/2-1)+"…"+e.slice(1-t/2):e}function l(e,t,s){return(t?"lt-":"dk-")+(s?"fg-":"bg-")+(a=e,Math.abs(function(e){let t=0;e=""+e;for(let s=0;s127397+e.charCodeAt());return String.fromCodePoint(...t)}function h(e,t){if("string"!=typeof e)return e;if(e.length<=t)return e;return/[\u0590-\u05FF\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF\uFB50-\uFDFF\uFE70-\uFEFF]/.test(e)?"…"+e.slice(0,t-1):e.slice(0,t-1)+"…"}s.d(t,{Tu:function(){return o},W5:function(){return h},Ye:function(){return n},cq:function(){return a},kJ:function(){return l},lX:function(){return r},lb:function(){return c},mf:function(){return i}})},9027:function(e,t,s){s.d(t,{C3:function(){return a},Cx:function(){return T},D3:function(){return m},DT:function(){return N},GB:function(){return p},H1:function(){return w},HX:function(){return r},J:function(){return c},JS:function(){return f},Lq:function(){return i},NR:function(){return l},QG:function(){return M},RS:function(){return B},Rz:function(){return R},S:function(){return Z},SE:function(){return n},TR:function(){return x},Ti:function(){return d},Tn:function(){return H},U3:function(){return o},Uv:function(){return J},V9:function(){return q},VJ:function(){return g},Yd:function(){return G},Z7:function(){return b},ZW:function(){return K},_g:function(){return A},_j:function(){return E},bn:function(){return Q},cL:function(){return X},cZ:function(){return u},eQ:function(){return v},fi:function(){return j},gb:function(){return Y},hB:function(){return U},hT:function(){return W},iB:function(){return O},iq:function(){return k},kA:function(){return V},lQ:function(){return I},mp:function(){return C},mu:function(){return P},qV:function(){return y},qy:function(){return S},rl:function(){return z},rn:function(){return h},sT:function(){return F},tS:function(){return D},wj:function(){return _},wl:function(){return L},yS:function(){return $}});const a="TinodeWeb/"+(s(257).i||"0.24"),i="AQEAAAABAAD_rAp4DJh05a1HAwFT3A6K",n={hosted:"web.tinode.co",local:"localhost:6060"},r=n.hosted,o=!0,l=3e3,c=1500,h=2,d=96,p=16,u="JRWPS",m="N",g=640,f=13,v=384,b=4096,E=32,y=128,w=24,C=262144,S=1<<23,M=1024,_=64,T=96,A=36,k=48,N=4,D=60,I=360,P=24,F=80,R=30,x=84,U=48,L=2e3,O=6e5,j="mailto:support@tinode.co",B="https://tinode.co/privacy.html",q="https://tinode.co/terms.html",z=!1,V=["http","https","ftp","ftps"],H=128,W=8e4,K=1e3,$=3*f,G="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZpZXdCb3g9IjAgMCAxNyAxNyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMy41NjIgMXYxNS40NTlsNC42ODYtMy4yNyA0Ljc1MiAzLjI2di0xNS40NDloLTkuNDM4ek0xMiAxNC41NTFsLTMuNzU2LTIuNTc4LTMuNjgxIDIuNTY4di0xMi41NDFoNy40Mzd2MTIuNTUxeiIgZmlsbD0iIzU1NTU1NSIgLz48L3N2Zz4=",Q=3e3,Y="auto",X=10,J="application/json",Z={type:"patt",index:0,path:"img/bkg/"}},9418:function(e,t,s){s.d(t,{A:function(){return c}});var a=s(1594),i=s.n(a),n=s(6904),r=s(1013),o=s(3540),l=s(9027);class c extends i().Component{constructor(e){super(e),this.state={source:e.avatar},this.handleFileReceived=this.handleFileReceived.bind(this)}componentDidUpdate(e){this.props.avatar!=e.avatar&&this.setState({source:this.props.avatar})}handleFileReceived(e){const t=e.target.files[0];this.props.onImageUpdated(t.type,URL.createObjectURL(t),t.name),e.target.value=""}render(){const e="file-input-avatar-"+(""+Math.random()).substring(0,4),t="avatar-upload"+(this.props.readOnly?" read-only":"");return i().createElement("div",{className:t},this.props.readOnly||!this.state.source?null:i().createElement("a",{href:"#",className:"clear-avatar",onClick:e=>{e.preventDefault(),this.props.onImageUpdated()}},i().createElement("i",{className:"material-icons"},"clear")),this.state.source?i().createElement("img",{src:this.props.tinode.authorizeURL((0,o.wk)(this.state.source,"image")),className:"preview"}):this.props.readOnly&&this.props.uid?i().createElement("div",{className:"avatar-box"},i().createElement(n.A,{tinode:this.props.tinode,avatar:!0,topic:this.props.uid,title:this.props.title})):i().createElement("div",{className:"blank"},l.eQ,"×",l.eQ),this.props.readOnly?null:i().createElement("input",{type:"file",id:e,className:"inputfile hidden",accept:"image/*",onChange:this.handleFileReceived}),this.props.readOnly?null:i().createElement("label",{htmlFor:e,className:"round"},i().createElement("i",{className:"material-icons"},"file_upload")),i().createElement(r.A,{show:this.props.uploading,large:!0,clear:!0,centered:!0}))}}},9593:function(e){e.exports=QRCode},9895:function(e,t,s){s.d(t,{A:function(){return r}});var a=s(1594),i=s.n(a),n=s(8181);class r extends i().PureComponent{render(){return i().createElement("div",{className:"uploader"},i().createElement("div",null,i().createElement("span",{style:{width:100*this.props.progress+"%"}})),this.props.progress<.999?i().createElement("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onCancel()}},i().createElement("i",{className:"material-icons"},"close")," ",i().createElement(n.FormattedMessage,{id:"action_cancel",defaultMessage:[{type:0,value:"cancel"}]})):i().createElement(n.FormattedMessage,{id:"upload_finishing",defaultMessage:[{type:0,value:"finishing..."}]}))}}}},n={};function r(e){var t=n[e];if(void 0!==t)return t.exports;var s=n[e]={exports:{}};return i[e].call(s.exports,s,s.exports,r),s.exports}r.m=i,r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,{a:t}),t},t=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},r.t=function(s,a){if(1&a&&(s=this(s)),8&a)return s;if("object"==typeof s&&s){if(4&a&&s.__esModule)return s;if(16&a&&"function"==typeof s.then)return s}var i=Object.create(null);r.r(i);var n={};e=e||[null,t({}),t([]),t(t)];for(var o=2&a&&s;("object"==typeof o||"function"==typeof o)&&!~e.indexOf(o);o=t(o))Object.getOwnPropertyNames(o).forEach(function(e){n[e]=function(){return s[e]}});return n.default=function(){return s},r.d(i,n),i},r.d=function(e,t){for(var s in t)r.o(t,s)&&!r.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},r.f={},r.e=function(e){return Promise.all(Object.keys(r.f).reduce(function(t,s){return r.f[s](e,t),t},[]))},r.u=function(e){return e+".prod.js"},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},s={},a="tinode-webapp:",r.l=function(e,t,i,n){if(s[e])s[e].push(t);else{var o,l;if(void 0!==i)for(var c=document.getElementsByTagName("script"),h=0;h>6|192,t[s++]=63&i|128):55296==(64512&i)&&a+1>18|240,t[s++]=i>>12&63|128,t[s++]=i>>6&63|128,t[s++]=63&i|128):(t[s++]=i>>12|224,t[s++]=i>>6&63|128,t[s++]=63&i|128)}return t},p={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(e,t){if(!Array.isArray(e))throw Error("encodeByteArray takes an array as a parameter");this.init_();const s=t?this.byteToCharMapWebSafe_:this.byteToCharMap_,a=[];for(let t=0;t>2,h=(3&i)<<4|r>>4;let d=(15&r)<<2|l>>6,p=63&l;o||(p=64,n||(d=64)),a.push(s[c],s[h],s[d],s[p])}return a.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(d(e),t)},decodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?atob(e):function(e){const t=[];let s=0,a=0;for(;s191&&i<224){const n=e[s++];t[a++]=String.fromCharCode((31&i)<<6|63&n)}else if(i>239&&i<365){const n=((7&i)<<18|(63&e[s++])<<12|(63&e[s++])<<6|63&e[s++])-65536;t[a++]=String.fromCharCode(55296+(n>>10)),t[a++]=String.fromCharCode(56320+(1023&n))}else{const n=e[s++],r=e[s++];t[a++]=String.fromCharCode((15&i)<<12|(63&n)<<6|63&r)}}return t.join("")}(this.decodeStringToByteArray(e,t))},decodeStringToByteArray(e,t){this.init_();const s=t?this.charToByteMapWebSafe_:this.charToByteMap_,a=[];for(let t=0;t>4;if(a.push(l),64!==r){const e=n<<4&240|r>>2;if(a.push(e),64!==o){const e=r<<6&192|o;a.push(e)}}}return a},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let e=0;e=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class u extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const m=function(e){return function(e){const t=d(e);return p.encodeByteArray(t,!0)}(e).replace(/\./g,"")},g=function(e){try{return p.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};const f=()=>function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r.g)return r.g;throw new Error("Unable to locate global object.")}().__FIREBASE_DEFAULTS__,v=()=>{try{return f()||(()=>{if("undefined"==typeof process||void 0===process.env)return;const e=process.env.__FIREBASE_DEFAULTS__;return e?JSON.parse(e):void 0})()||(()=>{if("undefined"==typeof document)return;let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}const t=e&&g(e[1]);return t&&JSON.parse(t)})()}catch(e){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`)}},b=()=>{var e;return null===(e=v())||void 0===e?void 0:e.config};class E{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}wrapCallback(e){return(t,s)=>{t?this.reject(t):this.resolve(s),"function"==typeof e&&(this.promise.catch(()=>{}),1===e.length?e(t):e(t,s))}}}function y(){try{return"object"==typeof indexedDB}catch(e){return!1}}function w(){return new Promise((e,t)=>{try{let s=!0;const a="validate-browser-context-for-indexeddb-analytics-module",i=self.indexedDB.open(a);i.onsuccess=()=>{i.result.close(),s||self.indexedDB.deleteDatabase(a),e(!0)},i.onupgradeneeded=()=>{s=!1},i.onerror=()=>{var e;t((null===(e=i.error)||void 0===e?void 0:e.message)||"")}}catch(e){t(e)}})}class C extends Error{constructor(e,t,s){super(t),this.code=e,this.customData=s,this.name="FirebaseError",Object.setPrototypeOf(this,C.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,S.prototype.create)}}class S{constructor(e,t,s){this.service=e,this.serviceName=t,this.errors=s}create(e,...t){const s=t[0]||{},a=`${this.service}/${e}`,i=this.errors[e],n=i?function(e,t){return e.replace(M,(e,s)=>{const a=t[s];return null!=a?String(a):`<${s}?>`})}(i,s):"Error",r=`${this.serviceName}: ${n} (${a}).`;return new C(a,r,s)}}const M=/\{\$([^}]+)}/g;function _(e,t){if(e===t)return!0;const s=Object.keys(e),a=Object.keys(t);for(const i of s){if(!a.includes(i))return!1;const s=e[i],n=t[i];if(T(s)&&T(n)){if(!_(s,n))return!1}else if(s!==n)return!1}for(const e of a)if(!s.includes(e))return!1;return!0}function T(e){return null!==e&&"object"==typeof e}function A(e){return e&&e._delegate?e._delegate:e}class k{constructor(e,t,s){this.name=e,this.instanceFactory=t,this.type=s,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}const N="[DEFAULT]";class D{constructor(e,t){this.name=e,this.container=t,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){const t=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(t)){const e=new E;if(this.instancesDeferred.set(t,e),this.isInitialized(t)||this.shouldAutoInitialize())try{const s=this.getOrInitializeService({instanceIdentifier:t});s&&e.resolve(s)}catch(e){}}return this.instancesDeferred.get(t).promise}getImmediate(e){var t;const s=this.normalizeInstanceIdentifier(null==e?void 0:e.identifier),a=null!==(t=null==e?void 0:e.optional)&&void 0!==t&&t;if(!this.isInitialized(s)&&!this.shouldAutoInitialize()){if(a)return null;throw Error(`Service ${this.name} is not available`)}try{return this.getOrInitializeService({instanceIdentifier:s})}catch(e){if(a)return null;throw e}}getComponent(){return this.component}setComponent(e){if(e.name!==this.name)throw Error(`Mismatching Component ${e.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=e,this.shouldAutoInitialize()){if(function(e){return"EAGER"===e.instantiationMode}(e))try{this.getOrInitializeService({instanceIdentifier:N})}catch(e){}for(const[e,t]of this.instancesDeferred.entries()){const s=this.normalizeInstanceIdentifier(e);try{const e=this.getOrInitializeService({instanceIdentifier:s});t.resolve(e)}catch(e){}}}}clearInstance(e=N){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){const e=Array.from(this.instances.values());await Promise.all([...e.filter(e=>"INTERNAL"in e).map(e=>e.INTERNAL.delete()),...e.filter(e=>"_delete"in e).map(e=>e._delete())])}isComponentSet(){return null!=this.component}isInitialized(e=N){return this.instances.has(e)}getOptions(e=N){return this.instancesOptions.get(e)||{}}initialize(e={}){const{options:t={}}=e,s=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(s))throw Error(`${this.name}(${s}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);const a=this.getOrInitializeService({instanceIdentifier:s,options:t});for(const[e,t]of this.instancesDeferred.entries()){s===this.normalizeInstanceIdentifier(e)&&t.resolve(a)}return a}onInit(e,t){var s;const a=this.normalizeInstanceIdentifier(t),i=null!==(s=this.onInitCallbacks.get(a))&&void 0!==s?s:new Set;i.add(e),this.onInitCallbacks.set(a,i);const n=this.instances.get(a);return n&&e(n,a),()=>{i.delete(e)}}invokeOnInitCallbacks(e,t){const s=this.onInitCallbacks.get(t);if(s)for(const a of s)try{a(e,t)}catch(e){}}getOrInitializeService({instanceIdentifier:e,options:t={}}){let s=this.instances.get(e);if(!s&&this.component&&(s=this.component.instanceFactory(this.container,{instanceIdentifier:(a=e,a===N?void 0:a),options:t}),this.instances.set(e,s),this.instancesOptions.set(e,t),this.invokeOnInitCallbacks(s,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,s)}catch(e){}var a;return s||null}normalizeInstanceIdentifier(e=N){return this.component?this.component.multipleInstances?e:N:e}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class I{constructor(e){this.name=e,this.providers=new Map}addComponent(e){const t=this.getProvider(e.name);if(t.isComponentSet())throw new Error(`Component ${e.name} has already been registered with ${this.name}`);t.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){if(this.providers.has(e))return this.providers.get(e);const t=new D(e,this);return this.providers.set(e,t),t}getProviders(){return Array.from(this.providers.values())}}const P=[];var F;!function(e){e[e.DEBUG=0]="DEBUG",e[e.VERBOSE=1]="VERBOSE",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.SILENT=5]="SILENT"}(F||(F={}));const R={debug:F.DEBUG,verbose:F.VERBOSE,info:F.INFO,warn:F.WARN,error:F.ERROR,silent:F.SILENT},x=F.INFO,U={[F.DEBUG]:"log",[F.VERBOSE]:"log",[F.INFO]:"info",[F.WARN]:"warn",[F.ERROR]:"error"},L=(e,t,...s)=>{if(t{const a=()=>{e.removeEventListener("complete",i),e.removeEventListener("error",n),e.removeEventListener("abort",n)},i=()=>{t(),a()},n=()=>{s(e.error||new DOMException("AbortError","AbortError")),a()};e.addEventListener("complete",i),e.addEventListener("error",n),e.addEventListener("abort",n)});q.set(e,t)}(e),t=e,(O||(O=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])).some(e=>t instanceof e)?new Proxy(e,W):e);var t}function G(e){if(e instanceof IDBRequest)return function(e){const t=new Promise((t,s)=>{const a=()=>{e.removeEventListener("success",i),e.removeEventListener("error",n)},i=()=>{t(G(e.result)),a()},n=()=>{s(e.error),a()};e.addEventListener("success",i),e.addEventListener("error",n)});return t.then(t=>{t instanceof IDBCursor&&B.set(t,e)}).catch(()=>{}),H.set(t,e),t}(e);if(V.has(e))return V.get(e);const t=$(e);return t!==e&&(V.set(e,t),H.set(t,e)),t}const Q=e=>H.get(e);function Y(e,t,{blocked:s,upgrade:a,blocking:i,terminated:n}={}){const r=indexedDB.open(e,t),o=G(r);return a&&r.addEventListener("upgradeneeded",e=>{a(G(r.result),e.oldVersion,e.newVersion,G(r.transaction),e)}),s&&r.addEventListener("blocked",e=>s(e.oldVersion,e.newVersion,e)),o.then(e=>{n&&e.addEventListener("close",()=>n()),i&&e.addEventListener("versionchange",e=>i(e.oldVersion,e.newVersion,e))}).catch(()=>{}),o}function X(e,{blocked:t}={}){const s=indexedDB.deleteDatabase(e);return t&&s.addEventListener("blocked",e=>t(e.oldVersion,e)),G(s).then(()=>{})}const J=["get","getKey","getAll","getAllKeys","count"],Z=["put","add","delete","clear"],ee=new Map;function te(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(ee.get(t))return ee.get(t);const s=t.replace(/FromIndex$/,""),a=t!==s,i=Z.includes(s);if(!(s in(a?IDBIndex:IDBObjectStore).prototype)||!i&&!J.includes(s))return;const n=async function(e,...t){const n=this.transaction(e,i?"readwrite":"readonly");let r=n.store;return a&&(r=r.index(t.shift())),(await Promise.all([r[s](...t),i&&n.done]))[0]};return ee.set(t,n),n}W=(e=>({...e,get:(t,s,a)=>te(t,s)||e.get(t,s,a),has:(t,s)=>!!te(t,s)||e.has(t,s)}))(W);class se{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map(e=>{if(function(e){const t=e.getComponent();return"VERSION"===(null==t?void 0:t.type)}(e)){const t=e.getImmediate();return`${t.library}/${t.version}`}return null}).filter(e=>e).join(" ")}}const ae="@firebase/app",ie="0.13.2",ne=new class{constructor(e){this.name=e,this._logLevel=x,this._logHandler=L,this._userLogHandler=null,P.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in F))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?R[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,F.DEBUG,...e),this._logHandler(this,F.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,F.VERBOSE,...e),this._logHandler(this,F.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,F.INFO,...e),this._logHandler(this,F.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,F.WARN,...e),this._logHandler(this,F.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,F.ERROR,...e),this._logHandler(this,F.ERROR,...e)}}("@firebase/app"),re="@firebase/app-compat",oe="@firebase/analytics-compat",le="@firebase/analytics",ce="@firebase/app-check-compat",he="@firebase/app-check",de="@firebase/auth",pe="@firebase/auth-compat",ue="@firebase/database",me="@firebase/data-connect",ge="@firebase/database-compat",fe="@firebase/functions",ve="@firebase/functions-compat",be="@firebase/installations",Ee="@firebase/installations-compat",ye="@firebase/messaging",we="@firebase/messaging-compat",Ce="@firebase/performance",Se="@firebase/performance-compat",Me="@firebase/remote-config",_e="@firebase/remote-config-compat",Te="@firebase/storage",Ae="@firebase/storage-compat",ke="@firebase/firestore",Ne="@firebase/ai",De="@firebase/firestore-compat",Ie="firebase",Pe="[DEFAULT]",Fe={[ae]:"fire-core",[re]:"fire-core-compat",[le]:"fire-analytics",[oe]:"fire-analytics-compat",[he]:"fire-app-check",[ce]:"fire-app-check-compat",[de]:"fire-auth",[pe]:"fire-auth-compat",[ue]:"fire-rtdb",[me]:"fire-data-connect",[ge]:"fire-rtdb-compat",[fe]:"fire-fn",[ve]:"fire-fn-compat",[be]:"fire-iid",[Ee]:"fire-iid-compat",[ye]:"fire-fcm",[we]:"fire-fcm-compat",[Ce]:"fire-perf",[Se]:"fire-perf-compat",[Me]:"fire-rc",[_e]:"fire-rc-compat",[Te]:"fire-gcs",[Ae]:"fire-gcs-compat",[ke]:"fire-fst",[De]:"fire-fst-compat",[Ne]:"fire-vertex","fire-js":"fire-js",[Ie]:"fire-js-all"},Re=new Map,xe=new Map,Ue=new Map;function Le(e,t){try{e.container.addComponent(t)}catch(s){ne.debug(`Component ${t.name} failed to register with FirebaseApp ${e.name}`,s)}}function Oe(e){const t=e.name;if(Ue.has(t))return ne.debug(`There were multiple attempts to register component ${t}.`),!1;Ue.set(t,e);for(const t of Re.values())Le(t,e);for(const t of xe.values())Le(t,e);return!0}function je(e,t){const s=e.container.getProvider("heartbeat").getImmediate({optional:!0});return s&&s.triggerHeartbeat(),e.container.getProvider(t)}const Be=new S("app","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call initializeApp() first","bad-app-name":"Illegal App name: '{$appName}'","duplicate-app":"Firebase App named '{$appName}' already exists with different options or config","app-deleted":"Firebase App named '{$appName}' already deleted","server-app-deleted":"Firebase Server App has been deleted","no-options":"Need to provide options, when not being deployed to hosting via source.","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance.","invalid-log-argument":"First argument to `onLog` must be null or a function.","idb-open":"Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.","idb-get":"Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.","idb-set":"Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.","idb-delete":"Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.","finalization-registry-not-supported":"FirebaseServerApp deleteOnDeref field defined but the JS runtime does not support FinalizationRegistry.","invalid-server-app-environment":"FirebaseServerApp is not for use in browser environments."});class qe{constructor(e,t,s){this._isDeleted=!1,this._options=Object.assign({},e),this._config=Object.assign({},t),this._name=t.name,this._automaticDataCollectionEnabled=t.automaticDataCollectionEnabled,this._container=s,this.container.addComponent(new k("app",()=>this,"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this.checkDestroyed(),this._automaticDataCollectionEnabled=e}get name(){return this.checkDestroyed(),this._name}get options(){return this.checkDestroyed(),this._options}get config(){return this.checkDestroyed(),this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(e){this._isDeleted=e}checkDestroyed(){if(this.isDeleted)throw Be.create("app-deleted",{appName:this._name})}}function ze(e,t={}){let s=e;if("object"!=typeof t){t={name:t}}const a=Object.assign({name:Pe,automaticDataCollectionEnabled:!0},t),i=a.name;if("string"!=typeof i||!i)throw Be.create("bad-app-name",{appName:String(i)});if(s||(s=b()),!s)throw Be.create("no-options");const n=Re.get(i);if(n){if(_(s,n.options)&&_(a,n.config))return n;throw Be.create("duplicate-app",{appName:i})}const r=new I(i);for(const e of Ue.values())r.addComponent(e);const o=new qe(s,a,r);return Re.set(i,o),o}function Ve(e,t,s){var a;let i=null!==(a=Fe[e])&&void 0!==a?a:e;s&&(i+=`-${s}`);const n=i.match(/\s|\//),r=t.match(/\s|\//);if(n||r){const e=[`Unable to register library "${i}" with version "${t}":`];return n&&e.push(`library name "${i}" contains illegal characters (whitespace or "/")`),n&&r&&e.push("and"),r&&e.push(`version name "${t}" contains illegal characters (whitespace or "/")`),void ne.warn(e.join(" "))}Oe(new k(`${i}-version`,()=>({library:i,version:t}),"VERSION"))}const He="firebase-heartbeat-store";let We=null;function Ke(){return We||(We=Y("firebase-heartbeat-database",1,{upgrade:(e,t)=>{if(0===t)try{e.createObjectStore(He)}catch(e){console.warn(e)}}}).catch(e=>{throw Be.create("idb-open",{originalErrorMessage:e.message})})),We}async function $e(e,t){try{const s=(await Ke()).transaction(He,"readwrite"),a=s.objectStore(He);await a.put(t,Ge(e)),await s.done}catch(e){if(e instanceof C)ne.warn(e.message);else{const t=Be.create("idb-set",{originalErrorMessage:null==e?void 0:e.message});ne.warn(t.message)}}}function Ge(e){return`${e.name}!${e.options.appId}`}class Qe{constructor(e){this.container=e,this._heartbeatsCache=null;const t=this.container.getProvider("app").getImmediate();this._storage=new Xe(t),this._heartbeatsCachePromise=this._storage.read().then(e=>(this._heartbeatsCache=e,e))}async triggerHeartbeat(){var e,t;try{const s=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),a=Ye();if(null==(null===(e=this._heartbeatsCache)||void 0===e?void 0:e.heartbeats)&&(this._heartbeatsCache=await this._heartbeatsCachePromise,null==(null===(t=this._heartbeatsCache)||void 0===t?void 0:t.heartbeats)))return;if(this._heartbeatsCache.lastSentHeartbeatDate===a||this._heartbeatsCache.heartbeats.some(e=>e.date===a))return;if(this._heartbeatsCache.heartbeats.push({date:a,agent:s}),this._heartbeatsCache.heartbeats.length>30){const e=function(e){if(0===e.length)return-1;let t=0,s=e[0].date;for(let a=1;ae.agent===i.agent);if(e){if(e.dates.push(i.date),Je(s)>t){e.dates.pop();break}}else if(s.push({agent:i.agent,dates:[i.date]}),Je(s)>t){s.pop();break}a=a.slice(1)}return{heartbeatsToSend:s,unsentEntries:a}}(this._heartbeatsCache.heartbeats),i=m(JSON.stringify({version:2,heartbeats:s}));return this._heartbeatsCache.lastSentHeartbeatDate=t,a.length>0?(this._heartbeatsCache.heartbeats=a,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),i}catch(e){return ne.warn(e),""}}}function Ye(){return(new Date).toISOString().substring(0,10)}class Xe{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!y()&&w().then(()=>!0).catch(()=>!1)}async read(){if(await this._canUseIndexedDBPromise){const e=await async function(e){try{const t=(await Ke()).transaction(He),s=await t.objectStore(He).get(Ge(e));return await t.done,s}catch(e){if(e instanceof C)ne.warn(e.message);else{const t=Be.create("idb-get",{originalErrorMessage:null==e?void 0:e.message});ne.warn(t.message)}}}(this.app);return(null==e?void 0:e.heartbeats)?e:{heartbeats:[]}}return{heartbeats:[]}}async overwrite(e){var t;if(await this._canUseIndexedDBPromise){const s=await this.read();return $e(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:s.lastSentHeartbeatDate,heartbeats:e.heartbeats})}}async add(e){var t;if(await this._canUseIndexedDBPromise){const s=await this.read();return $e(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:s.lastSentHeartbeatDate,heartbeats:[...s.heartbeats,...e.heartbeats]})}}}function Je(e){return m(JSON.stringify({version:2,heartbeats:e})).length}var Ze;Ze="",Oe(new k("platform-logger",e=>new se(e),"PRIVATE")),Oe(new k("heartbeat",e=>new Qe(e),"PRIVATE")),Ve(ae,ie,Ze),Ve(ae,ie,"esm2017"),Ve("fire-js","");Ve("firebase","11.10.0","app");const et="@firebase/installations",tt="0.6.18",st=1e4,at=`w:${tt}`,it="FIS_v2",nt=36e5,rt=new S("installations","Installations",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"not-registered":"Firebase Installation is not registered.","installation-not-found":"Firebase Installation not found.","request-failed":'{$requestName} request failed with error "{$serverCode} {$serverStatus}: {$serverMessage}"',"app-offline":"Could not process request. Application offline.","delete-pending-registration":"Can't delete installation while there is a pending registration request."});function ot(e){return e instanceof C&&e.code.includes("request-failed")}function lt({projectId:e}){return`https://firebaseinstallations.googleapis.com/v1/projects/${e}/installations`}function ct(e){return{token:e.token,requestStatus:2,expiresIn:(t=e.expiresIn,Number(t.replace("s","000"))),creationTime:Date.now()};var t}async function ht(e,t){const s=(await t.json()).error;return rt.create("request-failed",{requestName:e,serverCode:s.code,serverMessage:s.message,serverStatus:s.status})}function dt({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function pt(e,{refreshToken:t}){const s=dt(e);return s.append("Authorization",function(e){return`${it} ${e}`}(t)),s}async function ut(e){const t=await e();return t.status>=500&&t.status<600?e():t}function mt(e){return new Promise(t=>{setTimeout(t,e)})}const gt=/^[cdef][\w-]{21}$/;function ft(){try{const e=new Uint8Array(17);(self.crypto||self.msCrypto).getRandomValues(e),e[0]=112+e[0]%16;const t=function(e){const t=(s=e,btoa(String.fromCharCode(...s)).replace(/\+/g,"-").replace(/\//g,"_"));var s;return t.substr(0,22)}(e);return gt.test(t)?t:""}catch(e){return""}}function vt(e){return`${e.appName}!${e.appId}`}const bt=new Map;function Et(e,t){const s=vt(e);yt(s,t),function(e,t){const s=Ct();s&&s.postMessage({key:e,fid:t});St()}(s,t)}function yt(e,t){const s=bt.get(e);if(s)for(const e of s)e(t)}let wt=null;function Ct(){return!wt&&"BroadcastChannel"in self&&(wt=new BroadcastChannel("[Firebase] FID Change"),wt.onmessage=e=>{yt(e.data.key,e.data.fid)}),wt}function St(){0===bt.size&&wt&&(wt.close(),wt=null)}const Mt="firebase-installations-store";let _t=null;function Tt(){return _t||(_t=Y("firebase-installations-database",1,{upgrade:(e,t)=>{if(0===t)e.createObjectStore(Mt)}})),_t}async function At(e,t){const s=vt(e),a=(await Tt()).transaction(Mt,"readwrite"),i=a.objectStore(Mt),n=await i.get(s);return await i.put(t,s),await a.done,n&&n.fid===t.fid||Et(e,t.fid),t}async function kt(e){const t=vt(e),s=(await Tt()).transaction(Mt,"readwrite");await s.objectStore(Mt).delete(t),await s.done}async function Nt(e,t){const s=vt(e),a=(await Tt()).transaction(Mt,"readwrite"),i=a.objectStore(Mt),n=await i.get(s),r=t(n);return void 0===r?await i.delete(s):await i.put(r,s),await a.done,!r||n&&n.fid===r.fid||Et(e,r.fid),r}async function Dt(e){let t;const s=await Nt(e.appConfig,s=>{const a=function(e){const t=e||{fid:ft(),registrationStatus:0};return Ft(t)}(s),i=function(e,t){if(0===t.registrationStatus){if(!navigator.onLine){return{installationEntry:t,registrationPromise:Promise.reject(rt.create("app-offline"))}}const s={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},a=async function(e,t){try{const s=await async function({appConfig:e,heartbeatServiceProvider:t},{fid:s}){const a=lt(e),i=dt(e),n=t.getImmediate({optional:!0});if(n){const e=await n.getHeartbeatsHeader();e&&i.append("x-firebase-client",e)}const r={fid:s,authVersion:it,appId:e.appId,sdkVersion:at},o={method:"POST",headers:i,body:JSON.stringify(r)},l=await ut(()=>fetch(a,o));if(l.ok){const e=await l.json();return{fid:e.fid||s,registrationStatus:2,refreshToken:e.refreshToken,authToken:ct(e.authToken)}}throw await ht("Create Installation",l)}(e,t);return At(e.appConfig,s)}catch(s){throw ot(s)&&409===s.customData.serverCode?await kt(e.appConfig):await At(e.appConfig,{fid:t.fid,registrationStatus:0}),s}}(e,s);return{installationEntry:s,registrationPromise:a}}return 1===t.registrationStatus?{installationEntry:t,registrationPromise:It(e)}:{installationEntry:t}}(e,a);return t=i.registrationPromise,i.installationEntry});return""===s.fid?{installationEntry:await t}:{installationEntry:s,registrationPromise:t}}async function It(e){let t=await Pt(e.appConfig);for(;1===t.registrationStatus;)await mt(100),t=await Pt(e.appConfig);if(0===t.registrationStatus){const{installationEntry:t,registrationPromise:s}=await Dt(e);return s||t}return t}function Pt(e){return Nt(e,e=>{if(!e)throw rt.create("installation-not-found");return Ft(e)})}function Ft(e){return 1===(t=e).registrationStatus&&t.registrationTime+stfetch(a,o));if(l.ok){return ct(await l.json())}throw await ht("Generate Auth Token",l)}async function xt(e,t=!1){let s;const a=await Nt(e.appConfig,a=>{if(!Lt(a))throw rt.create("not-registered");const i=a.authToken;if(!t&&function(e){return 2===e.requestStatus&&!function(e){const t=Date.now();return t{if(!Lt(e))throw rt.create("not-registered");const t=e.authToken;return 1===(s=t).requestStatus&&s.requestTime+st{const t=je(e.getProvider("app").getImmediate(),Bt).getImmediate();return{getId:()=>async function(e){const t=e,{installationEntry:s,registrationPromise:a}=await Dt(t);return a?a.catch(console.error):xt(t).catch(console.error),s.fid}(t),getToken:e=>Ot(t,e)}};Oe(new k(Bt,e=>{const t=e.getProvider("app").getImmediate(),s=function(e){if(!e||!e.options)throw jt("App Configuration");if(!e.name)throw jt("App Name");const t=["projectId","apiKey","appId"];for(const s of t)if(!e.options[s])throw jt(s);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}}(t);return{app:t,appConfig:s,heartbeatServiceProvider:je(t,"heartbeat"),_delete:()=>Promise.resolve()}},"PUBLIC")),Oe(new k("installations-internal",qt,"PRIVATE")),Ve(et,tt),Ve(et,tt,"esm2017");const zt="BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4",Vt="google.c.a.c_id",Ht=1e4;var Wt,Kt;function $t(e){const t=new Uint8Array(e);return btoa(String.fromCharCode(...t)).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function Gt(e){const t=(e+"=".repeat((4-e.length%4)%4)).replace(/\-/g,"+").replace(/_/g,"/"),s=atob(t),a=new Uint8Array(s.length);for(let e=0;e{if(0===t)e.createObjectStore(Xt)}})),Jt}async function es(e){const t=ss(e),s=await Zt(),a=await s.transaction(Xt).objectStore(Xt).get(t);if(a)return a;{const t=await async function(e){if("databases"in indexedDB){const e=(await indexedDB.databases()).map(e=>e.name);if(!e.includes(Qt))return null}let t=null;return(await Y(Qt,5,{upgrade:async(s,a,i,n)=>{var r;if(a<2)return;if(!s.objectStoreNames.contains(Yt))return;const o=n.objectStore(Yt),l=await o.index("fcmSenderId").get(e);if(await o.clear(),l)if(2===a){const e=l;if(!e.auth||!e.p256dh||!e.endpoint)return;t={token:e.fcmToken,createTime:null!==(r=e.createTime)&&void 0!==r?r:Date.now(),subscriptionOptions:{auth:e.auth,p256dh:e.p256dh,endpoint:e.endpoint,swScope:e.swScope,vapidKey:"string"==typeof e.vapidKey?e.vapidKey:$t(e.vapidKey)}}}else if(3===a){const e=l;t={token:e.fcmToken,createTime:e.createTime,subscriptionOptions:{auth:$t(e.auth),p256dh:$t(e.p256dh),endpoint:e.endpoint,swScope:e.swScope,vapidKey:$t(e.vapidKey)}}}else if(4===a){const e=l;t={token:e.fcmToken,createTime:e.createTime,subscriptionOptions:{auth:$t(e.auth),p256dh:$t(e.p256dh),endpoint:e.endpoint,swScope:e.swScope,vapidKey:$t(e.vapidKey)}}}}})).close(),await X(Qt),await X("fcm_vapid_details_db"),await X("undefined"),function(e){if(!e||!e.subscriptionOptions)return!1;const{subscriptionOptions:t}=e;return"number"==typeof e.createTime&&e.createTime>0&&"string"==typeof e.token&&e.token.length>0&&"string"==typeof t.auth&&t.auth.length>0&&"string"==typeof t.p256dh&&t.p256dh.length>0&&"string"==typeof t.endpoint&&t.endpoint.length>0&&"string"==typeof t.swScope&&t.swScope.length>0&&"string"==typeof t.vapidKey&&t.vapidKey.length>0}(t)?t:null}(e.appConfig.senderId);if(t)return await ts(e,t),t}}async function ts(e,t){const s=ss(e),a=(await Zt()).transaction(Xt,"readwrite");return await a.objectStore(Xt).put(t,s),await a.done,t}function ss({appConfig:e}){return e.appId}const as=new S("messaging","Messaging",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"only-available-in-window":"This method is available in a Window context.","only-available-in-sw":"This method is available in a service worker context.","permission-default":"The notification permission was not granted and dismissed instead.","permission-blocked":"The notification permission was not granted and blocked instead.","unsupported-browser":"This browser doesn't support the API's required to use the Firebase SDK.","indexed-db-unsupported":"This browser doesn't support indexedDb.open() (ex. Safari iFrame, Firefox Private Browsing, etc)","failed-service-worker-registration":"We are unable to register the default service worker. {$browserErrorMessage}","token-subscribe-failed":"A problem occurred while subscribing the user to FCM: {$errorInfo}","token-subscribe-no-token":"FCM returned no token when subscribing the user to push.","token-unsubscribe-failed":"A problem occurred while unsubscribing the user from FCM: {$errorInfo}","token-update-failed":"A problem occurred while updating the user from FCM: {$errorInfo}","token-update-no-token":"FCM returned no token when updating the user to push.","use-sw-after-get-token":"The useServiceWorker() method may only be called once and must be called before calling getToken() to ensure your service worker is used.","invalid-sw-registration":"The input to useServiceWorker() must be a ServiceWorkerRegistration.","invalid-bg-handler":"The input to setBackgroundMessageHandler() must be a function.","invalid-vapid-key":"The public VAPID key must be a string.","use-vapid-key-after-get-token":"The usePublicVapidKey() method may only be called once and must be called before calling getToken() to ensure your VAPID key is used."});async function is(e,t){const s={method:"DELETE",headers:await rs(e)};try{const a=await fetch(`${ns(e.appConfig)}/${t}`,s),i=await a.json();if(i.error){const e=i.error.message;throw as.create("token-unsubscribe-failed",{errorInfo:e})}}catch(e){throw as.create("token-unsubscribe-failed",{errorInfo:null==e?void 0:e.toString()})}}function ns({projectId:e}){return`https://fcmregistrations.googleapis.com/v1/projects/${e}/registrations`}async function rs({appConfig:e,installations:t}){const s=await t.getToken();return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e.apiKey,"x-goog-firebase-installations-auth":`FIS ${s}`})}function os({p256dh:e,auth:t,endpoint:s,vapidKey:a}){const i={web:{endpoint:s,auth:t,p256dh:e}};return a!==zt&&(i.web.applicationPubKey=a),i}async function ls(e){const t=await async function(e,t){const s=await e.pushManager.getSubscription();if(s)return s;return e.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:Gt(t)})}(e.swRegistration,e.vapidKey),s={vapidKey:e.vapidKey,swScope:e.swRegistration.scope,endpoint:t.endpoint,auth:$t(t.getKey("auth")),p256dh:$t(t.getKey("p256dh"))},a=await es(e.firebaseDependencies);if(a){if(function(e,t){const s=t.vapidKey===e.vapidKey,a=t.endpoint===e.endpoint,i=t.auth===e.auth,n=t.p256dh===e.p256dh;return s&&a&&i&&n}(a.subscriptionOptions,s))return Date.now()>=a.createTime+6048e5?async function(e,t){try{const s=await async function(e,t){const s=await rs(e),a=os(t.subscriptionOptions),i={method:"PATCH",headers:s,body:JSON.stringify(a)};let n;try{const s=await fetch(`${ns(e.appConfig)}/${t.token}`,i);n=await s.json()}catch(e){throw as.create("token-update-failed",{errorInfo:null==e?void 0:e.toString()})}if(n.error){const e=n.error.message;throw as.create("token-update-failed",{errorInfo:e})}if(!n.token)throw as.create("token-update-no-token");return n.token}(e.firebaseDependencies,t),a=Object.assign(Object.assign({},t),{token:s,createTime:Date.now()});return await ts(e.firebaseDependencies,a),s}catch(e){throw e}}(e,{token:a.token,createTime:Date.now(),subscriptionOptions:s}):a.token;try{await is(e.firebaseDependencies,a.token)}catch(e){console.warn(e)}return hs(e.firebaseDependencies,s)}return hs(e.firebaseDependencies,s)}async function cs(e){const t=await es(e.firebaseDependencies);t&&(await is(e.firebaseDependencies,t.token),await async function(e){const t=ss(e),s=(await Zt()).transaction(Xt,"readwrite");await s.objectStore(Xt).delete(t),await s.done}(e.firebaseDependencies));const s=await e.swRegistration.pushManager.getSubscription();return!s||s.unsubscribe()}async function hs(e,t){const s=await async function(e,t){const s=await rs(e),a=os(t),i={method:"POST",headers:s,body:JSON.stringify(a)};let n;try{const t=await fetch(ns(e.appConfig),i);n=await t.json()}catch(e){throw as.create("token-subscribe-failed",{errorInfo:null==e?void 0:e.toString()})}if(n.error){const e=n.error.message;throw as.create("token-subscribe-failed",{errorInfo:e})}if(!n.token)throw as.create("token-subscribe-no-token");return n.token}(e,t),a={token:s,createTime:Date.now(),subscriptionOptions:t};return await ts(e,a),a.token}function ds(e){const t={from:e.from,collapseKey:e.collapse_key,messageId:e.fcmMessageId};return function(e,t){if(!t.notification)return;e.notification={};const s=t.notification.title;s&&(e.notification.title=s);const a=t.notification.body;a&&(e.notification.body=a);const i=t.notification.image;i&&(e.notification.image=i);const n=t.notification.icon;n&&(e.notification.icon=n)}(t,e),function(e,t){if(!t.data)return;e.data=t.data}(t,e),function(e,t){var s,a,i,n,r;if(!t.fcmOptions&&!(null===(s=t.notification)||void 0===s?void 0:s.click_action))return;e.fcmOptions={};const o=null!==(i=null===(a=t.fcmOptions)||void 0===a?void 0:a.link)&&void 0!==i?i:null===(n=t.notification)||void 0===n?void 0:n.click_action;o&&(e.fcmOptions.link=o);const l=null===(r=t.fcmOptions)||void 0===r?void 0:r.analytics_label;l&&(e.fcmOptions.analyticsLabel=l)}(t,e),t}function ps(e){return as.create("missing-app-config-values",{valueName:e})}!function(e,t){const s=[];for(let a=0;a{}),await async function(e){return new Promise((t,s)=>{const a=setTimeout(()=>s(new Error("Service worker not registered after 10000 ms")),Ht),i=e.installing||e.waiting;e.active?(clearTimeout(a),t()):i?i.onstatechange=e=>{var s;"activated"===(null===(s=e.target)||void 0===s?void 0:s.state)&&(i.onstatechange=null,clearTimeout(a),t())}:(clearTimeout(a),s(new Error("No incoming service worker found.")))})}(e.swRegistration)}catch(e){throw as.create("failed-service-worker-registration",{browserErrorMessage:null==e?void 0:e.message})}}async function gs(e,t){if(!navigator)throw as.create("only-available-in-window");if("default"===Notification.permission&&await Notification.requestPermission(),"granted"!==Notification.permission)throw as.create("permission-blocked");return await async function(e,t){t?e.vapidKey=t:e.vapidKey||(e.vapidKey=zt)}(e,null==t?void 0:t.vapidKey),await async function(e,t){if(t||e.swRegistration||await ms(e),t||!e.swRegistration){if(!(t instanceof ServiceWorkerRegistration))throw as.create("invalid-sw-registration");e.swRegistration=t}}(e,null==t?void 0:t.serviceWorkerRegistration),ls(e)}async function fs(e,t,s){const a=function(e){switch(e){case Kt.NOTIFICATION_CLICKED:return"notification_open";case Kt.PUSH_RECEIVED:return"notification_foreground";default:throw new Error}}(t);(await e.firebaseDependencies.analyticsProvider.get()).logEvent(a,{message_id:s[Vt],message_name:s["google.c.a.c_l"],message_time:s["google.c.a.ts"],message_device_time:Math.floor(Date.now()/1e3)})}async function vs(e,t){const s=t.data;if(!s.isFirebaseMessaging)return;e.onMessageHandler&&s.messageType===Kt.PUSH_RECEIVED&&("function"==typeof e.onMessageHandler?e.onMessageHandler(ds(s)):e.onMessageHandler.next(ds(s)));const a=s.data;var i;"object"==typeof(i=a)&&i&&Vt in i&&"1"===a["google.c.a.e"]&&await fs(e,s.messageType,a)}const bs="@firebase/messaging",Es="0.12.22",ys=e=>{const t=e.getProvider("messaging").getImmediate();return{getToken:e=>gs(t,e)}};async function ws(){try{await w()}catch(e){return!1}return"undefined"!=typeof window&&y()&&!("undefined"==typeof navigator||!navigator.cookieEnabled)&&"serviceWorker"in navigator&&"PushManager"in window&&"Notification"in window&&"fetch"in window&&ServiceWorkerRegistration.prototype.hasOwnProperty("showNotification")&&PushSubscription.prototype.hasOwnProperty("getKey")}function Cs(e=function(e=Pe){const t=Re.get(e);if(!t&&e===Pe&&b())return ze();if(!t)throw Be.create("no-app",{appName:e});return t}()){return ws().then(e=>{if(!e)throw as.create("unsupported-browser")},e=>{throw as.create("indexed-db-unsupported")}),je(A(e),"messaging").getImmediate()}async function Ss(e,t){return gs(e=A(e),t)}function Ms(e){return async function(e){if(!navigator)throw as.create("only-available-in-window");return e.swRegistration||await ms(e),cs(e)}(e=A(e))}function _s(e,t){return function(e,t){if(!navigator)throw as.create("only-available-in-window");return e.onMessageHandler=t,()=>{e.onMessageHandler=null}}(e=A(e),t)}Oe(new k("messaging",e=>{const t=new us(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),e.getProvider("analytics-internal"));return navigator.serviceWorker.addEventListener("message",e=>vs(t,e)),t},"PUBLIC")),Oe(new k("messaging-internal",ys,"PRIVATE")),Ve(bs,Es),Ve(bs,Es,"esm2017");var Ts=r(4532);class As extends l().PureComponent{render(){return l().createElement("div",{className:"alert-container"},l().createElement("div",{className:"alert"},l().createElement("div",{className:"title"},this.props.title),l().createElement("div",{className:"content"},this.props.content),l().createElement("div",{className:"dialog-buttons"},this.props.onReject?l().createElement("button",{className:"outline",onClick:this.props.onReject},this.props.reject||l().createElement(h.FormattedMessage,{id:"button_cancel",defaultMessage:[{type:0,value:"Cancel"}]})):null,this.props.onConfirm?l().createElement("button",{className:"primary",onClick:this.props.onConfirm},this.props.confirm||l().createElement(h.FormattedMessage,{id:"button_ok",defaultMessage:[{type:0,value:"OK"}]})):null)))}}var ks=r(9027);const Ns=(0,h.defineMessages)({info:{id:"menu_item_info",defaultMessage:[{type:0,value:"Info"}]},clear_messages:{id:"menu_item_clear_messages",defaultMessage:[{type:0,value:"Clear messages"}]},clear_for_all:{id:"menu_item_clear_messages_for_all",defaultMessage:[{type:0,value:"Clear for All"}]},delete:{id:"menu_item_delete",defaultMessage:[{type:0,value:"Delete"}]},delete_for_all:{id:"menu_item_delete_for_all",defaultMessage:[{type:0,value:"Delete for All"}]},send_retry:{id:"menu_item_send_retry",defaultMessage:[{type:0,value:"Retry"}]},mute:{id:"menu_item_mute",defaultMessage:[{type:0,value:"Mute"}]},unmute:{id:"menu_item_unmute",defaultMessage:[{type:0,value:"Unmute"}]},reply:{id:"menu_item_reply",defaultMessage:[{type:0,value:"Reply"}]},forward:{id:"menu_item_forward",defaultMessage:[{type:0,value:"Forward"}]},edit:{id:"menu_item_edit",defaultMessage:[{type:0,value:"Edit"}]},topic_delete:{id:"menu_item_delete_topic",defaultMessage:[{type:0,value:"Delete"}]},topic_delete_warning:{id:"topic_delete_warning",defaultMessage:[{type:0,value:"Are you sure you want to delete this conversation? It cannot be undone."}]},delete_messages_warning:{id:"delete_messages_warning",defaultMessage:[{type:0,value:"Are you sure you want to delete all messages for everyone? It cannot be undone."}]},unblock:{id:"menu_item_unblock",defaultMessage:[{type:0,value:"Unblock"}]},block:{id:"menu_item_block",defaultMessage:[{type:0,value:"Block"}]},topic_block_warning:{id:"topic_block_warning",defaultMessage:[{type:0,value:"Are you sure you want to block this conversation?"}]},member_delete:{id:"menu_item_member_delete",defaultMessage:[{type:0,value:"Remove"}]},archive:{id:"menu_item_archive_topic",defaultMessage:[{type:0,value:"Archive"}]},unarchive:{id:"menu_item_restore_topic",defaultMessage:[{type:0,value:"Restore"}]},edit_permissions:{id:"menu_item_edit_permissions",defaultMessage:[{type:0,value:"Edit permissions"}]},clear_messages_warning:{id:"clear_messages_warning",defaultMessage:[{type:0,value:"Are you sure you want to clear all messages? It cannot be undone."}]},pin_message:{id:"pin_message",defaultMessage:[{type:0,value:"Pin"}]},unpin_message:{id:"unpin_message",defaultMessage:[{type:0,value:"Unpin"}]},pin_chat:{id:"pin_chat",defaultMessage:[{type:0,value:"Pin"}]},unpin_chat:{id:"unpin_chat",defaultMessage:[{type:0,value:"Unpin"}]}});class Ds extends l().Component{constructor(e){super(e),this.selfRef=l().createRef();const{formatMessage:t}=e.intl;this.handlePageClick=this.handlePageClick.bind(this),this.handleEscapeKey=this.handleEscapeKey.bind(this),this.handleClick=this.handleClick.bind(this),this.MenuItems={topic_info:{id:"topic_info",title:t(Ns.info),handler:null},messages_clear:{id:"messages_clear",title:t(Ns.clear_messages),handler:(s,a)=>e.onShowAlert(s.topicTitle||t(Ns.clear_messages),t(Ns.clear_messages_warning),e=>{this.deleteMessages(!0,!1,s,a)},null,!0,null)},messages_clear_hard:{id:"messages_clear_hard",title:t(Ns.clear_for_all),handler:(s,a)=>e.onShowAlert(s.topicTitle||t(Ns.clear_for_all),t(Ns.delete_messages_warning),e=>this.deleteMessages(!0,!0,s,a),null,!0,null)},message_delete:{id:"message_delete",title:t(Ns.delete),handler:(e,t)=>this.deleteMessages(!1,!1,e,t)},message_delete_hard:{id:"message_delete_hard",title:t(Ns.delete_for_all),handler:(e,t)=>this.deleteMessages(!1,!0,e,t)},message_delete_generic:{id:"message_delete_generic",title:t(Ns.delete),handler:(e,t)=>this.deleteMessages(!1,!0,e,t)},menu_item_send_retry:{id:"menu_item_send_retry",title:t(Ns.send_retry),handler:(e,t)=>this.retryMessage(e,t)},menu_item_reply:{id:"menu_item_reply",title:t(Ns.reply),handler:(e,t)=>this.replyToMessage(e,t)},menu_item_forward:{id:"menu_item_forward",title:t(Ns.forward),handler:e=>{}},menu_item_edit:{id:"menu_item_edit",title:t(Ns.edit),handler:(e,t)=>this.editMessage(e,t)},menu_item_pin:{id:"menu_item_pin",title:t(Ns.pin_message),handler:(e,t)=>this.pinMessage(!0,e,t)},menu_item_unpin:{id:"menu_item_unpin",title:t(Ns.unpin_message),handler:(e,t)=>this.pinMessage(!1,e,t)},topic_unmute:{id:"topic_unmute",title:t(Ns.unmute),handler:this.topicPermissionSetter.bind(this,"+P")},topic_mute:{id:"topic_mute",title:t(Ns.mute),handler:this.topicPermissionSetter.bind(this,"-P")},topic_unblock:{id:"topic_unblock",title:t(Ns.unblock),handler:this.topicPermissionSetter.bind(this,"+JP")},topic_block:{id:"topic_block",title:t(Ns.block),handler:(s,a)=>e.onShowAlert(s.topicTitle||t(Ns.block),t(Ns.topic_block_warning),e=>this.topicPermissionSetter("-JP",s,a).then(e=>(this.props.onTopicRemoved(s.topicName),e)),null,!0,null)},topic_delete:{id:"topic_delete",title:t(Ns.topic_delete),handler:(s,a)=>e.onShowAlert(s.topicTitle||t(Ns.topic_delete),t(Ns.topic_delete_warning),e=>{const t=this.props.tinode.getTopic(s.topicName);if(t)return t.delTopic(!0).catch(e=>{a&&a(e.message,"err")});console.warn("Topic not found: ",s.topicName)},null,!0,null)},topic_archive:{id:"topic_archive",title:t(Ns.archive),handler:(e,t)=>{const s=this.props.tinode.getTopic(e.topicName);if(s)return s.archive(!0).catch(e=>{t&&t(e.message,"err")});console.warn("Topic not found: ",e.topicName)}},topic_restore:{id:"topic_restore",title:t(Ns.unarchive),handler:(e,t)=>{const s=this.props.tinode.getTopic(e.topicName);if(s)return s.archive(!1).catch(e=>{t&&t(e.message,"err")});console.warn("Topic not found: ",e.topicName)}},topic_pin:{id:"topic_pin",title:t(Ns.pin_chat),handler:(e,t)=>{const s=this.props.tinode.getMeTopic();if(s)return s.pinTopic(e.topicName,!0).catch(e=>{t&&t(e.message,"err")});console.warn("'me' topic not found")}},topic_unpin:{id:"topic_unpin",title:t(Ns.unpin_chat),handler:(e,t)=>{const s=this.props.tinode.getMeTopic();if(s)return s.pinTopic(e.topicName,!1).catch(e=>{t&&t(e.message,"err")});console.warn("'me' topic not found")}},permissions:{id:"permissions",title:t(Ns.edit_permissions),handler:null},member_delete:{id:"member_delete",title:t(Ns.member_delete),handler:(e,t)=>{const s=this.props.tinode.getTopic(e.topicName);if(s&&e.user)return s.delSubscription(e.user).catch(e=>{t&&t(e.message,"err")});console.warn("Topic or user not found: '"+e.topicName+"', '"+e.user+"'")}},member_mute:{id:"member_mute",title:t(Ns.mute),handler:this.topicPermissionSetter.bind(this,"-P")},member_unmute:{id:"member_unmute",title:t(Ns.unmute),handler:this.topicPermissionSetter.bind(this,"+P")},member_block:{id:"member_block",title:t(Ns.block),handler:this.topicPermissionSetter.bind(this,"-JP")},member_unblock:{id:"member_unblock",title:t(Ns.unblock),handler:this.topicPermissionSetter.bind(this,"+JP")}}}componentDidMount(){document.addEventListener("mousedown",this.handlePageClick,!1),document.addEventListener("keyup",this.handleEscapeKey,!1)}componentWillUnmount(){document.removeEventListener("mousedown",this.handlePageClick,!1),document.removeEventListener("keyup",this.handleEscapeKey,!1)}handlePageClick(e){this.selfRef.current.contains(e.target)||(e.preventDefault(),e.stopPropagation(),this.props.hide())}handleEscapeKey(e){27===e.keyCode&&this.props.hide()}handleClick(e){e.preventDefault(),e.stopPropagation(),this.props.hide();let 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.error("Invalid menu item ID",e.currentTarget.dataset.id)}deleteMessages(e,t,s,a){const i=this.props.tinode.getTopic(s.topicName);if(!i)return void console.warn("Topic not found: ",s.topicName);if(!e&&i.cancelSend(s.seq))return;return(e?i.delMessagesAll(t):s.replace>0?i.delMessagesEdits(s.replace,t):i.delMessagesList([s.seq],t)).catch(e=>{a&&a(e.message,"err")})}retryMessage(e,t){const s=this.props.tinode.getTopic(e.topicName);if(!s||!s.flushMessage(e.seq))return;const a=s.createMessage(e.content,!1);return s.publishDraft(a).catch(e=>{t&&t(e.message,"err")})}pinMessage(e,t,s){const a=this.props.tinode.getTopic(t.topicName);a&&a.pinMessage(t.seq,e).catch(e=>s?s(e.message,"err"):null)}topicPermissionSetter(e,t,s){const a=this.props.tinode.getTopic(t.topicName);if(!a)return void console.warn("Topic not found",t.topicName);let i=a.updateMode(t.user,e);return s&&(i=i.catch(e=>s(e.message,"err"))),i}replyToMessage(e,t){e.pickReply(e.seq,e.content,e.userFrom,e.userName,t)}editMessage(e,t){e.editMessage(e.replace||e.seq,e.content,t)}render(){const e=[];let t=0;this.props.items.forEach(s=>{if("string"==typeof s&&(s=this.MenuItems[s]),s&&s.title){const a=s.disabled?"disabled":void 0;e.push("-"==s.title?l().createElement("li",{className:"separator",key:t}):l().createElement("li",{className:a,onClick:this.handleClick,"data-id":t,key:t},s.title))}t++});const s=12*ks.JS,a=ks.JS*(.7+2.5*e.length),i={left:(this.props.bounds.right-this.props.clickAt.x0}),this.props.onSearchContacts(t.length>0?t:Ts.Tinode.DEL_CHAR)}handleClear(e){e.preventDefault(),this.state.edited&&this.props.onSearchContacts(Ts.Tinode.DEL_CHAR),this.setState({search:"",edited:!1})}handleKeyDown(e){"Enter"===e.key?this.handleSearch(e):"Escape"===e.key&&this.handleClear()}render(){return l().createElement("div",{className:"panel-form"},l().createElement("div",{className:"panel-form-row"},l().createElement("i",{className:"material-icons search"},"search"),l().createElement("input",{className:"search",type:"text",placeholder:this.props.placeholder,value:this.state.search,onChange:this.handleSearchChange,onKeyDown:this.handleKeyDown,required:!0,autoFocus:!0}),this.state.search?l().createElement("a",{href:"#",onClick:this.handleClear},l().createElement("i",{className:"material-icons"},"highlight_off")):l().createElement("span",null,l().createElement("i",{className:"material-icons"}," "))))}}class Rs extends l().Component{constructor(e){super(e),this.state={query:null},this.handleEscapeKey=this.handleEscapeKey.bind(this),this.handleClose=this.handleClose.bind(this),this.handleSearchContacts=this.handleSearchContacts.bind(this),this.handleContactSelected=this.handleContactSelected.bind(this)}componentDidMount(){this.props.onInitFind()}handleEscapeKey(e){27===e.keyCode&&this.props.hide(!1)}handleClose(e){e.preventDefault(),this.props.hide(!1)}handleSearchContacts(e){this.setState({query:Ts.Tinode.isNullValue(e)?null:e}),this.props.onSearchContacts(e)}handleContactSelected(e){this.props.onTopicSelected(e),this.props.hide(!0)}render(){let e=null!=this.state.query?this.props.searchResults:this.props.contacts;return e=e.filter(e=>e.name!=this.props.topicSelected&&e.acs.isJoiner()&&e.acs.isWriter()),l().createElement("div",{className:"alert-container"},l().createElement("div",{className:"forward-dialog"},l().createElement("div",{className:"title with-control"},l().createElement("div",null,l().createElement(h.FormattedMessage,{id:"forward_to",defaultMessage:[{type:0,value:"Forward to"}],desription:"Title of the contact selector dialog when forwarding a message"})),l().createElement("div",null,l().createElement("a",{href:"#",onClick:this.handleClose},l().createElement("i",{className:"material-icons"},"close")))),l().createElement(h.FormattedMessage,{id:"forward_to_search_placeholder",defaultMessage:[{type:0,value:"Search contacts"}]},e=>l().createElement(Fs,{placeholder:e,onSearchContacts:this.handleSearchContacts})),l().createElement(h.FormattedMessage,{id:"search_no_results",defaultMessage:[{type:0,value:"Search returned no results"}]},t=>l().createElement(Ps.A,{tinode:this.props.tinode,contacts:e,myUserId:this.props.myUserId,emptyListMessage:t,showOnline:!1,showUnread:!1,showContextMenu:!1,onTopicSelected:this.handleContactSelected}))))}}var xs=r(635),Us=r(6904);const Ls="started";var Os=r(6110),js=r(8589);const Bs=new Audio("audio/call-in.m4a");class qs extends l().Component{constructor(e){super(e),this.state={topic:null,fullName:void 0,avatar:null,trustedBadges:[],previousMetaDesc:void 0},this.resetDesc=this.resetDesc.bind(this),this.onMetaDesc=this.onMetaDesc.bind(this),this.handleRejectCall=this.handleRejectCall.bind(this),this.handleAcceptCall=this.handleAcceptCall.bind(this),this.ringTimer=null}componentDidMount(){const e=this.props.tinode.getTopic(this.props.topic);e&&(this.resetDesc(e),2==this.props.callState&&(Bs.play().catch(e=>{}),this.ringTimer=setInterval(e=>{Bs.play().catch(e=>{})},2e3),this.props.onRinging(this.props.topic,this.props.seq)))}componentDidUpdate(e){const t=this.props.tinode.getTopic(e.topic);t&&(this.onMetaDesc!=t.onMetaDesc&&(this.previousMetaDesc=t.onMetaDesc,t.onMetaDesc=this.onMetaDesc),this.state.topic!=e.topic&&(this.setState({topic:e.topic}),this.resetDesc(t,e)))}componentWillUnmount(){null!=this.ringTimer&&(clearInterval(this.ringTimer),Bs.pause());const e=this.props.tinode.getTopic(this.props.topic);e&&(this.setState({topic:null}),e.onMetaDesc=this.previousMetaDesc)}resetDesc(e){const t=[];if(e.trusted)for(const[s,a]of Object.entries(e.trusted))a&&t.push(s);this.setState({fullName:(0,js.W5)(e.public?e.public.fn:void 0,ks.tS),avatar:(0,Os.to)(e.public?e.public.photo:null),trustedBadges:t})}onMetaDesc(e){const t=this.props.tinode.getTopic(this.props.topic);t&&(this.resetDesc(t),this.previousMetaDesc&&this.previousMetaDesc!=this.onMetaDesc&&this.previousMetaDesc(e))}handleAcceptCall(){this.props.onAcceptCall(this.props.topic)}handleRejectCall(){this.props.onReject(this.props.topic,this.props.seq),this.props.onClose()}render(){return l().createElement("div",{className:"alert-container"},l().createElement("div",{className:"incoming-call"},l().createElement("div",{className:"caller-card incoming pulse"},l().createElement("div",{className:"avatar-box"},l().createElement(Us.A,{tinode:this.props.tinode,avatar:this.state.avatar||!0,topic:this.props.topic,title:this.state.fullName})),l().createElement("div",{className:"caller-name"},(0,js.W5)(this.state.fullName,ks.mu),l().createElement(xs.A,{short:!0,trustedBadges:this.state.trustedBadges}))),l().createElement("div",{id:"controls"},2==this.props.callState?l().createElement(l().Fragment,null,l().createElement("button",{className:"danger",onClick:this.handleRejectCall},l().createElement("i",{className:"material-icons"},"call_end")),l().createElement("button",{className:"positive",onClick:this.handleAcceptCall},l().createElement("i",{className:"material-icons"},"call"))):null)))}}const zs=new Audio("audio/call-out.m4a");zs.loop=!0;const Vs=new Audio("audio/call-end.m4a");Vs.loop=!0;const Hs=new Audio("audio/dialing.m4a"),Ws="video:muted",Ks="video:unmuted",$s=(0,h.defineMessages)({already_in_call:{id:"already_in_call",defaultMessage:[{type:0,value:"You already in an ongoing call!"}]}});class Gs extends l().PureComponent{constructor(e){super(e),this.state={localStream:void 0,remoteStream:void 0,pc:void 0,dataChannel:void 0,previousOnInfo:void 0,waitingForPeer:!1,callInitialSetupComplete:!1,audioOnly:e.callAudioOnly,videoToggleInProgress:!1,remoteVideoLive:!1},this.localStreamConstraints={audio:!0,video:!e.callAudioOnly},this.isOutgoingCall=1==e.callState,this.containerRef=l().createRef(),this.localRef=l().createRef(),this.remoteRef=l().createRef(),this.remoteIceCandidatesCache=[],this.onInfo=this.onInfo.bind(this),this.start=this.start.bind(this),this.stop=this.stop.bind(this),this.createPeerConnection=this.createPeerConnection.bind(this),this.canSendOffer=this.canSendOffer.bind(this),this.drainRemoteIceCandidatesCache=this.drainRemoteIceCandidatesCache.bind(this),this.handleNegotiationNeededEvent=this.handleNegotiationNeededEvent.bind(this),this.handleICECandidateEvent=this.handleICECandidateEvent.bind(this),this.handleNewICECandidateMsg=this.handleNewICECandidateMsg.bind(this),this.handleICEConnectionStateChangeEvent=this.handleICEConnectionStateChangeEvent.bind(this),this.handleSignalingStateChangeEvent=this.handleSignalingStateChangeEvent.bind(this),this.handleICEGatheringStateChangeEvent=this.handleICEGatheringStateChangeEvent.bind(this),this.handleIceCandidateErrorEvent=this.handleIceCandidateErrorEvent.bind(this),this.handleTrackEvent=this.handleTrackEvent.bind(this),this.handleVideoOfferMsg=this.handleVideoOfferMsg.bind(this),this.handleVideoAnswerMsg=this.handleVideoAnswerMsg.bind(this),this.handleNewICECandidateMsg=this.handleNewICECandidateMsg.bind(this),this.reportError=this.reportError.bind(this),this.handleGetUserMediaError=this.handleGetUserMediaError.bind(this),this.stopTracks=this.stopTracks.bind(this),this.disconnectMedia=this.disconnectMedia.bind(this),this.handleCloseClick=this.handleCloseClick.bind(this),this.handleToggleCameraClick=this.handleToggleCameraClick.bind(this),this.handleToggleMicClick=this.handleToggleMicClick.bind(this),this.handleRemoteHangup=this.handleRemoteHangup.bind(this),this.handleVideoCallAccepted=this.handleVideoCallAccepted.bind(this),this.muteVideo=this.muteVideo.bind(this),this.unmuteVideo=this.unmuteVideo.bind(this),this.emptyVideoTrack=this.emptyVideoTrack.bind(this),this.handleDataChannelEvent=this.handleDataChannelEvent.bind(this),this.handleDataChannelError=this.handleDataChannelError.bind(this),this.handleDataChannelMessage=this.handleDataChannelMessage.bind(this),this.handleDataChannelOpen=this.handleDataChannelOpen.bind(this),this.handleDataChannelClose=this.handleDataChannelClose.bind(this),this.bounds={},this.dragStart=e=>{if(e.target.classList.contains("draggable")&&!window.matchMedia("(width<=640px)")&&this.props.minimized&&this.containerRef){e.stopPropagation(),this.containerRef.current.setPointerCapture(e.pointerId),this.containerRef.current.style.cursor="grabbing",this.bounds.left=this.containerRef.current.offsetLeft,this.bounds.top=this.containerRef.current.offsetTop,this.bounds.width=this.containerRef.current.offsetWidth,this.bounds.height=this.containerRef.current.offsetHeight;const t=this.containerRef.current.offsetParent;this.bounds.maxX=t.offsetWidth,this.bounds.maxY=t.offsetHeight}},this.drag=e=>{e.stopPropagation();const t=this.containerRef.current;this.props.minimized&&this.containerRef&&t.hasPointerCapture(e.pointerId)&&(this.bounds.left=Math.min(Math.max(this.bounds.left+e.movementX,0),this.bounds.maxX-this.bounds.width),this.bounds.top=Math.min(Math.max(this.bounds.top+e.movementY,0),this.bounds.maxY-this.bounds.height),t.style.left=`${this.bounds.left}px`,t.style.top=`${this.bounds.top}px`)},this.dragEnd=e=>{e.stopPropagation(),this.props.minimized&&this.containerRef&&(this.containerRef.current.releasePointerCapture(e.pointerId),this.containerRef.current.style.cursor="grab")}}componentDidMount(){const e=this.props.tinode.getTopic(this.props.topic);this.previousOnInfo=e.onInfo,e.onInfo=this.onInfo,1!=this.props.callState&&3!=this.props.callState||!this.localRef.current||this.start(),this.containerRef&&(this.containerRef.current.addEventListener("pointerdown",this.dragStart),this.containerRef.current.addEventListener("pointermove",this.drag),this.containerRef.current.addEventListener("pointerup",this.dragEnd))}componentWillUnmount(){this.props.tinode.getTopic(this.props.topic).onInfo=this.previousOnInfo,this.stop(),this.containerRef&&(this.containerRef.current.removeEventListener("pointerdown",this.dragStart),this.containerRef.current.removeEventListener("pointermove",this.drag),this.containerRef.current.removeEventListener("pointerup",this.dragEnd))}handleVideoCallAccepted(e){zs.pause();const t=this.createPeerConnection(!0),s=this.state.localStream;s.getTracks().forEach(e=>{t.addTrack(e,s),"video"==e.kind&&this.state.audioOnly&&(e.enabled=!1,e.stop(),s.removeTrack(e))})}onInfo(e){if("call"==e.what)switch(e.event){case"accept":this.handleVideoCallAccepted(e);break;case"answer":this.handleVideoAnswerMsg(e);break;case"ice-candidate":this.handleNewICECandidateMsg(e);break;case"hang-up":this.handleRemoteHangup(e);break;case"offer":this.handleVideoOfferMsg(e);break;case"ringing":zs.play().catch(e=>{});break;default:console.warn("Unknown call event",e.event)}}emptyVideoTrack(){const e=Object.assign(document.createElement("canvas"),{width:640,height:480});e.getContext("2d").fillRect(0,0,640,480);const t=e.captureStream(0);return Object.assign(t.getVideoTracks()[0],{enabled:!1})}start(){this.state.localStream?this.props.onError(this.props.intl.formatMessage($s.already_in_call),"info"):3!=this.props.callState?navigator.mediaDevices.getUserMedia(this.localStreamConstraints).then(e=>{this.localStreamConstraints.video||e.addTrack(this.emptyVideoTrack()),this.setState({localStream:e,waitingForPeer:!0}),this.localRef.current.srcObject=e,Hs.play(),this.props.onInvite(this.props.topic,this.props.seq,this.props.callState,this.props.callAudioOnly)}).catch(this.handleGetUserMediaError):this.props.onInvite(this.props.topic,this.props.seq,3,this.props.callAudioOnly)}stop(){Vs.pause(),Vs.currentTime=0,zs.pause(),zs.currentTime=0,this.stopTracks(this.state.localStream),this.stopTracks(this.state.remoteStream),this.disconnectMedia(this.localRef.current),this.disconnectMedia(this.remoteRef.current),this.state.pc&&(this.state.pc.ontrack=null,this.state.pc.onremovetrack=null,this.state.pc.onremovestream=null,this.state.pc.onicecandidate=null,this.state.pc.oniceconnectionstatechange=null,this.state.pc.onsignalingstatechange=null,this.state.pc.onicegatheringstatechange=null,this.state.pc.onnegotiationneeded=null,this.state.pc.onicecandidateerror=null,this.state.pc.ondatachannel=null,!this.state.dataChannel||"open"!=this.state.dataChannel.readyState&&"connecting"!=this.state.dataChannel.readyState||this.state.dataChannel.close(),this.state.pc.close()),this.setState({pc:null,waitingForPeer:!1})}disconnectMedia(e){e&&(e.srcObject=null,e.src="")}stopTracks(e){if(!e)return;let t=e.getTracks();t&&t.forEach(e=>{e.stop(),e.enabled=!1})}handleDataChannelError(e){console.error("data channel error",e)}handleDataChannelMessage(e){switch(e.data){case Ws:this.setState({remoteVideoLive:!1},e=>{this.remoteRef.current.srcObject=this.state.remoteStream});break;case Ks:this.setState({remoteVideoLive:!0},e=>{this.remoteRef.current.srcObject=this.state.remoteStream})}}handleDataChannelOpen(e){this.state.audioOnly||e.target.send(Ks)}handleDataChannelClose(e){console.log("close data channel:",e)}handleDataChannelEvent(e){console.log("data channel event:",e);const t=e.channel;t.onerror=this.handleDataChannelError,t.onmessage=this.handleDataChannelMessage,t.onopen=this.handleDataChannelOpen,t.onclose=this.handleDataChannelClose,this.setState({dataChannel:t})}createPeerConnection(e){const t=this.props.tinode.getServerParam("iceServers",null),s=t?new RTCPeerConnection({iceServers:t}):new RTCPeerConnection;s.onicecandidate=this.handleICECandidateEvent,s.oniceconnectionstatechange=this.handleICEConnectionStateChangeEvent,s.onicegatheringstatechange=this.handleICEGatheringStateChangeEvent,s.onsignalingstatechange=this.handleSignalingStateChangeEvent,s.onnegotiationneeded=this.handleNegotiationNeededEvent,s.onicecandidateerror=this.handleIceCandidateErrorEvent,s.ontrack=this.handleTrackEvent,s.ondatachannel=this.handleDataChannelEvent;let a={pc:s,waitingForPeer:!1};if(e){const e=s.createDataChannel("events",{ordered:!0});e.onerror=this.handleDataChannelError,e.onmessage=this.handleDataChannelMessage,e.onopen=this.handleDataChannelOpen,e.onclose=this.handleDataChannelClose,a.dataChannel=e}return this.setState(a),s}handleVideoAnswerMsg(e){const t=new RTCSessionDescription(e.payload);this.state.pc.setRemoteDescription(t).then(e=>{this.setState({callInitialSetupComplete:!0},e=>this.drainRemoteIceCandidatesCache())}).catch(e=>this.reportError(e))}reportError(e){this.props.onError(e.message,"err")}canSendOffer(){return this.isOutgoingCall||this.state.callInitialSetupComplete}handleNegotiationNeededEvent(e){const t=e.target;this.canSendOffer()&&t.createOffer().then(e=>t.setLocalDescription(e)).then(e=>{this.props.onSendOffer(this.props.topic,this.props.seq,t.localDescription.toJSON())}).catch(e=>this.reportError(e))}handleIceCandidateErrorEvent(e){console.warn("ICE candidate error:",e)}handleICECandidateEvent(e){e.candidate&&this.props.onIceCandidate(this.props.topic,this.props.seq,e.candidate.toJSON())}handleNewICECandidateMsg(e){const t=new RTCIceCandidate(e.payload);this.state.callInitialSetupComplete?this.state.pc.addIceCandidate(t).catch(e=>{t.candidate&&this.reportError(e),console.warn("Error adding new ice candidate",t,e)}):this.remoteIceCandidatesCache.push(t)}drainRemoteIceCandidatesCache(){this.remoteIceCandidatesCache.forEach(e=>{this.state.pc.addIceCandidate(e).catch(t=>{e.candidate&&this.reportError(t),console.warn("Error adding cached ice candidate",e,t)})}),this.remoteIceCandidatesCache=[]}handleICEConnectionStateChangeEvent(e){switch(e.target.iceConnectionState){case"closed":case"failed":this.handleCloseClick()}}handleSignalingStateChangeEvent(e){"closed"==e.target.signalingState&&this.handleCloseClick()}handleICEGatheringStateChangeEvent(e){}handleTrackEvent(e){this.remoteRef.current.srcObject=e.streams[0],this.setState({remoteStream:e.streams[0]})}handleGetUserMediaError(e){switch(console.error("Error opening camera and/or microphone",e),e.name){case"NotFoundError":default:this.reportError(e);case"SecurityError":case"PermissionDeniedError":}this.handleCloseClick()}handleVideoOfferMsg(e){let t=null;const s=this.state.pc?this.state.pc:this.createPeerConnection(!1),a=new RTCSessionDescription(e.payload);s.setRemoteDescription(a).then(e=>navigator.mediaDevices.getUserMedia(this.localStreamConstraints)).then(e=>{let a;this.localStreamConstraints.video||(a=this.emptyVideoTrack(),e.addTrack(a)),t=e,this.localRef.current.srcObject=e,this.setState({localStream:e}),t.getTracks().forEach(e=>{s.addTrack(e,t)}),a&&(a.enabled=!1,a.stop(),e.removeTrack(a))}).then(e=>s.createAnswer()).then(e=>s.setLocalDescription(e)).then(e=>{this.props.onSendAnswer(this.props.topic,this.props.seq,s.localDescription.toJSON()),this.setState({callInitialSetupComplete:!0},e=>this.drainRemoteIceCandidatesCache())}).catch(this.handleGetUserMediaError)}handleRemoteHangup(){this.state.waitingForPeer?(this.setState({waitingForPeer:!1}),zs.pause(),zs.currentTime=0,Vs.loop=!0,Vs.play().catch(e=>{}),setTimeout(e=>{this.handleCloseClick()},2e3)):this.handleCloseClick()}handleCloseClick(){this.stop(),this.props.onHangup(this.props.topic,this.props.seq)}muteVideo(){if(!this.state.pc||!this.state.dataChannel)return;const e=this.state.localStream,t=e.getVideoTracks()[0];t.enabled=!1,t.stop(),e.removeTrack(t),this.state.dataChannel.send(Ws),this.setState({videoToggleInProgress:!1})}unmuteVideo(){this.state.pc&&this.state.dataChannel&&navigator.mediaDevices.getUserMedia({video:!0}).then(e=>{this.localRef.current.srcObject=null;const t=this.state.pc.getSenders().find(e=>"video"==e.track.kind),s=e.getVideoTracks()[0];return e.removeTrack(s),this.state.localStream.addTrack(s),t.replaceTrack(s)}).then(e=>{this.localRef.current.srcObject=this.state.localStream,this.state.dataChannel.send(Ks)}).catch(e=>this.handleGetUserMediaError(e)).finally(e=>{this.setState({videoToggleInProgress:!1})})}handleToggleCameraClick(){if(this.state.videoToggleInProgress)return;const e=this.state.localStream.getVideoTracks();this.setState({videoToggleInProgress:!0},t=>{e&&e.length>0&&e[0].enabled&&"live"==e[0].readyState?this.muteVideo():this.unmuteVideo(),this.setState({audioOnly:!this.state.audioOnly})})}handleToggleMicClick(){const e=this.state.localStream.getAudioTracks()[0];e.enabled=!e.enabled,this.forceUpdate()}render(){const e=this.state.localStream&&this.state.localStream.getAudioTracks(),t=!this.state.audioOnly&&this.state.localStream&&this.state.localStream.getVideoTracks(),s=!this.state.pc||!this.state.dataChannel||!(e&&e[0]),a=e&&e[0]&&e[0].enabled?"mic":"mic_off",i=t&&t[0]&&t[0].enabled&&"live"==t[0].readyState?"videocam":"videocam_off",n=(0,js.W5)(this.props.title,ks.mu),r=this.state.waitingForPeer?" pulse":"";let o=!1;if(this.remoteRef.current&&this.remoteRef.current.srcObject&&this.state.remoteVideoLive){const e=this.remoteRef.current.srcObject;if(e.getVideoTracks().length>0){const t=e.getVideoTracks()[0];o=t.enabled&&"live"==t.readyState}}const c=this.props.minimized?"minimized":null,d=this.props.minimized?"fullscreen":"fullscreen_exit";return l().createElement("div",{id:"video-container",className:c,ref:this.containerRef},l().createElement("div",{id:"video-container-panel"},l().createElement("div",{className:"call-party self",disabled:this.state.audioOnly||this.props.minimized},l().createElement("video",{ref:this.localRef,autoPlay:!0,muted:!0,playsInline:!0}),l().createElement("div",{className:"caller-name inactive"},l().createElement(h.FormattedMessage,{id:"calls_you_label",defaultMessage:[{type:0,value:"You"}]}))),l().createElement("div",{className:"call-party peer",disabled:!o},o?l().createElement(l().Fragment,null,l().createElement("video",{ref:this.remoteRef,autoPlay:!0,playsInline:!0}),l().createElement("div",{className:"caller-name inactive"},n)):l().createElement(l().Fragment,null,l().createElement("audio",{ref:this.remoteRef,autoPlay:!0}),l().createElement("div",{className:`caller-card${r} draggable`},l().createElement("div",{className:"avatar-box"},l().createElement(Us.A,{tinode:this.props.tinode,avatar:this.props.avatar,topic:this.props.topic,title:this.props.title})),l().createElement("div",{className:"caller-name"},n))))),l().createElement("button",{className:"full-screen",onClick:this.props.onToggleMinimize},l().createElement("i",{className:"material-icons"},d)),l().createElement("div",{id:"controls",className:c},l().createElement("button",{className:"danger",onClick:this.handleCloseClick},l().createElement("i",{className:"material-icons"},"call_end")),l().createElement("button",{className:"secondary",onClick:this.handleToggleCameraClick,disabled:s},l().createElement("i",{className:"material-icons"},i)),l().createElement("button",{className:"secondary",onClick:this.handleToggleMicClick,disabled:s},l().createElement("i",{className:"material-icons"},a))))}}var Qs=(0,h.injectIntl)(Gs),Ys=r(9895),Xs=r(3540);class Js extends l().Component{constructor(e){super(e),this.state={downloader:null,progress:0},this.downloadFile=this.downloadFile.bind(this),this.handleCancel=this.handleCancel.bind(this)}downloadFile(e,t,s){if(!e)return void this.props.onError("Invalid download URL '"+e+"'");const a=this.props.tinode.getLargeFileHelper();this.setState({downloader:a}),a.download(e,t,s,e=>this.setState({progress:e/this.props.size}),e=>this.props.onError(e,"err")).then(e=>this.setState({downloader:null,progress:0})).catch(e=>{e&&this.props.onError("Error downloading file: "+e.message,"err"),this.setState({downloader:null,progress:0})})}handleCancel(){this.props.uploading?this.props.onCancelUpload():this.state.downloader&&this.state.downloader.cancel()}render(){let e=this.props.filename||"file_attachment";e.length>36&&(e=e.substr(0,16)+"..."+e.substr(-16));let t,s,a=this.props.size>0?l().createElement("span",{className:"small gray"},"(",(0,js.lX)(this.props.size),")"):null;this.props.uploading||this.state.downloader||!(0,Xs.YO)(this.props.downloadUrl)?(t=(0,Xs.Jf)(this.props.downloadUrl),s=null):(t="#",s=e=>{e.preventDefault(),this.downloadFile(this.props.downloadUrl,this.props.filename,this.props.mimetype)});const i=l().createElement(l().Fragment,null,l().createElement("i",{className:"material-icons"},"file_download")," ",l().createElement(h.FormattedMessage,{id:"save_attachment",defaultMessage:[{type:0,value:"save"}]}));return l().createElement("div",{className:"attachment"},l().createElement("div",null,l().createElement("i",{className:"material-icons big gray"},"insert_drive_file")),l().createElement("div",{className:"flex-column"},l().createElement("div",null,e," ",a),this.props.uploading||this.state.downloader?l().createElement(Ys.A,{progress:this.props.uploading?this.props.progress:this.state.progress,onCancel:this.handleCancel}):l().createElement("div",null,t?l().createElement("a",{href:t,download:this.props.filename,onClick:s},i):l().createElement("span",{className:"light-gray"},i))))}}const Zs=(0,h.defineMessages)({message_sending:{id:"message_sending",defaultMessage:[{type:0,value:"sending..."}]},message_sending_failed:{id:"message_sending_failed",defaultMessage:[{type:0,value:"failed"}]},message_edited_marker:{id:"message_edited_marker",defaultMessage:[{type:0,value:", edited"}]}});class ea extends l().PureComponent{render(){const{formatMessage:e}=this.props.intl;let t;t=this.props.received<=Ts.Tinode.MESSAGE_STATUS_SENDING?e(Zs.message_sending):this.props.received==Ts.Tinode.MESSAGE_STATUS_FAILED||this.props.received==Ts.Tinode.MESSAGE_STATUS_FATAL?e(Zs.message_sending_failed):this.props.timestamp.toLocaleTimeString(this.props.intl.locale,{timeStyle:"short"});const s=(0,Xs.LO)(this.props.received),a=s?l().createElement("i",{className:"material-icons small "+s.color},s.name):null,i=this.props.edited?e(Zs.message_edited_marker):null;return l().createElement("span",{className:"timestamp"},t,i," ",a)}}var ta=(0,h.injectIntl)(ea),sa=r(8043);function aa(){return aa=Object.assign?Object.assign.bind():function(e){for(var t=1;tTs.Tinode.MESSAGE_STATUS_FATAL){if(this.props.userIsWriter&&(t.push("menu_item_reply"),!this.props.response)){let e=!1;Ts.Drafty.entities(this.props.content,(t,s,a)=>(e=["AU","EX","FM","IM","VC","VD"].includes(a),e)),e||Ts.Drafty.styles(this.props.content,t=>(e=["QQ"].includes(t),e)),e||t.push("menu_item_edit")}this.props.userIsAdmin&&t.push(this.props.pinned?"menu_item_unpin":"menu_item_pin")}t.push("menu_item_forward"),this.props.showContextMenu({seq:this.props.seq,replace:this.props.edited?parseInt(this.props.edited.split(":")[1]):0,content:this.props.content,userFrom:this.props.userFrom,userName:this.props.userName,y:e.pageY,x:e.pageX,pickReply:this.props.pickReply,editMessage:this.props.editMessage,timestamp:this.props.timestamp},t)}handleProgress(e){this.setState({progress:e})}handleCancelUpload(){this.props.onCancelUpload(this.props.seq,this.props.uploader)}handleQuoteClick(e){e.preventDefault(),e.stopPropagation();const t=this.props.replyToSeq;t&&this.props.onQuoteClick(t)}render(){const e=this.props.sequence+" "+(this.props.response?"left":"right"),t="single"==this.props.sequence||"last"==this.props.sequence?"bubble tip":"bubble",s=this.props.userAvatar||!0;let a="message-content";const i=this.props.isGroup&&this.props.response&&("single"==this.props.sequence||"last"==this.props.sequence);let n=this.props.content;const r=[];if(this.props.mimeType==Ts.Drafty.getContentType()&&Ts.Drafty.isValid(n)){Ts.Drafty.attachments(n,(e,t)=>{Ts.Drafty.isFormResponseType(e.mime)||r.push(l().createElement(Js,{tinode:this.props.tinode,downloadUrl:Ts.Drafty.getDownloadUrl(e),filename:e.name,uploading:Ts.Drafty.isProcessing(e),mimetype:e.mime,size:Ts.Drafty.getEntitySize(e),progress:this.state.progress,onCancelUpload:this.handleCancelUpload,onError:this.props.onError,key:t}))},this);const e=Ts.Drafty.format(n,sa.e3,this.formatterContext);n=l().createElement(l().Fragment,null,e)}else"string"==typeof n?new RegExp("^\\p{RGI_Emoji}{1,5}$","v").test(n||"")&&(a+=" emoji-"+(n||"").match(/(?:👨🏻‍❤️‍💋‍👨🏻|👨🏻‍❤️‍💋‍👨🏼|👨🏻‍❤️‍💋‍👨🏽|👨🏻‍❤️‍💋‍👨🏾|👨🏻‍❤️‍💋‍👨🏿|👨🏼‍❤️‍💋‍👨🏻|👨🏼‍❤️‍💋‍👨🏼|👨🏼‍❤️‍💋‍👨🏽|👨🏼‍❤️‍💋‍👨🏾|👨🏼‍❤️‍💋‍👨🏿|👨🏽‍❤️‍💋‍👨🏻|👨🏽‍❤️‍💋‍👨🏼|👨🏽‍❤️‍💋‍👨🏽|👨🏽‍❤️‍💋‍👨🏾|👨🏽‍❤️‍💋‍👨🏿|👨🏾‍❤️‍💋‍👨🏻|👨🏾‍❤️‍💋‍👨🏼|👨🏾‍❤️‍💋‍👨🏽|👨🏾‍❤️‍💋‍👨🏾|👨🏾‍❤️‍💋‍👨🏿|👨🏿‍❤️‍💋‍👨🏻|👨🏿‍❤️‍💋‍👨🏼|👨🏿‍❤️‍💋‍👨🏽|👨🏿‍❤️‍💋‍👨🏾|👨🏿‍❤️‍💋‍👨🏿|👩🏻‍❤️‍💋‍👨🏻|👩🏻‍❤️‍💋‍👨🏼|👩🏻‍❤️‍💋‍👨🏽|👩🏻‍❤️‍💋‍👨🏾|👩🏻‍❤️‍💋‍👨🏿|👩🏻‍❤️‍💋‍👩🏻|👩🏻‍❤️‍💋‍👩🏼|👩🏻‍❤️‍💋‍👩🏽|👩🏻‍❤️‍💋‍👩🏾|👩🏻‍❤️‍💋‍👩🏿|👩🏼‍❤️‍💋‍👨🏻|👩🏼‍❤️‍💋‍👨🏼|👩🏼‍❤️‍💋‍👨🏽|👩🏼‍❤️‍💋‍👨🏾|👩🏼‍❤️‍💋‍👨🏿|👩🏼‍❤️‍💋‍👩🏻|👩🏼‍❤️‍💋‍👩🏼|👩🏼‍❤️‍💋‍👩🏽|👩🏼‍❤️‍💋‍👩🏾|👩🏼‍❤️‍💋‍👩🏿|👩🏽‍❤️‍💋‍👨🏻|👩🏽‍❤️‍💋‍👨🏼|👩🏽‍❤️‍💋‍👨🏽|👩🏽‍❤️‍💋‍👨🏾|👩🏽‍❤️‍💋‍👨🏿|👩🏽‍❤️‍💋‍👩🏻|👩🏽‍❤️‍💋‍👩🏼|👩🏽‍❤️‍💋‍👩🏽|👩🏽‍❤️‍💋‍👩🏾|👩🏽‍❤️‍💋‍👩🏿|👩🏾‍❤️‍💋‍👨🏻|👩🏾‍❤️‍💋‍👨🏼|👩🏾‍❤️‍💋‍👨🏽|👩🏾‍❤️‍💋‍👨🏾|👩🏾‍❤️‍💋‍👨🏿|👩🏾‍❤️‍💋‍👩🏻|👩🏾‍❤️‍💋‍👩🏼|👩🏾‍❤️‍💋‍👩🏽|👩🏾‍❤️‍💋‍👩🏾|👩🏾‍❤️‍💋‍👩🏿|👩🏿‍❤️‍💋‍👨🏻|👩🏿‍❤️‍💋‍👨🏼|👩🏿‍❤️‍💋‍👨🏽|👩🏿‍❤️‍💋‍👨🏾|👩🏿‍❤️‍💋‍👨🏿|👩🏿‍❤️‍💋‍👩🏻|👩🏿‍❤️‍💋‍👩🏼|👩🏿‍❤️‍💋‍👩🏽|👩🏿‍❤️‍💋‍👩🏾|👩🏿‍❤️‍💋‍👩🏿|🧑🏻‍❤️‍💋‍🧑🏼|🧑🏻‍❤️‍💋‍🧑🏽|🧑🏻‍❤️‍💋‍🧑🏾|🧑🏻‍❤️‍💋‍🧑🏿|🧑🏼‍❤️‍💋‍🧑🏻|🧑🏼‍❤️‍💋‍🧑🏽|🧑🏼‍❤️‍💋‍🧑🏾|🧑🏼‍❤️‍💋‍🧑🏿|🧑🏽‍❤️‍💋‍🧑🏻|🧑🏽‍❤️‍💋‍🧑🏼|🧑🏽‍❤️‍💋‍🧑🏾|🧑🏽‍❤️‍💋‍🧑🏿|🧑🏾‍❤️‍💋‍🧑🏻|🧑🏾‍❤️‍💋‍🧑🏼|🧑🏾‍❤️‍💋‍🧑🏽|🧑🏾‍❤️‍💋‍🧑🏿|🧑🏿‍❤️‍💋‍🧑🏻|🧑🏿‍❤️‍💋‍🧑🏼|🧑🏿‍❤️‍💋‍🧑🏽|🧑🏿‍❤️‍💋‍🧑🏾|🏴󠁧󠁢󠁥󠁮󠁧󠁿|🏴󠁧󠁢󠁳󠁣󠁴󠁿|🏴󠁧󠁢󠁷󠁬󠁳󠁿|👨🏻‍❤️‍👨🏻|👨🏻‍❤️‍👨🏼|👨🏻‍❤️‍👨🏽|👨🏻‍❤️‍👨🏾|👨🏻‍❤️‍👨🏿|👨🏻‍🐰‍👨🏼|👨🏻‍🐰‍👨🏽|👨🏻‍🐰‍👨🏾|👨🏻‍🐰‍👨🏿|👨🏻‍🤝‍👨🏼|👨🏻‍🤝‍👨🏽|👨🏻‍🤝‍👨🏾|👨🏻‍🤝‍👨🏿|👨🏻‍🫯‍👨🏼|👨🏻‍🫯‍👨🏽|👨🏻‍🫯‍👨🏾|👨🏻‍🫯‍👨🏿|👨🏼‍❤️‍👨🏻|👨🏼‍❤️‍👨🏼|👨🏼‍❤️‍👨🏽|👨🏼‍❤️‍👨🏾|👨🏼‍❤️‍👨🏿|👨🏼‍🐰‍👨🏻|👨🏼‍🐰‍👨🏽|👨🏼‍🐰‍👨🏾|👨🏼‍🐰‍👨🏿|👨🏼‍🤝‍👨🏻|👨🏼‍🤝‍👨🏽|👨🏼‍🤝‍👨🏾|👨🏼‍🤝‍👨🏿|👨🏼‍🫯‍👨🏻|👨🏼‍🫯‍👨🏽|👨🏼‍🫯‍👨🏾|👨🏼‍🫯‍👨🏿|👨🏽‍❤️‍👨🏻|👨🏽‍❤️‍👨🏼|👨🏽‍❤️‍👨🏽|👨🏽‍❤️‍👨🏾|👨🏽‍❤️‍👨🏿|👨🏽‍🐰‍👨🏻|👨🏽‍🐰‍👨🏼|👨🏽‍🐰‍👨🏾|👨🏽‍🐰‍👨🏿|👨🏽‍🤝‍👨🏻|👨🏽‍🤝‍👨🏼|👨🏽‍🤝‍👨🏾|👨🏽‍🤝‍👨🏿|👨🏽‍🫯‍👨🏻|👨🏽‍🫯‍👨🏼|👨🏽‍🫯‍👨🏾|👨🏽‍🫯‍👨🏿|👨🏾‍❤️‍👨🏻|👨🏾‍❤️‍👨🏼|👨🏾‍❤️‍👨🏽|👨🏾‍❤️‍👨🏾|👨🏾‍❤️‍👨🏿|👨🏾‍🐰‍👨🏻|👨🏾‍🐰‍👨🏼|👨🏾‍🐰‍👨🏽|👨🏾‍🐰‍👨🏿|👨🏾‍🤝‍👨🏻|👨🏾‍🤝‍👨🏼|👨🏾‍🤝‍👨🏽|👨🏾‍🤝‍👨🏿|👨🏾‍🫯‍👨🏻|👨🏾‍🫯‍👨🏼|👨🏾‍🫯‍👨🏽|👨🏾‍🫯‍👨🏿|👨🏿‍❤️‍👨🏻|👨🏿‍❤️‍👨🏼|👨🏿‍❤️‍👨🏽|👨🏿‍❤️‍👨🏾|👨🏿‍❤️‍👨🏿|👨🏿‍🐰‍👨🏻|👨🏿‍🐰‍👨🏼|👨🏿‍🐰‍👨🏽|👨🏿‍🐰‍👨🏾|👨🏿‍🤝‍👨🏻|👨🏿‍🤝‍👨🏼|👨🏿‍🤝‍👨🏽|👨🏿‍🤝‍👨🏾|👨🏿‍🫯‍👨🏻|👨🏿‍🫯‍👨🏼|👨🏿‍🫯‍👨🏽|👨🏿‍🫯‍👨🏾|👩🏻‍❤️‍👨🏻|👩🏻‍❤️‍👨🏼|👩🏻‍❤️‍👨🏽|👩🏻‍❤️‍👨🏾|👩🏻‍❤️‍👨🏿|👩🏻‍❤️‍👩🏻|👩🏻‍❤️‍👩🏼|👩🏻‍❤️‍👩🏽|👩🏻‍❤️‍👩🏾|👩🏻‍❤️‍👩🏿|👩🏻‍🐰‍👩🏼|👩🏻‍🐰‍👩🏽|👩🏻‍🐰‍👩🏾|👩🏻‍🐰‍👩🏿|👩🏻‍🤝‍👨🏼|👩🏻‍🤝‍👨🏽|👩🏻‍🤝‍👨🏾|👩🏻‍🤝‍👨🏿|👩🏻‍🤝‍👩🏼|👩🏻‍🤝‍👩🏽|👩🏻‍🤝‍👩🏾|👩🏻‍🤝‍👩🏿|👩🏻‍🫯‍👩🏼|👩🏻‍🫯‍👩🏽|👩🏻‍🫯‍👩🏾|👩🏻‍🫯‍👩🏿|👩🏼‍❤️‍👨🏻|👩🏼‍❤️‍👨🏼|👩🏼‍❤️‍👨🏽|👩🏼‍❤️‍👨🏾|👩🏼‍❤️‍👨🏿|👩🏼‍❤️‍👩🏻|👩🏼‍❤️‍👩🏼|👩🏼‍❤️‍👩🏽|👩🏼‍❤️‍👩🏾|👩🏼‍❤️‍👩🏿|👩🏼‍🐰‍👩🏻|👩🏼‍🐰‍👩🏽|👩🏼‍🐰‍👩🏾|👩🏼‍🐰‍👩🏿|👩🏼‍🤝‍👨🏻|👩🏼‍🤝‍👨🏽|👩🏼‍🤝‍👨🏾|👩🏼‍🤝‍👨🏿|👩🏼‍🤝‍👩🏻|👩🏼‍🤝‍👩🏽|👩🏼‍🤝‍👩🏾|👩🏼‍🤝‍👩🏿|👩🏼‍🫯‍👩🏻|👩🏼‍🫯‍👩🏽|👩🏼‍🫯‍👩🏾|👩🏼‍🫯‍👩🏿|👩🏽‍❤️‍👨🏻|👩🏽‍❤️‍👨🏼|👩🏽‍❤️‍👨🏽|👩🏽‍❤️‍👨🏾|👩🏽‍❤️‍👨🏿|👩🏽‍❤️‍👩🏻|👩🏽‍❤️‍👩🏼|👩🏽‍❤️‍👩🏽|👩🏽‍❤️‍👩🏾|👩🏽‍❤️‍👩🏿|👩🏽‍🐰‍👩🏻|👩🏽‍🐰‍👩🏼|👩🏽‍🐰‍👩🏾|👩🏽‍🐰‍👩🏿|👩🏽‍🤝‍👨🏻|👩🏽‍🤝‍👨🏼|👩🏽‍🤝‍👨🏾|👩🏽‍🤝‍👨🏿|👩🏽‍🤝‍👩🏻|👩🏽‍🤝‍👩🏼|👩🏽‍🤝‍👩🏾|👩🏽‍🤝‍👩🏿|👩🏽‍🫯‍👩🏻|👩🏽‍🫯‍👩🏼|👩🏽‍🫯‍👩🏾|👩🏽‍🫯‍👩🏿|👩🏾‍❤️‍👨🏻|👩🏾‍❤️‍👨🏼|👩🏾‍❤️‍👨🏽|👩🏾‍❤️‍👨🏾|👩🏾‍❤️‍👨🏿|👩🏾‍❤️‍👩🏻|👩🏾‍❤️‍👩🏼|👩🏾‍❤️‍👩🏽|👩🏾‍❤️‍👩🏾|👩🏾‍❤️‍👩🏿|👩🏾‍🐰‍👩🏻|👩🏾‍🐰‍👩🏼|👩🏾‍🐰‍👩🏽|👩🏾‍🐰‍👩🏿|👩🏾‍🤝‍👨🏻|👩🏾‍🤝‍👨🏼|👩🏾‍🤝‍👨🏽|👩🏾‍🤝‍👨🏿|👩🏾‍🤝‍👩🏻|👩🏾‍🤝‍👩🏼|👩🏾‍🤝‍👩🏽|👩🏾‍🤝‍👩🏿|👩🏾‍🫯‍👩🏻|👩🏾‍🫯‍👩🏼|👩🏾‍🫯‍👩🏽|👩🏾‍🫯‍👩🏿|👩🏿‍❤️‍👨🏻|👩🏿‍❤️‍👨🏼|👩🏿‍❤️‍👨🏽|👩🏿‍❤️‍👨🏾|👩🏿‍❤️‍👨🏿|👩🏿‍❤️‍👩🏻|👩🏿‍❤️‍👩🏼|👩🏿‍❤️‍👩🏽|👩🏿‍❤️‍👩🏾|👩🏿‍❤️‍👩🏿|👩🏿‍🐰‍👩🏻|👩🏿‍🐰‍👩🏼|👩🏿‍🐰‍👩🏽|👩🏿‍🐰‍👩🏾|👩🏿‍🤝‍👨🏻|👩🏿‍🤝‍👨🏼|👩🏿‍🤝‍👨🏽|👩🏿‍🤝‍👨🏾|👩🏿‍🤝‍👩🏻|👩🏿‍🤝‍👩🏼|👩🏿‍🤝‍👩🏽|👩🏿‍🤝‍👩🏾|👩🏿‍🫯‍👩🏻|👩🏿‍🫯‍👩🏼|👩🏿‍🫯‍👩🏽|👩🏿‍🫯‍👩🏾|🧑🏻‍❤️‍🧑🏼|🧑🏻‍❤️‍🧑🏽|🧑🏻‍❤️‍🧑🏾|🧑🏻‍❤️‍🧑🏿|🧑🏻‍🐰‍🧑🏼|🧑🏻‍🐰‍🧑🏽|🧑🏻‍🐰‍🧑🏾|🧑🏻‍🐰‍🧑🏿|🧑🏻‍🤝‍🧑🏻|🧑🏻‍🤝‍🧑🏼|🧑🏻‍🤝‍🧑🏽|🧑🏻‍🤝‍🧑🏾|🧑🏻‍🤝‍🧑🏿|🧑🏻‍🫯‍🧑🏼|🧑🏻‍🫯‍🧑🏽|🧑🏻‍🫯‍🧑🏾|🧑🏻‍🫯‍🧑🏿|🧑🏼‍❤️‍🧑🏻|🧑🏼‍❤️‍🧑🏽|🧑🏼‍❤️‍🧑🏾|🧑🏼‍❤️‍🧑🏿|🧑🏼‍🐰‍🧑🏻|🧑🏼‍🐰‍🧑🏽|🧑🏼‍🐰‍🧑🏾|🧑🏼‍🐰‍🧑🏿|🧑🏼‍🤝‍🧑🏻|🧑🏼‍🤝‍🧑🏼|🧑🏼‍🤝‍🧑🏽|🧑🏼‍🤝‍🧑🏾|🧑🏼‍🤝‍🧑🏿|🧑🏼‍🫯‍🧑🏻|🧑🏼‍🫯‍🧑🏽|🧑🏼‍🫯‍🧑🏾|🧑🏼‍🫯‍🧑🏿|🧑🏽‍❤️‍🧑🏻|🧑🏽‍❤️‍🧑🏼|🧑🏽‍❤️‍🧑🏾|🧑🏽‍❤️‍🧑🏿|🧑🏽‍🐰‍🧑🏻|🧑🏽‍🐰‍🧑🏼|🧑🏽‍🐰‍🧑🏾|🧑🏽‍🐰‍🧑🏿|🧑🏽‍🤝‍🧑🏻|🧑🏽‍🤝‍🧑🏼|🧑🏽‍🤝‍🧑🏽|🧑🏽‍🤝‍🧑🏾|🧑🏽‍🤝‍🧑🏿|🧑🏽‍🫯‍🧑🏻|🧑🏽‍🫯‍🧑🏼|🧑🏽‍🫯‍🧑🏾|🧑🏽‍🫯‍🧑🏿|🧑🏾‍❤️‍🧑🏻|🧑🏾‍❤️‍🧑🏼|🧑🏾‍❤️‍🧑🏽|🧑🏾‍❤️‍🧑🏿|🧑🏾‍🐰‍🧑🏻|🧑🏾‍🐰‍🧑🏼|🧑🏾‍🐰‍🧑🏽|🧑🏾‍🐰‍🧑🏿|🧑🏾‍🤝‍🧑🏻|🧑🏾‍🤝‍🧑🏼|🧑🏾‍🤝‍🧑🏽|🧑🏾‍🤝‍🧑🏾|🧑🏾‍🤝‍🧑🏿|🧑🏾‍🫯‍🧑🏻|🧑🏾‍🫯‍🧑🏼|🧑🏾‍🫯‍🧑🏽|🧑🏾‍🫯‍🧑🏿|🧑🏿‍❤️‍🧑🏻|🧑🏿‍❤️‍🧑🏼|🧑🏿‍❤️‍🧑🏽|🧑🏿‍❤️‍🧑🏾|🧑🏿‍🐰‍🧑🏻|🧑🏿‍🐰‍🧑🏼|🧑🏿‍🐰‍🧑🏽|🧑🏿‍🐰‍🧑🏾|🧑🏿‍🤝‍🧑🏻|🧑🏿‍🤝‍🧑🏼|🧑🏿‍🤝‍🧑🏽|🧑🏿‍🤝‍🧑🏾|🧑🏿‍🤝‍🧑🏿|🧑🏿‍🫯‍🧑🏻|🧑🏿‍🫯‍🧑🏼|🧑🏿‍🫯‍🧑🏽|🧑🏿‍🫯‍🧑🏾|👨‍❤️‍💋‍👨|👨‍👨‍👦‍👦|👨‍👨‍👧‍👦|👨‍👨‍👧‍👧|👨‍👩‍👦‍👦|👨‍👩‍👧‍👦|👨‍👩‍👧‍👧|👩‍❤️‍💋‍👨|👩‍❤️‍💋‍👩|👩‍👩‍👦‍👦|👩‍👩‍👧‍👦|👩‍👩‍👧‍👧|🧑‍🧑‍🧒‍🧒|🏃🏻‍♀️‍➡️|🏃🏻‍♂️‍➡️|🏃🏼‍♀️‍➡️|🏃🏼‍♂️‍➡️|🏃🏽‍♀️‍➡️|🏃🏽‍♂️‍➡️|🏃🏾‍♀️‍➡️|🏃🏾‍♂️‍➡️|🏃🏿‍♀️‍➡️|🏃🏿‍♂️‍➡️|👨🏻‍🦯‍➡️|👨🏻‍🦼‍➡️|👨🏻‍🦽‍➡️|👨🏼‍🦯‍➡️|👨🏼‍🦼‍➡️|👨🏼‍🦽‍➡️|👨🏽‍🦯‍➡️|👨🏽‍🦼‍➡️|👨🏽‍🦽‍➡️|👨🏾‍🦯‍➡️|👨🏾‍🦼‍➡️|👨🏾‍🦽‍➡️|👨🏿‍🦯‍➡️|👨🏿‍🦼‍➡️|👨🏿‍🦽‍➡️|👩🏻‍🦯‍➡️|👩🏻‍🦼‍➡️|👩🏻‍🦽‍➡️|👩🏼‍🦯‍➡️|👩🏼‍🦼‍➡️|👩🏼‍🦽‍➡️|👩🏽‍🦯‍➡️|👩🏽‍🦼‍➡️|👩🏽‍🦽‍➡️|👩🏾‍🦯‍➡️|👩🏾‍🦼‍➡️|👩🏾‍🦽‍➡️|👩🏿‍🦯‍➡️|👩🏿‍🦼‍➡️|👩🏿‍🦽‍➡️|🚶🏻‍♀️‍➡️|🚶🏻‍♂️‍➡️|🚶🏼‍♀️‍➡️|🚶🏼‍♂️‍➡️|🚶🏽‍♀️‍➡️|🚶🏽‍♂️‍➡️|🚶🏾‍♀️‍➡️|🚶🏾‍♂️‍➡️|🚶🏿‍♀️‍➡️|🚶🏿‍♂️‍➡️|🧎🏻‍♀️‍➡️|🧎🏻‍♂️‍➡️|🧎🏼‍♀️‍➡️|🧎🏼‍♂️‍➡️|🧎🏽‍♀️‍➡️|🧎🏽‍♂️‍➡️|🧎🏾‍♀️‍➡️|🧎🏾‍♂️‍➡️|🧎🏿‍♀️‍➡️|🧎🏿‍♂️‍➡️|🧑🏻‍🦯‍➡️|🧑🏻‍🦼‍➡️|🧑🏻‍🦽‍➡️|🧑🏼‍🦯‍➡️|🧑🏼‍🦼‍➡️|🧑🏼‍🦽‍➡️|🧑🏽‍🦯‍➡️|🧑🏽‍🦼‍➡️|🧑🏽‍🦽‍➡️|🧑🏾‍🦯‍➡️|🧑🏾‍🦼‍➡️|🧑🏾‍🦽‍➡️|🧑🏿‍🦯‍➡️|🧑🏿‍🦼‍➡️|🧑🏿‍🦽‍➡️|🫱🏻‍🫲🏼|🫱🏻‍🫲🏽|🫱🏻‍🫲🏾|🫱🏻‍🫲🏿|🫱🏼‍🫲🏻|🫱🏼‍🫲🏽|🫱🏼‍🫲🏾|🫱🏼‍🫲🏿|🫱🏽‍🫲🏻|🫱🏽‍🫲🏼|🫱🏽‍🫲🏾|🫱🏽‍🫲🏿|🫱🏾‍🫲🏻|🫱🏾‍🫲🏼|🫱🏾‍🫲🏽|🫱🏾‍🫲🏿|🫱🏿‍🫲🏻|🫱🏿‍🫲🏼|🫱🏿‍🫲🏽|🫱🏿‍🫲🏾|🏃‍♀️‍➡️|🏃‍♂️‍➡️|👨‍❤️‍👨|👨‍👦‍👦|👨‍👧‍👦|👨‍👧‍👧|👨‍👨‍👦|👨‍👨‍👧|👨‍👩‍👦|👨‍👩‍👧|👨‍🦯‍➡️|👨‍🦼‍➡️|👨‍🦽‍➡️|👩‍❤️‍👨|👩‍❤️‍👩|👩‍👦‍👦|👩‍👧‍👦|👩‍👧‍👧|👩‍👩‍👦|👩‍👩‍👧|👩‍🦯‍➡️|👩‍🦼‍➡️|👩‍🦽‍➡️|🚶‍♀️‍➡️|🚶‍♂️‍➡️|🧎‍♀️‍➡️|🧎‍♂️‍➡️|🧑‍🤝‍🧑|🧑‍🦯‍➡️|🧑‍🦼‍➡️|🧑‍🦽‍➡️|🧑‍🧑‍🧒|🧑‍🧒‍🧒|🏃🏻‍♀️|🏃🏻‍♂️|🏃🏻‍➡️|🏃🏼‍♀️|🏃🏼‍♂️|🏃🏼‍➡️|🏃🏽‍♀️|🏃🏽‍♂️|🏃🏽‍➡️|🏃🏾‍♀️|🏃🏾‍♂️|🏃🏾‍➡️|🏃🏿‍♀️|🏃🏿‍♂️|🏃🏿‍➡️|🏄🏻‍♀️|🏄🏻‍♂️|🏄🏼‍♀️|🏄🏼‍♂️|🏄🏽‍♀️|🏄🏽‍♂️|🏄🏾‍♀️|🏄🏾‍♂️|🏄🏿‍♀️|🏄🏿‍♂️|🏊🏻‍♀️|🏊🏻‍♂️|🏊🏼‍♀️|🏊🏼‍♂️|🏊🏽‍♀️|🏊🏽‍♂️|🏊🏾‍♀️|🏊🏾‍♂️|🏊🏿‍♀️|🏊🏿‍♂️|🏋🏻‍♀️|🏋🏻‍♂️|🏋🏼‍♀️|🏋🏼‍♂️|🏋🏽‍♀️|🏋🏽‍♂️|🏋🏾‍♀️|🏋🏾‍♂️|🏋🏿‍♀️|🏋🏿‍♂️|🏌🏻‍♀️|🏌🏻‍♂️|🏌🏼‍♀️|🏌🏼‍♂️|🏌🏽‍♀️|🏌🏽‍♂️|🏌🏾‍♀️|🏌🏾‍♂️|🏌🏿‍♀️|🏌🏿‍♂️|👁️‍🗨️|👨🏻‍⚕️|👨🏻‍⚖️|👨🏻‍✈️|👨🏻‍🌾|👨🏻‍🍳|👨🏻‍🍼|👨🏻‍🎓|👨🏻‍🎤|👨🏻‍🎨|👨🏻‍🏫|👨🏻‍🏭|👨🏻‍💻|👨🏻‍💼|👨🏻‍🔧|👨🏻‍🔬|👨🏻‍🚀|👨🏻‍🚒|👨🏻‍🦯|👨🏻‍🦰|👨🏻‍🦱|👨🏻‍🦲|👨🏻‍🦳|👨🏻‍🦼|👨🏻‍🦽|👨🏼‍⚕️|👨🏼‍⚖️|👨🏼‍✈️|👨🏼‍🌾|👨🏼‍🍳|👨🏼‍🍼|👨🏼‍🎓|👨🏼‍🎤|👨🏼‍🎨|👨🏼‍🏫|👨🏼‍🏭|👨🏼‍💻|👨🏼‍💼|👨🏼‍🔧|👨🏼‍🔬|👨🏼‍🚀|👨🏼‍🚒|👨🏼‍🦯|👨🏼‍🦰|👨🏼‍🦱|👨🏼‍🦲|👨🏼‍🦳|👨🏼‍🦼|👨🏼‍🦽|👨🏽‍⚕️|👨🏽‍⚖️|👨🏽‍✈️|👨🏽‍🌾|👨🏽‍🍳|👨🏽‍🍼|👨🏽‍🎓|👨🏽‍🎤|👨🏽‍🎨|👨🏽‍🏫|👨🏽‍🏭|👨🏽‍💻|👨🏽‍💼|👨🏽‍🔧|👨🏽‍🔬|👨🏽‍🚀|👨🏽‍🚒|👨🏽‍🦯|👨🏽‍🦰|👨🏽‍🦱|👨🏽‍🦲|👨🏽‍🦳|👨🏽‍🦼|👨🏽‍🦽|👨🏾‍⚕️|👨🏾‍⚖️|👨🏾‍✈️|👨🏾‍🌾|👨🏾‍🍳|👨🏾‍🍼|👨🏾‍🎓|👨🏾‍🎤|👨🏾‍🎨|👨🏾‍🏫|👨🏾‍🏭|👨🏾‍💻|👨🏾‍💼|👨🏾‍🔧|👨🏾‍🔬|👨🏾‍🚀|👨🏾‍🚒|👨🏾‍🦯|👨🏾‍🦰|👨🏾‍🦱|👨🏾‍🦲|👨🏾‍🦳|👨🏾‍🦼|👨🏾‍🦽|👨🏿‍⚕️|👨🏿‍⚖️|👨🏿‍✈️|👨🏿‍🌾|👨🏿‍🍳|👨🏿‍🍼|👨🏿‍🎓|👨🏿‍🎤|👨🏿‍🎨|👨🏿‍🏫|👨🏿‍🏭|👨🏿‍💻|👨🏿‍💼|👨🏿‍🔧|👨🏿‍🔬|👨🏿‍🚀|👨🏿‍🚒|👨🏿‍🦯|👨🏿‍🦰|👨🏿‍🦱|👨🏿‍🦲|👨🏿‍🦳|👨🏿‍🦼|👨🏿‍🦽|👩🏻‍⚕️|👩🏻‍⚖️|👩🏻‍✈️|👩🏻‍🌾|👩🏻‍🍳|👩🏻‍🍼|👩🏻‍🎓|👩🏻‍🎤|👩🏻‍🎨|👩🏻‍🏫|👩🏻‍🏭|👩🏻‍💻|👩🏻‍💼|👩🏻‍🔧|👩🏻‍🔬|👩🏻‍🚀|👩🏻‍🚒|👩🏻‍🦯|👩🏻‍🦰|👩🏻‍🦱|👩🏻‍🦲|👩🏻‍🦳|👩🏻‍🦼|👩🏻‍🦽|👩🏼‍⚕️|👩🏼‍⚖️|👩🏼‍✈️|👩🏼‍🌾|👩🏼‍🍳|👩🏼‍🍼|👩🏼‍🎓|👩🏼‍🎤|👩🏼‍🎨|👩🏼‍🏫|👩🏼‍🏭|👩🏼‍💻|👩🏼‍💼|👩🏼‍🔧|👩🏼‍🔬|👩🏼‍🚀|👩🏼‍🚒|👩🏼‍🦯|👩🏼‍🦰|👩🏼‍🦱|👩🏼‍🦲|👩🏼‍🦳|👩🏼‍🦼|👩🏼‍🦽|👩🏽‍⚕️|👩🏽‍⚖️|👩🏽‍✈️|👩🏽‍🌾|👩🏽‍🍳|👩🏽‍🍼|👩🏽‍🎓|👩🏽‍🎤|👩🏽‍🎨|👩🏽‍🏫|👩🏽‍🏭|👩🏽‍💻|👩🏽‍💼|👩🏽‍🔧|👩🏽‍🔬|👩🏽‍🚀|👩🏽‍🚒|👩🏽‍🦯|👩🏽‍🦰|👩🏽‍🦱|👩🏽‍🦲|👩🏽‍🦳|👩🏽‍🦼|👩🏽‍🦽|👩🏾‍⚕️|👩🏾‍⚖️|👩🏾‍✈️|👩🏾‍🌾|👩🏾‍🍳|👩🏾‍🍼|👩🏾‍🎓|👩🏾‍🎤|👩🏾‍🎨|👩🏾‍🏫|👩🏾‍🏭|👩🏾‍💻|👩🏾‍💼|👩🏾‍🔧|👩🏾‍🔬|👩🏾‍🚀|👩🏾‍🚒|👩🏾‍🦯|👩🏾‍🦰|👩🏾‍🦱|👩🏾‍🦲|👩🏾‍🦳|👩🏾‍🦼|👩🏾‍🦽|👩🏿‍⚕️|👩🏿‍⚖️|👩🏿‍✈️|👩🏿‍🌾|👩🏿‍🍳|👩🏿‍🍼|👩🏿‍🎓|👩🏿‍🎤|👩🏿‍🎨|👩🏿‍🏫|👩🏿‍🏭|👩🏿‍💻|👩🏿‍💼|👩🏿‍🔧|👩🏿‍🔬|👩🏿‍🚀|👩🏿‍🚒|👩🏿‍🦯|👩🏿‍🦰|👩🏿‍🦱|👩🏿‍🦲|👩🏿‍🦳|👩🏿‍🦼|👩🏿‍🦽|👮🏻‍♀️|👮🏻‍♂️|👮🏼‍♀️|👮🏼‍♂️|👮🏽‍♀️|👮🏽‍♂️|👮🏾‍♀️|👮🏾‍♂️|👮🏿‍♀️|👮🏿‍♂️|👯🏻‍♀️|👯🏻‍♂️|👯🏼‍♀️|👯🏼‍♂️|👯🏽‍♀️|👯🏽‍♂️|👯🏾‍♀️|👯🏾‍♂️|👯🏿‍♀️|👯🏿‍♂️|👰🏻‍♀️|👰🏻‍♂️|👰🏼‍♀️|👰🏼‍♂️|👰🏽‍♀️|👰🏽‍♂️|👰🏾‍♀️|👰🏾‍♂️|👰🏿‍♀️|👰🏿‍♂️|👱🏻‍♀️|👱🏻‍♂️|👱🏼‍♀️|👱🏼‍♂️|👱🏽‍♀️|👱🏽‍♂️|👱🏾‍♀️|👱🏾‍♂️|👱🏿‍♀️|👱🏿‍♂️|👳🏻‍♀️|👳🏻‍♂️|👳🏼‍♀️|👳🏼‍♂️|👳🏽‍♀️|👳🏽‍♂️|👳🏾‍♀️|👳🏾‍♂️|👳🏿‍♀️|👳🏿‍♂️|👷🏻‍♀️|👷🏻‍♂️|👷🏼‍♀️|👷🏼‍♂️|👷🏽‍♀️|👷🏽‍♂️|👷🏾‍♀️|👷🏾‍♂️|👷🏿‍♀️|👷🏿‍♂️|💁🏻‍♀️|💁🏻‍♂️|💁🏼‍♀️|💁🏼‍♂️|💁🏽‍♀️|💁🏽‍♂️|💁🏾‍♀️|💁🏾‍♂️|💁🏿‍♀️|💁🏿‍♂️|💂🏻‍♀️|💂🏻‍♂️|💂🏼‍♀️|💂🏼‍♂️|💂🏽‍♀️|💂🏽‍♂️|💂🏾‍♀️|💂🏾‍♂️|💂🏿‍♀️|💂🏿‍♂️|💆🏻‍♀️|💆🏻‍♂️|💆🏼‍♀️|💆🏼‍♂️|💆🏽‍♀️|💆🏽‍♂️|💆🏾‍♀️|💆🏾‍♂️|💆🏿‍♀️|💆🏿‍♂️|💇🏻‍♀️|💇🏻‍♂️|💇🏼‍♀️|💇🏼‍♂️|💇🏽‍♀️|💇🏽‍♂️|💇🏾‍♀️|💇🏾‍♂️|💇🏿‍♀️|💇🏿‍♂️|🕵🏻‍♀️|🕵🏻‍♂️|🕵🏼‍♀️|🕵🏼‍♂️|🕵🏽‍♀️|🕵🏽‍♂️|🕵🏾‍♀️|🕵🏾‍♂️|🕵🏿‍♀️|🕵🏿‍♂️|🙅🏻‍♀️|🙅🏻‍♂️|🙅🏼‍♀️|🙅🏼‍♂️|🙅🏽‍♀️|🙅🏽‍♂️|🙅🏾‍♀️|🙅🏾‍♂️|🙅🏿‍♀️|🙅🏿‍♂️|🙆🏻‍♀️|🙆🏻‍♂️|🙆🏼‍♀️|🙆🏼‍♂️|🙆🏽‍♀️|🙆🏽‍♂️|🙆🏾‍♀️|🙆🏾‍♂️|🙆🏿‍♀️|🙆🏿‍♂️|🙇🏻‍♀️|🙇🏻‍♂️|🙇🏼‍♀️|🙇🏼‍♂️|🙇🏽‍♀️|🙇🏽‍♂️|🙇🏾‍♀️|🙇🏾‍♂️|🙇🏿‍♀️|🙇🏿‍♂️|🙋🏻‍♀️|🙋🏻‍♂️|🙋🏼‍♀️|🙋🏼‍♂️|🙋🏽‍♀️|🙋🏽‍♂️|🙋🏾‍♀️|🙋🏾‍♂️|🙋🏿‍♀️|🙋🏿‍♂️|🙍🏻‍♀️|🙍🏻‍♂️|🙍🏼‍♀️|🙍🏼‍♂️|🙍🏽‍♀️|🙍🏽‍♂️|🙍🏾‍♀️|🙍🏾‍♂️|🙍🏿‍♀️|🙍🏿‍♂️|🙎🏻‍♀️|🙎🏻‍♂️|🙎🏼‍♀️|🙎🏼‍♂️|🙎🏽‍♀️|🙎🏽‍♂️|🙎🏾‍♀️|🙎🏾‍♂️|🙎🏿‍♀️|🙎🏿‍♂️|🚣🏻‍♀️|🚣🏻‍♂️|🚣🏼‍♀️|🚣🏼‍♂️|🚣🏽‍♀️|🚣🏽‍♂️|🚣🏾‍♀️|🚣🏾‍♂️|🚣🏿‍♀️|🚣🏿‍♂️|🚴🏻‍♀️|🚴🏻‍♂️|🚴🏼‍♀️|🚴🏼‍♂️|🚴🏽‍♀️|🚴🏽‍♂️|🚴🏾‍♀️|🚴🏾‍♂️|🚴🏿‍♀️|🚴🏿‍♂️|🚵🏻‍♀️|🚵🏻‍♂️|🚵🏼‍♀️|🚵🏼‍♂️|🚵🏽‍♀️|🚵🏽‍♂️|🚵🏾‍♀️|🚵🏾‍♂️|🚵🏿‍♀️|🚵🏿‍♂️|🚶🏻‍♀️|🚶🏻‍♂️|🚶🏻‍➡️|🚶🏼‍♀️|🚶🏼‍♂️|🚶🏼‍➡️|🚶🏽‍♀️|🚶🏽‍♂️|🚶🏽‍➡️|🚶🏾‍♀️|🚶🏾‍♂️|🚶🏾‍➡️|🚶🏿‍♀️|🚶🏿‍♂️|🚶🏿‍➡️|🤦🏻‍♀️|🤦🏻‍♂️|🤦🏼‍♀️|🤦🏼‍♂️|🤦🏽‍♀️|🤦🏽‍♂️|🤦🏾‍♀️|🤦🏾‍♂️|🤦🏿‍♀️|🤦🏿‍♂️|🤵🏻‍♀️|🤵🏻‍♂️|🤵🏼‍♀️|🤵🏼‍♂️|🤵🏽‍♀️|🤵🏽‍♂️|🤵🏾‍♀️|🤵🏾‍♂️|🤵🏿‍♀️|🤵🏿‍♂️|🤷🏻‍♀️|🤷🏻‍♂️|🤷🏼‍♀️|🤷🏼‍♂️|🤷🏽‍♀️|🤷🏽‍♂️|🤷🏾‍♀️|🤷🏾‍♂️|🤷🏿‍♀️|🤷🏿‍♂️|🤸🏻‍♀️|🤸🏻‍♂️|🤸🏼‍♀️|🤸🏼‍♂️|🤸🏽‍♀️|🤸🏽‍♂️|🤸🏾‍♀️|🤸🏾‍♂️|🤸🏿‍♀️|🤸🏿‍♂️|🤹🏻‍♀️|🤹🏻‍♂️|🤹🏼‍♀️|🤹🏼‍♂️|🤹🏽‍♀️|🤹🏽‍♂️|🤹🏾‍♀️|🤹🏾‍♂️|🤹🏿‍♀️|🤹🏿‍♂️|🤼🏻‍♀️|🤼🏻‍♂️|🤼🏼‍♀️|🤼🏼‍♂️|🤼🏽‍♀️|🤼🏽‍♂️|🤼🏾‍♀️|🤼🏾‍♂️|🤼🏿‍♀️|🤼🏿‍♂️|🤽🏻‍♀️|🤽🏻‍♂️|🤽🏼‍♀️|🤽🏼‍♂️|🤽🏽‍♀️|🤽🏽‍♂️|🤽🏾‍♀️|🤽🏾‍♂️|🤽🏿‍♀️|🤽🏿‍♂️|🤾🏻‍♀️|🤾🏻‍♂️|🤾🏼‍♀️|🤾🏼‍♂️|🤾🏽‍♀️|🤾🏽‍♂️|🤾🏾‍♀️|🤾🏾‍♂️|🤾🏿‍♀️|🤾🏿‍♂️|🦸🏻‍♀️|🦸🏻‍♂️|🦸🏼‍♀️|🦸🏼‍♂️|🦸🏽‍♀️|🦸🏽‍♂️|🦸🏾‍♀️|🦸🏾‍♂️|🦸🏿‍♀️|🦸🏿‍♂️|🦹🏻‍♀️|🦹🏻‍♂️|🦹🏼‍♀️|🦹🏼‍♂️|🦹🏽‍♀️|🦹🏽‍♂️|🦹🏾‍♀️|🦹🏾‍♂️|🦹🏿‍♀️|🦹🏿‍♂️|🧍🏻‍♀️|🧍🏻‍♂️|🧍🏼‍♀️|🧍🏼‍♂️|🧍🏽‍♀️|🧍🏽‍♂️|🧍🏾‍♀️|🧍🏾‍♂️|🧍🏿‍♀️|🧍🏿‍♂️|🧎🏻‍♀️|🧎🏻‍♂️|🧎🏻‍➡️|🧎🏼‍♀️|🧎🏼‍♂️|🧎🏼‍➡️|🧎🏽‍♀️|🧎🏽‍♂️|🧎🏽‍➡️|🧎🏾‍♀️|🧎🏾‍♂️|🧎🏾‍➡️|🧎🏿‍♀️|🧎🏿‍♂️|🧎🏿‍➡️|🧏🏻‍♀️|🧏🏻‍♂️|🧏🏼‍♀️|🧏🏼‍♂️|🧏🏽‍♀️|🧏🏽‍♂️|🧏🏾‍♀️|🧏🏾‍♂️|🧏🏿‍♀️|🧏🏿‍♂️|🧑🏻‍⚕️|🧑🏻‍⚖️|🧑🏻‍✈️|🧑🏻‍🌾|🧑🏻‍🍳|🧑🏻‍🍼|🧑🏻‍🎄|🧑🏻‍🎓|🧑🏻‍🎤|🧑🏻‍🎨|🧑🏻‍🏫|🧑🏻‍🏭|🧑🏻‍💻|🧑🏻‍💼|🧑🏻‍🔧|🧑🏻‍🔬|🧑🏻‍🚀|🧑🏻‍🚒|🧑🏻‍🦯|🧑🏻‍🦰|🧑🏻‍🦱|🧑🏻‍🦲|🧑🏻‍🦳|🧑🏻‍🦼|🧑🏻‍🦽|🧑🏻‍🩰|🧑🏼‍⚕️|🧑🏼‍⚖️|🧑🏼‍✈️|🧑🏼‍🌾|🧑🏼‍🍳|🧑🏼‍🍼|🧑🏼‍🎄|🧑🏼‍🎓|🧑🏼‍🎤|🧑🏼‍🎨|🧑🏼‍🏫|🧑🏼‍🏭|🧑🏼‍💻|🧑🏼‍💼|🧑🏼‍🔧|🧑🏼‍🔬|🧑🏼‍🚀|🧑🏼‍🚒|🧑🏼‍🦯|🧑🏼‍🦰|🧑🏼‍🦱|🧑🏼‍🦲|🧑🏼‍🦳|🧑🏼‍🦼|🧑🏼‍🦽|🧑🏼‍🩰|🧑🏽‍⚕️|🧑🏽‍⚖️|🧑🏽‍✈️|🧑🏽‍🌾|🧑🏽‍🍳|🧑🏽‍🍼|🧑🏽‍🎄|🧑🏽‍🎓|🧑🏽‍🎤|🧑🏽‍🎨|🧑🏽‍🏫|🧑🏽‍🏭|🧑🏽‍💻|🧑🏽‍💼|🧑🏽‍🔧|🧑🏽‍🔬|🧑🏽‍🚀|🧑🏽‍🚒|🧑🏽‍🦯|🧑🏽‍🦰|🧑🏽‍🦱|🧑🏽‍🦲|🧑🏽‍🦳|🧑🏽‍🦼|🧑🏽‍🦽|🧑🏽‍🩰|🧑🏾‍⚕️|🧑🏾‍⚖️|🧑🏾‍✈️|🧑🏾‍🌾|🧑🏾‍🍳|🧑🏾‍🍼|🧑🏾‍🎄|🧑🏾‍🎓|🧑🏾‍🎤|🧑🏾‍🎨|🧑🏾‍🏫|🧑🏾‍🏭|🧑🏾‍💻|🧑🏾‍💼|🧑🏾‍🔧|🧑🏾‍🔬|🧑🏾‍🚀|🧑🏾‍🚒|🧑🏾‍🦯|🧑🏾‍🦰|🧑🏾‍🦱|🧑🏾‍🦲|🧑🏾‍🦳|🧑🏾‍🦼|🧑🏾‍🦽|🧑🏾‍🩰|🧑🏿‍⚕️|🧑🏿‍⚖️|🧑🏿‍✈️|🧑🏿‍🌾|🧑🏿‍🍳|🧑🏿‍🍼|🧑🏿‍🎄|🧑🏿‍🎓|🧑🏿‍🎤|🧑🏿‍🎨|🧑🏿‍🏫|🧑🏿‍🏭|🧑🏿‍💻|🧑🏿‍💼|🧑🏿‍🔧|🧑🏿‍🔬|🧑🏿‍🚀|🧑🏿‍🚒|🧑🏿‍🦯|🧑🏿‍🦰|🧑🏿‍🦱|🧑🏿‍🦲|🧑🏿‍🦳|🧑🏿‍🦼|🧑🏿‍🦽|🧑🏿‍🩰|🧔🏻‍♀️|🧔🏻‍♂️|🧔🏼‍♀️|🧔🏼‍♂️|🧔🏽‍♀️|🧔🏽‍♂️|🧔🏾‍♀️|🧔🏾‍♂️|🧔🏿‍♀️|🧔🏿‍♂️|🧖🏻‍♀️|🧖🏻‍♂️|🧖🏼‍♀️|🧖🏼‍♂️|🧖🏽‍♀️|🧖🏽‍♂️|🧖🏾‍♀️|🧖🏾‍♂️|🧖🏿‍♀️|🧖🏿‍♂️|🧗🏻‍♀️|🧗🏻‍♂️|🧗🏼‍♀️|🧗🏼‍♂️|🧗🏽‍♀️|🧗🏽‍♂️|🧗🏾‍♀️|🧗🏾‍♂️|🧗🏿‍♀️|🧗🏿‍♂️|🧘🏻‍♀️|🧘🏻‍♂️|🧘🏼‍♀️|🧘🏼‍♂️|🧘🏽‍♀️|🧘🏽‍♂️|🧘🏾‍♀️|🧘🏾‍♂️|🧘🏿‍♀️|🧘🏿‍♂️|🧙🏻‍♀️|🧙🏻‍♂️|🧙🏼‍♀️|🧙🏼‍♂️|🧙🏽‍♀️|🧙🏽‍♂️|🧙🏾‍♀️|🧙🏾‍♂️|🧙🏿‍♀️|🧙🏿‍♂️|🧚🏻‍♀️|🧚🏻‍♂️|🧚🏼‍♀️|🧚🏼‍♂️|🧚🏽‍♀️|🧚🏽‍♂️|🧚🏾‍♀️|🧚🏾‍♂️|🧚🏿‍♀️|🧚🏿‍♂️|🧛🏻‍♀️|🧛🏻‍♂️|🧛🏼‍♀️|🧛🏼‍♂️|🧛🏽‍♀️|🧛🏽‍♂️|🧛🏾‍♀️|🧛🏾‍♂️|🧛🏿‍♀️|🧛🏿‍♂️|🧜🏻‍♀️|🧜🏻‍♂️|🧜🏼‍♀️|🧜🏼‍♂️|🧜🏽‍♀️|🧜🏽‍♂️|🧜🏾‍♀️|🧜🏾‍♂️|🧜🏿‍♀️|🧜🏿‍♂️|🧝🏻‍♀️|🧝🏻‍♂️|🧝🏼‍♀️|🧝🏼‍♂️|🧝🏽‍♀️|🧝🏽‍♂️|🧝🏾‍♀️|🧝🏾‍♂️|🧝🏿‍♀️|🧝🏿‍♂️|⛹🏻‍♀️|⛹🏻‍♂️|⛹🏼‍♀️|⛹🏼‍♂️|⛹🏽‍♀️|⛹🏽‍♂️|⛹🏾‍♀️|⛹🏾‍♂️|⛹🏿‍♀️|⛹🏿‍♂️|🏋️‍♀️|🏋️‍♂️|🏌️‍♀️|🏌️‍♂️|🏳️‍⚧️|🏳️‍🌈|🕵️‍♀️|🕵️‍♂️|😶‍🌫️|⛓️‍💥|⛹️‍♀️|⛹️‍♂️|❤️‍🔥|❤️‍🩹|🍄‍🟫|🍋‍🟩|🏃‍♀️|🏃‍♂️|🏃‍➡️|🏄‍♀️|🏄‍♂️|🏊‍♀️|🏊‍♂️|🏴‍☠️|🐕‍🦺|🐦‍🔥|🐻‍❄️|👨‍⚕️|👨‍⚖️|👨‍✈️|👨‍🌾|👨‍🍳|👨‍🍼|👨‍🎓|👨‍🎤|👨‍🎨|👨‍🏫|👨‍🏭|👨‍👦|👨‍👧|👨‍💻|👨‍💼|👨‍🔧|👨‍🔬|👨‍🚀|👨‍🚒|👨‍🦯|👨‍🦰|👨‍🦱|👨‍🦲|👨‍🦳|👨‍🦼|👨‍🦽|👩‍⚕️|👩‍⚖️|👩‍✈️|👩‍🌾|👩‍🍳|👩‍🍼|👩‍🎓|👩‍🎤|👩‍🎨|👩‍🏫|👩‍🏭|👩‍👦|👩‍👧|👩‍💻|👩‍💼|👩‍🔧|👩‍🔬|👩‍🚀|👩‍🚒|👩‍🦯|👩‍🦰|👩‍🦱|👩‍🦲|👩‍🦳|👩‍🦼|👩‍🦽|👮‍♀️|👮‍♂️|👯‍♀️|👯‍♂️|👰‍♀️|👰‍♂️|👱‍♀️|👱‍♂️|👳‍♀️|👳‍♂️|👷‍♀️|👷‍♂️|💁‍♀️|💁‍♂️|💂‍♀️|💂‍♂️|💆‍♀️|💆‍♂️|💇‍♀️|💇‍♂️|😮‍💨|😵‍💫|🙂‍↔️|🙂‍↕️|🙅‍♀️|🙅‍♂️|🙆‍♀️|🙆‍♂️|🙇‍♀️|🙇‍♂️|🙋‍♀️|🙋‍♂️|🙍‍♀️|🙍‍♂️|🙎‍♀️|🙎‍♂️|🚣‍♀️|🚣‍♂️|🚴‍♀️|🚴‍♂️|🚵‍♀️|🚵‍♂️|🚶‍♀️|🚶‍♂️|🚶‍➡️|🤦‍♀️|🤦‍♂️|🤵‍♀️|🤵‍♂️|🤷‍♀️|🤷‍♂️|🤸‍♀️|🤸‍♂️|🤹‍♀️|🤹‍♂️|🤼‍♀️|🤼‍♂️|🤽‍♀️|🤽‍♂️|🤾‍♀️|🤾‍♂️|🦸‍♀️|🦸‍♂️|🦹‍♀️|🦹‍♂️|🧍‍♀️|🧍‍♂️|🧎‍♀️|🧎‍♂️|🧎‍➡️|🧏‍♀️|🧏‍♂️|🧑‍⚕️|🧑‍⚖️|🧑‍✈️|🧑‍🌾|🧑‍🍳|🧑‍🍼|🧑‍🎄|🧑‍🎓|🧑‍🎤|🧑‍🎨|🧑‍🏫|🧑‍🏭|🧑‍💻|🧑‍💼|🧑‍🔧|🧑‍🔬|🧑‍🚀|🧑‍🚒|🧑‍🦯|🧑‍🦰|🧑‍🦱|🧑‍🦲|🧑‍🦳|🧑‍🦼|🧑‍🦽|🧑‍🧒|🧑‍🩰|🧔‍♀️|🧔‍♂️|🧖‍♀️|🧖‍♂️|🧗‍♀️|🧗‍♂️|🧘‍♀️|🧘‍♂️|🧙‍♀️|🧙‍♂️|🧚‍♀️|🧚‍♂️|🧛‍♀️|🧛‍♂️|🧜‍♀️|🧜‍♂️|🧝‍♀️|🧝‍♂️|🧞‍♀️|🧞‍♂️|🧟‍♀️|🧟‍♂️|\*️⃣|🇦🇨|🇦🇩|🇦🇪|🇦🇫|🇦🇬|🇦🇮|🇦🇱|🇦🇲|🇦🇴|🇦🇶|🇦🇷|🇦🇸|🇦🇹|🇦🇺|🇦🇼|🇦🇽|🇦🇿|🇧🇦|🇧🇧|🇧🇩|🇧🇪|🇧🇫|🇧🇬|🇧🇭|🇧🇮|🇧🇯|🇧🇱|🇧🇲|🇧🇳|🇧🇴|🇧🇶|🇧🇷|🇧🇸|🇧🇹|🇧🇻|🇧🇼|🇧🇾|🇧🇿|🇨🇦|🇨🇨|🇨🇩|🇨🇫|🇨🇬|🇨🇭|🇨🇮|🇨🇰|🇨🇱|🇨🇲|🇨🇳|🇨🇴|🇨🇵|🇨🇶|🇨🇷|🇨🇺|🇨🇻|🇨🇼|🇨🇽|🇨🇾|🇨🇿|🇩🇪|🇩🇬|🇩🇯|🇩🇰|🇩🇲|🇩🇴|🇩🇿|🇪🇦|🇪🇨|🇪🇪|🇪🇬|🇪🇭|🇪🇷|🇪🇸|🇪🇹|🇪🇺|🇫🇮|🇫🇯|🇫🇰|🇫🇲|🇫🇴|🇫🇷|🇬🇦|🇬🇧|🇬🇩|🇬🇪|🇬🇫|🇬🇬|🇬🇭|🇬🇮|🇬🇱|🇬🇲|🇬🇳|🇬🇵|🇬🇶|🇬🇷|🇬🇸|🇬🇹|🇬🇺|🇬🇼|🇬🇾|🇭🇰|🇭🇲|🇭🇳|🇭🇷|🇭🇹|🇭🇺|🇮🇨|🇮🇩|🇮🇪|🇮🇱|🇮🇲|🇮🇳|🇮🇴|🇮🇶|🇮🇷|🇮🇸|🇮🇹|🇯🇪|🇯🇲|🇯🇴|🇯🇵|🇰🇪|🇰🇬|🇰🇭|🇰🇮|🇰🇲|🇰🇳|🇰🇵|🇰🇷|🇰🇼|🇰🇾|🇰🇿|🇱🇦|🇱🇧|🇱🇨|🇱🇮|🇱🇰|🇱🇷|🇱🇸|🇱🇹|🇱🇺|🇱🇻|🇱🇾|🇲🇦|🇲🇨|🇲🇩|🇲🇪|🇲🇫|🇲🇬|🇲🇭|🇲🇰|🇲🇱|🇲🇲|🇲🇳|🇲🇴|🇲🇵|🇲🇶|🇲🇷|🇲🇸|🇲🇹|🇲🇺|🇲🇻|🇲🇼|🇲🇽|🇲🇾|🇲🇿|🇳🇦|🇳🇨|🇳🇪|🇳🇫|🇳🇬|🇳🇮|🇳🇱|🇳🇴|🇳🇵|🇳🇷|🇳🇺|🇳🇿|🇴🇲|🇵🇦|🇵🇪|🇵🇫|🇵🇬|🇵🇭|🇵🇰|🇵🇱|🇵🇲|🇵🇳|🇵🇷|🇵🇸|🇵🇹|🇵🇼|🇵🇾|🇶🇦|🇷🇪|🇷🇴|🇷🇸|🇷🇺|🇷🇼|🇸🇦|🇸🇧|🇸🇨|🇸🇩|🇸🇪|🇸🇬|🇸🇭|🇸🇮|🇸🇯|🇸🇰|🇸🇱|🇸🇲|🇸🇳|🇸🇴|🇸🇷|🇸🇸|🇸🇹|🇸🇻|🇸🇽|🇸🇾|🇸🇿|🇹🇦|🇹🇨|🇹🇩|🇹🇫|🇹🇬|🇹🇭|🇹🇯|🇹🇰|🇹🇱|🇹🇲|🇹🇳|🇹🇴|🇹🇷|🇹🇹|🇹🇻|🇹🇼|🇹🇿|🇺🇦|🇺🇬|🇺🇲|🇺🇳|🇺🇸|🇺🇾|🇺🇿|🇻🇦|🇻🇨|🇻🇪|🇻🇬|🇻🇮|🇻🇳|🇻🇺|🇼🇫|🇼🇸|🇽🇰|🇾🇪|🇾🇹|🇿🇦|🇿🇲|🇿🇼|🎅🏻|🎅🏼|🎅🏽|🎅🏾|🎅🏿|🏂🏻|🏂🏼|🏂🏽|🏂🏾|🏂🏿|🏃🏻|🏃🏼|🏃🏽|🏃🏾|🏃🏿|🏄🏻|🏄🏼|🏄🏽|🏄🏾|🏄🏿|🏇🏻|🏇🏼|🏇🏽|🏇🏾|🏇🏿|🏊🏻|🏊🏼|🏊🏽|🏊🏾|🏊🏿|🏋🏻|🏋🏼|🏋🏽|🏋🏾|🏋🏿|🏌🏻|🏌🏼|🏌🏽|🏌🏾|🏌🏿|🐈‍⬛|🐦‍⬛|👂🏻|👂🏼|👂🏽|👂🏾|👂🏿|👃🏻|👃🏼|👃🏽|👃🏾|👃🏿|👆🏻|👆🏼|👆🏽|👆🏾|👆🏿|👇🏻|👇🏼|👇🏽|👇🏾|👇🏿|👈🏻|👈🏼|👈🏽|👈🏾|👈🏿|👉🏻|👉🏼|👉🏽|👉🏾|👉🏿|👊🏻|👊🏼|👊🏽|👊🏾|👊🏿|👋🏻|👋🏼|👋🏽|👋🏾|👋🏿|👌🏻|👌🏼|👌🏽|👌🏾|👌🏿|👍🏻|👍🏼|👍🏽|👍🏾|👍🏿|👎🏻|👎🏼|👎🏽|👎🏾|👎🏿|👏🏻|👏🏼|👏🏽|👏🏾|👏🏿|👐🏻|👐🏼|👐🏽|👐🏾|👐🏿|👦🏻|👦🏼|👦🏽|👦🏾|👦🏿|👧🏻|👧🏼|👧🏽|👧🏾|👧🏿|👨🏻|👨🏼|👨🏽|👨🏾|👨🏿|👩🏻|👩🏼|👩🏽|👩🏾|👩🏿|👫🏻|👫🏼|👫🏽|👫🏾|👫🏿|👬🏻|👬🏼|👬🏽|👬🏾|👬🏿|👭🏻|👭🏼|👭🏽|👭🏾|👭🏿|👮🏻|👮🏼|👮🏽|👮🏾|👮🏿|👯🏻|👯🏼|👯🏽|👯🏾|👯🏿|👰🏻|👰🏼|👰🏽|👰🏾|👰🏿|👱🏻|👱🏼|👱🏽|👱🏾|👱🏿|👲🏻|👲🏼|👲🏽|👲🏾|👲🏿|👳🏻|👳🏼|👳🏽|👳🏾|👳🏿|👴🏻|👴🏼|👴🏽|👴🏾|👴🏿|👵🏻|👵🏼|👵🏽|👵🏾|👵🏿|👶🏻|👶🏼|👶🏽|👶🏾|👶🏿|👷🏻|👷🏼|👷🏽|👷🏾|👷🏿|👸🏻|👸🏼|👸🏽|👸🏾|👸🏿|👼🏻|👼🏼|👼🏽|👼🏾|👼🏿|💁🏻|💁🏼|💁🏽|💁🏾|💁🏿|💂🏻|💂🏼|💂🏽|💂🏾|💂🏿|💃🏻|💃🏼|💃🏽|💃🏾|💃🏿|💅🏻|💅🏼|💅🏽|💅🏾|💅🏿|💆🏻|💆🏼|💆🏽|💆🏾|💆🏿|💇🏻|💇🏼|💇🏽|💇🏾|💇🏿|💏🏻|💏🏼|💏🏽|💏🏾|💏🏿|💑🏻|💑🏼|💑🏽|💑🏾|💑🏿|💪🏻|💪🏼|💪🏽|💪🏾|💪🏿|🕴🏻|🕴🏼|🕴🏽|🕴🏾|🕴🏿|🕵🏻|🕵🏼|🕵🏽|🕵🏾|🕵🏿|🕺🏻|🕺🏼|🕺🏽|🕺🏾|🕺🏿|🖐🏻|🖐🏼|🖐🏽|🖐🏾|🖐🏿|🖕🏻|🖕🏼|🖕🏽|🖕🏾|🖕🏿|🖖🏻|🖖🏼|🖖🏽|🖖🏾|🖖🏿|🙅🏻|🙅🏼|🙅🏽|🙅🏾|🙅🏿|🙆🏻|🙆🏼|🙆🏽|🙆🏾|🙆🏿|🙇🏻|🙇🏼|🙇🏽|🙇🏾|🙇🏿|🙋🏻|🙋🏼|🙋🏽|🙋🏾|🙋🏿|🙌🏻|🙌🏼|🙌🏽|🙌🏾|🙌🏿|🙍🏻|🙍🏼|🙍🏽|🙍🏾|🙍🏿|🙎🏻|🙎🏼|🙎🏽|🙎🏾|🙎🏿|🙏🏻|🙏🏼|🙏🏽|🙏🏾|🙏🏿|🚣🏻|🚣🏼|🚣🏽|🚣🏾|🚣🏿|🚴🏻|🚴🏼|🚴🏽|🚴🏾|🚴🏿|🚵🏻|🚵🏼|🚵🏽|🚵🏾|🚵🏿|🚶🏻|🚶🏼|🚶🏽|🚶🏾|🚶🏿|🛀🏻|🛀🏼|🛀🏽|🛀🏾|🛀🏿|🛌🏻|🛌🏼|🛌🏽|🛌🏾|🛌🏿|🤌🏻|🤌🏼|🤌🏽|🤌🏾|🤌🏿|🤏🏻|🤏🏼|🤏🏽|🤏🏾|🤏🏿|🤘🏻|🤘🏼|🤘🏽|🤘🏾|🤘🏿|🤙🏻|🤙🏼|🤙🏽|🤙🏾|🤙🏿|🤚🏻|🤚🏼|🤚🏽|🤚🏾|🤚🏿|🤛🏻|🤛🏼|🤛🏽|🤛🏾|🤛🏿|🤜🏻|🤜🏼|🤜🏽|🤜🏾|🤜🏿|🤝🏻|🤝🏼|🤝🏽|🤝🏾|🤝🏿|🤞🏻|🤞🏼|🤞🏽|🤞🏾|🤞🏿|🤟🏻|🤟🏼|🤟🏽|🤟🏾|🤟🏿|🤦🏻|🤦🏼|🤦🏽|🤦🏾|🤦🏿|🤰🏻|🤰🏼|🤰🏽|🤰🏾|🤰🏿|🤱🏻|🤱🏼|🤱🏽|🤱🏾|🤱🏿|🤲🏻|🤲🏼|🤲🏽|🤲🏾|🤲🏿|🤳🏻|🤳🏼|🤳🏽|🤳🏾|🤳🏿|🤴🏻|🤴🏼|🤴🏽|🤴🏾|🤴🏿|🤵🏻|🤵🏼|🤵🏽|🤵🏾|🤵🏿|🤶🏻|🤶🏼|🤶🏽|🤶🏾|🤶🏿|🤷🏻|🤷🏼|🤷🏽|🤷🏾|🤷🏿|🤸🏻|🤸🏼|🤸🏽|🤸🏾|🤸🏿|🤹🏻|🤹🏼|🤹🏽|🤹🏾|🤹🏿|🤼🏻|🤼🏼|🤼🏽|🤼🏾|🤼🏿|🤽🏻|🤽🏼|🤽🏽|🤽🏾|🤽🏿|🤾🏻|🤾🏼|🤾🏽|🤾🏾|🤾🏿|🥷🏻|🥷🏼|🥷🏽|🥷🏾|🥷🏿|🦵🏻|🦵🏼|🦵🏽|🦵🏾|🦵🏿|🦶🏻|🦶🏼|🦶🏽|🦶🏾|🦶🏿|🦸🏻|🦸🏼|🦸🏽|🦸🏾|🦸🏿|🦹🏻|🦹🏼|🦹🏽|🦹🏾|🦹🏿|🦻🏻|🦻🏼|🦻🏽|🦻🏾|🦻🏿|🧍🏻|🧍🏼|🧍🏽|🧍🏾|🧍🏿|🧎🏻|🧎🏼|🧎🏽|🧎🏾|🧎🏿|🧏🏻|🧏🏼|🧏🏽|🧏🏾|🧏🏿|🧑🏻|🧑🏼|🧑🏽|🧑🏾|🧑🏿|🧒🏻|🧒🏼|🧒🏽|🧒🏾|🧒🏿|🧓🏻|🧓🏼|🧓🏽|🧓🏾|🧓🏿|🧔🏻|🧔🏼|🧔🏽|🧔🏾|🧔🏿|🧕🏻|🧕🏼|🧕🏽|🧕🏾|🧕🏿|🧖🏻|🧖🏼|🧖🏽|🧖🏾|🧖🏿|🧗🏻|🧗🏼|🧗🏽|🧗🏾|🧗🏿|🧘🏻|🧘🏼|🧘🏽|🧘🏾|🧘🏿|🧙🏻|🧙🏼|🧙🏽|🧙🏾|🧙🏿|🧚🏻|🧚🏼|🧚🏽|🧚🏾|🧚🏿|🧛🏻|🧛🏼|🧛🏽|🧛🏾|🧛🏿|🧜🏻|🧜🏼|🧜🏽|🧜🏾|🧜🏿|🧝🏻|🧝🏼|🧝🏽|🧝🏾|🧝🏿|🫃🏻|🫃🏼|🫃🏽|🫃🏾|🫃🏿|🫄🏻|🫄🏼|🫄🏽|🫄🏾|🫄🏿|🫅🏻|🫅🏼|🫅🏽|🫅🏾|🫅🏿|🫰🏻|🫰🏼|🫰🏽|🫰🏾|🫰🏿|🫱🏻|🫱🏼|🫱🏽|🫱🏾|🫱🏿|🫲🏻|🫲🏼|🫲🏽|🫲🏾|🫲🏿|🫳🏻|🫳🏼|🫳🏽|🫳🏾|🫳🏿|🫴🏻|🫴🏼|🫴🏽|🫴🏾|🫴🏿|🫵🏻|🫵🏼|🫵🏽|🫵🏾|🫵🏿|🫶🏻|🫶🏼|🫶🏽|🫶🏾|🫶🏿|🫷🏻|🫷🏼|🫷🏽|🫷🏾|🫷🏿|🫸🏻|🫸🏼|🫸🏽|🫸🏾|🫸🏿|#️⃣|0️⃣|1️⃣|2️⃣|3️⃣|4️⃣|5️⃣|6️⃣|7️⃣|8️⃣|9️⃣|☝🏻|☝🏼|☝🏽|☝🏾|☝🏿|⛹🏻|⛹🏼|⛹🏽|⛹🏾|⛹🏿|✊🏻|✊🏼|✊🏽|✊🏾|✊🏿|✋🏻|✋🏼|✋🏽|✋🏾|✋🏿|✌🏻|✌🏼|✌🏽|✌🏾|✌🏿|✍🏻|✍🏼|✍🏽|✍🏾|✍🏿|🅰️|🅱️|🅾️|🅿️|🈂️|🈷️|🌡️|🌤️|🌥️|🌦️|🌧️|🌨️|🌩️|🌪️|🌫️|🌬️|🌶️|🍽️|🎖️|🎗️|🎙️|🎚️|🎛️|🎞️|🎟️|🏋️|🏌️|🏍️|🏎️|🏔️|🏕️|🏖️|🏗️|🏘️|🏙️|🏚️|🏛️|🏜️|🏝️|🏞️|🏟️|🏳️|🏵️|🏷️|🐿️|👁️|📽️|🕉️|🕊️|🕯️|🕰️|🕳️|🕴️|🕵️|🕶️|🕷️|🕸️|🕹️|🖇️|🖊️|🖋️|🖌️|🖍️|🖐️|🖥️|🖨️|🖱️|🖲️|🖼️|🗂️|🗃️|🗄️|🗑️|🗒️|🗓️|🗜️|🗝️|🗞️|🗡️|🗣️|🗨️|🗯️|🗳️|🗺️|🛋️|🛍️|🛎️|🛏️|🛠️|🛡️|🛢️|🛣️|🛤️|🛥️|🛩️|🛰️|🛳️|©️|®️|‼️|⁉️|™️|ℹ️|↔️|↕️|↖️|↗️|↘️|↙️|↩️|↪️|⌨️|⏏️|⏭️|⏮️|⏯️|⏱️|⏲️|⏸️|⏹️|⏺️|Ⓜ️|▪️|▫️|▶️|◀️|◻️|◼️|☀️|☁️|☂️|☃️|☄️|☎️|☑️|☘️|☝️|☠️|☢️|☣️|☦️|☪️|☮️|☯️|☸️|☹️|☺️|♀️|♂️|♟️|♠️|♣️|♥️|♦️|♨️|♻️|♾️|⚒️|⚔️|⚕️|⚖️|⚗️|⚙️|⚛️|⚜️|⚠️|⚧️|⚰️|⚱️|⛈️|⛏️|⛑️|⛓️|⛩️|⛰️|⛱️|⛴️|⛷️|⛸️|⛹️|✂️|✈️|✉️|✌️|✍️|✏️|✒️|✔️|✖️|✝️|✡️|✳️|✴️|❄️|❇️|❣️|❤️|➡️|⤴️|⤵️|⬅️|⬆️|⬇️|〰️|〽️|㊗️|㊙️|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55\u{1F004}\u{1F0CF}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F201}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F236}\u{1F238}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F320}\u{1F32D}-\u{1F335}\u{1F337}-\u{1F37C}\u{1F37E}-\u{1F393}\u{1F3A0}-\u{1F3CA}\u{1F3CF}-\u{1F3D3}\u{1F3E0}-\u{1F3F0}\u{1F3F4}\u{1F3F8}-\u{1F43E}\u{1F440}\u{1F442}-\u{1F4FC}\u{1F4FF}-\u{1F53D}\u{1F54B}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F57A}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5FB}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CC}\u{1F6D0}-\u{1F6D2}\u{1F6D5}-\u{1F6D8}\u{1F6DC}-\u{1F6DF}\u{1F6EB}\u{1F6EC}\u{1F6F4}-\u{1F6FC}\u{1F7E0}-\u{1F7EB}\u{1F7F0}\u{1F90C}-\u{1F93A}\u{1F93C}-\u{1F945}\u{1F947}-\u{1F9FF}\u{1FA70}-\u{1FA7C}\u{1FA80}-\u{1FA8A}\u{1FA8E}-\u{1FAC6}\u{1FAC8}\u{1FACD}-\u{1FADC}\u{1FADF}-\u{1FAEA}\u{1FAEF}-\u{1FAF8}])/gu).length):n=l().createElement(l().Fragment,null,l().createElement("i",{className:"material-icons gray"},"warning_amber")," ",l().createElement("i",{className:"gray"},l().createElement(h.FormattedMessage,{id:"invalid_content",defaultMessage:[{type:0,value:"invalid content"}]})));return l().createElement("li",{ref:this.props.innerRef,className:e},this.props.isGroup&&this.props.response?l().createElement("div",{className:"avatar-box"},i?l().createElement(Us.A,{tinode:this.props.tinode,topic:this.props.userFrom,title:this.props.userName,avatar:s}):null):null,l().createElement("div",null,l().createElement("div",{className:t},l().createElement("div",{className:"content-meta"},l().createElement("div",{className:a},n,r),this.props.timestamp?l().createElement(ta,{edited:this.props.edited,timestamp:this.props.timestamp,received:this.props.received}):null),this.props.showContextMenu?l().createElement("span",{className:"menuTrigger"},l().createElement("a",{href:"#",onClick:this.handleContextClick},l().createElement("i",{className:"material-icons"},"expand_more"))):null),i?l().createElement("div",{className:"author"},this.props.userName||l().createElement("i",null,l().createElement(h.FormattedMessage,{id:"user_not_found",defaultMessage:[{type:0,value:"Not found"}]}))):null))}}const na=(0,h.injectIntl)(ia);var ra=l().forwardRef((e,t)=>l().createElement(na,aa({innerRef:t},e))),oa=r(504);const la=l().lazy(e=>Promise.all([r.e(537),r.e(0)]).then(r.bind(r,4e3))),ca=(0,h.defineMessages)({messaging_disabled:{id:"messaging_disabled_prompt",defaultMessage:[{type:0,value:"Messaging disabled"}]},type_new_message:{id:"new_message_prompt",defaultMessage:[{type:0,value:"New message"}]},add_image_caption:{id:"image_caption_prompt",defaultMessage:[{type:0,value:"Image caption"}]},file_attachment_too_large:{id:"file_attachment_too_large",defaultMessage:[{type:0,value:"The file size "},{type:1,value:"size"},{type:0,value:" exceeds the "},{type:1,value:"limit"},{type:0,value:" limit."}]},cannot_initiate_upload:{id:"cannot_initiate_file_upload",defaultMessage:[{type:0,value:"Cannot initiate file upload."}]},icon_title_record_voice:{id:"icon_title_record_voice",defaultMessage:[{type:0,value:"Record voice message"}]},icon_title_attach_file:{id:"icon_title_attach_file",defaultMessage:[{type:0,value:"Attach file"}]},icon_title_add_image:{id:"icon_title_add_image",defaultMessage:[{type:0,value:"Add image"}]},icon_title_send:{id:"icon_title_send",defaultMessage:[{type:0,value:"Send message"}]}});class ha extends l().PureComponent{constructor(e){super(e),this.state={quote:null,message:"",audioRec:!1,audioAvailable:!(!navigator.mediaDevices||!navigator.mediaDevices.getUserMedia)},this.keypressTimestamp=0,this.handlePasteEvent=this.handlePasteEvent.bind(this),this.handleAttachImage=this.handleAttachImage.bind(this),this.handleAttachFile=this.handleAttachFile.bind(this),this.handleAttachAudio=this.handleAttachAudio.bind(this),this.handleSend=this.handleSend.bind(this),this.handleKeyPress=this.handleKeyPress.bind(this),this.handleMessageTyping=this.handleMessageTyping.bind(this),this.handleDropAttach=this.handleDropAttach.bind(this),this.handleQuoteClick=this.handleQuoteClick.bind(this),this.formatReply=this.formatReply.bind(this)}componentDidMount(){this.messageEditArea&&(this.messageEditArea.addEventListener("paste",this.handlePasteEvent,!1),"all"==window.getComputedStyle(this.messageEditArea).getPropertyValue("transition-property")&&this.messageEditArea.focus()),this.setState({quote:this.formatReply()})}componentWillUnmount(){this.messageEditArea&&this.messageEditArea.removeEventListener("paste",this.handlePasteEvent,!1)}componentDidUpdate(e){if(this.messageEditArea&&("all"==window.getComputedStyle(this.messageEditArea).getPropertyValue("transition-property")&&this.messageEditArea.focus(),this.messageEditArea.style.height="0px",this.messageEditArea.style.height=this.messageEditArea.scrollHeight+"px"),e.topicName!=this.props.topicName)this.setState({message:this.props.initMessage||"",audioRec:!1,quote:null});else if(e.initMessage!=this.props.initMessage){const e=this.props.initMessage||"";this.setState({message:e},t=>{this.messageEditArea.scrollTop=this.messageEditArea.scrollHeight,this.messageEditArea.setSelectionRange(e.length,e.length)})}e.reply!=this.props.reply&&this.setState({quote:this.formatReply()})}formatReply(){return this.props.reply?Ts.Drafty.format(this.props.reply.content,sa.NV,{formatMessage:this.props.intl.formatMessage.bind(this.props.intl),authorizeURL:this.props.tinode.authorizeURL.bind(this.props.tinode)}):null}handlePasteEvent(e){this.props.disabled||(0,Os.iJ)(e,e=>{this.props.onAttachImage(e)},e=>{this.props.onAttachFile(e)},this.props.onError)&&e.preventDefault()}handleAttachImage(e){e.target.files&&e.target.files.length>0&&this.props.onAttachImage(e.target.files[0]),e.target.value=""}handleAttachFile(e){e.target.files&&e.target.files.length>0&&this.props.onAttachFile(e.target.files[0]),e.target.value=""}handleDropAttach(e){e&&e.length>0&&this.props.onAttachFile(e[0])}handleAttachAudio(e,t,s){this.setState({audioRec:!1}),this.props.onAttachAudio(e,t,s)}handleSend(e){e.preventDefault();const t=this.state.message.trim();(t||this.props.acceptBlank||this.props.noInput)&&(this.props.onSendMessage(t),this.setState({message:""}))}handleKeyPress(e){if(this.state.audioRec)return e.preventDefault(),void e.stopPropagation();"Enter"===e.key&&("plain"==this.props.sendOnEnter?e.shiftKey||(e.preventDefault(),e.stopPropagation(),this.handleSend(e)):(e.ctrlKey||e.metaKey)&&(e.preventDefault(),e.stopPropagation(),this.handleSend(e)))}handleMessageTyping(e){if(this.setState({message:e.target.value}),this.props.onKeyPress){const e=(new Date).getTime();e-this.keypressTimestamp>ks.NR&&(this.props.onKeyPress(),this.keypressTimestamp=e)}}handleQuoteClick(e){if(e.preventDefault(),e.stopPropagation(),this.props.reply&&this.props.onQuoteClick){const e=this.props.reply.seq;this.props.onQuoteClick(e)}}render(){const{formatMessage:e}=this.props.intl,t=this.props.disabled?e(ca.messaging_disabled):this.props.messagePrompt?e(ca[this.props.messagePrompt]):e(ca.type_new_message),s=this.props.reply&&this.props.reply.editing?"check_circle":"send",a=this.state.quote?l().createElement("div",{id:"reply-quote-preview"},l().createElement("div",{className:"cancel"},l().createElement("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onCancelReply()}},l().createElement("i",{className:"material-icons gray"},"close"))),this.state.quote):null,i=this.state.audioAvailable&&this.props.onAttachAudio;return l().createElement("div",{id:"send-message-wrapper"},this.props.noInput?null:a,l().createElement("div",{id:"send-message-panel"},this.props.disabled?l().createElement("div",{id:"writing-disabled"},t):l().createElement(l().Fragment,null,this.props.onAttachFile&&!this.state.audioRec?l().createElement(l().Fragment,null,l().createElement("a",{href:"#",onClick:e=>{e.preventDefault(),this.attachImage.click()},title:e(ca.icon_title_add_image)},l().createElement("i",{className:"material-icons secondary"},"photo")),l().createElement("a",{href:"#",onClick:e=>{e.preventDefault(),this.attachFile.click()},title:e(ca.icon_title_attach_file)},l().createElement("i",{className:"material-icons secondary"},"attach_file"))):null,this.props.noInput?a||l().createElement("div",{className:"hr thin"}):this.state.audioRec?l().createElement(o.Suspense,{fallback:l().createElement("div",null,l().createElement(h.FormattedMessage,{id:"loading_note",defaultMessage:[{type:0,value:"Loading..."}]}))},l().createElement(la,{onRecordingProgress:e=>this.props.onKeyPress(!0),onDeleted:e=>this.setState({audioRec:!1}),onFinished:this.handleAttachAudio})):l().createElement("textarea",{id:"send-message-input",placeholder:t,value:this.state.message,onChange:this.handleMessageTyping,onKeyDown:this.handleKeyPress,ref:e=>{this.messageEditArea=e}}),this.state.message||!i?l().createElement("a",{href:"#",onClick:this.handleSend,title:e(ca.icon_title_send)},l().createElement("i",{className:"material-icons"},s)):this.state.audioRec?null:l().createElement("a",{href:"#",onClick:e=>{e.preventDefault(),this.setState({audioRec:!0})},title:e(ca.icon_title_record_voice)},l().createElement("i",{className:"material-icons"},"mic")),l().createElement("input",{type:"file",ref:e=>{this.attachFile=e},onChange:this.handleAttachFile,style:{display:"none"}}),l().createElement("input",{type:"file",ref:e=>{this.attachImage=e},accept:"image/*, video/*",onChange:this.handleAttachImage,style:{display:"none"}}))))}}var da=(0,h.injectIntl)(ha);class pa extends l().PureComponent{constructor(e){super(e),this.handleSendDoc=this.handleSendDoc.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this)}componentDidMount(){document.addEventListener("keydown",this.handleKeyDown)}componentWillUnmount(){document.removeEventListener("keydown",this.handleKeyDown)}handleKeyDown(e){e.preventDefault(),"Escape"===e.key&&this.props.onClose()}handleSendDoc(e){this.props.onClose(),this.props.onSendMessage(this.props.content.file)}render(){return this.props.content?l().createElement("div",{id:"image-preview"},l().createElement("div",{id:"image-preview-caption-panel"},l().createElement("span",null,this.props.content.name),l().createElement("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onClose()}},l().createElement("i",{className:"material-icons gray"},"close"))),l().createElement("div",{id:"image-preview-container"},l().createElement("div",{className:"doc-card"},l().createElement("i",{className:"material-icons gray"},function(e){const t={default:"insert_drive_file",image:"image",text:"description",video:"theaters"};return t[e]||t[(e||"").split("/")[0]]||t.default}(this.props.content.type)),l().createElement("div",null,l().createElement("b",null,l().createElement(h.FormattedMessage,{id:"label_file_name",defaultMessage:[{type:0,value:"File name:"}]}))," ",(0,js.Tu)(this.props.content.name,24)||"-"),l().createElement("div",null,l().createElement("b",null,l().createElement(h.FormattedMessage,{id:"label_content_type",defaultMessage:[{type:0,value:"Content type:"}]}))," ",this.props.content.type||"application/octet-stream"),l().createElement("div",null,l().createElement("b",null,l().createElement(h.FormattedMessage,{id:"label_size",defaultMessage:[{type:0,value:"Size:"}]}))," ",(0,js.lX)(this.props.content.size)))),l().createElement(da,{noInput:!0,tinode:this.props.tinode,reply:this.props.reply,onCancelReply:this.props.onCancelReply,onSendMessage:this.handleSendDoc,onError:this.props.onError})):null}}var ua=r(1334);class ma extends l().Component{constructor(e){super(e)}render(){const e=[],t=(this.props.subscribers||[]).length,s=Math.min(ks.DT,t);return(this.props.subscribers||[]).some(t=>(e.push(l().createElement("div",{className:"avatar-box",key:t.user},l().createElement(Us.A,{tinode:this.props.tinode,topic:t.user,avatar:(0,Os.to)(t.public?t.public.photo:null)||!0,title:t.public?t.public.fn:null}))),e.length==s)),0==e.length?null:l().createElement("div",{id:"topic-users"},e," ",t>s?l().createElement("span",null,l().createElement(h.FormattedMessage,{id:"more_online_members",defaultMessage:[{type:0,value:"+"},{type:1,value:"overflow"},{type:0,value:" more"}],values:{overflow:t-s}})):null)}}class ga extends l().PureComponent{constructor(e){super(e),this.state={width:0,height:0},this.handleSendImage=this.handleSendImage.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this)}componentDidMount(){document.addEventListener("keydown",this.handleKeyDown)}componentWillUnmount(){document.removeEventListener("keydown",this.handleKeyDown)}handleKeyDown(e){this.props.onSendMessage||(e.preventDefault(),"Escape"===e.key&&this.props.onClose())}assignWidth(e){if(e&&!this.state.width){const t=e.getBoundingClientRect();this.setState({width:0|t.width,height:0|t.height})}}handleSendImage(e){this.props.onClose(),this.props.onSendMessage(e,this.props.content.blob)}render(){if(!this.props.content)return null;const e=(0,Os.ae)(this.props.content.width,this.props.content.height,this.state.width,this.state.height,!1),t=e?{width:e.dstWidth+"px",height:e.dstHeight+"px"}:this.props.content.width>this.props.content.height?{width:"100%"}:{height:"100%"};t.maxWidth="100%",t.maxHeight="100%";const s=Math.max((this.state.width/ks.JS/1.5|0)-2,12),a=(0,js.Tu)(this.props.content.filename,s)||"-",i=this.props.content.width||"-",n=this.props.content.height||"-",r=(0,Xs.FH)(this.props.content.url);return l().createElement("div",{id:"image-preview"},l().createElement("div",{id:"image-preview-caption-panel"},this.props.onSendMessage?l().createElement("span",null,a):l().createElement("a",{href:r,download:this.props.content.filename},l().createElement("i",{className:"material-icons"},"file_download")," ",l().createElement(h.FormattedMessage,{id:"download_action",defaultMessage:[{type:0,value:"download"}]})),l().createElement("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onClose()}},l().createElement("i",{className:"material-icons gray"},"close"))),l().createElement("div",{id:"image-preview-container",ref:e=>this.assignWidth(e)},l().createElement("img",{src:this.props.content.url,style:t,className:"image-preview",alt:this.props.content.filename})),this.props.onSendMessage?l().createElement(da,{messagePrompt:"add_image_caption",acceptBlank:!0,tinode:this.props.tinode,reply:this.props.reply,onCancelReply:this.props.onCancelReply,onSendMessage:this.handleSendImage,onError:this.props.onError}):l().createElement("div",{id:"image-preview-footer"},l().createElement("div",null,l().createElement("div",null,l().createElement("b",null,l().createElement(h.FormattedMessage,{id:"label_file_name",defaultMessage:[{type:0,value:"File name:"}]}))),l().createElement("div",null,l().createElement("span",{title:this.props.content.filename},a))),l().createElement("div",null,l().createElement("div",null,l().createElement("b",null,l().createElement(h.FormattedMessage,{id:"label_content_type",defaultMessage:[{type:0,value:"Content type:"}]}))),l().createElement("div",null,this.props.content.type)),l().createElement("div",null,l().createElement("div",null,l().createElement("b",null,l().createElement(h.FormattedMessage,{id:"label_size",defaultMessage:[{type:0,value:"Size:"}]}))),l().createElement("div",null,i," × ",n," px; ",(0,js.lX)(this.props.content.size)))))}}class fa extends l().PureComponent{constructor(e){super(e),this.handleButtonAction=this.handleButtonAction.bind(this)}handleButtonAction(e,t){e.preventDefault(),this.props.onAction(t)}render(){return l().createElement("div",{className:"accept-invite-panel"},l().createElement("div",{className:"title"},l().createElement(h.FormattedMessage,{id:"chat_invitation",defaultMessage:[{type:0,value:"You are invited to start a new chat. What would you like to do?"}]})),l().createElement("div",{className:"footer"},l().createElement("button",{className:"primary",onClick:e=>{this.handleButtonAction(e,"accept")}},l().createElement(h.FormattedMessage,{id:"chat_invitation_accept",defaultMessage:[{type:0,value:"Accept"}]})),l().createElement("button",{className:"secondary",onClick:e=>{this.handleButtonAction(e,"delete")}},l().createElement(h.FormattedMessage,{id:"chat_invitation_ignore",defaultMessage:[{type:0,value:"Ignore"}]})),l().createElement("button",{className:"secondary",onClick:e=>{this.handleButtonAction(e,"block")}},l().createElement(h.FormattedMessage,{id:"chat_invitation_block",defaultMessage:[{type:0,value:"Block"}]}))))}}var va=r(1013);class ba extends l().PureComponent{render(){const e=ks.C3+" ("+Ts.Tinode.getLibrary()+")";return l().createElement("div",{id:"dummy-view"},l().createElement("div",null,l().createElement("a",{href:"https://github.com/tinode/chat/"},l().createElement("img",{id:"logo",alt:"logo",src:"img/logo.svg"}),l().createElement("h2",null,"Tinode Web")),l().createElement("p",null,l().createElement(h.FormattedMessage,{id:"label_client",defaultMessage:[{type:0,value:"Client:"}]})," ",e),l().createElement("p",null,l().createElement(h.FormattedMessage,{id:"label_server",defaultMessage:[{type:0,value:"Server:"}]})," ",this.props.serverVersion," (",this.props.serverAddress,")")))}}class Ea extends l().PureComponent{constructor(e){super(e)}render(){let e=null,t="bubble";return this.props.date&&(e=l().createElement(l().Fragment,null,this.props.date),t+=" date"),e?l().createElement("li",{className:"meta"},l().createElement("div",{className:t},l().createElement("div",{className:"message-content"},e))):l().createElement(l().Fragment,null,null)}}const ya=(0,h.defineMessages)({message_not_found:{id:"message_not_found",defaultMessage:[{type:0,value:"message not found"}]},message_deleted:{id:"message_deleted",defaultMessage:[{type:0,value:"message deleted"}]}});class wa extends l().PureComponent{constructor(e){super(e),this.touchX=null,this.touchY=null,this.touchSurface=l().createRef(),this.getSelectedIndex=this.getSelectedIndex.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleSelected=this.handleSelected.bind(this),this.handleMoveNext=this.handleMoveNext.bind(this),this.handleMovePrev=this.handleMovePrev.bind(this),this.handleTouchEventStart=this.handleTouchEventStart.bind(this),this.handleTouchEventEnd=this.handleTouchEventEnd.bind(this),this.handleTouchCancel=this.handleTouchCancel.bind(this)}componentDidMount(){this.touchSurface.current.addEventListener("touchstart",this.handleTouchEventStart,{passive:!0}),this.touchSurface.current.addEventListener("touchend",this.handleTouchEventEnd,{passive:!0}),this.touchSurface.current.addEventListener("touchcancel",this.handleTouchCancel,{passive:!0})}componentWillUnmount(){this.touchSurface.current.removeEventListener("touchstart",this.handleTouchEventStart),this.touchSurface.current.removeEventListener("touchend",this.handleTouchEventEnd),this.touchSurface.current.removeEventListener("touchcancel",this.handleTouchCancel)}getSelectedIndex(){return(this.props.pins||[]).length-this.props.selected-1}handleCancel(e){e.preventDefault(),this.props.onCancel(this.props.pins[this.getSelectedIndex()])}handleSelected(e){e.preventDefault(),this.props.onSelected(this.props.pins[this.getSelectedIndex()])}handleMoveNext(e,t){t||e.preventDefault(),e.stopPropagation();const s=Math.max(this.props.selected-1,0);s!=this.props.selected&&this.props.setSelected(s)}handleMovePrev(e,t){t||e.preventDefault(),e.stopPropagation();const s=Math.min(this.props.selected+1,(this.props.pins||[]).length-1);s!=this.props.selected&&this.props.setSelected(s)}handleTouchEventStart(e){1==e.touches.length&&(this.touchX=e.touches[0].clientX,this.touchY=e.touches[0].clientY)}handleTouchEventEnd(e){if(null===this.touchX||1!=e.changedTouches.length)return void(this.touchX=null);const t=this.touchX-e.changedTouches[0].clientX,s=this.touchY-e.changedTouches[0].clientY;this.touchX=null,Math.abs(t)>Math.abs(s)||Math.abs(s)0?this.handleMovePrev(e,!0):this.handleMoveNext(e,!0))}handleTouchCancel(){this.touchX=null}render(){const e=this.getSelectedIndex();let t=(this.props.messages||[])[e];t=t?t._deleted?l().createElement("i",{className:"gray"},this.props.intl.formatMessage(ya.message_deleted)):Ts.Drafty.format(t.content,sa.TU,{formatMessage:this.props.intl.formatMessage.bind(this.props.intl),authorizeURL:this.props.tinode.authorizeURL.bind(this.props.tinode)}):l().createElement("i",{className:"gray"},this.props.intl.formatMessage(ya.message_not_found));const s=[];return this.props.pins.forEach(t=>{const a=s.length==e?"adot":"dot";s.push(l().createElement("div",{key:t,className:a}))}),l().createElement("div",{id:"pinned-wrapper",ref:this.touchSurface},this.props.isAdmin?l().createElement("div",{className:"cancel"},l().createElement("a",{href:"#",onClick:this.handleCancel},l().createElement("i",{className:"material-icons gray"},"close"))):l().createElement("div",null,l().createElement("i",{className:"material-icons gray"},"push_pin")),l().createElement("div",{className:"pinned-scroll"},s),l().createElement("div",{className:"pinned",onClick:this.handleSelected},l().createElement("p",null,t)),l().createElement("div",{className:"pinned-menu"},l().createElement("span",{className:"menuTrigger upper"},e>0?l().createElement("a",{href:"#",onClick:this.handleMovePrev},l().createElement("i",{className:"material-icons"},"expand_less")):null),l().createElement("span",{className:"menuTrigger lower"},this.props.selected>0?l().createElement("a",{href:"#",onClick:this.handleMoveNext},l().createElement("i",{className:"material-icons"},"expand_more")):null)))}}var Ca=(0,h.injectIntl)(wa);const Sa=(0,h.defineMessages)({unrecognized_video_format:{id:"unrecognized_video_format",defaultMessage:[{type:0,value:"Format of this video is not recognized"}]}});class Ma extends l().PureComponent{constructor(e){super(e),this.videoRef=l().createRef(),this.handleSendVideo=this.handleSendVideo.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this)}componentDidMount(){document.addEventListener("keydown",this.handleKeyDown)}componentWillUnmount(){document.removeEventListener("keydown",this.handleKeyDown)}handleKeyDown(e){this.props.onSendMessage||(e.preventDefault(),"Escape"===e.key&&this.props.onClose())}handleSendVideo(e){this.props.onClose();const t={width:this.videoRef.current.videoWidth,height:this.videoRef.current.videoHeight,duration:1e3*this.videoRef.current.duration|0,mime:this.props.content.mime,name:this.props.content.filename};if(0==t.width||0==t.height)return void this.props.onError(this.props.intl.formatMessage(Sa.unrecognized_video_format),"err");const s=document.createElement("canvas");s.width=t.width,s.height=t.height;const a=s.getContext("2d");a.drawImage(this.videoRef.current,0,0,s.width,s.height),a.canvas.toBlob(s=>this.props.onSendMessage(e,this.props.content.blob,s,t),"image/jpeg",.75)}render(){if(!this.props.content)return null;const e=this.props.content.width||"-",t=this.props.content.height||"-",s=this.props.onSendMessage?"nodownload":"",a=!this.props.onSendMessage;return l().createElement("div",{id:"image-preview"},l().createElement("div",{id:"image-preview-caption-panel"},l().createElement("span",null,this.props.content.filename),l().createElement("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onClose()}},l().createElement("i",{className:"material-icons gray"},"close"))),l().createElement("div",{id:"image-preview-container"},l().createElement("video",{className:"image-preview",controls:!0,controlsList:s,disablePictureInPicture:!0,ref:this.videoRef,autoPlay:a,src:this.props.tinode.authorizeURL(this.props.content.url),poster:this.props.content.preview,alt:this.props.content.filename})),this.props.onSendMessage?l().createElement(da,{messagePrompt:"add_image_caption",acceptBlank:!0,tinode:this.props.tinode,reply:this.props.reply,onCancelReply:this.props.onCancelReply,onSendMessage:this.handleSendVideo,onError:this.props.onError}):l().createElement("div",{id:"image-preview-footer"},l().createElement("div",null,l().createElement("div",null,l().createElement("b",null,l().createElement(h.FormattedMessage,{id:"label_file_name",defaultMessage:[{type:0,value:"File name:"}]}))),l().createElement("div",null,l().createElement("span",{title:this.props.content.filename},this.props.content.filename))),l().createElement("div",null,l().createElement("div",null,l().createElement("b",null,l().createElement(h.FormattedMessage,{id:"label_content_type",defaultMessage:[{type:0,value:"Content type:"}]}))),l().createElement("div",null,this.props.content.type)),l().createElement("div",null,l().createElement("div",null,l().createElement("b",null,l().createElement(h.FormattedMessage,{id:"label_size",defaultMessage:[{type:0,value:"Size:"}]}))),l().createElement("div",null,e," × ",t," px; ",(0,js.lX)(this.props.content.size)))))}}var _a=(0,h.injectIntl)(Ma),Ta=r(7151);const Aa=(0,h.defineMessages)({online_now:{id:"online_now",defaultMessage:[{type:0,value:"online now"}]},last_seen:{id:"last_seen_timestamp",defaultMessage:[{type:0,value:"Last seen: "},{type:1,value:"timestamp"}]},not_found:{id:"title_not_found",defaultMessage:[{type:0,value:"Not found"}]},channel:{id:"channel",defaultMessage:[{type:0,value:"channel"}]},file_attachment_too_large:{id:"file_attachment_too_large",defaultMessage:[{type:0,value:"The file size "},{type:1,value:"size"},{type:0,value:" exceeds the "},{type:1,value:"limit"},{type:0,value:" limit."}]},invalid_content:{id:"invalid_content",defaultMessage:[{type:0,value:"invalid content"}]},editing_message:{id:"editing_message",defaultMessage:[{type:0,value:"Editing"}]},drag_file:{id:"drag_file",defaultMessage:[{type:0,value:"Drag file here"}]},self_topic_name:{id:"self_topic_name",defaultMessage:[{type:0,value:"Saved messages"}]},subscriber_count:{id:"subscriber_count",defaultMessage:[{type:6,value:"count",options:{one:{value:[{type:2,value:"count",style:null},{type:0,value:" subscriber"}]},two:{value:[{type:2,value:"count",style:null},{type:0,value:" subscribers"}]},three:{value:[{type:2,value:"count",style:null},{type:0,value:" subscribers"}]},few:{value:[{type:2,value:"count",style:null},{type:0,value:" subscribers"}]},many:{value:[{type:2,value:"count",style:null},{type:0,value:" subscribers"}]},other:{value:[{type:2,value:"count",style:null},{type:0,value:" subscribers"}]}},offset:0,pluralType:"cardinal"}]},member_count:{id:"member_count",defaultMessage:[{type:6,value:"count",options:{one:{value:[{type:2,value:"count",style:null},{type:0,value:" member"}]},two:{value:[{type:2,value:"count",style:null},{type:0,value:" members"}]},three:{value:[{type:2,value:"count",style:null},{type:0,value:" members"}]},few:{value:[{type:2,value:"count",style:null},{type:0,value:" members"}]},many:{value:[{type:2,value:"count",style:null},{type:0,value:" members"}]},other:{value:[{type:2,value:"count",style:null},{type:0,value:" members"}]}},offset:0,pluralType:"cardinal"}]}});function ka(e){if(e){const t=e.getExcessive()||"";return e.isJoiner("given")&&(t.includes("R")||t.includes("W"))}return!1}function Na(e){if(e){const t=e.getMissing()||"";return e.isJoiner("want")&&(t.includes("R")||t.includes("W"))}return!1}function Da(e){return 1==e||3==e}class Ia extends l().Component{constructor(e){super(e),this.state=Ia.getDerivedStateFromProps(e,{}),this.componentSetup=this.componentSetup.bind(this),this.leave=this.leave.bind(this),this.sendMessage=this.sendMessage.bind(this),this.retrySend=this.retrySend.bind(this),this.sendImageAttachment=this.sendImageAttachment.bind(this),this.sendVideoAttachment=this.sendVideoAttachment.bind(this),this.sendFileAttachment=this.sendFileAttachment.bind(this),this.sendAudioAttachment=this.sendAudioAttachment.bind(this),this.sendKeyPress=this.sendKeyPress.bind(this),this.subscribe=this.subscribe.bind(this),this.handleScrollReference=this.handleScrollReference.bind(this),this.mountDnDEvents=this.mountDnDEvents.bind(this),this.handleScrollEvent=this.handleScrollEvent.bind(this),this.handleDescChange=this.handleDescChange.bind(this),this.handleSubsUpdated=this.handleSubsUpdated.bind(this),this.handleMessageUpdate=this.handleMessageUpdate.bind(this),this.handleAuxUpdate=this.handleAuxUpdate.bind(this),this.handleAllMessagesReceived=this.handleAllMessagesReceived.bind(this),this.handleInfoReceipt=this.handleInfoReceipt.bind(this),this.handleExpandMedia=this.handleExpandMedia.bind(this),this.handleClosePreview=this.handleClosePreview.bind(this),this.handleCallPanelToggle=this.handleCallPanelToggle.bind(this),this.handleFormResponse=this.handleFormResponse.bind(this),this.handleContextClick=this.handleContextClick.bind(this),this.handleShowMessageContextMenu=this.handleShowMessageContextMenu.bind(this),this.handleNewChatAcceptance=this.handleNewChatAcceptance.bind(this),this.handleEnablePeer=this.handleEnablePeer.bind(this),this.handleAttachFile=this.handleAttachFile.bind(this),this.handleAttachImageOrVideo=this.handleAttachImageOrVideo.bind(this),this.handleCancelUpload=this.handleCancelUpload.bind(this),this.postReadNotification=this.postReadNotification.bind(this),this.clearNotificationQueue=this.clearNotificationQueue.bind(this),this.goToLatestMessage=this.goToLatestMessage.bind(this),this.handleFileDrop=this.handleFileDrop.bind(this),this.handlePickReply=this.handlePickReply.bind(this),this.handleEditMessage=this.handleEditMessage.bind(this),this.handleCancelReply=this.handleCancelReply.bind(this),this.handleQuoteClick=this.handleQuoteClick.bind(this),this.handleUnpinMessage=this.handleUnpinMessage.bind(this),this.handleCallHangup=this.handleCallHangup.bind(this),this.isDragEnabled=this.isDragEnabled.bind(this),this.handleDragStart=this.handleDragStart.bind(this),this.handleDragIn=this.handleDragIn.bind(this),this.handleDragOut=this.handleDragOut.bind(this),this.handleDrag=this.handleDrag.bind(this),this.handleDrop=this.handleDrop.bind(this),this.chatMessageRefs=[],this.getOrCreateMessageRef=this.getOrCreateMessageRef.bind(this),this.getVisibleMessageRange=this.getVisibleMessageRange.bind(this),this.dragCounter=0,this.dndRef=null,this.readNotificationQueue=[],this.readNotificationTimer=null,this.keyPressTimer=null}getOrCreateMessageRef(e){if(this.chatMessageRefs[e])return this.chatMessageRefs[e];const t=l().createRef();return this.chatMessageRefs[e]=t,t}getVisibleMessageRange(e){let t=Number.MAX_SAFE_INTEGER,s=-1,a=!1;return this.chatMessageRefs.every((i,n)=>{if(i.current){const{top:r,bottom:o,height:l}=i.current.getBoundingClientRect();if(r<=e.top?e.top-r<=l:o-e.bottom<=l)a=!0,t=Math.min(t,n),s=Math.max(s,n);else if(a)return!1}return!0}),s>=t?{min:t,max:s}:{min:0,max:0}}componentDidMount(){this.messagesScroller&&this.messagesScroller.addEventListener("scroll",this.handleScrollEvent),this.mountDnDEvents(this.dndRef),this.componentSetup({},{})}componentWillUnmount(){this.messagesScroller&&this.messagesScroller.removeEventListener("scroll",this.handleScrollEvent),this.clearNotificationQueue(),this.dndRef&&(this.dndRef.removeEventListener("dragstart",this.handleDragStart),this.dndRef.removeEventListener("dragenter",this.handleDragIn),this.dndRef.removeEventListener("dragleave",this.handleDragOut),this.dndRef.removeEventListener("dragover",this.handleDrag),this.dndRef.removeEventListener("drop",this.handleDrop))}componentDidUpdate(e,t){!this.messagesScroller||t.topic==this.state.topic&&t.maxSeqId==this.state.maxSeqId&&t.minSeqId==this.state.minSeqId||this.state.scrollPosition<100&&(this.messagesScroller.scrollTop=this.messagesScroller.scrollHeight-this.state.scrollPosition-this.messagesScroller.offsetHeight),this.props.applicationVisible?this.postReadNotification(0):this.clearNotificationQueue(),this.componentSetup(e,t)}componentSetup(e,t){const s=this.props.tinode?this.props.tinode.getTopic(this.state.topic):void 0;if(this.state.topic!=t.topic&&(t.topic&&!Ts.Tinode.isNewGroupTopicName(t.topic)&&(this.leave(t.topic),t.rtcPanel&&this.handleCallHangup(t.topic,e.callSeq)),s&&(s.onData=this.handleMessageUpdate,s.onAllMessagesReceived=this.handleAllMessagesReceived,s.onInfo=this.handleInfoReceipt,s.onMetaDesc=this.handleDescChange,s.onSubsUpdated=this.handleSubsUpdated,s.onPres=this.handleSubsUpdated,s.onAuxUpdated=this.handleAuxUpdate)),s)if(this.state.topic!=t.topic||this.props.myUserId&&!e.myUserId){const e=this.props.newTopicParams&&this.props.newTopicParams._topicName==this.props.topic;s.isP2PType()&&e&&!ks.rl?s.getMeta(s.startMetaQuery().withDesc().build()):this.props.myUserId&&this.subscribe(s)}else s.isSubscribed()&&this.state.isReader&&!t.isReader&&s.getMeta(s.startMetaQuery().withLaterData().build())}static getDerivedStateFromProps(e,t){let s={};if(e.topic)if(e.topic!=t.topic){const a=e.tinode.getTopic(e.topic);if(s={topic:e.topic,deleted:a._deleted,docPreview:null,imagePreview:null,imagePostview:null,videoPreview:null,videoPostview:null,rtcPanel:null,minimizedCallPanel:!1,typingIndicator:!1,scrollPosition:0,fetchingMessages:!1,showGoToLastButton:!1,contentToEdit:null,dragging:!1,selectedPin:0},e.forwardMessage?s.reply={content:e.forwardMessage.preview,seq:null}:s.reply=null,a){const i=[];e.connected&&a.subscribers(t=>{t.online&&t.user!=e.myUserId&&i.push(t)}),Object.assign(s,{onlineSubs:i}),a.isSelfType()?Object.assign(s,{title:e.intl.formatMessage(Aa.self_topic_name),avatar:!0}):a.public?Object.assign(s,{title:a.public.fn,avatar:(0,Os.to)(a.public.photo)}):Object.assign(s,{title:"",avatar:null});const n=a.p2pPeerDesc();n?Object.assign(s,{peerMessagingDisabled:Na(n.acs)}):t.peerMessagingDisabled&&Object.assign(s,{peerMessagingDisabled:!1}),Object.assign(s,{minSeqId:a.minMsgSeq(),maxSeqId:a.maxMsgSeq(),latestClearId:a.maxClearId(),channel:a.isChannelType(),pins:(a.aux("pins")||[]).slice(),pinsLoaded:!1}),e.callTopic==a.name&&Da(e.callState)&&(s.rtcPanel=e.callTopic)}else Object.assign(s,{minSeqId:-1,maxSeqId:-1,latestClearId:-1,onlineSubs:[],title:"",avatar:null,peerMessagingDisabled:!1,channel:!1,pins:[],pinsLoaded:!1})}else e.callTopic==t.topic&&!t.rtcPanel&&Da(e.callState)&&(s.rtcPanel=e.callTopic);else s={minSeqId:-1,maxSeqId:-1,latestClearId:-1,onlineSubs:[],topic:null,title:"",avatar:null,isVerified:!1,isStaff:!1,isDangerous:!1,deleted:!1,docPreview:null,imagePreview:null,imagePostview:null,videoPreview:null,videoPostview:null,rtcPanel:null,minimizedCallPanel:!1,typingIndicator:!1,scrollPosition:0,fetchingMessages:!1,peerMessagingDisabled:!1,channel:!1,reply:null,contentToEdit:null,showGoToLastButton:!1,dragging:!1,pins:[],pinsLoaded:!1,selectedPin:0,subsVersion:0};return e.acs?(e.acs.isWriter()!=t.isWriter&&(s.isWriter=!t.isWriter),e.acs.isReader()!=t.isReader&&(s.isReader=!t.isReader),e.acs.isAdmin()!=t.isAdmin&&(s.isAdmin=!t.isAdmin),!e.acs.isReader("given")!=t.readingBlocked&&(s.readingBlocked=!t.readingBlocked),e.acs.isSharer()!=t.isSharer&&(s.isSharer=!t.isSharer)):(t.isWriter&&(s.isWriter=!1),t.isReader&&(s.isReader=!1),t.isAdmin&&(s.isAdmin=!1),t.readingBlocked||(t.readingBlocked=!0),t.isSharer&&(s.isSharer=!1)),ka(e.acs)==!t.unconformed&&(s.unconfirmed=!t.unconformed),!e.connected&&t.onlineSubs&&t.onlineSubs.length>0&&(s.onlineSubs=[]),s}subscribe(e){if(e.isSubscribed()||!this.props.ready)return;const t=this.props.newTopicParams&&this.props.newTopicParams._topicName==this.props.topic;let s=e.startMetaQuery().withLaterDesc().withLaterSub().withAux();(this.state.isReader||t)&&(s=s.withLaterData(ks.H1),this.state.isReader&&(s=s.withLaterDel()),this.setState({fetchingMessages:!0}));const a=t?this.props.newTopicParams:void 0;e.subscribe(s.build(),a).then(t=>{if(303==t.code)return void Ta.A.navigateTo(Ta.A.setUrlTopic("",t.params.topic));this.state.topic!=t.topic&&this.setState({topic:t.topic}),this.state.deleted&&this.setState({deleted:!1}),this.props.onNewTopicCreated(this.props.topic,t.topic);let s=[];e.queuedMessages(t=>{t._sending||(t._fatal||t.head&&t.head.webrtc?s.push(t.seq):e.isSubscribed()&&this.retrySend(t))}),s.length>0&&e.delMessagesList(s,!0)}).catch(e=>{console.error("Failed subscription to",this.state.topic,e),this.props.onError(e.message,"err");const t=Ia.getDerivedStateFromProps({},{});t.title=this.props.intl.formatMessage(Aa.not_found),this.setState(t)})}leave(e){if(!e||!this.props.tinode.isTopicCached(e))return;const t=this.props.tinode.getTopic(e);t&&t.isSubscribed()&&t.leave(!1).catch(e=>{}).finally(e=>{this.setState({fetchingMessages:!1}),t.onData=void 0,t.onAllMessagesReceived=void 0,t.onInfo=void 0,t.onMetaDesc=void 0,t.onSubsUpdated=void 0,t.onPres=void 0,t.onAuxUpdated=void 0})}handleScrollReference(e){e&&(e.addEventListener("scroll",this.handleScrollEvent),this.messagesScroller=e,this.messagesScroller.scrollTop=this.messagesScroller.scrollHeight-this.state.scrollPosition-this.messagesScroller.offsetHeight)}handleScrollEvent(e){const t=e.target.scrollHeight-e.target.scrollTop-e.target.offsetHeight;if(this.setState({scrollPosition:t,showGoToLastButton:t>100&&t0&&this.setState({fetchingMessages:!0},e=>{t.getMessagesPage(ks.H1,i,s,a).catch(e=>this.props.onError(e.message,"err")).finally(e=>this.setState({fetchingMessages:!1}))})}}this.processingScrollEvent=!1}}mountDnDEvents(e){e&&(e.addEventListener("dragstart",this.handleDragStart),e.addEventListener("dragenter",this.handleDragIn),e.addEventListener("dragleave",this.handleDragOut),e.addEventListener("dragover",this.handleDrag),e.addEventListener("drop",this.handleDrop),this.dndRef=e)}goToLatestMessage(){this.setState({scrollPosition:0}),this.messagesScroller&&(this.messagesScroller.scrollTop=this.messagesScroller.scrollHeight-this.messagesScroller.offsetHeight)}handleDescChange(e){Ts.Tinode.isSelfTopicName(this.props.topic)?this.setState({title:this.props.intl.formatMessage(Aa.self_topic_name),avatar:!0}):e.public?this.setState({title:e.public.fn,avatar:(0,Os.to)(e.public.photo)}):this.setState({title:"",avatar:null}),e.acs&&this.setState({isWriter:e.acs.isWriter(),isReader:e.acs.isReader(),isAdmin:e.acs.isAdmin(),readingBlocked:!e.acs.isReader("given"),unconfirmed:ka(e.acs)})}postReadNotification(e){if(!this.props.applicationVisible||!this.state.topic)return;this.readNotificationTimer||(this.readNotificationTimer=setInterval(e=>{if(0==this.readNotificationQueue.length)return clearInterval(this.readNotificationTimer),void(this.readNotificationTimer=null);let t=-1;for(;this.readNotificationQueue.length>0;){const e=this.readNotificationQueue[0];if(e.topicName!=this.state.topic){this.readNotificationQueue.shift();continue}const s=new Date;if(!(e.sendAt<=s))break;this.readNotificationQueue.shift(),(0==e.seq||Ts.Tinode.isServerAssignedSeq(e.seq))&&(t=Math.max(t,e.seq))}if(t>=0){const e=this.props.tinode.getTopic(this.state.topic);if(e)try{e.noteRead(t)}catch(e){console.error("Failed to send read notification",e)}}},300));const t=new Date;this.readNotificationQueue.push({topicName:this.state.topic,seq:e,sendAt:t.setMilliseconds(t.getMilliseconds()+ks.J)})}clearNotificationQueue(){this.readNotificationQueue=[],this.readNotificationTimer&&(clearInterval(this.readNotificationTimer),this.readNotificationTimer=null)}handleSubsUpdated(){if(this.state.topic){const e=[],t=this.props.tinode.getTopic(this.state.topic);t.subscribers(t=>{t.online&&t.user!=this.props.myUserId&&e.push(t)});const s={onlineSubs:e,subsVersion:this.state.subsVersion+1},a=t.p2pPeerDesc();a?Object.assign(s,{peerMessagingDisabled:Na(a.acs)}):this.state.peerMessagingDisabled&&Object.assign(s,{peerMessagingDisabled:!1}),this.setState(s)}}handleMessageUpdate(e){if(!this.state.topic)return;const t=this.props.tinode.getTopic(this.state.topic);if(!e)return void this.setState({latestClearId:t.maxClearId()});clearTimeout(this.keyPressTimer),this.setState({maxSeqId:t.maxMsgSeq(),minSeqId:t.minMsgSeq(),typingIndicator:!1},s=>{t.isNewMessage(e.seq)?this.state.scrollPosition>100?this.setState({showGoToLastButton:!0}):this.goToLatestMessage():this.messagesScroller&&(this.messagesScroller.scrollTop=this.messagesScroller.scrollHeight-this.state.scrollPosition-this.messagesScroller.offsetHeight)});t.msgStatus(e,!0)>=Ts.Tinode.MESSAGE_STATUS_SENT&&e.from!=this.props.myUserId&&this.postReadNotification(e.seq)}handleAllMessagesReceived(e){if(this.setState({fetchingMessages:!1}),!e){const e=this.props.tinode.getTopic(this.state.topic);return void(e&&this.postReadNotification(e.seq))}if(this.state.pinsLoaded)this.setState({pinsLoaded:!1});else{const e=this.props.tinode.getTopic(this.state.topic);this.setState({pinsLoaded:!0},t=>{e.getPinnedMessages()})}}handleAuxUpdate(e){const t=(e.pins||[]).slice();let s=this.state.selectedPin;t.length>this.state.pins.length?s=0:s>=t.length&&(s=Math.max(0,t.length-1)),this.setState({pins:t,selectedPin:s})}handleInfoReceipt(e){switch(e.what){case"kp":clearTimeout(this.keyPressTimer),this.keyPressTimer=setTimeout(e=>this.setState({typingIndicator:!1}),ks.NR+1e3),this.state.typingIndicator||this.setState({typingIndicator:!0});break;case"read":case"recv":this.forceUpdate();break;default:console.info("Other change in topic: ",e.what)}}handleExpandMedia(e){e&&(e.video?this.setState({videoPostview:e}):this.setState({imagePostview:e}))}handleClosePreview(){this.state.imagePreview&&this.state.imagePreview.url&&URL.revokeObjectURL(this.state.imagePreview.url),this.state.videoPreview&&this.state.videoPreview.url&&URL.revokeObjectURL(this.state.videoPreview.url),this.setState({imagePostview:null,imagePreview:null,docPreview:null,videoPreview:null,videoPostview:null})}handleFormResponse(e,t,s){if("pub"==e)this.sendMessage(Ts.Drafty.attachJSON(Ts.Drafty.parse(t),s));else if("url"==e){const e=new URL(s.ref),t=e.searchParams;for(let e in s.resp)s.resp.hasOwnProperty(e)&&t.set(e,s.resp[e]);["name","seq"].forEach(e=>{s[e]&&t.set(e,s[e])}),t.set("uid",this.props.myUserId),t.set("topic",this.state.topic),e.search=t,window.open(e,"_blank")}else console.info("Unknown action in form",e)}handleContextClick(e){e.preventDefault(),e.stopPropagation(),this.props.showContextMenu({topicName:this.state.topic,y:e.pageY,x:e.pageX})}handleShowMessageContextMenu(e,t){"chan"==e.userFrom&&(e.userFrom=this.state.topic,e.userName=this.state.title),e.topicName=this.state.topic;const s=t||[],a=this.props.tinode.getTopic(e.topicName);if(a)if(a.isSelfType())s.push("message_delete_generic");else{a.isChannelType()||s.push("message_delete");const t=a.getAccessMode();if(t&&t.isDeleter()){let a=t.isOwner();if(!a){const t=0|this.props.tinode.getServerParam(Ts.Tinode.MSG_DELETE_AGE,0);a=0==t||!!(t>0&&e.timestamp)&&e.timestamp.getTime()>(new Date).getTime()-1e3*t}a&&s.push("message_delete_hard")}}this.props.showContextMenu(e,s)}handleNewChatAcceptance(e){this.props.onNewChat(this.state.topic,e)}handleEnablePeer(e){e.preventDefault(),this.props.onChangePermissions(this.state.topic,ks.cZ,this.state.topic)}sendKeyPress(e){const t=this.props.tinode.getTopic(this.state.topic);t.isSubscribed()&&(e?t.noteRecording(!0):t.noteKeyPress())}sendMessage(e,t,s){let a;if(this.props.forwardMessage)e=this.props.forwardMessage.msg,a=this.props.forwardMessage.head,this.handleCancelReply();else if(this.state.reply){if(this.state.reply.editing){if(e==this.state.contentToEdit)return void this.handleCancelReply();a={replace:":"+this.state.reply.seq}}else this.state.reply.content&&(a={reply:""+this.state.reply.seq},"string"==typeof e&&(e=Ts.Drafty.parse(e)),e=Ts.Drafty.append(Ts.Drafty.sanitizeEntities(this.state.reply.content),e));this.handleCancelReply()}this.props.sendMessage(e,t,s,a)}retrySend(e){this.props.sendMessage(e.content,void 0,void 0,e.head).then(t=>{this.props.tinode.getTopic(this.state.topic).delMessagesList([e.seq],!0)})}sendFileAttachment(e){const t=.75*this.props.tinode.getServerParam("maxMessageSize",ks.mp)-1024|0,s=e=>e===ks.Uv?"application/octet-stream":e;if(e.size>t){const t=this.props.tinode.getLargeFileHelper();if(!t)return void this.props.onError(this.props.intl.formatMessage(Aa.cannot_initiate_upload));const a=t.upload(e),i=Ts.Drafty.attachFile(null,{mime:s(e.type),filename:e.name,size:e.size,urlPromise:a});this.sendMessage(i,a,t)}else(0,Os.bB)(e).then(t=>this.sendMessage(Ts.Drafty.attachFile(null,{mime:s(t.mime),data:t.bits,filename:t.name,size:e.size}))).catch(e=>this.props.onError(e.message,"err"))}handleAttachFile(e){const t=this.props.tinode.getServerParam("maxFileUploadSize",ks.qy);e.size>t?this.props.onError(this.props.intl.formatMessage(Aa.file_attachment_too_large,{size:(0,js.lX)(e.size),limit:(0,js.lX)(t)}),"err"):this.setState({docPreview:{file:e,name:e.name,size:e.size,type:e.type}})}handleCallHangup(e,t){this.props.onVideoCallClosed(),this.setState({rtcPanel:null}),this.props.onCallHangup(e,t)}handleCallPanelToggle(){this.setState({minimizedCallPanel:!this.state.minimizedCallPanel})}sendImageAttachment(e,t){const s=this.state.imagePreview.mime,a=this.state.imagePreview.width,i=this.state.imagePreview.height,n=this.state.imagePreview.filename,r=.75*this.props.tinode.getServerParam("maxMessageSize",ks.mp)-1024|0;if(t.size>r){const r=this.props.tinode.getLargeFileHelper();if(!r)return void this.props.onError(this.props.intl.formatMessage(Aa.cannot_initiate_upload));const o=r.upload(t);return void(0,Os.ag)(t,ks.wj,ks.wj,-1,!1).then(e=>(0,Os.Sk)(e.blob)).then(l=>{let c=Ts.Drafty.insertImage(null,0,{mime:s,_tempPreview:l.bits,bits:l.bits,width:a,height:i,filename:n,size:t.size,urlPromise:o});e&&(c=Ts.Drafty.appendLineBreak(c),c=Ts.Drafty.append(c,Ts.Drafty.parse(e))),this.sendMessage(c,o,r)}).catch(e=>this.props.onError(e,"err"))}(0,Os.Sk)(t).then(s=>{let r=Ts.Drafty.insertImage(null,0,{mime:s.mime,bits:s.bits,width:a,height:i,filename:n,size:t.size});e&&(r=Ts.Drafty.appendLineBreak(r),r=Ts.Drafty.append(r,Ts.Drafty.parse(e))),this.sendMessage(r)})}sendVideoAttachment(e,t,s,a){const i=a.width,n=a.height,r=.75*this.props.tinode.getServerParam("maxMessageSize",ks.mp)-1024|0,o=[];let l;if(t.size+s.size>r){if(l=this.props.tinode.getLargeFileHelper(),!l)return void this.props.onError(this.props.intl.formatMessage(Aa.cannot_initiate_upload));o[0]=t.size>.675*r?l.upload(t):null,o[1]=s.size>.275*r?l.upload(s):null}if(0==o.length)return void Promise.all([(0,Os.Sk)(t),(0,Os.Sk)(s)]).then(s=>{const[r,o]=s;let l=Ts.Drafty.insertVideo(null,0,{mime:r.mime,bits:r.bits,preview:o.bits,premime:o.mime,width:i,height:n,duration:a.duration,filename:a.name,size:t.size});e&&(l=Ts.Drafty.appendLineBreak(l),l=Ts.Drafty.append(l,Ts.Drafty.parse(e))),this.sendMessage(l)});const c=Promise.all(o),h=[];h[0]=o[0]?null:(0,Os.Sk)(t),h[1]=o[1]?null:(0,Os.ag)(s,ks.QG,ks.QG,-1,!1).then(e=>(0,Os.Sk)(e.blob)),h[2]=(0,Os.ag)(s,ks.Cx,ks.Cx,-1,!1).then(e=>(0,Os.Sk)(e.blob)),Promise.all(h).then(s=>{const[r,o,h]=s;let d=Ts.Drafty.insertVideo(null,0,{mime:a.mime,bits:r?r.bits:null,_tempPreview:h.bits,preview:o?o.bits:h.bits,premime:o?o.mime:h.mime,width:i,height:n,duration:a.duration,filename:a.name,size:t.size,urlPromise:c});e&&(d=Ts.Drafty.appendLineBreak(d),d=Ts.Drafty.append(d,Ts.Drafty.parse(e))),this.sendMessage(d,c,l)}).catch(e=>this.props.onError(e.message,"err"))}handleAttachImageOrVideo(e){const t=this.props.tinode.getServerParam("maxFileUploadSize",ks.qy);e.type.startsWith("video/")?this.setState({videoPreview:{url:URL.createObjectURL(e),blob:e,filename:e.name,size:e.size,mime:e.type}}):(0,Os.ag)(e,ks.QG,ks.QG,t,!1).then(e=>{this.setState({imagePreview:{url:URL.createObjectURL(e.blob),blob:e.blob,filename:e.name,width:e.width,height:e.height,size:e.blob.size,mime:e.mime}})}).catch(e=>{this.props.onError(e.message,"err")})}handleFileDrop(e){if(!e||0==e.length)return;const t=e[0];t.type&&t.type.startsWith("image/")?this.handleAttachImageOrVideo(t):this.handleAttachFile(t)}sendAudioAttachment(e,t,s){fetch(e).then(e=>e.blob()).then(e=>{const a=.75*this.props.tinode.getServerParam("maxMessageSize",ks.mp)-1024;if(e.size>a){const a=this.props.tinode.getLargeFileHelper();if(!a)return void this.props.onError(this.props.intl.formatMessage(Aa.cannot_initiate_upload));const i=a.upload(e),n=Ts.Drafty.appendAudio(null,{mime:e.type,size:e.size,duration:s,preview:t,urlPromise:i});this.sendMessage(n,i,a)}else(0,Os.Sk)(e).then(a=>{this.sendMessage(Ts.Drafty.appendAudio(null,{mime:a.mime,bits:a.bits,size:e.size,duration:s,preview:t}))})}).catch(e=>{this.props.onError(e.message,"err")})}handleCancelUpload(e,t){const s=this.props.tinode.getTopic(this.state.topic).findMessage(e);s&&(s._cancelled=!0),t.cancel()}handlePickReply(e,t,s,a){e&&t?(t="string"==typeof t?Ts.Drafty.init(t):t,t=Ts.Drafty.isValid(t)?Ts.Drafty.replyContent(t,ks.Rz):Ts.Drafty.append(Ts.Drafty.init("⚠ "),Ts.Drafty.wrapInto(this.props.intl.formatMessage(Aa.invalid_content),"EM")),this.setState({reply:{content:Ts.Drafty.quote(a,s,t),seq:e}}),this.props.onCancelForwardMessage()):this.setState({reply:null})}handleEditMessage(e,t){if(!e||!t)return void this.setState({reply:null});t="string"==typeof t?Ts.Drafty.init(t):t;const s=Ts.Drafty.toMarkdown(t);t=Ts.Drafty.isValid(t)?Ts.Drafty.replyContent(t,ks.hB):Ts.Drafty.append(Ts.Drafty.init("⚠ "),Ts.Drafty.wrapInto(this.props.intl.formatMessage(Aa.invalid_content),"EM")),this.setState({reply:{content:Ts.Drafty.quote(this.props.intl.formatMessage(Aa.editing_message),null,t),seq:e,editing:!0},contentToEdit:s}),this.props.onCancelForwardMessage()}handleCancelReply(){this.setState({reply:null,contentToEdit:null}),this.props.onCancelForwardMessage()}handleQuoteClick(e){const t=this.getOrCreateMessageRef(e);t&&t.current?(t.current.scrollIntoView({block:"center",behavior:"smooth"}),t.current.classList.add("flash"),setTimeout(e=>{t.current.classList.remove("flash")},1e3)):console.error("Unresolved message ref",e)}handleUnpinMessage(e){this.props.tinode.getTopic(this.state.topic).pinMessage(e,!1)}isDragEnabled(){return this.state.isWriter&&!this.state.unconfirmed&&!this.props.forwardMessage&&!this.state.peerMessagingDisabled}handleDragStart(e){e.preventDefault(),e.stopPropagation(),e.dataTransfer.clearData()}handleDragIn(e){e.preventDefault(),e.stopPropagation(),this.dragCounter++,e.dataTransfer.items&&e.dataTransfer.items.length>0&&this.setState({dragging:!0})}handleDragOut(e){e.preventDefault(),e.stopPropagation(),this.dragCounter--,this.dragCounter<=0&&this.setState({dragging:!1})}handleDrag(e){e.preventDefault(),e.stopPropagation()}handleDrop(e){e.preventDefault(),e.stopPropagation(),this.setState({dragging:!1}),this.isDragEnabled()&&e.dataTransfer.files&&e.dataTransfer.files.length>0&&(this.handleFileDrop(e.dataTransfer.files),this.dragCounter=0)}render(){const{formatMessage:e}=this.props.intl,t=this.state.rtcPanel?l().createElement(Qs,{topic:this.state.topic,seq:this.props.callSeq,callState:this.props.callState,callAudioOnly:this.props.callAudioOnly,tinode:this.props.tinode,title:this.state.title,avatar:this.state.avatar||!0,minimized:this.state.minimizedCallPanel,onError:this.props.onError,onHangup:this.handleCallHangup,onToggleMinimize:this.handleCallPanelToggle,onInvite:this.props.onCallInvite,onSendOffer:this.props.onCallSendOffer,onIceCandidate:this.props.onCallIceCandidate,onSendAnswer:this.props.onCallSendAnswer}):null;let s;if(this.state.topic){let a;if(this.state.imagePreview)a=l().createElement(ga,{content:this.state.imagePreview,tinode:this.props.tinode,reply:this.state.reply,onCancelReply:this.handleCancelReply,onClose:this.handleClosePreview,onSendMessage:this.sendImageAttachment});else if(this.state.videoPreview)a=l().createElement(_a,{content:this.state.videoPreview,tinode:this.props.tinode,reply:this.state.reply,onError:this.props.onError,onCancelReply:this.handleCancelReply,onClose:this.handleClosePreview,onSendMessage:this.sendVideoAttachment});else if(this.state.imagePostview)a=l().createElement(ga,{content:this.state.imagePostview,onClose:this.handleClosePreview});else if(this.state.videoPostview)a=l().createElement(_a,{content:this.state.videoPostview,tinode:this.props.tinode,onError:this.props.onError,onClose:this.handleClosePreview});else if(this.state.docPreview)a=l().createElement(pa,{content:this.state.docPreview,tinode:this.props.tinode,reply:this.state.reply,onCancelReply:this.handleCancelReply,onClose:this.handleClosePreview,onSendMessage:this.sendFileAttachment});else{const t=this.props.tinode.getTopic(this.state.topic),s=t.isChannelType()||t.chan,i=t.isGroupType()&&!s,n=[];t.trusted&&(t.trusted.verified&&n.push({icon:"verified",color:"badge-inv"}),t.trusted.staff&&n.push({icon:"staff",color:"badge-inv"}),t.trusted.danger&&n.push({icon:"dangerous",color:"badge-inv"}));const r=[];this.state.pins.forEach(e=>r.push(t.latestMsgVersion(e)||t.findMessage(e)));const o=[];let c=null,d=null,p=null;t.messages((e,s,a,n)=>{let r=a?a.from||"chan":null,h="single",u=e.from||"chan";u==c?h=u==r?"middle":"last":u==r&&(h="first"),c=u;const m=!(u==this.props.myUserId),g=t.msgStatus(e,!0);let f,v,b=u;const E=t.userDesc(u);E&&E.public&&(f=E.public.fn,v=(0,Os.to)(E.public.photo)),p=i?"chat-box group":"chat-box";const y=this.getOrCreateMessageRef(e.seq);let w=e.head?parseInt(e.head.reply):null;if(w&&!isNaN(w)||(w=null),e.hi)o.push(l().createElement(Ea,{deleted:!0,key:e.seq}));else{const t=new Date(e.ts);d&&d.toDateString()==t.toDateString()||(o.push(l().createElement(Ea,{date:(0,js.mf)(e.ts),locale:this.props.intl.locale,key:"date-"+e.seq})),d=t),o.push(l().createElement(ra,{tinode:this.props.tinode,topic:this.state.topic,content:e.content,mimeType:e.head&&e.head.mime,replyToSeq:w,edited:e.head&&!e.head.webrtc&&e.head.replace,timestamp:e.ts,response:m,seq:e.seq,isGroup:i,isChan:this.state.channel,userFrom:b,userName:f,userAvatar:v,sequence:h,received:g,uploader:e._uploader,userIsWriter:this.state.isWriter,userIsAdmin:this.state.isAdmin,pinned:this.state.pins.includes(e.seq),viewportWidth:this.props.viewportWidth,showContextMenu:this.handleShowMessageContextMenu,onExpandMedia:this.handleExpandMedia,onFormResponse:this.handleFormResponse,onCancelUpload:this.handleCancelUpload,pickReply:this.handlePickReply,editMessage:this.handleEditMessage,onQuoteClick:this.handleQuoteClick,onAcceptCall:this.props.onAcceptCall,onError:this.props.onError,ref:y,key:e.seq}))}});let u=null;if(s)u=e(Aa.subscriber_count,{count:t.subcnt});else{const s=this.props.tinode.getMeTopic().getContact(this.state.topic);s&&(Ts.Tinode.isP2PTopicName(s.topic)?s.online?u=e(Aa.online_now):s.seen&&(u=e(Aa.last_seen,{timestamp:(0,js.cq)(s.seen.when,this.props.intl.locale)})):Ts.Tinode.isGroupTopicName(s.topic)&&(u=e(Aa.member_count,{count:t.subcnt})))}const m=this.state.avatar||!0,g=this.state.deleted||t.isSelfType()?null:this.props.online?"online"+(this.state.typingIndicator?" typing":""):"offline",f="panel-title"+(this.state.deleted?" deleted":""),v="dark"==this.props.colorSchema?"dark":"";let b=l().createElement(l().Fragment,null,l().createElement("div",{id:"messages-container",className:v},l().createElement("button",{id:"go-to-latest",className:"action-button"+(this.state.showGoToLastButton?"":" hidden"),onClick:this.goToLatestMessage},l().createElement("i",{className:"material-icons"},"arrow_downward")),l().createElement("div",{id:"messages-panel",ref:this.handleScrollReference},l().createElement("ul",{id:"scroller",className:p},o)),this.state.isReader?null:l().createElement("div",{id:"write-only-background"},this.state.readingBlocked?l().createElement("div",{id:"write-only-note"},l().createElement(h.FormattedMessage,{id:"messages_not_readable",defaultMessage:[{type:0,value:"no access to messages"}]})):null)),this.state.peerMessagingDisabled&&!this.state.unconfirmed?l().createElement("div",{id:"peer-messaging-disabled-note"},l().createElement("i",{className:"material-icons secondary"},"block")," ",l().createElement(h.FormattedMessage,{id:"peers_messaging_disabled",defaultMessage:[{type:0,value:"Peer's messaging is disabled."}]})," ",l().createElement("a",{href:"#",onClick:this.handleEnablePeer},l().createElement(h.FormattedMessage,{id:"enable_peers_messaging",defaultMessage:[{type:0,value:"Enable"}]})),"."):null,this.state.unconfirmed?l().createElement(fa,{onAction:this.handleNewChatAcceptance}):l().createElement(da,{tinode:this.props.tinode,topicName:this.state.topic,noInput:!!this.props.forwardMessage,disabled:!this.state.isWriter||this.state.deleted,reply:this.state.reply,initMessage:this.state.contentToEdit,sendOnEnter:this.props.sendOnEnter,onKeyPress:this.sendKeyPress,onRecordingProgress:this.sendKeyPress,onSendMessage:this.sendMessage,onAttachFile:this.props.forwardMessage?null:this.handleAttachFile,onAttachImage:this.props.forwardMessage?null:this.handleAttachImageOrVideo,onAttachAudio:this.props.forwardMessage?null:this.sendAudioAttachment,onError:this.props.onError,onQuoteClick:this.handleQuoteClick,onCancelReply:this.handleCancelReply}));a=l().createElement(l().Fragment,null,l().createElement("div",{id:"topic-caption-panel",className:"caption-panel"},this.props.displayMobile?l().createElement("a",{href:"#",id:"hide-message-view",onClick:e=>{e.preventDefault(),this.leave(this.state.topic),this.props.onHideMessagesView()}},l().createElement("i",{className:"material-icons"},"arrow_back")):null,l().createElement("div",{className:"avatar-box"},l().createElement(Us.A,{tinode:this.props.tinode,avatar:m,topic:this.state.topic,title:this.state.title,deleted:this.state.deleted}),s?null:l().createElement("span",{className:g})),l().createElement("div",{id:"topic-title-group"},l().createElement("div",{id:"topic-title",className:f},this.state.title||l().createElement("i",null,l().createElement(h.FormattedMessage,{id:"unnamed_topic",defaultMessage:[{type:0,value:"Unnamed"}]})),l().createElement(oa.A,{badges:n})),l().createElement("div",{id:"topic-last-seen"},u)),l().createElement("div",{style:{marginLeft:"auto"}}),!this.props.displayMobile&&this.state.pins.length>0?l().createElement(Ca,{tinode:this.props.tinode,pins:this.state.pins,messages:r,selected:this.state.selectedPin,isAdmin:this.state.isAdmin,setSelected:e=>this.setState({selectedPin:e}),onSelected:this.handleQuoteClick,onCancel:this.handleUnpinMessage}):null,i?l().createElement(ma,{tinode:this.props.tinode,subscribers:this.state.onlineSubs}):null,l().createElement("div",null,l().createElement("a",{href:"#",onClick:this.handleContextClick},l().createElement("i",{className:"material-icons"},"more_vert")))),this.props.displayMobile?l().createElement(l().Fragment,null,this.state.pins.length>0?l().createElement(Ca,{tinode:this.props.tinode,pins:this.state.pins,messages:r,selected:this.state.selectedPin,isAdmin:this.state.isAdmin,setSelected:e=>this.setState({selectedPin:e}),onSelected:this.handleQuoteClick,onCancel:this.handleUnpinMessage}):null,l().createElement(ua.A,{level:this.props.errorLevel,text:this.props.errorText,onClearError:this.props.onError})):null,l().createElement(va.A,{show:this.state.fetchingMessages}),b,this.state.dragging&&this.isDragEnabled()?l().createElement("div",{className:"drag-n-drop"},e(Aa.drag_file)):null)}s=l().createElement("div",{id:"topic-view",ref:this.mountDnDEvents},a,t)}else s=l().createElement(ba,{serverVersion:this.props.serverVersion,serverAddress:this.props.serverAddress});return s}}var Pa=(0,h.injectIntl)(Ia);class Fa extends l().PureComponent{render(){return l().createElement("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onBack()}},l().createElement("i",{className:"material-icons"},"arrow_back"))}}class Ra extends l().PureComponent{render(){return l().createElement("div",null,l().createElement("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onNewTopic()}},l().createElement("i",{className:"material-icons"},"chat"))," ",l().createElement("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onSettings()}},l().createElement("i",{className:"material-icons"},"settings")))}}class xa extends l().PureComponent{render(){return l().createElement("div",null,l().createElement("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onSignUp()}},l().createElement("i",{className:"material-icons"},"person_add"))," ",l().createElement("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onSettings()}},l().createElement("i",{className:"material-icons"},"settings")))}}class Ua extends l().PureComponent{render(){const e=[];this.props.trustedBadges&&this.props.trustedBadges.forEach(t=>{e.push({icon:t,color:"badge-inv"})});let t=null;return this.props.tinode&&(t=this.props.tinode.authorizeURL((0,Xs.wk)(this.props.avatar,"image"))),l().createElement("div",{id:"side-caption-panel",className:"caption-panel"},this.props.onCancel?l().createElement(Fa,{onBack:this.props.onCancel}):null,t?l().createElement("div",{id:"self-avatar",className:"avatar-box"},l().createElement(Us.A,{tinode:this.props.tinode,avatar:t,topic:this.props.myUserId,title:this.props.title})):null,l().createElement("div",{id:"sidepanel-title",className:"panel-title"},this.props.title,l().createElement(oa.A,{badges:e})),"login"===this.props.state?l().createElement(xa,{onSignUp:this.props.onSignUp,onSettings:this.props.onSettings}):"contacts"===this.props.state?l().createElement(Ra,{onNewTopic:this.props.onNewTopic,onSettings:this.props.onSettings}):null)}}var La=r(8089);const Oa=(0,h.defineMessages)({archived_contacts_title:{id:"archived_contacts",defaultMessage:[{type:0,value:"Archived contacts ("},{type:1,value:"count"},{type:0,value:")"}]}});class ja extends l().Component{constructor(e){super(e),this.handleAction=this.handleAction.bind(this),this.state=ja.deriveStateFromProps(e)}static deriveStateFromProps(e){const t=[];let s=0,a=0;const i=e.tinode.getMeTopic();return e.chatList.forEach(n=>{const r=n.acs&&!n.acs.isJoiner();n.pinned=i.pinnedTopicRank(n.topic),r&&e.blocked&&t.push(n),r||e.blocked||(n.private&&n.private.arch?e.archive?t.push(n):a++:e.archive||(t.push(n),s+=n.unread>0?1:0))}),t.sort((e,t)=>{const s=t.pinned-e.pinned;return 0!=s?s:(t.touched||0)-(e.touched||0)}),a>0&&t.push({action:"archive",title:Oa.archived_contacts_title,values:{count:a}}),{contactList:t,unreadThreads:s}}componentDidUpdate(e,t){if(e.chatList!=this.props.chatList||e.archive!=this.props.archive||e.blocked!=this.props.blocked){const e=ja.deriveStateFromProps(this.props);this.setState(e),e.unreadThreads!=t.unreadThreads&&(0,Xs.OM)(e.unreadThreads)}}handleAction(e){this.props.onShowArchive()}render(){return l().createElement(h.FormattedMessage,{id:"contacts_not_found",defaultMessage:[{type:0,value:"You have no chats"},{type:0,value:"
"},{type:0,value:"¯∖_(ツ)_/¯"}]},e=>l().createElement(Ps.A,{tinode:this.props.tinode,connected:this.props.connected,contacts:this.state.contactList,emptyListMessage:e,topicSelected:this.props.topicSelected,myUserId:this.props.myUserId,showOnline:!0,showUnread:!0,onTopicSelected:this.props.onTopicSelected,showContextMenu:this.props.showContextMenu,onAction:this.handleAction}))}}class Ba extends l().PureComponent{constructor(e){super(e),this.state={colorSchema:e.colorSchema||"auto",textSize:10*e.textSize||"100",sendOnEnter:e.sendOnEnter||"plain"},this.isMac=(navigator.userAgentData&&navigator.userAgentData.platform||navigator.platform).toLowerCase().startsWith("mac"),this.handleColorSchemaSelected=this.handleColorSchemaSelected.bind(this),this.handleTextSizeChanged=this.handleTextSizeChanged.bind(this),this.handleSendOnEnterSelected=this.handleSendOnEnterSelected.bind(this)}handleColorSchemaSelected(e){this.setState({colorSchema:e.currentTarget.value}),this.props.onChangeColorSchema(e.currentTarget.value)}handleTextSizeChanged(e){this.setState({textSize:e.currentTarget.value}),this.props.onTextSizeChanged(e.currentTarget.value/10|0)}handleSendOnEnterSelected(e){this.setState({sendOnEnter:e.currentTarget.value}),this.props.onSendOnEnterChanged(e.currentTarget.value)}render(){return l().createElement("div",{id:"settings-form",className:"scrollable-panel"},l().createElement("div",{className:"panel-form-column"},l().createElement("div",{className:"panel-form-row"},l().createElement("label",{className:"small"},l().createElement(h.FormattedMessage,{id:"label_color_schema",defaultMessage:[{type:0,value:"Theme:"}]}))),l().createElement("div",{className:"panel-form-row"},l().createElement("ul",{className:"quoted"},l().createElement("li",{key:"system"},l().createElement("input",{type:"radio",id:"system",name:"color-scheme-select",value:"auto",checked:"auto"==this.state.colorSchema,onChange:this.handleColorSchemaSelected})," ",l().createElement("label",{htmlFor:"system"},l().createElement(h.FormattedMessage,{id:"color_schema_system",defaultMessage:[{type:0,value:"System default"}]})," ",l().createElement("img",{src:"img/routine.svg",style:{verticalAlign:"top",width:"1.6rem",height:"1.6rem"}}))),l().createElement("li",{key:"light"},l().createElement("input",{type:"radio",id:"light",name:"color-scheme-select",value:"light",checked:"light"==this.state.colorSchema,onChange:this.handleColorSchemaSelected})," ",l().createElement("label",{htmlFor:"light"},l().createElement(h.FormattedMessage,{id:"color_schema_light",defaultMessage:[{type:0,value:"Light"}]})," ",l().createElement("i",{className:"material-icons orange large"},"light_mode"))),l().createElement("li",{key:"dark"},l().createElement("input",{type:"radio",id:"dark",name:"color-scheme-select",value:"dark",checked:"dark"==this.state.colorSchema,onChange:this.handleColorSchemaSelected})," ",l().createElement("label",{htmlFor:"dark"},l().createElement(h.FormattedMessage,{id:"color_schema_dark",defaultMessage:[{type:0,value:"Dark"}]})," ",l().createElement("i",{className:"material-icons blue large"},"dark_mode")))))),l().createElement("div",{className:"hr"}),l().createElement("div",{className:"panel-form-row clean-clickable"},l().createElement("a",{onClick:this.props.onSelectWallpapers,className:"flat-button"},l().createElement("i",{className:"material-icons"},"wallpaper")," ",l().createElement(h.FormattedMessage,{id:"wallpapers",defaultMessage:[{type:0,value:"Wallpapers"}]}))),l().createElement("div",{className:"hr"}),l().createElement("div",{className:"panel-form-column"},l().createElement("div",{className:"panel-form-row"},l().createElement("label",{className:"small"},l().createElement(h.FormattedMessage,{id:"label_text_size",defaultMessage:[{type:0,value:"Text size:"}]}))),l().createElement("div",{className:"panel-form-row"},l().createElement("input",{type:"range",id:"text_size",name:"text_size",min:"80",max:"120",step:"10",list:"text_size_options",value:this.state.textSize,onChange:this.handleTextSizeChanged})),l().createElement("div",{className:"panel-form-row"},l().createElement("datalist",{id:"text_size_options"},l().createElement("option",{value:"80",label:"80%"}),l().createElement("option",{value:"90",label:"90%"}),l().createElement("option",{value:"100",label:"100%"}),l().createElement("option",{value:"110",label:"110%"}),l().createElement("option",{value:"120",label:"120%"})))),l().createElement("div",{className:"hr"}),l().createElement("div",{className:"panel-form-row"},l().createElement("label",{className:"small"},l().createElement(h.FormattedMessage,{id:"label_keyboard",defaultMessage:[{type:0,value:"Keyboard:"}]}))),l().createElement("div",{className:"panel-form-row"},l().createElement("ul",{className:"quoted"},l().createElement("li",{key:"plain"},l().createElement("input",{type:"radio",id:"plain",name:"send-select",value:"plain",checked:"plain"==this.state.sendOnEnter,onChange:this.handleSendOnEnterSelected})," ",l().createElement("label",{htmlFor:"send_plain"},l().createElement(h.FormattedMessage,{id:"send_plain",defaultMessage:[{type:0,value:"Send on Enter"}]})," "),l().createElement("div",{className:"panel-form-row"},l().createElement("span",{className:"small gray"},l().createElement(h.FormattedMessage,{id:"send_plain_explained",defaultMessage:[{type:0,value:"Press Shift + Enter for new line"}]})))),l().createElement("li",{key:"command"},l().createElement("input",{type:"radio",id:"command",name:"send-select",value:"command",checked:"command"==this.state.sendOnEnter,onChange:this.handleSendOnEnterSelected})," ",l().createElement("label",{htmlFor:"send_command"},l().createElement(h.FormattedMessage,{id:"send_command",defaultMessage:[{type:0,value:"Send on "},{type:1,value:"key"}],values:{key:this.isMac?"⌘ + Enter":"Ctrl + Enter"}})," "),l().createElement("div",{className:"panel-form-row"},l().createElement("span",{className:"small gray"},l().createElement(h.FormattedMessage,{id:"send_command_explained",defaultMessage:[{type:0,value:"Press Enter for new line"}]})))))))}}var qa=r(1166);class za extends l().PureComponent{constructor(e){super(e),this.handleCheckboxClick=this.handleCheckboxClick.bind(this)}handleCheckboxClick(e,t){"sound"==e?this.props.onToggleMessageSounds(t):"alert"==e&&this.props.onTogglePushNotifications(t)}render(){return l().createElement("div",{className:"scrollable-panel"},l().createElement("div",{className:"panel-form-row"},l().createElement("label",{htmlFor:"message-sound"},l().createElement(h.FormattedMessage,{id:"label_message_sound",defaultMessage:[{type:0,value:"Message sound:"}]})),l().createElement(qa.A,{name:"sound",id:"message-sound",checked:this.props.messageSounds,onChange:this.handleCheckboxClick})),l().createElement("div",{className:"panel-form-row"},l().createElement("label",{htmlFor:"desktop-alerts"},this.props.desktopAlertsEnabled?l().createElement(h.FormattedMessage,{id:"label_push_notifications",defaultMessage:[{type:0,value:"Notification alerts:"}]}):l().createElement(h.FormattedMessage,{id:"label_push_notifications_disabled",defaultMessage:[{type:0,value:"Notification alerts (requires HTTPS):"}]})),l().createElement(qa.A,{name:"alert",id:"desktop-alerts",checked:this.props.desktopAlerts,onChange:this.props.desktopAlertsEnabled?this.handleCheckboxClick:null})))}}class Va extends l().PureComponent{render(){return l().createElement("div",{className:"scrollable-panel"},l().createElement("div",{className:"panel-form-column"},l().createElement("a",{href:ks.fi,className:"flat-button",target:"_blank"},l().createElement("i",{className:"material-icons"},"email"),"  ",l().createElement(h.FormattedMessage,{id:"link_contact_us",defaultMessage:[{type:0,value:"Contact Us"}]})),l().createElement("a",{href:ks.V9,className:"flat-button",target:"_blank"},l().createElement("i",{className:"material-icons"},"description"),"  ",l().createElement(h.FormattedMessage,{id:"link_terms_of_service",defaultMessage:[{type:0,value:"Terms of Service"}]})),l().createElement("a",{href:ks.RS,className:"flat-button",target:"_blank"},l().createElement("i",{className:"material-icons"},"policy"),"  ",l().createElement(h.FormattedMessage,{id:"link_privacy_policy",defaultMessage:[{type:0,value:"Privacy Policy"}]}))),l().createElement("div",{className:"hr"}),l().createElement("div",{className:"panel-form-column"},l().createElement("div",{className:"panel-form-row"},l().createElement("label",{className:"small"},l().createElement(h.FormattedMessage,{id:"label_client",defaultMessage:[{type:0,value:"Client:"}]})),ks.C3),l().createElement("div",{className:"panel-form-row"},l().createElement("label",{className:"small"},l().createElement(h.FormattedMessage,{id:"label_sdk",defaultMessage:[{type:0,value:"SDK:"}]})),Ts.Tinode.getLibrary()),l().createElement("div",{className:"panel-form-row"},l().createElement("label",{className:"small"},l().createElement(h.FormattedMessage,{id:"label_server",defaultMessage:[{type:0,value:"Server:"}]})),this.props.serverVersion),l().createElement("div",{className:"panel-form-row"},l().createElement("label",{className:"small"},l().createElement(h.FormattedMessage,{id:"label_server_address",defaultMessage:[{type:0,value:"Server address:"}]})),this.props.serverAddress)))}}var Ha=r(6789);class Wa extends l().Component{constructor(e){super(e),this.state={login:e.login,password:"",hostName:e.serverAddress,saveToken:e.persist},this.handleLoginChange=this.handleLoginChange.bind(this),this.handlePasswordChange=this.handlePasswordChange.bind(this),this.handleToggleSaveToken=this.handleToggleSaveToken.bind(this),this.handleSubmit=this.handleSubmit.bind(this)}handleLoginChange(e){this.setState({login:e.target.value})}handlePasswordChange(e){this.setState({password:e.target.value})}handleToggleSaveToken(){this.props.onPersistenceChange(!this.state.saveToken),this.setState({saveToken:!this.state.saveToken})}handleSubmit(e){e.preventDefault(),this.props.onLogin(this.state.login.trim(),this.state.password.trim())}render(){let e="primary";return this.props.disabled&&(e+=" disabled"),l().createElement("form",{id:"login-form",onSubmit:this.handleSubmit},l().createElement(h.FormattedMessage,{id:"login_prompt",defaultMessage:[{type:0,value:"Login"}]},e=>l().createElement("input",{type:"text",id:"inputLogin",placeholder:e,autoComplete:"username",autoCorrect:"off",autoCapitalize:"none",value:this.state.login,onChange:this.handleLoginChange,required:!0,autoFocus:!0})),l().createElement(h.FormattedMessage,{id:"password_prompt",defaultMessage:[{type:0,value:"Password"}]},e=>l().createElement(Ha.A,{type:"password",id:"inputPassword",placeholder:e,autoComplete:"current-password",value:this.state.password,onChange:this.handlePasswordChange,required:!0})),l().createElement("div",{className:"panel-form-row"},l().createElement(qa.A,{id:"save-token",name:"save-token",checked:this.state.saveToken,onChange:this.handleToggleSaveToken}),l().createElement("label",{htmlFor:"save-token"}," ",l().createElement(h.FormattedMessage,{id:"stay_logged_in",defaultMessage:[{type:0,value:"Stay logged in"}]})),l().createElement("a",{href:"#reset"},l().createElement(h.FormattedMessage,{id:"forgot_password_link",defaultMessage:[{type:0,value:"Forgot password?"}]}))),l().createElement("div",{className:"dialog-buttons"},l().createElement("button",{className:e,type:"submit"},l().createElement(h.FormattedMessage,{id:"button_sign_in",defaultMessage:[{type:0,value:"Sign in"}]}))))}}var Ka=r(9593),$a=r.n(Ka);const Ga=(0,h.defineMessages)({invalid_id:{id:"error_invalid_id",defaultMessage:[{type:0,value:"Invalid ID"}]}});class Qa extends l().PureComponent{constructor(e){super(e),this.qrCodeRef=l().createRef(),this.state={groupId:""},this.handleChange=this.handleChange.bind(this),this.handleKeyPress=this.handleKeyPress.bind(this),this.handleSubmit=this.handleSubmit.bind(this)}componentDidMount(){new($a())(this.qrCodeRef.current,{text:this.props.myURI,width:ks.Tn,height:ks.Tn})}handleChange(e){this.setState({groupId:e.target.value})}handleKeyPress(e){"Enter"===e.key&&this.handleSubmit(e)}handleSubmit(e){if(e.preventDefault(),this.state.groupId){const e=this.state.groupId.trim(),t=e.substring(0,3);e.length>3&&["usr","grp","chn"].includes(t)?this.props.onSubmit(e):this.props.onError(this.props.intl.formatMessage(Ga.invalid_id),"err")}}render(){return l().createElement("div",{className:"panel-form"},l().createElement("div",{className:"panel-form-row"},l().createElement(h.FormattedMessage,{id:"group_user_id_prompt",defaultMessage:[{type:0,value:"Group or User ID"}]},e=>l().createElement("input",{type:"text",placeholder:e,value:this.state.groupId,onChange:this.handleChange,onKeyDown:this.handleKeyPress,required:!0,autoFocus:!0}))),l().createElement("div",{className:"dialog-buttons"},l().createElement("button",{className:"primary",onClick:this.handleSubmit},l().createElement(h.FormattedMessage,{id:"button_subscribe",defaultMessage:[{type:0,value:"Subscribe"}]}))),l().createElement("br",null),l().createElement("div",{className:"panel-form-column"},l().createElement("label",{className:"small"},"Scan my ID:"),l().createElement("div",{className:"qr-code",ref:this.qrCodeRef})))}}var Ya=(0,h.injectIntl)(Qa),Xa=r(221),Ja=r(9418),Za=r(3307);class ei extends l().PureComponent{constructor(e){super(e),this.fullName=l().createRef(),this.state={fullName:"",private:"",description:"",imageUrl:null,tags:[],isChannel:!1,newAvatar:null,newAvatarMime:null},this.handleFieldEdit=this.handleFieldEdit.bind(this),this.handleImageChanged=this.handleImageChanged.bind(this),this.handleAvatarCropped=this.handleAvatarCropped.bind(this),this.handleAvatarCropCancel=this.handleAvatarCropCancel.bind(this),this.uploadAvatar=this.uploadAvatar.bind(this),this.handleTagsChanged=this.handleTagsChanged.bind(this),this.handleChannelToggle=this.handleChannelToggle.bind(this),this.handleSubmit=this.handleSubmit.bind(this)}componentDidMount(){}handleFieldEdit(e,t){this.setState({[e]:t.target.value||""})}handleImageChanged(e,t){this.setState({newAvatar:t,newAvatarMime:e})}handleAvatarCropped(e,t,s,a){const i=t?URL.createObjectURL(t):null;this.setState({imageUrl:i,newAvatar:null,newAvatarMime:null}),t&&this.uploadAvatar(e,t,s,a)}handleAvatarCropCancel(){this.setState({newAvatar:null,newAvatarMime:null})}uploadAvatar(e,t,s,a){const i=e=>{let{mime:t,blob:s}=e;if(s.size>ks.Z7){this.props.tinode.getLargeFileHelper().upload(s).then(e=>this.setState({imageUrl:e})).catch(e=>this.props.onError(e.message,"err"))}else(0,Os.Sk)(s).then(e=>this.setState({imageUrl:(0,Os.to)({data:e.bits,type:t})}))};s>ks.eQ||a>ks.eQ||s!=a?(0,Os.ag)(t,ks.eQ,ks.eQ,ks.qy,!0).then(e=>i(e)).catch(e=>this.props.onError(e.message,"err")):i({mime:e,blob:t,width:s,height:a})}handleTagsChanged(e){this.setState({tags:e})}handleChannelToggle(){this.setState({isChannel:!this.state.isChannel})}handleSubmit(e){e.preventDefault();const t=(0,js.W5)(this.state.fullName.trim(),ks.tS),s=(0,js.W5)(this.state.private.trim(),ks.tS),a=(0,js.W5)(this.state.description.trim(),ks.lQ);t&&this.props.onSubmit(t,a,this.state.imageUrl,s,this.state.tags,this.state.isChannel)}render(){if(this.state.newAvatar)return l().createElement(Xa.A,{avatar:this.state.newAvatar,mime:this.state.newAvatarMime,onSubmit:this.handleAvatarCropped,onCancel:this.handleAvatarCropCancel,onError:this.props.onError});let e="primary";return this.props.disabled&&(e+=" disabled"),l().createElement("form",{className:"panel-form",onSubmit:this.handleSubmit},l().createElement("div",{className:"panel-form-column"},l().createElement("center",null,l().createElement(Ja.A,{tinode:this.props.tinode,avatar:this.state.imageUrl,onError:this.props.onError,onImageUpdated:this.handleImageChanged})),l().createElement("div",{className:"group"},l().createElement("label",{className:"small",htmlFor:"new-topic-fn"},l().createElement(h.FormattedMessage,{id:"label_topic_name",defaultMessage:[{type:0,value:"Name"}]})),l().createElement(h.FormattedMessage,{id:"topic_name_editing_placeholder",defaultMessage:[{type:0,value:"Freeform name of the group"}]},e=>l().createElement("input",{type:"text",id:"new-topic-fn",placeholder:e,ref:this.fullName,value:this.state.fullName,onChange:this.handleFieldEdit.bind(this,"fullName"),autoFocus:!0,required:!0,tabIndex:0}))),l().createElement("div",{className:"group"},l().createElement("label",{className:"small",htmlFor:"new-topic-priv"},l().createElement(h.FormattedMessage,{id:"label_private",defaultMessage:[{type:0,value:"Private comment"}]})),l().createElement(h.FormattedMessage,{id:"private_editing_placeholder",defaultMessage:[{type:0,value:"Visible to you only"}]},e=>l().createElement("input",{type:"text",id:"new-topic-priv",placeholder:e,value:this.state.private,onChange:this.handleFieldEdit.bind(this,"private"),tabIndex:1}))),l().createElement("div",{className:"group"},l().createElement("label",{className:"small",htmlFor:"new-topic-desc"},l().createElement(h.FormattedMessage,{id:"label_description",defaultMessage:[{type:0,value:"Description"}]})),l().createElement(h.FormattedMessage,{id:"description_editing_placeholder",defaultMessage:[{type:0,value:"Description (optional)"}]},e=>l().createElement("input",{type:"text",id:"new-topic-desc",placeholder:e,value:this.state.description,onChange:this.handleFieldEdit.bind(this,"description"),tabIndex:2})))),l().createElement("div",{className:"panel-form-row"},l().createElement(qa.A,{checked:this.state.isChannel,tabIndex:3,onChange:this.handleChannelToggle})," ",l().createElement("label",{onClick:this.handleChannelToggle},l().createElement(h.FormattedMessage,{id:"channel_prompt",defaultMessage:[{type:0,value:"This is a channel"}]}))),l().createElement(h.FormattedMessage,{id:"title_tag_manager",defaultMessage:[{type:0,value:"Tags (search & discovery)"}]},e=>l().createElement(Za.A,{tinode:this.props.tinode,tags:this.state.tags,activated:!0,onTagsChanged:this.handleTagsChanged,tabIndex:4,title:e})),l().createElement("div",{className:"dialog-buttons"},l().createElement("button",{className:e},l().createElement(h.FormattedMessage,{id:"button_create",defaultMessage:[{type:0,value:"Create"}]}))))}}const ti=(0,h.defineMessages)({search_for_contacts:{id:"search_for_contacts",defaultMessage:[{type:0,value:"Use search to find contacts"}]},search_no_results:{id:"search_no_results",defaultMessage:[{type:0,value:"Search returned no results"}]},search_placeholder:{id:"search_placeholder",defaultMessage:[{type:0,value:"List like alice@example.com, +17025550003..."}]}});class si extends l().Component{constructor(e){super(e),this.state={tabSelected:"find",searchQuery:null},this.handleTabClick=this.handleTabClick.bind(this),this.handleSearchContacts=this.handleSearchContacts.bind(this),this.handleSearchResultSelected=this.handleSearchResultSelected.bind(this),this.handleNewGroupSubmit=this.handleNewGroupSubmit.bind(this),this.handleGroupByID=this.handleGroupByID.bind(this)}componentDidMount(){this.props.onInitFind()}handleTabClick(e){e.preventDefault(),Ta.A.navigateTo(Ta.A.addUrlParam(window.location.hash,"tab",e.currentTarget.dataset.id)),this.setState({tabSelected:e.currentTarget.dataset.id})}handleSearchContacts(e){if(e=e.trim()||Ts.Tinode.DEL_CHAR,!/[\s,:]/.test(e)&&e!=Ts.Tinode.DEL_CHAR){const t=(0,Xs.xH)(e);if(t)e=`${Ts.Tinode.TAG_EMAIL}${t}`;else{const t=(0,Xs.Jt)(e);t?e=`${Ts.Tinode.TAG_PHONE}${t}`:("@"==e[0]&&(e=e.substring(1)),e=`${Ts.Tinode.TAG_ALIAS}${e},${e}`)}}this.props.onSearchContacts(e),this.setState({searchQuery:Ts.Tinode.isNullValue(e)?null:e})}handleSearchResultSelected(e){"find"==this.state.tabSelected&&(Ta.A.navigateTo(Ta.A.removeUrlParam(window.location.hash,"tab")),this.props.onCreateTopic(e))}handleNewGroupSubmit(e,t,s,a,i,n){Ta.A.navigateTo(Ta.A.removeUrlParam(window.location.hash,"tab")),this.props.onCreateTopic(void 0,{public:(0,Xs.k6)(e,s,null,t),private:a,tags:i},n)}handleGroupByID(e){Ta.A.navigateTo(Ta.A.removeUrlParam(window.location.hash,"tab")),this.props.onCreateTopic(e)}render(){const{formatMessage:e}=this.props.intl,t=e(this.state.searchQuery?ti.search_no_results:ti.search_for_contacts),s=e(ti.search_placeholder);return l().createElement("div",{className:"flex-column"},l().createElement("ul",{className:"tabbar"},l().createElement("li",{className:"find"===this.state.tabSelected?"active":null},l().createElement("a",{href:"#","data-id":"find",onClick:this.handleTabClick},l().createElement(h.FormattedMessage,{id:"tabtitle_find_user",defaultMessage:[{type:0,value:"find"}]}))),l().createElement("li",{className:"grp"===this.state.tabSelected?"active":null},l().createElement("a",{href:"#","data-id":"grp",onClick:this.handleTabClick},l().createElement(h.FormattedMessage,{id:"tabtitle_new_group",defaultMessage:[{type:0,value:"new group"}]}))),l().createElement("li",{className:"byid"===this.state.tabSelected?"active":null},l().createElement("a",{href:"#","data-id":"byid",onClick:this.handleTabClick},l().createElement(h.FormattedMessage,{id:"tabtitle_group_by_id",defaultMessage:[{type:0,value:"by id"}]})))),"grp"===this.state.tabSelected?l().createElement(ei,{tinode:this.props.tinode,onSubmit:this.handleNewGroupSubmit,onError:this.props.onError}):"byid"===this.state.tabSelected?l().createElement(Ya,{myURI:Ts.Tinode.URI_TOPIC_ID_PREFIX+this.props.tinode.getCurrentUserID(),onSubmit:this.handleGroupByID,onError:this.props.onError}):l().createElement("div",{className:"flex-column"},l().createElement(Fs,{placeholder:s,onSearchContacts:this.handleSearchContacts}),l().createElement(Ps.A,{tinode:this.props.tinode,contacts:this.props.searchResults,myUserId:this.props.myUserId,emptyListMessage:t,showSelfTopic:!this.state.searchQuery,showOnline:!1,showUnread:!1,showContextMenu:!1,onTopicSelected:this.handleSearchResultSelected})))}}var ai=(0,h.injectIntl)(si);class ii extends l().PureComponent{constructor(e){super(e),this.state={hostName:e.serverAddress,changed:!1},this.handleHostNameChange=this.handleHostNameChange.bind(this),this.handleEditingFinished=this.handleEditingFinished.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this)}handleHostNameChange(e){this.setState({hostName:e.target.value,changed:!0})}handleEditingFinished(){this.state.changed&&(this.setState({changed:!1}),this.props.onServerAddressChange(this.state.hostName.trim()))}handleKeyDown(e){"Enter"==e.key&&this.handleEditingFinished()}render(){const e=[];for(let t in ks.SE){let s=ks.SE[t];e.push(l().createElement("option",{key:s,value:s}))}return l().createElement("div",{className:"panel-form-row"},l().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,onKeyDown:this.handleKeyDown,required:!0}),l().createElement("datalist",{id:"known-hosts"},e))}}class ni extends l().PureComponent{constructor(e){super(e),this.state={transport:e.transport||"def",serverAddress:e.serverAddress,secureConnection:e.secureConnection},this.handleSubmit=this.handleSubmit.bind(this),this.handleTransportSelected=this.handleTransportSelected.bind(this),this.handleServerAddressChange=this.handleServerAddressChange.bind(this),this.handleToggleSecure=this.handleToggleSecure.bind(this)}handleSubmit(e){e.preventDefault(),this.props.onUpdate({transport:this.state.transport,serverAddress:this.state.serverAddress,secureConnection:this.state.secureConnection})}handleTransportSelected(e){this.setState({transport:e.currentTarget.value})}handleServerAddressChange(e){this.setState({serverAddress:e})}handleToggleSecure(e){this.setState({secureConnection:!this.state.secureConnection})}render(){const e={def:"default",ws:"websocket",lp:"long polling"},t=[];return["def","ws","lp"].forEach(s=>{const a="transport-"+s,i=e[s];t.push(l().createElement("li",{key:s},l().createElement("input",{type:"radio",id:a,name:"transport-select",value:s,checked:this.state.transport===s,onChange:this.handleTransportSelected}),l().createElement("label",{htmlFor:a},i)))}),l().createElement("form",{id:"settings-form",className:"panel-form",onSubmit:this.handleSubmit},l().createElement("div",{className:"panel-form-row"},l().createElement("label",{className:"small"},l().createElement(h.FormattedMessage,{id:"label_server_to_use",defaultMessage:[{type:0,value:"Server to use:"}]}))),l().createElement(ii,{serverAddress:this.state.serverAddress,onServerAddressChange:this.handleServerAddressChange}),l().createElement("div",{className:"panel-form-row"},l().createElement(qa.A,{id:"secure-connection",name:"secure-connection",checked:this.state.secureConnection,className:"quoted",onChange:this.handleToggleSecure}),l().createElement("label",{htmlFor:"secure-connection"},l().createElement(h.FormattedMessage,{id:"label_use_secure_connection",defaultMessage:[{type:0,value:"Use secure connection"}]}))),l().createElement("div",{className:"panel-form-row"},l().createElement("label",{className:"small"},l().createElement(h.FormattedMessage,{id:"label_wire_transport",defaultMessage:[{type:0,value:"Wire transport:"}]}))),l().createElement("div",{className:"panel-form-row"},l().createElement("ul",{className:"quoted"},t)),l().createElement("div",{className:"dialog-buttons"},l().createElement("button",{type:"submit",className:"primary"},l().createElement(h.FormattedMessage,{id:"button_update",defaultMessage:[{type:0,value:"Update"}]}))))}}const ri=(0,h.defineMessages)({phone:{id:"phone_dative",defaultMessage:[{type:0,value:"phone"}]},email:{id:"email_dative",defaultMessage:[{type:0,value:"email"}]}});class oi extends l().PureComponent{constructor(e){super(e),this.state={code:e.credCode||"",codeReceived:e.credCode},this.handleCodeChange=this.handleCodeChange.bind(this),this.handleKeyPress=this.handleKeyPress.bind(this),this.handleSubmit=this.handleSubmit.bind(this),this.handleCancel=this.handleCancel.bind(this)}static getDerivedStateFromProps(e,t){return e.credCode!=t.codeReceived?{code:e.credCode||"",codeReceived:e.credCode}:t}componentDidMount(){this.props.credCode&&this.props.onSubmit(this.props.credMethod,this.props.credCode,this.props.credToken)}componentDidUpdate(e,t){this.state.codeReceived&&this.state.code&&this.state.code!=t.code&&this.props.onSubmit(this.props.credMethod,this.state.code,this.props.credToken)}handleCodeChange(e){this.setState({code:e.target.value.replace(/[^\d]/g,"")})}handleKeyPress(e){"Enter"===e.key?this.handleSubmit(e):"Escape"==e.key&&this.handleCancel(e)}handleSubmit(e){e.preventDefault(),this.state.code&&this.state.code.trim()&&this.props.onSubmit(this.props.credMethod,this.state.code.trim(),this.props.credToken)}handleCancel(e){e.preventDefault(),this.props.onCancel()}render(){const{formatMessage:e}=this.props.intl,t={email:e(ri.email),tel:e(ri.phone)}[this.props.credMethod]||this.props.credMethod;return l().createElement("div",{className:"panel-form"},l().createElement("div",{className:"panel-form-row"},l().createElement("label",{className:"small gray",htmlFor:"enter-confirmation-code"},l().createElement(h.FormattedMessage,{id:"enter_confirmation_code_prompt",defaultMessage:[{type:0,value:"Confirmation code"}],values:{method:t}}))),l().createElement("div",{className:"panel-form-row"},l().createElement(h.FormattedMessage,{id:"numeric_confirmation_code_prompt",defaultMessage:[{type:0,value:"Numbers only"}]},e=>l().createElement("input",{type:"text",id:"enter-confirmation-code",placeholder:e,value:this.state.code,onChange:this.handleCodeChange,onKeyDown:this.handleKeyPress,required:!0}))),l().createElement("div",{className:"dialog-buttons"},l().createElement("button",{className:"secondary",onClick:this.handleCancel},l().createElement(h.FormattedMessage,{id:"button_cancel",defaultMessage:[{type:0,value:"Cancel"}]})),l().createElement("button",{className:"primary",onClick:this.handleSubmit},l().createElement(h.FormattedMessage,{id:"button_confirm",defaultMessage:[{type:0,value:"Confirm"}]}))))}}var li=(0,h.injectIntl)(oi);const ci=l().lazy(e=>Promise.all([r.e(961),r.e(271)]).then(r.bind(r,4271))),hi=l().lazy(e=>Promise.all([r.e(961),r.e(996)]).then(r.bind(r,3996))),di=l().lazy(e=>r.e(352).then(r.bind(r,2352))),pi=l().lazy(e=>Promise.all([r.e(961),r.e(993)]).then(r.bind(r,3993))),ui=l().lazy(e=>r.e(827).then(r.bind(r,3827))),mi=(0,h.defineMessages)({login:{id:"sidepanel_title_login",defaultMessage:[{type:0,value:"Sign In"}]},register:{id:"sidepanel_title_register",defaultMessage:[{type:0,value:"Create Account"}]},settings:{id:"sidepanel_title_settings",defaultMessage:[{type:0,value:"Settings"}]},edit:{id:"sidepanel_title_account_settings",defaultMessage:[{type:0,value:"Account Settings"}]},general:{id:"panel_title_general",defaultMessage:[{type:0,value:"General"}]},security:{id:"panel_title_security",defaultMessage:[{type:0,value:"Security"}]},crop:{id:"panel_title_crop",defaultMessage:[{type:0,value:"Drag to Adjust"}]},notif:{id:"sidepanel_title_acc_notifications",defaultMessage:[{type:0,value:"Notifications"}]},acc_general:{id:"sidepanel_title_acc_general",defaultMessage:[{type:0,value:"General"}]},support:{id:"sidepanel_title_acc_support",defaultMessage:[{type:0,value:"Support"}]},newtpk:{id:"sidepanel_title_newtpk",defaultMessage:[{type:0,value:"Start New Chat"}]},cred:{id:"sidepanel_title_cred",defaultMessage:[{type:0,value:"Confirm Credentials"}]},reset:{id:"sidepanel_title_reset",defaultMessage:[{type:0,value:"Reset Password"}]},archive:{id:"sidepanel_title_archive",defaultMessage:[{type:0,value:"Archived Chats"}]},blocked:{id:"sidepanel_title_blocked",defaultMessage:[{type:0,value:"Blocked Chats"}]},wallpapers:{id:"wallpapers",defaultMessage:[{type:0,value:"Wallpapers"}]}});class gi extends l().PureComponent{constructor(e){super(e),this.handleNewTopic=this.handleNewTopic.bind(this)}handleNewTopic(){this.props.onNavigate("newtpk")}render(){const{formatMessage:e}=this.props.intl,t=this.props.state||(this.props.myUserId?"contacts":"login");let s,a,i,n;return"contacts"==t?(s=this.props.title,a=!this.props.avatar||this.props.avatar,i=this.props.trustedBadges):(s=e(mi[t]),a=!1,i=null),-1==["login","contacts"].indexOf(t)&&(n=this.props.onCancel),l().createElement("div",{id:"sidepanel"},l().createElement(Ua,{state:t,title:s,avatar:a,tinode:this.props.tinode,trustedBadges:i,myUserId:this.props.myUserId,onSignUp:this.props.onSignUp,onSettings:this.props.onSettings,onNewTopic:this.handleNewTopic,onCancel:n}),l().createElement(ua.A,{level:this.props.errorLevel,text:this.props.errorText,action:this.props.errorAction,actionText:this.props.errorActionText,onClearError:this.props.onError}),l().createElement(va.A,{show:this.props.loadSpinnerVisible}),"login"===t?l().createElement(Wa,{login:this.props.login,disabled:this.props.loginDisabled,persist:this.props.persist,onLogin:this.props.onLoginRequest,onPersistenceChange:this.props.onPersistenceChange}):"register"===t?l().createElement(o.Suspense,{fallback:l().createElement("div",{className:"panel-form-row"},l().createElement(h.FormattedMessage,{id:"loading_note",defaultMessage:[{type:0,value:"Loading..."}]}))},l().createElement(hi,{tinode:this.props.tinode,reqCredMethod:this.props.reqCredMethod,onShowCountrySelector:this.props.onShowCountrySelector,onCreateAccount:this.props.onCreateAccount,onCancel:this.props.onCancel,onError:this.props.onError})):"settings"===t?l().createElement(ni,{transport:this.props.transport,serverAddress:this.props.serverAddress,secureConnection:this.props.secureConnection,onCancel:this.props.onCancel,onUpdate:this.props.onGlobalSettings}):"edit"===t?l().createElement(o.Suspense,{fallback:l().createElement("div",{className:"panel-form-row"},l().createElement(h.FormattedMessage,{id:"loading_note",defaultMessage:[{type:0,value:"Loading..."}]}))},l().createElement(ci,{tinode:this.props.tinode,myUserId:this.props.myUserId,trustedBadges:this.props.trustedBadges,reqCredMethod:this.props.reqCredMethod,onShowCountrySelector:this.props.onShowCountrySelector,onNavigate:this.props.onNavigate,onCredAdd:this.props.onCredAdd,onCredDelete:this.props.onCredDelete,onCredConfirm:this.props.onCredConfirm,onError:this.props.onError})):"general"===t||"crop"===t?l().createElement(La.A,{topic:"me",tinode:this.props.tinode,myUserId:this.props.myUserId,reqCredMethod:this.props.reqCredMethod,onUpdateTopicDesc:this.props.onUpdateAccountDesc,onUpdateTagsRequest:this.props.onUpdateAccountTags,onError:this.props.onError}):"acc_general"===t?l().createElement(Ba,{colorSchema:this.props.colorSchema,onSelectWallpapers:this.props.onSelectWallpapers,textSize:this.props.textSize,sendOnEnter:this.props.sendOnEnter,onChangeColorSchema:this.props.onChangeColorSchema,onTextSizeChanged:this.props.onTextSizeChanged,onSendOnEnterChanged:this.props.onSendOnEnterChanged}):"notif"===t?l().createElement(za,{messageSounds:this.props.messageSounds,desktopAlerts:this.props.desktopAlerts,desktopAlertsEnabled:this.props.desktopAlertsEnabled,onTogglePushNotifications:this.props.onTogglePushNotifications,onToggleMessageSounds:this.props.onToggleMessageSounds}):"security"===t?l().createElement(o.Suspense,{fallback:l().createElement("div",{className:"panel-form-row"},l().createElement(h.FormattedMessage,{id:"loading_note",defaultMessage:[{type:0,value:"Loading..."}]}))},l().createElement(di,{tinode:this.props.tinode,incognitoMode:this.props.incognitoMode,onUpdateAccountDesc:this.props.onUpdateAccountDesc,onUpdatePassword:this.props.onUpdatePassword,onLogout:this.props.onLogout,onDeleteAccount:this.props.onDeleteAccount,onShowAlert:this.props.onShowAlert,onShowBlocked:this.props.onShowBlocked,onToggleIncognitoMode:this.props.onToggleIncognitoMode})):"support"===t?l().createElement(Va,{serverAddress:this.props.serverAddress,serverVersion:this.props.serverVersion}):"wallpapers"===t?l().createElement(o.Suspense,{fallback:l().createElement("div",{className:"panel-form-row"},l().createElement(h.FormattedMessage,{id:"loading_note",defaultMessage:[{type:0,value:"Loading..."}]}))},l().createElement(ui,{colorSchema:"auto"!==this.props.colorSchema?this.props.colorSchema:this.props.systemColorSchema,onWallpaperSelected:this.props.onWallpaperSelected})):"contacts"===t||"archive"==t||"blocked"==t?l().createElement(ja,{tinode:this.props.tinode,myUserId:this.props.myUserId,connected:this.props.connected,topicSelected:this.props.topicSelected,archive:"archive"==t,blocked:"blocked"==t,chatList:this.props.chatList,showContextMenu:this.props.showContextMenu,onTopicSelected:this.props.onTopicSelected,onShowArchive:this.props.onShowArchive}):"newtpk"===t?l().createElement(ai,{tinode:this.props.tinode,searchResults:this.props.searchResults,onInitFind:this.props.onInitFind,onSearchContacts:this.props.onSearchContacts,onCreateTopic:this.props.onCreateTopic,onError:this.props.onError}):"cred"===t?l().createElement(li,{credCode:this.props.credCode,credMethod:this.props.credMethod,credToken:this.props.credToken,onSubmit:this.props.onValidateCredentials,onCancel:this.props.onCancel}):"reset"===t?l().createElement(o.Suspense,{fallback:l().createElement("div",{className:"panel-form-row"},l().createElement(h.FormattedMessage,{id:"loading_note",defaultMessage:[{type:0,value:"Loading..."}]}))},l().createElement(pi,{tinode:this.props.tinode,reqCredMethod:this.props.reqCredMethod,onShowCountrySelector:this.props.onShowCountrySelector,onRequest:this.props.onPasswordResetRequest,onReset:this.props.onResetPassword,onCancel:this.props.onCancel,onError:this.props.onError})):null)}}var fi=(0,h.injectIntl)(gi),vi=r(257);function bi(){let e=ks.HX;return"object"==typeof window.location&&("file:"==window.location.protocol||"localhost"==window.location.hostname?e=ks.SE.local:window.location.hostname&&(e=window.location.hostname+(window.location.port?":"+window.location.port:""))),e}function Ei(){return"object"==typeof window.location&&"https:"==window.location.protocol}var yi=r(8262);const wi=l().lazy(e=>r.e(316).then(r.bind(r,4316))),Ci=l().lazy(e=>r.e(747).then(r.bind(r,7747))),Si=new Audio("audio/msg.m4a"),Mi=(0,h.defineMessages)({reconnect_countdown:{id:"reconnect_countdown",defaultMessage:[{type:0,value:"Disconnected. Reconnecting in "},{type:1,value:"seconds"},{type:0,value:"…"}]},reconnect_now:{id:"reconnect_now",defaultMessage:[{type:0,value:"Try now"}]},push_init_failed:{id:"push_init_failed",defaultMessage:[{type:0,value:"Failed to initialize push notifications"}]},invalid_security_token:{id:"invalid_security_token",defaultMessage:[{type:0,value:"Invalid security token"}]},no_connection:{id:"no_connection",defaultMessage:[{type:0,value:"No connection"}]},code_doesnot_match:{id:"code_doesnot_match",defaultMessage:[{type:0,value:"Code does not match"}]},menu_item_info:{id:"menu_item_info",defaultMessage:[{type:0,value:"Info"}]},menu_item_audio_call:{id:"menu_item_audio_call",defaultMessage:[{type:0,value:"Call"}]},menu_item_video_call:{id:"menu_item_video_call",defaultMessage:[{type:0,value:"Video call"}]},cred_confirmed_successfully:{id:"cred_confirmed_successfully",defaultMessage:[{type:0,value:"Confirmed successfully"}]},password_reset_success:{id:"password_reset_success",defaultMessage:[{type:0,value:"Password reset successfully"}]},select_country:{id:"select_country",defaultMessage:[{type:0,value:"Select country"}]}});class _i extends l().Component{constructor(e){super(e),this.selfRef=l().createRef(),this.state=this.getBlankState(),this.handleResize=this.handleResize.bind(this),this.handleHashRoute=this.handleHashRoute.bind(this),this.handleOnline=this.handleOnline.bind(this),this.handleColorSchemeChange=this.handleColorSchemeChange.bind(this),this.checkForAppUpdate=this.checkForAppUpdate.bind(this),this.handleVisibilityEvent=this.handleVisibilityEvent.bind(this),this.handleError=this.handleError.bind(this),this.handleLoginRequest=this.handleLoginRequest.bind(this),this.handlePersistenceChange=this.handlePersistenceChange.bind(this),this.handleConnected=this.handleConnected.bind(this),this.handleAutoreconnectIteration=this.handleAutoreconnectIteration.bind(this),this.doLogin=this.doLogin.bind(this),this.handleLoginSuccessful=this.handleLoginSuccessful.bind(this),this.handleDisconnect=this.handleDisconnect.bind(this),this.tnMeMetaDesc=this.tnMeMetaDesc.bind(this),this.tnMeContactUpdate=this.tnMeContactUpdate.bind(this),this.tnMeSubsUpdated=this.tnMeSubsUpdated.bind(this),this.resetContactList=this.resetContactList.bind(this),this.tnInitFind=this.tnInitFind.bind(this),this.tnFndSubsUpdated=this.tnFndSubsUpdated.bind(this),this.handleSearchContacts=this.handleSearchContacts.bind(this),this.handleTopicSelected=this.handleTopicSelected.bind(this),this.handleHideMessagesView=this.handleHideMessagesView.bind(this),this.handleSendMessage=this.handleSendMessage.bind(this),this.handleNewChatInvitation=this.handleNewChatInvitation.bind(this),this.handleNewAccount=this.handleNewAccount.bind(this),this.handleNewAccountRequest=this.handleNewAccountRequest.bind(this),this.handleUpdatePasswordRequest=this.handleUpdatePasswordRequest.bind(this),this.handleUpdateAccountTagsRequest=this.handleUpdateAccountTagsRequest.bind(this),this.handleToggleIncognitoMode=this.handleToggleIncognitoMode.bind(this),this.handleChangeColorSchema=this.handleChangeColorSchema.bind(this),this.handleChangeTextSize=this.handleChangeTextSize.bind(this),this.handleSendOnEnter=this.handleSendOnEnter.bind(this),this.handleSelectWallpapers=this.handleSelectWallpapers.bind(this),this.handleWallpaperSelected=this.handleWallpaperSelected.bind(this),this.handleSettings=this.handleSettings.bind(this),this.handleGlobalSettings=this.handleGlobalSettings.bind(this),this.handleShowArchive=this.handleShowArchive.bind(this),this.handleShowBlocked=this.handleShowBlocked.bind(this),this.handleToggleMessageSounds=this.handleToggleMessageSounds.bind(this),this.handleCredAdd=this.handleCredAdd.bind(this),this.handleCredDelete=this.handleCredDelete.bind(this),this.handleCredConfirm=this.handleCredConfirm.bind(this),this.initFCMessaging=this.initFCMessaging.bind(this),this.toggleFCMToken=this.toggleFCMToken.bind(this),this.handlePushMessage=this.handlePushMessage.bind(this),this.handleSidepanelCancel=this.handleSidepanelCancel.bind(this),this.handleStartTopicRequest=this.handleStartTopicRequest.bind(this),this.handleNewTopicCreated=this.handleNewTopicCreated.bind(this),this.handleTopicUpdateRequest=this.handleTopicUpdateRequest.bind(this),this.handleUnarchive=this.handleUnarchive.bind(this),this.handleChangePermissions=this.handleChangePermissions.bind(this),this.handleTagsUpdateRequest=this.handleTagsUpdateRequest.bind(this),this.handleLogout=this.handleLogout.bind(this),this.handleDeleteAccount=this.handleDeleteAccount.bind(this),this.handleDeleteTopicRequest=this.handleDeleteTopicRequest.bind(this),this.handleDeleteMessagesRequest=this.handleDeleteMessagesRequest.bind(this),this.handleLeaveUnsubRequest=this.handleLeaveUnsubRequest.bind(this),this.handleBlockTopicRequest=this.handleBlockTopicRequest.bind(this),this.handleReportTopic=this.handleReportTopic.bind(this),this.handleShowContextMenu=this.handleShowContextMenu.bind(this),this.defaultTopicContextMenu=this.defaultTopicContextMenu.bind(this),this.handleHideContextMenu=this.handleHideContextMenu.bind(this),this.handleShowAlert=this.handleShowAlert.bind(this),this.handleShowInfoView=this.handleShowInfoView.bind(this),this.handleMemberUpdateRequest=this.handleMemberUpdateRequest.bind(this),this.handleValidateCredentialsRequest=this.handleValidateCredentialsRequest.bind(this),this.handlePasswordResetRequest=this.handlePasswordResetRequest.bind(this),this.handleResetPassword=this.handleResetPassword.bind(this),this.handleContextMenuAction=this.handleContextMenuAction.bind(this),this.handleShowCountrySelector=this.handleShowCountrySelector.bind(this),this.handleShowForwardDialog=this.handleShowForwardDialog.bind(this),this.handleHideForwardDialog=this.handleHideForwardDialog.bind(this),this.handleStartVideoCall=this.handleStartVideoCall.bind(this),this.handleStartAudioCall=this.handleStartAudioCall.bind(this),this.handleInfoMessage=this.handleInfoMessage.bind(this),this.handleDataMessage=this.handleDataMessage.bind(this),this.handleCallClose=this.handleCallClose.bind(this),this.handleCallInvite=this.handleCallInvite.bind(this),this.handleCallRinging=this.handleCallRinging.bind(this),this.handleCallHangup=this.handleCallHangup.bind(this),this.handleCallSendOffer=this.handleCallSendOffer.bind(this),this.handleCallIceCandidate=this.handleCallIceCandidate.bind(this),this.handleCallSendAnswer=this.handleCallSendAnswer.bind(this),this.handleCallAccept=this.handleCallAccept.bind(this),this.sendMessageToTopic=this.sendMessageToTopic.bind(this),this.callTimeoutTimer=null}getBlankState(){const e=yi.A.getObject("settings")||{},t=!!yi.A.getObject("keep-logged-in");if(!e.wallpaper){const t=(0,Xs.KY)();e.wallpaper=t.name||"",e.wallpaperSize=t.size||0,e.wallpaperBlur=0}return{connected:!1,ready:!1,autoLogin:!1,transport:e.transport||null,serverAddress:e.serverAddress||bi(),secureConnection:void 0===e.secureConnection?Ei():e.secureConnection,serverVersion:"no connection",messageSounds:!e.messageSoundsOff,incognitoMode:!1,colorSchema:e.colorSchema||ks.gb,systemColorSchema:window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",wallpaper:e.wallpaper,wallpaperSize:e.wallpaperSize,wallpaperBlur:0,textSize:e.textSize||ks.cL,sendOnEnter:e.sendOnEnter||"plain",desktopAlerts:t&&!!e.desktopAlerts,desktopAlertsEnabled:(Ei()||"object"==typeof window.location&&"localhost"==window.location.hostname)&&void 0!==ze&&"undefined"!=typeof navigator&&"undefined"!=typeof FIREBASE_INIT,firebaseToken:t?yi.A.getObject("firebase-token"):null,applicationVisible:!document.hidden,errorText:"",errorLevel:null,errorAction:void 0,errorActionText:null,sidePanelSelected:"login",sidePanelTitle:null,sidePanelAvatar:null,myTrustedBadges:[],loadSpinnerVisible:!1,login:"",password:"",persist:t,myUserId:null,liveConnection:navigator.onLine,topicSelected:"",topicSelectedOnline:!1,topicSelectedAcs:null,newTopicParams:null,loginDisabled:!1,displayMobile:window.innerWidth<=ks.VJ,infoPanel:void 0,mobilePanel:"sidepanel",callTopic:void 0,callState:0,callAudioOnly:void 0,callShouldStart:!1,contextMenuVisible:!1,contextMenuBounds:null,contextMenuClickAt:null,contextMenuParams:null,contextMenuItems:[],forwardDialogVisible:!1,forwardMessage:null,alertVisible:!1,alertParams:{},chatList:[],searchResults:[],searchableContacts:[],reqCredMethod:void 0,credMethod:void 0,credCode:void 0,credToken:void 0,requestedTopic:void 0}}componentDidMount(){if(window.addEventListener("resize",this.handleResize),this.handleOnlineOn=e=>{this.handleOnline(!0)},window.addEventListener("online",this.handleOnlineOn),this.handleOnlineOff=e=>{this.handleOnline(!1)},window.addEventListener("offline",this.handleOnlineOff),window.addEventListener("hashchange",this.handleHashRoute),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",this.handleColorSchemeChange),document.addEventListener("visibilitychange",this.handleVisibilityEvent),document.documentElement.style.colorScheme="auto"==this.state.colorSchema?"light dark":this.state.colorSchema,document.documentElement.style.setProperty("--message-text-size",`${this.state.textSize}pt`),this.applyWallpaperSettings(this.state.wallpaper,this.state.wallpaperSize,this.state.wallpaperBlur,"auto"==this.state.colorSchema?this.state.systemColorSchema:this.state.colorSchema),console.log("Wallpaper settings:",this.state.wallpaper,this.state.wallpaperSize,this.state.wallpaperBlur),console.log("Wallpaper type:",0==this.state.wallpaperSize?"wpimg":"wppatt"),console.log("System color scheme:",this.state.systemColorSchema),"function"==typeof BroadcastChannel){new BroadcastChannel("tinode-sw").addEventListener("message",this.handlePushMessage)}else console.warn("Your browser does not support BroadcastChannel. Some features will not be available");this.lastWakeUpCheck=(new Date).getTime(),this.wakeUpTicker=setInterval(e=>{const t=(new Date).getTime();t-this.lastWakeUpCheck>ks.hT&&this.handleOnlineOn(),this.lastWakeUpCheck=t},ks.ZW),this.setState({viewportWidth:document.documentElement.clientWidth,viewportHeight:document.documentElement.clientHeight}),new Promise((e,t)=>{this.tinode=_i.tnSetup(this.state.serverAddress,Ei(),this.state.transport,this.props.intl.locale,this.state.persist,e),this.tinode.onConnect=this.handleConnected,this.tinode.onDisconnect=this.handleDisconnect,this.tinode.onAutoreconnectIteration=this.handleAutoreconnectIteration,this.tinode.onInfoMessage=this.handleInfoMessage,this.tinode.onDataMessage=this.handleDataMessage}).then(e=>{this.state.desktopAlertsEnabled&&this.initFCMessaging().catch(e=>{}),this.resetContactList();const t=this.state.persist?yi.A.getObject("auth-token"):void 0;t&&(this.setState({autoLogin:!0}),t.expires=new Date(t.expires),this.tinode.setAuthToken(t),this.tinode.connect().catch(e=>{this.handleError(e.message,"err")}));const s=Ta.A.parseUrlHash(window.location.hash);if(["cred","reset","register"].includes(s.path[0]))this.handleHashRoute();else{this.setState({requestedTopic:s.path[1]});const e=s.params&&s.params.cred_done?Ta.A.addUrlParam("","cred_done",s.params.cred_done):"";Ta.A.navigateTo(e)}})}componentWillUnmount(){window.removeEventListener("resize",this.handleResize),window.removeEventListener("hashchange",this.handleHashRoute),window.removeEventListener("online",this.handleOnlineOn),window.removeEventListener("offline",this.handleOnlineOff),window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",this.handleColorSchemeChange),document.removeEventListener("visibilitychange",this.handleVisibilityEvent),clearInterval(this.wakeUpTicker)}static tnSetup(e,t,s,a,i,n){const r=new Ts.Tinode({appName:ks.C3,host:e,apiKey:ks.Lq,transport:s,secure:t,persist:i},n);return r.setHumanLanguage(a),r.enableLogging(ks.U3,!0),r}handlePushMessage(e){this.tinode.oobNotification(e.data||{})}initFCMessaging(){const{formatMessage:e,locale:t}=this.props.intl,s=(t,s)=>{console.error(t,s),this.handleError(e(Mi.push_init_failed),"err"),this.setState({firebaseToken:null}),yi.A.updateObject("settings",{desktopAlerts:!1})};try{return this.fcm=Cs(ze(FIREBASE_INIT,ks.C3)),navigator.serviceWorker.getRegistration("/service-worker.js").then(e=>e||navigator.serviceWorker.register("/service-worker.js").then(e=>(this.checkForAppUpdate(e),e))).then(e=>((e.active||e.installing).postMessage(JSON.stringify({locale:t,version:vi.i})),_i.requestFCMToken(this.fcm,e))).then(e=>{const t=yi.A.getObject("keep-logged-in");e!=this.state.firebaseToken&&(this.tinode.setDeviceToken(e),t&&yi.A.setObject("firebase-token",e)),this.setState({firebaseToken:e,desktopAlerts:!0}),t&&yi.A.updateObject("settings",{desktopAlerts:!0}),_s(this.fcm,e=>{this.handlePushMessage(e)})}).catch(e=>{throw s(e),e})}catch(e){return s(e),Promise.reject(e)}}static requestFCMToken(e,t){return Ss(e,{serviceWorkerRegistration:t,vapidKey:FIREBASE_INIT.messagingVapidKey}).then(t=>{if(t)return t;if("undefined"!=typeof Notification)return Notification.requestPermission().then(t=>{if("granted"===t)return Ss(e,{serviceWorkerRegistration:reg,vapidKey:FIREBASE_INIT.messagingVapidKey}).then(e=>{if(e)return e;throw new Error("Failed to initialize notifications")});throw new Error("No permission to send notifications: "+t)});throw new Error("Notifications are not supported")})}handleResize(){const e=document.documentElement.clientWidth<=ks.VJ;this.setState({viewportWidth:document.documentElement.clientWidth,viewportHeight:document.documentElement.clientHeight}),this.state.displayMobile!=e&&this.setState({displayMobile:e})}checkForAppUpdate(e){e.onupdatefound=t=>{const s=e.installing;s.onstatechange=e=>{if("installed"==s.state&&navigator.serviceWorker.controller){const e=l().createElement(l().Fragment,null,l().createElement(h.FormattedMessage,{id:"update_available",defaultMessage:[{type:0,value:"Update available."}]})," ",l().createElement("a",{href:""},l().createElement(h.FormattedMessage,{id:"reload_update",defaultMessage:[{type:0,value:"Reload"}]})),".");this.handleError(e,"info")}}}}handleHashRoute(){const e=Ta.A.parseUrlHash(window.location.hash),t={infoPanel:e.params.info,newTopicTabSelected:e.params.tab};if(e.path&&e.path.length>0){["acc_general","archive","blocked","contacts","cred","crop","edit","general","newtpk","notif","register","reset","security","settings","support","wallpapers",""].includes(e.path[0])?t.sidePanelSelected=e.path[0]:console.warn("Unknown sidepanel view",e.path[0]);let s=e.path[1]||null;s!=this.state.topicSelected&&(Ts.Tinode.topicType(s)?t.mobilePanel="topic-view":(s=null,t.mobilePanel="sidepanel"),Object.assign(t,{topicSelected:s,topicSelectedAcs:this.tinode.getTopicAccessMode(s)}))}else Object.assign(t,{sidePanelSelected:"",topicSelected:null});e.params.method&&(t.credMethod=e.params.method),e.params.code&&(t.credCode=e.params.code),e.params.token&&(t.credToken=e.params.token),e.params.cred_done&&Object.assign(t,_i.stateForError(this.props.intl.formatMessage(Mi.cred_confirmed_successfully),"info")),this.setState(t)}handleOnline(e){e?(this.handleError(),clearInterval(this.reconnectCountdown),this.tinode.reconnect()):this.handleError(this.props.intl.formatMessage(Mi.no_connection),"warn"),this.setState({liveConnection:e})}handleVisibilityEvent(){this.setState({applicationVisible:!document.hidden})}static stateForError(e,t,s,a){return{errorText:e,errorLevel:t,errorAction:s,errorActionText:a,callShouldStart:!1}}handleError(e,t,s,a){this.setState(_i.stateForError(e,t,s,a))}handleLoginRequest(e,t){this.setState({loginDisabled:!0,login:e,password:t,loadSpinnerVisible:!0,autoLogin:!0}),this.handleError("",null),this.tinode.isConnected()?this.doLogin(e,t,null,{meth:this.state.credMethod,resp:this.state.credCode}):this.tinode.connect().catch(e=>{this.setState({loginDisabled:!1,autoLogin:!1,loadSpinnerVisible:!1}),this.handleError(e.message,"err")}),this.state.desktopAlertsEnabled&&!this.state.firebaseToken&&this.initFCMessaging()}handlePersistenceChange(e){e?this.tinode.initStorage().then(e=>{yi.A.setObject("keep-logged-in",!0),this.setState({persist:!0})}):this.tinode.clearStorage().then(e=>{yi.A.setObject("keep-logged-in",!1),this.setState({persist:!1})})}handleConnected(){clearInterval(this.reconnectCountdown),this.handleError();const e=this.tinode.getServerInfo();this.setState({serverVersion:e.ver+" "+(e.build?e.build:"none"),reqCredMethod:((e.reqCred||{}).auth||[])[0]||"email"}),this.state.autoLogin&&this.doLogin(this.state.login,this.state.password,null,{meth:this.state.credMethod,resp:this.state.credCode})}handleAutoreconnectIteration(e,t){if(clearInterval(this.reconnectCountdown),e<0)return void this.handleError();if(t)return void t.then(e=>{this.handleError()}).catch(e=>{this.handleError(e.message,"err")});const{formatMessage:s}=this.props.intl;let a=e/1e3;a|=a,this.reconnectCountdown=setInterval(e=>{if(a<-10)return clearInterval(this.reconnectCountdown),void this.tinode.reconnect();const t=a>99?(0,js.Ye)(a):a;this.handleError(s(Mi.reconnect_countdown,{seconds:t}),"warn",e=>{clearInterval(this.reconnectCountdown),this.tinode.reconnect()},s(Mi.reconnect_now)),a-=1},1e3)}handleDisconnect(e){this.setState({connected:!1,ready:!1,topicSelectedOnline:!1,errorText:e&&e.message?e.message:"Disconnected",errorLevel:e&&e.message?"err":"warn",loginDisabled:!1,contextMenuVisible:!1,forwardDialogVisible:!1,serverVersion:"no connection"})}doLogin(e,t,s,a){if(this.tinode.isAuthenticated())return void Ta.A.navigateTo("");let i=s||(this.tinode.getAuthToken()||{}).token;if(!(e&&t||i))return Ta.A.navigateTo(""),void this.setState({loginDisabled:!1});a=Ts.Tinode.credential(a);let n,r=this.tinode.isConnected()?Promise.resolve():this.tinode.connect();e&&t?(i=null,this.setState({password:null}),n=r.then(s=>this.tinode.loginBasic(e,t,a))):n=r.then(e=>this.tinode.loginToken(i,a)),n.then(e=>{e.code>=300&&"validate credentials"===e.text?(this.setState({loadSpinnerVisible:!1}),a&&this.handleError(this.props.intl.formatMessage(Mi.code_doesnot_match),"warn"),_i.navigateToCredentialsView(e.params)):this.handleLoginSuccessful()}).catch(e=>{const t=e.code>=500;this.setState({loginDisabled:!1,credMethod:void 0,credCode:void 0,loadSpinnerVisible:!1,autoLogin:t}),this.handleError(e.message,"err"),console.warn("Login failed",e),t||(i&&this.handleLogout(),Ta.A.navigateTo(""))})}static navigateToCredentialsView(e){const t=Ta.A.parseUrlHash(window.location.hash);t.path[0]="cred",t.params.method=e.cred[0],t.params.token=e.token,t.params.code=e.code,Ta.A.navigateTo(Ta.A.composeUrlHash(t.path,t.params))}handleLoginSuccessful(){this.handleError(),yi.A.getObject("keep-logged-in")&&yi.A.setObject("auth-token",this.tinode.getAuthToken());const e=this.state.requestedTopic,t=this.tinode.getMeTopic();t.onMetaDesc=this.tnMeMetaDesc,t.onContactUpdate=this.tnMeContactUpdate,t.onSubsUpdated=this.tnMeSubsUpdated,this.setState({connected:!0,credMethod:void 0,credCode:void 0,credToken:void 0,myUserId:this.tinode.getCurrentUserID(),autoLogin:!0,requestedTopic:void 0}),t.subscribe(t.startMetaQuery().withLaterSub().withDesc().withTags().withCred().build()).catch(e=>{this.tinode.disconnect(),localStorage.removeItem("auth-token"),this.handleError(e.message,"err"),Ta.A.navigateTo("")}).finally(e=>{this.setState({loadSpinnerVisible:!1})});let s=Ta.A.setUrlSidePanel(window.location.hash,"contacts");e&&(s=Ta.A.setUrlTopic(s,e)),Ta.A.navigateTo(s)}tnMeMetaDesc(e){if(e){if(e.public&&this.setState({sidePanelTitle:e.public.fn,sidePanelAvatar:(0,Os.to)(e.public.photo)}),e.trusted){const t=[];for(const[s,a]of Object.entries(e.trusted))a&&t.push(s);this.setState({myTrustedBadges:t})}e.acs&&this.setState({incognitoMode:!e.acs.isPresencer()}),_i.checkIfPinsUpdated(e,this.state.chatList)&&this.resetContactList()}}tnMeContactUpdate(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&&t){const e=this.tinode.getTopic(t.topic),s=e&&e.isArchived();t.unread>0&&this.state.messageSounds&&!s&&(document.hidden||this.state.topicSelected!=t.topic)&&Si.play().catch(e=>{}),this.resetContactList()}else"recv"==e||("gone"==e||"unsub"==e?(this.state.topicSelected==t.topic&&this.handleTopicSelected(null),this.resetContactList()):"acs"==e?this.state.topicSelected==t.topic&&this.setState({topicSelectedAcs:t.acs}):"del"==e||"upd"==e||"call"==e||console.info("Unsupported (yet) presence update:",e,"in",(t||{}).topic))}tnMeSubsUpdated(e){this.resetContactList()}static prepareSearchableContacts(e,t){const s={};for(const t of e)Ts.Tinode.isP2PTopicName(t.topic)&&(s[t.topic]={user:t.topic,updated:t.updated,public:t.public,private:t.private,acs:t.acs});for(const e of t)s[e.user]||(s[e.user]=e);return Object.values(s)}resetContactList(){const e={chatList:[]};this.state.ready||(e.ready=!0);const t=this.tinode.getMeTopic();t.contacts(t=>{t.topic||t.user||(t.topic=t.name),e.chatList.push(t),this.state.topicSelected==t.topic&&(e.topicSelectedOnline=t.online,e.topicSelectedAcs=t.acs)});const s=new Date(0);e.chatList.sort((e,a)=>{const i=t.pinnedTopicRank(a.topic)-t.pinnedTopicRank(e.topic);return 0!=i?i:(a.touched||s).getTime()-(e.touched||s).getTime()}),e.searchableContacts=_i.prepareSearchableContacts(e.chatList,this.state.searchResults),this.setState(e)}static checkIfPinsUpdated(e,t){for(let s=0;s{this.handleError(e.message,"err")})}tnFndSubsUpdated(){const e=[];this.tinode.getFndTopic().contacts(t=>{e.push(t)}),this.setState({searchResults:e,searchableContacts:_i.prepareSearchableContacts(this.state.chatList,e)})}handleSearchContacts(e){const t=this.tinode.getFndTopic();t.setMeta({desc:{public:e}}).then(e=>t.getMeta(t.startMetaQuery().withSub().build())).catch(e=>this.handleError(e.message,"err"))}handleTopicSelected(e){this.state.newTopicParams&&this.state.newTopicParams._topicName!=e&&this.setState({newTopicParams:null}),e?(this.setState({errorText:"",errorLevel:null,mobilePanel:"topic-view",infoPanel:void 0}),this.state.topicSelected!=e&&(this.setState({topicSelectedOnline:this.tinode.isTopicOnline(e),topicSelectedAcs:this.tinode.getTopicAccessMode(e),forwardMessage:null}),Ta.A.navigateTo(Ta.A.setUrlTopic("",e)))):(this.setState({topicSelected:null,errorText:"",errorLevel:null,mobilePanel:"sidepanel",topicSelectedOnline:!1,topicSelectedAcs:null,infoPanel:void 0,forwardMessage:null}),Ta.A.navigateTo(Ta.A.setUrlTopic("",null)))}handleHideMessagesView(){this.setState({mobilePanel:"sidepanel"}),Ta.A.navigateTo(Ta.A.setUrlTopic(window.location.hash,null))}handleSendMessage(e,t,s,a){const i=this.tinode.getTopic(this.state.topicSelected);return this.sendMessageToTopic(i,e,t,s,a)}sendMessageToTopic(e,t,s,a,i){(t=e.createMessage(t,!1))._uploader=a,i&&(t.head=Object.assign(t.head||{},i));const n=[];if(s&&n.push(s),!e.isSubscribed()){const s=e.subscribe().then(s=>{let a=[];e.queuedMessages(s=>{s._sending||s.seq==t.seq||(s.head&&s.head.webrtc?a.push(s.seq):e.isSubscribed()&&e.publishMessage(s))}),a.length>0&&e.delMessagesList(a,!0)});n.push(s)}return e.publishDraft(t,Promise.all(n)).then(t=>(e.isArchived()&&e.archive(!1),t)).catch(e=>this.handleError(e.message,"err"))}handleNewChatInvitation(e,t){const s=this.tinode.getTopic(e);let a=null;switch(t){case"accept":const i=s.getAccessMode().getGiven();a=s.setMeta({sub:{mode:i}}),s.isP2PType()&&(a=a.then(t=>s.setMeta({sub:{user:e,mode:i}})));break;case"delete":a=s.delTopic(!0);break;case"block":const n=s.getAccessMode().updateWant("-JP").getWant();a=s.setMeta({sub:{mode:n}}).then(e=>this.handleTopicSelected(null));break;default:console.warn("Unknown invitation action",'"'+t+'""')}null!=a&&a.catch(e=>this.handleError(e.message,"err"))}handleNewAccount(){this.handleError(),Ta.A.navigateTo(Ta.A.setUrlSidePanel(window.location.hash,"register"))}handleNewAccountRequest(e,t,s,a,i){this.handleError(),this.tinode.connect(this.state.serverAddress).then(n=>{let r;return s&&s.photo&&s.photo.ref&&(r=[s.photo.ref]),this.tinode.createAccountBasic(e,t,{public:s,tags:i,cred:Ts.Tinode.credential(a),attachments:r})}).then(e=>{e.code>=300&&"validate credentials"==e.text?_i.navigateToCredentialsView(e.params):this.handleLoginSuccessful(this)}).catch(e=>{this.handleError(e.message,"err")})}handleToggleIncognitoMode(e){this.setState({incognitoMode:null});const t=this.tinode.getMeTopic(),s=t.getAccessMode().updateWant(e?"-P":"+P").getWant();t.setMeta({sub:{mode:s}}).catch(t=>{this.setState({incognitoMode:!e}),this.handleError(t.message,"err")})}handleChangeColorSchema(e){console.log("User color scheme change:",e),this.setState({colorSchema:e}),yi.A.updateObject("settings",{colorSchema:e}),document.documentElement.style.colorScheme="auto"==e?"light dark":e,this.applyColorSchema(e,this.state.systemColorSchema,this.state.wallpaperSize)}handleColorSchemeChange(e){const t=e.matches?"dark":"light";console.log("System color scheme change:",t),this.setState({systemColorSchema:t}),this.applyColorSchema(this.state.colorSchema,t,this.state.wallpaperSize)}applyColorSchema(e,t,s){const a="auto"==e?t:e;console.log("applyColorSchema:",a),document.documentElement.style.setProperty("--wallpaper-invert","dark"==a&&s?"1":"0"),document.documentElement.style.setProperty("--wallpaper-brightness","dark"!=a||s?"1":"0.5")}handleSelectWallpapers(){this.handleError(),Ta.A.navigateTo(Ta.A.setUrlSidePanel(window.location.hash,"wallpapers"))}applyWallpaperSettings(e,t,s,a){document.documentElement.style.setProperty("--wallpaper-url",`url('${e}')`),document.documentElement.style.setProperty("--wallpaper-repeat",t?"repeat":"no-repeat"),document.documentElement.style.setProperty("--wallpaper-blur",t?"0px":`${s}px`),document.documentElement.style.setProperty("--wallpaper-size",t?`${t}px`:"cover"),document.documentElement.style.setProperty("--wallpaper-position",t?"unset":"center"),document.documentElement.style.setProperty("--wallpaper-invert","dark"==a&&t?"1":"0"),document.documentElement.style.setProperty("--wallpaper-brightness","dark"!=a||t?"1":"0.5")}handleWallpaperSelected(e,t,s){this.handleError(),yi.A.updateObject("settings",{wallpaper:e,wallpaperSize:t,wallpaperBlur:s}),this.setState({wallpaper:e,wallpaperSize:t,wallpaperBlur:s}),this.applyWallpaperSettings(e,t,s,"auto"==this.state.colorSchema?this.state.systemColorSchema:this.state.colorSchema)}handleChangeTextSize(e){this.setState({textSize:0|e}),yi.A.updateObject("settings",{textSize:e}),document.documentElement.style.setProperty("--message-text-size",`${e}pt`)}handleSendOnEnter(e){this.setState({sendOnEnter:e}),yi.A.updateObject("settings",{sendOnEnter:e})}handleUpdateAccountTagsRequest(e,t){this.tinode.getMeTopic().setMeta({tags:t}).catch(e=>this.handleError(e.message,"err"))}handleSettings(){this.handleError(),Ta.A.navigateTo(Ta.A.setUrlSidePanel(window.location.hash,this.state.myUserId?"edit":"settings"))}handleGlobalSettings(e){const t=e.serverAddress||this.state.serverAddress,s=e.transport||this.state.transport,a=void 0===e.secureConnection?this.state.secureConnection:e.secureConnection;this.tinode&&(this.tinode.clearStorage(),this.tinode.onDisconnect=void 0,this.tinode.disconnect()),this.tinode=_i.tnSetup(t,a,s,this.props.intl.locale,yi.A.getObject("keep-logged-in")),this.tinode.onConnect=this.handleConnected,this.tinode.onDisconnect=this.handleDisconnect,this.tinode.onAutoreconnectIteration=this.handleAutoreconnectIteration,this.tinode.onInfoMessage=this.handleInfoMessage,this.tinode.onDataMessage=this.handleDataMessage,this.setState({serverAddress:t,transport:s,secureConnection:a}),yi.A.setObject("settings",{serverAddress:t,transport:s,secureConnection:a}),Ta.A.navigateTo(Ta.A.setUrlSidePanel(window.location.hash,""))}handleShowArchive(){Ta.A.navigateTo(Ta.A.setUrlSidePanel(window.location.hash,this.state.myUserId?"archive":""))}handleShowBlocked(){Ta.A.navigateTo(Ta.A.setUrlSidePanel(window.location.hash,this.state.myUserId?"blocked":""))}toggleFCMToken(e){e?(this.setState({desktopAlerts:null}),this.state.firebaseToken?(this.setState({desktopAlerts:!0}),yi.A.getObject("keep-logged-in")&&yi.A.updateObject("settings",{desktopAlerts:!0})):this.initFCMessaging()):this.state.firebaseToken&&this.fcm?Ms(this.fcm).catch(e=>{console.error("Unable to delete token.",e)}).finally(e=>{yi.A.updateObject("settings",{desktopAlerts:!1}),localStorage.removeItem("firebase-token"),this.setState({desktopAlerts:!1,firebaseToken:null}),this.tinode.setDeviceToken(null)}):(this.setState({desktopAlerts:!1,firebaseToken:null}),yi.A.updateObject("settings",{desktopAlerts:!1}))}handleToggleMessageSounds(e){this.setState({messageSounds:e}),yi.A.updateObject("settings",{messageSoundsOff:!e})}handleCredAdd(e,t){this.tinode.getMeTopic().setMeta({cred:{meth:e,val:t}}).catch(e=>this.handleError(e.message,"err"))}handleCredDelete(e,t){this.tinode.getMeTopic().delCredential(e,t).catch(e=>this.handleError(e.message,"err"))}handleCredConfirm(e,t){_i.navigateToCredentialsView({cred:[e],code:t})}handleSidepanelCancel(){const e=Ta.A.parseUrlHash(window.location.hash);let t="";["security","support","general","notif","acc_general"].includes(e.path[0])?t="edit":"crop"==e.path[0]?t="general":"blocked"==e.path[0]?t="security":"wallpapers"==e.path[0]?t="acc_general":this.state.myUserId&&(t="contacts"),e.path[0]=t,e.params&&(delete e.params.code,delete e.params.method,delete e.params.tab,delete e.params.scheme,delete e.params.token),Ta.A.navigateTo(Ta.A.composeUrlHash(e.path,e.params)),this.setState({errorText:"",errorLevel:null})}basicNavigator(e){Ta.A.navigateTo(Ta.A.setUrlSidePanel(window.location.hash,e))}infoNavigator(e){Ta.A.navigateTo(Ta.A.setUrlInfoPanel(window.location.hash,e))}handleStartTopicRequest(e,t,s){if(e&&this.tinode.isTopicCached(e))return void this.handleTopicSelected(e);const a={};Ts.Tinode.isP2PTopicName(e)?(a.sub={mode:ks.cZ},a.desc={defacs:{auth:ks.cZ}}):(e=e||this.tinode.newGroupTopicName(s),t&&(a.desc={public:t.public,private:{comment:t.private}},a.tags=t.tags)),a._topicName=e,this.setState({newTopicParams:a},t=>{this.handleTopicSelected(e)})}handleNewTopicCreated(e,t){let s={};this.state.callShouldStart&&(s={callState:3,callShouldStart:!1}),this.state.topicSelected==e&&e!=t&&(s.topicSelected=t),this.setState(s,e=>{Ta.A.navigateTo(Ta.A.setUrlTopic("",t))})}handleTopicUpdateRequest(e,t,s,a){this.handleError();const i=this.tinode.getTopic(e);if(i){const e={};let n;t&&(t.photo&&(t.photo.ref&&t.photo.ref!=Ts.Tinode.DEL_CHAR?n=[t.photo.ref]:t.photo.data&&t.photo.data!=Ts.Tinode.DEL_CHAR||(t.photo=Ts.Tinode.DEL_CHAR)),e.public=t),"string"==typeof s&&(e.private=s===Ts.Tinode.DEL_CHAR?Ts.Tinode.DEL_CHAR:{comment:s}),a&&(e.defacs=a),i.setMeta({desc:e,attachments:n}).catch(e=>this.handleError(e.message,"err"))}}handleUnarchive(e){const t=this.tinode.getTopic(e);t&&t.archive(!1).catch(e=>this.handleError(e.message,"err"))}handleUpdatePasswordRequest(e){this.handleError(),e&&this.tinode.updateAccountBasic(null,this.tinode.getCurrentLogin(),e).catch(e=>this.handleError(e.message,"err"))}handleChangePermissions(e,t,s){const a=this.tinode.getTopic(e);if(a){const e=a.getAccessMode();s?(e.updateGiven(t),t=e.getGiven()):(e.updateWant(t),t=e.getWant()),a.setMeta({sub:{user:s,mode:t}}).catch(e=>this.handleError(e.message,"err"))}}handleTagsUpdateRequest(e,t){const s=this.tinode.getTopic(e);s&&s.setMeta({tags:t}).catch(e=>this.handleError(e.message,"err"))}handleLogout(){let e;(0,Xs.OM)(0),localStorage.removeItem("auth-token"),localStorage.removeItem("firebase-token"),localStorage.removeItem("settings"),this.state.firebaseToken&&Ms(this.fcm),document.documentElement.style.colorScheme="auto"==ks.gb?"light dark":ks.gb,document.documentElement.style.setProperty("--message-text-size",`${ks.cL}pt`),clearInterval(this.reconnectCountdown),this.tinode?(e=this.tinode.clearStorage(),this.tinode.onDisconnect=void 0,this.tinode.disconnect()):e=Promose.resolve(),this.setState(this.getBlankState()),e.then(e=>{this.tinode=_i.tnSetup(this.state.serverAddress,Ei(),this.state.transport,this.props.intl.locale,yi.A.getObject("keep-logged-in"),e=>{this.tinode.onConnect=this.handleConnected,this.tinode.onDisconnect=this.handleDisconnect,this.tinode.onAutoreconnectIteration=this.handleAutoreconnectIteration,this.tinode.onInfoMessage=this.handleInfoMessage,this.tinode.onDataMessage=this.handleDataMessage,Ta.A.navigateTo("")})})}handleDeleteAccount(){this.tinode.delCurrentUser(!0).then(e=>{this.handleLogout()})}handleDeleteTopicRequest(e){const t=this.tinode.getTopic(e);t&&t.delTopic(!0).then(e=>{Ta.A.navigateTo(Ta.A.setUrlTopic(window.location.hash,""))}).catch(e=>{this.handleError(e.message,"err")})}handleDeleteMessagesRequest(e){const t=this.tinode.getTopic(e);t&&t.delMessagesAll(!0).catch(e=>this.handleError(e.message,"err"))}handleLeaveUnsubRequest(e){const t=this.tinode.getTopic(e);t&&t.leave(!0).then(e=>{Ta.A.navigateTo(Ta.A.setUrlTopic(window.location.hash,""))}).catch(e=>{this.handleError(e.message,"err")})}handleBlockTopicRequest(e){const t=this.tinode.getTopic(e);t&&t.updateMode(null,"-JP").then(e=>{Ta.A.navigateTo(Ta.A.setUrlTopic(window.location.hash,""))}).catch(e=>this.handleError(e.message,"err"))}handleReportTopic(e){const t=this.tinode.getTopic(e);t&&(this.tinode.report("report",e),t.updateMode(null,"-JP").then(e=>{Ta.A.navigateTo(Ta.A.setUrlTopic(window.location.hash,""))}).catch(e=>this.handleError(e.message,"err")))}handleShowContextMenu(e,t){this.setState({contextMenuVisible:!0,contextMenuClickAt:{x:e.x,y:e.y},contextMenuParams:e,contextMenuItems:t||this.defaultTopicContextMenu(e.topicName),contextMenuBounds:this.selfRef.current.getBoundingClientRect()})}handleShowForwardDialog(e){"newtpk"==this.state.sidePanelSelected&&this.handleSidepanelCancel();const t="➦ "+e.userName,s="string"==typeof e.content?Ts.Drafty.init(e.content):Ts.Drafty.forwardedContent(e.content),a=Ts.Drafty.preview(s,ks.TR,!0),i=Ts.Drafty.append(Ts.Drafty.appendLineBreak(Ts.Drafty.mention(t,e.userFrom)),s),n=Ts.Drafty.quote(t,e.userFrom,a),r={forwarded:e.topicName+":"+e.seq};this.setState({forwardDialogVisible:!0,forwardMessage:{head:r,msg:i,preview:n}})}defaultTopicContextMenu(e){const t=this.tinode.getTopic(e);if(t._deleted)return["topic_delete"];const s=this.tinode.getMeTopic();let a=!1,i=!1,n=!1,r=!1,o=!1,l=!1,c=!1,h=!1,d=!1,p=!1,u=!1;if(t){r=t.isSubscribed(),l=t.isArchived(),c=s.pinnedTopicRank(e)>0;const h=t.getAccessMode();h&&(a=h.isMuted(),i=!h.isJoiner(),n=!h.isJoiner("want"),o=h.isDeleter(),d=h.isWriter())}return h=d&&!!this.tinode.getServerParam("iceServers"),p=Ts.Tinode.isP2PTopicName(e),u=Ts.Tinode.isSelfTopicName(e),[r?{title:this.props.intl.formatMessage(Mi.menu_item_info),handler:this.handleShowInfoView}:null,r&&p&&h?{title:this.props.intl.formatMessage(Mi.menu_item_audio_call),handler:this.handleStartAudioCall}:null,r&&p&&h?{title:this.props.intl.formatMessage(Mi.menu_item_video_call),handler:this.handleStartVideoCall}:null,r?"messages_clear":null,r&&o&&!u?"messages_clear_hard":null,u?null:a?i?null:"topic_unmute":"topic_mute",u?null:n?"topic_unblock":"topic_block",c?"topic_unpin":"topic_pin",l?"topic_restore":"topic_archive","topic_delete"]}handleHideContextMenu(){this.setState({contextMenuVisible:!1,contextMenuClickAt:null,contextMenuParams:null,contextMenuBounds:null})}handleHideForwardDialog(e){this.setState({forwardDialogVisible:!1,forwardMessage:e?this.state.forwardMessage:null})}handleContextMenuAction(e,t,s){"topic_archive"==e?t&&s.topicName&&s.topicName==this.state.topicSelected&&t.then(e=>{this.handleTopicSelected(null)}):"menu_item_forward"==e&&this.handleShowForwardDialog(s)}handleShowAlert(e,t,s,a,i,n){this.setState({alertVisible:!0,alertParams:{title:e,content:t,onConfirm:s,confirm:a,onReject:i,reject:n}})}handleShowInfoView(){Ta.A.navigateTo(Ta.A.addUrlParam(window.location.hash,"info","info")),this.setState({infoPanel:"info"})}handleMemberUpdateRequest(e,t,s){if(!e)return;const a=this.tinode.getTopic(e);a&&(t&&t.length>0&&t.forEach(e=>{a.invite(e,null).catch(e=>this.handleError(e.message,"err"))}),s&&s.length>0&&s.forEach(e=>{a.delSubscription(e).catch(e=>this.handleError(e.message,"err"))}))}handleValidateCredentialsRequest(e,t,s){this.tinode.isAuthenticated()?this.tinode.getMeTopic().setMeta({cred:{meth:e,resp:t}}).then(e=>Ta.A.navigateTo(Ta.A.setUrlSidePanel(window.location.hash,"contacts"))).catch(e=>this.handleError(e.message,"err")):(this.setState({credMethod:e,credCode:t,credToken:s}),this.doLogin(null,null,s,{meth:e,resp:t}))}handlePasswordResetRequest(e,t){return this.tinode.connect().then(s=>this.tinode.requestResetAuthSecret("basic",e,t)).catch(e=>{this.handleError(e.message,"err")})}handleResetPassword(e,t){const s=(0,Os.$Z)(t.secret);s&&t.scheme?this.tinode.connect().then(a=>this.tinode.updateAccountBasic(null,null,e,{scheme:t.scheme,secret:s})).then(e=>{this.handleError(this.props.intl.formatMessage(Mi.password_reset_success),"info"),Ta.A.navigateTo("")}).catch(e=>{this.handleError(e.message,"err")}):this.handleError(this.props.intl.formatMessage(Mi.invalid_security_token),"err")}handleShowCountrySelector(e,t,s){this.handleShowAlert(this.props.intl.formatMessage(Mi.select_country),l().createElement(o.Suspense,{fallback:l().createElement("div",null,l().createElement(h.FormattedMessage,{id:"loading_note",defaultMessage:[{type:0,value:"Loading..."}]}))},l().createElement(wi,{selected:e,onSubmit:(e,t)=>{this.setState({alertVisible:!1}),s(e,t)}})),null,null,e=>{},null)}handleStartVideoCall(){this.setState({callTopic:this.state.topicSelected,callState:1,callAudioOnly:!1})}handleStartAudioCall(){this.setState({callTopic:this.state.topicSelected,callState:1,callAudioOnly:!0})}handleCallInvite(e,t,s,a){switch(s){case 1:const s={webrtc:Ls,aonly:!!a};return this.handleSendMessage(Ts.Drafty.videoCall(a),void 0,void 0,s).then(e=>e.code<200||e.code>=300||!e.params||!e.params.seq?(this.handleCallClose(),e):(this.setState({callSeq:e.params.seq}),e));case 3:const i=this.tinode.getTopic(e);if(!i)return;i.videoCall("accept",t)}}handleCallRinging(e,t){const s=this.tinode.getTopic(e);s&&s.videoCall("ringing",t)}handleCallHangup(e,t){const s=this.tinode.getTopic(e);s&&s.videoCall("hang-up",t)}handleCallSendOffer(e,t,s){const a=this.tinode.getTopic(e);a&&a.videoCall("offer",t,s)}handleCallIceCandidate(e,t,s){const a=this.tinode.getTopic(e);a&&a.videoCall("ice-candidate",t,s)}handleCallSendAnswer(e,t,s){const a=this.tinode.getTopic(e);a&&a.videoCall("answer",t,s)}handleCallClose(){this.callTimeoutTimer&&clearTimeout(this.callTimeoutTimer),this.setState({callTopic:void 0,callState:0,callAudioOnly:void 0})}handleCallAccept(e,t,s){const a=this.tinode.getTopic(e);if(a)if(a.isSubscribed()){this.handleTopicSelected(t?e:this.state.callTopic);const a={callState:3};t&&(a.callTopic=e,a.callSeq=s),this.setState(a)}else this.setState({callShouldStart:!0},e=>this.handleTopicSelected(this.state.callTopic))}handleInfoMessage(e){if("call"==e.what)switch(e.event){case"accept":if(Ts.Tinode.isMeTopicName(e.topic)&&this.tinode.isMe(e.from))return void this.setState({callTopic:null,callState:0,callSeq:null,callAudioOnly:void 0});e.topic==this.state.callTopic&&this.setState({callState:3});break;case"hang-up":this.handleCallClose()}}handleDataMessage(e){if(e.head&&e.head.webrtc&&e.head.webrtc==Ls&&Ts.Tinode.isP2PTopicName(e.topic)){const t=this.tinode.getTopic(e.topic);if(t){const s=t.latestMsgVersion(e.seq)||e;s.head&&s.head.webrtc&&s.head.webrtc==Ls&&e.from!=this.state.myUserId&&(0==this.state.callState?this.setState({callTopic:e.topic,callState:2,callSeq:e.seq,callAudioOnly:!!s.head.aonly}):this.handleCallHangup(e.topic,e.seq))}else console.warn("Received vc data message from unknown topic",e.topic)}}render(){const e="auto"!==this.state.colorSchema?this.state.colorSchema:this.state.systemColorSchema;return l().createElement("div",{id:"app-container",ref:this.selfRef},this.state.contextMenuVisible?l().createElement(Is,{tinode:this.tinode,bounds:this.state.contextMenuBounds,clickAt:this.state.contextMenuClickAt,params:this.state.contextMenuParams,items:this.state.contextMenuItems,hide:this.handleHideContextMenu,onShowAlert:this.handleShowAlert,onAction:this.handleContextMenuAction,onTopicRemoved:e=>{e==this.state.topicSelected&&this.handleTopicSelected(null)},onError:this.handleError}):null,this.state.forwardDialogVisible?l().createElement(Rs,{tinode:this.tinode,contacts:this.state.chatList,topicSelected:this.state.topicSelected,myUserId:this.state.myUserId,hide:this.handleHideForwardDialog,onInitFind:this.tnInitFind,searchResults:this.state.searchResults,onSearchContacts:this.handleSearchContacts,onTopicSelected:this.handleStartTopicRequest}):null,this.state.callTopic&&2==this.state.callState?l().createElement(qs,{tinode:this.tinode,topic:this.state.callTopic,seq:this.state.callSeq,callState:this.state.callState,audioOnly:this.state.callAudioOnly,onClose:this.handleCallClose,onRinging:this.handleCallRinging,onAcceptCall:this.handleCallAccept,onReject:this.handleCallHangup}):null,this.state.alertVisible?l().createElement(As,{title:this.state.alertParams.title,content:this.state.alertParams.content,onReject:this.state.alertParams.onReject?e=>this.setState({alertVisible:!1}):null,reject:this.state.alertParams.reject,onConfirm:this.state.alertParams.onConfirm?e=>{this.setState({alertVisible:!1}),this.state.alertParams.onConfirm()}:null,confirm:this.state.alertParams.confirm}):null,this.state.displayMobile&&"sidepanel"!=this.state.mobilePanel?null:l().createElement(fi,{tinode:this.tinode,connected:this.state.connected,displayMobile:this.state.displayMobile,state:this.state.sidePanelSelected,title:this.state.sidePanelTitle,avatar:this.state.sidePanelAvatar,trustedBadges:this.state.myTrustedBadges,login:this.state.login,persist:this.state.persist,myUserId:this.state.myUserId,loginDisabled:this.state.loginDisabled,loadSpinnerVisible:this.state.loadSpinnerVisible,errorText:this.state.errorText,errorLevel:this.state.errorLevel,errorAction:this.state.errorAction,errorActionText:this.state.errorActionText,topicSelected:this.state.topicSelected,chatList:this.state.chatList,credMethod:this.state.credMethod,credCode:this.state.credCode,credToken:this.state.credToken,transport:this.state.transport,messageSounds:this.state.messageSounds,desktopAlerts:this.state.desktopAlerts,desktopAlertsEnabled:this.state.desktopAlertsEnabled,incognitoMode:this.state.incognitoMode,serverAddress:this.state.serverAddress,secureConnection:this.state.secureConnection,serverVersion:this.state.serverVersion,reqCredMethod:this.state.reqCredMethod,textSize:this.state.textSize,colorSchema:this.state.colorSchema,systemColorSchema:this.state.systemColorSchema,sendOnEnter:this.state.sendOnEnter,onGlobalSettings:this.handleGlobalSettings,onSignUp:this.handleNewAccount,onSettings:this.handleSettings,onNavigate:this.basicNavigator,onLoginRequest:this.handleLoginRequest,onPersistenceChange:this.handlePersistenceChange,onCreateAccount:this.handleNewAccountRequest,onUpdateAccountDesc:this.handleTopicUpdateRequest,onUpdatePassword:this.handleUpdatePasswordRequest,onUpdateAccountTags:this.handleUpdateAccountTagsRequest,onTogglePushNotifications:this.toggleFCMToken,onToggleMessageSounds:this.handleToggleMessageSounds,onToggleIncognitoMode:this.handleToggleIncognitoMode,onChangeColorSchema:this.handleChangeColorSchema,onTextSizeChanged:this.handleChangeTextSize,onSendOnEnterChanged:this.handleSendOnEnter,onSelectWallpapers:this.handleSelectWallpapers,onWallpaperSelected:this.handleWallpaperSelected,onCredAdd:this.handleCredAdd,onCredDelete:this.handleCredDelete,onCredConfirm:this.handleCredConfirm,onTopicSelected:this.handleTopicSelected,onCreateTopic:this.handleStartTopicRequest,onLogout:this.handleLogout,onDeleteAccount:this.handleDeleteAccount,onShowAlert:this.handleShowAlert,onCancel:this.handleSidepanelCancel,onError:this.handleError,onValidateCredentials:this.handleValidateCredentialsRequest,onPasswordResetRequest:this.handlePasswordResetRequest,onResetPassword:this.handleResetPassword,onShowArchive:this.handleShowArchive,onShowBlocked:this.handleShowBlocked,onShowCountrySelector:this.handleShowCountrySelector,onInitFind:this.tnInitFind,searchResults:this.state.searchResults,onSearchContacts:this.handleSearchContacts,showContextMenu:this.handleShowContextMenu}),!this.state.displayMobile||"topic-view"==this.state.mobilePanel&&!this.state.infoPanel?l().createElement(Pa,{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,topic:this.state.topicSelected,myUserId:this.state.myUserId,myUserName:this.state.sidePanelTitle,serverVersion:this.state.serverVersion,serverAddress:this.state.serverAddress,applicationVisible:this.state.applicationVisible,colorSchema:e,sendOnEnter:this.state.sendOnEnter,wallpaper:this.state.wallpaper,forwardMessage:this.state.forwardMessage,onCancelForwardMessage:this.handleHideForwardDialog,callTopic:this.state.callTopic,callSeq:this.state.callSeq,callState:this.state.callState,callAudioOnly:this.state.callAudioOnly,onCallHangup:this.handleCallHangup,onAcceptCall:this.handleCallAccept,onCallInvite:this.handleCallInvite,onCallSendOffer:this.handleCallSendOffer,onCallIceCandidate:this.handleCallIceCandidate,onCallSendAnswer:this.handleCallSendAnswer,errorText:this.state.errorText,errorLevel:this.state.errorLevel,errorAction:this.state.errorAction,errorActionText:this.state.errorActionText,newTopicParams:this.state.newTopicParams,onHideMessagesView:this.handleHideMessagesView,onError:this.handleError,onNewTopicCreated:this.handleNewTopicCreated,showContextMenu:this.handleShowContextMenu,onChangePermissions:this.handleChangePermissions,onNewChat:this.handleNewChatInvitation,sendMessage:this.handleSendMessage,onVideoCallClosed:this.handleCallClose}):null,this.state.infoPanel?l().createElement(o.Suspense,{fallback:l().createElement("div",null,l().createElement(h.FormattedMessage,{id:"loading_note",defaultMessage:[{type:0,value:"Loading..."}]}))},l().createElement(Ci,{tinode:this.tinode,connected:this.state.connected,displayMobile:this.state.displayMobile,topic:this.state.topicSelected,searchableContacts:this.state.searchableContacts,myUserId:this.state.myUserId,panel:this.state.infoPanel,errorText:this.state.errorText,errorLevel:this.state.errorLevel,errorAction:this.state.errorAction,errorActionText:this.state.errorActionText,onNavigate:this.infoNavigator,onTopicDescUpdateRequest:this.handleTopicUpdateRequest,onShowAlert:this.handleShowAlert,onChangePermissions:this.handleChangePermissions,onMemberUpdateRequest:this.handleMemberUpdateRequest,onDeleteTopic:this.handleDeleteTopicRequest,onDeleteMessages:this.handleDeleteMessagesRequest,onLeaveTopic:this.handleLeaveUnsubRequest,onBlockTopic:this.handleBlockTopicRequest,onReportTopic:this.handleReportTopic,onAddMember:this.handleManageGroupMembers,onTopicTagsUpdateRequest:this.handleTagsUpdateRequest,onTopicUnArchive:this.handleUnarchive,onInitFind:this.tnInitFind,onError:this.handleError,showContextMenu:this.handleShowContextMenu})):null)}}var Ti=(0,h.injectIntl)(_i);if("undefined"!=typeof FIREBASE_INIT&&FIREBASE_INIT&&FIREBASE_INIT.measurementId){const xi=document.getElementsByTagName("head")[0];let Ui=document.createElement("script");function Li(){dataLayer.push(arguments)}Ui.src="https://www.googletagmanager.com/gtag/js?id="+FIREBASE_INIT.measurementId,Ui.async=!0,xi.prepend(Ui),window.dataLayer=window.dataLayer||[],Li("js",new Date),Li("config",FIREBASE_INIT.measurementId)}const Ai={ar:e=>r.e(143).then(r.t.bind(r,7143,19)),de:e=>r.e(175).then(r.t.bind(r,2175,19)),en:e=>r.e(399).then(r.t.bind(r,3399,19)),es:e=>r.e(64).then(r.t.bind(r,6064,19)),fr:e=>r.e(500).then(r.t.bind(r,2500,19)),it:e=>r.e(197).then(r.t.bind(r,7197,19)),ko:e=>r.e(186).then(r.t.bind(r,1186,19)),ro:e=>r.e(780).then(r.t.bind(r,8399,19)),ru:e=>r.e(553).then(r.t.bind(r,5553,19)),th:e=>r.e(536).then(r.t.bind(r,2536,19)),uk:e=>r.e(552).then(r.t.bind(r,4552,19)),zh:e=>r.e(570).then(r.t.bind(r,570,19)),"zh-TW":e=>r.e(744).then(r.t.bind(r,5744,19))},{params:ki}=Ta.A.parseUrlHash(window.location.hash),Ni=ki&&ki.hl||navigator.languages&&navigator.languages[0]||navigator.language||navigator.userLanguage||"en",Di=Ni.replace("_","-"),Ii=Di.split("-")[0].toLowerCase(),Pi=Ai[Di]?Ni:Ai[Ii]?Ii:"en",Fi=document.getElementsByTagName("html")[0];Fi.setAttribute("lang",Pi),["ar","fa","he","ur"].includes(Ii)&&Fi.setAttribute("dir","rtl");const Ri=(0,c.H)(document.getElementById("mountPoint"));Ai[Pi]().then(e=>Ri.render(l().createElement(h.IntlProvider,{locale:Ni,messages:e,textComponent:l().Fragment},l().createElement(Ti,null))))}(); //# sourceMappingURL=index.prod.js.map \ No newline at end of file diff --git a/umd/index.prod.js.map b/umd/index.prod.js.map index 58d0e654..faebce52 100644 --- a/umd/index.prod.js.map +++ b/umd/index.prod.js.map @@ -1 +1 @@ -{"version":3,"file":"index.prod.js","mappings":"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","sources":["webpack://tinode-webapp/webpack/runtime/create fake namespace object","webpack://tinode-webapp/webpack/runtime/load script","webpack://tinode-webapp/./src/widgets/cropper.jsx","webpack://tinode-webapp/./src/widgets/avatar-crop.jsx","webpack://tinode-webapp/./src/version.js","webpack://tinode-webapp/./src/widgets/contact-badges.jsx","webpack://tinode-webapp/./src/widgets/badge-list.jsx","webpack://tinode-webapp/./src/widgets/load-spinner.jsx","webpack://tinode-webapp/./src/widgets/checkbox.jsx","webpack://tinode-webapp/./src/widgets/error-panel.jsx","webpack://tinode-webapp/./src/widgets/in-place-edit.jsx","webpack://tinode-webapp/external var \"React\"","webpack://tinode-webapp/./src/widgets/tag-manager.jsx","webpack://tinode-webapp/./src/lib/utils.js","webpack://tinode-webapp/./src/widgets/menu-cancel.jsx","webpack://tinode-webapp/./src/widgets/contact-action.jsx","webpack://tinode-webapp/./src/widgets/contact-list.jsx","webpack://tinode-webapp/external var \"tinode\"","webpack://tinode-webapp/./src/widgets/audio-player.jsx","webpack://tinode-webapp/external var \"ReactDOM\"","webpack://tinode-webapp/./node_modules/react-dom/client.js","webpack://tinode-webapp/./src/widgets/chip.jsx","webpack://tinode-webapp/./src/widgets/chip-input.jsx","webpack://tinode-webapp/./src/widgets/unread-badge.jsx","webpack://tinode-webapp/./src/widgets/contact.jsx","webpack://tinode-webapp/./src/lib/blob-helpers.js","webpack://tinode-webapp/./src/widgets/visible-password.jsx","webpack://tinode-webapp/./src/widgets/letter-tile.jsx","webpack://tinode-webapp/./src/lib/navigation.js","webpack://tinode-webapp/./src/widgets/call-message.jsx","webpack://tinode-webapp/./src/widgets/call-status.jsx","webpack://tinode-webapp/./src/widgets/inline-video.jsx","webpack://tinode-webapp/./src/widgets/lazy-image.jsx","webpack://tinode-webapp/./src/widgets/uploading-image.jsx","webpack://tinode-webapp/./src/lib/formatters.js","webpack://tinode-webapp/./src/widgets/topic-desc-edit.jsx","webpack://tinode-webapp/./src/views/topic-common-view.jsx","webpack://tinode-webapp/external var \"ReactIntl\"","webpack://tinode-webapp/./src/lib/local-storage.js","webpack://tinode-webapp/./src/lib/strformat.js","webpack://tinode-webapp/./src/config.js","webpack://tinode-webapp/./src/widgets/avatar-upload.jsx","webpack://tinode-webapp/external var \"QRCode\"","webpack://tinode-webapp/./src/widgets/file-progress.jsx","webpack://tinode-webapp/webpack/bootstrap","webpack://tinode-webapp/webpack/runtime/compat get default export","webpack://tinode-webapp/webpack/runtime/define property getters","webpack://tinode-webapp/webpack/runtime/ensure chunk","webpack://tinode-webapp/webpack/runtime/get javascript chunk filename","webpack://tinode-webapp/webpack/runtime/global","webpack://tinode-webapp/webpack/runtime/hasOwnProperty shorthand","webpack://tinode-webapp/webpack/runtime/make namespace object","webpack://tinode-webapp/webpack/runtime/publicPath","webpack://tinode-webapp/webpack/runtime/jsonp chunk loading","webpack://tinode-webapp/./node_modules/@firebase/util/dist/postinstall.mjs","webpack://tinode-webapp/./node_modules/@firebase/util/dist/index.esm2017.js","webpack://tinode-webapp/./node_modules/@firebase/component/dist/esm/index.esm2017.js","webpack://tinode-webapp/./node_modules/@firebase/logger/dist/esm/index.esm2017.js","webpack://tinode-webapp/./node_modules/idb/build/wrap-idb-value.js","webpack://tinode-webapp/./node_modules/idb/build/index.js","webpack://tinode-webapp/./node_modules/@firebase/app/dist/esm/index.esm2017.js","webpack://tinode-webapp/./node_modules/firebase/app/dist/esm/index.esm.js","webpack://tinode-webapp/./node_modules/@firebase/installations/dist/esm/index.esm2017.js","webpack://tinode-webapp/./node_modules/@firebase/messaging/dist/esm/index.esm2017.js","webpack://tinode-webapp/./src/widgets/alert.jsx","webpack://tinode-webapp/./src/widgets/context-menu.jsx","webpack://tinode-webapp/./src/widgets/search-contacts.jsx","webpack://tinode-webapp/./src/widgets/forward-dialog.jsx","webpack://tinode-webapp/./src/constants.js","webpack://tinode-webapp/./src/widgets/call-incoming.jsx","webpack://tinode-webapp/./src/widgets/call-panel.jsx","webpack://tinode-webapp/./src/widgets/attachment.jsx","webpack://tinode-webapp/./src/widgets/received-marker.jsx","webpack://tinode-webapp/./src/widgets/chat-message.jsx","webpack://tinode-webapp/./src/widgets/send-message.jsx","webpack://tinode-webapp/./src/widgets/doc-preview.jsx","webpack://tinode-webapp/./src/widgets/group-subs.jsx","webpack://tinode-webapp/./src/widgets/image-preview.jsx","webpack://tinode-webapp/./src/widgets/invitation.jsx","webpack://tinode-webapp/./src/views/logo-view.jsx","webpack://tinode-webapp/./src/widgets/meta-message.jsx","webpack://tinode-webapp/./src/widgets/pinned-messages.jsx","webpack://tinode-webapp/./src/widgets/video-preview.jsx","webpack://tinode-webapp/./src/views/messages-view.jsx","webpack://tinode-webapp/./src/widgets/button-back.jsx","webpack://tinode-webapp/./src/widgets/menu-contacts.jsx","webpack://tinode-webapp/./src/widgets/menu-start.jsx","webpack://tinode-webapp/./src/widgets/side-navbar.jsx","webpack://tinode-webapp/./src/views/contacts-view.jsx","webpack://tinode-webapp/./src/views/acc-general-view.jsx","webpack://tinode-webapp/./src/views/acc-notifications-view.jsx","webpack://tinode-webapp/./src/views/acc-support-view.jsx","webpack://tinode-webapp/./src/views/login-view.jsx","webpack://tinode-webapp/./src/widgets/new-topic-by-id.jsx","webpack://tinode-webapp/./src/widgets/new-topic-group.jsx","webpack://tinode-webapp/./src/views/new-topic-view.jsx","webpack://tinode-webapp/./src/widgets/host-selector.jsx","webpack://tinode-webapp/./src/views/settings-view.jsx","webpack://tinode-webapp/./src/views/validation-view.jsx","webpack://tinode-webapp/./src/views/sidepanel-view.jsx","webpack://tinode-webapp/./src/lib/host-name.js","webpack://tinode-webapp/./src/views/tinode-web.jsx","webpack://tinode-webapp/./src/index.js"],"sourcesContent":["var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; (typeof current == 'object' || typeof current == 'function') && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"tinode-webapp:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// Image zoom and crop widget.\n\nimport React from 'react';\n\nconst DEFAULT_MAX_ZOOM = 8;\n\nexport default class Cropper extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n // Coordinates of the top left corner of the image in bounding box (container) coordinates.\n panX: 0,\n panY: 0,\n // Origin of the zoom in image coordinates.\n originX: 0,\n originY: 0,\n // Zoom scale.\n zoom: 1,\n // Zoom min and max.\n minZoom: 0.001,\n maxZoom: DEFAULT_MAX_ZOOM,\n };\n\n // References to DOM elements for hooking up events and getting screen dimensions.\n // The transparent element which captures mouse moves (moves with the image).\n this.overlay = React.createRef();\n // The image cutout window or view port (static).\n this.cutout = React.createRef();\n // Scaled and translated image preview.\n this.preview = React.createRef();\n // The main container (static).\n this.boundingBox = React.createRef();\n\n // The original image width and height before any scaling (does not change).\n this.imageWidth = 0;\n this.imageHeight = 0;\n\n // Mouse position when dragging.\n this.mouseX = 0\n this.mouseY = 0;\n // Length of the previous mouse move when dragging.\n this.prevDistance = 0;\n\n // Bounding rectangles of static elements (does not change).\n this.cutoutRect = {};\n this.bBoxRect = {};\n // Center of the bounding box (does not change).\n this.originX = 0;\n this.originY = 0;\n\n this.initScaling = this.initScaling.bind(this);\n this.onZoom = this.onZoom.bind(this);\n this.handleZoom = this.handleZoom.bind(this);\n this.mouseDown = this.mouseDown.bind(this);\n this.mouseUp = this.mouseUp.bind(this);\n this.mouseMove = this.mouseMove.bind(this);\n this.mouseTouch = this.mouseTouch.bind(this);\n this.positionAll = this.positionAll.bind(this);\n this.translate = this.translate.bind(this);\n }\n\n componentDidMount() {\n this.overlay.current.addEventListener('mousedown', this.mouseDown, { passive: true });\n this.overlay.current.addEventListener('touchstart', this.mouseDown, { passive: true });\n\n // The rectangle position is in viewport coordinates.\n this.bBoxRect = this.boundingBox.current.getBoundingClientRect();\n // Center of the bounding box in container coordinates.\n this.originX = this.bBoxRect.width / 2;\n this.originY = this.bBoxRect.height / 2;\n\n // The cutout circle bounds in viewport coordinates.\n this.cutoutRect = this.cutout.current.getBoundingClientRect();\n }\n\n componentWillUnmount() {\n if (this.overlay.current) {\n this.overlay.current.removeEventListener('mousedown', this.mouseDown);\n this.overlay.current.removeEventListener('touchstart', this.mouseDown);\n }\n }\n\n // Position all elements.\n positionAll(panX, panY, zoom) {\n // Zoom origin in image preview coordinates.\n this.setState({\n panX: panX,\n panY: panY,\n zoom: zoom,\n originX: this.originX - panX,\n originY: this.originY - panY,\n });\n\n // Pass cut out coordinates to caller.\n const left = (this.originX - panX) * zoom - this.originX;\n const top = (this.originY - panY) * zoom - this.originY;\n this.props.onChange(\n (left + this.cutoutRect.left - this.bBoxRect.left) / zoom,\n (top + this.cutoutRect.top - this.bBoxRect.top) / zoom,\n this.cutoutRect.width / zoom,\n this.cutoutRect.height / zoom,\n zoom);\n }\n\n // Check if new location is within the limits.\n static checkBound(currPan, img, cutout, delta) {\n let nextDiff = Math.min(0, cutout[0] - img[0] - delta, img[1] - cutout[1] + delta);\n if (nextDiff == 0) {\n // Cutout is completely within the image.\n currPan += delta;\n } else if (Math.min(0, cutout[0] - img[0], img[1] - cutout[1]) < nextDiff) {\n // Cutout is outside of the range but closer to the bound.\n currPan += delta;\n }\n return currPan;\n }\n\n initScaling() {\n // Initialize components.\n const imgRect = this.preview.current.getBoundingClientRect();\n\n this.imageWidth = imgRect.width;\n this.imageHeight = imgRect.height;\n\n // Set zoom slider's min and max values. Make sure the scaled image cannot be smaller than the cutout.\n const minZoom = Math.max(this.cutoutRect.width / imgRect.width, this.cutoutRect.height / imgRect.height);\n this.setState({\n minZoom: minZoom,\n maxZoom: minZoom * DEFAULT_MAX_ZOOM\n });\n\n // Initial zoom level fills the bounding box at the smallest image dimension and overflows the largest, i.e. \"fill\" not \"fit\".\n const zoom = Math.max(this.bBoxRect.width / imgRect.width, this.bBoxRect.height / imgRect.height);\n // Converting from viewport coordinates to container, then panning.\n const panX = this.cutoutRect.left - this.bBoxRect.left -\n (imgRect.width - this.cutoutRect.width) / 2;\n const panY = this.cutoutRect.top - this.bBoxRect.top -\n (imgRect.height - this.cutoutRect.height) / 2;\n\n this.positionAll(panX, panY, zoom);\n }\n\n onZoom(e) {\n this.handleZoom(e.target.value);\n }\n\n handleZoom(zoom) {\n let panX = this.state.panX;\n let panY = this.state.panY;\n\n // Ensure that the image at the new zoom is not outside of the cutout boundaries.\n\n // Calculate image coordinates at the new zoom.\n const imgLeft = this.originX - (this.originX - panX) * zoom;\n const imgRight = imgLeft + this.imageWidth * zoom;\n const imgTop = this.originY - (this.originY - panY) * zoom;\n const imgBottom = imgTop + this.imageHeight * zoom;\n\n // Cutout in the same coordinates as the image.\n const coLeft = this.cutoutRect.left - this.bBoxRect.left;\n const coRight = coLeft + this.cutoutRect.width;\n const coTop = this.cutoutRect.top - this.bBoxRect.top;\n const coBottom = coTop + this.cutoutRect.height;\n\n if (coLeft < imgLeft) {\n panX -= (imgLeft - coLeft) / zoom;\n } else if (coRight > imgRight) {\n panX += (coRight - imgRight) / zoom;\n }\n\n if (coTop < imgTop) {\n panY -= (imgTop - coTop) / zoom;\n } else if (coBottom > imgBottom) {\n panY += (coBottom - imgBottom) /zoom;\n }\n\n this.positionAll(panX, panY, zoom);\n }\n\n mouseDown(e) {\n if (e.touches) {\n this.mouseX = e.touches[0].pageX;\n this.mouseY = e.touches[0].pageY;\n } else {\n this.mouseX = e.pageX;\n this.mouseY = e.pageY;\n }\n\n window.addEventListener('mousemove', this.mouseMove, { passive: false });\n window.addEventListener('touchmove', this.mouseTouch, { passive: false });\n window.addEventListener('mouseup', this.mouseUp, { passive: true });\n window.addEventListener('touchend', this.mouseUp, { passive: true });\n // Disable text selection in the entire document.\n document.body.style['userSelect'] = 'none';\n }\n\n // Perform image panning.\n translate(pageX, pageY) {\n const dX = (pageX - this.mouseX) / this.state.zoom;\n const dY = (pageY - this.mouseY) / this.state.zoom;\n\n this.mouseX = pageX;\n this.mouseY = pageY;\n\n // Make sure the image is within the cutout window.\n const imgRect = this.preview.current.getBoundingClientRect();\n\n // Check if the new position is within the boundaries, and if not if it's closer to them.\n const panX = Cropper.checkBound(this.state.panX, [imgRect.left, imgRect.right],\n [this.cutoutRect.left, this.cutoutRect.right], dX);\n const panY = Cropper.checkBound(this.state.panY, [imgRect.top, imgRect.bottom],\n [this.cutoutRect.top, this.cutoutRect.bottom], dY);\n\n this.positionAll(panX, panY, this.state.zoom);\n }\n\n // Image panning.\n mouseMove(e) {\n e.preventDefault();\n this.translate(e.pageX, e.pageY);\n }\n\n mouseTouch(e) {\n e.preventDefault();\n\n if (e.touches.length == 1) {\n this.translate(e.touches[0].pageX, e.touches[0].pageY);\n return;\n }\n\n // Image zooming by pinching.\n const [touch0, touch1] = e.touches;\n const distance = Math.sqrt((touch0.pageX - touch1.pageX) * (touch0.pageX - touch1.pageX) +\n (touch0.pageY - touch1.pageY) * (touch0.pageY - touch1.pageY));\n\n if (!this.prevDistance) {\n this.prevDistance = distance / this.state.zoom;\n }\n\n let scale = (distance / this.prevDistance);\n this.handleZoom(Math.max(this.minZoom, Math.min(this.maxZoom, scale)));\n }\n\n mouseUp(e) {\n window.removeEventListener('mousemove', this.mouseMove);\n window.removeEventListener('touchmove', this.mouseTouch);\n window.removeEventListener('mouseup', this.mouseUp);\n window.removeEventListener('touchend', this.mouseUp);\n // Re-enable text selection.\n document.body.style['userSelect'] = '';\n\n this.positionAll(this.state.panX, this.state.panY, this.state.zoom);\n }\n\n render() {\n // transform3d: position and scale.\n const t3d = `translate3d(${this.state.panX}px, ${this.state.panY}px, 0) scale(${this.state.zoom})`;\n // transformOrigin: zoom origin.\n const orig = `${this.state.originX}px ${this.state.originY}px`;\n\n // Overlay position and size are exactly equal to the position and size of the transformed image\n // except it uses different coordinates.\n const overlay = {\n top: `${this.originY - this.state.originY * this.state.zoom}px`,\n left: `${this.originX - this.state.originX * this.state.zoom}px`,\n width: `${this.imageWidth * this.state.zoom}px`,\n height: `${this.imageHeight * this.state.zoom}px`\n };\n return (\n
\n
\n \"\"\n\n
\n
\n
\n
\n \n
\n
\n );\n }\n}\n","// Edit account parameters.\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport Cropper from './cropper.jsx';\nimport { imageCrop } from '../lib/blob-helpers.js';\n\nexport default class AvatarCrop extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.state = {\n top: 0,\n left: 0,\n width: 0,\n height: 0,\n scale: 1\n };\n\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleChange = this.handleChange.bind(this);\n }\n\n // Cut out in image coordinates and desired scale factor.\n handleChange(left, top, width, height, scale) {\n this.setState({\n left: left,\n top: top,\n width: width,\n height: height,\n scale: scale\n });\n }\n\n handleSubmit() {\n imageCrop(this.props.mime, this.props.avatar,\n this.state.left, this.state.top, this.state.width, this.state.height,\n this.state.scale)\n .then(img => {\n this.props.onSubmit(img.mime, img.blob, img.width, img.height);\n })\n .catch(err => {\n this.props.onError(err);\n });\n }\n\n render() {\n return (\n
\n
\n \n
\n
\n {this.props.onCancel ?\n \n : null}\n \n
\n
\n );\n }\n};\n","// This is a generated file. Don't edit.\n\nexport const PACKAGE_VERSION = \"0.25.0-beta2\";\n","import React from 'react';\n\nconst icon_mapping = {'muted': 'notifications_off', 'banned': 'block', 'staff': 'verified_user'};\n\n/* Contact's labels: [you], or icons [muted], [blocked] */\nexport default class ContactBadges extends React.PureComponent {\n render() {\n let badges = null;\n if (this.props.badges && this.props.badges.length > 0) {\n badges = [];\n this.props.badges.forEach(b => {\n const color = (b.color ? ' ' + b.color : '');\n if (b.icon) {\n badges.push({icon_mapping[b.icon] || b.icon});\n } else {\n badges.push({b.name});\n }\n });\n return <>{badges};\n }\n return null;\n }\n};\n","import React from 'react';\nimport { defineMessages, injectIntl } from 'react-intl';\n\nconst icon_mapping = {'staff': 'verified_user'};\n\nconst messages = defineMessages({\n badge_verified: {\n id: 'badge_verified',\n defaultMessage: 'Verified/official',\n description: 'Explanation of a verified account or topic badge'\n },\n badge_staff: {\n id: 'badge_staff',\n defaultMessage: 'Staff-managed',\n description: 'Explanation of a staff-managed account or topic badge'\n },\n badge_danger: {\n id: 'badge_danger',\n defaultMessage: 'Untrustworthy',\n description: 'Suspicious or untrustworthy account or topic badge'\n },\n});\n\n\n/* Trusted badges with labels: verified, staff, danger */\nclass BadgeList extends React.PureComponent {\n render() {\n const {formatMessage} = this.props.intl;\n let badges = null;\n if (this.props.trustedBadges && this.props.trustedBadges.length > 0) {\n badges = [];\n this.props.trustedBadges.forEach(b => {\n const comment = this.props.short ? null : formatMessage(messages['badge_' + b]);\n const style = 'material-icons ' + b + '-color';\n badges.push(
{icon_mapping[b] || b} {comment}
);\n });\n return <>{badges};\n }\n return null;\n }\n};\n\nexport default injectIntl(BadgeList);\n","import React from 'react';\n\nexport default class LoadSpinner extends React.PureComponent {\n render() {\n const className = 'load-spinner-box' + (this.props.large ? ' large' : '')\n + (this.props.clear ? ' clear' : '') + (this.props.centered ? ' centered' : '');\n return (this.props.show ?\n
: null);\n }\n}\n","import React from 'react';\n\n/* CheckBox: styled three-state checkbox, either clickable or static */\nexport default class CheckBox extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.handleChange = this.handleChange.bind(this);\n }\n\n handleChange() {\n this.props.onChange(this.props.name, !this.props.checked);\n }\n\n render() {\n let classList = ['material-icons'];\n let iconName;\n if (Array.isArray(this.props.className)) {\n classList.push(...this.props.className);\n } else if (this.props.className) {\n classList.push(this.props.className);\n }\n if (this.props.onChange) {\n if (this.props.checked) {\n classList.push('blue', 'clickable');\n iconName = 'check_box';\n } else if (this.props.checked === false) {\n classList.push('blue', 'clickable');\n iconName = 'check_box_outline_blank';\n } else {\n classList.push('lt-blue');\n iconName = 'indeterminate_check_box';\n }\n } else {\n if (this.props.checked) {\n iconName = 'check_box';\n } else {\n iconName = 'check_box_outline_blank';\n }\n }\n let attrs = {\n className: classList.join(' '),\n id: this.props.id,\n };\n if (this.props.onChange) {\n attrs.onClick = this.handleChange;\n }\n return React.createElement('i', attrs, iconName);\n }\n}\n","import React from 'react';\n\nimport MenuCancel from './menu-cancel.jsx';\n\nexport default class ErrorPanel extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.state = {\n show: false,\n };\n\n this.hide = this.hide.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.level !== this.props.level) {\n this.setState({\n show: !(!this.props.level)\n });\n }\n }\n\n hide() {\n this.setState({show: false});\n if (this.props.onClearError) {\n this.props.onClearError();\n }\n }\n\n render() {\n const icons = {err: 'error', warn: 'warning', info: 'info'}\n const level = icons[this.props.level] || '';\n const className = 'info-box ' + level;\n return (\n
\n
{level}
\n \n {this.props.text}\n {this.props.action ?\n <>\n   {e.preventDefault(); this.props.action();}}>\n {this.props.actionText}\n \n \n : null}\n \n
\n
\n );\n }\n};\n","// In-place text editor. Shows text with an icon which toggles it into an input field.\nimport React from 'react';\n\nimport VisiblePassword from './visible-password.jsx';\n\nexport default class InPlaceEdit extends React.Component {\n constructor(props) {\n super(props);\n\n this.selfRef = React.createRef();\n\n this.state = {\n active: props.active,\n initialValue: props.value || '',\n value: props.value || '',\n valid: true\n };\n\n this.handeTextChange = this.handeTextChange.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleStartEditing = this.handleStartEditing.bind(this);\n this.handleEditingFinished = this.handleEditingFinished.bind(this);\n this.handlePasswordFinished = this.handlePasswordFinished.bind(this);\n }\n\n componentDidUpdate(prevProps, prevState) {\n // If text has changed while in read mode, update text and discard changes.\n // Ignore update if in edit mode.\n const newValue = this.props.value || '';\n if (prevState.initialValue != newValue && !prevState.active) {\n this.setState({\n initialValue: newValue,\n value: newValue\n });\n }\n }\n\n handeTextChange(e) {\n this.setState({value: e.target.value || ''});\n if (this.props.validator) {\n Promise.resolve(this.props.validator(e.target.value))\n .then(valid => {\n this.setState({valid: valid});\n })\n .catch(err => {\n // If it's interrupted, then the err is undefined. Ignore it.\n if (err) {\n this.setState({valid: false});\n }\n });\n }\n }\n\n handleKeyDown(e) {\n if (e.keyCode === 27) {\n // Escape pressed\n this.setState({value: this.props.value, active: false});\n } else if (e.keyCode === 13) {\n // Enter pressed\n this.handleEditingFinished(e);\n }\n }\n\n handleStartEditing() {\n if (!this.props.readOnly) {\n this.setState({active: true}, _ => {\n if (this.selfRef.current) {\n this.selfRef.current.focus();\n }\n });\n }\n }\n\n handleEditingFinished(event) {\n const value = this.state.value.trim();\n if (this.props.required && (!event.target.checkValidity() || !value)) {\n // Empty input\n this.setState({value: this.props.value, active: false});\n return;\n }\n this.setState({active: false});\n if ((value || this.props.value) && (value !== this.props.value) && this.state.valid) {\n this.props.onFinished(value);\n }\n }\n\n handlePasswordFinished(value) {\n this.setState({active: false});\n if (value && (value !== this.props.value)) {\n this.props.onFinished(value);\n }\n }\n\n render() {\n if (!this.state.active) {\n let spanText = this.props.type == 'password' ? '••••••••' : this.state.value;\n let spanClass = 'in-place-edit' + (this.props.readOnly ? ' disabled' : '');\n if (!spanText) {\n spanText = this.props.placeholder;\n spanClass += ' placeholder';\n }\n if (!this.props.multiline || this.props.multiline == 1) {\n spanClass += ' short';\n }\n\n return (\n {this.props.iconLeft && {this.props.iconLeft}}\n {spanText}\n {this.props.iconRight && {this.props.iconRight}}\n );\n }\n\n let element;\n const attr = {};\n if (this.props.type == 'password') {\n element = VisiblePassword;\n attr.onFinished = this.handlePasswordFinished;\n } else {\n if (this.props.multiline > 1) {\n element = 'textarea';\n attr.rows = this.props.multiline;\n attr.className = 'in-place-edit';\n } else {\n element = 'input';\n attr.type = this.props.type || 'text';\n attr.className = 'in-place-edit' + (this.props.iconLeft ? ' with-icon-left'\n : this.props.iconRight ? ' with-icon-right' : '');\n if (this.props.maxLength) {\n attr.maxLength=this.props.maxLength;\n }\n }\n attr.value = this.state.value;\n attr.className += this.state.valid ? '' : ' invalid';\n attr.ref = this.selfRef;\n attr.onChange = this.handeTextChange;\n attr.onKeyDown = this.handleKeyDown;\n attr.onBlur = this.handleEditingFinished;\n }\n attr.placeholder = this.props.placeholder;\n attr.required = this.props.required ? 'required' : '';\n attr.autoComplete = this.props.autoComplete;\n attr.autoFocus = true;\n if (this.props.spellCheck !== undefined) {\n attr.spellCheck = this.props.spellCheck ? 'true' : 'false';\n }\n\n if (this.props.iconLeft || this.props.iconRight) {\n return (\n <>\n {this.props.iconLeft && {this.props.iconLeft}}\n {React.createElement(element, attr, null)}\n {this.props.iconRight && {this.props.iconRight}}\n \n );\n }\n return React.createElement(element, attr, null);\n }\n};\n","module.exports = React;","// TagManager: edit topic or user tags.\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport ChipInput from './chip-input.jsx';\n\nimport { Tinode } from 'tinode-sdk';\n\nimport { MAX_TAG_COUNT, MAX_TAG_LENGTH, MIN_TAG_LENGTH } from '../config.js';\nimport { arrayEqual } from '../lib/utils.js';\n\nexport default class TagManager extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n tags: this.props.tags || [],\n alias: Tinode.tagByPrefix(this.props.tags, Tinode.TAG_ALIAS) || '',\n tagInput: '',\n activated: this.props.activated\n };\n\n this.handleTagInput = this.handleTagInput.bind(this);\n this.handleAddTag = this.handleAddTag.bind(this);\n this.handleRemoveTag = this.handleRemoveTag.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const tags = nextProps.tags || [];\n if (!arrayEqual(tags, prevState.tags) && !prevState.activated) {\n return {\n tags: tags || [],\n alias: Tinode.tagByPrefix(tags, Tinode.TAG_ALIAS) || '',\n };\n }\n return null;\n }\n\n handleTagInput(text) {\n this.setState({tagInput: text});\n if (text.length > 0) {\n const last = text[text.length-1];\n if (text[0] == '\"') {\n // This is a quoted string.\n if (text.length > 1 && last == '\"') {\n this.handleAddTag(text.substring(1, text.length-1));\n }\n } else if (last == ',' || last == ' ' || last == ';' || last == '\"') {\n // User entered ',', ' ' or ';'\n this.handleAddTag(text.substring(0, text.length-1).trim());\n }\n }\n }\n\n handleAddTag(tag) {\n const maxTagCount = this.props.tinode.getServerParam(Tinode.MAX_TAG_COUNT, MAX_TAG_COUNT);\n\n if (tag.length > 0 && this.state.tags.length < maxTagCount) {\n const tags = this.state.tags.slice(0);\n tags.push(tag);\n\n this.setState({tags: tags, tagInput: ''});\n if (this.props.onTagsChanged) {\n this.props.onTagsChanged(tags);\n }\n return tags;\n }\n return this.state.tags;\n }\n\n handleRemoveTag(tag, index) {\n const tags = this.state.tags.slice(0);\n tags.splice(index, 1);\n this.setState({tags: tags});\n if (this.props.onTagsChanged) {\n this.props.onTagsChanged(tags);\n }\n }\n\n handleSubmit() {\n // Add unprocessed input to tags.\n let tags = this.handleAddTag(this.state.tagInput.trim());\n // Add back the alias (and overwrite one possibly added by hand).\n tags = Tinode.setUniqueTag(tags, this.state.alias);\n // Submit the updated list.\n this.props.onSubmit(tags);\n this.setState({activated: false, tags: this.props.tags || []});\n }\n\n handleCancel() {\n this.setState({activated: false, tagInput: '', tags: this.props.tags || []});\n if (this.props.onCancel) {\n this.props.onCancel();\n }\n }\n\n render() {\n const minTagLength = this.props.tinode.getServerParam(Tinode.MIN_TAG_LENGTH, MIN_TAG_LENGTH);\n const maxTagLength = this.props.tinode.getServerParam(Tinode.MAX_TAG_LENGTH, MAX_TAG_LENGTH);\n\n let tags = [];\n if (this.state.activated) {\n this.state.tags.forEach(tag => {\n if (tag != this.state.alias) {\n tags.push({user: tag, invalid: (tag.length < minTagLength || tag.length > maxTagLength)});\n }\n });\n\n } else {\n this.state.tags.forEach(tag => {\n if (tag != this.state.alias) {\n tags.push({tag});\n }\n });\n if (tags.length == 0) {\n tags = (\n \n \n \n );\n }\n }\n return (\n
\n
\n \n
\n {this.state.activated ?\n
\n {\n (add_tags_prompt) => \n }\n {this.props.onSubmit || this.props.onCancel ?\n
\n \n \n
\n : null}\n
\n :\n \n }\n
\n );\n }\n};\n","// Odds and ends\n\nimport { Tinode } from 'tinode-sdk';\nimport { WALLPAPER_DEFAULTS } from '../config.js';\n\n// Make shortcut icon appear with a green dot + show unread count in title.\nexport function updateFavicon(count) {\n const oldIcon = document.getElementById('shortcut-icon');\n const head = document.head || document.getElementsByTagName('head')[0];\n const newIcon = document.createElement('link');\n newIcon.type = 'image/png';\n newIcon.id = 'shortcut-icon';\n newIcon.rel = 'shortcut icon';\n newIcon.href = 'img/logo32x32' + (count > 0 ? 'a' : '') + '.png';\n if (oldIcon) {\n head.removeChild(oldIcon);\n }\n head.appendChild(newIcon);\n\n document.title = (count > 0 ? '('+count+') ' : '') + 'Tinode';\n}\n\n// Create theCard which represents user's or topic's \"public\" info.\nexport function theCard(fn, imageUrl, imageMimeType, note) {\n let card = null;\n fn = fn && fn.trim();\n note = note && note.trim();\n\n if (fn) {\n card = {\n fn: fn\n };\n }\n\n if (typeof note == 'string') {\n card = card || {};\n card.note = note ? note : Tinode.DEL_CHAR;\n }\n\n if (imageUrl) {\n card = card || {};\n let mimeType = imageMimeType;\n // Is this a data URL \"data:[][;base64],\"?\n const matches = /^data:(image\\/[-a-z0-9+.]+)?(;base64)?,/i.exec(imageUrl);\n if (matches) {\n mimeType = matches[1];\n card.photo = {\n data: imageUrl.substring(imageUrl.indexOf(',') + 1),\n ref: Tinode.DEL_CHAR\n };\n } else {\n card.photo = {\n data: Tinode.DEL_CHAR,\n ref: imageUrl\n };\n }\n card.photo.type = (mimeType || 'image/jpeg').substring('image/'.length);\n }\n\n return card;\n}\n\n// Deep-shallow compare two arrays: shallow compare each element.\nexport function arrayEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (!Array.isArray(a) || !Array.isArray(b)) {\n return false;\n }\n\n // Compare lengths first.\n if (a.length != b.length) {\n return false;\n }\n // Order of elements is ignored.\n a.sort();\n b.sort();\n for (let i = 0, l = a.length; i < l; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\n\n// Checks (loosely) if the given string is a phone. If so, returns the phone number in a format\n// as close to E.164 as possible.\nexport function asPhone(val) {\n val = val.trim();\n if (/^(?:\\+?(\\d{1,3}))?[- (.]*(\\d{3})[- ).]*(\\d{3})[- .]*(\\d{2})[- .]*(\\d{2})?$/.test(val)) {\n return val.replaceAll(/[- ().]*/g, '');\n }\n return null;\n}\n\n// Checks (loosely) if the given string is an email. If so returns the email.\nexport function asEmail(val) {\n val = val.trim();\n if (/^[a-z0-9_.+-]+@[a-z0-9-]+(\\.[a-z0-9-]+)+$/i.test(val)) {\n return val;\n }\n return null;\n}\n\n// Checks if URL is a relative url, i.e. has no 'scheme://', including the case of missing scheme '//'.\n// The scheme is expected to be RFC-compliant, e.g. [a-z][a-z0-9+.-]*\n// example.html - ok\n// https:example.com - not ok.\n// http:/example.com - not ok.\n// //example.com or \\\\example.com - not ok.\n// ' ↲ https://example.com' - not ok. (↲ means carriage return)\nexport function isUrlRelative(url) {\n // Replacing backslashes with forward slashes to mimic JS URL parser then testing for\n // 'scheme:' and '//' with optional space at the start.\n return url && !/^\\s*([a-z][a-z0-9+.-]*:|\\/\\/)/im.test(url.replace(/\\\\/g, '/'));\n}\n\n// Ensure URL does not present an XSS risk. Optional allowedSchemes may contain an array of\n// strings with permitted URL schemes, such as ['ftp', 'ftps']; otherwise accept http and https only.\nexport function sanitizeUrl(url, allowedSchemes) {\n if (typeof url != 'string') {\n return url;\n }\n\n // Strip control characters and whitespace. They are not valid URL characters anyway.\n url = url.replace(/[^\\x21-\\x7E]/gmi, '').trim();\n\n // Replace backslashes with forward slashes. They will be replaced in the URL parser anyway.\n url = url.replace(/\\\\/g, '/');\n\n // Relative URLs are safe.\n // Relative URL does not start with ':', abcd123: or '//'.\n if (!/^([a-z][a-z0-9+.-]*:|\\/\\/)/i.test(url)) {\n return url;\n }\n\n // Blob URLs are safe.\n if (/^blob:http/.test(url)) {\n return url;\n }\n\n // Absolute URL. Accept only safe schemes, or no scheme.\n const schemes = Array.isArray(allowedSchemes) ? allowedSchemes.join('|') : 'http|https';\n const re = new RegExp('^((' + schemes + '):|//)', 'i');\n if (!re.test(url)) {\n return null;\n }\n\n return url;\n}\n\n// Ensure URL is suitable as a source like field: the URL must be a relative URL or\n// have http:, https:, blob: or data: scheme.\n// In case of data: scheme, the URL must must be of the right MIME type such as 'data:{mimeMajor}/XXXX;base64,'.\nexport function sanitizeUrlForMime(url, mimeMajor) {\n if (!url) {\n return null;\n }\n\n const sanitizedUrl = sanitizeUrl(url);\n if (sanitizedUrl) {\n return sanitizedUrl;\n }\n\n // Is this a data: URL of the appropriate mime type?\n const re = new RegExp(`data:${mimeMajor}\\/[-+.a-z0-9]+;base64,`, 'i');\n if (re.test(url.trim())) {\n return url;\n }\n\n return null;\n}\n\n// Append query parameter 'asatt=1' to the URL.\n// It will cause Tinode server to add 'Content-Disposition: attachment' header when serving it.\n// The URL is a string. The URL here is always absolute.\nexport function urlAsAttachment(url) {\n // TODO: check if URL is local or remote, i.e. compare to window.location.origin.\n /*\n if (typeof window.location == 'object') {\n if (!url.startsWith(window.location.origin)) {\n return url;\n }\n }\n */\n // Check if the URL is a data or blob. Do not alter such URLs.\n if (url.startsWith('data:') || url.startsWith('blob:')) {\n return url;\n }\n\n // Split URL into host+path, query, fragment.\n let query = '', fragment = '';\n const idxF = url.indexOf('#');\n if (idxF > 0) {\n fragment = url.substring(idxF+1);\n url = url.substring(0, idxF);\n }\n const idxQ = url.indexOf('?');\n if (idxQ > 0) {\n query = url.substring(idxQ+1);\n url = url.substring(0, idxQ);\n }\n // Add parameter and reassemble.\n const params = new URLSearchParams(query);\n params.append('asatt', '1');\n return `${url}?${params.toString()}` + (fragment ? `#${fragment}` : '');\n}\n\n// Given message's received status, return name and color of a delivery indicator icon.\nexport function deliveryMarker(received) {\n switch (received) {\n case Tinode.MESSAGE_STATUS_SENDING:\n return { name: 'access_time' }; // watch face\n case Tinode.MESSAGE_STATUS_FAILED:\n case Tinode.MESSAGE_STATUS_FATAL:\n return { name: 'warning', color: 'danger-color' }; // yellow icon /!\\\n case Tinode.MESSAGE_STATUS_SENT:\n return { name: 'done' }; // checkmark\n case Tinode.MESSAGE_STATUS_RECEIVED:\n return { name: 'done_all' }; // double checkmark\n case Tinode.MESSAGE_STATUS_READ:\n return { name: 'done_all', color: 'blue' }; // blue double checkmark\n }\n return null;\n}\n\n// Wraps a promise to make it cancelable.\n// The parameter can be either a promise or an error. If it's an error, the wrapped promise is\n// created in a rejected state.\nexport function cancelablePromise(promise) {\n let hasCanceled = false;\n\n const wrappedPromise = promise instanceof Error ?\n Promise.reject(promise) :\n new Promise((resolve, reject) => {\n promise.then(\n result => hasCanceled ? reject({isCanceled: true}) : resolve(result),\n error => hasCanceled ? reject({isCanceled: true}) : reject(error)\n );\n });\n\n return {\n promise: wrappedPromise,\n cancel() {\n hasCanceled = true;\n },\n };\n};\n\nexport function defaultWallpaper() {\n const wallpaperIndex = require('../../img/bkg/index.json');\n const wp = wallpaperIndex[WALLPAPER_DEFAULTS.type][WALLPAPER_DEFAULTS.index];\n return {name: `../${WALLPAPER_DEFAULTS.path}${wp.name}`, size: wp.size};\n}\n","// The X menu to be displayed in title bars.\nimport React from 'react';\n\nexport default class MenuCancel extends React.PureComponent {\n render() {\n return (\n {e.preventDefault(); this.props.onCancel();}}>\n close\n \n );\n }\n}\n","// A panel included into a list of contacts with an action text.\nimport React from 'react';\nimport { injectIntl } from 'react-intl';\n\nclass ContactAction extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleClick(e) {\n e.preventDefault();\n e.stopPropagation();\n this.props.onAction(this.props.action);\n }\n\n render() {\n const {formatMessage} = this.props.intl;\n return (\n
  • \n
    {formatMessage(this.props.title, this.props.values)}
    \n
  • \n );\n }\n};\n\nexport default injectIntl(ContactAction);\n","// ContactList: component for showing a list of contacts,\n// such as a list of group members in a group chat.\nimport React from 'react';\nimport { defineMessages, injectIntl } from 'react-intl';\n\nimport { Drafty, Tinode } from 'tinode-sdk';\n\nimport Contact from './contact.jsx';\nimport ContactAction from './contact-action.jsx';\n\nimport { makeImageUrl } from '../lib/blob-helpers.js';\n\nimport { MESSAGE_PREVIEW_LENGTH } from '../config.js';\n\nconst messages = defineMessages({\n badge_you: {\n id: 'badge_you',\n defaultMessage: 'you',\n description: 'Badge for indicating the current user'\n },\n badge_owner: {\n id: 'badge_owner',\n defaultMessage: 'owner',\n description: 'Badge for indicating the owner'\n }\n});\n\nclass ContactList extends React.Component {\n render() {\n const { formatMessage } = this.props.intl;\n const showCheckmark = Array.isArray(this.props.topicSelected);\n const contactNodes = [];\n\n // Count of contacts, excluding action items.\n let contactsCount = 0;\n if (this.props.showSelfTopic) {\n const selected = showCheckmark ?\n (this.props.topicSelected.indexOf('slf') > -1) :\n (this.props.topicSelected === 'slf');\n contactNodes.push(\n \n );\n contactsCount ++;\n }\n if (this.props.contacts && this.props.contacts.length > 0) {\n this.props.contacts.forEach(c => {\n if (c.action) {\n // Action item\n contactNodes.push(\n );\n } else {\n // Normal contact\n const key = this.props.showMode ? c.user : (c.topic || c.user);\n // If filter function is provided, filter out the items\n // which don't satisfy the condition.\n if (this.props.filterFunc && this.props.filter) {\n const filterOn = [key];\n if (c.private && c.private.comment) {\n filterOn.push(('' + c.private.comment).toLowerCase());\n }\n if (c.public && c.public.fn) {\n filterOn.push(('' + c.public.fn).toLowerCase());\n }\n if (!this.props.filterFunc(this.props.filter, filterOn)) {\n return;\n }\n }\n\n const isChannel = Tinode.isChannelTopicName(key);\n const isGroup = !isChannel && Tinode.isGroupTopicName(key);\n const selected = showCheckmark ?\n (this.props.topicSelected.indexOf(key) > -1) :\n (this.props.topicSelected === key);\n const badges = [];\n if (this.props.showMode) {\n if (key == this.props.myUserId) {\n badges.push({name: formatMessage(messages.badge_you), color: 'green'});\n }\n if (c.acs && c.acs.isOwner()) {\n badges.push({name: formatMessage(messages.badge_owner), color: 'blue'});\n }\n }\n\n const comment = Array.isArray(c.private) ?\n c.private.join(',') : (c.private ? c.private.comment : null);\n let preview;\n let forwarded;\n let previewIsResponse;\n let deliveryStatus;\n if (!this.props.showMode && c.latestMessage) {\n const msg = c.latestMessage();\n if (msg) {\n forwarded = msg.head ? msg.head.forwarded : null;\n deliveryStatus = msg._status || c.msgStatus(msg, true);\n previewIsResponse = msg.from != this.props.myUserId;\n if (msg.content) {\n preview = typeof msg.content == 'string' ?\n msg.content.substr(0, MESSAGE_PREVIEW_LENGTH) :\n Drafty.preview(msg.content, MESSAGE_PREVIEW_LENGTH);\n }\n }\n }\n\n contactNodes.push(\n \n );\n contactsCount ++;\n }\n }, this);\n }\n\n return (\n
    \n {contactsCount == 0 ?\n
    \n :\n null\n }\n {contactNodes.length > 0 ?\n
      \n {contactNodes}\n
    \n :\n null\n }\n
    \n );\n }\n};\n\nexport default injectIntl(ContactList);\n","module.exports = tinode;","// Audio recorder widget.\n\nimport React from 'react';\nimport { defineMessages, injectIntl } from 'react-intl';\n\nimport { secondsToTime } from '../lib/strformat';\nimport { base64ToIntArray } from '../lib/blob-helpers';\n\n// Make canvas bigger than the element size to reduce blurring.\nconst CANVAS_UPSCALING = 2.0;\n// Thickness of a visualization bar.\nconst LINE_WIDTH = 3 * CANVAS_UPSCALING;\n// Spacing between two visualization bars.\nconst SPACING = 2 * CANVAS_UPSCALING;\n// Color of histogram bars.\nconst BAR_COLOR = '#888A';\nconst BAR_COLOR_DARK = '#666C';\nconst THUMB_COLOR = '#444E';\n// Minimum number of amplitude bars to draw.\nconst MIN_PREVIEW_LENGTH = 16;\n\nconst messages = defineMessages({\n icon_title_play: {\n id: 'icon_title_play',\n defaultMessage: 'Play recording',\n description: 'Icon tool tip for starting audio playback'\n }\n});\n\nclass AudioPlayer extends React.PureComponent {\n constructor(props) {\n super(props);\n\n let preview = base64ToIntArray(this.props.preview);\n if (!Array.isArray(preview) || preview.length < MIN_PREVIEW_LENGTH) {\n preview = null;\n }\n\n this.state = {\n canPlay: false,\n playing: false,\n currentTime: '0:00',\n duration: this.props.duration > 0 ? secondsToTime(this.props.duration / 1000) : '-:--',\n longMin: this.props.duration >= 600000,\n preview: preview\n };\n\n this.initAudio = this.initAudio.bind(this);\n this.initCanvas = this.initCanvas.bind(this);\n this.resampleBars = this.resampleBars.bind(this);\n this.visualize = this.visualize.bind(this);\n\n this.handlePlay = this.handlePlay.bind(this);\n this.handleSeek = this.handleSeek.bind(this);\n this.handleError = this.handleError.bind(this);\n\n this.audioPlayer = null;\n\n this.viewBuffer = [];\n this.canvasRef = React.createRef();\n }\n\n componentDidMount() {\n if (this.props.src) {\n this.initAudio();\n }\n\n this.initCanvas();\n }\n\n componentWillUnmount() {\n if (this.audioPlayer) {\n this.audioPlayer.onloadedmetadata = null;\n this.audioPlayer.ontimeupdate = null;\n this.audioPlayer.onended = null;\n this.audioPlayer.pause();\n this.audioPlayer = null;\n }\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.src != prevProps.src) {\n this.initAudio();\n }\n\n if (this.props.preview != prevProps.preview) {\n let preview = base64ToIntArray(this.props.preview);\n if (!Array.isArray(preview) || preview.length < MIN_PREVIEW_LENGTH) {\n preview = null;\n }\n this.setState({preview: preview}, this.initCanvas);\n }\n }\n\n initAudio() {\n this.audioPlayer = new Audio(this.props.src);\n this.audioPlayer.onloadedmetadata = _ => this.setState({canPlay: true});\n this.audioPlayer.ontimeupdate = _ => this.setState({\n currentTime: secondsToTime(this.audioPlayer.currentTime, this.state.longMin)\n });\n this.audioPlayer.onended = _ => {\n this.audioPlayer.currentTime = 0;\n this.setState({playing: false, currentTime: secondsToTime(0, this.state.longMin)})\n }\n }\n\n initCanvas() {\n // Force canvas aspect ratio to match one of the element + upscale canvas to reduce blurring.\n this.canvasRef.current.width = this.canvasRef.current.offsetWidth * CANVAS_UPSCALING;\n this.canvasRef.current.height = this.canvasRef.current.offsetHeight * CANVAS_UPSCALING;\n\n this.canvasContext = this.canvasRef.current.getContext('2d');\n this.canvasContext.lineCap = 'round';\n\n this.viewBuffer = this.resampleBars(this.state.preview);\n this.visualize();\n }\n\n // Draw amplitude of sound.\n visualize() {\n if (!this.canvasRef.current) {\n return;\n }\n\n const width = this.effectiveWidth;\n const height = this.canvasRef.current.height;\n\n this.canvasContext.lineWidth = LINE_WIDTH;\n\n const drawFrame = _ => {\n if (!this.canvasRef.current || !this.audioPlayer) {\n // The component is unmounted.\n return;\n }\n\n this.canvasContext.clearRect(0, 0, this.canvasRef.current.width, height);\n\n if (this.viewBuffer) {\n if (this.state.playing) {\n window.requestAnimationFrame(drawFrame);\n }\n\n // Current playback position.\n const thumbAt = this.props.duration ?\n Math.max(0, Math.min(this.audioPlayer.currentTime * 1000 / this.props.duration, 1)) * (width - LINE_WIDTH * 2) : -1;\n\n // Draw amplitude bars.\n this.canvasContext.beginPath();\n this.canvasContext.strokeStyle = BAR_COLOR_DARK;\n for (let i = 0; i < this.viewBuffer.length; i++) {\n let x = 1 + i * (LINE_WIDTH + SPACING) + LINE_WIDTH * 0.5;\n let y = Math.max(this.viewBuffer[i] * height * 0.9, 1);\n\n const color = x < thumbAt ? BAR_COLOR_DARK : BAR_COLOR;\n if (this.canvasContext.strokeStyle != color) {\n this.canvasContext.stroke();\n this.canvasContext.beginPath();\n this.canvasContext.strokeStyle = color;\n }\n\n this.canvasContext.moveTo(x, (height - y) * 0.5);\n this.canvasContext.lineTo(x, (height + y) * 0.5);\n }\n // Actually draw the bars on canvas.\n this.canvasContext.stroke();\n\n // Draw thumb.\n if (this.props.duration) {\n this.canvasContext.beginPath();\n this.canvasContext.arc(thumbAt + LINE_WIDTH * 2, height * 0.5, LINE_WIDTH * 2, 0, 2 * Math.PI);\n this.canvasContext.fillStyle = THUMB_COLOR;\n this.canvasContext.fill();\n }\n }\n }\n\n drawFrame();\n }\n\n // Quick and dirty downsampling of the original preview bars into a smaller (or equal) number of bars we can display here.\n resampleBars(original) {\n const dstCount = ((this.canvasRef.current.width - SPACING) / (LINE_WIDTH + SPACING)) | 0;\n // Remove extra padding on the right due to fractional bar which is not drawn.\n this.effectiveWidth = dstCount * (LINE_WIDTH + SPACING) + SPACING;\n\n if (!Array.isArray(original) || original.length == 0) {\n return Array.apply(null, Array(dstCount)).map(_ => 0.01);\n }\n\n const factor = original.length / dstCount;\n let amps = [];\n let maxAmp = -1;\n for (let i=0; i 0) {\n return amps.map(a => a / maxAmp);\n }\n return Array.apply(null, Array(dstCount)).map(_ => 0.01);\n }\n\n handlePlay(e) {\n e.preventDefault();\n if (!this.state.canPlay) {\n return;\n }\n\n if (this.state.playing) {\n this.audioPlayer.pause();\n this.setState({playing: false});\n } else if (this.audioPlayer.readyState >= 2) {\n this.audioPlayer.play();\n this.setState({playing: true}, this.visualize);\n }\n }\n\n handleError(err) {\n console.error(err);\n }\n\n handleSeek(e) {\n e.preventDefault();\n if (e.target && this.props.duration) {\n const rect = e.target.getBoundingClientRect();\n const offset = (e.clientX - rect.left) / this.effectiveWidth * CANVAS_UPSCALING;\n this.audioPlayer.currentTime = this.props.duration * offset / 1000;\n this.setState({currentTime: secondsToTime(this.audioPlayer.currentTime, this.state.longMin)});\n if (!this.state.playing) {\n this.visualize();\n }\n }\n }\n\n render() {\n const playClass = 'material-icons' +\n (this.props.short ? '' : ' large') +\n (this.state.canPlay ? '' : ' disabled');\n const play = (\n {this.state.playing ? 'pause_circle' :\n (this.state.canPlay ? 'play_circle' : 'not_interested')}\n );\n return (
    {this.props.short ?\n <>\n \n {play}\n \n :\n <>\n {play}\n
    \n \n
    {this.state.currentTime}/{this.state.duration}
    \n
    \n \n }\n
    );\n }\n}\n\nexport default injectIntl(AudioPlayer);\n","module.exports = ReactDOM;","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","import React from 'react';\n\nimport LetterTile from './letter-tile.jsx';\n\nexport default class Chip extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.handleCancel = this.handleCancel.bind(this);\n }\n\n handleCancel(e) {\n e.preventDefault();\n this.props.onCancel(this.props.topic, this.props.index);\n }\n\n render() {\n const title = this.props.title || this.props.topic;\n const className = this.props.invalid ? 'chip invalid' : 'chip';\n return (\n
    \n {this.props.noAvatar ?\n :\n
    \n \n
    \n }\n {title}\n {this.props.onCancel && !this.props.required ?\n ×\n : }\n
    \n );\n }\n};\n","import React from 'react';\n\nimport Chip from './chip.jsx';\n\nimport { makeImageUrl } from '../lib/blob-helpers.js';\n\n/* BEGIN ChipInput: group membership widget */\nexport default class ChipInput extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = ChipInput.deriveStateFromProps(props);\n this.state.input = '';\n this.state.focused = false;\n\n this.handleTextInput = this.handleTextInput.bind(this);\n this.removeChipAt = this.removeChipAt.bind(this);\n this.handleChipCancel = this.handleChipCancel.bind(this);\n this.handleFocusGained = this.handleFocusGained.bind(this);\n this.handleFocusLost = this.handleFocusLost.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n }\n\n static deriveStateFromProps(props) {\n return {\n placeholder: props.chips ? '' : props.prompt,\n sortedChips: ChipInput.sortChips(props.chips, props.staticMembers),\n chipIndex: ChipInput.indexChips(props.chips)\n };\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (prevProps.chips != this.props.chips ||\n prevProps.staticMembers != this.props.staticMembers ||\n prevProps.prompt != this.props.prompt) {\n this.setState(ChipInput.deriveStateFromProps(this.props));\n }\n if (!prevState || this.props.chips.length > prevState.sortedChips.length) {\n this.setState({input: ''});\n }\n }\n\n // Map chip index to user name\n static indexChips(chips) {\n const index = {};\n let count = 0;\n chips.forEach(item => {\n index[item.user] = count;\n count ++;\n });\n return index;\n }\n\n // Have non-removable chips appear before all other chips.\n static sortChips(chips, keep) {\n const required = [];\n const normal = [];\n chips.forEach(item => {\n if (keep && keep.includes(item.user)) {\n required.push(item);\n } else {\n normal.push(item);\n }\n });\n return required.concat(normal);\n }\n\n handleTextInput(e) {\n this.setState({input: e.target.value});\n if (this.props.filterFunc) {\n this.props.filterFunc(e.target.value);\n }\n }\n\n removeChipAt(idx) {\n const removed = this.state.sortedChips[idx];\n this.props.onChipRemoved(removed.user, this.state.chipIndex[removed.user]);\n }\n\n handleChipCancel(item, idx) {\n this.removeChipAt(idx);\n }\n\n handleFocusGained() {\n this.setState({focused: true});\n }\n\n handleFocusLost() {\n this.setState({focused: false});\n if (this.props.onFocusLost) {\n this.props.onFocusLost(this.state.input);\n }\n }\n\n handleKeyDown(e) {\n if (e.key === 'Backspace') {\n if (this.state.input.length == 0 && this.state.sortedChips.length > 0) {\n const at = this.state.sortedChips.length - 1;\n if (this.state.sortedChips[at].user !== this.props.staticMembers) {\n this.removeChipAt(at);\n }\n }\n } else if (e.key === 'Enter') {\n if (this.props.onEnter) {\n this.props.onEnter(this.state.input);\n }\n } else if (e.key === 'Escape') {\n if (this.props.onCancel) {\n this.props.onCancel();\n }\n }\n }\n\n render() {\n const chips = [];\n let count = 0;\n const staticMembers = this.props.staticMembers || [];\n this.state.sortedChips.forEach(item => {\n chips.push(\n \n );\n count++;\n });\n const className = \"chip-input\" + (this.state.focused ? ' focused' : '');\n const autoFocus = !(this.props.tabIndex > 0);\n return (\n
    \n {chips}\n \n
    \n );\n }\n};\n","// The counter of unread messages in the topic.\nimport React from 'react';\n\nexport default class UnreadBadge extends React.PureComponent {\n render() {\n return (this.props.count > 0 ?\n {this.props.count > 9 ? \"9+\" : this.props.count}\n : null);\n }\n};\n","// A single topic or user.\nimport React from 'react';\nimport { FormattedMessage, defineMessages, injectIntl } from 'react-intl';\n\nimport { Tinode } from 'tinode-sdk';\n\nimport ContactBadges from './contact-badges.jsx';\nimport LetterTile from './letter-tile.jsx';\nimport UnreadBadge from './unread-badge.jsx';\n\nimport { Drafty } from 'tinode-sdk';\n\nimport { previewFormatter } from '../lib/formatters.js';\nimport { deliveryMarker } from '../lib/utils.js';\nimport { truncateString } from '../lib/strformat.js';\n\nconst messages = defineMessages({\n self_topic_name: {\n id: 'self_topic_name',\n defaultMessage: 'Saved messages',\n description: 'Name of self topic for UI'\n },\n self_topic_comment: {\n id: 'self_topic_comment',\n defaultMessage: 'Notes, messages, links, files saved for posterity',\n description: 'Comment for self topic for UI'\n }\n});\n\nclass Contact extends React.Component {\n constructor(props) {\n super(props);\n\n this.handleClick = this.handleClick.bind(this);\n this.handleContextClick = this.handleContextClick.bind(this);\n }\n\n handleClick(e) {\n e.preventDefault();\n e.stopPropagation();\n if (this.props.onSelected) {\n // Index this.props.index is used by GroupManager.\n this.props.onSelected(this.props.item, this.props.index);\n }\n }\n\n handleContextClick(e) {\n e.preventDefault();\n e.stopPropagation();\n this.props.showContextMenu({\n topicName: this.props.item,\n topicTitle: this.props.title,\n y: e.pageY,\n x: e.pageX\n });\n }\n\n render() {\n let title = this.props.title;\n const self = Tinode.isSelfTopicName(this.props.item);\n if (!title) {\n if (self) {\n title = this.props.intl.formatMessage(messages.self_topic_name);\n } else {\n title = ;\n }\n } else if (title.length > 30) {\n // Have to support RTL languages too.\n title = truncateString(title, 30);\n }\n const online = this.props.now ? 'online' : 'offline';\n const avatar = this.props.avatar ? this.props.avatar : true;\n const badges = this.props.badges ? this.props.badges.slice() : [];\n const icon_badges = [];\n if (this.props.isVerified) {\n icon_badges.push({icon: 'verified', color: 'verified-color'});\n }\n if (this.props.isStaff) {\n icon_badges.push({icon: 'staff', color: 'staff-color'});\n }\n if (this.props.isDangerous) {\n icon_badges.push({icon: 'dangerous', color: 'danger-color'});\n }\n if (this.props.acs) {\n if (this.props.showMode) {\n badges.push({name: this.props.acs.getMode(), key: 'mode'});\n }\n if (this.props.acs.isMuted()) {\n icon_badges.push({icon: 'muted'});\n }\n if (!this.props.acs.isJoiner()) {\n icon_badges.push({icon: 'banned'});\n }\n }\n\n // The this.props.preview contains alreay shortened Drafty or string.\n let preview;\n if (typeof this.props.preview == 'string') {\n preview = this.props.preview;\n } else if (Drafty.isValid(this.props.preview)) {\n preview = React.createElement(React.Fragment, null, Drafty.format(this.props.preview, previewFormatter,\n {formatMessage: this.props.intl.formatMessage, previewIsResponse: this.props.previewIsResponse}));\n } else if (this.props.preview) {\n preview =\n <>warning_amber \n \n ;\n }\n\n const icon = deliveryMarker(this.props.received);\n const marker = icon ? {icon.name} : null;\n const titleClass = 'contact-title' + (this.props.deleted ? ' deleted' : '');\n\n const comment = preview || this.props.comment ||\n (self ? this.props.intl.formatMessage(messages.self_topic_comment) : '\\u00A0');\n const bgColor = this.props.showCheckmark ? null :\n (this.props.selected ? 'selected' : (this.props.pinned ? 'tpinned' : null));\n return (\n
  • \n
    \n \n {this.props.deleted ? cancel :\n (!self && this.props.showOnline) ? :\n (this.props.showCheckmark && this.props.selected) ?\n check_circle\n : null}\n
    \n
    \n
    {title}\n {this.props.isGroup ? group : null}\n {this.props.isChannel ? podcasts : null}\n {!self ? : null}\n {!this.props.deleted ? : null}\n
    \n {this.props.showMode ?\n :\n this.props.small ? null :
    {marker}{comment}
    }\n
    \n {this.props.showContextMenu ?\n \n \n expand_more\n \n : null}\n
  • \n );\n }\n};\n\nexport default injectIntl(Contact);\n","// File and image helper functions.\n\n// Supported image MIME types and corresponding file extensions.\nexport const SUPPORTED_IMAGE_FORMATS = ['image/jpeg', 'image/gif', 'image/png', 'image/svg', 'image/svg+xml'];\nexport const MIME_EXTENSIONS = ['jpg', 'gif', 'png', 'svg', 'svg'];\n\n// Get an URL from a theCard photo: either create a data: URL or return reference URL.\nexport function makeImageUrl(photo) {\n if (photo && typeof photo == 'object') {\n if (photo.ref) {\n return photo.ref\n }\n if (photo.data && photo.type) {\n const mime = photo.type.startsWith('image/') ? photo.type : ('image/' + photo.type);\n return 'data:' + mime + ';base64,' + photo.data;\n }\n }\n return null;\n}\n\n// Calculate linear dimensions for scaling image down to fit under a certain size.\n// Returns an object which contains destination sizes, source sizes, and offsets\n// into source (when making square images).\nexport function fitImageSize(width, height, maxWidth, maxHeight, forceSquare) {\n // Sanitize input\n width = width | 0;\n height = height | 0;\n maxWidth = maxWidth | 0;\n maxHeight = maxHeight | 0;\n\n if (width <= 0 || height <= 0 || maxWidth <= 0 || maxHeight <= 0) {\n return null;\n }\n\n if (forceSquare) {\n maxWidth = maxHeight = Math.min(maxWidth, maxHeight);\n }\n\n const scale = Math.min(\n Math.min(width, maxWidth) / width,\n Math.min(height, maxHeight) / height\n );\n\n const size = {\n dstWidth: (width * scale) | 0,\n dstHeight: (height * scale) | 0,\n };\n\n if (forceSquare) {\n // Also calculate parameters for making the image square.\n size.dstWidth = size.dstHeight = Math.min(size.dstWidth, size.dstHeight);\n size.srcWidth = size.srcHeight = Math.min(width, height);\n size.xoffset = ((width - size.srcWidth) / 2) | 0;\n size.yoffset = ((height - size.srcWidth) / 2) | 0;\n } else {\n size.xoffset = size.yoffset = 0;\n size.srcWidth = width;\n size.srcHeight = height;\n }\n return size;\n}\n\n// Ensure file's extension matches mime content type\nexport function fileNameForMime(fname, mime) {\n const idx = SUPPORTED_IMAGE_FORMATS.indexOf(mime);\n if (idx < 0 || !fname) {\n // Unknown mime or empty name.\n return fname;\n }\n const ext = MIME_EXTENSIONS[idx];\n\n const at = fname.lastIndexOf('.');\n if (at >= 0) {\n fname = fname.substring(0, at);\n }\n return fname + '.' + ext;\n}\n\n// Scale uploaded image to fit under certain dimensions and byte size, optionally constraining to a square.\n// Returns a promise which is resolven on success or rejected on failure.\nexport function imageScaled(fileOrBlob, maxWidth, maxHeight, maxSize, forceSquare) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = 'Anonymous';\n img.onerror = function(err) {\n reject(new Error(\"Image format unrecognized\"));\n }\n img.onload = async function() {\n // Once the image is loaded, the URL is no longer needed.\n URL.revokeObjectURL(img.src);\n\n // Calculate the desired image dimensions.\n const dim = fitImageSize(img.width, img.height, maxWidth, maxHeight, forceSquare);\n if (!dim) {\n reject(new Error(\"Invalid image\"));\n return;\n }\n let canvas = document.createElement('canvas');\n canvas.width = dim.dstWidth;\n canvas.height = dim.dstHeight;\n let ctx = canvas.getContext('2d');\n ctx.imageSmoothingEnabled = true;\n ctx.drawImage(img, dim.xoffset, dim.yoffset, dim.srcWidth, dim.srcHeight,\n 0, 0, dim.dstWidth, dim.dstHeight);\n\n const mime = SUPPORTED_IMAGE_FORMATS.includes(fileOrBlob.type) ? fileOrBlob.type : 'image/jpeg';\n // Generate blob to check size of the image.\n let blob = await new Promise(resolve => canvas.toBlob(resolve, mime));\n if (!blob) {\n reject(new Error(\"Unsupported image format\"));\n return;\n }\n // Ensure the image is not too large. Shrink the image keeping the aspect ratio.\n // Do nothing if maxsize is <= 0.\n while (maxSize > 0 && blob.length > maxSize) {\n dim.dstWidth = (dim.dstWidth * 0.70710678118) | 0;\n dim.dstHeight = (dim.dstHeight * 0.70710678118) | 0;\n canvas.width = dim.dstWidth;\n canvas.height = dim.dstHeight;\n ctx = canvas.getContext('2d');\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.drawImage(img, dim.xoffset, dim.yoffset, dim.srcWidth, dim.srcHeight,\n 0, 0, dim.dstWidth, dim.dstHeight);\n blob = await new Promise(resolve => canvas.toBlob(resolve, mime));\n }\n\n canvas = null;\n resolve({mime: mime, blob: blob, width: dim.dstWidth, height: dim.dstHeight, name: fileNameForMime(fileOrBlob.name, mime)});\n };\n img.src = URL.createObjectURL(fileOrBlob);\n });\n}\n\n// Scale and crop image according to specified dimensions.\n// The coordinates are in unscaled image pixels, i.e. cut the rectangle first then scale it.\n// returns a promise.\nexport function imageCrop(mime, objURL, left, top, width, height, scale) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = 'Anonymous';\n img.onerror = _ => {\n reject(new Error(\"Image format unrecognized\"));\n };\n img.onload = _ => {\n // Once the image is loaded, the URL is no longer needed.\n URL.revokeObjectURL(img.src);\n\n let canvas = document.createElement('canvas');\n canvas.width = width * scale;\n canvas.height = height * scale;\n let ctx = canvas.getContext('2d');\n ctx.imageSmoothingEnabled = true;\n ctx.drawImage(img, left, top, width, height, 0, 0, canvas.width, canvas.height);\n\n mime = SUPPORTED_IMAGE_FORMATS.includes(mime) ? mime : 'image/jpeg';\n // Generate blob to check size of the image.\n canvas.toBlob((blob) => {\n // Allow GC.\n canvas = null;\n if (blob) {\n resolve({mime: mime, blob: blob, width: width, height: height});\n } else {\n reject(new Error(\"Unsupported image format\"));\n }\n }, mime);\n };\n img.src = objURL;\n });\n}\n\n// Convert file to base64 string.\nexport function fileToBase64(file) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onerror = _ => {\n reject(reader.error);\n };\n reader.onload = _ => {\n resolve({mime: file.type, bits: reader.result.split(',')[1], name: file.name});\n };\n reader.readAsDataURL(file);\n });\n}\n\n// Convert Blob to base64 string. Returns a promise resolved with the base64 string and mime.\nexport function blobToBase64(blob) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onerror = _ => {\n reject(reader.error);\n };\n reader.onload = _ => {\n resolve({mime: blob.type, bits: reader.result.split(',')[1]});\n };\n reader.readAsDataURL(blob);\n });\n}\n\n// File pasted from the clipboard. It's either an inline image or a file attachment.\nexport function filePasted(event, onImageSuccess, onAttachmentSuccess, onError) {\n const items = (event.clipboardData || event.originalEvent.clipboardData || {}).items;\n if (!items || !items.length) {\n return false;\n }\n\n for (let i in items) {\n const item = items[i];\n if (item.kind === 'file') {\n const file = item.getAsFile();\n if (!file) {\n console.error(\"Failed to get file object from pasted file item\", item.kind, item.type);\n onError(\"Failed to get file object from pasted file item\");\n continue;\n }\n if (file.type && file.type.split('/')[0] == 'image') {\n onImageSuccess(file);\n } else {\n onAttachmentSuccess(file);\n }\n // Indicate that the pasted data contains a file.\n return true;\n }\n }\n // No file found.\n return false;\n}\n\n// Get mime type from data URL header.\nexport function getMimeType(header) {\n const mime = /^data:(image\\/[-+a-z0-9.]+);base64/.exec(header);\n return (mime && mime.length > 1) ? mime[1] : null;\n}\n\n// Given length of a binary object in bytes, calculate the length after\n// base64 encoding.\nexport function base64EncodedLen(n) {\n return Math.floor((n + 2) / 3) * 4;\n}\n\n// Given length of a base64-encoded object, calculate decoded size of the\n// pbject in bytes.\nexport function base64DecodedLen(n) {\n return Math.floor(n / 4) * 3;\n}\n\n// Re-encode string to standard base64 encoding with padding.\n// The string may be base64-URL encoded without the padding.\nexport function base64ReEncode(str) {\n if (str) {\n str = str.replace(/-/g, '+').replace(/_/g, '/');\n try {\n str = btoa(atob(str));\n } catch(err) {\n console.error(\"Failed to base64 re-encode string.\", err);\n str = null;\n }\n }\n return str;\n}\n\n// Convert a base64 encoded string with the provided mime type into a Blob.\nexport function base64ToBlob(str, mime) {\n if (!str) {\n return null;\n }\n\n try {\n // Make blob.\n const bin = atob(str);\n const length = bin.length;\n const buf = new ArrayBuffer(length);\n const arr = new Uint8Array(buf);\n for (let i = 0; i < length; i++) {\n arr[i] = bin.charCodeAt(i);\n }\n\n return new Blob([buf], { type: mime });\n } catch(err) {\n console.error(\"Failed to convert base64 to blob: \", err);\n }\n\n return null;\n}\n\nexport function intArrayToBase64(arr) {\n if (!Array.isArray(arr)) {\n return null;\n }\n try {\n let bin = '';\n new Uint8Array(arr).forEach(b => bin += String.fromCharCode(b));\n return window.btoa(bin);\n } catch (err) {}\n return null;\n}\n\nexport function base64ToIntArray(b64) {\n const arr = [];\n try {\n const bin = window.atob(b64);\n [...bin].forEach(c => {\n arr.push(c.charCodeAt(0));\n });\n return arr;\n } catch (err) {}\n return null;\n}\n","// Password with a visiblity toggle.\nimport React from 'react';\n\nexport default class VisiblePassword extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.inputRef = React.createRef();\n\n this.state = {\n value: this.props.value || '',\n visible: false\n };\n\n this.handleVisibility = this.handleVisibility.bind(this);\n this.handeTextChange = this.handeTextChange.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleEditingFinished = this.handleEditingFinished.bind(this);\n }\n\n componentDidMount() {\n if (this.props.autoFocus) {\n this.inputRef.current.focus();\n }\n }\n\n handeTextChange(e) {\n this.setState({value: e.target.value});\n if (this.props.onChange) {\n this.props.onChange(e);\n }\n }\n\n handleVisibility(e) {\n e.preventDefault();\n this.setState({visible: !this.state.visible});\n }\n\n handleKeyDown(e) {\n if (e.keyCode == 27) {\n // Escape pressed\n this.setState({value: this.props.value || '', visible: false});\n if (this.props.onFinished) {\n this.props.onFinished();\n }\n } else if (e.keyCode == 13) {\n // Enter pressed\n this.handleEditingFinished();\n }\n }\n\n handleEditingFinished(e) {\n if (e) {\n let currentTarget = e.currentTarget;\n setTimeout(_ => {\n if (!currentTarget.contains(document.activeElement)) {\n if (this.props.onFinished) {\n this.props.onFinished(this.state.value);\n }\n }\n }, 0);\n } else if (this.props.onFinished) {\n this.props.onFinished(this.state.value.trim());\n }\n }\n\n render() {\n return (\n
    \n \n \n \n {this.state.visible ? 'visibility' : 'visibility_off'}\n \n \n
    \n );\n }\n}\n","import React from 'react';\n\nimport { Tinode } from 'tinode-sdk';\n\nimport { idToColorClass } from '../lib/strformat.js';\nimport { sanitizeUrlForMime } from '../lib/utils.js';\n\nimport { SELF_AVATAR_URI } from '../config.js';\n\nexport default class LetterTile extends React.PureComponent {\n render() {\n let avatar;\n if (this.props.avatar === true) {\n if (Tinode.isSelfTopicName(this.props.topic)) {\n avatar = \"avatar\"\n } else {\n const isGroup = Tinode.isGroupTopicName(this.props.topic);\n const iconColor = idToColorClass(this.props.topic, isGroup);\n\n if (this.props.topic && this.props.title && this.props.title.trim()) {\n const letter = this.props.title.trim().charAt(0);\n const className = 'lettertile ' + iconColor + (this.props.deleted ? ' disabled' : '');\n avatar = (
    {letter}
    )\n } else {\n const className = 'material-icons ' + iconColor + (this.props.deleted ? ' disabled' : '');\n avatar = isGroup ? group : person;\n }\n }\n } else if (this.props.avatar) {\n const url = this.props.tinode.authorizeURL(sanitizeUrlForMime(this.props.avatar, 'image'));\n // If avatar image is invalid, show a placeholder.\n const className = 'avatar' + (this.props.deleted ? ' deleted' : '');\n avatar = \"avatar\"{e.target.onerror = null; e.target.src=\"img/broken_image.png\"}} />;\n } else {\n avatar = null;\n }\n return avatar;\n }\n}\n","// Utility class for hash navigation.\n\nexport default class HashNavigation {\n // Parse hash as in http://www.example.com/path#hash as if it were\n // path and arguments.\n static parseUrlHash(hash) {\n // Split 'path/?args' into 'path/' and 'args', path -> parts[0], args->path[1].\n const parts = hash.split('?', 2);\n const params = {};\n let path = [];\n if (parts[0]) {\n path = parts[0].replace('#', '').split('/');\n }\n if (parts[1]) {\n parts[1].split('&').forEach((arg) => {\n // Can't use split() because the value may contain '='.\n const eq = arg.indexOf('=');\n if (eq > 0) {\n params[arg.slice(0, eq)] = decodeURIComponent(arg.slice(eq + 1));\n }\n });\n }\n return {path: path, params: params};\n }\n\n static navigateTo(url) {\n window.location.hash = url;\n }\n\n static composeUrlHash(path, params) {\n let url = path.join('/');\n const args = [];\n for (const key in params) {\n if (params.hasOwnProperty(key)) {\n if (params[key] !== undefined) {\n args.push(key + '=' + encodeURIComponent(params[key]));\n }\n }\n }\n if (args.length > 0) {\n url += '?' + args.join('&');\n }\n return url;\n }\n\n static addUrlParam(hash, key, value) {\n const parsed = HashNavigation.parseUrlHash(hash);\n parsed.params[key] = value;\n return HashNavigation.composeUrlHash(parsed.path, parsed.params);\n }\n\n static removeUrlParam(hash, key) {\n const parsed = HashNavigation.parseUrlHash(hash);\n delete parsed.params[key];\n return HashNavigation.composeUrlHash(parsed.path, parsed.params);\n }\n\n static setUrlSidePanel(hash, sidepanel) {\n const parsed = HashNavigation.parseUrlHash(hash);\n parsed.path[0] = sidepanel;\n return HashNavigation.composeUrlHash(parsed.path, parsed.params);\n }\n\n static setUrlInfoPanel(hash, infopanel) {\n const parsed = HashNavigation.parseUrlHash(hash);\n if (infopanel) {\n parsed.params.info = infopanel;\n } else {\n delete parsed.params.info;\n }\n return HashNavigation.composeUrlHash(parsed.path, parsed.params);\n }\n\n static setUrlTopic(hash, topic) {\n const parsed = HashNavigation.parseUrlHash(hash);\n parsed.path[1] = topic;\n // Close InfoView on topic change.\n delete parsed.params.info;\n return HashNavigation.composeUrlHash(parsed.path, parsed.params);\n }\n}\n","// Chat message describing a video or voice call.\n\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { secondsToTime } from '../lib/strformat.js';\n\nexport default class CallMessage extends React.PureComponent {\n render() {\n const isCallDropped = ['busy', 'declined', 'disconnected', 'missed'].includes(this.props.callState);\n const successClass = 'material-icons medium ' + (isCallDropped ? 'red' : 'green');\n const callIcon = this.props.incoming ?\n (isCallDropped ? 'call_missed' : 'call_received') :\n (isCallDropped ? 'call_missed_outgoing' : 'call_made');\n const title = this.props.incoming ?\n :\n ;\n let duration;\n if (isCallDropped) {\n switch (this.props.callState) {\n case 'busy':\n duration = ;\n break;\n case 'declined':\n duration = ;\n break;\n case 'missed':\n duration = this.props.incoming ?\n :\n ;\n break;\n default:\n duration = ;\n break;\n }\n } else {\n duration = {secondsToTime(this.props.duration / 1000)};\n }\n return
    \n
    call
    \n
    \n
    {title}
    \n
    {callIcon} {duration}
    \n
    \n
    ;\n }\n}\n","// The counter of unread messages in the topic.\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { secondsToTime } from '../lib/strformat.js';\n\n// Props:\n// incoming: true | false.\n// callState: 'busy' | 'declined' | 'disconnected' | 'missed'.\n// duration: (call duration in milliseconds).\nexport default class CallStatus extends React.PureComponent {\n render() {\n const isCallDropped = ['busy', 'declined', 'disconnected', 'missed'].includes(this.props.callState);\n const icon2 = this.props.incoming ?\n (isCallDropped ? 'call_missed' : 'call_received') :\n (isCallDropped ? 'call_missed_outgoing' : 'call_made');\n let duration;\n if (isCallDropped) {\n switch (this.props.callState) {\n case 'busy':\n duration = ;\n break;\n case 'declined':\n duration = ;\n break;\n case 'missed':\n duration = this.props.incoming ?\n :\n ;\n break;\n default:\n duration = ;\n break;\n }\n } else if (['accepted', 'started'].includes(this.props.callState) && !this.props.duration) {\n duration = \n } else {\n duration = {secondsToTime(this.props.duration / 1000)};\n }\n return (\n <>\n
    \n call{icon2}\n
    {duration}\n \n );\n }\n};\n","// Element which shows static video preview:\n// an image with duration and a play button in the middle.\n\nimport React from 'react';\n\nimport { secondsToTime } from '../lib/strformat.js'\n\nexport default class InlineVideo extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.videoRef = React.createRef();\n\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleClick(e) {\n if (this.props.onClick) {\n // the click target has to be the image element.\n this.props.onClick(e);\n }\n }\n\n render() {\n const duration = secondsToTime(this.props['data-duration'] / 1000);\n const className = 'inline-video' + (this.props.onClick ? ' image-clickable' : '');\n return (\n
    \n {React.createElement('img', this.props)}\n
    \n {this.props.onClick ?\n play_arrow\n :\n }\n
    \n {duration ?
    {duration}
    : null}\n
    \n );\n }\n};\n","// Image with a placeholder which is replaced when the promise is resolved.\nimport React from 'react';\n\nexport default class LazyImage extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.state = {\n src: this.props.isvideo ? 'img/blankvid.png' : 'img/blankimg.png',\n style: Object.assign({padding: '4px'}, this.props.style),\n className: this.props.className,\n alt: this.props.alt,\n onClick: this.props.onClick,\n };\n }\n\n componentDidMount() {\n // whenDone is a wrapper around an actual promise to be able to cancel it.\n this.props.whenDone\n .promise\n .then(data => this.setState({src: data.src, style: {...this.state.style, padding: 0}}))\n .catch(_ => this.setState({src: this.props.isvideo ? 'img/broken_video.png' : 'img/broken_image.png'}));\n }\n\n componentWillUnmount() {\n this.props.whenDone.cancel();\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.whenDone != this.props.whenDone) {\n this.setState({src: this.props.isvideo ? 'img/blankvid.png' : 'img/blankimg.png', style: {...this.state.style, padding: '4px'}});\n this.props.whenDone\n .promise\n .then(data => this.setState({src: data.src, style: {...this.state.style, padding: 0}}))\n .catch(_ => this.setState({src: this.props.isvideo ? 'img/broken_video.png' : 'img/broken_image.png'}));\n }\n }\n\n render() {\n return React.createElement('img', this.state);\n }\n};\n","// Image view with progress bar and a cancel button.\nimport React from 'react';\n\nimport FileProgress from './file-progress.jsx';\n\nexport default class UploadingImage extends React.PureComponent {\n constructor(props) {\n super(props);\n }\n\n render() {\n return (\n
    \n {React.createElement('img', this.props)}\n
    \n \n
    \n
    \n );\n }\n};\n","import React from 'react';\nimport { defineMessages } from 'react-intl';\n\nimport { Drafty } from 'tinode-sdk';\n\nimport AudioPlayer from '../widgets/audio-player.jsx'\nimport CallMessage from '../widgets/call-message.jsx'\nimport CallStatus from '../widgets/call-status.jsx';\nimport InlineVideo from '../widgets/inline-video.jsx';\nimport LazyImage from '../widgets/lazy-image.jsx'\nimport UploadingImage from '../widgets/uploading-image.jsx'\n\nimport { BROKEN_IMAGE_SIZE, CLICKABLE_URL_SCHEMES, IMAGE_THUMBNAIL_DIM, NO_DIMENSIONS_VIDEO,\n REM_SIZE, VIDEO_THUMBNAIL_WIDTH } from '../config.js';\nimport { base64ToBlob, blobToBase64, fitImageSize, imageScaled } from './blob-helpers.js';\nimport { idToColorClass, secondsToTime, shortenFileName } from './strformat.js';\nimport { cancelablePromise, sanitizeUrl, sanitizeUrlForMime } from './utils.js';\n\nconst messages = defineMessages({\n drafty_form: {\n id: 'drafty_form',\n defaultMessage: 'Form: ',\n description: 'Comment for form in Drafty'\n },\n drafty_attachment: {\n id: 'drafty_attachment',\n defaultMessage: 'Attachment',\n description: 'Comment for attachment in Drafty'\n },\n drafty_image: {\n id: 'drafty_image',\n defaultMessage: 'Picture',\n description: 'Comment for embedded images in Drafty'\n },\n drafty_video: {\n id: 'drafty_video',\n defaultMessage: 'Video recording',\n description: 'Comment for videos embedded in Drafty'\n },\n drafty_unknown: {\n id: 'drafty_unknown',\n defaultMessage: 'Unsupported',\n description: 'Unsupported entity in drafty'\n }\n});\n\n// The main Drafty formatter: converts Drafty elements into React classes. 'this' is set by the caller.\n// 'this' must contain:\n// viewportWidth:\n// authorizeURL:\n// onImagePreview:\n// onVideoPreview:\n// onFormButtonClick:\n// onQuoteClick:\nexport function fullFormatter(style, data, values, key, stack) {\n if (stack.includes('QQ')) {\n return quoteFormatter.call(this, style, data, values, key);\n }\n\n if (!style) {\n // Unformatted.\n return values;\n }\n\n let el = Drafty.tagName(style);\n let attr = Drafty.attrValue(style, data) || {};\n attr.key = key;\n switch (style) {\n case 'AU':\n // Show audio player.\n if (attr.src) {\n attr.src = this.authorizeURL(sanitizeUrlForMime(attr.src, 'audio'));\n attr.duration = data.duration > 0 ? (data.duration | 0) : undefined;\n attr.preview = data.preview;\n attr.loading = 'lazy';\n }\n el = AudioPlayer;\n // Audio element cannot have content.\n values = null;\n break;\n case 'BR':\n values = null;\n break;\n case 'EX':\n // Ignore.\n break;\n case 'HL':\n // Highlighted text. Assign class name.\n attr.className = 'highlight';\n break;\n case 'HD':\n el = null;\n values = null;\n break;\n case 'IM':\n // Additional processing for images\n el = handleImageData.call(this, el, data, attr);\n // Image element cannot have content.\n values = null;\n break;\n case 'BN':\n // Button\n attr.onClick = this.onFormButtonClick;\n let inner = React.Children.map(values, (child) => {\n return typeof child == 'string' ? child : undefined;\n });\n if (!inner || inner.length == 0) {\n inner = [attr.name]\n }\n // Get text which will be sent back when the button is clicked.\n attr['data-title'] = inner.join('');\n break;\n case 'LN':\n if (attr) {\n // Ensure only safe URL schemes are clickable.\n attr.href = typeof attr.href == 'string' ? sanitizeUrl(attr.href, CLICKABLE_URL_SCHEMES) : '';\n }\n break;\n case 'MN':\n // Mention\n attr.className = 'mention'\n if (data) {\n attr.className += ' ' + idToColorClass(data.val, false, true);\n }\n break;\n case 'FM':\n // Form\n attr.className = 'bot-form';\n break;\n case 'RW':\n // Form element formatting is dependent on element content.\n break;\n case 'QQ':\n // Quote/citation.\n attr.className = 'reply-quote'\n attr.onClick = this.onQuoteClick;\n break;\n case 'VC':\n el = CallMessage;\n // Video call messages do not have content.\n values = null;\n if (data) {\n attr.callState = data.state;\n attr.incoming = data.incoming;\n attr.duration = data.duration;\n }\n break;\n case 'VD':\n // Additional processing for videos.\n el = handleVideoData.call(this, el, data, attr);\n // Video element cannot have content.\n values = null;\n break;\n default:\n if (!el) {\n // Unknown element.\n el = React.Fragment;\n attr = {key: key};\n // Generate comment for unknown element.\n let body = values;\n if (!Array.isArray(values) || !values.join('').trim()) {\n body = [{this.formatMessage(messages.drafty_unknown)}];\n }\n values = [extension, ' '].concat(body);\n }\n break;\n }\n if (!el) {\n return values;\n }\n return React.createElement(el, attr, values);\n}\n\n// Additional processing of image data.\nfunction handleImageData(el, data, attr) {\n if (!data) {\n attr.src = 'img/broken_image.png';\n attr.style = {\n width: IMAGE_THUMBNAIL_DIM + 'px',\n height: IMAGE_THUMBNAIL_DIM + 'px',\n };\n return el;\n }\n\n attr.className = 'inline-image';\n const dim = fitImageSize(data.width, data.height,\n this.viewportWidth > 0 ? Math.min(this.viewportWidth - REM_SIZE * 6.5, REM_SIZE * 34.5) :\n REM_SIZE * 34.5, REM_SIZE * 24, false) ||\n {dstWidth: BROKEN_IMAGE_SIZE, dstHeight: BROKEN_IMAGE_SIZE};\n attr.style = {\n width: dim.dstWidth + 'px',\n height: dim.dstHeight + 'px',\n // Looks like a Chrome bug: broken image does not respect 'width' and 'height'.\n minWidth: dim.dstWidth + 'px',\n minHeight: dim.dstHeight + 'px'\n };\n if (!Drafty.isProcessing(data)) {\n attr.src = this.authorizeURL(sanitizeUrlForMime(attr.src, 'image'));\n attr.alt = data.name;\n if (attr.src) {\n if (Math.max(data.width || 0, data.height || 0) > IMAGE_THUMBNAIL_DIM) {\n // Allow previews for large enough images.\n attr.onClick = this.onImagePreview;\n attr.className += ' image-clickable';\n }\n attr.loading = 'lazy';\n } else {\n attr.src = null;\n }\n } else {\n // Use custom element instead of or