{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/services/RoomService.js","webpack:///./src/services/Api.js","webpack:///./src/store/auth.js","webpack:///./src/store/participant.js","webpack:///./src/store/room.js","webpack:///./src/store/host-account.js","webpack:///./src/store/host-room.js","webpack:///./src/store/host-device.js","webpack:///./src/services/EventService.js","webpack:///./src/store/calendar.js","webpack:///./src/services/ParticipantLoginedService.js","webpack:///./src/store/auth-participant.js","webpack:///./src/store/participant-event.js","webpack:///./src/store/index.js","webpack:///./src/services/AccountService.js","webpack:///./src/services/ParticipantService.js","webpack:///./src/services/SocketServer.js","webpack:///./src/services/SendMail.js","webpack:///./src/services/UsersService.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","createAddressBook","params","token","Api","post","headers","deleteAddressBook","deletePartyMCU","deletePasscode","dialOut","dialOutByIPID","disconnectAllParty","disconnectAllPartyMCU","exportConferenceInfo","exportCDRSParties","fetchAddressBook","getBookedRooms","getConfPartyByMCU","getPartyInfoByMCU","getConferenceID","getConferenceIDList","getCurrentConferenceIdForAddText","getPartyPacketInfo","getRooms","getJointParticipants","getPartyShareContentStatus","getMCURoom","lockConference","muteAll","newPasscode","participantControl","setLayout","setLecturer","randomPasscode","removeBookedRooms","resetDefaultLayout","resetParticipantForcedLayout","resetShareContentParty","sendPassCode","setConfPartyControlByMCU","setConfAllPartyControlByMCU","setLayoutConfByMCU","setParticipantForcedLayout","setShareContent","setLecturerMCU","setVolumeMCU","setLayoutMCU","setAutoLayoutMCU","setCurrentConferenceIdForAddText","setListenVolumeMCU","startConference","unmuteAll","unsetLecturer","updatePartyDisplayName","updatePartyDisplayNameMCU","updateConferencePassMCU","updateBlockAudioMCU","axios","baseURL","checkTokenValid","decodedToken","jwt","decode","exp","Date","getTime","namespaced","state","localStorage","getItem","username","entityTag","profile","mutations","authSuccess","status","authError","logOut","setProfile","actions","logIn","user","commit","UsersService","res","setItem","catch","removeItem","clear","getProfile","fetchProfile","changePasswordUserDMA","userData","newUserData","updateUserDMAPassword","resendEmail","email","getters","isLoggedIn","userList","userListByAdmin","saveUserList","participants","map","newUser","keys","updateUserStatus","filter","deleteUser","resetUserList","deleteMultiUser","every","party","saveUserListByAdmin","getParticipants","rootState","auth","ParticipantService","lastName","disableParticipant","deleteParticipant","changePassword","changePass","deleteMultiParticipants","getParticipantsByAdmin","owner","searchParties","searchName","searchParticipants","roomList","conferenceId","roomId","jointParticipants","jointParticipantPackageList","addressBooks","conferenceHistory","conferenceIdentityList","JSON","parse","notExistedconferenceIdentityList","bookedRoomList","sortPartySetting","saveRoomList","room","newRoom","roomIdentifier","savePassCode","roomInfo","index","findIndex","id","passCode","saveConferenceId","saveJointParticipants","partyName","newPartyList","newParties","shareContentStatus","sort","user1","user2","newParticipant","partyLayoutContentList","hasPartyLayoutContentList","newParticipants","some","mem","endpointName","newPartyLayoutContentList","stringify","reloadLocalParticipants","newjointParticipants","participant","audioMute","updateParticipant","videoMute","removeParticipant","item","saveAddressBook","saveConferenceIdList","conference","newConf","updateConferenceIdByRoom","isAdded","find","meeting","displayName","setShareContentParticipants","saveBookedRooms","sortData","ONGOING_CONF_SORT_BY_NAME","ONGOING_CONF_SORT_BY_MIC","ONGOING_CONF_SORT_BY_VIDEO","ONGOING_CONF_SORT_BY_SIGNAL","ONGOING_CONF_SORT_BY_AUDIO_IN","ONGOING_CONF_SORT_BY_AUDIO_OUT","ONGOING_CONF_SORT_BY_VIDEO_IN","ONGOING_CONF_SORT_BY_VIDEO_OUT","ONGOING_CONF_SORT_BY_AUDIO_ENDPOINT","ONGOING_CONF_SORT_BY_AUDIO_BLOCK","ONGOING_CONF_SORT_BY_VOLUME","ONGOING_CONF_SORT_BY_LISTEN_VOLUME","ONGOING_CONF_SORT_BY_SPEAKER","ONGOING_CONF_SORT_BY_LECTURER","ONGOING_CONF_SORT_BY_EXCLUSIVE_CONTENT","ONGOING_CONF_SORT_BY_SHARE_CONTENT","ONGOING_CONF_SORT_BY_HANDUP","ONGOING_CONF_SORT_BY_ORDER","ONGOING_CONF_SORT_BY_CONTENT_IN","ONGOING_CONF_SORT_BY_CONTENT_OUT","ONGOING_CONF_SORT_BY_CONNECTION_STATUS","props","split","party1","party2","party1Val","reduce","acc","prop","party2Val","String","localeCompare","numeric","saveJointParticipantsMCU","realtimeHandup","includes","firstName","newParty","isHandup","Utils","latinify","saveJointPartyInfo","partyId","info","saveNotExistedConferenceIdList","RoomService","rooms","dispatch","muteAudio","conferenceID","newAudioMute","newaudioControl","participantId","control","muteVideo","newVideoMute","newVideoControl","roomID_MCU","host_MCU","setDialOut","dialOutInfo","newDialogInfo","layoutInfo","lecturerInfo","getAddressBook","addressbook","newAddressBook","addressBookId","getConferenceIdByAddressBook","unLockConference","getConferenceIdList","dataRes","conferences","conf","isExisted","notExistedRoomList","getJointParticipantsByConfId","setShareContentParticipant","partyID","list","resetShareContentByParticipant","setPartyLayout","layout","resetPartyLayout","changeDisplayNameParty","rootGetters","muteAudioMCU","otherControl","muteVideoMCU","muteAllMCU","isAllAudioMute","newAudioControl","disconnectPartyMCU","setLayoutConfMCU","getPartyPacket","participantName","changeDisplayNamePartyMCU","updateConferencePasswordMCU","confPassword","audioBlockStatus","volume","time","setDialOutByIPID","executiveAccounts","executiveAccountStatus","accounts","lockedRMParties","saveExecutiveAccounts","saveAccounts","saveAccount","accountData","account","_id","saveConferenceHistory","saveExecutiveRoomAccountStatus","saveParticipants","newParticipantsData","disabled","locked","updateParticipantStatus","userOwner","removeAccount","resetParticipantListAtAdmin","deleteMultiUserByAdmin","saveLockedParties","fetchAccountList","AccountService","users","updateAccount","deleteParticipantsByAdmin","deleteAccount","disableParticipantWithOwner","exportConferenceHistory","exportConferenceLog","getAllParticipants","owners","fetchAllParticipants","getConferenceHistory","getExecutiveAccounts","docs","getExecutiveRooms","getExecutiveAccountStatus","getParticipantsWithUsername","fetchParticipantWithUserName","getLockedRMParties","parties","searchParticipantWithUserName","setExecutiveAccountStatus","unlockRMParty","updatePWAccount","changePassAccount","saveRooms","createRoom","maxParty","pool","template","deleteRoom","fetchRoomList","updateRoom","devices","saveDevices","fetchDevices","fetchDevicesByUser","nameList","createEvent","fetchEvents","removeEvent","updateEvent","getEventId","fetchEventsByParticipant","events","searchEvents","addEvent","payload","start","end","title","date","setSearchEvents","saveEvents","EventService","newEvent","eventId","getConference","participantLogIn","updatePassword","participantToken","participantHost","updateHandup","logInParticipant","ParticipantLoginedService","host","logOutParticipant","authParticipant","Vue","use","VueX","Store","hostAccount","hostRoom","hostDevice","calendar","participantEvent","plugins","VuexLocalStorage","fetchTemplateAndPool","createParticipant","createMultiParticipants","SocketServer","sendMail","contact","getCaptcha","signUp","signUpByAdmin","confirmation"],"mappings":"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","file":"js/app~3e511cab.6d1c64f1.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app~3e511cab\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app~3e511cab\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-091bff70\":\"60168003\",\"chunk-27064f9f\":\"179d1981\",\"chunk-2d0b2aaa\":\"e976dbfe\",\"chunk-2d0e97b4\":\"9bb8ae05\",\"chunk-2d225c3f\":\"306a4ec9\",\"chunk-2d22c6d7\":\"9895e1bd\",\"chunk-37f162c7\":\"1a9815be\",\"chunk-5e051832\":\"8f5cc320\",\"chunk-2d237151\":\"b87540b6\",\"chunk-33e59c80\":\"99b0582a\",\"chunk-4221b8bf\":\"6645cdee\",\"chunk-45d18e2b\":\"cce7bd4e\",\"chunk-48ca490b\":\"3ec47610\",\"chunk-5ccb88e9\":\"73a46ccc\",\"chunk-6f1f6534\":\"a2eeffbe\",\"chunk-72f6fea2\":\"33e71c7c\",\"chunk-751ca57d\":\"fc7f6eea\",\"chunk-4027fb9a\":\"6fcbb3c2\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-091bff70\":1,\"chunk-27064f9f\":1,\"chunk-37f162c7\":1,\"chunk-5e051832\":1,\"chunk-33e59c80\":1,\"chunk-4221b8bf\":1,\"chunk-45d18e2b\":1,\"chunk-48ca490b\":1,\"chunk-5ccb88e9\":1,\"chunk-6f1f6534\":1,\"chunk-72f6fea2\":1,\"chunk-751ca57d\":1,\"chunk-4027fb9a\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-091bff70\":\"fa0218fe\",\"chunk-27064f9f\":\"da57431b\",\"chunk-2d0b2aaa\":\"31d6cfe0\",\"chunk-2d0e97b4\":\"31d6cfe0\",\"chunk-2d225c3f\":\"31d6cfe0\",\"chunk-2d22c6d7\":\"31d6cfe0\",\"chunk-37f162c7\":\"4ad3dfab\",\"chunk-5e051832\":\"906cf27a\",\"chunk-2d237151\":\"31d6cfe0\",\"chunk-33e59c80\":\"db85b8ef\",\"chunk-4221b8bf\":\"f51b2b38\",\"chunk-45d18e2b\":\"00bedf17\",\"chunk-48ca490b\":\"e0df0006\",\"chunk-5ccb88e9\":\"a98d42b0\",\"chunk-6f1f6534\":\"8ee5ac7e\",\"chunk-72f6fea2\":\"9efaefb1\",\"chunk-751ca57d\":\"a51df8df\",\"chunk-4027fb9a\":\"dda3a7c4\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([10,\"chunk-vendors~0f485567\",\"chunk-vendors~ac0f77ce\",\"chunk-vendors~82b88a00\",\"chunk-vendors~2a42e354\",\"chunk-vendors~1659e841\",\"chunk-vendors~33a18b39\",\"chunk-vendors~38d28a58\",\"chunk-vendors~5bb1f863\",\"chunk-vendors~5765b494\",\"chunk-vendors~7e5e8261\",\"chunk-vendors~70205952\",\"chunk-vendors~3fd49b24\",\"chunk-vendors~b5906859\",\"chunk-vendors~db300d2f\",\"chunk-vendors~aeb57120\",\"chunk-vendors~5f913f5d\",\"chunk-vendors~70aabc29\",\"chunk-vendors~77bf5e45\",\"chunk-vendors~9c5b28f6\",\"chunk-vendors~56e1be11\",\"chunk-vendors~724d3aa1\",\"chunk-vendors~399b027d\",\"chunk-vendors~e258e298\",\"chunk-vendors~d22b72d1\",\"chunk-vendors~8eeb4602\",\"chunk-vendors~7db804d5\",\"chunk-vendors~15f0789d\",\"chunk-vendors~cc99a214\",\"chunk-vendors~f9ca8911\",\"chunk-vendors~ec8c427e\",\"chunk-vendors~cfbf0a2e\",\"chunk-vendors~fdc6512a\",\"chunk-vendors~f170b6bb\",\"chunk-vendors~64329337\",\"chunk-vendors~be033a10\",\"chunk-vendors~f5586520\",\"chunk-vendors~4a8239e8\",\"chunk-vendors~bc9d1275\",\"chunk-vendors~d2305125\",\"app~748942c6\",\"app~7cf4f994\",\"app~e7080f8c\",\"app~5a11b65b\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import Api from \"@/services/Api\";\n\nexport default {\n createAddressBook (params, token) {\n return Api().post(\"/create-addressbook\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n deleteAddressBook (params, token) {\n return Api().post(\"/remove-addressbook\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n deletePartyMCU (params, token) {\n return Api().post(\"/mcu/delete-party\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n deletePasscode (params, token) {\n return Api().post(\"/new-passcode\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n dialOut (params, token) {\n return Api().post(\"/dial-out\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n dialOutByIPID(params, token) {\n return Api().post('/mcu/dial-out-ip-id', params, {\n headers: { \"x-access-token\": token }\n })\n },\n disconnectAllParty(params, token) {\n return Api().post(\"/end-all-participants\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n disconnectAllPartyMCU(params, token) {\n return Api().post(\"/mcu/end-all-participants\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n exportConferenceInfo(params, token) {\n return Api().post('/export-conference-info', params, {\n headers: { \"x-access-token\": token }\n })\n },\n exportCDRSParties(params, token) {\n return Api().post('/mcu/export-crds', params, {\n headers: { \"x-access-token\": token }\n })\n },\n fetchAddressBook (params, token) {\n return Api().post(\"/list-addressbook\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n getBookedRooms(params, token) {\n return Api().post(\"/get-booked-room\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n getConfPartyByMCU(params, token) {\n return Api().post('/mcu/conference-participants', params, {\n headers: { \"x-access-token\": token }\n })\n },\n getPartyInfoByMCU(params, token) {\n return Api().post('/mcu/party-info', params, {\n headers: { \"x-access-token\": token }\n })\n },\n getConferenceID (params, token) {\n return Api().post(\"/conferences-id\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n getConferenceIDList(params, token) {\n return Api().post(\"/conferences-id-by-rooms\", params, {\n headers: { \"x-access-token\": token }\n })\n },\n getCurrentConferenceIdForAddText(params, token) {\n return Api().post('/mcu/get-current-conference-id', params, {\n headers: { \"x-access-token\": token }\n })\n },\n getPartyPacketInfo(params, token) {\n return Api().post(\"/get-party-packet-info\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n getRooms (params, token) {\n return Api().post(\"/conference-rooms\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n getJointParticipants (params, token) {\n return Api().post(\"/mcu/conference-participants\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n getPartyShareContentStatus(params, token) {\n return Api().post('/get-current-party-sharing', params, {\n headers: { \"x-access-token\": token }\n })\n },\n getMCURoom(params, token) {\n return Api().post('/mcu/conference-id', params, {\n headers: { \"x-access-token\": token }\n })\n },\n lockConference (params, token) {\n return Api().post(\"/lock-conference\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n muteAll (params, token) {\n return Api().post(\"/mute-all\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n newPasscode (params, token) {\n return Api().post(\"/new-passcode\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n participantControl (params, token) {\n return Api().post(\"/participant-control\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n setLayout (params, token) {\n return Api().post(\"/layout\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n setLecturer (params, token) {\n return Api().post(\"/lecturer\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n randomPasscode (params, token) {\n return Api().post(\"/random-passcode\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n removeBookedRooms(params, token) {\n return Api().post(\"/remove-booked-room\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n resetDefaultLayout (params, token) {\n return Api().post(\"/reset-layout\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n resetParticipantForcedLayout(params, token) {\n return Api().post(\"/reset-participant-forced-layout\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n resetShareContentParty (params, token) {\n return Api().post(\"/reset-share-content\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n sendPassCode(params, token) {\n return Api().post(\"/send-passcode-to-participants\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n setConfPartyControlByMCU(params, token) {\n return Api().post('/mcu/participant-control', params, {\n headers: { \"x-access-token\": token }\n })\n },\n setConfAllPartyControlByMCU(params, token) {\n return Api().post('/mcu/mute-and-unmute-all', params, {\n headers: { \"x-access-token\": token }\n })\n },\n setLayoutConfByMCU(params, token) {\n return Api().post('/mcu/set-video-layout', params, {\n headers: { \"x-access-token\": token }\n })\n },\n setParticipantForcedLayout(params, token) {\n return Api().post(\"/set-participant-forced-layout\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n setShareContent (params, token) {\n return Api().post(\"/share-content-by-participant\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n setLecturerMCU (params, token) {\n return Api().post(\"/mcu/lecturer\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n setVolumeMCU(params, token) {\n return Api().post('/mcu/set-volume', params, {\n headers: { \"x-access-token\": token }\n })\n },\n setLayoutMCU(params, token) {\n return Api().post('/mcu/set-layout', params, {\n headers: { \"x-access-token\": token }\n })\n },\n setAutoLayoutMCU(params, token) {\n return Api().post('/mcu/set-autoLayout', params, {\n headers: { \"x-access-token\": token }\n })\n },\n setCurrentConferenceIdForAddText(params, token) {\n return Api().post('/mcu/set-text-conference', params, {\n headers: { \"x-access-token\": token }\n })\n },\n setListenVolumeMCU(params, token) {\n return Api().post('/mcu/set-listen-volume', params, {\n headers: { \"x-access-token\": token }\n })\n },\n startConference (params, token) {\n return Api().post(\"/start-conference\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n unmuteAll (params, token) {\n return Api().post(\"/unmute-all\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n unsetLecturer (params, token) {\n return Api().post(\"/lecturer\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n updatePartyDisplayName(params, token) {\n return Api().post('/update-display-name-participant', params, {\n headers: { \"x-access-token\": token }\n })\n },\n updatePartyDisplayNameMCU(params, token) {\n return Api().post('/mcu/update-display-name-participant', params, {\n headers: { \"x-access-token\": token }\n })\n },\n updateConferencePassMCU(params, token) {\n return Api().post('/mcu/update-conference-password', params, {\n headers: { \"x-access-token\": token }\n })\n },\n updateBlockAudioMCU(params, token) {\n return Api().post('/mcu/block-audio', params, {\n headers: { \"x-access-token\": token }\n })\n },\n}\n","import axios from \"axios\";\n\nexport default () => {\n return axios.create({\n\tbaseURL: `//vvcroom-portal.viettel.vn/api`\n\t//baseURL: `http://27.71.113.147:4005`\n\t\n });\n};","import jwt from \"jsonwebtoken\";\n\nimport UsersService from \"@/services/UsersService\";\n\nfunction checkTokenValid (token) {\n if (token) {\n const decodedToken = jwt.decode(token);\n return decodedToken && decodedToken.exp * 1000 > new Date().getTime();\n }\n}\n\nexport default {\n namespaced: true,\n state: {\n token: localStorage.getItem(\"usertoken\") || \"\",\n username: localStorage.getItem(\"username\") || \"\",\n entityTag: localStorage.getItem(\"entityTag\") || \"\",\n profile: null\n },\n mutations: {\n authSuccess (state, { token, username, entityTag }) {\n state.status = \"success\";\n state.token = token;\n state.username = username;\n state.entityTag = entityTag;\n },\n authError (state) {\n state.status = \"error\";\n },\n logOut (state) {\n state.token = \"\";\n state.username = \"\";\n },\n setProfile (state, profile) {\n state.profile = { ...profile };\n }\n },\n actions: {\n logIn ({ commit }, user) {\n return UsersService.logIn(user)\n .then(res => {\n const status = res.data.status || false;\n if (status) {\n const token = res.data.token || \"\";\n const decode = jwt.decode(token);\n localStorage.setItem(\"usertoken\", token);\n localStorage.setItem(\"username\", decode.username);\n localStorage.setItem(\"entityTag\", decode.entityTag);\n commit(\"authSuccess\", {\n token,\n username: decode.username,\n entityTag: decode.entityTag\n });\n }\n return res;\n })\n .catch(() => {\n commit(\"authError\");\n localStorage.removeItem(\"usertoken\");\n });\n },\n logOut ({ commit }) {\n return new Promise(resolve => {\n commit(\"logOut\");\n localStorage.clear();\n resolve();\n });\n },\n async getProfile ({ state, commit }) {\n const { username, token } = state || {};\n if (username) {\n try {\n const res = await UsersService.fetchProfile({ username }, token);\n if (res.data.status) {\n commit(\"setProfile\", res.data.user);\n }\n return res;\n } catch (err) {\n throw new Error(err);\n }\n }\n },\n async changePasswordUserDMA ({ state }, userData) {\n const { entityTag, token } = state;\n const newUserData = { ...userData };\n newUserData.user.entityTag = entityTag;\n if (entityTag) {\n try {\n const res = await UsersService.updateUserDMAPassword(\n newUserData,\n token\n );\n return res;\n } catch (err) {\n throw new Error(err);\n }\n }\n },\n resendEmail (undefined, email) {\n UsersService.resendEmail(email).then(res => {\n return res;\n });\n }\n },\n getters: {\n isLoggedIn: state => checkTokenValid(state.token)\n // isLoggedIn: state => !!state.token && checkTokenValid(state.token),\n }\n};\n","import ParticipantService from \"@/services/ParticipantService\";\n\nexport default {\n namespaced: true,\n state: {\n userList: null,\n userListByAdmin: null\n },\n mutations: {\n saveUserList (state, userList) {\n state.userList = userList.participants.map(user => {\n const newUser = { ...user }\n for (const key of Object.keys(newUser)) {\n newUser[key] = newUser[key][0]\n }\n return newUser;\n });\n },\n updateUserStatus (state, newUser) {\n state.userList = [newUser, ...state.userList.filter(user => user.name !== newUser.name)]\n },\n deleteUser (state, username) {\n if (state.userList) {\n state.userList = [...state.userList.filter(user => user.name !== username)]\n }\n },\n resetUserList(state) {\n state.userList = null\n },\n deleteMultiUser (state, participants) {\n if (state.userList) {\n state.userList = [...state.userList.filter(user => {\n return participants.every(party => {\n return party.name !== user.name\n })\n })]\n }\n },\n saveUserListByAdmin (state, userList) {\n state.userListByAdmin = userList&&userList.participants&&userList.participants.map(user => {\n const newUser = { ...user }\n for (const key of Object.keys(newUser)) {\n newUser[key] = newUser[key][0]\n }\n return newUser;\n })||[];\n },\n },\n actions: {\n async getParticipants ({ commit, rootState, state }, entityTag) {\n const token = rootState.auth.token\n try {\n const res = await ParticipantService.getParticipants({ lastName: entityTag }, token)\n commit('saveUserList', res.data)\n return state.userList;\n } catch (err) {\n throw new Error(err)\n }\n },\n disableParticipant ({ commit, rootState, state }, user) {\n const token = rootState.auth.token\n return ParticipantService.disableParticipant({ user: user }, token).then(() => {\n commit('updateUserStatus', user)\n return state.userList;\n }).catch((err) => {\n throw new Error(err)\n })\n },\n deleteParticipant ({ commit, rootState }, params) {\n const token = rootState.auth.token\n return ParticipantService.deleteParticipant(params, token).then((res) => {\n if (res.data.status) {\n commit('deleteUser', params.name)\n }\n return res;\n }).catch((err) => {\n throw new Error(err)\n })\n },\n changePassword ({ rootState }, user) {\n const token = rootState.auth.token\n return ParticipantService.changePass({ user: user }, token).then(res => {\n return res;\n }).catch((err) => {\n throw new Error(err)\n })\n },\n deleteMultiParticipants({commit, rootState}, params) {\n const token = rootState.auth.token\n return ParticipantService.deleteMultiParticipants(params, token).then((res) => {\n if (res.data.status) {\n commit('deleteMultiUser', params.participants)\n }\n return res;\n }).catch((err) => {\n throw new Error(err)\n })\n },\n async getParticipantsByAdmin ({ commit, rootState, state }) {\n const token = rootState.auth.token\n const owner = rootState.auth.username\n try {\n const res = await ParticipantService.getParticipantsByAdmin({ owner }, token)\n commit('saveUserListByAdmin', res.data)\n return state.userListByAdmin;\n } catch (err) {\n throw new Error(err)\n }\n },\n async searchParties ({ commit, rootState }, params) {\n const token = rootState.auth.token\n const lastName = rootState.auth.entityTag\n const searchName = params\n try {\n const res = await ParticipantService.searchParticipants({ lastName, searchName }, token)\n commit('saveUserList', res.data)\n return res;\n } catch (err) {\n throw new Error(err)\n }\n },\n }\n}","import RoomService from \"../services/RoomService\";\nimport {\n ONGOING_CONF_SORT_BY_NAME, ONGOING_CONF_SORT_BY_MIC, ONGOING_CONF_SORT_BY_VIDEO, ONGOING_CONF_SORT_BY_SIGNAL, ONGOING_CONF_SORT_BY_AUDIO_IN, ONGOING_CONF_SORT_BY_AUDIO_OUT, ONGOING_CONF_SORT_BY_VIDEO_IN, ONGOING_CONF_SORT_BY_VIDEO_OUT,ONGOING_CONF_SORT_BY_AUDIO_ENDPOINT, ONGOING_CONF_SORT_BY_AUDIO_BLOCK, ONGOING_CONF_SORT_BY_VOLUME, ONGOING_CONF_SORT_BY_LISTEN_VOLUME, ONGOING_CONF_SORT_BY_SPEAKER, ONGOING_CONF_SORT_BY_LECTURER, ONGOING_CONF_SORT_BY_EXCLUSIVE_CONTENT, ONGOING_CONF_SORT_BY_SHARE_CONTENT, ONGOING_CONF_SORT_BY_HANDUP,ONGOING_CONF_SORT_BY_ORDER, ONGOING_CONF_SORT_BY_CONTENT_IN, ONGOING_CONF_SORT_BY_CONTENT_OUT, ONGOING_CONF_SORT_BY_CONNECTION_STATUS\n} from '../config'\nimport Utils from '../components/shared/Utils'\n\nexport default {\n namespaced: true,\n state: {\n roomList: null,\n conferenceId: null,\n roomId: localStorage.getItem(\"roomId\") || null,\n jointParticipants: [],\n jointParticipantPackageList: [],\n addressBooks: null,\n conferenceHistory: null,\n conferenceIdentityList: JSON.parse(localStorage.getItem(\"conferenceList\"))||[],\n notExistedconferenceIdentityList: null,\n bookedRoomList: [],\n sortPartySetting: null\n },\n mutations: {\n saveRoomList (state, roomList) {\n state.roomList = [...roomList].map(room => {\n const newRoom = { ...room };\n\n for (const key of Object.keys(newRoom)) {\n newRoom[key] = newRoom[key][0];\n }\n return newRoom;\n });\n\n if (state.roomList[0]) {\n localStorage.roomId = state.roomList[0].roomIdentifier;\n }\n },\n savePassCode (state, roomInfo) {\n const index = state.roomList.findIndex(\n room => room.roomIdentifier === roomInfo.room.id\n );\n state.roomList[index].passCode = roomInfo.room.passCode;\n },\n saveConferenceId (state, { conferenceId = null, roomId }) {\n state.roomId = roomId;\n state.conferenceId = conferenceId;\n },\n saveJointParticipants (state, { conferenceId, participants = null, partyName = null }) {\n if(!participants.length) return;\n const newPartyList = [...participants]\n const newParties = newPartyList.map(party => {\n return {...party, shareContentStatus: false}\n })\n state.jointParticipants = [...newParties]\n if(!state.sortPartySetting) {\n state.jointParticipants = newParties.sort((user1, user2) => {\n return user1.name < user2.name ? -1 : 1;\n });\n }\n if(partyName) {\n state.jointParticipants = [...state.jointParticipants.map(party => {\n let newParticipant = { ...party};\n if(newParticipant.name === partyName) {\n newParticipant.shareContentStatus = true\n }\n return newParticipant\n })];\n }\n\n // get set local party layout\n\n const partyLayoutContentList = JSON.parse(localStorage.getItem('partyLayoutJointParticipants'))\n\n const hasPartyLayoutContentList = () => {\n if(partyLayoutContentList) {\n if(conferenceId !== partyLayoutContentList.conferenceId) {\n localStorage.removeItem('partyLayoutJointParticipants')\n return false\n }\n return true\n }\n return false\n }\n // remove left participant in localstorage\n if(state.jointParticipants.length) {\n if(hasPartyLayoutContentList()) {\n const newParticipants = partyLayoutContentList.participants.filter(party => {\n return state.jointParticipants.some(mem => mem.endpointName === party.endpointName)\n })\n const newPartyLayoutContentList = {\n ...partyLayoutContentList,\n participants: newParticipants\n }\n localStorage.setItem('partyLayoutJointParticipants', JSON.stringify(newPartyLayoutContentList))\n }\n } else {\n localStorage.removeItem('partyLayoutJointParticipants')\n }\n },\n reloadLocalParticipants (state, status) {\n const newjointParticipants = [...state.jointParticipants].map(\n participant => {\n participant.audioMute = status;\n return participant;\n }\n );\n state.jointParticipants = [...newjointParticipants];\n },\n updateParticipant (state, participant) {\n state.jointParticipants = [...state.jointParticipants.map((party) => {\n if(party.id === participant.id) {\n party.audioMute = participant.audioMute\n party.videoMute = participant.videoMute\n }\n return party\n })];\n },\n removeParticipant (state, participant) {\n state.jointParticipants = [...state.jointParticipants].filter(\n item => item.id !== participant.id\n );\n },\n saveAddressBook (state, addressBooks) {\n state.addressBooks = addressBooks;\n },\n saveConferenceIdList(state, data) {\n state.conferenceIdentityList = [...data.map((conference, index) => {\n const newConf = conference\n newConf.id = index\n return newConf\n }) || []]\n },\n updateConferenceIdByRoom(state, data) {\n const isAdded = state.conferenceIdentityList.find(meeting => {\n return meeting.roomId === data.roomId\n })\n state.conferenceIdentityList = isAdded ? [...state.conferenceIdentityList.map((meeting, index) => {\n const newConf = meeting\n if(newConf.roomId === data.roomId) {\n newConf.conferenceId = data.conferenceId\n }\n newConf.displayName = `room ${index+1}`\n return newConf\n })] : [...state.conferenceIdentityList, {...data, displayName: `room ${state.conferenceIdentityList.length+1}`}]\n },\n setShareContentParticipants(state, data) {\n state.jointParticipants = [...data]\n },\n saveBookedRooms(state, data) {\n state.bookedRoomList = data\n },\n sortData(state, data) {\n state.sortPartySetting = {...data}\n let type = ''\n if(data.type === ONGOING_CONF_SORT_BY_NAME) {\n type = 'name';\n }\n if(data.type === ONGOING_CONF_SORT_BY_MIC) {\n type = \"audioMute\"\n }\n if(data.type === ONGOING_CONF_SORT_BY_VIDEO) {\n type = \"videoMute\"\n }\n if(data.type === ONGOING_CONF_SORT_BY_SIGNAL) {\n type = \"signalingProtocol\"\n }\n if(data.type === ONGOING_CONF_SORT_BY_AUDIO_IN) {\n type = \"audio_in.fractionLossPeak\"\n }\n if(data.type === ONGOING_CONF_SORT_BY_AUDIO_OUT) {\n type = \"audio_out.fractionLossPeak\"\n }\n if(data.type === ONGOING_CONF_SORT_BY_VIDEO_IN) {\n type = \"video_in.fractionLossPeak\"\n }\n if(data.type === ONGOING_CONF_SORT_BY_VIDEO_OUT) {\n type = \"video_out.fractionLossPeak\"\n }\n if(data.type === ONGOING_CONF_SORT_BY_AUDIO_ENDPOINT) {\n type = ONGOING_CONF_SORT_BY_AUDIO_ENDPOINT\n }\n if(data.type === ONGOING_CONF_SORT_BY_AUDIO_BLOCK) {\n type = ONGOING_CONF_SORT_BY_AUDIO_BLOCK\n }\n if(data.type === ONGOING_CONF_SORT_BY_VOLUME) {\n type = ONGOING_CONF_SORT_BY_VOLUME\n }\n if(data.type === ONGOING_CONF_SORT_BY_LISTEN_VOLUME) {\n type = ONGOING_CONF_SORT_BY_LISTEN_VOLUME\n }\n if(data.type === ONGOING_CONF_SORT_BY_SPEAKER) {\n type = ONGOING_CONF_SORT_BY_SPEAKER\n }\n if(data.type === ONGOING_CONF_SORT_BY_LECTURER) {\n type = ONGOING_CONF_SORT_BY_LECTURER\n }\n if(data.type === ONGOING_CONF_SORT_BY_EXCLUSIVE_CONTENT) {\n type = ONGOING_CONF_SORT_BY_EXCLUSIVE_CONTENT\n }\n if(data.type === ONGOING_CONF_SORT_BY_SHARE_CONTENT) {\n type = ONGOING_CONF_SORT_BY_SHARE_CONTENT\n }\n if(data.type === ONGOING_CONF_SORT_BY_HANDUP) {\n type = ONGOING_CONF_SORT_BY_HANDUP\n }\n if(data.type === ONGOING_CONF_SORT_BY_ORDER) {\n type = ONGOING_CONF_SORT_BY_ORDER\n }\n if(data.type === ONGOING_CONF_SORT_BY_CONTENT_IN) {\n type = \"content_in.fractionLossPeak\"\n }\n if(data.type === ONGOING_CONF_SORT_BY_CONTENT_OUT) {\n type = \"content_out.fractionLossPeak\"\n }\n if(data.type === ONGOING_CONF_SORT_BY_CONNECTION_STATUS) {\n type = ONGOING_CONF_SORT_BY_CONNECTION_STATUS\n }\n const props = type.split('.')\n if(data.value === 'asc') {\n state.jointParticipants = [...state.jointParticipants.sort((party1, party2) => {\n const party1Val = props.reduce((acc, prop) => {\n acc = acc[prop]\n return acc\n }, party1)\n const party2Val = props.reduce((acc, prop) => {\n acc = acc[prop]\n return acc\n }, party2)\n return String(party1Val).localeCompare(String(party2Val), 'en', {numeric: true})\n }).map((party, index) => {\n return {\n ...party,\n index: index+1,\n }\n })]\n } else {\n state.jointParticipants = [...state.jointParticipants.sort((party1, party2) => {\n const party1Val = props.reduce((acc, prop) => {\n acc = acc[prop]\n return acc\n }, party1)\n const party2Val = props.reduce((acc, prop) => {\n acc = acc[prop]\n return acc\n }, party2)\n return String(party2Val).localeCompare(String(party1Val), 'en', {numeric: true})\n }).map((party, index) => {\n return {\n ...party,\n index: index+1,\n }\n })]\n }\n },\n saveJointParticipantsMCU (state, { conferenceId, participants = null, realtimeHandup }) {\n const newPartyList = [...participants]\n const newParties = newPartyList.map((party) => {\n const newParticipant = realtimeHandup&&realtimeHandup.find(data => {\n return party.name&&party.name.includes(data.firstName);\n });\n const newParty = { ...party };\n newParty.isHandup = newParticipant ? newParticipant.isHandup : false;\n return {...newParty}\n })\n state.jointParticipants = [...newParties]\n\n if(!state.sortPartySetting) {\n state.jointParticipants = newParties.sort((user1, user2) => {\n return user1.name&&user2.name&&Utils.latinify(user1.name).localeCompare(Utils.latinify(user2.name), 'en');\n })\n }\n\n state.jointParticipants = state.jointParticipants.map((party, index) => {\n return {\n index: index+1,\n ...party\n }\n })\n\n // get set local party layout\n const partyLayoutContentList = JSON.parse(localStorage.getItem('partyLayoutJointParticipants'))\n\n const hasPartyLayoutContentList = () => {\n if(partyLayoutContentList) {\n if(conferenceId !== partyLayoutContentList.conferenceId) {\n localStorage.removeItem('partyLayoutJointParticipants')\n return false\n }\n return true\n }\n return false\n }\n // remove left participant in localstorage\n if(state.jointParticipants.length) {\n if(hasPartyLayoutContentList()) {\n const newParticipants = partyLayoutContentList.participants.filter(party => {\n return state.jointParticipants.some(mem => mem.endpointName === party.endpointName)\n })\n const newPartyLayoutContentList = {\n ...partyLayoutContentList,\n participants: newParticipants\n }\n localStorage.setItem('partyLayoutJointParticipants', JSON.stringify(newPartyLayoutContentList))\n }\n } else {\n localStorage.removeItem('partyLayoutJointParticipants')\n }\n },\n saveJointPartyInfo(state, data) {\n const index = state.jointParticipants.findIndex(party => party.id === data.partyId)\n state.jointParticipantPackageList[index] = { ...state.jointParticipants[index], ...data.info }\n },\n saveNotExistedConferenceIdList(state, data) {\n state.notExistedconferenceIdentityList = data\n }\n },\n actions: {\n getRooms ({ rootState, commit }, username) {\n return RoomService.getRooms(\n { owner: username },\n rootState.auth.token\n ).then(res => {\n if (res.data.status) {\n commit(\"saveRoomList\", res.data.rooms);\n }\n return res;\n });\n },\n newPasscode ({ rootState, dispatch }, roomInfo) {\n return RoomService.newPasscode(roomInfo, rootState.auth.token).then(\n res => {\n if (res.data.status) {\n dispatch(\"getRooms\", rootState.auth.username);\n }\n return res;\n }\n );\n },\n async deletePasscode ({ rootState, dispatch }, roomInfo) {\n return RoomService.deletePasscode(roomInfo, rootState.auth.token).then(\n res => {\n if (res.data.status) {\n dispatch(\"getRooms\", rootState.auth.username);\n }\n return res;\n }\n );\n },\n async muteAll ({ rootState, commit }, data) {\n try {\n const { conferenceId } = data;\n if (conferenceId) {\n const res = await RoomService.muteAll(\n { conferenceId },\n rootState.auth.token\n );\n commit(\"reloadLocalParticipants\", \"true\");\n return res;\n }\n } catch (err) {\n throw new Error(err);\n }\n },\n async unmuteAll ({ rootState, commit }, data) {\n try {\n const { conferenceId } = data;\n if (conferenceId) {\n const res = await RoomService.unmuteAll(\n { conferenceId },\n rootState.auth.token\n );\n commit(\"reloadLocalParticipants\", \"false\");\n return res;\n }\n } catch (err) {\n throw new Error(err);\n }\n },\n async muteAudio ({ rootState, commit }, participant) {\n try {\n const { conferenceID, id, audioMute } = participant;\n const newAudioMute = audioMute === \"true\" ? \"false\" : \"true\";\n const newaudioControl =\n newAudioMute === \"true\" ? \"mute-audio\" : \"unmute-audio\";\n const newParticipant = {\n ...participant,\n audioMute: newAudioMute\n };\n\n if (conferenceID) {\n const res = await RoomService.participantControl(\n {\n conferenceId: conferenceID,\n participantId: id,\n control: newaudioControl\n },\n rootState.auth.token\n );\n commit(\"updateParticipant\", newParticipant);\n return res;\n }\n } catch (err) {\n throw new Error(err);\n }\n },\n async muteVideo ({ rootState, commit }, participant) {\n try {\n const { conferenceID, id, videoMute } = participant;\n const newVideoMute = videoMute === \"true\" ? \"false\" : \"true\";\n const newVideoControl =\n newVideoMute === \"true\" ? \"suspend-video\" : \"resume-video\";\n const newParticipant = {\n ...participant,\n videoMute: newVideoMute\n };\n if (conferenceID) {\n const res = await RoomService.participantControl(\n {\n conferenceId: conferenceID,\n participantId: id,\n control: newVideoControl\n },\n rootState.auth.token\n );\n commit(\"updateParticipant\", newParticipant);\n return res;\n }\n } catch (err) {\n throw new Error(err);\n }\n },\n async deleteParticipant ({ rootState, commit }, participant) {\n try {\n const { conferenceID, id } = participant;\n if (conferenceID) {\n const res = await RoomService.participantControl(\n {\n conferenceId: conferenceID,\n participantId: id,\n control: \"disconnect\"\n },\n rootState.auth.token\n );\n if (res.data.status) {\n commit(\"removeParticipant\", participant);\n }\n return res;\n }\n } catch (err) {\n throw new Error(err);\n }\n },\n async deletePartyMCU({rootState}, data) {\n try {\n const { roomID_MCU, host_MCU, partyId } = data\n const result = RoomService.deletePartyMCU({\n owner: rootState.auth.username,\n roomID_MCU,\n host_MCU,\n partyId\n },rootState.auth.token)\n return result\n } catch(err) {\n throw Error(err)\n }\n },\n async setDialOut ({ rootState }, dialOutInfo) {\n const newDialogInfo = { ...dialOutInfo };\n try {\n const res = await RoomService.dialOut(\n newDialogInfo,\n rootState.auth.token\n );\n return res;\n } catch (err) {\n throw new Error(err);\n }\n },\n async setLayout ({ rootState }, data) {\n const layoutInfo = { ...data };\n try {\n const res = await RoomService.setLayout(\n layoutInfo,\n rootState.auth.token\n );\n return res;\n } catch (err) {\n throw new Error(err);\n }\n },\n async setLecturer ({ rootState }, data) {\n const lecturerInfo = { ...data };\n try {\n const res = await RoomService.setLecturer(\n lecturerInfo,\n rootState.auth.token\n );\n return res;\n } catch (err) {\n throw new Error(err);\n }\n },\n async getAddressBook ({ rootState, commit }) {\n const { username } = rootState.auth;\n try {\n const res = await RoomService.fetchAddressBook(\n { username },\n rootState.auth.token\n );\n if (res) {\n commit(\"saveAddressBook\", res.data.data);\n }\n return res;\n } catch (err) {\n throw new Error(err);\n }\n },\n async createAddressBook ({ rootState, dispatch }, addressbook) {\n const newAddressBook = {\n username: rootState.auth.username,\n addressbook\n };\n try {\n const res = await RoomService.createAddressBook(\n newAddressBook,\n rootState.auth.token\n );\n dispatch(\"getAddressBook\");\n return res;\n } catch (err) {\n throw new Error(err);\n }\n },\n async deleteAddressBook ({ rootState, dispatch }, addressBookId) {\n try {\n const res = await RoomService.deleteAddressBook(\n { id: addressBookId },\n rootState.auth.token\n );\n dispatch(\"getAddressBook\");\n return res;\n } catch (err) {\n throw new Error(err);\n }\n },\n async startConference ({ rootState, dispatch }, roomIdentifier) {\n try {\n const res = await RoomService.startConference(\n { room: roomIdentifier },\n rootState.auth.token\n );\n if (res.data.status) {\n return await dispatch(\"getConferenceIdByAddressBook\", roomIdentifier);\n }\n return res;\n } catch (err) {\n throw new Error(err);\n }\n },\n async getConferenceIdByAddressBook ({ rootState, commit }, roomId) {\n try {\n const owner = rootState.auth.username\n const res = await RoomService.getConferenceID(\n { owner, roomId },\n rootState.auth.token\n );\n if (res.data.status) {\n commit(\"saveConferenceId\", {\n conferenceId: res.data.conferenceId,\n roomId\n });\n commit('updateConferenceIdByRoom', {\n conferenceId: res.data.conferenceId,\n roomId\n })\n }\n return res;\n } catch (err) {\n throw new Error(err);\n }\n },\n async lockConference ({ rootState }, data) {\n try {\n const { conferenceId } = data;\n if (conferenceId) {\n const res = await RoomService.lockConference(\n { conferenceId, control: 'lock-conference' },\n rootState.auth.token\n )\n return res;\n }\n } catch (err) {\n throw new Error(err);\n }\n },\n async unLockConference ({ rootState }, data) {\n try {\n const { conferenceId } = data;\n if (conferenceId) {\n const res = await RoomService.lockConference(\n { conferenceId, control: 'unlock-conference' },\n rootState.auth.token\n )\n return res;\n }\n } catch (err) {\n throw new Error(err);\n }\n },\n getConferenceIdList({rootState, commit}, data) {\n return RoomService.getConferenceIDList({\n owner: rootState.auth.username,\n ...data\n }, rootState.auth.token).\n then(dataRes => {\n Promise.all(dataRes.data.conferences.map((conf) => {\n return RoomService.\n getMCURoom({\n owner: rootState.auth.username,\n conferenceId: conf.conferenceId,\n roomId: conf.roomId\n }, rootState.auth.token).\n then((result) => {\n if(result.data&&result.data.status) {\n return {\n conferenceId: conf.conferenceId,\n displayName: result.data.message.displayName,\n host_MCU: result.data.message.host_MCU,\n isExisted: true,\n roomId: conf.roomId,\n roomID_MCU: result.data.message.roomID_MCU,\n }\n } else {\n return {\n conferenceId: conf.conferenceId,\n isExisted: false,\n roomId: conf.roomId,\n }\n }\n })\n })).\n then(data => {\n const roomList = data.filter(room => {\n return room.isExisted && (room.displayName || room.roomID_MCU)\n })\n const notExistedRoomList = data.filter(room => {\n return !room.isExisted\n })\n commit('saveConferenceIdList', roomList)\n commit('saveNotExistedConferenceIdList', notExistedRoomList)\n localStorage.setItem('conferenceList', JSON.stringify(roomList))\n })\n return dataRes\n })\n },\n getJointParticipantsByConfId ({ rootState, commit, state }, data) {\n const { conferenceId, roomId } = data;\n const owner = rootState.auth.username;\n if (conferenceId && roomId) {\n // get share content status of username first then get party list\n // return dispatch('getPartyShareContentStatus', { conferenceId, roomId }).then(resData => {\n // if(resData.status) {\n return RoomService.getJointParticipants(\n { owner, conferenceId, roomId },\n rootState.auth.token\n ).then(res => {\n if (res.data.status) {\n commit(\"saveJointParticipants\", {conferenceId, participants: res.data.participants, partyName: '' });\n if(state.sortPartySetting) {\n commit(\"sortData\", state.sortPartySetting)\n }\n }\n return res\n })\n // }\n // return resData\n // })\n }\n },\n async resetDefaultLayout({ rootState }, data) {\n try {\n const { roomID_MCU, host_MCU } = data;\n if (roomID_MCU) {\n const res = await RoomService.resetDefaultLayout(\n { roomID_MCU, host_MCU , username: rootState.auth.username},\n rootState.auth.token\n )\n return res;\n }\n } catch (err) {\n throw new Error(err);\n }\n },\n setShareContentParticipant({rootState, commit}, data) {\n try {\n const {party: {id}, roomID_MCU, host_MCU} = data\n return RoomService.setShareContent({\n roomID_MCU,\n username: rootState.auth.username,\n partyID: id,\n host_MCU\n }, rootState.auth.token).then((res) => {\n commit('setShareContentParticipants', data.list)\n return res\n })\n } catch(err) {\n throw new Error(err);\n }\n },\n resetShareContentByParticipant({rootState, commit}, data) {\n try {\n const { conferenceId, roomID_MCU, host_MCU } = data;\n return RoomService.resetShareContentParty({\n conferenceId,\n roomID_MCU,\n host_MCU,\n username: rootState.auth.username\n }, rootState.auth.token).then((res) => {\n commit('setShareContentParticipants', data.list)\n return res\n })\n } catch(err) {\n throw new Error(err);\n }\n },\n setPartyLayout({rootState}, data) {\n const { roomID_MCU, party: {id}, host_MCU, layout} = data;\n return RoomService.setParticipantForcedLayout({\n roomID_MCU,\n layout,\n username: rootState.auth.username,\n partyId: id,\n host_MCU\n }, rootState.auth.token).then((res) => {\n return res\n })\n },\n resetPartyLayout({rootState}, data) {\n const { roomID_MCU, party: {id}, host_MCU } = data;\n return RoomService.resetParticipantForcedLayout({\n roomID_MCU,\n host_MCU,\n username: rootState.auth.username,\n partyId: id\n }, rootState.auth.token).then((res) => {\n return res\n })\n },\n randomPasscode ({ rootState, dispatch }, roomInfo) {\n return RoomService.randomPasscode(roomInfo, rootState.auth.token).then(\n res => {\n if (res.data.status) {\n dispatch(\"getRooms\", rootState.auth.username);\n }\n return res;\n }\n );\n },\n sendPassCode({rootState}, data) {\n return RoomService.sendPassCode(data, rootState.auth.token).then(\n res => {\n return res;\n }\n );\n },\n getBookedRooms({rootState, commit}) {\n return RoomService.getBookedRooms({username: rootState.auth.username}, rootState.auth.token).then(res => {\n if(res.data.status) {\n commit('saveBookedRooms', res.data.data)\n }\n return res;\n });\n },\n removeBookedRooms({rootState, dispatch}, data) {\n return RoomService.removeBookedRooms({username: rootState.auth.username, ...data}, rootState.auth.token).then(res => {\n return dispatch('getBookedRooms').then(() => {\n return res\n })\n })\n },\n disconnectAllParty({rootState, commit}, data) {\n return RoomService.disconnectAllParty(\n { ...data },\n rootState.auth.token\n ).then(res => {\n if (res.data.status) {\n commit(\"saveJointParticipants\", {conferenceId: data.conferenceId, participants: []});\n }\n return res\n })\n },\n changeDisplayNameParty({rootState, dispatch}, data) {\n return RoomService.updatePartyDisplayName(data, rootState.auth.token).then((result) => {\n if(result.status) {\n dispatch('getJointParticipantsByConfId', {roomId: data.roomId, conferenceId: data.conferenceId, owner: data.owner})\n }\n return result\n })\n },\n getPartyShareContentStatus({rootState}, data) {\n return RoomService.getPartyShareContentStatus({...data, username: rootState.auth.username}, rootState.auth.token)\n },\n getConfPartyByMCU({rootState, commit, dispatch,state, rootGetters}, data) {\n const { roomID_MCU, host_MCU, conferenceId, realtimeHandup } = data;\n const owner = rootState.auth.username;\n if(!rootGetters['auth/isLoggedIn']) {\n dispatch('auth/logOut')\n }\n if (roomID_MCU && host_MCU && conferenceId) {\n return RoomService.getConfPartyByMCU(\n { owner, roomID_MCU, host_MCU },\n rootState.auth.token\n ).then(res => {\n if (res.data.status) {\n commit(\"saveJointParticipantsMCU\", { conferenceId, participants: res.data.participants, partyName: '', realtimeHandup });\n if(state.sortPartySetting) {\n commit(\"sortData\", state.sortPartySetting)\n }\n } else {\n commit(\"saveJointParticipantsMCU\", {conferenceId, participants: [], partyName: '', realtimeHandup });\n }\n return res\n })\n }\n },\n getPartyInfoByMCU({ rootState, commit }, data) {\n const { roomID_MCU, host_MCU, partyId } = data;\n const owner = rootState.auth.username;\n return RoomService.getPartyInfoByMCU({ owner, roomID_MCU, host_MCU, partyId }, rootState.auth.token).then(result => {\n commit('saveJointPartyInfo', { partyId, info: result.data.party })\n })\n },\n async muteAudioMCU ({ rootState }, participant) {\n try {\n const { roomID_MCU, host_MCU, id, audioMute, videoMute } = participant;\n const newAudioMute = audioMute === \"true\" ? \"false\" : \"true\";\n const newaudioControl =\n newAudioMute === \"true\" ? \"mute-audio\" : \"unmute-audio\";\n\n if (roomID_MCU) {\n const res = await RoomService\n .setConfPartyControlByMCU({\n owner: rootState.auth.username,\n participantId: id,\n control: newaudioControl,\n roomID_MCU,\n host_MCU,\n otherControl: videoMute\n }, rootState.auth.token);\n return res;\n }\n } catch (err) {\n throw new Error(err);\n }\n },\n async muteVideoMCU ({ rootState }, participant) {\n try {\n const { roomID_MCU, host_MCU, id, audioMute, videoMute } = participant;\n const newVideoMute = videoMute === \"true\" ? \"false\" : \"true\";\n const newVideoControl =\n newVideoMute === \"true\" ? \"suspend-video\" : \"resume-video\";\n if (roomID_MCU) {\n const res = await RoomService\n .setConfPartyControlByMCU({\n owner: rootState.auth.username,\n participantId: id,\n control: newVideoControl,\n roomID_MCU,\n host_MCU,\n otherControl: audioMute\n }, rootState.auth.token);\n return res;\n }\n } catch (err) {\n throw new Error(err);\n }\n },\n async muteAllMCU({ rootState, state }, data) {\n try {\n const { roomID_MCU, host_MCU } = data;\n const isAllAudioMute = state.jointParticipants.every(party => {\n return party.audioMute === \"true\"\n });\n const newAudioControl =\n isAllAudioMute === true ? \"unmute-all\" : \"mute-all\";\n if (roomID_MCU) {\n const res = await RoomService\n .setConfAllPartyControlByMCU({\n owner: rootState.auth.username,\n control: newAudioControl,\n roomID_MCU,\n host_MCU\n }, rootState.auth.token);\n return res;\n }\n } catch (err) {\n throw new Error(err);\n }\n },\n async disconnectPartyMCU({ rootState }, participant) {\n try {\n const { roomID_MCU, host_MCU, id } = participant;\n if (roomID_MCU) {\n const res = await RoomService\n .setConfPartyControlByMCU({\n owner: rootState.auth.username,\n participantId: id,\n control: \"disconnect\",\n roomID_MCU,\n host_MCU\n }, rootState.auth.token);\n return res;\n }\n } catch (err) {\n throw new Error(err);\n }\n },\n async setLayoutConfMCU ({ rootState }, data) {\n try {\n const { roomID_MCU, host_MCU, layout } = data;\n if (roomID_MCU) {\n const res = await RoomService\n .setLayoutConfByMCU({\n owner: rootState.auth.username,\n layout,\n roomID_MCU,\n host_MCU\n }, rootState.auth.token);\n return res;\n }\n } catch (err) {\n throw new Error(err);\n }\n },\n exportConferenceInfo({rootState}, data) {\n return RoomService.exportConferenceInfo({conferenceId: data, owner: rootState.auth.username}, rootState.auth.token)\n },\n getPartyPacket({rootState}, data) {\n const { conferenceId, roomId, name } = data;\n return RoomService.getPartyPacketInfo({\n conferenceId,\n roomId,\n username: rootState.auth.username,\n participantName: name\n }, rootState.auth.token).then((res) => {\n \n return res\n })\n },\n async setLecturerMCU ({ rootState }, data) {\n const lecturerInfo = { ...data, owner: rootState.auth.username };\n try {\n const res = await RoomService.setLecturerMCU(\n lecturerInfo,\n rootState.auth.token\n );\n return res;\n } catch (err) {\n throw new Error(err);\n }\n },\n disconnectAllPartyMCU({rootState, commit}, data) {\n return RoomService.disconnectAllPartyMCU(\n { ...data },\n rootState.auth.token\n ).then(res => {\n if (res.data.status) {\n commit(\"saveJointParticipants\", {conferenceId: data.conferenceId, participants: []});\n }\n return res\n })\n },\n changeDisplayNamePartyMCU({rootState}, data) {\n return RoomService.updatePartyDisplayNameMCU(data, rootState.auth.token).then((result) => {\n return result\n })\n },\n async updateConferencePasswordMCU({rootState}, data) {\n try {\n const { roomID_MCU, host_MCU, confPassword } = data;\n\n const result = RoomService.updateConferencePassMCU({\n owner: rootState.auth.username,\n roomID_MCU,\n host_MCU,\n confPassword\n },rootState.auth.token)\n\n return result\n } catch(err) {\n throw Error(err)\n }\n },\n async updateBlockAudioMCU({rootState}, data) {\n try {\n const { roomID_MCU, host_MCU, partyId, audioBlockStatus } = data;\n\n const result = RoomService.updateBlockAudioMCU({\n owner: rootState.auth.username,\n roomID_MCU,\n host_MCU,\n partyId,\n audioBlockStatus\n },rootState.auth.token)\n\n return result\n } catch(err) {\n throw Error(err)\n }\n },\n async setVolumeMCU({rootState}, data) {\n try {\n const { roomID_MCU, host_MCU, partyId, volume } = data;\n\n const result = RoomService.setVolumeMCU({\n owner: rootState.auth.username,\n roomID_MCU,\n host_MCU,\n partyId,\n volume\n },rootState.auth.token)\n\n return result\n } catch(err) {\n throw Error(err)\n }\n },\n async setLayoutMCU({rootState}, data) {\n try {\n const { roomID_MCU, host_MCU, layout } = data;\n\n const result = RoomService.setLayoutMCU({\n owner: rootState.auth.username,\n roomID_MCU,\n host_MCU,\n layout\n },rootState.auth.token)\n\n return result\n } catch(err) {\n throw Error(err)\n }\n },\n async setAutoLayoutMCU({rootState}, data) {\n try {\n const { roomID_MCU, host_MCU } = data;\n\n const result = RoomService.setAutoLayoutMCU({\n owner: rootState.auth.username,\n roomID_MCU,\n host_MCU\n },rootState.auth.token)\n\n return result\n } catch(err) {\n throw Error(err)\n }\n },\n async getCurrentConferenceIdForAddText({rootState}, data) {\n\n try {\n const result = RoomService.getCurrentConferenceIdForAddText({\n owner: rootState.auth.username,\n conferenceId: data.conferenceId\n }, rootState.auth.token)\n\n return result\n } catch(err) {\n throw Error(err)\n }\n },\n async setCurrentConferenceIdForAddText({rootState}, data) {\n try {\n const { roomID_MCU, host_MCU, conferenceId, time } = data;\n const result = RoomService.setCurrentConferenceIdForAddText({\n owner: rootState.auth.username,\n conferenceId,\n roomID_MCU,\n host_MCU,\n time\n },rootState.auth.token)\n\n return result\n } catch(err) {\n throw Error(err)\n }\n },\n async setListenVolumeMCU({rootState}, data) {\n try {\n const { roomID_MCU, host_MCU, partyId, volume } = data;\n\n const result = RoomService.setListenVolumeMCU({\n owner: rootState.auth.username,\n roomID_MCU,\n host_MCU,\n partyId,\n volume\n },rootState.auth.token)\n\n return result\n } catch(err) {\n throw Error(err)\n }\n },\n async setDialOutByIPID({rootState}, data) {\n try {\n const { roomID_MCU, host_MCU, party } = data;\n\n const result = RoomService.dialOutByIPID({\n owner: rootState.auth.username,\n roomID_MCU,\n host_MCU,\n party\n },rootState.auth.token)\n\n return result\n } catch(err) {\n throw Error(err)\n }\n }\n }\n};\n","import AccountService from '@/services/AccountService'\nimport ParticipantService from \"@/services/ParticipantService\"\nimport RoomService from '@/services/RoomService'\n\nexport default {\n namespaced: true,\n state: {\n executiveAccounts: null,\n executiveAccountStatus: null,\n accounts: null,\n conferenceHistory: null,\n lockedRMParties: null,\n participants: null,\n },\n mutations: {\n saveExecutiveAccounts(state, data) {\n state.executiveAccounts = data\n },\n saveAccounts(state, accounts) {\n state.accounts = [...accounts]\n },\n saveAccount(state, accountData) {\n const index = state.accounts.findIndex(account => account._id == accountData._id)\n if(index > -1) {\n state.accounts[index] = {...accountData}\n } else {\n state.accounts.push(accountData)\n }\n },\n saveConferenceHistory(state, data) {\n state.conferenceHistory = data\n },\n saveExecutiveRoomAccountStatus(state, data) {\n state.executiveAccountStatus = data\n },\n saveParticipants(state, { newParticipants, username }) {\n const newParticipantsData = newParticipants&&newParticipants.map(participant => {\n const { disabled, email, entityTag, firstName, lastName, locked, name } = participant\n return {\n disabled: disabled[0],\n email: email[0],\n entityTag: entityTag[0],\n firstName: firstName[0],\n lastName: lastName[0],\n locked: locked[0],\n name: name[0]\n }\n })||[]\n if (!state.participants) state.participants = {};\n state.participants[username] = []\n state.participants = {\n ...state.participants,\n [username]: newParticipantsData\n }\n },\n updateParticipantStatus (state, { newParticipant, userOwner }) {\n state.participants = {\n ...state.participants,\n [userOwner]: [newParticipant, ...(state.participants&&state.participants[userOwner]&&state.participants[userOwner].filter(user => user.name !== newParticipant.name)||[])]\n }\n },\n removeAccount(state, accountData) {\n state.accounts.splice(accountData, 1);\n },\n resetParticipantListAtAdmin(state) {\n state.participants = null\n },\n deleteMultiUserByAdmin (state, data) {\n if (state.participants) {\n state.participants = {\n ...state.participants,\n [data.owner]: state.participants[data.owner].filter(user => {\n return data.participants.every(party => {\n return party.name !== user.name\n })\n })\n }\n }\n },\n saveLockedParties(state, data) {\n state.lockedRMParties = data\n }\n },\n actions: {\n async fetchAccountList({ commit, rootState }) {\n const token = rootState.auth.token\n const username = rootState.auth.username\n try {\n const res = await AccountService.fetchAccountList({ username }, token);\n if (res.data.status) {\n commit('saveAccounts', res.data.users)\n }\n return res\n } catch (err) {\n throw new Error(err)\n }\n },\n async updateAccount({ commit, rootState }, account) {\n const token = rootState.auth.token\n try {\n const res = await AccountService.updateAccount(account, token)\n if (res.data.status) {\n commit('saveAccount', {...res.data.users, ...account})\n }\n return res\n } catch (err) {\n throw new Error(err)\n }\n },\n deleteParticipantsByAdmin({commit, rootState}, params) {\n const token = rootState.auth.token\n return AccountService.deleteMultiParticipants(params, token).then((res) => {\n if (res.data.status) {\n commit('deleteMultiUserByAdmin', {participants: params.participants, owner: params.owner})\n }\n return res;\n }).catch((err) => {\n throw new Error(err)\n })\n },\n async deleteAccount({ commit, rootState }, account) {\n const token = rootState.auth.token\n try {\n const res = await AccountService.deleteAccount(account, token);\n if (res.data.status) {\n commit('removeAccount', res.data.user)\n }\n return res\n } catch (err) {\n throw new Error(err)\n }\n },\n disableParticipantWithOwner ({ commit, rootState, state }, data) {\n const {user, userOwner} = data\n const token = rootState.auth.token\n return ParticipantService.disableParticipant({ user }, token).then(() => {\n commit('updateParticipantStatus', {newParticipant: user, userOwner})\n return state.participants;\n }).catch((err) => {\n throw new Error(err)\n })\n },\n async exportConferenceHistory({ rootState }, data) {\n const owner = rootState.auth.username\n const token = rootState.auth.token\n return await AccountService.exportConferenceLog({ owner, ...data }, token)\n },\n getAllParticipants({ rootState }, owners) {\n return AccountService.fetchAllParticipants({owners}, rootState.auth.token)\n },\n getConferenceHistory({ rootState, commit }) {\n return AccountService\n .getConferenceHistory({owners: rootState.auth.username}, rootState.auth.token)\n .then((res) => {\n commit('saveConferenceHistory', res.data.data)\n return res\n })\n },\n async getExecutiveAccounts({ commit, rootState }) {\n const token = rootState.auth.token\n const docs = await AccountService.getExecutiveAccounts(token)\n if(docs.data.status) {\n commit('saveExecutiveAccounts', docs.data.data)\n }\n return docs.data\n },\n async getExecutiveRooms({ rootState }) {\n const token = rootState.auth.token\n const docs = await RoomService.getConferenceIDList({\n owner: rootState.auth.username\n }, token)\n return docs.data.conferences\n },\n async getExecutiveAccountStatus({ rootState, commit }) {\n const token = rootState.auth.token\n const docs = await AccountService.getExecutiveAccountStatus(token)\n if(docs.data.status) {\n commit('saveExecutiveRoomAccountStatus', docs.data.data)\n }\n return docs.data\n },\n async getParticipantsWithUsername({ commit, rootState }, username) {\n const token = rootState.auth.token\n try {\n const res = await AccountService.fetchParticipantWithUserName({ username }, token);\n if (res.data) {\n commit('saveParticipants', { newParticipants: res.data.participants, username })\n }\n return res\n } catch (err) {\n throw new Error(err)\n }\n },\n async getLockedRMParties({commit, rootState}) {\n const token = rootState.auth.token\n try {\n const res = await AccountService.getLockedRMParties(token)\n commit('saveLockedParties', res.data.parties)\n return res\n } catch (err) {\n throw new Error(err)\n }\n },\n async searchParties ({ commit, rootState }, params) {\n const token = rootState.auth.token\n const owner = params.owner\n const searchName = params.searchName\n try {\n const res = await AccountService.searchParticipantWithUserName({ owner, searchName }, token)\n commit('saveParticipants', {newParticipants: res.data.participants, username: owner})\n return res;\n } catch (err) {\n throw new Error(err)\n }\n },\n async setExecutiveAccountStatus({ rootState }, params) {\n const token = rootState.auth.token\n const docs = await AccountService.setExecutiveAccountStatus(params, token)\n return docs.data\n },\n async unlockRMParty({rootState}, params) {\n const token = rootState.auth.token\n try {\n const res = await AccountService.unlockRMParty(params, token)\n return res\n } catch (err) {\n throw new Error(err)\n }\n },\n updatePWAccount({rootState}, account) {\n return AccountService.changePassAccount(account, rootState.auth.token)\n },\n }\n}","import AccountService from \"@/services/AccountService\";\nexport default {\n namespaced: true,\n state: {\n rooms: []\n },\n mutations: {\n saveRooms(state, rooms) {\n state.rooms = [...rooms];\n }\n },\n actions: {\n async createRoom({rootState, dispatch}, {username, roomId, maxParty, pool, template}) {\n const token = rootState.auth.token;\n try {\n const res = await AccountService.createRoom({ username, roomId, maxParty, pool, template }, token);\n if (res.data.status) {\n await dispatch('fetchRoomList')\n }\n return res;\n } catch (err) {\n throw new Error(err);\n }\n },\n async deleteRoom({rootState, dispatch}, {username, rooms}) {\n const token = rootState.auth.token;\n try {\n const res = await AccountService.deleteRoom({ username, rooms }, token);\n if (res.data.status) {\n await dispatch('fetchRoomList')\n }\n return res;\n } catch (err) {\n throw new Error(err);\n }\n },\n async fetchRoomList({ commit, rootState }) {\n const token = rootState.auth.token;\n const username = rootState.auth.username;\n try {\n const res = await AccountService.fetchRoomList({ username }, token);\n if (res.data.status) {\n commit(\"saveRooms\", res.data.rooms);\n }\n return res;\n } catch (err) {\n throw new Error(err);\n }\n },\n async updateRoom({ rootState, dispatch }, data) {\n const token = rootState.auth.token;\n try {\n const res = await AccountService.updateRoom(data, token);\n if (res.data.status) {\n await dispatch('fetchRoomList')\n }\n return res;\n } catch (err) {\n throw new Error(err);\n }\n },\n }\n};\n","import AccountService from \"@/services/AccountService\";\nexport default {\n namespaced: true,\n state: {\n devices: null\n },\n mutations: {\n saveDevices (state, devices) {\n state.devices = [...devices];\n }\n },\n actions: {\n async fetchDevices ({ commit, rootState }) {\n const token = rootState.auth.token;\n const username = rootState.auth.username;\n try {\n const res = await AccountService.fetchDevices({ username }, token);\n if (res.data.status) {\n commit(\"saveDevices\", res.data.devices);\n }\n return res;\n } catch (err) {\n throw new Error(err);\n }\n },\n async fetchDevicesByUser ({ commit, rootState }, nameList) {\n const token = rootState.auth.token;\n const owner = rootState.auth.username;\n try {\n const res = await AccountService.fetchDevicesByUser(\n { nameList, owner },\n token\n );\n\n\n if (res.data.status) {\n commit(\"saveDevices\", res.data.devices);\n }\n return res;\n } catch (err) {\n throw new Error(err);\n }\n }\n }\n};\n","import Api from \"@/services/Api\";\n\nexport default {\n createEvent (params, token) {\n return Api().post(\"/create-event\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n\n fetchEvents (params, token) {\n return Api().post(\"/fetch-events\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n removeEvent (params, token) {\n return Api().post(\"/remove-event\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n\n updateEvent (params, token) {\n return Api().post(\"/update-event\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n getEventId (params, token) {\n return Api().post(\"/create-event-id\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n fetchEventsByParticipant (params, token) {\n return Api().post(\"/participant-list-event\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n};\n","import EventService from \"../services/EventService\";\n\nexport default {\n namespaced: true,\n state: {\n events: [\n // {\n // id: 'id1',\n // start: new Date(),\n // end: new Date(),\n // host: 'Van',\n // title: \"Họp Sale\",\n // date: new Date(),\n // },\n // {\n // id: 'id2',\n // start: new Date(),\n // end: new Date(),\n // host: 'Van',\n // title: \"Họp Sale 2\",\n // date: new Date()\n // },\n // {\n // id: \"id3\",\n // date: new Date(\"Sat Nov 02 2019 00: 00: 00\"),\n // end: new Date(\"Fri Nov 01 2019 21: 56: 18\"),\n // host: \"van\",\n // start: new Date(\"Fri Nov 01 2019 09: 56: 18\"),\n // title: \"van hop booking\"\n // }\n ],\n searchEvents: []\n },\n mutations: {\n addEvent (state, event) {\n state.events.push(event)\n },\n\n updateEvent (state, payload) {\n for (let i = 0; i < state.events.length; i++) {\n if (state.events[i].id === payload.id) {\n state.events[i].start = payload.start\n state.events[i].end = payload.end\n state.events[i].email = payload.email\n state.events[i].title = payload.title\n state.events[i].date = payload.date\n state.events[i].message = payload.message\n }\n }\n },\n\n setSearchEvents (state, value) {\n state.searchEvents = value\n },\n\n saveEvents (state, value) {\n state.events = value\n }\n\n },\n actions: {\n\n setSearchEvents ({ commit }, value) {\n commit('setSearchEvents', value)\n },\n\n async fetchEvents ({ rootState, commit }) {\n const { username } = rootState.auth;\n try {\n const res = await EventService.fetchEvents(\n { username },\n rootState.auth.token\n );\n if (res) {\n commit(\"saveEvents\", res.data.data);\n }\n return res;\n } catch (err) {\n throw new Error(err);\n }\n },\n\n async createEvent ({ rootState, dispatch }, event) {\n const newEvent = {\n username: rootState.auth.username,\n event\n };\n try {\n const res = await EventService.createEvent(\n newEvent,\n rootState.auth.token\n );\n dispatch(\"fetchEvents\");\n return res;\n } catch (err) {\n throw new Error(err);\n }\n },\n async removeEvent ({ rootState, dispatch }, eventId) {\n try {\n const res = await EventService.removeEvent(\n { id: eventId },\n rootState.auth.token\n );\n dispatch(\"fetchEvents\");\n return res;\n } catch (err) {\n throw new Error(err);\n }\n },\n async updateEvent ({ rootState, dispatch }, event) {\n try {\n const res = await EventService.updateEvent(\n { event: event },\n rootState.auth.token\n );\n dispatch(\"fetchEvents\");\n return res;\n } catch (err) {\n throw new Error(err);\n }\n },\n getConference({ commit, rootState }, params) {\n return EventService.getEventId(params, rootState.auth.token).then(res => {\n return res\n })\n }\n }\n};","import Api from \"@/services/Api\";\n\nexport default {\n participantLogIn (params) {\n return Api().post(\"/participant-login\", params);\n },\n updatePassword (params, token) {\n return Api().post(\"/change-password-one-participant\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n};\n","import jwt from \"jsonwebtoken\";\n\nimport ParticipantLoginedService from \"../services/ParticipantLoginedService\";\n\nfunction checkTokenValid (token) {\n if (token) {\n const decodedToken = jwt.decode(token);\n return decodedToken && decodedToken.exp * 1000 > new Date().getTime();\n }\n}\n\nexport default {\n namespaced: true,\n state: {\n participantToken: localStorage.getItem(\"participantToken\") || \"\",\n participant: localStorage.getItem(\"participant\") || \"\",\n participantHost: localStorage.getItem(\"participantHost\") || \"\",\n participantName: localStorage.getItem(\"participantName\") || \"\",\n isHandup: false\n },\n mutations: {\n authSuccess (state, { participantToken, participant, participantHost, firstName }) {\n state.status = \"success\";\n state.participantToken = participantToken;\n state.participant = participant;\n state.participantHost = participantHost;\n state.participantName = firstName\n },\n authError (state) {\n state.status = \"error\";\n },\n logOut (state) {\n state.participantToken = \"\";\n state.participant = \"\";\n state.participantHost = \"\"\n state.participantName = \"\"\n },\n updateHandup (state, status) {\n state.isHandup = status;\n }\n },\n actions: {\n logInParticipant ({ commit }, participant) {\n return ParticipantLoginedService.participantLogIn(participant)\n .then(res => {\n const status = res.data.status || false;\n if (status) {\n const token = res.data.token || \"\";\n const decode = jwt.decode(token);\n localStorage.setItem(\"participantToken\", token);\n localStorage.setItem(\"participant\", decode.participant);\n localStorage.setItem(\"participantHost\", decode.host);\n localStorage.setItem(\"participantName\", decode.firstName)\n commit(\"authSuccess\", {\n participantToken: token,\n participant: decode.participant,\n participantHost: decode.host,\n firstName: decode.firstName\n });\n }\n return res;\n })\n .catch(() => {\n commit(\"authError\");\n localStorage.removeItem(\"participantToken\");\n });\n },\n logOutParticipant ({ commit }) {\n return new Promise(resolve => {\n commit(\"logOut\");\n localStorage.clear();\n resolve();\n });\n },\n updateHandup ({ commit }, status) {\n commit('updateHandup', status)\n },\n updatePassword({state}, data) {\n return ParticipantLoginedService.updatePassword(data, state.participantToken).then(result => {\n return result\n })\n }\n },\n getters: {\n isLoggedIn: state => checkTokenValid(state.participantToken)\n // isLoggedIn: state => !!state.token && checkTokenValid(state.token),\n }\n};\n","import EventService from \"../services/EventService\";\n\nexport default {\n namespaced: true,\n\n state: {\n events: []\n },\n mutations: {\n\n saveEvents (state, value) {\n state.events = value\n }\n\n },\n actions: {\n\n async fetchEventsByParticipant ({ rootState, commit }) {\n const username = rootState.authParticipant.participant;\n const host = rootState.authParticipant.participantHost;\n const token = rootState.authParticipant.participantToken;\n\n\n try {\n const res = await EventService.fetchEventsByParticipant(\n { username, host },\n token\n );\n if (res) {\n commit(\"saveEvents\", res.data.data);\n }\n return res;\n } catch (err) {\n throw new Error(err);\n }\n }\n }\n};","import Vue from \"vue\";\nimport VueX from \"vuex\";\n\nimport auth from \"./auth\";\nimport participant from \"./participant\";\nimport room from \"./room\";\nimport hostAccount from \"./host-account\";\nimport hostRoom from \"./host-room\";\nimport hostDevice from \"./host-device\";\nimport calendar from \"./calendar\";\nimport authParticipant from \"./auth-participant\";\n\nimport participantEvent from \"./participant-event\";\n\n\nimport VuexLocalStorage from \"../modules/LocalStorage\";\n\nVue.use(VueX);\n\nexport default new VueX.Store({\n modules: {\n auth,\n participant,\n room,\n hostAccount,\n hostRoom,\n hostDevice,\n calendar,\n authParticipant,\n participantEvent\n },\n plugins: [VuexLocalStorage]\n});\n","import Api from \"@/services/Api\";\n\nexport default {\n createRoom(params, token) {\n return Api().post(\"/admin/create-room\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n changePassAccount(params, token) {\n return Api().post(\"/admin/update-password-user-dma\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n deleteAccount (params, token) {\n return Api().post(\"/admin/delete-user\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n deleteMultiParticipants(params, token) {\n return Api().post(\"/admin/delete-participants\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n deleteRoom(params, token) {\n return Api().post(\"/admin/delete-room\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n exportConferenceLog(params, token) {\n return Api().post(\"/mcu/export-conference-history\", params, {\n headers: { \"x-access-token\": token }\n })\n },\n fetchAllParticipants(params, token) {\n return Api().post(\"/admin/allUsers\", params, {\n headers: { \"x-access-token\": token }\n })\n },\n fetchAccountList (params, token) {\n return Api().post(\"/admin/list\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n fetchDevices (params, token) {\n return Api().post(\"/admin/devices\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n fetchDevicesByUser (params, token) {\n return Api().post(\"/user/devicesList\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n fetchParticipantWithUserName (params, token) {\n return Api().post(\"/admin/user\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n fetchRoomList (params, token) {\n return Api().post(\"/admin/rooms\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n fetchTemplateAndPool(token) {\n return Api().post(\"/admin/fetch-template-pool\", {}, {\n headers: { \"x-access-token\": token }\n });\n },\n getConferenceHistory(params, token) {\n return Api().post('/mcu/conference-history', params, {\n headers: { \"x-access-token\": token }\n })\n },\n getExecutiveAccounts(token) {\n return Api().post(\"/admin/get-executive-accounts\", undefined, {\n headers: { \"x-access-token\": token }\n });\n },\n getExecutiveAccountStatus(token) {\n return Api().post('/admin/get-executive-account-status', undefined, {\n headers: { 'x-access-token': token }\n })\n },\n getLockedRMParties(token) {\n return Api().post(\"/admin/parties-locked\", undefined, {\n headers: { \"x-access-token\": token }\n });\n },\n searchParticipantWithUserName (params, token) {\n return Api().post(\"/admin/search-participants\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n setExecutiveAccountStatus(params, token) {\n return Api().post('/admin/set-executive-account-status', params, {\n headers: { 'x-access-token': token }\n })\n },\n unlockRMParty(params, token) {\n return Api().post(\"/admin/parties-unlocked\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n updateAccount (params, token) {\n return Api().post(\"/admin/update\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n updateRoom(params, token) {\n return Api().post(\"/admin/update-room\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n};\n","import Api from '@/services/Api'\n\nexport default {\n createParticipant (params, token) {\n return Api().post('/create-participant', params, {\n headers: { 'x-access-token': token }\n })\n },\n getParticipants (params, token) {\n return Api().post('/get-participants', params, {\n headers: { 'x-access-token': token }\n })\n },\n disableParticipant (params, token) {\n return Api().post('/disable-participant', params, {\n headers: { 'x-access-token': token }\n })\n },\n deleteParticipant (params, token) {\n return Api().post('/delete-participant', params, {\n headers: { 'x-access-token': token }\n })\n },\n deleteMultiParticipants (params, token) {\n return Api().post('/delete-participants', params, {\n headers: { 'x-access-token': token }\n })\n },\n changePass (params, token) {\n return Api().post('/changepw-participant', params, {\n headers: { 'x-access-token': token }\n })\n },\n\n createMultiParticipants (params, token) {\n return Api().post('/create-multi-participant', params, {\n headers: { 'x-access-token': token }\n })\n },\n getParticipantsByAdmin (params, token) {\n return Api().post('/get-participants-by-admin', params, {\n headers: { 'x-access-token': token }\n })\n },\n searchParticipants (params, token) {\n return Api().post('/search-participants', params, {\n headers: { 'x-access-token': token }\n })\n },\n}","module.exports = {\n SocketServer: `//vvcroom-portal.viettel.vn`\n //SocketServer: `http://27.71.113.147:9010`\n}","import Api from \"@/services/Api\";\n\nexport default {\n sendMail (params) {\n return Api().post(\"/send-mail\", params, {\n headers: { \"x-access-token\": localStorage.getItem(\"usertoken\") }\n });\n },\n contact (params) {\n return Api().post(\"/contact\", params);\n }\n};\n","import Api from \"@/services/Api\";\n\n\nexport default {\n getCaptcha() {\n return Api().post(\"/get-captcha\");\n },\n signUp (params) {\n return Api().post(\"signup-user\", params);\n },\n\n logIn (params) {\n return Api().post(\"login\", params);\n },\n\n signUpByAdmin (params, token) {\n return Api().post(\"/signup-by-admin\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n\n updateUserDMAPassword (params, token) {\n return Api().post(\"/update-user-dma\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n fetchProfile (params, token) {\n return Api().post(\"/profile\", params, {\n headers: { \"x-access-token\": token }\n });\n },\n resendEmail (params) {\n return Api().post(\"/resend-email\", params);\n },\n confirmation (params) {\n return Api().post(\"/confirmation\", params);\n }\n};\n"],"sourceRoot":""}