(window.webpackJsonp=window.webpackJsonp||[]).push([[6],[function(n,e,t){"use strict";var r=t(86),o=t(8),l=t(12);t(2).get("interchat:loggerLocal.ts");let c=t(2);c.useDefaults();const d="ksitalkDebugLogEnabled";let f=[];function m(){try{return"1"==localStorage.getItem(d)}catch(n){return!1}}function h(n,e){if(e instanceof Error){let n={};return Object.getOwnPropertyNames(e).forEach(function(t){n[t]=e[t]}),n}return e}c.logBufferEnabledGet=function(){return m()},c.logBufferEnabledSet=function(n){try{localStorage.setItem(d,n?"1":"0")}catch(n){}},c.clearAllMessages=function(){f=[]},c.sendAllMessages=async function(){!o.a.connected||f.length<=0||o.a.authorizationToken&&(f.forEach(n=>{o.a.emit("logger",n)}),m()||(f=[]))},c.getAllMessagesText=function(){if(f.length<=0)return"";let text="";return f.forEach(n=>{text+=n+"\n"}),text};let v=c.createDefaultHandler();function x(){return{value:function(){let n={};return Object.getOwnPropertyNames(this).forEach(function(e){n[e]=this[e]},this),n},configurable:!0,writable:!0}}c.setHandler(function(n,e){if(v(n,e),!m())return;let t=(new Date).toISOString()+" : ";for(let e in n){let param=n[e];"string"!=typeof param&&(param=JSON.stringify(h(0,param),h)),t+=param+" "}for(t.length>4e3&&(t=t.substring(0,4e3)+"...[truncated]");f.length>=300;)f.splice(0,1);t="|"+Object(r.a)()+" | "+t,f.push(t),Object(l.q)()&&!m()&&c.sendAllMessages()}),"toJSON"in Error.prototype||Object.defineProperty(Error.prototype,"toJSON",x()),"toJSON"in Event.prototype||Object.defineProperty(Event.prototype,"toJSON",x()),window&&(window.onerror=function(n,e,t){c.error("Global error ",n,e,t)},window.addEventListener("error",function(n){c.error("Global error event",n.message,"event = ",n)})),e.a=c},function(n,e,t){"use strict";t.d(e,"a",function(){return l}),t.d(e,"d",function(){return c}),t.d(e,"e",function(){return d}),t.d(e,"c",function(){return f});var r=t(3);t(2).get("interchat:eventBus");const o=new r.default;e.b=o;class l{}function c(text){o.$emit(l.MODAL_SHOW,{title:"Notification",text:text})}function d(text){o.$emit(l.MODAL_SHOW,{title:"Warning",text:text})}function f(text){o.$emit(l.MODAL_SHOW,{title:"Error",text:text})}l.ACTIVATE="Activator::activate",l.REGISTRATION_TOKEN="PlatformDevice::registrationToken",l.AUDIO_CONTEXT_SET="GlobalAudio::audioContextSet",l.PLAYER_SET="GlobalAudio::playerSet",l.SOCKET_MOUNT="Socket:Mount",l.CALL_START="Call:Start",l.MODAL_SHOW="Modal:show",l.MODAL_HIDE="Modal:hide",l.REDIRECT="Redirect",l.NAVIGATE_BACK="NavigateBack",l.NAVIGATE_END="NavigateEnd",l.LAYOUT_MENU_CLICK="layoutMenuClick",l.LAYOUT_USER_ADD="layoutUserAdd",l.FILE_SHARE="FileShare",l.MESSAGE_REPLY="MessageReply",l.MESSAGE_FORWARD="MessageForward",l.CHAT_SEARCH_OPEN="ChatSearchOpen",l.MESSAGE_PIN="MessagePin",l.MESSAGE_UNPIN="MessageUnpin",l.PINNED_OPEN="PinnedOpen",l.MESSAGE_EDIT="MessageEdit",l.FILE_LOCAL_SAVED="FileLocalSaved",l.SELECTION_CHANGED="SelectionChanged",l.SELECTION_ACTION="SelectionAction",l.CHATS_SEARCH_QUERY="ChatsSearchQuery",l.MESSAGE_RETRY="MessageRetry"},,,,,,,function(n,e,t){"use strict";var r=t(478),o=t.n(r),l=t(0),c=t(1);t(2).get("interchat:SocketServer:emitAsync.ts");var d=t(18);t(2).get("interchat:socket.io.ts");const f=["polling","websocket"],m=o()("",{path:"/interchat/back/socket.io",autoConnect:!1,transports:f,timeout:6e4,forceNew:!0});m.isInProgress=function(){return this.requestInProgress>0};function h(){try{let n="undefined"!=typeof window?window:null,e=n&&n.$nuxt&&n.$nuxt.$i18n&&n.$nuxt.$i18n.locale?String(n.$nuxt.$i18n.locale):"";if(!e){let n=m.context;n&&n.app&&n.app.i18n&&n.app.i18n.locale&&(e=String(n.app.i18n.locale))}return(e||"").toLowerCase().split(/[-_]/)[0]}catch(n){return""}}function v(){try{const n="undefined"!=typeof window?window:null,nav="undefined"!=typeof navigator?navigator:null,e=nav&&nav.userAgent?nav.userAgent:"",t=!!(n&&n.cordova&&n.cordova.exec),r=/Android/i.test(e),o=/iPhone|iPad|iPod/i.test(e)||/Macintosh/i.test(e)&&nav&&(nav.maxTouchPoints||0)>1;return t?r?"apk":o?"ios-cordova":"cordova":o?"web-ios":"web"}catch(n){return"unknown"}}m.requestInProgress=0,m.authenticated=!1,m.serverReady=!1,m.changeRequestInProgress=function(n){let e=this.isInProgress();this.requestInProgress+=n,this.requestInProgress<0&&(l.a.warn("requestInProgress <0 !!!",this.requestInProgress),this.requestInProgress=0);let t=this.isInProgress();this.context&&e!=t&&this.context.store.commit("SET_SOCKET_IN_PROGRESS",t)},m.onRequestStart=function(){this.changeRequestInProgress(1)},m.onRequestEnd=function(){this.changeRequestInProgress(-1)},m.waitAuthenticated=function(n=8e3){return this.authenticated&&this.serverReady?Promise.resolve():this.connected?new Promise((e,t)=>{let r=null;const o=()=>{this.removeListener("authenticated",f),this.removeListener(d.a.SOCKET_READY,m),this.removeListener("disconnect",h),r&&(clearTimeout(r),r=null)},c=()=>{this.authenticated&&this.serverReady&&(o(),e())},f=()=>{setTimeout(()=>{this.serverReady||(l.a.warn("socket-ready fallback after authenticated"),this.serverReady=!0,c())},750),c()},m=()=>{c()},h=()=>{o(),t(new Error("offline"))};r=setTimeout(()=>{o(),t(new Error("timeout"))},n),this.once("authenticated",f),this.once(d.a.SOCKET_READY,m),this.once("disconnect",h),this.authenticated&&f()}):Promise.reject(new Error("offline"))},m.emitAsync=async function(n,data){try{this.onRequestStart(),await this.waitAuthenticated();let e=await async function(n,e,data,t){return new Promise((r,o)=>{let l=null,c=()=>{n.removeEventListener("disconnect",d),l&&(clearTimeout(l),l=null)},d=()=>{c(),o(new Error("timeout"))},f=t&&t.timeout||0;f&&(l=setTimeout(d,f)),n.once("disconnect",d),n.emit(e,data,(n,e)=>{l&&(c(),n?o(n):r(e))})})}(this,n,data,{timeout:15e3});return l.a.debug("event resolve ",n,e),e}catch(e){throw l.a.error("emit error ",n,e),e}finally{this.onRequestEnd()}},m.listenersMounted=!1,m.setContext=function(n){if(this.context=n,!this.listenersMounted){let n=this.context.store;c.b.$emit(c.a.SOCKET_MOUNT,{}),m.mountListeners(n),this.listenersMounted=!0}},m.onLogin=function(){if(!this.context)throw l.a.error("Socket on Login fails! No context"),new Error("Socket no context");let n=this.context.$auth;this.authorizationToken=n.getToken(n.strategy.name),this.authenticated=!1,this.serverReady=!1,m.open(),l.a.log("socket open")},m.mountListeners=function(n){let e=this;l.a.trace("Event mounted"),e.on(d.a.USER_ONLINE,e=>{n.dispatch("Users/setOnline",e)}),e.on(d.a.USER_OFFLINE,e=>{n.dispatch("Users/setOffline",e)}),e.on(d.a.NEW_MESSAGE,e=>n.dispatch("pushMessage",e)),e.on(d.a.REMOVE_MESSAGE,e=>n.dispatch("onRemoveMessage",e)),e.on(d.a.MESSAGE_UPDATED,e=>n.dispatch("onMessageUpdated",e)),e.on(d.a.MESSAGE_REACTIONS,data=>n.dispatch("onMessageReactions",data)),e.on(d.a.UPDATE_USER_CONVERSATION,data=>n.dispatch("updateUserConversation",data)),e.on(d.a.UPDATE_USER_CONVERSATION_OPPONENT,e=>n.dispatch("updateUserConversationOpponent",e)),e.on(d.a.CONVERSATION_CLEAN,data=>n.dispatch("conversationClean",data)),e.on(d.a.CONVERSATION_DELETE,data=>n.dispatch("conversationDelete",data)),e.on(d.a.RSA_PUBLIC_KEY_SET,data=>n.dispatch("Users/setUserPublicKey",data)),e.on(d.a.LOGOUT,data=>e.onLogout()),e.on(d.a.PROFILE_CHANGED,data=>n.dispatch("Users/userUpdate",data)),e.on(d.a.NEW_MESSAGE_AUDIO,e=>n.dispatch("pushMessage",e)),e.on(d.a.NEW_CONVERSATION,async e=>{l.a.debug("on new-conversation",e),await n.dispatch("Users/fetchUsers"),n.commit("ADD_CONVERSATION",e)}),e.on(d.a.NEW_USER,async e=>{l.a.debug("on new-user",e),await n.dispatch("Users/fetchUsers")});let t=async()=>{await n.dispatch("updateSelfOnline",e.connected)};e.on(d.a.CALL_MESSAGE,e=>{try{n.dispatch("Call/onMessage",e)}catch(n){l.a.error("onCallMessage",n)}}),e.on(d.a.TRANSFER_MESSAGE,e=>{try{n.dispatch("FileShare/onMessage",e)}catch(n){l.a.error("onCallMessage",n)}}),e.on("connect",t),e.on("reconnect",t),e.on("disconnect",t);let r=!1;e.on("disconnect",()=>{r=!0}),e.on(d.a.SOCKET_READY,()=>{r&&(r=!1,n.dispatch("fetchUserConversationsOpponents").catch(n=>l.a.warn("KT-0258 resync opponents failed",n)),n.dispatch("fetchUserConversations").catch(n=>l.a.warn("KT-0258 resync conversations failed",n)))}),t()},m.onLogout=async function(){l.a.debug("logout");let n=this.context.$auth,e=this.context.store;try{if(!e)throw new Error("onLogout store undefined!");this.deviceToken&&await m.sendLogout(),m.close()}finally{await n.logout(),this.authorizationToken=void 0,await e.dispatch("logout")}},m.on("connect",()=>{m.authenticated=!1,m.serverReady=!1;const n=m.io;l.a.debug("socket connected",m.id,"transport",n&&n.engine&&n.engine.transport&&n.engine.transport.name),m.authorizationToken?m.emit("authenticate",{token:m.authorizationToken}):(l.a.log("connected not authorized socket ... close"),m.close())}),m.on("authenticated",n=>{m.authenticated=!0,l.a.debug("socket authenticated",m.id),m.deviceToken&&m.doUpdateDeviceToken({token:m.deviceToken});try{m.emit(d.a.CLIENT_INFO,{version:"10.10.72.21",platform:v(),locale:h()})}catch(n){l.a.warn("KT-0205 clientInfo emit failed",n)}try{window.top.postMessage("authenticated","*")}catch(n){}}),m.on(d.a.SOCKET_READY,()=>{m.authenticated=!0,m.serverReady=!0,l.a.debug("socket server ready",m.id)}),m.on("disconnect",n=>{m.authenticated=!1,m.serverReady=!1,l.a.debug("socket disconnected",n)}),m.on("error",n=>{l.a.error("socket error",n)}),m.getUsersOnlineIds=async function(){return this.emitAsync("get_users_online_ids")},m.sendMessage=async function(n){return this.emitAsync("send-message",n)},m.removeMessage=async function(n){return this.emitAsync("remove-message",n)},m.editMessage=async function(n){return this.emitAsync("edit-message",n)},m.setReaction=async function(n){return this.emitAsync("set-reaction",n)},m.channelBroadcast=async function(n){return this.emitAsync("channel-broadcast",n)},m.sendMessageAudio=async function(n){return this.emitAsync("send-message-audio",n)},m.sendConversationClean=async function(n){return this.emitAsync("send-conversation-clean",n)},m.sendConversationDeleteWith=async function(n){return this.emitAsync("send-conversation-delete-with",n)},m.sendPublicKeySet=async function(n){return this.emitAsync("publicKeySet",n)},m.doUpdateDeviceToken=async function({token:n}){return this.deviceToken=n,l.a.debug("Send device token",this.deviceToken),this.emitAsync("updateDeviceToken",n)},m.sendLogout=async function(n={}){return n={...n,deviceToken:this.deviceToken},this.emitAsync("logout",n)},m.sendBugReport=async function(n){return this.emitAsync("bugReport",n)},m.forceConnect=function(){this.connected||(this.close(),setTimeout(()=>this.open(),0))},m.sendLog=async function(n){return this.emitAsync("logger",n)},m.runActionGet=async function(n,e){return this.emitAsync("action",{method:"get",url:n,params:e})},m.runActionPost=async function(n,e){return this.emitAsync("action",{method:"post",url:n,params:e})};e.a=m},function(n,e,t){"use strict";t.d(e,"f",function(){return l}),t.d(e,"c",function(){return c}),t.d(e,"b",function(){return d}),t.d(e,"d",function(){return m}),t.d(e,"e",function(){return h}),t.d(e,"a",function(){return v});var r=t(0);t(2).get("interchat:PersonalCache.ts");let o=null;function l(n){r.a.log("Set current user id ",n),o=n}function c(){return o}var d;function f(n){if(!o)throw Error("Current user id not set");return"personCache:"+o+":"+n}function m(n){let e=function(n){return localStorage.getItem(f(n))}(n);try{if("string"==typeof e)return JSON.parse(e)}catch(n){return null}return null}function h(n,e){!function(n,e){localStorage.setItem(f(n),e)}(n,JSON.stringify(e))}function v(){try{if("undefined"==typeof localStorage)return;let n=[];for(let i=0;i=0||n.push(e))}n.forEach(n=>localStorage.removeItem(n)),r.a.log("ClearConversationCaches removed",n.length)}catch(n){r.a.error("ClearConversationCaches failed",n)}}!function(n){n.USER_LIST="user_list",n.USER_SELF="user_self",n.CRYPTO_STORAGE="crypto_storage",n.CONVERSATIONS="conversations",n.USER_CONVERSATIONS="user_conversations",n.USER_CONVERSATIONS_OPPONENTS="user_conversations_opponents"}(d||(d={}))},,,function(n,e,t){"use strict";(function(n){t.d(e,"y",function(){return l}),t.d(e,"x",function(){return c}),t.d(e,"j",function(){return f}),t.d(e,"b",function(){return m}),t.d(e,"a",function(){return h}),t.d(e,"s",function(){return x}),t.d(e,"t",function(){return w}),t.d(e,"u",function(){return y}),t.d(e,"n",function(){return _}),t.d(e,"m",function(){return S}),t.d(e,"r",function(){return C}),t.d(e,"q",function(){return E}),t.d(e,"l",function(){return I}),t.d(e,"k",function(){return T}),t.d(e,"i",function(){return A}),t.d(e,"h",function(){return O}),t.d(e,"w",function(){return M}),t.d(e,"v",function(){return N}),t.d(e,"p",function(){return R}),t.d(e,"o",function(){return D}),t.d(e,"B",function(){return P}),t.d(e,"A",function(){return L}),t.d(e,"d",function(){return j}),t.d(e,"c",function(){return F}),t.d(e,"z",function(){return U}),t.d(e,"f",function(){return z}),t.d(e,"e",function(){return $}),t.d(e,"g",function(){return B});var r=t(54),o=t(0);t(2).get("interchat:localOptions.ts");const l="default",c="dark",d=n.env.DEFAULT_THEME?n.env.DEFAULT_THEME:c;var f;!function(n){n.LOG_AUTO_SEND="logAutoSend",n.FILE_TRANSFER_AUTO="fileTransferAuto",n.PHOTO_VIDEO_GALLERY_SAVE="photoVideoGallerySave",n.SPEECH_THRESHOLD="speechThreshold",n.CRYPTO_CLOUD_BACKUP="cryptoCloudBackup",n.CRYPTO_CLOUD_NAMES="cryptoCloudNames",n.ECHO_CANCELLATION_ENABLE="echoCancellationEnable",n.ECHO_CANCELLATION_NATIVE_DISABLE="echoCancellationNativeDisable",n.ECHO_CANCELLATION_NATIVE_VIDEO_DISABLE="echoCancellationNativeVideoDisable",n.THEME_NAME="themeName",n.CHAT_FONT_SIZE="chatFontSize",n.LAYOUT_FIX="layoutFix",n.VOICE_FX="voiceFx",n.CALL_BG="callBg"}(f||(f={}));const m=12,h=30,v={};function x(n){return e=localStorage.getItem(n),t=v[n],"true"==e||"false"!=e&&t;var e,t}function k(n){return function(n,e){let t=n?parseInt(n):NaN;return isNaN(t)?e:t}(localStorage.getItem(n),v[n])}function w(n){return localStorage.getItem(n)||v[n]}function y(n,e){localStorage.setItem(n,e)}function _(n){y(f.FILE_TRANSFER_AUTO,n)}function S(){return x(f.FILE_TRANSFER_AUTO)}function C(n){y(f.LOG_AUTO_SEND,n);try{document.devicePlatform&&document.devicePlatform.developerLogSendSet&&document.devicePlatform.developerLogSendSet(n)}catch(n){o.a.error("Error LogAutoSendSet ",n)}}function E(){return x(f.LOG_AUTO_SEND)}function I(n){y(f.ECHO_CANCELLATION_ENABLE,n)}function T(){return x(f.ECHO_CANCELLATION_ENABLE)}function A(n){y(f.CRYPTO_CLOUD_NAMES,n)}function O(){return x(f.CRYPTO_CLOUD_NAMES)}function M(n){y(f.SPEECH_THRESHOLD,n)}function N(){return k(f.SPEECH_THRESHOLD)}function R(n){y(f.LAYOUT_FIX,n)}function D(){return x(f.LAYOUT_FIX)}function P(n){y(f.VOICE_FX,n)}function L(){return w(f.VOICE_FX)||"none"}function j(n){y(f.CALL_BG,n)}function F(){return w(f.CALL_BG)||"none"}function U(){return w(f.THEME_NAME)}function z(){let n=k(f.CHAT_FONT_SIZE);return nh&&(n=h),n}function $(){try{if("undefined"==typeof document||!document.documentElement)return;document.documentElement.style.setProperty("--chat-font-size",z()+"px")}catch(n){o.a.error("ChatFontSizeApply error",n)}}function B(n){y(f.CHAT_FONT_SIZE,n),$()}v[f.ECHO_CANCELLATION_ENABLE]=!r.isIOS,v[f.ECHO_CANCELLATION_NATIVE_DISABLE]=!1,v[f.ECHO_CANCELLATION_NATIVE_VIDEO_DISABLE]=!1,v[f.SPEECH_THRESHOLD]=-60,v[f.CRYPTO_CLOUD_BACKUP]=!0,v[f.CRYPTO_CLOUD_NAMES]=!0,v[f.LOG_AUTO_SEND]=true,v[f.FILE_TRANSFER_AUTO]=!0,v[f.PHOTO_VIDEO_GALLERY_SAVE]=!0,v[f.THEME_NAME]=d,v[f.CHAT_FONT_SIZE]=18,v[f.LAYOUT_FIX]=!0,v[f.VOICE_FX]="none",v[f.CALL_BG]="none"}).call(this,t(22))},,,,,,function(n,e,t){"use strict";t.d(e,"a",function(){return r});t(2).get("interchat:SocketServer:ESocketEvents.ts");var r;!function(n){n.USER_ONLINE="user-online",n.USER_OFFLINE="user-offline",n.SOCKET_READY="socket-ready",n.NEW_MESSAGE="new-message",n.NEW_MESSAGE_AUDIO="new-message-audio",n.NEW_USER="new-user",n.NEW_CONVERSATION="new-conversation",n.PROFILE_CHANGED="profile_changed",n.RSA_PUBLIC_KEY_SET="rsa_public_key_set",n.GET_USERS_ONLINE_IDS="get_users_online_ids",n.SEND_MESSAGE="send-message",n.REMOVE_MESSAGE="remove-message",n.EDIT_MESSAGE="edit-message",n.MESSAGE_UPDATED="message-updated",n.SET_REACTION="set-reaction",n.MESSAGE_REACTIONS="message-reactions",n.CHANNEL_BROADCAST="channel-broadcast",n.PUBLIC_KEY_SET="publicKeySet",n.CONVERSATION_CLEAN="conversation-clean",n.CONVERSATION_DELETE="conversation-del",n.SEND_CONVERSATION_CLEAN="send-conversation-clean",n.SEND_CONVERSATION_DELETE_WITH="send-conversation-delete-with",n.SEND_MESSAGE_AUDIO="send-message-audio",n.CALL_MESSAGE="call-message",n.TRANSFER_MESSAGE="transfer-message",n.UPDATE_DEVICE_TOKEN="updateDeviceToken",n.CLIENT_INFO="clientInfo",n.PINS_UPDATED="pins-updated",n.LOGGER="logger",n.BUG_REPORT="bugReport",n.LOGOUT="logout",n.UPDATE_USER_CONVERSATION="updateUserConversation",n.UPDATE_USER_CONVERSATION_OPPONENT="updateUserConversationOpponent",n.FILE_UPLOAD_STREAM="file_upload_stream",n.FILE_DOWNLOAD_STREAM="file_download_stream"}(r||(r={}))},function(n,e,t){"use strict";t.d(e,"d",function(){return o}),t.d(e,"e",function(){return l}),t.d(e,"f",function(){return c}),t.d(e,"b",function(){return d}),t.d(e,"a",function(){return f}),t.d(e,"c",function(){return m});t(14);t(2).get("interchat:userDisplay.ts");function r(n){return String(n||"").trim()}function o(n){if(!n)return"";const e=r(n.username);return/^\d+$/.test(e)?e:""}function l(n){return o(n)}function c(n,e){return r(e).length>=8?"":o(n)}function d(n){const e=r(n);return e.length>8?e.substring(0,8):e}function f(n){const text=r(n),e=text.split(/\s+/).map(n=>Array.from(n).filter(n=>/\p{L}/u.test(n)).join("")).filter(Boolean);if(e.length>=2)return(e[0][0]+e[1][0]).toUpperCase();if(1==e.length){const n=Array.from(e[0]);return n.length>2?(n[0]+n[n.length-1]).toUpperCase():n.join("").toUpperCase()}const t=text.replace(/\D/g,"");if(!t)return"";const o="ABCDEFGHIJ",l=parseInt(t[0],10),c=parseInt(t[t.length-1],10);return isNaN(l)||isNaN(c)?"":o[l]+o[(c+5)%10]}function m(n){if(!n)return"";const e=r(n.avatarName);if(e)return e;const t=r(n.profile&&n.profile.avatarName);return t||f(o(n))}},function(n,e,t){"use strict";t.d(e,"a",function(){return o}),t.d(e,"b",function(){return l});t(2).get("interchat:callGhostGuard.ts");let r=0;function o(n=700){r=Date.now()+n}function l(){return Date.now(){})}catch(n){}}}(),new Promise((n,e)=>{const t=indexedDB.open(o,l);t.onupgradeneeded=()=>{const n=t.result;if(!n.objectStoreNames.contains(c)){const e=n.createObjectStore(c,{keyPath:"key"});e.createIndex("name","name",{unique:!1}),e.createIndex("savedAt","savedAt",{unique:!1})}if(n.objectStoreNames.contains(d)||n.createObjectStore(d,{keyPath:"key"}),!n.objectStoreNames.contains(f)){n.createObjectStore(f,{keyPath:"key"}).createIndex("lastAccessAt","lastAccessAt",{unique:!1})}},t.onsuccess=()=>n(t.result),t.onerror=()=>e(t.error)}))}function S(n){return new Promise((e,t)=>{n.oncomplete=()=>e(),n.onerror=()=>t(n.error),n.onabort=()=>t(n.error)})}async function C(n){if(!n)return null;const e=await _();return e?new Promise((t,r)=>{const o=e.transaction(c,"readonly").objectStore(c).get(n);o.onsuccess=()=>t(o.result||null),o.onerror=()=>r(o.error)}):null}async function E(n){if(!n)return null;const e=await _();if(!e)return null;let t=await new Promise((t,r)=>{const o=e.transaction(d,"readonly").objectStore(d).get(n);o.onsuccess=()=>t(o.result?o.result.content:null),o.onerror=()=>r(o.error)});if(t)try{await async function(n,e){const t=n.transaction(c,"readwrite"),r=t.objectStore(c),o=r.get(e);return o.onsuccess=()=>{const n=o.result;n&&(n.lastAccessAt=w(),r.put(n))},S(t)}(e,n)}catch(n){}return t}async function I(n){if(!n||!n.key)return;n.name&&n.path&&Object(r.DoFilePathSet)(n.name,n.path);const e=await _();if(!e)return;const content=n.content&&n.size<=v?n.content:null,meta={key:n.key,messageId:n.messageId,name:n.name,size:n.size,path:n.path,savedAt:n.savedAt,lastAccessAt:n.lastAccessAt||n.savedAt||w(),hasContent:!!content};try{const t=e.transaction([c,d],"readwrite");t.objectStore(c).put(meta),content?t.objectStore(d).put({key:n.key,content:content}):t.objectStore(d).delete(n.key),await S(t)}catch(t){try{meta.hasContent=!1;const t=e.transaction([c,d],"readwrite");t.objectStore(c).put(meta),t.objectStore(d).delete(n.key),await S(t)}catch(n){}return}if(content)try{await async function(n){const e=await new Promise((e,t)=>{const r=n.transaction(c,"readonly"),o=[],l=r.objectStore(c).openCursor();l.onsuccess=()=>{const n=l.result;n?(n.value&&n.value.hasContent&&o.push(n.value),n.continue()):e(o)},l.onerror=()=>t(l.error)});let t=e.reduce((n,e)=>n+(e.size||0),0);if(t<=h)return;e.sort((a,b)=>String(a.lastAccessAt||a.savedAt).localeCompare(String(b.lastAccessAt||b.savedAt)));const r=n.transaction([c,d],"readwrite"),o=r.objectStore(c),l=r.objectStore(d);for(const n of e){if(t<=h)break;l.delete(n.key),n.hasContent=!1,o.put(n),t-=n.size||0}await S(r)}(e)}catch(n){}}async function T(n){if(!n)return;const e=await _();if(!e)return;const t=e.transaction([c,d,f],"readwrite");t.objectStore(c).delete(n),t.objectStore(d).delete(n),t.objectStore(f).delete(n),await S(t)}async function A(path){if(!path)return 0;const n=await _();return n?await new Promise(e=>{try{let t=0;const r=n.transaction(c,"readonly").objectStore(c).openCursor();r.onsuccess=()=>{const n=r.result;n?(n.value&&n.value.path===path&&t++,n.continue()):e(t)},r.onerror=()=>e(0)}catch(n){e(0)}}):0}async function O(n){if(!n||!n.length)return 0;const map={};for(const e of n)e&&e.old&&e.new&&(map[e.old]=e.new);const e=await _();return e?await new Promise(n=>{try{let t=0;const o=e.transaction(c,"readwrite"),l=o.objectStore(c).openCursor();l.onsuccess=()=>{const n=l.result;if(n){const e=n.value;e&&e.path&&map[e.path]&&(e.path=map[e.path],n.update(e),e.name&&Object(r.DoFilePathSet)(e.name,e.path),t++),n.continue()}},o.oncomplete=()=>n(t),o.onerror=()=>n(t),o.onabort=()=>n(t)}catch(e){n(0)}}):0}async function M(){const n=await _();if(!n)return{bytes:0,count:0};const meta=await new Promise(e=>{try{let t=0,r=0;const o=n.transaction(c,"readonly"),l=o.objectStore(c).openCursor();l.onsuccess=()=>{const n=l.result;n&&(n.value&&n.value.hasContent&&(t+=n.value.size||0,r++),n.continue())},o.oncomplete=()=>e({bytes:t,count:r}),o.onerror=()=>e({bytes:t,count:r}),o.onabort=()=>e({bytes:t,count:r})}catch(n){e({bytes:0,count:0})}});let e=0;try{e=await new Promise(e=>{let b=0;const t=n.transaction(f,"readonly"),r=t.objectStore(f).openCursor();r.onsuccess=()=>{const n=r.result;n&&(b+=n.value&&n.value.size||0,n.continue())},t.oncomplete=()=>e(b),t.onerror=()=>e(b),t.onabort=()=>e(b)})}catch(n){}return{bytes:meta.bytes+e,count:meta.count}}let N=0;async function R(n,e){if(!n)return null;const t=await _();if(!t)return null;let r=await new Promise((e,r)=>{const o=t.transaction(f,"readonly").objectStore(f).get(n);o.onsuccess=()=>e(o.result||null),o.onerror=()=>r(o.error)});if(!r)return null;if(e&&r.px&&r.px!==e)return null;try{await async function(n,e){const t=n.transaction(f,"readwrite"),r=t.objectStore(f),o=r.get(e);return o.onsuccess=()=>{const n=o.result;n&&(n.lastAccessAt=w(),r.put(n))},S(t)}(t,n)}catch(n){}return r.thumb||null}async function D(n,e,t){if(!n||!e)return;const r=await _();if(!r)return;const o={key:n,thumb:e,size:e.length,px:t||0,lastAccessAt:w()},l=r.transaction(f,"readwrite");if(l.objectStore(f).put(o),await S(l),N++,N%50==0)try{await async function(n){const e=await new Promise((e,t)=>{const r=n.transaction(f,"readonly"),o=[],l=r.objectStore(f).openCursor();l.onsuccess=()=>{const n=l.result;n?(o.push({key:n.value.key,size:n.value.size||0,lastAccessAt:n.value.lastAccessAt}),n.continue()):e(o)},l.onerror=()=>t(l.error)});let t=e.reduce((n,e)=>n+(e.size||0),0);if(t<=m)return;e.sort((a,b)=>String(a.lastAccessAt).localeCompare(String(b.lastAccessAt)));const r=n.transaction(f,"readwrite"),o=r.objectStore(f);for(const n of e){if(t<=m)break;o.delete(n.key),t-=n.size||0}await S(r)}(r)}catch(n){}}},function(n,e,t){"use strict";t.d(e,"a",function(){return r}),t.d(e,"c",function(){return o}),t.d(e,"b",function(){return l});t(2).get("interchat:platform:PlatformDeviceInterface.ts");var r,o,l;!function(n){n.MODE_NORMAL="MODE_NORMAL",n.MODE_RINGTONE="MODE_RINGTONE",n.MODE_IN_CALL="MODE_IN_CALL",n.MODE_IN_COMMUNICATION="MODE_IN_COMMUNICATION",n.MODE_INVALID="MODE_INVALID"}(r||(r={})),function(n){n.PHONE="PHONE",n.SPEAKER="SPEAKER",n.BLUETOOTH="BLUETOOTH",n.ANY="ANY"}(o||(o={})),function(n){n[n.STREAM_MUSIC=3]="STREAM_MUSIC",n[n.STREAM_VOICE_CALL=0]="STREAM_VOICE_CALL"}(l||(l={}))},function(n,e,t){"use strict";t.d(e,"b",function(){return l}),t.d(e,"f",function(){return c}),t.d(e,"e",function(){return d}),t.d(e,"a",function(){return m}),t.d(e,"c",function(){return h}),t.d(e,"d",function(){return v});t(2).get("interchat:channel.ts");const r="ksitalk",o="58",l="KSITalk";function c(n){return!!n&&String(n.username)===r}function d(n){return!!n&&String(n.username)===o}const f="ksitalk.channelReadAt",m=864e5;function h(){try{let n=localStorage.getItem(f);return n&&Number(n)||0}catch(n){return 0}}function v(n){try{localStorage.setItem(f,String(n||Date.now()))}catch(n){}}},function(n,e,t){"use strict";t.r(e),t.d(e,"MessageType",function(){return r});t(2).get("interchat:FileShare:types:Message.ts");var r;!function(n){n.REQUEST="transferRequest",n.ASC="transferASC",n.ANSWER="transferAnswer",n.ANSWER_SELF="transferAnswerSelf",n.HUNG="transferHung",n.SIGNAL="transferSignal",n.DONE="transferDone"}(r||(r={}))},function(n,e,t){"use strict";t.r(e),t.d(e,"MessageType",function(){return r});t(2).get("interchat:Call:types:Message.ts");var r;!function(n){n.REQUEST="callRequest",n.ASC="callRequestASC",n.ANSWER="callAnswer",n.ANSWER_SELF="callAnswerSelf",n.HUNG="callHung",n.SIGNAL="signal"}(r||(r={}))},function(n,e,t){"use strict";t.d(e,"h",function(){return y}),t.d(e,"b",function(){return _}),t.d(e,"f",function(){return S}),t.d(e,"e",function(){return M}),t.d(e,"a",function(){return N}),t.d(e,"g",function(){return R}),t.d(e,"c",function(){return D}),t.d(e,"d",function(){return P});t(14);var r=t(0);t(2).get("interchat:LocalMessageStore.ts");const o=t(329),l="ksitalk-msgs",c=1,d="messages",f="conv",m=300,h=20,v=["_id","conversationId","body","author","type","createdAt","editedAt","reactions","clientId","sendStatus","isSecure","isUnread","silent"];let x=null,k=null,w=null;function y(n,e){x=n?String(n):null,k=e?String(e):null}function _(){x=null,k=null}function S(){return!(!x||!k||"undefined"==typeof indexedDB)}function C(n,e){return x+"|"+n+"|"+e}function E(n){return o.encrypt(k,JSON.stringify(n))}function I(s){try{return JSON.parse(o.decrypt(k,s))}catch(n){return null}}function T(n){let e={};for(let t of v)void 0!==n[t]&&(e[t]=n[t]);return e}function A(){return w||(w=new Promise(n=>{try{let e=indexedDB.open(l,c);e.onupgradeneeded=()=>{let n=e.result;if(!n.objectStoreNames.contains(d)){n.createObjectStore(d,{keyPath:"key"}).createIndex(f,"conv",{unique:!1})}},e.onsuccess=()=>n(e.result),e.onerror=()=>{r.a.warn("LMS openDb error",e.error),n(null)}}catch(e){r.a.warn("LMS openDb throw",e),n(null)}}),w)}function O(n){return new Promise(e=>{n.oncomplete=()=>e(),n.onerror=()=>e(),n.onabort=()=>e()})}async function M(n){if(S())try{let e=await A();if(!e)return;await async function(n,e){if(!e||!e.conversationId||!e._id&&!e.clientId)return;let t=e._id||e.clientId,r={key:C(e.conversationId,t),conv:x+"|"+e.conversationId,at:String(e.createdAt||""),enc:E(T(e))},o=n.transaction(d,"readwrite");o.objectStore(d).put(r),await O(o)}(e,n),j(n.conversationId)}catch(n){r.a.warn("LmsPut failed",n)}}async function N(n,e){if(S()&&n&&n.length)try{let t=await A();if(!t)return;let r=t.transaction(d,"readwrite"),o=r.objectStore(d);for(let t of n){if(!t)continue;let n=t.conversationId||e,r=t._id||t.clientId;n&&r&&o.put({key:C(n,r),conv:x+"|"+n,at:String(t.createdAt||""),enc:E(T(t))})}await O(r),j(e)}catch(n){r.a.warn("LmsBatchPut failed",n)}}async function R(n,e){if(S()&&n&&e)try{let t=await A();if(!t)return;let r=t.transaction(d,"readwrite");r.objectStore(d).delete(C(n,e)),await O(r)}catch(n){r.a.warn("LmsRemove failed",n)}}async function D(n,e=h){if(!S()||!n)return[];try{let t=await A();if(!t)return[];let r=await function(n,e){return new Promise(t=>{let r=[];try{let o=n.transaction(d,"readonly").objectStore(d).index(f),l=IDBKeyRange.only(x+"|"+e),c=o.openCursor(l);c.onsuccess=()=>{let n=c.result;if(n){let e=I(n.value.enc);e&&r.push(e),n.continue()}else t(r)},c.onerror=()=>t(r)}catch(n){t(r)}})}(t,n);return r.sort((a,b)=>String(b.createdAt||"").localeCompare(String(a.createdAt||""))),r.slice(0,e)}catch(n){return r.a.warn("LmsGetByConversation failed",n),[]}}async function P(){if(!S())return[];try{let n=await A();return n?await new Promise(e=>{let t=[];try{let r=n.transaction(d,"readonly").objectStore(d).openCursor();r.onsuccess=()=>{let n=r.result;if(n){let e=I(n.value.enc);e&&e.clientId&&("sending"===e.sendStatus||"failed"===e.sendStatus)&&t.push(e),n.continue()}else e(t)},r.onerror=()=>e(t)}catch(n){e(t)}}):[]}catch(n){return r.a.warn("LmsGetUnsent failed",n),[]}}let L={};function j(n){n&&!L[n]&&(L[n]=!0,setTimeout(()=>{L[n]=!1,async function(n){if(!S())return;try{let e=await A();if(!e)return;let t=await new Promise(t=>{let r=[],o=e.transaction(d,"readonly").objectStore(d).index(f).openCursor(IDBKeyRange.only(x+"|"+n));o.onsuccess=()=>{let n=o.result;n?(r.push({key:n.value.key,at:String(n.value.at||"")}),n.continue()):t(r)},o.onerror=()=>t(r)});if(t.length<=m)return;t.sort((a,b)=>a.at.localeCompare(b.at));let r=t.slice(0,t.length-m),o=e.transaction(d,"readwrite"),l=o.objectStore(d);for(let n of r)l.delete(n.key);await O(o)}catch(n){r.a.warn("LMS prune failed",n)}}(n)},4e3))}},function(n,e,t){"use strict";t.r(e);t(2).get("interchat:Avatar.vue");t(14);var r=t(204),o=(t(1),t(11)),l=t(12),c=t(0);t(2).get("interchat:Avatar.vue");var d={name:"avatarImage",components:{avatar:r.a},props:{fullname:{type:String,default:""},size:{type:Number,default:32},avatarId:Number,urlPrefix:{type:String,default:null},text:{type:String,default:""},iconSrc:{type:String,default:""}},computed:{...Object(o.c)({themeName:"themeName"}),prefix(){if(this.urlPrefix)return this.urlPrefix;if("undefined"!=typeof window&&window.location&&"file:"===window.location.protocol)return"file:///android_asset/www/";const base=this.$router&&this.$router.options?this.$router.options.base:"";return base?base.endsWith("/")?base:base+"/":"/"},imageUri(){if(!this.avatarId)return;let n=(this.avatarId<10?"0":"")+this.avatarId;return this.prefix+"gfx/avatar/"+n+".png"},iconUri(){return this.iconSrc?this.prefix+this.iconSrc:""},avatarStyle(){return{width:this.size+"px",height:this.size+"px",minWidth:this.size+"px",backgroundColor:this.color}},textCircleStyle(){return{width:this.size+"px",height:this.size+"px",minWidth:this.size+"px",backgroundColor:this.color,borderRadius:"50%",display:"inline-flex",alignItems:"center",justifyContent:"center",color:"#fff",fontWeight:"700",fontSize:Math.round(.36*this.size)+"px",lineHeight:"1"}},fullnameText(){return null===this.fullname||void 0===this.fullname?"":String(this.fullname).trim()},avatarColorKey(){const n=this.avatarLetters;return n.length>0?n.join(""):this.fullnameText},avatarLetters(){const text=this.fullnameText.trim();if(!text)return[];const n=text.split(/\s+/).map(n=>Array.from(n).filter(this.isAvatarLetter).join("")).filter(Boolean);if(n.length>=2)return[n[0][0],n[1][0]].map(this.normalizeAvatarLetter);const e=Array.from(n[0]||text);return e.length>2?[e[0],e[e.length-1]].map(this.normalizeAvatarLetter):e.map(this.normalizeAvatarLetter)},avatarFullname(){const n=this.avatarLetters;return n.length>=2?n[0]+" "+n[1]:this.fullnameText},color(){return this.themeName==l.x?this.toColorDark(this.avatarColorKey):this.toColorLight(this.avatarColorKey)}},methods:{logAvatarTrace(n){c.a.warn("USER_DISPLAY_TRACE avatar",{event:n,fullname:this.fullname,fullnameText:this.fullnameText,avatarFullname:this.avatarFullname,avatarLetters:this.avatarLetters,avatarId:this.avatarId,imageUri:this.imageUri,prefix:this.prefix,size:this.size,themeName:this.themeName,color:this.color})},onImageLoad(){this.logAvatarTrace("image-load")},onImageError(){this.logAvatarTrace("image-error")},isAvatarLetter:n=>/\p{L}/u.test(String(n||"")),normalizeAvatarLetter:n=>String(n||"").toUpperCase(),toColor(n,e){let t=0;if(!n)return"black";for(const e of n.split(""))t=(t<<8-t)+e.charCodeAt(0);let r=t,o=r%360;return o+=120,o>360&&(o-=360),r=Math.floor(r/360),`hsl(${o}, ${50+r%50}%, ${e}%`},toColorDark(n){return this.toColor(n,8)},toColorLight(n){return this.toColor(n,40)}}},f=(t(628),t(5)),component=Object(f.a)(d,function(){var n=this,e=n._self._c;return n.imageUri?e("img",{staticClass:"avatar-image avatar-no-select",style:n.avatarStyle,attrs:{src:n.imageUri,alt:"",draggable:"false"},on:{load:n.onImageLoad,error:n.onImageError}}):n.iconUri?e("img",{staticClass:"avatar-image avatar-no-select",style:n.avatarStyle,attrs:{src:n.iconUri,alt:"",draggable:"false"}}):n.text?e("div",{staticClass:"avatar-text-circle avatar-no-select",style:n.textCircleStyle},[n._v(n._s(n.text))]):e("avatar",{staticClass:"avatar-no-select",style:n.avatarStyle,attrs:{fullname:this.avatarFullname,size:this.size,color:n.color}})},[],!1,null,"a243a8d2",null);e.default=component.exports;installComponents(component,{Avatar:t(32).default})},,,function(n,e,t){"use strict";t.d(e,"c",function(){return c}),t.d(e,"b",function(){return f}),t.d(e,"a",function(){return m}),t.d(e,"d",function(){return h});var r=t(0);t(2).get("interchat:translate.ts");const o=!0,l="google-free";function c(){return o&&"off"!==l}let d="";function f(n){return n?String(n).toLowerCase().split(/[-_]/)[0]:""}function m(text,n){if(!text)return!0;let e=function(n){let e=f(n);return["ru","uk","be","bg","sr","mk","kk","ky","mn","tg"].indexOf(e)>=0?"cyr":["en","de","es","fr","it","pt","pl","nl","tr","id","cs","ro","sv","da","fi","nb"].indexOf(e)>=0?"lat":"other"}(n);if("other"===e)return!1;let t=function(text){let n=(text.match(/[Ѐ-ӿ]/g)||[]).length,e=(text.match(/[A-Za-z]/g)||[]).length;return 0===n&&0===e?"other":n>=e?"cyr":"lat"}(text);return"other"===t||t===e}async function h(text,n){if(d="",!c()||!text||!n)return d="disabled/empty",null;let e=f(n);return"google-free"===l?k(text,e):null}function v(n){let e=function(n){let e="undefined"!=typeof window?window:null;return e&&e.cordova&&e.cordova.exec?new Promise((t,r)=>{try{e.cordova.exec(n=>t({status:n&&n.status?n.status:0,text:n&&n.body?n.body:""}),n=>r(new Error(n?String(n):"native")),"NativeDevicePlugin","httpGet",[n])}catch(n){r(n)}}):null}(n);return e||new Promise((e,t)=>{try{let r=new XMLHttpRequest;r.open("GET",n,!0),r.timeout=12e3,r.onreadystatechange=function(){4===r.readyState&&e({status:r.status,text:r.responseText||""})},r.ontimeout=function(){t(new Error("timeout"))},r.onerror=function(){t(new Error("network"))},r.send()}catch(n){t(n)}})}const x=["translate.googleapis.com","clients5.google.com","translate.google.com"];async function k(text,n){let path="/translate_a/single?client=gtx&dt=t&sl=auto&tl="+encodeURIComponent(n)+"&q="+encodeURIComponent(text),e=[];for(let i=0;i=300){e.push(t+"="+r.status);continue}try{data=JSON.parse(r.text)}catch(n){e.push(t+"=parseFail");continue}if(!Array.isArray(data)||!Array.isArray(data[0])){e.push(t+"=badShape");continue}let o=data[0].map(n=>n&&n[0]?n[0]:"").join(""),l="string"==typeof data[2]?data[2]:"",c="number"==typeof data[6]?data[6]:0;return{text:o,sourceLang:f(l),targetLang:f(n),confidence:c}}catch(n){e.push(t+"="+(n&&n.message?n.message:"err"))}}return d=e.join(" "),r.a.warn("KT-0213 translate allFailed "+d),null}},,,function(n,e,t){"use strict";t.r(e),t.d(e,"SetIncomingFiles",function(){return w}),t.d(e,"HasIncomingFiles",function(){return y}),t.d(e,"TakeIncomingFiles",function(){return _}),t.d(e,"AppendIncomingFile",function(){return C}),t.d(e,"SetAutoFileSelect",function(){return I}),t.d(e,"GoToTransferToUser",function(){return A});t(2).get("interchat:users:transfer.vue");var r=t(0),o=t(60),l=t(11),c=t(10),d=t(138),f=t.n(d),m=t(64),h=t(19);t(2).get("interchat:users:transfer.vue");var v=function(n,e,t,desc){var r,o=arguments.length,l=o<3?e:null===desc?desc=Object.getOwnPropertyDescriptor(e,t):desc;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(n,e,t,desc);else for(var i=n.length-1;i>=0;i--)(r=n[i])&&(l=(o<3?r(l):o>3?r(e,t,l):r(e,t))||l);return o>3&&l&&Object.defineProperty(e,t,l),l};c.d.use(f.a);let x=null,k=!1;function w(n,e=!1){x=n,k=e}function y(){return!(!x||!x.length)}function _(){let n=x?Array.prototype.slice.call(x):[];return x=null,k=!1,n}let S=0;function C(n,e=!1){let t=Date.now(),r=x&&t-S<8e3?Array.prototype.slice.call(x):[];S=t,r.some(e=>e.name===n.name&&e.size===n.size)||r.push(n),x=r,k=e}let E=!1;function I(n){E=n}var T;function A(n){return{path:"/users/transfer",query:{userId:n}}}!function(n){n[n.SELECTING=0]="SELECTING",n[n.SENDING=1]="SENDING"}(T||(T={}));let O=class extends c.d{constructor(){super(...arguments),this.state=T.SELECTING,this.userId=null,this.fileList=null,this.fileSend=null}get fileFirst(){return this.fileList?this.fileList[0]:null}get user(){return this.userId&&this.users?this.users[this.userId]:null}get userNumber(){return Object(h.e)(this.user)}get isFileChoose(){return this.state==T.SELECTING}get isSending(){return this.state==T.SENDING}created(){this.userId=this.$route.query.userId,this.$parent.$emit("update:opponent",this.user),this.$parent.$emit("update:showBackButton",!0),this.$parent.$emit("update:showMenuButton",!1)}mounted(){if(x){this.fileList=x;let n=k;x=null,k=!1,n&&this.$nextTick(()=>this.doSend())}if(E){this.$refs.fileSelect.doClickFileInput(),E=!1}}handleDrop(data,n){n.preventDefault(),n.dataTransfer&&(this.fileList=n.dataTransfer.files)}doBack(){this.$store.dispatch("screen/restoreAppViewport"),this.$router.replace(Object(m.GoToChatWithUser)(this.userId)),this.$nextTick(()=>this.$store.dispatch("screen/restoreAppViewport")),setTimeout(()=>this.$store.dispatch("screen/restoreAppViewport"),250)}getFirstFile(){if(!this.fileList)return;let n=this.fileList[0];if(n){if(n.size)return n;alert("Can not send file with zero size")}}async doAbort(){this.fileSend=null,this.state=T.SELECTING}async doSend(){let n=this.getFirstFile();n&&(r.a.warn("ANDROID_SHARE_TRACE transfer doSend",{name:n.name,size:n.size,type:n.type}),this.state=T.SENDING,this.fileSend=n)}async onFinish(n,e){n&&e&&(await this.sendMessageToChat(n,e),await this.$store.dispatch("platformDevice/onFileUpload",{fileName:n.name,fileSize:n.size,fileContent:n}),this.fileSend=null,this.fileList=null,await this.$store.dispatch("screen/restoreAppViewport"),this.doBack())}async sendMessageToChat(n,e){if(!this.fileSend)throw new Error("need set fileSend");let t=this.userId,body=JSON.stringify({name:n.name,size:n.size,crypto:e});await this.$store.dispatch("sendMessageToOpponent",{opponentId:t,body:body,type:"file",silent:!1,crypt:!0})}onFileListChange(){this.state=T.SELECTING}onUserChanged(n){this.$parent.$emit("update:opponent",this.user)}};v([Object(c.e)("fileList")],O.prototype,"onFileListChange",null),v([Object(c.e)("user")],O.prototype,"onUserChanged",null),O=v([Object(c.a)({middleware:["auth"],computed:{...Object(l.b)({online:"online"}),...Object(l.c)("Users",{users:"users"})},components:{},layout:"back",transition:o.a})],O);var M=O,N=t(5),component=Object(N.a)(M,function(){var n=this,e=n._self._c;n._self._setupProxy;return e("div",{staticClass:"container border-t flex flex-1 h-full"},[e("drop",{staticClass:"w-full h-full flex flex-col items-center",on:{drop:n.handleDrop}},[e("h1",{staticClass:"font-hairline my-3 text-center"},[n._v(n._s(n.$t("Send file to user",{name:n.userNumber})))]),n._v(" "),n.fileSend?n._e():e("FileSelect",{ref:"fileSelect",staticClass:"w-full",attrs:{file_list:n.fileList},on:{"update:file_list":function(e){n.fileList=e},send:n.doSend,back:n.doBack}}),n._v(" "),n.fileSend?e("FileSending",{staticClass:"w-full",attrs:{file:n.fileSend},on:{abort:n.doAbort,finish:n.onFinish}}):n._e()],1)],1)},[],!1,null,"7a5a455a",null);e.default=component.exports;installComponents(component,{FileSelect:t(867).default,FileSending:t(869).default})},function(n,e,t){"use strict";t.r(e),t.d(e,"default",function(){return d});var r=t(8),o=t(0),l=t(29),c=t(86);t(2).get("interchat:FileShare:TransferMessages.ts");class d{static async signalDirectSend(n,e){return o.a.debug("send signal ",e),d.sendMessage({type:l.MessageType.SIGNAL,signal:e,userId:n})}static async sendMessage(n){return n&&(n.appInstanceId=Object(c.a)(),o.a.log("app instance id = ",n.appInstanceId)),o.a.debug("Send transfer-message",n),r.a.emitAsync("transfer-message",n)}static sendMessageRequest(n,e){return d.sendMessage({type:l.MessageType.REQUEST,userId:n,payload:e})}static sendMessageAnswer(n,e){return d.sendMessage({type:l.MessageType.ANSWER,userId:n,error:e})}static sendMessageAnswerSelf(n,e){return d.sendMessage({type:l.MessageType.ANSWER_SELF,userId:n,payload:e})}static sendMessageAscend(n){return d.sendMessage({type:l.MessageType.ASC,userId:n})}static sendMessageHung(n,e,t=void 0){return d.sendMessage({type:l.MessageType.HUNG,userId:n,error:t,reason:e})}static sendMessageDone(n){return d.sendMessage({type:l.MessageType.DONE,userId:n})}}d.REASON_BUSY="busy"},,,function(n,e,t){"use strict";t.d(e,"a",function(){return d}),t.d(e,"b",function(){return m}),t.d(e,"c",function(){return h});var r=t(0),o=t(9);t(2).get("interchat:localUserData");const l="local_user_name_";function c(n){let e=Object(o.c)()||"anon";return l+e+"_"+n}function d(n){let e={name:"",bg:""};try{let data=localStorage.getItem(c(n));data&&(e=JSON.parse(data))}catch(n){r.a.error("error user local ",n)}return e}function f(n,e){!function(n,data){localStorage.setItem(c(n),JSON.stringify(data))}(n,{...d(n),...e})}function m(n,e){f(n,{name:e})}function h(){let n={};try{let e=Object(o.c)()||"anon",t=l+e+"_";for(let i=0;i0&&(n[r]=data.name)}catch(n){}}}catch(n){r.a.error("UserLocalNamesGetAll error",n)}return n}},function(n,e,t){"use strict";t.d(e,"a",function(){return r}),t.d(e,"b",function(){return o});t(2).get("interchat:tools:TimerCollection.ts");class r{constructor(n,time){this.cb=n,this.interval=!1,this.timer=null,this.timeout=time}isStarted(){return null!=this.timer}start(){return this.interval?this.timer=setInterval(this.fired.bind(this),this.timeout):this.timer=setTimeout(this.fired.bind(this),this.timeout),this}repeat(){return this.interval=!0,this}fired(){this.interval||this.clear(),this.cb&&this.cb()}clear(){this.timer&&(this.interval?clearInterval(this.timer):clearTimeout(this.timer),this.timer=null)}}class o{constructor(){this.timers={}}addTimer(n,e){this.clearTimer(n),e.name=n,e.isStarted()||e.start(),this.timers[n]=e}clearTimer(n){const e=this.timers[n];e&&(e.clear(),delete this.timers[n])}clearAll(){for(const n in this.timers){if(!this.timers.hasOwnProperty(n))continue;this.timers[n].clear()}this.timers={}}}},function(n,e,t){"use strict";(function(n){t.d(e,"d",function(){return f}),t.d(e,"f",function(){return S}),t.d(e,"e",function(){return E}),t.d(e,"j",function(){return A}),t.d(e,"i",function(){return O}),t.d(e,"k",function(){return M}),t.d(e,"m",function(){return P}),t.d(e,"h",function(){return U}),t.d(e,"g",function(){return z}),t.d(e,"l",function(){return $}),t.d(e,"b",function(){return B}),t.d(e,"n",function(){return G}),t.d(e,"a",function(){return Q});t(14);var r=t(1),o=t(0),l=t(46),c=t(116);t(2).get("interchat:globalAudio.ts");let d,f;const m=!0,h=!1;function v(n,e=[]){try{const t="undefined"!=typeof window?window:null;t&&t.cordova&&t.cordova.exec&&t.cordova.exec(function(){},function(){},"NativeDevicePlugin",n,e)}catch(e){o.a.warn("nativeExec failed",n,e)}}function x(){try{const n="undefined"!=typeof window?window:null;if(!n||!n.cordova||!n.cordova.exec)return!1;const e="undefined"!=typeof navigator&&navigator.userAgent?navigator.userAgent:"";return/Android/i.test(e)}catch(n){return!1}}function k(){try{const n="undefined"!=typeof window?window:null;if(n&&n.cordova&&n.cordova.exec)return!1;const nav="undefined"!=typeof navigator?navigator:null;if(!nav)return!1;const e=nav.userAgent||"",t=/iPhone|iPod/i.test(e),r=/iPad/i.test(e)||/Macintosh/i.test(e)&&(nav.maxTouchPoints||0)>1;return t||r}catch(n){return!1}}o.a.log(" SOUND_USE_WEB_AUDIO = ",m),o.a.log(" process.env.SOUND_USE_WEB_AUDIO = ","1");let w="/";async function y(){if(d)return;d=document.createElement("audio"),d.setAttribute("class","hidden"),d.setAttribute("loop","1"),o.a.debug("globalPlayer play");let n=d.play();n&&n.then(()=>{o.a.debug("global player play")}).catch(n=>{let e=n.message;o.a.error("global player err ",e,n)}),document.body.appendChild(d),o.a.debug("globalPlayer set"),r.b.$emit(r.a.PLAYER_SET,{})}async function _(n){if(o.a.log("globalPlayerPlayStream"),d&&n){o.a.log("Play stream use player"),d.srcObject=n;try{let n=d.play();n&&await n}catch(n){o.a.error("startPlayerStream",n)}}else o.a.warn("globalPlayerPlayStream error no globalPlayer or stream")}async function S(){if(d)try{d.pause(),d.currentTime=0,d.src="",d.srcObject=null}catch(n){}}async function C(){f||(f=Object(l.e)(),f&&(o.a.debug("creating audio context state",f.state),"suspended"===f.state&&await f.resume(),await async function(n){V=n.createMediaStreamDestination(),await Promise.all(Object.keys(J).map(async e=>{let t=J[e];o.a.log("Load sound ",e,t);try{K[e]=await async function(n,e){o.a.log("Load sound url ",e);let t=(await Object(c.a)(e,{withCredentials:!1,responseType:"arraybuffer"})).response;return await n.decodeAudioData(t)}(n,t),o.a.log("Load sound finished ",e,t)}catch(n){o.a.error("Error createSoundBuffer ",t,"error = ",n)}})),o.a.log("Load sound finished")}(f),r.b.$emit(r.a.AUDIO_CONTEXT_SET,{})))}async function E(){await async function(){f&&(await f.close(),f=null)}(),await C()}e.c=async({app:n})=>{o.a.log("register EEvents.ACTIVATE handler"),n&&n.router&&n.router.options&&(w=n.router.options.base),r.b.$on(r.a.ACTIVATE,async({})=>{o.a.log("on EEvents.ACTIVATE for globalAudio"),await y(),m&&await C()})};n.env.DISABLE_OUTPUT_MIXER;let I,T;async function A(n){return o.a.log("outputStreamPlay"),h&&x()?(o.a.warn("KT-0090 voice via element (android)"),_(n)):m?(o.a.log("outputStreamPlay use WEb audio"),void(f&&(G(),M(),I=f.createMediaStreamSource(n),I&&(T=f.createGain(),I.connect(T),T.connect(f.destination),I.start&&I.start())))):(o.a.log("outputStreamPlay use Player"),_(n))}async function O(n){o.a.warn("KT-0206c outputPlayViaElementSpeaker (ios-web → loud)"),M(),await _(n)}async function M(){return h&&x()?S():m?(I&&(I.disconnect(),I=null),void(T&&(T.disconnect(),T=null))):S()}const N=!0;let R=null,D=null;function P(n){if(N&&k()&&m&&f&&n&&!R)try{"suspended"===f.state&&f.resume().catch(()=>{}),R=f.createMediaStreamSource(n),D=f.createGain(),D.gain.value=0,R.connect(D),D.connect(f.destination),o.a.warn("KT-0206 voiceSessionPrimeStart (ios-web outgoing earpiece)")}catch(n){o.a.error("KT-0206 voiceSessionPrimeStart failed",n),G()}}const L=!0,j=.012;let F=!1;function U(){F=!1}function z(n){try{if(!L||!k()||!f)return;if(F)return;const e=f,t="number"==typeof e.outputLatency?e.outputLatency:null;if(null==t||t>j)return;const track=n&&n.getAudioTracks&&n.getAudioTracks()[0];if(!track)return void o.a.warn("KT-0206b correct: no mic track");F=!0,o.a.warn("KT-0206b correct: SPEAKER, mute→unmute mic",{before:t}),track.enabled=!1,setTimeout(()=>{try{track.enabled=!0}catch(n){}setTimeout(()=>{const n="number"==typeof e.outputLatency?e.outputLatency:null;o.a.warn("KT-0206b correct: after",{before:t,after:n,route:null!=n&&n>j?"EAR":"SPEAKER"})},900)},200)}catch(n){o.a.warn("KT-0206b correct failed",n)}}async function $(){try{const n="undefined"!=typeof window?window:null,e=n&&(n.AudioContext||n.webkitAudioContext);if(!e)return null;let p=null;try{p=new e}catch(n){return null}try{"suspended"===p.state&&await p.resume()}catch(n){}await new Promise(n=>setTimeout(n,120));const t="number"==typeof p.outputLatency?p.outputLatency:null;try{await p.close()}catch(n){}return t}catch(n){return null}}function B(){const n=f,e=d,path=h&&x()||!m?"element(