diff --git a/umd/index.prod.js b/umd/index.prod.js index 5fec3f33..dd36dee6 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-beta1"},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},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 p},Jf:function(){return h},Jt:function(){return o},LO:function(){return u},OM:function(){return i},YO:function(){return c},af:function(){return r},iE:function(){return m},k6:function(){return n},wk:function(){return d},xH:function(){return l}});var a=s(4532);function i(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 n(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 r(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 u(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 m(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}}}},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):" "),C=this.props.showCheckmark?null:this.props.selected?"selected":this.props.pinned?"tpinned":null;return i().createElement("li",{className:C,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("img",{src:"/img/channel.png",className:"channel",alt:"channel"}):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 w},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=C.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 C(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 w(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 w.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 C},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},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 j},VJ:function(){return g},Yd:function(){return $},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 q},gb:function(){return Y},hB:function(){return U},hT:function(){return W},iB:function(){return O},iq:function(){return k},kA:function(){return z},lQ:function(){return I},mp:function(){return w},mu:function(){return P},qV:function(){return y},qy:function(){return S},rl:function(){return V},rn:function(){return h},sT:function(){return F},tS:function(){return D},wj:function(){return _},wl:function(){return L},yS:function(){return G}});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,C=24,w=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,q="mailto:support@tinode.co",B="https://tinode.co/privacy.html",j="https://tinode.co/terms.html",V=!1,z=["http","https","ftp","ftps"],H=128,W=8e4,K=1e3,G=3*f,$="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZpZXdCb3g9IjAgMCAxNyAxNyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMy41NjIgMXYxNS40NTlsNC42ODYtMy4yNyA0Ljc1MiAzLjI2di0xNS40NDloLTkuNDM4ek0xMiAxNC41NTFsLTMuNzU2LTIuNTc4LTMuNjgxIDIuNTY4di0xMi41NDFoNy40Mzd2MTIuNTUxeiIgZmlsbD0iIzU1NTU1NSIgLz48L3N2Zz4=",Q=3e3,Y="light dark",X=10,J="application/json"},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 C(){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 w extends Error{constructor(e,t,s){super(t),this.code=e,this.customData=s,this.name="FirebaseError",Object.setPrototypeOf(this,w.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 w(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)});j.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 $(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($(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(z.has(e))return z.get(e);const t=G(e);return t!==e&&(z.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=$(r);return a&&r.addEventListener("upgradeneeded",e=>{a($(r.result),e.oldVersion,e.newVersion,$(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)),$(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",Ce="@firebase/messaging-compat",we="@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",[Ce]:"fire-fcm-compat",[we]:"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 qe(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 je{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 Ve(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 je(s,a,r);return Re.set(i,o),o}function ze(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 Ge(e,t){try{const s=(await Ke()).transaction(He,"readwrite"),a=s.objectStore(He);await a.put(t,$e(e)),await s.done}catch(e){if(e instanceof w)ne.warn(e.message);else{const t=Be.create("idb-set",{originalErrorMessage:null==e?void 0:e.message});ne.warn(t.message)}}}function $e(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()&&C().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($e(e));return await t.done,s}catch(e){if(e instanceof w)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 Ge(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 Ge(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")),ze(ae,ie,Ze),ze(ae,ie,"esm2017"),ze("fire-js","");ze("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 w&&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=wt();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 Ct=null;function wt(){return!Ct&&"BroadcastChannel"in self&&(Ct=new BroadcastChannel("[Firebase] FID Change"),Ct.onmessage=e=>{yt(e.data.key,e.data.fid)}),Ct}function St(){0===bt.size&&Ct&&(Ct.close(),Ct=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=qe(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 qt("App Configuration");if(!e.name)throw qt("App Name");const t=["projectId","apiKey","appId"];for(const s of t)if(!e.options[s])throw qt(s);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}}(t);return{app:t,appConfig:s,heartbeatServiceProvider:qe(t,"heartbeat"),_delete:()=>Promise.resolve()}},"PUBLIC")),Oe(new k("installations-internal",jt,"PRIVATE")),ze(et,tt),ze(et,tt,"esm2017");const Vt="BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4",zt="google.c.a.c_id",Ht=1e4;var Wt,Kt;function Gt(e){const t=new Uint8Array(e);return btoa(String.fromCharCode(...t)).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function $t(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:Gt(e.vapidKey)}}}else if(3===a){const e=l;t={token:e.fcmToken,createTime:e.createTime,subscriptionOptions:{auth:Gt(e.auth),p256dh:Gt(e.p256dh),endpoint:e.endpoint,swScope:e.swScope,vapidKey:Gt(e.vapidKey)}}}else if(4===a){const e=l;t={token:e.fcmToken,createTime:e.createTime,subscriptionOptions:{auth:Gt(e.auth),p256dh:Gt(e.p256dh),endpoint:e.endpoint,swScope:e.swScope,vapidKey:Gt(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!==Vt&&(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:$t(t)})}(e.swRegistration,e.vapidKey),s={vapidKey:e.vapidKey,swScope:e.swRegistration.scope,endpoint:t.endpoint,auth:Gt(t.getKey("auth")),p256dh:Gt(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=Vt)}(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[zt],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&&zt 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 Cs(){try{await C()}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 ws(e=function(e=Pe){const t=Re.get(e);if(!t&&e===Pe&&b())return Ve();if(!t)throw Be.create("no-app",{appName:e});return t}()){return Cs().then(e=>{if(!e)throw as.create("unsupported-browser")},e=>{throw as.create("indexed-db-unsupported")}),qe(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")),ze(bs,Es),ze(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),qs=r(8589);const Bs=new Audio("audio/call-in.m4a");class js 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,qs.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,qs.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 Vs=new Audio("audio/call-out.m4a");Vs.loop=!0;const zs=new Audio("audio/call-end.m4a");zs.loop=!0;const Hs=new Audio("audio/dialing.m4a"),Ws="video:muted",Ks="video:unmuted",Gs=(0,h.defineMessages)({already_in_call:{id:"already_in_call",defaultMessage:[{type:0,value:"You already in an ongoing call!"}]}});class $s 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){Vs.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":Vs.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(Gs.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(){zs.pause(),zs.currentTime=0,Vs.pause(),Vs.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}),Vs.pause(),Vs.currentTime=0,zs.loop=!0,zs.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,qs.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)($s),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,qs.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{1F6D7}\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{1FA89}\u{1FA8F}-\u{1FAC6}\u{1FACE}-\u{1FADC}\u{1FADF}-\u{1FAE9}\u{1FAF0}-\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,qs.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,qs.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,qs.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,qs.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 Ca 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 wa=(0,h.injectIntl)(Ca);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,qs.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,qs.lX)(e.size),limit:(0,qs.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 C=e.head?parseInt(e.head.reply):null;if(C&&!isNaN(C)||(C=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,qs.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:C,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,qs.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":"");let v=l().createElement(l().Fragment,null,l().createElement("div",{id:"messages-container"},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,"color-scheme":this.props.colorSchema},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(wa,{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(wa,{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}),v,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 qa extends l().Component{constructor(e){super(e),this.handleAction=this.handleAction.bind(this),this.state=qa.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=qa.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||"light dark",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-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:"light dark",checked:"light dark"==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"},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-column"},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 ja=r(1166);class Va 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(ja.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(ja.A,{name:"alert",id:"desktop-alerts",checked:this.props.desktopAlerts,onChange:this.props.desktopAlertsEnabled?this.handleCheckboxClick:null})))}}class za 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(ja.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),Ga=r.n(Ka);const $a=(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(Ga())(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($a.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,qs.W5)(this.state.fullName.trim(),ks.tS),s=(0,qs.W5)(this.state.private.trim(),ks.tS),a=(0,qs.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(ja.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(ja.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=(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"}]}});class mi 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(ui[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,textSize:this.props.textSize,sendOnEnter:this.props.sendOnEnter,onChangeColorSchema:this.props.onChangeColorSchema,onTextSizeChanged:this.props.onTextSizeChanged,onSendOnEnterChanged:this.props.onSendOnEnterChanged}):"notif"===t?l().createElement(Va,{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(za,{serverAddress:this.props.serverAddress,serverVersion:this.props.serverVersion}):"contacts"===t||"archive"==t||"blocked"==t?l().createElement(qa,{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 gi=(0,h.injectIntl)(mi),fi=r(257);function vi(){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 bi(){return"object"==typeof window.location&&"https:"==window.location.protocol}var Ei=r(8262);const yi=l().lazy(e=>r.e(316).then(r.bind(r,4316))),Ci=l().lazy(e=>r.e(747).then(r.bind(r,7747))),wi=new Audio("audio/msg.m4a"),Si=(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 Mi 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.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.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=Ei.A.getObject("settings")||{},t=!!Ei.A.getObject("keep-logged-in");return{connected:!1,ready:!1,autoLogin:!1,transport:e.transport||null,serverAddress:e.serverAddress||vi(),secureConnection:void 0===e.secureConnection?bi():e.secureConnection,serverVersion:"no connection",messageSounds:!e.messageSoundsOff,incognitoMode:!1,colorSchema:e.colorSchema||ks.gb,textSize:e.textSize||ks.cL,sendOnEnter:e.sendOnEnter||"plain",desktopAlerts:t&&!!e.desktopAlerts,desktopAlertsEnabled:(bi()||"object"==typeof window.location&&"localhost"==window.location.hostname)&&void 0!==Ve&&"undefined"!=typeof navigator&&"undefined"!=typeof FIREBASE_INIT,firebaseToken:t?Ei.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),document.documentElement.style.colorScheme=this.state.colorSchema,document.documentElement.style.setProperty("--message-text-size",`${this.state.textSize}pt`),"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),document.addEventListener("visibilitychange",this.handleVisibilityEvent),this.setState({viewportWidth:document.documentElement.clientWidth,viewportHeight:document.documentElement.clientHeight}),new Promise((e,t)=>{this.tinode=Mi.tnSetup(this.state.serverAddress,bi(),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?Ei.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),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(Si.push_init_failed),"err"),this.setState({firebaseToken:null}),Ei.A.updateObject("settings",{desktopAlerts:!1})};try{return this.fcm=ws(Ve(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:fi.i})),Mi.requestFCMToken(this.fcm,e))).then(e=>{const t=Ei.A.getObject("keep-logged-in");e!=this.state.firebaseToken&&(this.tinode.setDeviceToken(e),t&&Ei.A.setObject("firebase-token",e)),this.setState({firebaseToken:e,desktopAlerts:!0}),t&&Ei.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){["register","settings","edit","notif","acc_general","security","support","general","crop","cred","reset","newtpk","archive","blocked","contacts",""].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,Mi.stateForError(this.props.intl.formatMessage(Si.cred_confirmed_successfully),"info")),this.setState(t)}handleOnline(e){e?(this.handleError(),clearInterval(this.reconnectCountdown),this.tinode.reconnect()):this.handleError(this.props.intl.formatMessage(Si.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(Mi.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=>{Ei.A.setObject("keep-logged-in",!0),this.setState({persist:!0})}):this.tinode.clearStorage().then(e=>{Ei.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,qs.Ye)(a):a;this.handleError(s(Si.reconnect_countdown,{seconds:t}),"warn",e=>{clearInterval(this.reconnectCountdown),this.tinode.reconnect()},s(Si.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(Si.code_doesnot_match),"warn"),Mi.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(),Ei.A.getObject("keep-logged-in")&&Ei.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()}),Mi.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)&&wi.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=Mi.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:Mi.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?Mi.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){this.setState({colorSchema:e}),Ei.A.updateObject("settings",{colorSchema:e}),document.documentElement.style.colorScheme=e}handleChangeTextSize(e){this.setState({textSize:0|e}),Ei.A.updateObject("settings",{textSize:e}),document.documentElement.style.setProperty("--message-text-size",`${e}pt`)}handleSendOnEnter(e){this.setState({sendOnEnter:e}),Ei.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=Mi.tnSetup(t,a,s,this.props.intl.locale,Ei.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}),Ei.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}),Ei.A.getObject("keep-logged-in")&&Ei.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=>{Ei.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}),Ei.A.updateObject("settings",{desktopAlerts:!1}))}handleToggleMessageSounds(e){this.setState({messageSounds:e}),Ei.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){Mi.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":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=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=Mi.tnSetup(this.state.serverAddress,bi(),this.state.transport,this.props.intl.locale,Ei.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(Si.menu_item_info),handler:this.handleShowInfoView}:null,r&&p&&h?{title:this.props.intl.formatMessage(Si.menu_item_audio_call),handler:this.handleStartAudioCall}:null,r&&p&&h?{title:this.props.intl.formatMessage(Si.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(Si.password_reset_success),"info"),Ta.A.navigateTo("")}).catch(e=>{this.handleError(e.message,"err")}):this.handleError(this.props.intl.formatMessage(Si.invalid_security_token),"err")}handleShowCountrySelector(e,t,s){this.handleShowAlert(this.props.intl.formatMessage(Si.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(yi,{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(){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(js,{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(gi,{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,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,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:this.state.colorSchema,sendOnEnter:this.state.sendOnEnter,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 _i=(0,h.injectIntl)(Mi);if("undefined"!=typeof FIREBASE_INIT&&FIREBASE_INIT&&FIREBASE_INIT.measurementId){const Ri=document.getElementsByTagName("head")[0];let xi=document.createElement("script");function Ui(){dataLayer.push(arguments)}xi.src="https://www.googletagmanager.com/gtag/js?id="+FIREBASE_INIT.measurementId,xi.async=!0,Ri.prepend(xi),window.dataLayer=window.dataLayer||[],Ui("js",new Date),Ui("config",FIREBASE_INIT.measurementId)}const Ti={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)),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:Ai}=Ta.A.parseUrlHash(window.location.hash),ki=Ai&&Ai.hl||navigator.languages&&navigator.languages[0]||navigator.language||navigator.userLanguage||"en",Ni=ki.replace("_","-"),Di=Ni.split("-")[0].toLowerCase(),Ii=Ti[Ni]?ki:Ti[Di]?Di:"en",Pi=document.getElementsByTagName("html")[0];Pi.setAttribute("lang",Ii),["ar","fa","he","ur"].includes(Di)&&Pi.setAttribute("dir","rtl");const Fi=(0,c.H)(document.getElementById("mountPoint"));Ti[Ii]().then(e=>Fi.render(l().createElement(h.IntlProvider,{locale:ki,messages:e,textComponent:l().Fragment},l().createElement(_i,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-beta1"},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="light dark",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{1F6D7}\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{1FA89}\u{1FA8F}-\u{1FAC6}\u{1FACE}-\u{1FADC}\u{1FADF}-\u{1FAE9}\u{1FAF0}-\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":"");let v=l().createElement(l().Fragment,null,l().createElement("div",{id:"messages-container"},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,"color-scheme":this.props.colorSchema},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}),v,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||"light dark",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:"light dark",checked:"light dark"==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,{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");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,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(){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=this.state.colorSchema,document.documentElement.style.setProperty("--message-text-size",`${this.state.textSize}pt`);const e=yi.A.getObject("settings")||{};if(!e.wallpaper){const t=(0,Xs.KY)();e.wallpaper=t.name||"",e.wallpaperSize=t.size||0,e.wallpaperBlur=0}if(this.applyWallpaperSettings(e.wallpaper,e.wallpaperSize,e.wallpaperBlur),"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){this.setState({colorSchema:e}),yi.A.updateObject("settings",{colorSchema:e}),document.documentElement.style.colorScheme=e}handleColorSchemeChange(e){console.log("Color scheme change:",e.matches?"dark":"not dark")}handleSelectWallpapers(){this.handleError(),Ta.A.navigateTo(Ta.A.setUrlSidePanel(window.location.hash,"wallpapers"))}applyWallpaperSettings(e,t,s){console.log("Applying wallpaper settings:",e,t,s),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")}handleWallpaperSelected(e,t,s){this.handleError(),yi.A.updateObject("settings",{wallpaper:e,wallpaperSize:t,wallpaperBlur:s}),this.applyWallpaperSettings(e,t,s)}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=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(){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,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:this.state.colorSchema,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 aec7d197..313b8010 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\tscript.timeout = 120;\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-beta1\";\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';\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\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 ? \"channel\" : 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